zoukankan      html  css  js  c++  java
  • 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

    原创博文,转载请标明出处。

  • 相关阅读:
    Linux 下安装JDK1.8
    INSERT IGNORE 与INSERT INTO的区别
    linux安装redis 完整步骤
    从0开始 图论学习 广度优先搜索 链式前向星表示法
    从0开始 图论学习 深度优先遍历 链式前向星表示法
    从0开始 图论学习 链式前向星 最好的建图方法
    从0开始 图论学习 邻接表 STL vector
    从0开始 图论学习 前向星表示法
    数据结构实习
    数据结构实习
  • 原文地址:https://www.cnblogs.com/hgl0417/p/14617025.html
Copyright © 2011-2022 走看看