引言
在安装了 Autoware 之后,首先可以尝试运行一下官方 demo,熟悉 Autoware 的 runtime manager 操作界面。
关于 Autoware 的安装,可以参考官方教程。官网给出两种安装方式: 源码编译 和 Docker 方式。为了减少麻烦,推荐用 Docker 方式安装。可以参考本博客另一篇文章 中介绍的 Docker 安装 Autoware 的方法。不管哪种方式安装的 Autoware,运行 demo 的方式都是一样的。
以下操作来自 Autoware 官方提供的 QuickStart 。
下载 demo 数据文件
运行 Autoware 基本 demo 需要用到 2 个文件
- rosbag : 保存了实车行驶中记录的数据,主要是 /nmea_sentence 和 /points_raw,前者来自 GPS,可以提供定位信息,后者来自 LiDAR,可以提供环境感知和定位信息。
- data: 包含了点云地图 (pcd map),向量地图 (vector map),TF 坐标转换等。
把这 2 个文件存放在特定的位置,方便后续的调用。这里创建 .autoware 隐藏文件夹,下载文件并解压缩
$ mkdir ~/.autoware
$ cd ~/.autoware
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz # data
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz # rosbag
$ tar xf sample_moriyama_data.tar.gz
$ tar xf sample_moriyama_150324.tar.gz
Quick Start 中还提到 my_launch.sh 文件,这里不需要下载,因为新版本的 Autoware 已经自带了所需要的 launch 文件,存放在了 ~/Autoware/docs/quick_start 中。
运行 Autoware demo
- 打开 Autoware runtime manager
./Autoware/ros/run
这个命令的主要作用是运行 roscore 和 ~/Autoware/ros/src/util/packages/runtime_manager/scripts 路径下的 runtime_manager_dialog.py 文件,将出现如下界面。
可以看到 runtime manager 包含了很多 Tab: Quick Start, Setup, Map, Sensing, ...
在运行官方 demo 的过程中,我们主要用到 Quick Start 和 Simulation,以及右下角的 RViz.
- 运行 rosbag
选择 Simulation Tab, 通过 Ref 选择刚才下载的 bag 文件,如下所示
Play 1s ~ 2s 之后再 Pause。
-
启动 RViz
RViz 是数据可视化的工具,可以将接收到的 rostopic 中的数据显示出来,方便我们直观的检查 data 。
点击右下角的 RViz,出现如下界面:
这是 RViz 的默认初始界面,为了配合 demo,需要做一些设置,官方已经给了配置文件,即 ~/Autoware/ros/src/.config/rviz/default.rviz。 路径中有隐藏文件夹,查看时需要设置隐藏可见。
在 RViz 中通过 File -- Open Config 打开这个配置文件,界面如下:
可以看到左侧栏已经添加了很多设置,基本上每一项都可以接收一个 rostopic,将其显示出来。由于现在 rosbag 在暂停中,所以中间的显示界面没有任何东西。
- 加载 map ,开启定位
回到 runtime manager 界面的 Quick Start Tab
- 在 Map 那一行加载 my_map.launch 文件,文件所在路径是:~/Autoware/docs/quick_start,后续用到的 launch 文件也都在这里。
- 在 Localization 那一行加载 my_localization.launch 文件,也在上述路径中
-
继续 play
在 Simulation Tab,再次点击 Pause,恢复播放 rosbag。
此时在 RViz 中应该可以看到地图和车的模型,如下图
其中的地图包括 pcd map 和 vector map,可以通过选择和取消左侧栏的 Points Map 和 Vector Map 分别查看。
- 设置 RViz
为了便于观察,可以将 RViz 中右边栏的 Target Frame 设置为 base_link,就是车身,顶部的 Type 设置为 TopDownOrtho,然后点 Zero。这样设置可以令车身始终处于屏幕显示的中心位置,并且是 top-down 视角。也可以尝试其他视角,比如 ThirdPersonFollower。
按照官方说法,车辆定位初始的时候抖动比较厉害,到了大概 2 分钟之后稳定下来。
-
开启 mission planning
目前在 Quick Start 中只开启了 map 和 localization。
继续开启 mission planning,launch 文件还是在之前的文件夹中。这一部分主要是加载 waypoints,就是在全局层面汽车需要跟踪的路线。这一全局规划的路径在 182s 左右才会出现。
如下所示
可以看到 waypoints 附带的期望速度和方向。
-
开启 motion planning
继续在Quick Start 中开启 motion planning,如下图所示
这里显示的汽车在跟踪每一个 waypoint 时的动作规划,白色的弧线对应了由 pure_pursuit 计算出来的转角曲率,绿色区域对应了 detection_range.
总结
这里的 demo 本质上是回放之前实车运行时记录的数据 (大概是2015年3月24日在名古屋市下辖的守山区街道上录制的),信息传输是单向的:只能从实车数据到 Autoware。尽管 Autoware 能够实现完整的自动驾驶功能,包括感知、定位、规划决策和车辆控制,但是很显然 Autoware 最后产生的车辆控制信号不可能影响已经记录好的过去的数据。这个 demo 演示的是一个开环系统,不存在从 Autoware 到实车的反馈。
后续文章中会提到如何搭建一个闭环的自动驾驶仿真系统,这样仿真车辆和 Autoware 之间就有互动,可以验证自己的自动驾驶算法了。
最后,对比一下 守山区的真实街道场景。
看来车子是从右边那个 Aeon Mall 停车场开出来的。