上一篇我们测试了Autoware.auto(https://www.guyuehome.com/37552),是基于ROS2的,作为它基于ROS1的版本——Autoware.ai, 也不妨试一试。继续记录折腾笔记。

软件环境:

Ubuntu:18.04
ROS:Melodic

一、Docker安装

1. 安装Docker

先说结果,最终Autoware.ai可以在配置好的docker镜像中跑起来,但是地图一直显示有问题,懒得折腾了,换成了源码安装,大家也可以直接按照源码安装的步骤进行,毕竟试过了,我还是记录下docker的配置过程,主要参考官方的安装链接:
先删除旧版的docker:
$ sudo apt-get remove docker docker-engine docker.io
看到如下提示就没问题。
继续安装一些依赖:
$ 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"
现在就可以安装Docker了:
$ sudo apt-get update
$ sudo apt-get install docker-ce

2. 安装Docker镜像

参考官方说明:
下载脚本并运行
$ git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
$ cd docker/generic
$ sudo ./run.sh
我这里没有装cuda,会出现报错。
使用如下命令关闭cuda的支持就可以了:
$ sudo ./run.sh -c off
耐心等待下载,需要下载一段时间了,下载完成之后会继续报一个错误:usermod: UID '0' already exists
需要手动修改一下刚才运行的run.sh脚本,加入这一段内容:
USER_ID="$(id -u)"
if [ USER_ID != 0 ]; then
USER_ID=1000;
else
USER_ID=${USER_ID};
fi
修改完成之后,重新运行脚本,即可进入autoware的镜像啦。
至此Autoware.ai的Docker镜像就配置完毕,进入镜像后的操作步骤与源码编译后是一致的。

二、源码编译安装

源码编译安装之后,Autoware.ai运行正常,步骤如下:
先安装一些依赖:
$ 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.ai/src
$ cd autoware.ai
下载Autoware.ai的配置文件:
$ wget -O autoware.ai.repos "https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.12.0/autoware.ai.repos"
$ vcs import src < autoware.ai.repos
此时很有可能遇到错误:Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|::|:443... failed: Connection refused.
常见的网络问题了,可以参考:https://blog.csdn.net/weixin_44293949/article/details/121863559
继续安装依赖问题
# 安装rosdepc
$ sudo pip3 install rosdepc
$ sudo rosdepc init
# 解决依赖问题
$ rosdepc update
$ rosdepc install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
以上步骤使用rosdep也可以,但是容易出现rosdep update失败的问题,可以参考这里解决,最终效果是一样的,选择一种即可。
update成功之后继续运行以上安装依赖的指令,会有不少依赖自动下载安装。
依赖都装完了, 终于可以编译源码(此处没有开启CUDA),编译时间将近20分钟,视电脑性能而定了。
$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

三、运行官方的rosbag示例

先要下载稍后会用到的测试数据:
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz
如果嫌这样下载太慢的话,也可以用百度网盘下载:
链接:https://pan.baidu.com/s/1lg0lnjVwmdOb8r9U_bEsXA
提取码:i0v5
然后通过docker cp命令从主机拷贝到docker镜像中。
再继续拷贝到autoware的数据文件中,需要创建一个隐藏的文件夹:
$ mkdir ~/.autoware
$ cp sample_moriyama_* ~/.autoware/
然后解压数据,数据文件比较大,注意磁盘空间是否够,不然会报错(别问我为啥知道):
$ cd ~/.autoware/
$ tar zxfv sample_moriyama_150324.tar.gz
$ tar zxfv sample_moriyama_data.tar.gz
一定要注意解压文件是在以上路径下的,不然后续运行launch文件时,会提示找不到文件:/home/autoware//.autoware/data/tf/tf.launch:
修改run脚本,改为正确source路径
$ cd ~/autoware.ai/install/runtime_manager/share/runtime_manager/scripts
$ gedit run
修改如下内容:
${OPTION_COMMAND}="bash -c 'source ~/autoware.ai/install/setup.bash;
启动autoware
$ source install/setup.bash
$ roslaunch runtime_manager runtime_manager.launch
先切换到Simulation界面,点击Ref加载上文中下载的bag数据,将Start Time设置为140,即从140秒时播放数据。点击Play按钮,待界面中出现bag数据的path、version、duration等信息后,点击Pause按钮停止播放bag数据。
点击autoware界面中的Rviz按钮,会打开默认配置的Rviz:
在打开的Rviz界面左上角点击File➡Open Config,加载如下的配置文件:
autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/default.rviz
再切换到Autoware快速启动Quick Start界面,点击Map右侧的Ref按钮,选择加载地图的launch文件my_map.launch,如下图所示,具体路径为:
autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/。
同样的,分别点击Sensing、Localization右侧的Ref按钮加载对应的launch文件,其中my_sensing.launch启动激光雷达及标定文件,my_localization.launch文件加载雷达与汽车base_link的坐标变换、加载汽车模型、点云降采样、gps信息转换和ndt匹配定位程序。
继续加载其他launch文件,detection选择my_detection.launch,mission_planning选择my_mission_planning.launch,motion_planning选择my_motion_planning.launch。
选择好后,依次点击Map按钮、Sensing按钮、Localization按钮,点击按钮时点击一个后等待几秒再点击下一个,以让程序运行起来。然后切换到Simulation界面,点击Pause按钮继续播放bag数据,稍等片刻,就可以在Rviz中看到点云地图和机器人行驶的画面了。
如果点云地图没有出现,可以再次点击Map按钮,重启一下地图功能。
继续点击Detection按钮、Mission Planning按钮、Motion Planning按钮,启动检测和运动规划,可以看到Rviz中会展现更多信息。
至此,就完成了Autoware.ai的安装与测试。
以上所有操作均参考自以下链接: