@TOC
autoware.auto编译与测试(含官方demo问题解决)
本次针对autoware.auto的编译与测试,建议大家一定要读官网教程,本教程环境为ubunut18.04,因此选择使用ade方式,而非源码。
安装docker
本文参考菜鸟教程关于docker的安装,详见(https://www.runoob.com/docker/ubuntu-docker-install.html)。我选择的是使用官方脚本自动安装:
1.安装
$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2.添加docker用户组
# 创建docker用户组
$ sudo groupadd docker
#将当前用户加入docker用户组
$ sudo usermod -aG docker $USER
#Log out and log back in so that your group membership is re-evaluated.
$ newgrp docker
安装ade
1.设置ade
$ cd ${HOME}
$ mkdir adehome
$ cd adehome
$ wget https://gitlab.com/ApexAI/ade-cli/uploads/85a5af81339fe55555ee412f9a3a734b/ade+x86_64
$ mv ade+x86_64 ade
$ chmod +x ade
$ mv ade ~/.local/bin
$ which ade
# Update ade,建议升级到4.4.0版本
$ ade update-cli
# Now setup ade
$ touch .adehome
2.进入autoware.auto的官方ade
# 不要使用官方教程给的git连接,参见:
$ git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git
$ cd AutowareAuto/
# 拉取多个分支
$ vcs import < autoware.auto.$ROS_DISTRO.repos
$ git checkout tags/1.0.0 -b release-1.0.0
# 大家可以查看autowareauto中的多个ade环境,可以指定进入的环境,这里默认进入
$ ls -l .aderc*
$ ade start
$ ade enter
3.现在你的终端变成了
<your_username>@ade:~$
在ade中编译autoware.auto
<your_username>@ade$ cd AutowareAuto
<your_username>@ade$ colcon build
<your_username>@ade$ colcon test
<your_username>@ade$ colcon test-result
官方测试demo
大家在官方测试中,直接运行命令会出现Package ‘velodyne_node’ not found/expected string not set等问题,考虑到应该是autoware版本的问题,导致加载参数的方式不一样,我采用了以下命令:
需要提前下载好数据(https://drive.google.com/file/d/1vNA009j-tsVVqSeYRCKh_G_tkJQrHvP-/view)并将其放在${HOME}/adehome/data文件夹中,如果无法下载去可以私信我
<your_username>@ade$ cd
<your_username>@ade$ git clone https://gitlab.com/ApexAI/autowareclass2020.git ~/autowareclass2
# 省略<your_username>@ade
# terminal 1
$ cd AutowareAuto
$ source install/setup.bash
$ udpreplay ~/data/route_small_loop_rw-127.0.0.1.pcap -r -1
#terminal 2
$ rviz2 -d /home/${USER}/autowareclass2020/code/src/01_DevelopmentEnvironment/aw_class2020.rviz
# terminal 3(将vlp16_test.param.yaml中的points_xyzi改成了points_in)
$ ros2 run velodyne_nodes velodyne_cloud_node_exe --model vlp16 --ros-args --remap __ns:=/lidar_front --params-file /home/${USER}/AutowareAuto/src/drivers/velodyne_nodes/param/vlp16_test.param.yaml
# terminal 4
$ ros2 run robot_state_publisher robot_state_publisher /opt/AutowareAuto/share/lexus_rx_450h_description/urdf/lexus_rx_450h.urdf
# terminal 5
$ ros2 run point_cloud_filter_transform_nodes point_cloud_filter_transform_node_exe --ros-args --remap __ns:=/lidar_front --params-file /opt/AutowareAuto/share/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
# terminal 6(我的autoware.auto包缺少autoware_auto_avp_demo文件夹,所以改成了autoware_auto_launch)
$ ros2 run ray_ground_classifier_nodes ray_ground_classifier_cloud_node_exe --model --ros-args --remap __ns:=/perception --params-file /opt/AutowareAuto/share/autoware_auto_launch/param/ray_ground_classifier.param.yaml
# terminal 7
$ ros2 run euclidean_cluster_nodes euclidean_cluster_node_exe --ros-args --remap __ns:=/perception --params-file /opt/AutowareAuto/share/autoware_auto_launch/param/euclidean_cluster.param.yaml
之后,大家就可以看到点云目标检测的显示了,good luck!