motion planning
motion planning是寻找一个最优路径的问题。实际上就是寻找一个objective function
motion planning的场景一般有两种。
informative research/non-informative research
informative research:
首先现将环境因素剔除干净,做环境全知的一个路径规划。这个时候可能a*算法就能够解决这类问题。
参考论文:
1995 D
*
Optimal and Efficient Path Planning
for
Partially
-
Known Environments
non-informative research:bfs dfs
首先无人车只能感知有限的范围,往往采用贪心策略,在已感知的有限范围内寻找最优解。就是d*算法
接着又继续升级,当遇到障碍物的时候,遇到路口的时候的策略。
以下参考(https://www.bilibili.com/video/BV1JW411P7aA?p=2)
再l升级的话,就是有限范围内寻找的最优解是点对点的,没有将汽车的动力学模型加入到路径规划中。如何让汽车的运动足够地平滑,由于汽车的运动控制是多参数的,传统的pid控制是单变量输入输出控制,面对输入和输出之间有交互作用的多输入多输出系统,pid控制将要调整很多控制器增益。

如果控制对象输出的参数MPC就可以搞定(model predictive control)

绿色的部分为预测的位置,这里mpc引入优化器去减小参考车和预测目标之间的误差,并减少方向盘的转动角度。最后得出的代价函数如下。就是上图的mpc(损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差,而代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均,这给我们评价学习效果提供了一个标准,提出这个后下一步要做的就是不断优化神经网络来减小代价函数的值。)
而且这里mpc可以确保方向盘的转动和汽车不偏离道路。就是上图的constains。

mpc每次移动一个相同的时间步长后都会重新计算下一次的代价函数,从而得到汽车的一个方向盘转动量。

最后提到了卡尔曼滤波器作为一个状态估计器,因为在上面的描述中汽车的横向运动量不可以被测量到,但是可以通过卡尔曼滤波算法得出一个大致的状态。

© 本文版权归 Mr.Curiosity 所有,任何形式转载请联系作者。
© 了解版权计划