技术文章

仿真自动驾驶算法,竞逐 SAE 自驾挑战赛

作者 Aaron Angert,德州农工大学


2021 SAE AutoDrive Challenge™ 是一项为期多年的自动驾驶挑战赛。八支学生团队参加了这届挑战赛,他们设计并开发了能够在常见城市环境中行驶的自动驾驶汽车。终极挑战赛在密歇根大学的 MCity 测试场举行。参赛车辆在测试道路上完成了比赛。该测试道路涵盖红绿灯、街道指示牌、铁路道口及城市驾驶中常见的其他元素(图 1)。

两人正坐在停放在停车位处的德州农工大学自动驾驶汽车内。车身喷涂着紫色和白色的条纹,上面印着赞助商的名称。

图 1. 德州农工大学参加自动驾驶挑战赛的自动驾驶汽车。

在 2021 年度自动驾驶挑战赛中,我们德州农工大学团队在最后一项比赛中勇得第一。测试算法所用的仿真环境,是我们取得成功的关键所在。这一环境使用 Simulink® 和 Unreal Engine® 搭建而成,让我们可以在真实条件下测试和调试我们的感知、规划、决策和控制算法,然后在我们的赛车(由通用汽车提供的 2017 款雪佛兰 Bolt EV)上进行实际验证。通过该环境,我们还能划分开发工作,使多个团队可以协作,即使在疫情期间无法亲自接触实车的情况下,也能不间断地开展工作。

仿真自动驾驶汽车算法

德州农工大学的自动驾驶挑战赛团队由 70 多名研究生和本科生组成。在过去两年的时间里,这个团队一直由我的导师宋德臻博士领导。学生们以小组为单位开展工作。每个小组专注于一个特定领域的开发,如感知或同步定位与地图构建 (SLAM)。通过在仿真环境中工作,我们无需功能完善的车辆即可开发和测试算法。这也意味着,当其他小组需要基于车辆工作时,我们的工作不受妨碍。

我们的仿真环境准确地反映了雪佛兰 Bolt 的动力学、激光雷达和 GPS 传感器,以及该车辆行驶时所处的城市环境。在此环境中,我们使用了 Automated Driving Toolbox™ 中的 Simulation 3D Lidar 模块,对实车上的 Velodyne® 激光雷达进行了建模,并且配置了 Simulation 3D Camera 模块,使其内参(焦距、光心、图像大小等)与安装在此车上的摄像头的内参相同。

在比赛的第二年,MathWorks 为我们提供了一个使用 Unreal Engine 构建的 MCity 三维模型。我们将此模型集成到了我们的仿真环境中,并且使用了 Automated Driving Toolbox 来实现协同仿真(图 2)。在开发和完善仿真环境的过程中,我们会定期与 MathWorks 应用工程师会面,获得最佳实践方面的指导和相关问题的解答。

德州农工大学自动驾驶挑战赛团队创建用于测试自动驾驶车辆控制算法的仿真环境示意图。

图 2. 仿真环境的示意图,通过该仿真环境,可在测试各种自动驾驶车辆控制算法的同时实现三维可视化。

我们使用仿真环境以各种方式来测试我们的算法。例如,在仿真过程中,我们将来自激光雷达和 GPS 传感器模型的数据存储在 ROS 日志文件 (rosbag) 中。各小组使用这一记录数据,对他们的算法运行开环单元测试。在通过单元测试验证各个算法后,我们使用仿真环境运行闭环集成测试,以便验证多个算法协同工作以及通过 ROS 接口进行通信的情况。我们使用 MATLAB® 对测试结果进行了可视化(图 3)。例如,一个小组基于纯追踪方法测试了他们的新版路径追踪算法,并且使用了 MATLAB 可视化对新旧算法的性能进行了比较。

开环测试的 MATLAB 可视化,该测试用于测试激光雷达的 SLAM 算法,从而验证 SLAM 和 G P S 算法在仿真环境中协同工作的情况。

图 3. MATLAB 可视化,显示叠加在测量的 GPS 位置上的 SLAM 结果。

在比赛中复制实际测试

为了做好比赛准备,我们创建并仿真了在 MCity 测试赛道上会遇到的驾驶场景,并且使用这些场景通过仿真对我们的算法进行了广泛的测试(图 4)。尽管这是一项严格的测试,但我们还是担心一旦开始在比赛场上测试车辆,可能就会发现一些不可预见的问题。我们的担心不无道理。

在比赛开始前,每个团队都可以让自己的赛车驶过测试赛道,并在必要时微调算法。在这些试驾过程中,我们发现了软件存在诸多缺陷,包括分段错误。当天晚些时候,我们使用在试驾期间捕获的数据,重现了赛车在仿真环境中所走的确切路线。这样,在第二天重新测试之前,我们就能查明并修复代码中的问题了。

一张地图显示了密歇根大学的 MCity 测试场,参加 2021 年度 S A E 自动驾驶挑战赛的各大高校团队在此展开同场竞技。

图 4. MCity 路线地图。

展望自动驾驶挑战赛 II

自动驾驶挑战赛 II 已于 2022 年拉开帷幕。此次比赛是这一挑战赛系列的延续。届时,各团队主要在防碰撞、路径跟随和红绿灯互动方面展开较量。来自德州农工大学的团队已经加入其中,同时也完成了新老学生成员的接替。新团队将沿用在 Simulink 中进行广泛仿真的这一方法,在我们第一个团队取得成功的基础上再接再厉。

关于自动驾驶挑战赛

自动驾驶挑战赛系列由 SAE International 和通用汽车 (GM®) 联合赞助。各学生团队受邀参与开发并演示全自动驾驶乘用车。该乘用车需能够使用符合 SAE 标准 (J3016) 4 级规定的自动驾驶模式在城市交通道路上正常行驶。MathWorks 是这项赛事的官方软件供应商。

关于作者

Aaron Angert 是德州农工大学的博士生。他曾担任该所大学自动驾驶挑战赛团队的首席架构设计工程师。  

2022年发布

查看文章,了解相关行业