1. 前言python
最近一個項目採用Autoware的無人駕駛系統,在安裝工控機的過程當中,踩了很多坑,留下記錄,造福後人。linux
相關的下載在個人百度網盤,你們自行下載。連接: https://pan.baidu.com/s/1UFa11d43lqPLuHltG_Sd9A 提取碼: rjscgit
網盤中的英偉達驅動是linux-64bit的驅動,適合於gtx10系列及如下的英偉達顯卡,因爲autoware現階段不支持CUDA10,因此不建議RTX20系列顯卡安裝。github
2. 安裝英偉達驅動ubuntu
去網盤下載:NVIDIA-Linux-x86_64-396.54.run顯卡驅動。bash
(1) 刪除ubuntu自帶的英偉達顯卡驅動程序gitlab
查看英偉達自帶顯卡驅動:ui
lsmod | grep nouveau
若是有輸出,則關閉自帶的英偉達顯卡驅動:spa
cd /etc/modprobe.d sudo touch blacklist-nouveau.conf sudo gedit blacklist-nouveau.conf
在打開的文檔中輸入:code
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