Ubuntu18.04配置无人驾驶赛车游戏TORCS(解决找不到GL/glut.h、AL/alut.h和libXmu,以及编译中出现‘isnan’was not declared等)


菜菜的博主又开始记笔记了,前段时间折腾了一下apollo无人驾驶仿真平台搭建,弄好了以后发现好像他自带各种算法,去B站看了一堆视频,怎么这东西都是介绍自己的算法呢,我想的是跑自己的路径规划和控制决策代码,光看它美丽的界面去了,没明白咋跑自己的代码,又找了找一个叫TORCS的赛车游戏,一说游戏瞬间有了研究下去的动力,而且这个直接就可以改源代码了,本身研究的重点就是路径规划等等这些算法部分,所以这个正合适,貌似界面也还不错呢。

一、资源下载TORCS《The Open Racing Car Simulator》

先去github下载gym-torcs源码:https://github.com/ugo-nama-kun/gym_torcs
可以使用HTTP或者SSH两种下载方式,建议使用SSH,下载会快一些(注意,在哪个目录下执行,下载的文件就会保存在哪,所以最好先自己找好下载目录,然后在该目录执行下载命令)

git clone git@github.com:ugo-nama-kun/gym_torcs.git		#SSH
git clone https://github.com/ugo-nama-kun/gym_torcs.git		#HTTP

二、环境搭建

本文使用的是Ubuntu18.04+Python3.6

  1. 安装xautomation
    直接开启一个命令行,在其中输入指令:
 sudo apt-get install xautomation
  1. 配置gym_torcs目录中的vtorcs-RL-color
    需要解决vtorcs-RL-color中的一堆编译错误(坑巨多,不断尝试花了半天时间,一定先把这一步全部整好,本人在安装过程中没有注意,编译的时候报错找不到libplib,整了半天原来是一个libplib-dev没装上,省的后面麻烦),看别人博客上都是直接完成了下面的前两步而已,但我执行完以后执行./configure的时候还是出现了下面几个错误,然后通过尝试知道这几个错误需要的就是对应的哪几个依赖包,如果有人执行完前两步也出现类似情况,可以试着根据错误信息安装对应的包,这是解决这种错误的思路。
    开启终端,cd进入下载好的gym_torcs/vtorcs-RL-color文件夹,开始以下(1)~(5)的配置过程,(6)执行时已不在这个目录了:
  • (1)安装依赖包
sudo apt-get install libglib2.0-dev  libgl1-mesa-dev libglu1-mesa-dev  freeglut3-dev  libplib-dev  libopenal-dev libalut-dev libxi-dev libxmu-dev libxrender-dev  libxrandr-dev libpng-dev  #很多博客写的是安装libpng12-dev,但实际上已经找不到这个包了,所以这里用的是libpng-dev
  • (2)安装gym环境
 sudo apt install -y python3-dev zlib1g-dev libjpeg-dev cmake swig python-pyglet python3-opengl libboost-all-dev libsdl2-dev libosmesa6-dev patchelf ffmpeg xvfb

如果到这里没有任何错误,所有依赖包都正常安装了,请直接跳至第(6)步,如果后来发现./configure过程报错,而且包含下面几项,可以尝试执行对应的指令安装相关依赖包,然后重新执行./configure

  • (3)OpenGL的安装,解决Can’t find GL/glut.h.错误
sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev 
  • (4)OpenAL与ALUT的安装, 解决Can’t find AL/alut.h.错误
sudo apt-get install libopenal0a libopenal-dev
sudo apt-get install libalut0 libalut-dev 
  • (5) 安装libxmu-dev包,解决出现的libXmu错误
sudo apt-get install libxmu-dev
  • (6)修改源码,解决因Ubuntu18.04中高版本GCC导致的error: ‘isnan’ was not declared in this scope,这一步骤避免了make指令执行过程中出现如下错误:
    在这里插入图片描述
    修改过程:在下载的gym_torcs文件夹中,打开终端,使用文本编辑修改代码
sudo gedit vtorcs-RL-color/src/drivers/olethros/geometry.cpp

注意打开的编辑器右下角显示当前光标所在行,点击文本区域找到373行,原来的if (isnan(r)) {替换成if (std::isnan(r)) {即可。

  1. 安装第三方库,用于正常执行py代码
 sudo pip3 install numpy
 sudo pip3 install gym
  1. 开始编译
    以下过程还是在gym_torcs/vtorcs-RL-color目录下开启终端完成。注意这里的第一行./configure操作,会得到很多行以yes或no结尾的输出,如果出现no,注意看是哪一个结尾为no,类似前文所述(3)~(5)步中解决方式进行处理,一般出现no都是因为前面的某一个依赖包安装过程出了问题导致的,对应的包重新安装一次即可。
    确保./configure指令输出所有的行结尾都是yes之后,再继续往下执行!
./configure 		#检查配置
make 	#编译
sudo make install 	#安装
sudo make datainstall

三、运行游戏与测试

打开一个终端,直接执行指令torcs ,便可以看到弹出下图这样的游戏界面了,测试一下源码给出的示例程序吧。

在这里插入图片描述
依次点击Race –> Practice –> New Race,弹窗会进入一个带有许多英文的蓝屏界面,如下:
在这里插入图片描述
此时还是进入下载好的gym_torcs目录,打开一个新的终端,在该目录下的执行Python代码:

python snakeoil3_gym.py

接下来就可以看到游戏中赛车自动跑起来的画面了,默认的应该是下图这种第一人称视角:
在这里插入图片描述

到这里TORCS游戏仿真平台就算配置完成了,还可以手动操作玩一玩,其他玩法这里不做赘述了,可以自行摸索,目前正在研究跑自己的强化学习算法,有了成果再做更新吧。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值