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