当行为决策模块下达了“向左换道”的指令后,车辆具体应该走一条什么样的路径?是应该猛地一把方向甩过去,还是应该平滑、稳定地切入旁边车道?这个过程,就是运动规划要解决的核心问题。
运动规划模块接收行为决策的指令,并输出一条具体、安全、舒适且车辆可执行的行驶轨迹。这条轨迹定义了未来几秒内,车辆每一个时间点应该处于的位置、速度和加速度。
9.1 任务:定义一条理想的未来路径
运动规划器的输入和输出非常明确:
-
输入:
-
行为指令: 如
换道、超车、停车。 -
环境感知信息: 动态和静态障碍物的位置、形状及预测轨迹。
-
地图与定位信息: 车辆自身位姿、车道线信息、交通规则。
-
-
输出:
-
一条时空轨迹。它不仅仅是一条空间上的曲线(路径),还规定了在这条曲线上每个点的速度规划(什么时候加速,什么时候减速)。最终,它被转化为一系列带时间戳的位姿点
(x, y, θ, v, t)。
-
规划出的轨迹必须满足多个目标:
-
安全性: 绝对不能与任何障碍物发生碰撞。
-
舒适性: 加速度和加加速度(加速度的变化率)要平滑,不能让乘客感到晕眩或不适。
-
符合交规: 遵守交通规则,如保持在车道内行驶。
-
符合车辆动力学: 轨迹必须是车辆物理上能够执行的(不能出现无法实现的急转弯)。
9.2 路径搜索算法:在复杂环境中“找路”
这类方法的目标是在充满障碍物的环境中,找出一条从起点到终点的无碰撞路径。
-
A 算法:*
-
比喻: 像一个聪明的寻路者,它不仅会探索当前位置到终点的实际代价
g(n),还会用一个启发式函数h(n)来估算从当前点到终点的预计代价(如直线距离)。 -
工作方式: 它总是优先探索
g(n) + h(n)总值最小的点,这样它能更有方向性地、高效地找到最短路径。它是Dijkstra算法的优化版本。 -
应用: 在全局路径规划或结构化环境中的局部规划中非常有效。
-
-
D 算法:*
-
特点: 是A的动态版本。当车辆正在执行A规划出的路径时,如果环境中突然出现未知障碍物(比如突然窜出的行人),D算法能够高效地重新规划路径,而不需要像A那样从头开始计算,反应更快。
-
应用: 适用于未知或动态变化的环境。
-
9.3 采样-based算法:在广阔空间中“撒网捕鱼”
当环境非常复杂,搜索空间巨大时,A*这类算法会效率低下。采样-based算法采用了另一种思路:通过随机采样来构建一条可行路径。
-
快速探索随机树算法:
-
工作方式:
-
从起点开始,像一棵树一样生长。
-
在空闲空间中随机采样一个点。
-
从当前树上找到离这个随机点最近的节点。
-
朝着随机点的方向“生长”一小段距离,形成一个新节点,并检查这段路径是否无碰撞。
-
重复步骤2-4,直到树生长到了目标区域。
-
-
优势: 在高维空间(如需要考虑速度、时间)中非常高效。
-
劣势: 生成的路径通常是折线,不够平滑,不适合直接用于车辆控制。
-
-
RRT 算法:*
-
特点: RRT的优化版本。它不仅在生长,还会不断地重新连接和优化已有的树枝。
-
优化过程: 在产生一个新节点后,它会检查树上的邻近节点,看看是否可以通过这个新节点,以更短的路径到达这些邻近节点。如果是,就重新连接,从而使得整棵树的路径代价不断降低,最终找到一条渐近最优的路径。
-
9.4 曲线生成:将“折线”变为“丝滑”的轨迹
通过搜索或采样得到的路径往往是折线或多段线,直接让车辆跟踪会导致方向盘不停晃动,极不舒适。因此,我们需要用平滑的曲线来拟合这条路径。
-
多项式曲线: 使用三次或五次多项式来连接路径点。通过设定起点和终点的位置、速度、加速度等边界条件,可以解出一条非常平滑的曲线。五次多项式尤其常用,因为它能保证加速度的连续性,舒适性极佳。
-
贝塞尔曲线: 由控制点定义的平滑曲线。它不一定会经过所有路径点,但会被其控制点构成的凸包所包围,这个特性有利于避障。
-
样条曲线: 由多段低阶多项式曲线平滑连接而成。它既能保证整体的平滑性,又能精确地通过所有路径点。
9.5 优化-based方法:在“好”的路径中寻找“最好”的
这是目前最前沿和强大的规划方法。它将规划问题建模为一个带约束的数值优化问题。
-
核心思想: 定义一个目标函数,然后在这个函数的无数个解中,寻找那个能使函数值最小(或最大) 的解,同时满足一系列约束条件。
-
目标函数: 定义了什么是“好”的轨迹。通常包括:
-
舒适度: 最小化加速度和加加速度。
-
效率: 尽可能快地到达目标,或尽可能贴近参考速度(如限速)。
-
安全性: 与障碍物保持足够大的距离。
-
贴合中心线: 在车道内行驶时,尽量靠近车道中心线。
-
-
约束条件: 定义了什么是“可行”的轨迹。硬性约束必须满足,包括:
-
车辆动力学约束: 轨迹必须符合车辆的物理极限,如最大转向角、最大加速度。
-
碰撞避免约束: 车辆轮廓与所有障碍物之间的距离必须大于零。
-
交通规则约束: 车辆必须始终在车道边界内。
-
-
典型算法 - 模型预测控制:
-
MPC不仅是一种控制方法,也是一个优秀的在线重规划器。它在一个滑动的时间窗口内,反复地求解上述优化问题。
-
工作流程:
-
根据当前状态,规划未来一段短时间(如2秒)的最优轨迹。
-
只执行轨迹的第一个控制步骤(如0.1秒)。
-
到下一个时间点,根据新的车辆状态和感知信息,重新规划下一条轨迹。
-
-
优势: 这种“滚动优化”的方式,让MPC能够持续地适应环境的变化,具有很强的抗干扰能力和前瞻性。
-
本章小结
运动规划是一个多层次、多技术融合的复杂问题。在实际系统中,工程师们通常会混合使用这些方法:
-
可能使用A* 或 RRT* 快速生成一条初始的、粗糙的无碰撞路径。
-
然后用多项式或样条曲线对其进行平滑处理。
-
最后,采用基于优化的方法,对这条平滑后的路径进行微调,综合考虑舒适性、安全性和效率,生成最终用于控制的、丝般顺滑的时空轨迹。
至此,车辆的“大脑”已经完成了从战略(行为决策)到战术(运动规划)的全部思考过程。接下来,最后一个环节就是将这个完美的“想法”变成现实,这就是控制系统的任务。
1169

被折叠的 条评论
为什么被折叠?



