Skip to content

添加和评估新节点的示例过程#

概述#

本页提供了在实现新节点时评估 Autoware 的指南,尤其是关于开发新的定位(Localization)节点的指南.

该工作流程包括使用真实车辆或 AWSIM 进行初始测试和 rosbag 记录,实施新节点,使用记录的 rosbag 进行后续测试,最后使用真实车辆或 AWSIM 进行评估.

假设用于添加的方法已经通过公共数据集等进行了很好的验证.

1. 在标准配置中运行 Autoware#

首先,能够运行标准 Autoware 以建立性能和行为比较的基础非常重要.

Autoware 不断引入新功能. 首先确认它在当前版本中是否按预期运行至关重要,这有助于问题排查.

在这种情况下,假定为 AWSIM. 因此,AWSIM 模拟器 可能很有用. 如果您使用的是实际硬件,请参考 作指南.

2. 使用 Autoware 录制 rosbag#

在开发新节点之前,建议记录一个 rosbag 以便进行评估. 如果您需要新的传感器,则应将其添加到您的车辆或 AWSIM 中.

在这种情况下,建议保存所有主题,无论它们是否必要. 例如,在定位(Localization)中,由于初始位置估计服务是由 rviz 和 GNSS 主题的输入触发的,因此在播放数据时不会启动初始位置估计,除非保存了这些主题.

如果数据容量成为一个问题,请考虑使用 mcap 格式.

值得注意的是,使用 ros2 bag record 会增加计算负载,并可能影响性能. 数据记录后,建议验证传感器数据的平滑流动和时间序列是否保持不变. 例如,通过在 ros2 bag play 期间使用 rqt_image_view 检查图像数据,可以完成此验证.

3. 开发新节点#

在开发新节点时,引用与您要创建的程序包类似的程序包可能会有所帮助.

建议仔细阅读 设计页面,考虑在 Autoware 中添加或替换节点,然后实施您的解决方案.

例如,执行 NDT(一种基于 LiDAR 的定位方法)的节点是 ndt_scan_matcher. 如果要将其替换为其他方法,请实现一个生成相同主题并提供相同服务的节点.

ndt_scan_matcherpose_estimator 的形式启动,因此也需要替换启动文件.

4. 通过基于 rosbag 的模拟器进行评估#

实施新节点后,就该对其进行评估了. logging_simulator 是一个工具,介绍如何使用步骤 2 中捕获的 rosbag 评估新节点.

当您运行logging_simulator时,您可以设置 planning:=falsecontrol:=false 来禁用特定组件节点的启动.

ros2 launch autoware_launch logging_simulator.launch.xml ... planning:=false control:=false

启动 logging_simulator 后,应使用 ros2 bag play 重放步骤 2 中获取的 rosbag 文件.

如果您重新映射与这次要验证的定位(Localization)相关的主题,Autoware 将使用它这次计算的数据,而不是它记录的数据. 此外,使用 ros2 bag play--topics 选项,你可以只在 rosbag 中发布特定的主题.

ros2bag_extensions 可用于过滤 rosbag 文件并创建一个仅包含您需要的主题的新 rosbag 文件.

5. 在实时环境中评估#

充分验证了 logging_simulator 中的行为后,让我们将其作为 Autoware 运行,并在实时环境中添加新节点.

要调试 Autoware,debug-autoware 中描述的方法非常有用.

为了可重现性,您可能需要修复 GoalPose. 在这种情况下,请考虑使用 tier4_automatic_goal_rviz_plugin.

6. 分享结果#

如果您的实施成功,请考虑向 Autoware 提交拉取请求.

Show and tell 的 Discussion 中展示您的想法也是一个好主意.

对于定位(Localization),YabLoc 的提案 可能会提供有价值的见解.