像教女朋友一样教你安装Autoware.ai

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

今天自动驾驶之心很荣幸邀请到夏嵩杰来分享Autoware.ai-1.14.0超详细的安装教程!如果您有相关工作需要分享,请在文末联系我们!

>>点击进入→自动驾驶之心【仿真测试】技术交流群

作者 | 夏嵩杰

编辑 | 自动驾驶之心

本文档以逻辑状态进行安装,会遇到的错误也是大家最大可能遇到的,希望能帮助大家学习!

硬件支持

首选 i7 处理器,i5 也可以(8核)
8GB - 32GB 运行内存
至少 30GB 硬盘存储空间(推荐使用固态硬盘)
显卡 NVIDIA GTX GeForce GPU(980M或更高性能)

本机硬件

i5(8核)
8GB 运行内存
120GB 硬盘存储空间
显卡 NVIDIA GTX GeForce 1050 Ti

安装可以分为docker和源码安装,两者都可以,根据习惯或安装过程是否顺利进行选择。要注意的是一定要有gpu驱动!!!

docker编译

1. 安装docker

运行以下指令

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce

docker版本至少19以上。

2.安装nvidia驱动

打开系统的软件与更新,选择附加驱动,等待可选驱动加载

5f4f21baf50c0b8ef1750f7648c07e97.png

加载完成:

8df5c0ec98cba9de8d8342bb2476b725.png

这里我选择的是470,对应的cuda版本是11.4。选择完点击应用即可,然后在终端输入nvidia-smi可看到:

bac1a75130cb8053853087a5c8c007d6.png

即完成。

3. 安装docker-nvidia

运行以下指令:

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2

4.安装autoware的docker版本

git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
cd docker/generic 
./run.sh

一般master是最新的1.14版本。在执行./run.sh时,通常会要求root权限,如果不想每次运行docker都要用root权限,可以用下面的方法配置:

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

耐心等待下载,需要下载一段时间了,下载完成之后可能会报一个错误:usermod: UID '0' already exists:

7edcb48956cc5d0a56694adce3444863.png

需要手动修改一下刚才运行的run.sh脚本,加入这一段内容:

USER_ID="$(id -u)"
if [ USER_ID != 0 ]; then
USER_ID=1000;
else
USER_ID=${USER_ID};
fi
646b74320e071ea72ed1b4d883955907.png

注意,安装完会在下载autoware-docker相应路径生成shared_dir文件夹,方便传文件到docker。

5.编译

cd /home/autoware/Autoware (此目录为工程目录)
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

可以不用编译,docker版本已经编译好了。

6.运行

source install/setup.bash
roslaunch runtime_manager runtime_manager.launch
4212dfeb1a2ee56d899ed58940047097.png

源码编译

ubuntu20编译源码会出现一堆版本问题,建议使用ubuntu18.04,还有安装一下cuda驱动,安装方式如docker里面介绍。

1.创建工程

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

2.下载源码

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

3.使用rosdep安装依赖

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

如果rosdep update报错:index-v4.yaml文件找不到

解决方法参考:https://zhuanlan.zhihu.com/p/479551543

8ac61c2b9978e173d593e80cac15c2f9.png

如果出现以上错误,缺什么安装什么,比如 sudo apt-get install ros-melodic-rosbridge-server。

最后成功。

864abbf15ed3b7eb78c82d9cceefdfd6.png

4.python2.7环境,别用python3或conda。

python2和python3相互切换
sudo update-alternatives --config python

切换为python2.7

5.先安装,注意不要在conda里面运行

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
pip install catkin_pkg -i https://pypi.tuna.tsinghua.edu.cn/simple/
sudo apt install libglew-dev

6.先安装一些缺的ros依赖(在rosdep步骤可能缺漏的包)

sudo apt-get update

我已总结好,直接运行

sudo apt-get install -y ros-melodic-jsk-recognition-msgs ros-melodic-jsk-rviz-plugins ros-melodic-nmea-msgs ros-melodic-rqt-gui  ros-melodic-rqt-gui-py  ros-melodic-nmea-navsat-driver ros-melodic-velodyne-pointcloud  ros-melodic-grid-map-cv ros-melodic-grid-map-msgs  ros-melodic-grid-map-ros ros-melodic-automotive-navigation-msgs ros-melodic-rosbash  ros-melodic-autoware-msgs ros-melodic-automotive-platform-msgs ros-melodic-qpoases-vendor ros-melodic-xacro
sudo apt-get install -y ros-melodic-controller-manager  ros-melodic-robot-state-publisher  ros-melodic-joint-state-controller  ros-melodic-gps-common ros-melodic-geodesy

7.安装Qt

我用的是5.9版本,网上资料比较多。

8.安装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/

9.安装opencv"3.4.16"

可以参考:https://blog.csdn.net/qq_58879770/article/details/127037125

10.编译

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

默认会在gpu上编译

11.报错经验

问题1.:

编译到ros_observer时,会报出如下错误:/usr/bin/ld: CMakeFiles/ros_observer.dir/src/ros_observer.cpp.o: undefined reference to symbol ‘pthread_mutexattr_settype@@GLIBC_2.2.5’ //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line

解决:

打开autoware/common/ros_observer/CMakeLists.txt,在所有的target_link_libraries中,加入libpthread.so.0,再编译即可通过

5f301a54060b183662f68a711912dfef.png

问题2.:

执行编译ndt_gpu会出现错误:GPU support on Melodic requires Eigen version>= 3.3.7

解决:

在/usr目录下搜索Eigen3Config.cmake文件,/usr/lib/cmake/eigen3目录下与/usr/local/share/eigen3/cmake目录下存在这个文件,区别在于:

/usr/local/share/eigen3/cmake目录下的Eigen3Config.cmake文件第32行为:set (EIGEN3_VERSION_STRING "3.3.7")

/usr/lib/cmake/eigen3目录下的Eigen3Config.cmake文件第42行为:set (EIGEN3_VERSION_STRING "3.3.4")

(上面的区别请参考自己的实际文件)

所以只需要将/usr/lib/cmake/eigen3下的全部文件保存到别处后删除,然后将/usr/local/share/eigen3/cmake下的全部文件拷贝到/usr/lib/cmake/eigen3目录下即可。

1bbf712098a2b1f80e2b7c735a4e467a.png

比如我这里将原先的文件保存在backup-eigen3.3.4,把/usr/local/share/eigen3/cmake下的全部文件拷贝到/usr/lib/cmake/eigen3目录

重新执行编译命令。

我是裸机安装的,所以大家跟着我步骤,应该不会出现大问题。

12.运行

source install/setup.bash
roslaunch runtime_manager runtime_manager.launch

运行的效果根dokcer的一样,会出现ui界面。

13.注意

1.运行的时候也会有一点小错误,比如print要改成python3的print,还有一些python的包要pip install一下,注意运行也要在python2.7下的环境运行。

2.我还出现了一个错误:

sudo: 没有终端存在,且未指定 askpass 程序

网上的解决方法:

将当前用户设置为不需要密码的方式,否则会遇到如下错误,sudo:没有终端存在,且未指定askpass程序

sudo visudo

在%sudo ALL=(ALL:ALL) ALL下面添加一行

username  ALL=(ALL) NOPASSWD: ALL

发现我问题没有解决,不过不影响运行。

到这里安装步骤基本介绍完啦,接下来我们介绍对ui界面进行简介。

ui界面的简介

1.修改run脚本,改为正确source路径

cd ~/autoware-1.14/install/runtime_manager/share/runtime_manager/scripts
gedit run

修改如下内容:

${OPTION_COMMAND}="bash -c 'source ~/autoware-1.14/install/setup.bash;

d4c5869c2136330d677847e40a64d655.png(https://www.guyuehome.com//Uploads/Editor/202204/20220415_83868.png)

2. 为了防止警告,找到‘state_publisher’并用‘robot_state_publisher’去代替它。

文件位置:autoware-1.14/install/vehicle_description/share/vehicle_description/launch/vehicle_model.launch

打开后修改其中的文件:把‘state_publisher’改为‘robot_state_publisher’

启动autoware

source install/setup.bash
roslaunch runtime_manager runtime_manager.launch

3. 界面简介

(1) Simulation

播放录制的bag数据,包括点云和路点等。加载下载好的示例数据,点击Play按钮,然后点Pause。注意这里一定要先点一下Play!然后再进行后面的操作,不要等全部设置完才回来点。这样会导致timestamp的错误,使得demo无法正常运行。

6b98504895c9eb411ad7031087ba2ffd.png

点击autoware界面中的Rviz按钮,会打开默认配置的Rviz,在打开的Rviz界面左上角点击File➡Open Config,加载如下的配置文件:

/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/default.rviz

这个rviz已经添加好相关的话题了:

df525272e1e2085178293e11f35b1ab8.png

(2) Quick Start

0964d95d976e888c0454671069b3c2a7.png

加载每个模块对应配置launch文件,进行rviz的显示配置。

点击Map右侧的Ref按钮,选择加载地图

点击Sensing记载启动激光雷达及标定文件

点击Localization加载雷达与汽车base_link的坐标变换、加载汽车模型、点云降采样、gps信息转换和ndt匹配定位程序。

其他launch文件文件类似。

(3) 其他Tab需要配合仿真环境或实车去操作理解。

4.界面运行报错

(1)这里开启Map按钮报错:

9f5cfceba5cb51559a7453f02bffa8b7.png

就是没有把data文件夹放到.autoware里面。

(2)

b644735767441f2ac31ea20fd3a94422.png

解决办法就是找到‘state_publisher’并用‘robot_state_publisher’去代替它。

文件位置:autoware-1.14>install>vehicle_description>share>vehicle_description>launch>vehicle_model.launch

打开后修改其中的文件:把‘state_publisher’改为‘robot_state_publisher’

(3)

启动 runtime_manager 后疯狂报如下错误

Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 16765, inlambda event: event.callable(*event.args, **event.kw) ) File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 9207, in SetLabel return core.Window_SetLabel(*args, **kwargs) File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1253-1254: invalid continuation byte

可以看到是 Python 的编码问题,直接将系统语言更改为英语解决

demo运行

1.下载数据

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

一定要注意解压文件是在.autoware/路径下的,不然后续运行launch文件时,会提示找不到文件:.autoware/data/tf/tf.launch。

2.配置Demo

1在Runtime Manager中选中“Simulation”Tab,在底下的文件选择框中选取从“sample_moriyama_data.tar.gz”中解压出来的rosbag文件,设置start Time为140s,点击下面的“Play”按键即可开始播放Demo中所录制的自动驾驶过程,但这里我们需要在2s后点击“Pause”,如图所示,原因是我们还需要设置其他一些数据和参数。

84f1d8b7f01aa48733165b08524bcdca.png

2.在“Setup”Tab中设置TF和车辆模型,即点击“TF”按钮及“Vehicle Model”按钮即可。正确点击后了两个按钮应该是处于深色的状态。

f961fbd8b9e53069f05a795c0d8a6adc.png
  1. 在“Map”Tab中选择地图文件和TF设置文件。在“Point Cloud”后面的文件选择框内载入点云地图文件,相关的文件存储在“sample_moriyama_data.tar.gz”文件所解压出来的文件中,具体位置为“data/map/pointcloud_map”,需要选中文件夹内所有的文件。然后点击“Point Cloud”按钮使之变为下图所示的深色状态。在“TF”按钮后面的文件选择框内载入tf.launch文件。我选用autoware-1.14/src/autoware/documentation/autoware_quickstart_examples/launch里面的,选中tf_local.launch文件。然后点击“TF”按钮使之变为下图所示的深色状态。

cc61552b84093a38289d80890e677fdc.png
  1. 在“Sensing”Tab中勾选“voxel_grid_filter”,如下图所示。

31de17178e28090c682af2d961108203.png

5.在“Computing”Tab中勾选“nmea2tfpose”“ndt_matching”,如下图所示。

9f212e1b20a85d083aa3ae8d80ef7b95.png
  1. 开启RViz可视化工具,回到“Simulation”Tab,点击底下的“RViz”按钮,使之成为深色的状态,如下图所示。

ad806ba9500a821300208178f785426f.png
  1. 设置RViz,首先选择RViz配置文件,在菜单中选择“File–>Open Config”,选择“autowar-1.14/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/”下的“default.rviz”文件。

8.回到Runtime Manager,进入到“Simulation”Tab页,点击“Pause”按钮,这时Demo会结束暂停状态,继续播放rosbag文件。稍等片刻,就可以在Rviz中看到点云地图和机器人行驶的画面了。

63a39705c50316b3ad4220c1b07bf83c.png

bug:

1426c920547cc1bd5858e6b46c2d041f.png

车飘。

成功解决:将sample_moriyama_data里面的tf.launch改为autoware自带的tf_local.launch。并把Start Time设置为140(其实多少没有多大关系),让数据先跑会,稳定一下。

6869e40da2ed643dde1947b92bfbf7bf.png

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测点云3D目标检测目标跟踪Occupancy、cuda与TensorRT模型部署协同感知语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

d92eac4581d32489b5275a077a14ac03.png 视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

657315710813484803e90d254e5e10d9.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

5fa7c405d968a9d2db53943ccec2ae58.jpeg

④【自动驾驶之心】平台矩阵,欢迎联系我们!

dc2f2ed384eaa3d28299357a1ed4b3ab.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值