本文整理了在Ubuntu 16.04操作系统环境下,搭建适用于TORCS(The Open Racing Car Simulator)无人驾驶仿真平台的强化学习环境。包括Ubuntu 16.04更换NVIDIA显卡驱动、安装CUDA、cuDNN、TensorFlow GPU加速版本以及Gym-TORCS.

环境:Linux Ubuntu 16.04 LTS

安装NVIDIA驱动

下载驱动程序

英伟达官网下载链接选择电脑显卡以及操作系统,下载合适的显卡驱动文件。

禁用nouveau第三方驱动

i. 打开编辑配置文件: sudo gedit /etc/modprobe.d/blacklist.conf

ii. 在最后一行添加:blacklist nouveau

iii. 改好后执行命令:sudo update-initramfs -u

iv. 重启使之生效:reboot

安装驱动

重启后按Ctrl+Alt+F1 进入命令行界面

执行命令:lsmod | grep nouveau

禁用X服务:sudo /etc/init.d/lightdm stop(或者:sudo service lightdm stop

给驱动run文件赋予可执行权限:sudo chmod a+x NVIDIA-Linux-x86_64-440.64.run(此处文件名称根据下载的驱动文件名填写)

安装:sudo ./NVIDIA-Linux-x86_64-440.64.run -no-opengl-files

–no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
–no-x-check 安装驱动时不检查X服务
–no-nouveau-check 安装驱动时不检查nouveau
后面两个参数可不加。

开启X服务:sudo /etc/init.d/lightdm start(或者:sudo service lightdm start

重启,没有问题,输入命令:nvidia-smi

如果出现了驱动版本就表示安装成功了。

安装CUDAToolkit 9.0

CUDA9.0下载地址

打开终端 cd 进入存放CUDA安装包的文件夹中,依次输入下面的命令:

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt update
sudo apt install cuda

CUDA完成安装之后,还需要添加环境变量,打开终端,输入下面的命令:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
# 如果是64位系统,输入:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 如果是32位系统,输入:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

上述过程完成了整个的CUDA9.0的安装

安装cuDNN v7.0

cuDNN v7.0下载地址

勾选I Agree To the Terms of the cuDNN Software License Agreement,一定要选择上适用于CUDA 9.0的正确版本!!!!

打开终端 cd 进入存放cuDNN安装包的文件夹中,输入以下命令:

sudo dpkg -i libcudnn7_7.6.5.32-1+cuda9.0_amd64.deb

注意,上述命令中的可能会由于cudnn版本的细微差异而不同,请根据自己下载的cuDNN版本修改命令。之后等待完成cuDNN的安装。

安装Tensorflow-GPU版本

GPU相比于CPU,在运算速度上有很大的优势,这也是本文推荐安装GPU版本的原因。

Tensorflow总共有4中安装方式,在这里,我们使用Google官方推荐的安装方式:Virtualenv,创建一个虚拟Python开发环境。

安装pip和Virtualenv

由于Python 2.7版本已于2020年1月1日终止维护,这里推荐使用Python 3.x版本进行开发。

打开终端
如果使用Python 2.7的版本,输入sudo apt install python-pip python-dev python-virtualenv
如果使用Python 3.x的版本,输入sudo apt install python3-pip python3-dev python-virtualenv

创造一个虚拟的Python开发环境

第一步如果选择Python 2.7版本,终端输入:virtualenv --system-site-packages ~/tensorflow
第一步如果选择Python 3.x版本,终端输入:virtualenv --system-site-packages -p python3 ~/tensorflow
注意,~/tensorflow是自己选择的位置并创建的目录,可以自行选择其他的位置和命名。创建完成之后,会在用户文件夹目录下看到多出的tensorflow文件夹

激活虚拟环境

打开终端输入:source ~/tensorflow/bin/activate

命令执行之后会在命令前出现 (tensorflow) 字样,代表虚拟环境已激活,接下来便可以在虚拟环境中进行操作。

保证pip的版本不低于8.1,在虚拟环境中输入:easy_install -U pip

安装tersorflow-gpu版本

Python 2.7版本:pip install --upgrade tensorflow-gpu
Python 3.x版本:python -m pip install --upgrade tensorflow-gpu
经过这一步骤之后,tensorflow就安装完成了。

如果pip安装速度慢,可参考本博客之前的文章Ubuntu 16.04 更换安装源合集,更换pip源。

有些IDE 会自动检测tensorflow创建的虚拟环境,不必在终端中单独开启或者关闭,比如pycharm等。

安装Gym-TORCS

安装相关依赖包

打开终端,输入命令

pip install opencv-python
sudo apt install xautomation
pip install numpy
pip install gym

安装Gym-TORCS

下载Gym-TORCS源码.此处若git clone速度慢,可通过第三方下载软件下载源码zip包,或者参考本博客之前的文章打破Git 操作的速度限制,为git操作添加网络代理。

将gym_torcs/vtorcs-RL-color/src/modules/simu/simuv2/simu.cpp中第64行替换为

if (isnan((float)(car->ctrl->gear)) || isinf(((float)(car->ctrl->gear)))) car->ctrl->gear = 0;

即转换两个数据类型为float,否则,下一步make的时候可能会出现error,安装失败。(此处参考网上教程,为尝试过不修改文件的方法)

打开终端,cd 到 gym_torcs/vtorcs-Rl-color目录,执行以下命令:

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 libpng12-dev 
./configure
make
sudo make install
sudo make datainstall
torcs

至此完成无人驾驶强化学习环境的搭建!

参考文献

Ubuntu 16.04安装NVIDIA驱动

Ubuntu + CUDA9.0 + tensorflow-gpu 安装过程

使用Keras和DDPG玩赛车游戏(自动驾驶)