Minimum snap Trajectory Generation
1.公式化

- 每一段都是多项式轨迹
- 没必要固定阶数,但保持相同的阶数可以使问题简单
- 每段的时间间隔是已知的
2. 约束条件
derivative constraint(导数约束):
在七点和重点满足边界条件Continuity constraint(连续性约束):
保证轨迹之间的连续性

Minimum jerk:至少为五阶多项式
Constraints num:3+3+(k-1)=k+5
Unknowns num: (N+1)*k
Minimum snap:七阶多项式
2.1首位的导数约束

2.2 两段之间的连续性约束

3. 代价函数

4.将问题转化为了受约束的QP问题

5.举例说明
n阶轨迹多项式:

设参数向量
,则轨迹多项式可以写成向量形式:
,则对于任意时刻t,可以计算出轨迹的位置、速度、加速度、加加速度等。

一个多项式曲线过于简单,一段复杂的轨迹很难用一个多项式表示,所以将轨迹按时间分成多段,每段各用一条多项式轨迹曲线表示:

例如给定包含起点终点的k+1个二维路径点
,给定其实速度和加速度
,末端加速度
,给定时间T,规划出所有路径点的平滑轨迹
l 构建优化函数
Minimum snap的优化函数为:

其中,


l 构建等式约束方程
- 设定一个点的位置,速度,加速度或者更高维的一个特定的值,可以构建一个等式约束:
位置约束:
速度约束:
加速度约束:
k-1段,n阶多项式,只有此处是对起始点的pva进行约束
- 相邻段之间的位置、速度、加速度连续性约束可以构成一个等式约束,例如第i,i+1段位置的连续约束构成的等式约束为:

速度,加速度的连续性类似。
- 合并所有等式约束得到

等式约束个数=3(其实pva)+(k-1)(中间点的p)+3(终点pva)+3(k-1)(中间点pva连续)=4k+2

参考
深蓝学院资料
Minimun Snap轨迹优化-学习记录_深蓝学院运动规划第五章-CSDN博客
基于ROS用二次规划QP实现Minimum Snap轨迹规划_如何在c++中实现二次规划-CSDN博客
Minimum Snap轨迹规划详解(1)轨迹规划入门_minimum snap trajectory generation and control for-CSDN博客