Cruise自动驾驶决策规划与控制负责人BrandonBasso毕业于哥伦比亚大学,获学士学位和博士学位。来自加州大学伯克利分校,主要研究决策、机器人系统设计和软件架构、机器学习、控制理论等。曾在3DRobotics和Uber自动驾驶公司工作多年,担任重要职务,具有广泛的在无人机和自动驾驶领域的经验。1、什么是好的决策规划系统?BrandonBasso首先定义了一个好的决策系统的特征和输出。一个好的决策系统的特点:及时性(能够及时做出决策)交互决策(考虑本车的行为对其他交通参与者的影响,考虑其他道路交通参与者的行为)可靠性和可重复性(如果自动驾驶系统在同一个场景下做出不同的决策,说明系统稳定性不好)一个好的决策系统的输出:安全,舒适,像老司机一样的体验2.决策的挑战-makingplanningtechnology1.场景中有很多交通参与者在决策系统中,需要考虑场景中其他交通参与者的未来行动。一般来说,在一个交通场景中,可能有数百个交通参与者与自动驾驶汽车进行交互,因此自动驾驶汽车需要对5000多条备份记录进行采样计算。只有选择轨迹才能做出正确的决定,但自动驾驶需要非常及时地做出决定。我们的决策规划算法通常以大约10H-30Hz的频率运行,这意味着它需要每30ms到100ms计算一次。按时做出正确的决定是一项巨大的挑战。2.决策的不确定性(模型再准确,也无法准确预测线上其他流量参与者未来的选择)。这里有三种不确定性,kinematicsuncertainty,occlusionuncertainty,modelmodelinguncertainty以下是三种不确定性的例子:1)Kinematicuncertainty:比如上图中第一个骑自行车的人是直走的,但是后面的不确定性是一个右转环。难不成被第二个人喊右转?需要考虑这种不确定性。2)遮挡不确定性:第二种属于盲区。你不知道会不会有快车突然从盲区跑出来;3)模型建模的不确定性:第三种很有意思。预测的时候考虑了社会车辆怎么运动,但是如果社会车辆不是按照运动状态跑怎么办,比如骑车的人突然摔倒了怎么办,我们建立的模型怎么解决这样的问题问题。对以上三个不确定性的考量,证明克鲁斯走在了世界前列。到目前为止,我们大部分的自动驾驶企业对这些不确定性的考虑还处于早期阶段,远没有达到这么成熟的阶段。3.决策规划的总体架构Cruise的总体架构将他们的决策系统称为TheCruiseDecisionEngine。首先以场景感知数据作为输入(Cruise的预测模块在大感知模块下,Cruise的预测模块会考虑障碍物和障碍物之间的交互预测),然后在车辆中生成本车的初始动作动作生成模块(这里为什么叫初始动作,因为涉及到与其他障碍物的互动博弈,所以多次迭代可以确定车辆的最优位置最优决策),然后将自车动作输入到冲突中决策模块,最后输入到规划执行模块,再输入到执行器,实现对油门、刹车、方向盘的控制。汽车结合所有交通参与者的预测信息,生成本车的初始动作信息。由于本车有很多可能的动作,如加速、停车、避让等动作,会产生大量备选轨迹。因此,为了加快初始解的计算效率,采用机器学习的方法训练模型,通过机器学习的方法加速最佳轨迹的选择。这里通过机器学习的方法,只需要10ms左右就可以找到自车的初始解。在1%的极端情况下,可以在14ms内找到初始解。在最坏的情况下,只需要80ms就可以找到初始解。将机器学习引入自动驾驶是一个非常好的选择,因为这里是初步的解决方案,后面还有其他的模块。即使错了,也不会造成安全问题,反而可以加快决策解决的速度。自车动作生成模块机器学习加速自车决策初始求解2)冲突解决模块:根据自车动作生成模块生成的初始动作,再结合可能的运动信息对交通场景中的所有交通参与者进行轨迹采样,并对Trajectories进行打分,选出最佳运动轨迹,经过多次迭代(3到4次)后做出最佳决策。轨迹得分将考虑安全性(碰撞、远离骑车人和行人)、交通规则(停车、红绿灯)、舒适性(轨迹平滑度)、不确定性以及全局规划和导航信息。它还提到使用强化学习来解决不确定性问题。ConflictResolutionModule3)ControlModule:控制模块4.DecisionPlanningTechnicalDetails首先介绍整个决策系统的最终目的:然后通过实际场景分析上述目的:1)解决运动学不确定性:这里介绍二描述场景,一种是前面的行人突然开门(如果按照正常预测预测行人会出马路,如果按照预测来做决定是不安全的),这里考虑到运动学的不确定性,自动驾驶车辆减速避让,只能说是太强了。第二种场景是预测行人会左转,但是当自行车在自动驾驶的前面时,自行车突然直行,而且是从车辆的左侧行驶。由于行人和骑车人的灵活性,其预测一直是困难的,这里被认为是不确定性,早期反应确保安全。2)解决遮挡的不确定性:由于遮挡,无法观察到车辆右侧前方的车辆,可以通过设置从路口右侧开来的虚拟车辆来解决遮挡的不确定性。(右上角绿色箭头的障碍物为虚拟隐形障碍物)。第二个场景是提前考虑到被挡住的行人,慢慢走。3)解决3D不确定性:其实重点是前面的路是匝道,无法提前看到迎面而来的车。巡航自动驾驶车辆会提前减速。这是因为克鲁斯考虑了对前方斜坡的看法。确定性,二维平面已经无法处理这样的场景,需要增加维度,考虑3D的不确定性。4)互动博弈:通过互动博弈的方式对自己车的行为对其他车的影响以及其他车对自己车的影响进行决策,因为我们的自动驾驶系统不仅可以考虑自身的舒适性和安全性,还不能其他对于交通参与者的体验来说,以这种方式做出决定是极其危险的。我们的决策需要在考虑整体平衡时提高效率。这些评价需要一视同仁,只有同时满足这两个条件,才能称得上是好的决策。这里举两个例子,一个是让路,一个是赶路。本文通过互动游戏的方式介绍了避让场景中考虑不确定性的超车案例中的让路和冲车决策:给迎面驶来的车辆让路,给迎面驶来的车辆让路。迎面而来的车辆超低速行人1)模仿学习决策:采用模仿学习的方法,离线训练策略网络生成模型进行决策,这里是超越前方故障车的场景。2)解决模型错误:这里是下图中的场景。一个行人向左走,另一个向右走。如果遵循正常的预测模型,就会出现分叉空间。当时那两个行人走开了,却没有想到左边走来的人居然在捡帽子。他可能会向左走,也可能会在拿起帽子后向右走。如果汽车真的向前行驶,它会撞到行人。自动驾驶中的行人预测是一个非常大的挑战,因为自由度比较大,不能像车辆那样有动态约束。在这里,Cruise使用强化学习的方法,离线训练模型并进行仿真来解决这个问题。通过下图右侧黄色图可以看出,经过强化学习训练,可以形成保守预测,从而解决上述问题。这里还提到,用强化学习的方法训练两辆自动驾驶汽车停车,但不会发生碰撞,舒适性更好。3)应急响应:这里说的场景真是惊心动魄。一辆自行车突然从自动驾驶车辆的右侧跳出。如果按照正常的决策流程进行,反应很可能会延迟而受到打击。因此,游轮采用强化学习的方法,离线训练相似场景,跳过预测,直接输出决策给规划和控制,及时刹车。这有点类似于AEB(紧急自动刹车)。在自动驾驶系统的设计中,需要考虑应急系统来解决此类场景。否则,外卖小哥将继续成为市区自动驾驶的最大考验。4)动力学模型:设计高保真车辆和环境动力学模型,对闭环系统进行规划和控制,保证自动驾驶的舒适性。各种高难度场景展示了其技术的进步和探索,但技术细节基本不公开。巡航决策规划技术主要有以下几点值得我们研究,也是未来自动驾驶的发展路径:基于规则的整体架构,引入机器学习,监督学习,强化学习,模仿学习,在规则保证安全的同时,通过学习的方式提高决策效率和决策绩效。1)考虑多重不确定性:运动学不确定性、遮挡不确定性、感知不确定性、模型不确定性。2)互动博弈:在自动驾驶过程中,需要与其他交通参与者进行互动,以提高通行效率,是自动驾驶研究的难点。3)应急响应:有时,如果整个决策过程在执行前就已经完成,自动驾驶车辆的响应可能会很慢,可能会发生安全事故。需要设置AEB和AES功能,提高系统的应急响应能力。4)预测:随着自动驾驶技术研究进入新阶段,单一障碍物的预测已不能满足自动驾驶的需要。需要考虑障碍物与本车的相互作用。预测和决策将越来越耦合在一起。奇怪的是,克鲁斯将预测和感知结合在一起。5)Cruise的基本框架:生成自动驾驶车辆和其他交通参与者的采样轨迹,然后评估生成最优决策。6)高保真动态模型看了Cruise的技术开放日,虽然没有透露多少技术细节,但Cruise考虑的问题和场景已经非常震撼了。目前,大部分自动驾驶企业还没有做到这一点。,如此精细地调整。
