motion planning overview
是什么?
寻找最优解
两种环境以及对应的算法:
- partially observed:D*
- fully observed:A*
规划中的一些难点:
- 动态物体的分析
- 交通规则
- 实时性:有限的时间里找到一个比较好的解(所以这也是为什么很多大公司都是用C++,因为C++快呀)
要求:安全平稳
信息分两种:
- 动态:比如实时感知到的信息
- 静态:高精度地图上的信息
规划模块所能看到的信息
轨迹:路径+速度
参考文献
Motion Planning Approaches
道路约束的类别(Types of Path Constraints)
第二点中bounded curvature(有界曲率)表示的是车实际可行的行驶轨迹
将问题简单化的一种方法:连续空间离散化
路径规划的方法
PRM:一种抽象连续空间的方法
“在整个空间中撒点”
RRT:随机撒点,挨个连接,连线不穿过障碍物。如果撒的点太远了,就重新撒。缺点:不够平滑
Lattice Sampling
将地图网格化,构建一条机器人能够行进的,曲率连续的曲线。
动态规划:“算过的东西,之后可以直接用,减少重复计算”
最初的LaLattice:“到处撒点”、“不长记性”
改进的版本:动态规划“长记性”
再改进(在规则的路面没必要这样随机撒点)
一种优化
分成path、speed两个模块
优化思维
高维空间不知道怎么优化,就拆分成低维,在低微中进行优化,看再次组合成高维时,是否也有优化。
“凸空间有唯一最优解,要么在边界,要么在中心”
那么就能用二次规划的方式,快速找到最优解。
图像平滑
bezeir splone
更高级的:quadratic spline / quantic spline
无穷阶的平滑:直线(平滑阶数越高,越会较远的脱离原有的离散的点)
总结
- 通过动态规划的方式将
- 二次优化:在凸空间中,可以以非常快的速度找到最优解