Press "Enter" to skip to content

如何用逆强化学习在城市道路自动驾驶

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

arXiv论文 “Driving in Real Life with Inverse Reinforcement Learning”,上传于2022年6月,作者来自Motional。

 

本文介绍基于学习的规划,逆强化学习(IRL)如何在密集的城市交通中驾驶汽车。规划器DriveIRL生成一组不同的轨迹提议,用一个轻量级且可解释的安全滤波器对这些轨迹进行过滤,然后一个学习模型对每个剩余轨迹进行评分。最后自动驾驶车的低级控制器跟踪最佳轨迹。

 

在最大熵IRL框架内,在拉斯维加斯500多小时专家驾驶演示的真实世界数据集上训练轨迹评分模型。DriveIRL的优点包括:由于只学习轨迹评分函数,设计简单,功能相对可解释,强大的真实数据驾驶性能。在拉斯维加斯大道验证了DriveIRL,并演示在交通繁忙的情况下完全自动驾驶,包括切入、前车突然刹车以及酒店接送(dropoff/pickup)区。该数据集打算将公开。

 

DriveIRL方法产生一组自车运动轨迹,并评估是否安全。仔细构建这些拟定轨迹可确保其a)动态可行,b)遵循路线,c)满足车辆控制器的假设,以及d)多样性。然后,用一个轻量级安全滤波器,确保每条轨迹满足一个递归安全保证:如果执行轨迹的第一部分,则存在该轨迹的安全延续性,从而避免碰撞。模型的学习部分完全侧重于根据专家演示对这些轨迹进行合理的评分。其设计将模型容量导向行为中难以指定的细微差别(例如速度曲线、车辆间距),而不是创建“良好”的轨迹,可避免明显的不安全行为。

 

如图是DriveIRL架构图:

 

· 输入

 

用中级表征对自动驾驶汽车周围的环境(或场景)进行编码。假设自车定位在一个高清地图中,目标被感知系统检测和跟踪。其他道路用户(如汽车、自行车和行人)由目标类型、定向边框和速度表示。高清地图提供车道中心线、道路边界、红绿灯位置、人行横道、速度限制和其他语义信息。还提供一条路线,指示自车朝目标前进应该穿过的车道。

 

将给定时间戳的场景上下文称为a)自车动态S(速度、加速度、转向),b)其他道路用户U(类型、定向边框、速度),c)地图M,以及d)自车的期望路线R。模型接收当前时间戳的场景上下文以及指定数量的历史时间戳(例如,过去1秒)作为历史H。

 

· 输出

 

规划器生成多个自车轨迹,并根据其与专家在给定场景背景驾驶数据的匹配程度对每个轨迹进行评分。轨迹是自车未来状态的离散序列,假设在所有状态之间有一个固定的时间步长。设st=(x,y,θ,v)表示时间t的状态,位置(x,y)、航向θ和速度v。所有值都与固定坐标系中自车的几何中心有关。轨迹表示τ=[s1,…,sT],其中T是一组轨迹中排名最好的规划时间范围,用作车辆跟踪和执行器控制器参考。

 

· 轨迹生成

 

轨迹生成模块用场景上下文为自车合成一组可能的未来运动。自车轨迹的重要考虑因素是:a)动态可行,b)满足低水平跟踪和执行器控制的所有要求(即连续性水平、最小转弯半径、停车的最小加速度)。次要考虑因素是轨迹符合地图(例如,停留在道路上)。虽然这些考虑因素并不排除使用一个学习轨迹生成模块,但发现手动设计轨迹生成器最能满足上述考虑因素。

 

轨迹生成器使用i)当前自状态S,ii)路径R,以及iii)地图M,来创建一组不同的自轨迹T,执行器沿自车前方的路线集成所需的加速度曲线。在实验中,指定一系列恒定加速度曲线,包括硬刹车(−5.0m/s2)至中等加速度(1.5m/s2)。由于自车不总是在车道中心线上(车辆控制器跟踪错误造成的),将初始自车姿势与Dubins paths(LaVall)平滑连接,其中转弯半径是一组固定的参数。在典型场景中,轨迹生成器通常根据自状态和路线创建50-150条轨迹。

 

如图显示了一些示例:

 

· 安全滤波器

 

在对候选轨迹评分之前,用可解释的安全过滤器来保证基本安全(即无碰撞)。它包括:

一组用于预测非自车道路使用者行为的世界假设
一组应用于自车轨迹的轨迹修正器
修改后的自车轨迹需要通过的一组安全检查

为了使候选轨迹视为安全,必须在给定的轨迹修改和对其他道路使用者的假设下通过所有安全检查。

 

如图所示:

 

安全滤波器在精神上类似于后备(fallback)层,不同之处在于1)它直接滤除提议的轨迹,而不是将输出轨迹投影到特定的轨迹集中;2)轨迹修改器有效地实现递归安全保证,假设和检查最少,不会影响舒适度。

 

· 轨迹打分

 

正确地对轨迹进行评分是规划方法的核心挑战。这一困难是因为正确的驾驶行为受到周围环境的严重影响,包括其他道路使用者的行为和目标,对此规划器只有部分了解。

 

轨迹打分由经过最大熵IRL损失训练的深层神经网络计算。从驾驶车辆的熟练司机那里收集专家演示数据。损失倾向于在特征空间中最接近专家演示的轨迹。特别地,让r(τ)表示轨迹τ的回报∈ T,轨迹被选择的概率根据最大熵原理得到:

 

而NLL(negative log-likelihood)损失则是

 

最后采用focal loss增强得到:

 

每个提议轨迹的特征可计算作为神经网络的输入。这些特征可以基于拟定轨迹τ、自状态S、其他道路使用者U、地图M、路线R和历史H的任意组合。特征包括:

碰撞时间(TTC):自车在(预测的)未来与其他道路使用者碰撞之前的最短秒计量。在多点进行评估。
ACCInfo:自速度、与前方道路使用者的距离、前方道路使用者的速度以及前方道路使用者的相对速度。在多点进行评估。
MaxJerk:沿轨迹的最大抖动(m/s3)。
MaxLateralAccel:沿轨迹的最大横向加速度(m/s2)。
PastCoupling:未来轨迹与过去一秒钟自车姿态的串联,保持过去、现在和未来轨迹之间的一致性。
SpeedLimit:轨迹遵守速度限制的程度。在多点进行评估。

如图是轨迹打分的架构图:

 

· 轨迹预测

 

每个拟定轨迹的某些特征计算需要估计其他道路使用者未来的位置,例如碰撞时间(TTC)和ACCInfo。用智能驾驶员模型(IDM)作为其他汽车的预测模型,采用保守加速度值,避免认为静止车辆会加速。对行人和无附近车道的车辆使用恒速模型。

 

· 模型体系结构

 

为了给一条轨迹打分,在一种体系结构中通过掩码自注意机制,在提取的特征发生交互之前进行单独处理。

 

在该体系结构下,每个输入特征fi作为相关车辆-环境交互数据的时间序列,首先通过一个BatchNormalD层进行规范化,然后再馈送到一个LSTM模块。LSTM的输出成为前馈模块的输入,接着是一个具有两个头部和120嵌入维度的自注意机制。这里用查询的零掩码(zero-masking)来编码位置。

 

通过自注意考虑其他特征,该模型为每个特征生成一个“校正”的输出嵌入,传递给前馈网络,该网络将其转换为标量,然后激活tanh生成特征打分yi。轨迹的最终得分是这些特征得分乘以相应的可学习特征权重参数wi后的总和。总的来说,基本(最佳)模型有约88700个训练参数。

 

作者创建了一个自动驾驶汽车数据集,该数据集捕获了拉斯维加斯市中心的真实城市驾驶情况。其作为nuPlan数据集的一部分,将公开。包括目标标注和高清地图。车辆、行人和骑自行车人使用离线感知系统进行自动标注(类似于谷歌waymo的AutoLabeling),并被视为真值。滤波并提取182032个场景,每个场景持续11秒(过去1秒,未来10秒),总计约556小时。

 

工作感兴趣是学习良好的ACC性能。因此,过滤掉了自变道或偏离车道很远的场景。过滤后,对train、val和test集执行了3:1:1分割。如表1按场景标记显示数据集的详细分布:表中的标记不是互斥的,一个场景可以属于多个标记。

 

特征重要性分析:

 

数据增强分析:

 

模型架构比较:

 

损失函数比较:

 

真实驾驶实验结果:

 

在公路部署之前,DriveIRL在模拟和私人封闭路线上都经过了严格测试。模拟测试包括与部署目标相同的拉斯维加斯大道路线,并涉及自车的高保真动力学模型和存在各种行为的众多参与者。当部署在狭长地带时,车辆由一名司机驾驶,其经过培训,能够接管操作领域以外的不安全行为和情况,包括施工区、公共汽车站和应急车辆。

 

在大道上,规划器处理了各种具有挑战性的场景,如交通拥挤、强行切入、不可预测的司机以及酒店赌场附近繁忙的乘客上下车区。

 

在没有安全滤波器的情况下,车辆在11英里路线的8.8英里内保持自动模式。强制接管区域直接放弃,意外行为发生了两次。

 

有了安全滤波器,车辆在8.5英里中的6.9英里内保持自动模式,只有在强制接管地区才会发生接管。

 

如图显示了一个典型的机动动作,其中自动驾驶车辆在被多辆车包围的情况下平稳地停在前面的一辆车后面。

 

还有不少视频剪辑,基本按以下类别进行分组:切入、在乘客上下车区周围驾驶、在前方有车的时候驾驶和在车辆后方停车。

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。