1. 前言
最近一个项目采用Autoware的无人驾驶系统,在安装工控机的过程中,踩了不少坑,留下记录,造福后人。
相关的下载在我的百度网盘,大家自行下载。链接: https://pan.baidu.com/s/1mmRKX3_D7GCESs6F9ROs3A 提取码: xdsn
网盘中的英伟达驱动是linux-64bit的驱动,适合于gtx10系列及以下的英伟达显卡,由于autoware现阶段不支持CUDA10,所以不建议RTX20系列显卡安装。
2. 安装英伟达驱动
去网盘下载:NVIDIA-Linux-x86_64-396.54.run显卡驱动。
(1) 删除ubuntu自带的英伟达显卡驱动程序
查看英伟达自带显卡驱动:
lsmod | grep nouveau
如果有输出,则关闭自带的英伟达显卡驱动:
cd /etc/modprobe.d sudo touch blacklist-nouveau.conf sudo gedit blacklist-nouveau.conf
在打开的文档中输入:
blacklist nouveau
options nouveau modeset=0
保存退出后运行
sudo update-initramfs -u
使blacklist生效。
重启电脑,重启后会发现电脑的分辨率已经降低,说明驱动已经关闭。然后输入
lsmod | grep nouveau
验证ubuntu自带的英伟达显卡是否关闭,如果没有输出,说明显卡已经关闭。
卸载掉ubuntu自带的英伟达显卡驱动:
sudo apt-get remove --purge nvidia-*
(2) 安装新的英伟达显卡驱动
英伟达显卡驱动默认下载到Downloads文件夹中。
首先,CTRL + ALT + F1进入字符界面,关闭图形界面,一定要这么做,所以在驱动安装完成前,建议把以下几步拍照。
进入字符界面后,会提示输入用户名及密码。成功登录后,首先关闭lightdm服务
sudo service lightdm stop
然后增加可执行权限,安装
sudo chmod a+x ~/Downloads/NVIDIA-Linux-x86_64-396.54.run //获取权限 sudo .~/Downloads/NVIDIA-Linux-x86_64-396.54.run –no-x-check –no-nouveau-check –no-opengl-files //安装驱动
安装完成后,重新启动,进入系统后,执行:
nvidia-smi
输出:
说明安装成功。
2. 安装CUDA
去网盘下载:cuda_9.2.148_396.37_linux.run
默认下载到Downloads文件夹。
执行
sudo sh ~/Downloads/cuda_9.2.88_396.26_linux.run
出现说明之后,按Ctrl + C键跳过,会提示是否接受,键入accept。此时,注意:安装第一步会提示是否安装驱动,请一定键入n。之后每一步选择y,当需要确认路径时直接按回车,结束安装。
加入环境变量,键入:
sudo gedit ~/.bashrc
在结尾加入:
export PATH=/usr/local/cuda-9.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64$LD_LIBRARY_PATH
保存、退出、重启。
重启后,验证安装是否成功:
cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery sudo make ./deviceQuery
如果输出提示PASS,那么说明安装成功。
如果需要卸载重装,运行下列命令卸载 cuda
cd /usr/local/cuda/bin sudo ./uninstall_cuda_9.2.pl
3. 安装cuDNN
去网盘下载:cudnn-9.2-linux-x64-v7.5.0.56.tgz
默认路径为Downloads文件夹
首先解压
tar -xzvf ~/Downloads/cudnn-9.2-linux-x64-v7.5.0.56.tgz
然后将解压内容拷贝到系统目录,并修改访问权限。
sudo cp ~/Downloads/cuda/include/cudnn.h /usr/local/cuda/include sudo cp ~/Downloads/cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
验证cuDNN是否安装成功,去网盘下载:cudnn_samples_v7.tar.gz,并解压
tar -xzvf ~/Downloads/cudnn_samples_v7.tar.gz
将cudnn_samples_v7文件夹拷贝到~目录
cp -r ~/Downloads/cudnn_samples_v7 ~/
进入mnistCUDNN,编译并运行
cd ~/cudnn_samples_v7/mnistCUDNN make clean && make ./mnistCUDNN
如果安装成功,会出现Test passed!
如果提示./mnistCUDNN: error while loading shared libraries: libcudart.so.9.2: cannot open shared object file: No such file or directory
是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,可以自建一个.conf文件(这里建立了cuda.conf),也可以修改其中任意一份conf文件,将lib所在目录写进去。
cd /etc/ld.so.conf.d/ sudo touch cuda.conf
sudo gedit cuda.conf
在cuda.conf中添加:
/usr/local/cuda/lib64
然后运行:
sudo ldconfig
如果提示:/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link
说明libcudnn.so.7是一个文件,它本应是一个符号连接。运行
sudo ln -sf /usr/local/cuda/lib64/libcudnn.so.7.0.5 /usr/local/cuda/lib64/libcudnn.so.7
可以解决
4. 安装ROS Kinetic
参照ROS WIKI,这里不详述
5. Autoware安装
首先,安装 Ubuntu 16.04 ROS Kinetic的依赖
sudo apt-get update sudo apt-get install -y python-catkin-pkg python-rosdep python-wstool ros-$ROS_DISTRO-catkin libmosquitto-dev gksu
然后安装Autoware
cd ~
git clone http://192.168.2.223/self-driving-group/auto-driving.git
上述是我们本地的gitlab地址,可以上github上clone:https://github.com/autowarefoundation/autoware.git
由于colcon出现问题,所以采用catkin_make方式安装,需要将项目分支切换
git checkout 1.10.0
开始安装
cd ~/autoware/ros/src catkin_init_workspace cd ../ rosdep update rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO ./catkin_make_release
如果出现nlopt的错误,那么运行解决
sudo apt-get install libnlopt-dev