工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行

目录

  • 前言
    • 1.环境要求的库、软件等下载地址
    • 2.系统版本
    • 3.Autoware源码地址
    • 4.本文参考链接
    • 5.运行成功的gif图
  • 一、安装ROS Melodic
    • 1.使用鱼香ROS的一键安装ROS命令(推荐)
    • 2.普通方法安装(不推荐)
      • 1)更换软件源
      • 2)设置key
      • 3)安装ros
      • 4)解决依赖问题
      • 5)接着检查安装情况:运行小海龟
  • 二、安装Eigen3.3.7库
  • 三、安装OpenCV3.4.5库
    • 1.下载解压
    • 2.安装依赖库
    • 3.编译
    • 4.配置OpenCV-3.4.5的编译环境
    • 5.测试配置好的OpenCV-3.4.5
  • 四、下载编译Autoware 1.14源码
    • 1.安装环境依赖
    • 2.建立工作空间
    • 3.下载Autoware
    • 4.编译
      • 错误1:找不到opencv文件夹
      • 错误2:libopencv_*.so.3.2.0文件缺失
      • 错误3:ROS缺少一些依赖
      • 错误4:op_motion_predictor_core.cpp 中间一个函数名称错误
    • 5.验证
  • 五、下载YOLO2、YOLO3权重文件
  • 六、安装cudnn
  • 七、安装SSDcaffe
    • 1.大神修改过支持cudnn8版本的安装
      • 1.首先安装相关依赖:
      • 2.接着下载源码
      • 3.安装
        • (1)make all -j6
        • (2)make runtest -j6
        • (3)下面继续
      • 4.重新编译
    • 2.官网不支持cudnn8版本的安装
      • 1.首先安装相关依赖:
      • 2.接着下载源码
      • 3.安装
  • 八、安装QT,版本高于5.9.5就可以
    • make错误1:SSL问题
    • make错误2:缺少`krb5.h`头文件
    • make错误3:宏错误
    • make错误4:链接库失败
  • 九、运行官方demo
    • 1.下载官网数据包,并解压
    • 2.运行autoware
    • 3.运行官网demo


前言

第一次编译运行Autoware源码,在此记录一下。
在编译源码前,先配环境。环境要求为CUDA、Eigen3.3.7及以上、OpenCV3.4.5、cudnn、protobuf3.0.0、qt5.9.5及以上、YOLO2,YOLO3的权重文件、SSDcaffe。
工控机自带CUDA10.2.89,protobuf3.0.0,这部分就不安装了
CUDA和cudnn版本要对应,CUDA10.0和cudnn7.6.5对应,CUDA10.2和cudnn8.0对应
caffe不支持cudnn8,所以要安装CUDA10.0和cudnn7.6.5,免了后面的麻烦;如果安装了CUDA10.2和cudnn8,后面找到了大神修改过的caffe,支持cudnn8

1.环境要求的库、软件等下载地址

CUDA下载地址
Eigen3.3.7下载地址
OpenCV3.4.5下载地址
cudnn下载地址
protobuf下载地址
qt下载地址
YOLO2权重文件下载地址
YOLO3权重文件下载地址
SSDcaffe下载地址

2.系统版本

工控机Ubuntu版本为Ubuntu18.04,cuda版本为10.2.89,protobuf版本为3.0.0。

3.Autoware源码地址

Autoware源码地址

4.本文参考链接

Autoware 1.14 源码编译+感知SSD+YOLOv3+Point Pillar模块运行(步骤+报错+解决方法记录)
ubuntu 18.04 安装 AutoWare 1.14.0(附踩坑指南)
ubuntu18.04安装Autoware1.14—GPU版 最全环境配置说明
ubuntu18.04安装Nvidia驱动、cuda、cuDNN、autoware1.14(GPU版本)教程

5.运行成功的gif图


一、安装ROS Melodic

1.使用鱼香ROS的一键安装ROS命令(推荐)

使用鱼香ROS的一键安装ROS命令。(注意:安装ROS需要在网络好的地方安装,否则会出现无法下载的错误)

wget http://fishros.com/install -O fishros && . fishros

第一次打开终端输入该命令选择[1]:一键安装:ROS,安装完成后再次输入该命令选择[3]:一键配置:rosdep,完成后再次输入该命令选择[4]:一键配置:ROS环境,之后就完成了ROS的安装。
接着检查安装情况:运行小海龟
打开终端输入

roscore

再打开一个终端输入

rosrun turtlesim turtlesim_node

出现了一个小海龟
再打开一个终端输入

rosrun turtlesim turtle_teleop_key

让光标在第三个打开的终端中闪烁,此时就可以通过方向键控制小乌龟移动了

2.普通方法安装(不推荐)

1)更换软件源

此步骤是解决sudo apt-get update 更新报错的问题

E: 无法下载 https://mirrors.ustc.edu.cn/ubuntu-ports/dists/bionic/main/binary-amd64/Packages  404  Not Found [IP: 202.141.176.110 443]
E: 无法下载 https://mirrors.ustc.edu.cn/ubuntu-ports/dists/bionic-updates/main/binary-amd64/Packages  404  Not Found [IP: 202.141.176.110 443]
E: 无法下载 https://mirrors.ustc.edu.cn/ubuntu-ports/dists/bionic-backports/main/binary-amd64/Packages  404  Not Found [IP: 202.141.176.110 443]
E: 无法下载 https://mirrors.ustc.edu.cn/ubuntu-ports/dists/bionic-security/main/binary-amd64/

参考链接

备份系统之前的源

cp /etc/apt/sources.list /etc/apt/sources.list.bak

更换软件源,打开终端输入

sudo gedit /etc/apt/sources.list

更换为下面的

# 默认注释了源码仓库,如有需要可自行取消注释
deb [arch=armhf] https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main main restricted universe multiverse
deb [arch=armhf] https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb [arch=armhf] https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb [arch=armhf] https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb [arch=armhf] https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src [arch=armhf] https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse

2)设置key

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3)安装ros

sudo apt-get update
sudo apt-get install ros-melodic-desktop-full

4)解决依赖问题

(1)

sudo rosdep init

出现问题

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

参考链接
打开终端输入

sudo gedit /etc/hosts

在文件的最后一行输入

185.199.108.133 raw.githubusercontent.com

(2)

rosdep update

参考链接

5)接着检查安装情况:运行小海龟

打开终端输入

roscore

再打开一个终端输入

rosrun turtlesim turtlesim_node

出现了一个小海龟
再打开一个终端输入

rosrun turtlesim turtle_teleop_key

让光标在第三个打开的终端中闪烁,此时就可以通过方向键控制小乌龟移动了


二、安装Eigen3.3.7库

官网下载链接
找到eigen3.3.7的压缩包下载下来
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第1张图片接着打开终端

unzip eigen-3.3.7.zip
cd eigen-3.3.7
mkdir build && cd build
sudo cmake ..
sudo make -j6
sudo make install

三、安装OpenCV3.4.5库

参考链接

1.下载解压

OpenCV官网链接,找到OpenCV3.4.5,点击Sources下载
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第2张图片解压

unzip  opencv-3.4.5.zip

2.安装依赖库

sudo apt-get update
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev 

报错

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第3张图片
解决方法

sudo gedit /etc/apt/sources.list

sources.list文件最后面添加:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe

再次输入上面的命令

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev 

3.编译

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j6

编译成功截图

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第4张图片

sudo make install

4.配置OpenCV-3.4.5的编译环境

1.将OpenCV的库添加到路径,从而可以让系统找到

sudo gedit /etc/ld.so.conf.d/opencv.conf

2.执行此命令后打开的可能是一个空白文档,这个不需要管,只需要将一下语句加入最后即可:

/usr/local/lib

3.执行下面命令,使得刚才的配置生效

sudo ldconfig

4.配置bash

sudo gedit /etc/bash.bashrc

5.在打开的文件最后换行添加下面命令

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

6.保存,执行以下命令使得上面配置生效

source /etc/bash.bashrc

7.最后进行更新

sudo updatedb

报错 :command not found
参考链接

遇到权限问题需要进入root,输入密码安装

su  root
apt-get  install  mlocate

之后再次更新

sudo updatedb

至此,OpenCV-3.4.5的安装及配置已经完成。

5.测试配置好的OpenCV-3.4.5

1.进入到OpenCV-3.4.5目录的example_cmake目录

cd opencv-3.4.5/samples/cpp/example_cmake

2.执行下面命令

cmake .

结果如下:

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第5张图片

3.执行下面命令

make

结果如下:

在这里插入图片描述
4.最后插上一个相机,执行./opencv_example

./opencv_example

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第6张图片


四、下载编译Autoware 1.14源码

1.安装环境依赖

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.建立工作空间

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

3.下载Autoware

这步有四行命令,这边先给出,因为下面写的东西太多,防止有遗漏:

wget -O autoware.ai.repos "https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.14.0/autoware.ai.repos"
vcs import src < autoware.ai.repos
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
wget -O autoware.ai.repos "https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.14.0/autoware.ai.repos"
vcs import src < autoware.ai.repos

此步可能会有如下部分文件夹未下载的情况,可以打开autoware.ai.repos文件,找到未下载的文件夹的链接,依次下载。
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第7张图片

rosdep update

报错

ERROR: error loading sources list:
    The read operation timed out

解决方法

(1)解决方法1:更改下载资源

修改文件权限指令

sudo chmod 777 /etc

1.修改文件sources_list.py

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

url="https://ghproxy.com/"+url添加到脚本中的download_rosdep_data函数中,以应用ghproxy代理服务(该函数出现在295行左右),更改后内容如下图:
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第8张图片
2.修改文件__init__.py

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py 

68行左右,修改DEFAULT_INDEX_URL的参数,将网址改为

DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第9张图片
3.修改四个文件
https://ghproxy.com/添加到gbpdistro_support.py(35行左右)、sources_list.py(64行左右)、rep3.py(36行左右) 、github.py(68行 119行左右)文件的https://raw~前:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第10张图片

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第11张图片

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第12张图片

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py

在这里插入图片描述
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第13张图片

4.修改文件gbpdistro_support.py

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

205行左右添加如下代码:

gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第14张图片
修改后执行

sudo apt-get update
rosdep update

(2)解决方法2

硬件解决
连手机热点
(3)解决方法3:加长访问时间

分别更改/usr/lib/python2.7/dist-packages/rosdep2/文件夹下三个文件中下载时间,即DOWNLOAD_TIMEOUT = 15.0的值,把默认值15改大一些。(此步不是很关键,只修改了rep3.py文件)

文件名称:
sources_list.py(75行左右)、gbpdistro_support.py(40行左右)、rep3.py(39行左右)

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第15张图片
修改后执行

sudo apt-get update
rosdep update

至此rosdep update报错解决。

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

4.编译

工控机CUDA版本为10.2.89(注意一下自己的CUDA版本),首先修改一下文件/home/autoware.ai/src/autoware/common/autoware_build_flags/cmake/autoware_build_flags-extras.cmake 第21行,把10.0全部改成10.2(CUDA版本小于等于10的就不用改了):

if(NOT ${CUDA_VERSION} VERSION_LESS "10.2"
        AND NOT ${CUDA_VERSION} VERSION_EQUAL "10.2" )
  message(FATAL_ERROR "GPU support on Melodic requires CUDA<=10.2")

下面编译

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

错误1:找不到opencv文件夹

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第16张图片
参考链接

原因:NVIDIA的32.3.1.img文件把opencv文件命名成了opencv4
解决办法:修改/opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake文件,把所有的include/opencv改成include/opencv4

sudo gedit /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

搜索/opencv

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第17张图片
将94行和96行的opencv改成opencv4

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第18张图片

错误2:libopencv_*.so.3.2.0文件缺失

不知道是什么原因的导致的,一开始从网上下载别人上传的libopencv_*.so.3.2.0动态链接库文件(这是个坑,博主上传的是X86架构的,不是ARM架构的),进入root将文件拖到/usr/lib/aarch64-linux-gnu/文件夹下,之后再次编译,出现下面的错误,文件格式不对,后来进入该文件夹下打开终端,输入file libopencv_objdetect.so.3.2.0,发现文件是X86架构的,所以文件格式错误,最终找到了一个解决办法。

参考链接

在这里插入图片描述

解决办法:
1、卸载现有版本的opencv库,桌面打开终端输入

sudo apt-get purge libopencv-dev

2、这个时候需要修改一个系统文件,就是这个文件导致apt安装的opencv版本是4.0版本而不是ubuntu18.04系统默认的3.2.0版本

文件路径是:/etc/apt/sources.list.d/nvidia-l4t-apt-source.list,终端输入

sudo gedit /etc/apt/sources.list.d/nvidia-l4t-apt-source.list

打开之后注释掉里面的两行(这里贴的别人的图,自己的工控机打开是一片空白,就不管他了)
在这里插入图片描述3、更新

apt update

4、安装opencv3.2.0版本库

sudo apt-get install libopencv-dev

错误3:ROS缺少一些依赖

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第19张图片

解决办法:安装
安装命令

sudo apt-get install ros-melodic-缺失文件名
#melodic 为Ubuntu18.04对应的ROS版本名,具体的改为自己对应的ROS版本名
#缺失的文件名中间的下划线要改成中间横线

这边在编译过程中发现缺失了3个(缺什么安装什么):jsk-rviz-pluginsgrid-map-cvgrid-map-ros

sudo apt-get install ros-melodic-jsk-rviz-plugins
sudo apt-get install ros-melodic-grid-map-cv
sudo apt-get install ros-melodic-grid-map-ros

错误4:op_motion_predictor_core.cpp 中间一个函数名称错误

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第20张图片
参考链接

原因:/autoware.ai/src/autoware/core_planning/op_local_planner/nodes/op_motion_predictor/op_motion_predictor_core.cpp中391行调用的函数名写错了。/autoware.ai/src/autoware/common/op_ros_helpers/src/op_ROSHelpers.cpp321行/autoware.ai/src/autoware/common/op_ros_helpers/include/op_ros_helpers/op_ROSHelpers.h216行定义和声明的函数名称为ConvertPredictedTrajectoriesMarkers

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第21张图片
解决办法:

sudo gedit autoware.ai/src/autoware/core_planning/op_local_planner/nodes/op_motion_predictor/op_motion_predictor_core.cpp

将391行调用的函数名称改成ConvertPredictedTrajectoriesMarkers

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第22张图片

5.验证

编译成功截图:

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第23张图片
autoware.ai文件夹下打开一个终端:

source ./install/setup.bash
roslaunch runtime_manager runtime_manager.launch

结果如下:

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第24张图片
至此,autoware编译安装完成


五、下载YOLO2、YOLO3权重文件

autoware中缺少YOLO2、YOLO3的权重文件,只需要把权重文件下载到相应目录下即可。进入到如下目录:

cd autoware.ai/install/vision_darknet_detect/share/vision_darknet_detect/darknet

新建data目录

mkdir data

下载权重文件:

cd data
wget https://pjreddie.com/media/files/yolov3.weights
wget https://pjreddie.com/media/files/yolov2.weights

六、安装cudnn

参考链接
cudnn下载地址

1.安装

sudo dpkg -i libcudnn8_8.0.0.180-1+cuda10.2_arm64.deb
sudo dpkg -i libcudnn8-dev_8.0.0.180-1+cuda10.2_arm64.deb
sudo dpkg -i libcudnn8-doc_8.0.0.180-1+cuda10.2_arm64.deb

2.安装完成后,其实是直接安装到了默认安装路径usr/includeusr/lib下的,因此需要将其拷贝到cuda安装路径下:

sudo cp /usr/include/cudnn_version.h  /usr/local/cuda/include/
sudo cp /usr/lib/aarch64-linux-gnu/libcudnn*  /usr/local/cuda/lib64/

3.然后执行下面命令,重新生成cudnn库的软连接

cd /usr/local/cuda/lib64
sudo chmod +r libcudnn*
sudo rm -rf libcudnn.so libcudnn.so.8
sudo ln -s libcudnn.so.8.0.0 libcudnn.so.8

链接最好依照实际链接文件,不一定是8.0.0

sudo ln -s libcudnn.so.8 libcudnn.so
sudo ldconfig

4.安装完成

查看cuda版本

nvcc -V

查看cudnn版本

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

注:这里有个坑,一开始在第3步中copy了cudnn.h文件夹,然后查看版本看这个文件夹没反应,之后找到这篇博客,新版本的的版本信息在cudnn_version.h里了,不在cudnn.h

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第25张图片


七、安装SSDcaffe

1.大神修改过支持cudnn8版本的安装

参考链接列表
Caffe编译安装-RTX3090&cudnn8.x
大神修改的caffe源码
大神的网站

1.首先安装相关依赖:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev
sudo apt-get install libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.接着下载源码

git clone https://github.com/Qengineering/caffe.git
cd caffe
git checkout ssd

出现“分支”则说明成功

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第26张图片

3.安装

正常的步骤都是cp Makefile.config.example Makefile.config,但是这里的工控机总会出现各种各样的错误,最终发现,在caffe文件夹下有arm架构和X86架构的Makefile.config.*_example,选择适合自己的,使用命令cp Makefile.config.*_example Makefile.config
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第27张图片

在caffe文件夹下打开终端

cp Makefile.config.cp36_aarch64-linux-gun_example Makefile.config

接下来修改Makefile.config
参考链接1:Jetson TX2 arm板子刷机,安装Caffe
参考链接2:Ubuntu16.04 Caffe 安装步骤记录(超详尽)

在caffe文件夹下打开终端

sudo gedit Makefile.config

每个人的环境不一样,要修改的地方也不一样(上面博客提到的要改的地方都要改)

其实之后也就4个命令,奈何错误太多,分成了三部分来解决。

make all -j6
make runtest -j6
make pycaffe -j6
make test -j6

(1)make all -j6

在caffe文件夹下打开终端

make all -j6

错误1:cudnn问题
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第28张图片
修改这个文件caffe/cmake/Cuda.cmake,上面第六步提到新版本的的版本信息在cudnn_version.h里了,不在cudnn.h,所以把里面的两个cudnn.h改成cudnn_version.h

sudo gedit /caffe/cmake/Cuda.cmake

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第29张图片
之后在caffe文件夹下打开终端

make clean
make all -j6

错误2:boost问题
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第30张图片
参考链接1:cafee编译错误几个总结
参考链接2:「caffe编译bug」 undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator

/caffe/Makefile文件的269行左右改成下面这样(得根据自己情况改)

LIBRARIES += glog gflags protobuf boost_thread stdc++ boost_atomic boost_regex boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第31张图片之后在caffe文件夹下打开终端

make clean
make all -j6

成功截图
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第32张图片

(2)make runtest -j6

make runtest -j6

报错

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第33张图片
暂时没有解决,别的博主说此步出错不影响接下来的使用,先跳过了。

(3)下面继续

make pycaffe -j6
make test -j6

这两步没啥问题

4.重新编译

进入autoware.ai文件夹下打开终端输入

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

2.官网不支持cudnn8版本的安装

以下是自己试错的安装记录,下面可以不用看,由于遇到了很多问题,记录一下,感兴趣的人可以看一下,不过没有解决完问题,一直卡在编译那一步。

1.首先安装相关依赖:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev
sudo apt-get install libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.接着下载源码

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd

出现“分支”则说明成功

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第34张图片

3.安装

mkdir build && cd build
cmake ..

报错
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第35张图片
参考链接

原因:cmake版本过低

解决办法:升级cmake
1.查看当前版本打开终端输入

cmake --version

2.卸载cmake(安装ros时可跳过)

sudo apt remove cmake

注:在此步骤中,如果安装了ros系统,提示会卸载许多与ros相关的cmake文件,可能会导致ros无法使用,所以跳过此步。

3.下载cmake
下载更高版本cmake,cmake官网地址。 这里下载的是 cmake-3.23.3.tar.gz 。

4.安装cmake
(1)将 cmake-3.23.3.tar.gz 解压

tar -zxvf cmake-3.21.6.tar.gz

(2)将原来版本的cmake执行文件删除

打开终端输入

cd /usr/bin/
sudo rm cmake

(3)安装 cmake-3.23.3

cd cmake-3.23.3
./configure
make -j6
sudo make install

5.再次查看当前版本

打开终端输入

cmake --version

下面继续安装ssdcaffe

cd caffe/build
cmake ..

报错

-bash: /usr/bin/cmake: No such file or directory

参考链接,解决办法:手动添加进去

make all -j6

错误1:函数名错误(因为caffe不支持cudnn8导致的)
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第36张图片
总共要改3处地方

sudo gedit caffe/src/caffe/layers/cudnn_conv_layer.cpp

131行cudnnGetConvolutionForwardAlgorithm改成cudnnGetConvolutionForwardAlgorithm_v7

149行cudnnGetConvolutionBackwardFilterAlgorithm改成cudnnGetConvolutionBackwardFilterAlgorithm_v7

160行cudnnGetConvolutionBackwardDataAlgorithm改成cudnnGetConvolutionBackwardDataAlgorithm_v7

错误2:宏名称错误(caffe不支持cudnn8导致的)
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第37张图片
总共要改3处地方

sudo gedit caffe/src/caffe/layers/cudnn_conv_layer.cpp

136行CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT 改成CUDNN_CONVOLUTION_FWD_ALGO_DIRECT

151行CUDNN_CONVOLUTION_BWD_FILTER_SPECIFY_WORKSPACE_LIMIT改成CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT

162行CUDNN_CONVOLUTION_BWD_DATA_SPECIFY_WORKSPACE_LIMIT改成CUDNN_CONVOLUTION_BWD_DATA_ALGO_COUNT

改了之后还是有错误,后来没有进行下去,换了上面大神修改的版本

make runtest -j6
make pycaffe -j8

八、安装QT,版本高于5.9.5就可以

参考链接

参考链接

qt下载地址

工控机是ARM内核的,直接使用chmod +x qt-opensource-linux-x64-5.9.5.run./qt-opensource-linux-x64-5.9.5.run会报以下的错误:

bash: ./qt-opensource-linux-x64-5.9.5.run: cannot execute binary file: Exec format error

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第38张图片下面开始下载安装

这里下载的是qt5.9.5版本,5.9/5.9.5/single/目录下的qt-everywhere-opensource-src-5.9.5.tar.xz

./configure
make -j6

make错误1:SSL问题

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第39张图片
根据此链接的说法,需要降低openssl的版本

openssl降版本的方法
openssl官网

1.打开终端输入openssl version,查看当前的openssl版本:

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第40张图片
2.下载需要的openssl版本包,这里选了1.0.1r版本

wget http://www.openssl.org/source/openssl-1.0.1r.tar.gz

3.解压包,安装到/usr/local/ssl/目录下

tar zxvf openssl-1.0.1r.tar.gz
cd openssl-1.0.1r
./config --prefix=/usr/local/ssl
make -j6
sudo make install

4.将旧的openssl执行文件及目录重命名

mv -f /usr/bin/openssl /usr/bin/openssl.old
mv -f /usr/include/openssl /usr/include/openssl.old

5.修改软链,指向新版本的openssl路径

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl 
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

6.添加so库的路径,添加完成之后,运行ldconfig ,将新增的so 文件缓存到/etc/ld.so.cache

echo "/usr/local/ssl/lib">>/etc/ld.so.conf 
ldconfig -v

7.查看版本openssl版本

openssl version

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第41张图片

make错误2:缺少krb5.h头文件

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第42张图片
参考链接

解决办法:安装依赖

sudo apt-get install libkrb5-dev

make错误3:宏错误

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第43张图片
参考链接

原因:同时安装了openssl 1.1和openssl 1.0版本,相冲突

解决方法:修改不使用的版本的头文件名字,达到找到对的opensslconf.h文件的目的

mv /usr/include/aarch64-linux-gnu/openssl/opensslconf.h /usr/include/aarch64-linux-gnu/openssl/opensslconf.h.bak

make错误4:链接库失败

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第44张图片解决办法,将qt之前的make文件清除,然后从头编译

make clean
./configure
make -j6

make成功截图
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第45张图片
最后执行安装命令

sudo make install

安装成功截图

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第46张图片


九、运行官方demo

参考链接1:Autoware1.14运行官网Demo 适配镭神激光雷达
参考链接2:Autoware 培训笔记 No. 2——基于点云的定位

1.下载官网数据包,并解压

mkdir .autoware
cd .autoware
wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz
wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz
tar zxfv sample_moriyama_150324.tar.gz
tar zxfv sample_moriyama_data.tar.gz

2.运行autoware

在autoware.ai文件夹下打开一个终端:

source install/setup.bash
roslaunch runtime_manager runtime_manager.launch

3.运行官网demo

1)进入 Simulaton页面,点击界面右上方 Ref按钮,加载录制用于定位的bag文件,这里选择刚刚解压的文件sample_moriyama_150324.bag,设置start time140,点击play,然后迅速点击pause
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第47张图片注意:请一定要先做这一步,这是因为要同步时间。如果在后面做,会产生关于stamped的错误。

2)在Setup菜单中,确保Localizer下选项为Velodyne,在Baselink to Localizer中设置好各个参数之后点击TF按钮,其中x、y、z、yaw、pitch、roll表示真车雷达中心点与车身后轴中心点的相对位置关系(右手坐标系,真车后车轴为原点),此时可以点击Vehicle Model按钮,如果Vehicle Model为空,那么会加载一个默认模型(在rviz显示时,如果有激光雷达数据,车辆会显示为黑色)。如下所示。
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第48张图片
3)点击Map页面,点击TF右侧的Ref选择autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/tf_local.launch文件,这是加载默认world到map的坐标转换,然后点击TF按钮;之后点击Point Clouds右侧的Ref,选择.autoware/sample_moriyama_data/data/map/pointcloud_map/文件夹下面的所有点云文件(ctrl + A 然后点右下角 open)

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第49张图片之后点击Point Clouds按钮加载点云地图
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第50张图片
4)选择Sensing页面,按照下图勾选:
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第51张图片
5)选择Computing页面,按照下图勾选:
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第52张图片
6)打开RViz,在左上角File菜单中的open config选择路径为autoware.ai/src/autoware/documentation/autoware_quickstart_examples/config/default.rviz的文件。这时回到Simulaton页面,点击Pause开始。这时可以从RViz中看到一辆车,等待一会后车身周围出现激光雷达数据
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第53张图片
此时没有点云地图,左边的Points Map也显示为红色,可以将Points Map右边红色的勾号点掉然后再点上,等待一会就有点云地图了,而且Points Map也变成了正常的蓝色
工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_第54张图片
7)运行成功的gif图

你可能感兴趣的:(ubuntu,人工智能,个人开发,arm,自动驾驶)