LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

install_AutowareAuto

2022/8/19

安装Autoware.Auto

简介

谈到无人驾驶系统,比较出名的就是APOLLO和AUTOWARE

APOLLO 是百度的自动驾驶开源框架,中间件采用百度自己的CyberRT,用“协程”解决了ROS1的调度问题

Autoware 是世界上第一个用于自动驾驶技术的“All-in-One”开源软件,目前有两个大版本

Autoware.AI是基于ROS1,目前已经很久没维护了;Autoware.Auto是基于ROS2的,会是未来的趋势

由于ROS资源比较丰富,而且我个人对ROS比较熟悉,所以选择Autoware.Auto作为第一个学习方向。


安装前准备

安装ROS2

Autoware.Auto是基于ROS2的,后续也会用到ROS2的命令编译,故先安装ROS2

博客:https://www.bonbonn.shop/2022/08/17/install-ROS2/


安装docker

Autoware.Auto推荐使用ADE安装,而ADE是一个基于Docker的工具,故先安装docker

ADE可确保项目中的所有开发人员都有一个共同的,一致的开发环境

博客:https://www.bonbonn.shop/2022/08/17/install-docker-on-ubuntu/


安装

官方文档:https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/installation-ade.html


安装ADE

选择将ade安装在/usr/local/bin

cd /usr/local/bin  #切换路径
sudo wget https://gitlab.com/ApexAI/ade-cli/-/jobs/1341322851/artifacts/raw/dist/ade+x86_64 #下载
sudo mv ade+x86_64 ade #改名
sudo chmod +x ade #给权限
sudo ./ade --version #看版本 用 ade --version 也可以
sudo ./ade update-cli #更新 用 ade update-cli 也可以
sudo ./ade --version #看版本

官方文档:https://ade-cli.readthedocs.io/en/latest/install.html


设置ADE home

ADE需要一个带.adehome文件的文件夹作为home,如果多项目用ADE建议就是多个文件夹管理

mkdir -p ~/adehome
cd ~/adehome
touch .adehome
git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git

共享环境变量

做法是将.bashrc备份,然后移到adehome内,然后在原处创建软链接

cd ~
cp ~/.bashrc ~/.bashrc.bak #备份
mv ~/.bashrc ~/adehome/.bashrc #移动
ln -s ~/adehome/.bashrc #软链接

进入开发环境

cd ~/adehome/AutowareAuto/
ls -l .aderc* #查看可选环境
ade --rc .aderc-amd64-foxy  start --update --enter #启动 aderc-amd64-foxy

会提示要需要gitlab令牌,登录gitlab,在设置中的Access Tokens中添加令牌即可

进入$ade就算成功了


编译源码

官方文档到上述过程就结束了,参照其他博客,编译源码

cd AutowareAuto
vcs import < autoware.auto.$ROS_DISTRO.repos  #vcs下载
colcon build #编译源码 1.5左右
colcon test #编译测试样例 1.5小时左右
colcon test-result #测试

编译过程会有一些package报错,先不管


测试

测试案例参考博客,修改路径为自己的即可:https://blog.csdn.net/stevephone/article/details/124856093

# 如果ade还没开启的话 需要进入adehome/AutowareAuto start一下
# source ~/AutowareAuto/install/setup.bash 这一句每个终端都要进行一遍 
# 由于进入ade会导致路径的改变 所以也无法写入.bashrc
# 1
ade enter
source ~/AutowareAuto/install/setup.bash 
udpreplay ~/data/route_small_loop_rw-127.0.0.1.pcap -r -1

# 2
ade enter
source ~/AutowareAuto/install/setup.bash
rviz2 -d ~/autowareclass2020/code/src/01_DevelopmentEnvironment/aw_class2020.rviz

# 3 把参数文件的points_xyzi改成了points_in
ade enter
source ~/AutowareAuto/install/setup.bash
ros2 run velodyne_nodes velodyne_cloud_node_exe --model vlp16 --ros-args --remap __ns:=/lidar_front --params-file ~/AutowareAuto/src/drivers/velodyne_nodes/param/vlp16_test.param.yaml

# 4
ade enter
source ~/AutowareAuto/install/setup.bash
ros2 run robot_state_publisher robot_state_publisher ~/AutowareAuto/src/urdf/lexus_rx_450h_description/urdf/lexus_rx_450h.urdf

# 5
ade enter
source ~/AutowareAuto/install/setup.bash
ros2 run point_cloud_filter_transform_nodes  point_cloud_filter_transform_node_exe --ros-args --remap __ns:=/lidar_front --params-file ~/AutowareAuto/src/perception/filters/point_cloud_filter_transform_nodes/param/vlp16_sim_lexus_filter_transform.param.yaml --remap __node:=filter_transform_vlp16_front --remap points_filtered:=/perception/points_in

# 6
ade enter
source ~/AutowareAuto/install/setup.bash
ros2 run ray_ground_classifier_nodes ray_ground_classifier_cloud_node_exe --model --ros-args --remap __ns:=/perception --params-file ~/AutowareAuto/src/launch/autoware_auto_launch/param/ray_ground_classifier.param.yaml

# 7
ade enter
source ~/AutowareAuto/install/setup.bash
ros2 run euclidean_cluster_nodes euclidean_cluster_node_exe --ros-args --remap __ns:=/perception --params-file ~/AutowareAuto/src/launch/autoware_auto_launch/param/euclidean_cluster.param.yaml


可以不执行第七个,看名字应该是集群的功能

执行后我猜测他的功能就是把集群点用长方体在rviz里框出来

不执行的话效果会好很多,我跑后其中其中一帧如下