Autoware 1.14 完整安裝


一.  前言

人人為我,我為人人。

安裝版本:

Ubuntu: 18.04

Autoware: 1.14

Nvidia Driver: recommend

Cuda: 10.0.130_410.48 + Patch

cudnn: 10.0-linux-x64-v7.6.5.32

opencv:3.4.0

caffe:recommend

cmake:3.20.1

百度網盤:https://pan.baidu.com/s/1NXwzxu_W-jpybRn6qdIA5Q 密碼: d3lj

 

 

二. 安裝

1. 安裝nvidia driver

(1) 刪除ubuntu自帶的英偉達顯卡驅動程序

卸載英偉達自帶顯卡驅動:

sudo apt-get remove --purge nvidia*

關閉自帶的英偉達顯卡驅動:

sudo gedit /etc/modprobe.d/blacklist.conf

在打開的文檔最后添加:

blacklist nouveau
options nouveau modeset=0

保存退出后運行:

sudo update-initramfs -u

使blacklist生效。

重啟電腦后,輸入

lsmod | grep nouveau

如果沒有輸出,說明顯卡已經卸載。

選擇推薦安裝英偉達驅動版本

ubuntu-drivers devices

 這里推薦版本為nvidia-driver-460。

在桌面模式下添加英偉達庫,並安裝驅動

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-driver-460

安裝完成后,重啟電腦,進入系統后,執行:

nvidia-smi

輸出

說明安裝成功。

 

 

2. 安裝CUDA

去網盤下載:cuda_10.0.130_410.48_linux.run,默認下載到Downloads文件夾。

執行

sudo sh cuda_10.0.130_410.48_linux.run

出現說明之后,按Ctrl + C鍵跳過,會提示是否接受,鍵入accept。此時,注意:安裝第一步會提示是否安裝驅動,請一定鍵入n。之后每一步選擇y,當需要確認路徑時直接按回車,結束安裝。

加入環境變量,鍵入:

sudo gedit ~/.bashrc

在結尾加入:

export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH 

保存、退出、重啟。

重啟后,驗證安裝是否成功:

cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

如果輸出提示PASS,那么說明安裝成功。

如果需要卸載重裝,運行下列命令卸載 cuda 

cd /usr/local/cuda/bin
sudo ./uninstall_cuda_10.0.pl

 

 

3. 安裝cuDNN

去網盤下載:cudnn-10.0-linux-x64-v7.6.5.32.tgz,默認路徑為Downloads文件夾

解壓

tar -xzvf ~/Downloads/cudnn-10.0-linux-x64-v7.6.5.32.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.10.0: 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.6.5 /usr/local/cuda/lib64/libcudnn.so.7

可以解決

 

4. 安裝ROS Melodic

參照ROS WIKI,這里不詳述

如果出現在執行

$ sudo rosdep init

出現:

 

 嘗試

$ ping raw.githubusercontent.com

如果可以ping通的,於是可以直接訪問https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list網址,如下

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

將上述內容拷貝到/etc/ros/rosdep/sources.list.d/20-default.list中。rosdep init的目的就是下載20-default.list文件

這是可以直接運行:

$ rosdep update

如果不能更新,出現timeout的錯誤,那么將20-default.list中的raw.githubusercontent.com替換為raw.github.com后保存文件,重新執行rosdep update。

 

5. OpenCV 安裝

(1)安裝依賴:

$ sudo apt install build-essential git pkg-config libgtk-3-dev
$ sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
$ sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libopenblas-dev
$ sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev

(2)下載源碼

$ mkdir ~/opencv_build && cd ~/opencv_build
$ wget https://github.com/opencv/opencv/archive/3.4.0.zip -O opencv-3.4.0.zip
$ wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip -O opencv_contrib-3.4.0.zip
$ unzip opencv-3.4.0.zip
$ unzip opencv_contrib-3.4.0.zip

用CUDA 10.0以上版本編譯opencv3.0以上版本,會報錯:找不到dynlink_nvcuvid.h

需要下載:https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v8.2-ga2,解壓Video_Codec_SDK_8.2.16.zip

unzip Video_Codec_SDK_8.2.16.zip

在~/Downloads/Video_Codec_SDK_8.2.16/Samples/NvCodec/NvDecoder/找到cuviddec.h,在~/Downloads/Video_Codec_SDK_8.2.16/Samples/NvCodec/NvDecoder/找到nvcuvid.h,將這兩個文件拷貝到/usr/local/cuda/include/。

$ sudo cp ~/Downloads/Video_Codec_SDK_8.2.16/Samples/NvCodec/NvDecoder/cuviddec.h /usr/local/cuda/include/
$ sudo cp ~/Downloads/Video_Codec_SDK_8.2.16/Samples/NvCodec/NvDecoder/nvcuvid.h /usr/local/cuda/include/

修改opencv-3.4.0下的modules下的一些頭文件:

modules/cudacodec/src/precomp.hpp
modules/cudacodec/src/frame_queue.hpp
modules/cudacodec/src/cuvid_video_source.hpp
modules/cudacodec/src/video_decoder.hpp
modules/cudacodec/src/video_parser.hpp

將這些文件的

#if CUDA_VERSION >= 9000
    #include <dynlink_nvcuvid.h>
#else
    #include <nvcuvid.h>
#endif


改為:

#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000
    #include <dynlink_nvcuvid.h>
#else
    #include <nvcuvid.h>
#endif

編譯,安裝

$ cd ~/opencv_build/opencv-3.4.0 && mkdir build && cd build
$ cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_C_EXAMPLES=OFF \
-DOPENCV_EXTRA_MODULES_PATH=/home/leon/opencv_build/opencv_contrib-3.4.0/modules \
-DPYTHON_EXCUTABLE=/usr/bin/python2.7 \
-DWITH_CUDA=ON \
-DWITH_CUBLAS=ON \
-DDCUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
-DCUDA_ARCH_BIN="6.1" \
-DCUDA_ARCH_PTX="" \
-DCUDA_FAST_MATH=ON \
-DWITH_TBB=ON \
-DWITH_V4L=ON \
-DWITH_GTK=ON \
-DWITH_OPENGL=ON \
-DCMAKE_C_COMPILER=/usr/bin/gcc-7 \
-DCUDA_HOST_COMPILER=/usr/bin/g++-7 \
-DCUDA_PROPAGATE_HOST_FLAGS=oFF \
-DCMAKE_CXX_FLAGS="-std=c++11" \
-DBUILD_TIFF=ON \
-DBUILD_EXAMPLES=ON ..
$ make -j$nproc
$ sudo make install

查看opencv版本

$ pkg-config opencv --modversion

 

 

6. 安裝caffe

(1)caffe相關包

$ sudo apt install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt install -y --no-install-recommends libboost-all-dev
$ sudo apt install -y libgflags-dev libgoogle-glog-dev liblmdb-dev

(2)安裝caffe

sudo apt install caffe-cuda

 

7. 安裝autoware 1.14

(1)安裝Ubuntu 18.04 依賴

$ sudo apt update
$ sudo apt install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin
$ sudo apt install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
$ pip3 install -U setuptools

(2)安裝eigen3.3.7

$ cd && wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
$ mkdir eigen && tar --strip-components=1 -xzvf 3.3.7.tar.gz -C eigen
$ cd eigen && mkdir build && cd build && cmake .. && make
$ sudo make install
$ cd && rm -rf 3.3.7.tar.gz && rm -rf eigen

(3)安裝autoware 1.14

建立workspace

$ mkdir -p autoware.ai/src
$ cd autoware.ai

下載Autoware 1.14

$ wget -O autoware.ai.repos "https://gitlab.com/autowarefoundation/autoware.ai/autoware/raw/1.14.0/autoware.ai.repos?inline=false"
$ vcs import src < autoware.ai.repos

1.14的源碼在網盤可以直接下載

安裝ROS依賴

$ rosdep update
$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

編譯環境

$ AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

 

8. 編譯過程中可能產生的錯誤

(1)calibration_publisher

--- stderr: calibration_publisher                                                                                                
CMakeFiles/calibration_publisher.dir/src/calibration_publisher.cpp.o: In function `main':
calibration_publisher.cpp:(.text.startup+0x9b4): undefined reference to `cv::read(cv::FileNode const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status

修改/home/xxx/autoware.ai/src/autoware/utilities/calibration_publisher/CMakeLists.txt

target_link_libraries(calibration_publisher
        ${catkin_LIBRARIES}
        ${OpenCV_LIBS}     # added
)

修改/home/xxx/autoware.ai/src/autoware/utilities/calibration_publisher/package.xml

<depend>cv_bridge</depend>
<depend>image_transport</depend>
<depend>tf</depend>
<depend>libopencv-dev</depend>    # added

 

 

原創博文,轉載請標明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM