Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Pylot: A Modular Platform for Exploring Latency-Accuracy Tradeoffs in Autonomous Vehicles

作者: Ionel Gog, Sukrit Kalra, Peter Schafhalter, Matthew A. Wright, Joseph E. Gonzalez, Ion Stoica · ICRA 2021

许可协议

  • 开放获取
  • 论文: CC BY 4.0

以下内容均依据论文全文,按其 CC BY 4.0 许可协议使用;其中的图已注明作者。

一句话总结

基于数据流运行时的模块化、确定性 AV 流水线:替换检测器、跟踪器、预测器或规划器,观察它们的运行时间如何影响 CARLA 或真实汽车中的端到端驾驶。

为何重要

构建驾驶或移动机器人软件栈的团队,可以在完整的流水线中测试新的检测器或规划器,并测量碰撞和乘坐舒适性,而不仅仅是离线精度。论文表明,最佳组件选择会随驾驶速度和场景而变化,这支持在具体情境中评估组件。

问题

自动驾驶车辆的组件通常用平均精度(average precision)等离线指标来评判,这些指标忽略了运行时间,尽管一个缓慢但精确的模型可能使车辆更不安全。Autoware 和 Apollo 等现有开源软件栈提供的仿真器接口有限,没有照片级真实感的相机,而且其发布-订阅设计使驾驶场景的确定性重放很困难。

提出的方法

Pylot 将整条流水线(检测、跟踪、预测、规划、控制)组织为由算子构成的数据流图,算子之间交换带时间戳和水位线的消息,运行在作者的 ERDOS 系统上;这使执行具有确定性,并且可以替换运行时间不同的组件而无需重新调参。它为每个组件提供若干参考实现,外加来自 CARLA 的真值“完美”版本,以及一种伪异步模式:以超过 200 Hz 的频率同步运行 CARLA,同时将每条控制命令按流水线实测的运行时间延迟下发。一个 ROS 适配层(shim)使同一条流水线能够驾驶真实车辆。

关键见解

  • 时效精度(timely accuracy)以输出就绪时刻的世界状态而非输入被采集时刻的世界状态来为模块输出打分,揭示了在运动场景中运行时间如何侵蚀精度。
  • 最佳检测器或跟踪器取决于情境:在高速下,快速但精度较低的检测器优于缓慢但精度较高的检测器;SORT、DeepSORT 和 DaSiamRPN 各自适合不同的情况。
  • 在紧急转向避让场景中,运行时间较短的规划器配置更常避免碰撞,而 Frenet Optimal Trajectory 规划器比 RRT* 乘坐更平稳,代价是避免的碰撞更少。
  • 带水位线(watermark)的数据流模型把流水线归结为 Kahn 进程网络(Kahn Process Network),从而提供发布-订阅系统所缺乏的、可用于调试的确定性重放。

主要结果

  • 10 ms 的运行时间就使完美语义分割组件的平均时效 mIoU 降至约 0.75,低于 Cityscapes 前三名提交结果的 mIoU。
  • 完美行人检测器的平均时效 AP50 在 35 ms 运行时间下减半。
  • 在 20 ms 运行时间下,40 m/s 时的时效 mIoU 中位数比 10 m/s 时低 28%,时效 AP50 中位数从 10 m/s 时的 1.0 降至 40 m/s 时的 0。
  • 在被遮挡行人场景(Table I)中,缓慢的 FOT(P99 550 ms)、RRT(P99 76 ms)和 Hybrid A(P99 760 ms)配置在 16 至 22 m/s 的每个目标速度下都失败,而每种规划器的快速配置在 16 m/s 时都避免了碰撞。
  • 将流水线从 CARLA 移植到 Lincoln MKZ 测试车用了 434 行 Python 代码;Pylot 本身约为 28,000 行 Python。
  • 据报告,底层数据流系统的通信延迟比 ROS 低 30%,Pylot 被描述为 CARLA 自动驾驶挑战赛 HD 地图赛道排名第一的提交。

局限

  • 尚不支持基于强化学习的驾驶方法;OpenAI Gym 接口被列为未来工作。
  • 端到端规划器比较使用的是真值感知而不是感知模型,并且只有一个紧急场景。
  • 时效精度研究使用的是带模拟运行时间的完美感知组件,而不是在闭环中运行的真实模型的运行时间。
  • 真实车辆部署被描述为使用现成模型的一次移植,没有报告在真实汽车上的驾驶指标。

对领域的影响

该论文入围 IEEE ICRA 2021 无人机最佳论文奖决选,被引用 107 次。Pylot 以开源代码形式发布,包含参考实现和真值组件实现,以及一套基于 NHTSA 的 CARLA 测试场景。

摘要

我们提出 Pylot,一个用于自动驾驶车辆(AV)研究与开发的平台,其构建目标是让研究人员能够研究其模型和算法的延迟与精度对 AV 端到端驾驶行为的影响。这是通过模块化结构实现的,而该结构由我们的高性能数据流系统支撑:该系统将 AV 软件流水线的各组件(目标检测器、运动规划器等)表示为由算子构成的数据流图,算子之间通过带时间戳的消息在数据流上通信。Pylot 可以方便地对接 CARLA 等流行的 AV 仿真器,并且只需极少的代码修改即可轻松部署到真实车辆上。为了减轻为评估单个组件而开发整条流水线的负担,Pylot 为 AV 流水线的各个组件提供了若干最先进的参考实现。借助这些参考实现,基于 Pylot 的 AV 流水线能够驾驶真实车辆,并在 CARLA 自动驾驶挑战赛中取得高分。我们还介绍了 Pylot 所支持的若干案例研究,包括需要依赖情境的组件的证据,以及按组件分配时间。Pylot 是开源的,代码见 https://github.com/erdos-project/pylot。

链接

  • arXiv 2104.07830: https://arxiv.org/abs/2104.07830
  • DOI 10.1109/ICRA48506.2021.9561747: https://doi.org/10.1109/ICRA48506.2021.9561747
  • PDF: https://arxiv.org/pdf/2104.07830v1
  • 代码: https://github.com/erdos-project/pylot

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。