为什么需要平滑轨迹?
A star、RRT star等算法,找到了一段轨迹路径,也就是一系列的点,但没有指明点的连接方式,可能是平滑的曲线,也可能是折线。这些算法是不考虑机器人运动学约束的,因此轨迹上会出现明显的不光滑点,可以想象,机器人不可能在某一点出现运动突变,如果是万向轮的机器人要想按照这个轨迹走,它必须每走完一段路,就要停下来,然后旋转一个角度对着路径然后再加速往前走。这样很明显浪费很多时间和效率。如果是阿克曼的机器人那么它就无法按照这个路径进行运动。
目标:
- 动力学状态不能突变。满足微分约束
- 机器人不能在转弯时停下来,要连续流畅地走。拐弯时的速度曲线,越平滑越好
- 节约能源。轨迹生成的目标函数可以是最小关于状态和输入的能量泛函
要素:
- 边界条件:起点、目标的位姿
- 中间条件:中间路径点的位姿。通过路径规划(
A*
,RRT*
等)可以找到 - 平滑度评价函数
- 通常转化为输入变化率的最小化问题
注意:
- 平滑直线段的角。
- 首选恒速运动,零加速度
- 需要特殊处理短段