ubuntu18.04 ros melodic Autoware1.14源码编译安装(完整版,全过程)

一、安装NVIDIA驱动

查看推荐显卡

ubuntu-drivers devices

在这里插入图片描述

找到recommended推荐的版本
本机是470版本

sudo apt-get install nvidia-driver-470

如果安装失败,需要在安装之前进行sudo apt-get update指令

二、安装CUDA

注意:
Ubuntu18.04默认GCC-7,由于CUDA 9.x不支持GCC-7(下载页面没有对ubuntu18的支持),所以需要安装低版本的5或者<= 6.3.0,并设置为默认版本。否则应安装10.0以上版本CUDA
Nvidia显卡驱动与CUDA版本对应关系,显卡驱动版本越高,就可支持越高版本的CUDA,并对低等级驱动向下支持
安装步骤
1.输入以下命令,查看 GPU 支持的最高 CUDA 版本。我这里显示的是 11.4,说明安装的 CUDA 版本必须 <= 11.4。

nvidia-smi

在这里插入图片描述

2.前往CUDA官网https://developer.nvidia.com/cuda-toolkit-archive,选择合适的版本,我这里选择的是11.4.4版本。
在这里插入图片描述
在这里插入图片描述

选择runfile(local),并使用生成的指令进行下载和安装。
注意:若下载超时,可以选择以下两个个方法进行安装。
(1)在windows下载,前往https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda_11.4.4_470.82.01_linux.run,下载完成后转移到ubuntu文件夹下。
(2)进入gitee库,导入链接。
下载完成后,在下载目录输入以下指令。

sudo sh cuda_11.4.4_470.82.01_linux.run

弹出来第一个选择框,我这台服务器已经安装过 Nvidia 的显卡驱动了,因此选择continue
在这里插入图片描述

接着输入accept
在这里插入图片描述

先按回车去除driver项,之后选择install
在这里插入图片描述

安装完成后,在./bashrc文件中添加环境变量:

export PATH=/usr/local/cuda-11.4/bin${
    
    PATH:+:${
    
    PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

验证是否安装成功

nvcc -V

输入以下信息则代表安装成功!
在这里插入图片描述

三、安装cuDNN

成功安装完CUDA之后
官网下载CUDA对应版本的cuDNN,前往https://developer.nvidia.com/rdp/cudnn-archive
这里我选择的是8.9.0.131版本的cuDNN
在这里插入图片描述在这里插入图片描述

下载完成后,在文件所在目录解压缩

// 注意自己下载文件的名称
tar -xvf cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz

解压缩完成后,将部分文件复制转移

// 注意自己下载文件的名称
sudo cp cudnn-linux-x86_64-8.9.0.131_cuda11-archive/include/cudnn.h /usr/local/cuda/include/
 
sudo cp cudnn-linux-x86_64-8.9.0.131_cuda11-archive/lib/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
 
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

在这里插入图片描述

注意:cudnn8.0以上会将版本信息更新到cudnn_version.h文件中,也需要将这个文件复制,否则验证的时候会没有反应。

// 注意自己下载文件的名称
sudo cp cudnn-linux-x86_64-8.9.0.131_cuda11-archive/include/cudnn_version.h    /usr/local/cuda/include/

验证

// 注意自己下载文件的名称
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

出现如下信息即成功
在这里插入图片描述

四、OpenCV安装

1.安装包下载

前往OpenCV官网https://opencv.org/releases/,选择3.4.10版本,点击source或者github下载,这里我选择github下载,下载完成后解压。
在这里插入图片描述

2.opencv_contrib下载

前往https://github.com/opencv/opencv_contrib,选择与opencv对应的版本。这里我的是3.4.10版本。
在这里插入图片描述

两个文件都下载完成后,把opencv_contrib放到解压后opencv文件夹里面。

3.安装依赖

sudo apt-get install build-essential 
 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
 
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

4.安装

在opencv-3.4.10文件夹下新建build文件夹

cd opencv-3.4.10
mkdir build

在build路径下cmake编译

//注意将DOPENCV_EXTRA_MODULES_PATH路径改成自己的
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/car/opencv-3.4.10/opencv_contrib-3.4.10/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 ..

在这里插入图片描述

注意:需要修改为自己的opencv的路径。
然后进行make编译

sudo make -j8

出现以下报错:
问题一:fatal error:nvcuvid.h: No such file or directory
在这里插入图片描述

解决方法:
下载NVIDIA-SDK,下载地址:https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v8.2-ga2。或者去csdn上面找现成的包(可能需要会员)
下载完成之后解压缩,文件路径Video_Codec_SDK_8.2.16->Samples->NvCodec->NvDecoder,将其中的nvcuvid.h, cuviddec.h连个文件copy到/usr/local/cuda/include/中,终端中输入指令

sudo cp nvcuvid.h /usr/local/cuda/include
sudo cp cuviddec.h /usr/local/cuda/include

终端中输入指令进入报错提醒的文件目录中

cd /home/car/opencv-3.4.10/modules/cudacodec/src/
gedit precomp.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

参考链接:https://www.freesion.com/article/68371362181/
问题二:fatal error:boostdesc_bgm.i: No such file or directory
在这里插入图片描述

解决方法:
下载boostdesc_bgm.i等文件,并将其移动到opencv_contrib_3.4.10/modules/xfeatures2d/src目录下
参考链接:https://www.cnblogs.com/pine-apple/p/13176741.html
问题三:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
在这里插入图片描述

解决方法:
将opencv_contrid-3.4.10/modules/xfeatures2d/include/opencv2下的xfeatures2d文件夹和xfeatures2d.hpp拷贝到opencv-3.4.10/modules/stitching/include/opencv2目录下,和stitching文件夹并列。

问题四:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
在这里插入图片描述

解决方法:
打开/home/car/opencv3.4.10/samples/gpu/surf_keypoint_matcher.cpp
将红色引号的报错内容改为绝对路径
在这里插入图片描述

问题五:CMakeFiles/example_gpu_surf_keypoint_matcher.dir/surf_keypoint_matcher.cpp.o: In function `main’:
在这里插入图片描述

解决方法:
打开如下路径下的link.txt

/home/car/opencv-3.4.10/build/samples/gpu/CMakeFiles/example_gpu_surf_keypoint_matcher.dir/link.txt 

在如下位置加入
在这里插入图片描述

../../modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/surf.cuda.cpp.o

参考链接:https://github.com/opencv/opencv/issues/9949
最后再次编译,成功!
在这里插入图片描述

最后安装

sudo make install

5.添加路径
打开文件

sudo gedit /etc/ld.so.conf

在文件中添加如下代码

/usr/loacal/lib

在这里插入图片描述

保存并关闭,运行下面的指令

sudo ldconfig

6.环境的配置
将以下两行添加到./bashrc文件中

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

输入以下命令,查看所安装的opencv版本

pkg-config opencv --modversion

在这里插入图片描述

安装成功!

五、安装QT

QT官网下载,选择qt/下的完整安装包,会直接安装qtcreator:
在这里插入图片描述
选择你要安装版本下的.run(Linux),我这里安装的是5.12.8版本
在这里插入图片描述
下载完成之后,进入到文件所在目录
首先是安装QT

sudo chmod +x qt-opensource-linux-x64-5.12.8.run
sudo ./qt-opensource-linux-x64-5.12.8.run

一路默认,安装过程中需要登陆的话,断网后重新安装,中间选择安装模块根据需要选择,qtcreator和gcc编译器一定要安装,图中漏选了编译器,我手动补上去了
在这里插入图片描述
记住qt安装到了/opt目录下,后面卸载需要知道安装目录
然后是配置QT
安装 g++

sudo apt-get install g++

安装 openGL 库

sudo apt-get install mesa-common-dev

添加环境路径

sudo gedit ~/.bashrc
export PATH=/opt/Qt5.12.8/Tools/QtCreator/bin:$PATH

打开终端,运行qtcreator

qtcreator

在这里插入图片描述
QT安装完成

六、安装caffe

安装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

安装caffe

sudo apt install caffe-cuda

七、安装eigen3.3.7

下载链接:https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz
下载完成后,在压缩包所在目录打开终端

//解压
sudo tar -xzvf eigen-3.3.7.tar.gz
 
//安装
cd eigen-3.3.7
mkdir build
cd build
cmake ..
sudo make install

安装后,头文件安装在/usr/local/include/eigen3/
移动头文件:

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

八、安装autoware

安装依赖

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

建立工作空间

mkdir -p autoware-1.14/src
 
cd autoware-1.14

下载autoware1.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

若下载超时,可以去网盘下载
这里我提供我修改过的autoware1.14安装包
链接: https://pan.baidu.com/s/1c4Mrs9-o7Ce-GW3BC_ALcw?pwd=he7s
提取码: he7s
安装ros依赖

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

若报错过多,采用鱼香ros一键配置rosdepc,再进行依赖的安装
编译环境

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

出现:Could not find a configuration file for package “OpenCV” that is compatible with requested version “3.4.16”
在这里插入图片描述

解决方法:
在autoware目录下搜索编译失败的功能包,打开Cmakelist文件,找到find_package(OpenCV 3.4.16 REQUIRED),将其改为对应的opencv版本(我是3.4.10)。

继续编译,后续会出现同样的错误,修改方法一样,这里就不一一赘述了。
所有错误修改完成后,编译通过!
在这里插入图片描述

下载完成!

猜你喜欢

转载自blog.csdn.net/justinyjf/article/details/131226190