技术文章和通讯

发展纵向控制无人驾驶出租车

艾伦•蒙德汽车航行


第一个乘客乘坐我们的一个无人驾驶出租车是一个名叫贝福视而不见。当被问及驱动器,贝福说她感到安全的骑感觉更为顺畅比一些车辆由视力的人。在航行中,我们希望每一个乘客觉得相同级别的安全与舒适。

作为一个小型创业公司与许多大型组织致力于自主驾驶技术竞争,我们想尽快进行迭代。我们的团队的目标之一是减少之间的时间探索思想在白板上,让这些想法到路上。为了实现这一目标,我们集中我们的努力,在小型社区范围我们的第一个出租车服务业务(图1),通过多次迭代和改进我们的设计。我们使用码头工人容器管理系统依赖性和机器人操作系统(ROS)作为感知的中间件,运动规划和控制。代替手动编码的模型预测控制(MPC)算法对纵向控制系统,我们使用基于模型的设计与MATLAB®和仿真软金宝app件®

我们队的三名工程师完成初始制动和加速控制系统在短短两个月内。

图1所示。航次无人驾驶出租车在路上在村庄社区在佛罗里达州。

图1所示。航次无人驾驶出租车在路上在村庄社区在佛罗里达州。

边界的复杂性无人驾驶汽车

无人驾驶汽车将多个复杂的系统来感知周围的环境,计划一个目的地的路径,和控制转向和速度(图2)。加剧的挑战设计和实现这些系统中的所有对象和危害环境,包括十字路口、人行横道,环形路,建筑活动,行人、转弯,单行道,动物,和速度限制,更不用说其他车辆的不可预测的驾驶模式。

图2。系统的概述一个航次无人驾驶出租车。

图2。系统的概述一个航次无人驾驶出租车。

为了简化控制设计的挑战,我们决定部署第一个自动驾驶的出租车战略伙伴退休社区(图3)。不仅是这些社区已有明确,他们也有设置限速,通常25英里(40公里)。

图3。鸟瞰图的村庄退休社区。

图3。鸟瞰图的村庄退休社区。

推动发展,自适应巡航控制系统的例子

首先,我们的团队研究尽快安全地实现纵向控制的方法。我们决定从MATLAB自适应巡航控制系统(ACC)系统的例子。这个例子包括使用MPC的Simulink仿真模型金宝app实现ACC系统能够维护一组速度或一组距离导致车辆(图4)。

图4。金宝app仿真软件模型的自适应巡航控制系统。

图4。金宝app仿真软件模型的自适应巡航控制系统。

这个模型在下载和运行一些初步的模拟仿真软件,我从模型生成c++代码为一个独立的ROS节点与机器人系统工具箱™和仿真软件编码器™。金宝app我们所有的软件自动驾驶出租车是模块化的,并且每个subsystem-perception,路径规划,和纵向控制,在他人作为ROS节点。三天之内我们运行生成的代码ACC在我们的车。

从头开始创建自己的模型预测控制器

虽然ACC仿真软件模型有潜力金宝app,它不能满足我们所有的需求。例如,汽车太干启动和停止时,我们发现乘客特别敏感,这种类型的运动。(我们出租车的乘客并不一定会感觉如何探测和感知算法,但是他们会立即感觉纵向控制是如何工作的。)

我们回到绘图板,设计了一个系统的,毫不夸张地说要白板和创建一个运动学模型,描述了基于第一原理出租车的运动。我们实现了这个运动模型在仿真软件,使用它作为控制器设计的基础。金宝app然后我们修改MPC的参数模型来满足我们的要求和包含额外的逻辑来处理边界情况和场景,原MPC模型尚未处理,如走走停停的驾驶。

在这些早期的发展阶段,我们从rosbag进口g的数据日志文件到MATLAB环境中机器人系统工具箱,并过滤掉所有ROS主题不相关的纵向控制器。数据导入后,我们可以访问它像任何其他MATLAB变量,使它容易分析和处理。

我们模拟了控制模型在仿真软件,以确保它的输出,油门踏板位置,制动踏板金宝app位置看起来合理,模型表现得如我们预期的目标集的输入。

进行车载测试

模拟给了我们足够的信心在我们的控制设计试试车,与我们的团队第一个乘客。我们生成c++代码重新设计控制模型的ROS节点和部署节点的车辆在一个码头工人容器。码头工人使我们能够创建一个图像的生产环境和所有必需的依赖项,然后保持和复制的形象一直在开发和测试。

在最初的车载测试,很明显,我们的控制器与加速和制动过于激进。虽然期间我们绘制的图形模拟显示看似光滑的变化速度,实际骑行体验并非一帆风顺。这对我们实现了快速从概念到onroad测试的重要性和基于模型的设计。我们根本无法判断我们的设计充分的质量在实验室;我们必须经历我们的乘客,在车里。

我们完成一些设计迭代,调优参数和约束,包括加速度和混蛋,限制以及时间常数和MPC的输出的速度更新。我们建立了ROS仿真软件模型中的参数,方便我们的同事直接通过RO金宝appS校准参数。他们可以快速更新参数值,即使他们没有经验模型。金宝app

创建虚拟车辆制动测试场景

因为它是不安全的测试场景中,另一个车辆转向到我们车辆的车道,我们创建了一个新型的ROS节点来模拟鬼的障碍带,一个虚拟的汽车,我们可以从出租车在不同位置的距离。我们创建了这个虚拟汽车模型和参数化,这样我们就可以为例,它从零速度和逐金宝app渐增加的速度。我们用仿真软件编码器ROS节点生成代码,然后使用节点测试和优化控制器的制动性能。金宝app这个节点,只花了几个小时来开发,我们可以生成虚拟的障碍在我们出租车将如何回应,然后调整其性能,直到它停止安全、顺利。

在路上

我们使用基于模型的设计开发的纵向控制器在自动驾驶的出租车旅行服务的退休社区。我们看到需求增加,每周使用增长10%。我们的工程团队学习数据聚集在这些游乐设施,我们继续改进控制器通过加入我们学习。

2018年出版的

为相关行业观点文章