Apollo轨迹规划技术分享
轨迹规划(Trajectories Planning)主要指考虑实际临时或者移动障碍物,考虑速度,动力学约束的情况下,尽量按照规划路径进行轨迹规划。
轨迹规划的核心就是要解决车辆该怎么走的问题。轨迹规划的输入包括拓扑地图,障碍物及障碍物的预测轨迹,交通信号灯的状态,还有定位导航(因为要知道目的地是哪才能规划路径)、车辆状态等其他信息。而轨迹规划的输出就是一个轨迹,轨迹是一个时间到位置的函数,就是在特定的时刻车辆在特定的位置上。
在本篇分享中,我们有请高级架构师 Zhang Yajia 为大家分享在百度 Apollo 平台上,轨迹规划算法的技术方案。
轨迹规划综述
轨迹规划的目标是计算出安全、舒适的轨迹供无人驾驶车辆完成预定的行驶任务。安全意味着车辆在行驶过程中与障碍物保持适当的距离,避免碰撞;舒适意味着给乘客提供舒适的乘坐体验,比如避免过急的加减速度,在弯道时适当减速避免过大的向心加速度等等;最后,完成行驶任务指规划出的轨迹要完成给定的行驶任务,不能因为过于保守的驾驶导致不可接受的行驶时间。
无人驾驶的位形与状态
我们这里对轨迹规划问题作正式的定义。首先,我们介绍两个机器人领域的概念:位形(Configuration)是在所研究的规划问题中,能够唯一性的表达机器人状态的最小一组变量。变量的数量称为位形的维度。这里需要注意的是,位形空间的维度,即使对于同一个机器人来讲,所研究的问题不同,维度也是不同的。比如,对一个人形机器人来讲,如果规划问题是在三维空间中移动,位形需要由参照点的变换矩阵,关节的伸展角度组成;如果规划问题是作物体的操作(Manipulation Planning),则在前面问题位形空间的基础上,还要增加机器人手指关节的伸展角度等。
对于无人驾驶车辆来讲,最简单的位形描述需要使用3个变量:车辆某个参照点的坐标(x, y),以及车辆的朝向θ来表达车辆的构型,这也是很多参考文献中,对于非和谐车辆系统的位形表达方式。对于我们专门为有人乘用的无人驾驶车辆作轨迹规划的问题来讲,更好的位形组成在上面的3个变量基础上加入车辆的即时转向曲率κ:如果车辆的导向轮保持一定的角度,车辆会做圆周运动。这个圆周运动的半径就是即时转向曲率 κ。加入κ,有助于控制模块获得更准确的控制反馈,设计更为精细平稳的控制器。
轨迹规划的定义
轨迹规划的正式定义,计算一个以时间t为参数的函数S,对于定义域内([0, t_max])的每一个t,都有满足条件的状态 s:满足目标车辆的运动学约束,碰撞约束,以及车辆的物理极限。
轨迹规划问题的难点
轨迹规划是一个复杂的问题,首先,规划上加入了速度与时间的信息,增加了规划的维度。其次,由于车辆是非和谐系统,具有特殊的运动学约束条件。举个例子,车辆不能独立的横向移动,需要纵向移动