运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度

发布于 2023-2-20 17:51
浏览
0收藏

运动规划的维度

运动规划是自动驾驶技术栈中,信息整合的关键一步,负责把上游的孤立、异构、模糊的多方面信息整合成自洽的运动轨迹(trajectory);好的轨迹需要满足多方面的要求,其中最重要的方面包括安全性(safety)和舒适性(comfort)。对于车辆自动驾驶来说,车辆的控制是限制在地面这个二维世界里(严格来讲,地面空间是二维流形,即地面空间与R²局部同胚(local homeomorphism))。但轨迹并不在这个空间中,因为轨迹并不仅是简单的一个瞬时的状态,也需要考虑时间这一维度。因此,它是一条在二维空间和一维时间组成的三维空间中的曲线。轨迹的时间跨度,称为时域(horizon),通常要达到8-10秒这个范围,才能满足城市复杂场景公开道路产品级自动驾驶的需求。


为什么要在比较长的时间跨度上规划完整的运动,而不能只是简单地规划当前瞬间的动作(油门、刹车、转向)呢?目前很多基于端到端学习的规划方法都是这么做的,毕竟人类司机驾驶时,很多时候也只考虑眼前需要的动作而已。进行长时程的完整规划主要是为了保证未来的规划问题仍然可解。车辆从动力学上来说,惯性很大,从运动学上来说,又属于非完整系统(non-holonomic,即车辆不能瞬间改变朝向),所以如果只考虑当前位姿,是不能作出有前瞻性的驾驶动作的。缺乏前瞻性的驾驶动作虽然目前看来不错,但很容易把自己开进死胡同,造成一段时间之后无解。比如如果观察到路口的红灯,无人车必须根据当前速度提前刹车才能保证不闯红灯;如果只考虑眼前,会发现在到达路口之前都没有刹车的必要(不会立刻违反交通规则),而到了路口,再刹车就来不及了。这就是为什么这个模块的名字叫做运动规划(motion planning)——规划就是计划未来。端到端学习的方法只输出当前驾驶动作,实际上相当于把控制(control)也囊括在内了,但通常模型内部还是需要通过辅助损失函数(auxiliary loss)等方式对未来有一个预测和考量的(比如Waymo的ChauffeurNet)。在时空的三维空间中的轨迹,可以完整地描述未来一段时间之内的运动的全貌,因此对这个完整运动的最优解算就可以实现有前瞻性的运动规划。这就是为什么我们要在运动规划的时候考虑未来时间这个维度。

体感

运动规划考虑空间和未来时间这三个维度,就够了吗?要回答这个问题,绕不开体感这个话题。体感也就是物理舒适度(physical comfort),是驾驶舒适度的一个重要方面,反映了车辆运动的不平滑性。体感与舒适度的其他方面一样,比较主观,评估需要从多种指标考虑。常用的指标包括横向和纵向(lateral and longitudinal)的加速度(acceleration)和加加速度(jerk)等。从这些指标可以看出,对于体感来说,运动轨迹对时间的导数是非常重要的,理想的运动轨迹在时间上必须足够平滑。

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

图:平滑的速度(v-t)曲线。轨迹的平滑性是舒适体感的核心。


上面说到,在运动规划给出的轨迹(对未来运动的规划)里,可以清楚地评估和优化未来运动的平滑性,但过去的运动轨迹则是另一番景象。过去是不可改写的,更重要的是,过去的轨迹是在过去每一个时间点的未来轨迹的初始段积累而成的,类似于控制中的滚动时域优化(receding horizon control)。过去某时刻对当时的未来的规划,也可以因时间推移,感知预测等信息的更新而更改;比如,两秒钟之前规划的轨迹中预计行驶两秒后到达的位置,可以不同于一秒前规划的轨迹中预计行驶一秒后到达的位置,而二者又皆可不同于当前实际所在位置。因此过去这个时间维度不仅仅是未来时间向相反方向的延伸。尤其是这两个时间维度的接合处,也就是当前时刻,是需要额外细致处理的。体感的效果,必须这些地方每一处都精心优化,才能得以保证。

两个时间维度的可视化

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

一个cut in的例子

在上游输入(定位,感知等)保持稳定的情况下给出平滑的规划是比较容易的,但无人车在城市公开道路上需要处理大量不可预料的情况,不论是因为上游定位感知等模块给出不稳定、跳变的结果,还是因为现实世界中实际存在突变(比如被遮挡的物体突然可见,或者近距离的邻车突然决定变道等),都会造成规划的输入无法保证稳定连续。下面这个图中展示的是一个比较常见的场景,就是我们通常称为cut in的情况

这些情况很常见,而经验丰富的人类司机总是能泰然处之,很少需要做急刹车之类的紧急操作,这就给致力于打造自动驾驶“老司机”的轻舟智航团队设立了很高的目标。在输入发生突变的情况下,保证安全性是首要任务,但通常在保证安全的前提下,我们仍然有很多轨迹的选择,这时候如何选择体感最优的轨迹就尤为重要。人类司机向我们证明了,只要耐心打磨驾驶技术,就能在绝大多数情况下,找到又安全又舒适的驾驶轨迹。那么根据我们上面对轨迹平滑性和体感之间关系的分析,我们应该怎样处理cut in这个场景呢?

尝试一:直接刹车

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

尝试二:渐强刹车

在匀加速运动的基础之上,一个很显然的改进就是让加速度渐变。如果用基于规则的规划方法,由于加速度是路程s的二阶导,我们只要使用三次以上多项式就可以实现逐渐变化的加速度(连续加加速度);大家常用的是分段五次多项式(piecewise quintic polynomial),这样起止点的加速度都可以手动指定。更好的方式是利用数值优化(numerical optimization),通过惩罚加速度和加加速度等来保证平滑。

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

图:渐强刹车响应的轨迹簇。在cut in发生时规划发生突变,之后轨迹的加速度也是连续的。但注意突变之前的水平直线和突变之后的曲线之间有一个纵向跳跃,这个跳跃随着增大而增大。


上述都是业内常用的方法,但在执行时,惯常的做法都是把s或者v作为未来规划时间()的函数,并没有考虑。这样规划出来的轨迹,可以保证对平滑,但经过执行后,在方向上仍然是不平滑的。尤其是像cut in这样的场景,因为规划的输入突然变化,不显式考虑这个维度的话很容易有体感问题。

尝试三:基于时间的可变刹车

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区


如果我们考虑时空联合规划(space-time joint planning),空间和时间维度各有两个,那么就需要把上述模型推广一下:轨迹簇变成四维空间中的二维流形(manifold),第二基本形式在这个场景下也有对应的推广形式。


运动轨迹仅仅是2D的?——论自动驾驶运动规划的维度-汽车开发者社区

总结

这篇文章跟大家讨论了运动规划中的两个时间维度,以及它们跟体感的关系。运动规划有两个时间维度,这个说法似乎有悖常识。在深入探讨不舒适体感产生的原因之前,我们并没有办法事先预料到问题的根源在于规划在两个不同的维度上产生不平滑性,也没有刻意地套用某个具体的理论:这两个时间维度的区别是在工程实践中自然体现出来的。我们作为自动驾驶工程师,任务就是提炼、抽象、理解这些问题,然后在我们的工具箱中找出合适的工具予以解决。


文章转载自公众号:汽车电子与软件

分类
收藏
回复
举报
回复
相关推荐