Minimum snap这种方法只限制轨迹应该会通过的中间路径点(中继点),collision checking存在于轨迹搜寻中。
优点在于计算成本低,易于实现。但对轨迹本身没有约束,轨迹的“超调”不可避免如图所示。
基于Minimum snap 框架有利于平滑曲线但不利于避障。所以需要我们进行优化.
产生障碍物推力(人工势场法),添加硬约束(bound box绿色方块)
min f ( x ) s . t . g i ( x ) = c i , i = 1 , . . . , n 等式约束 h j ( x ) ⩾ d j , j = 1 , . . . , n 不等式约束 \min f\left( x \right) \\ s.t. g_i\left( x \right) =c_i, i=1,...,n\,\,\text{等式约束} \\ \,\, h_j\left( x \right) \geqslant d_j, j=1,...,n\,\,\text{不等式约束} minf(x)s.t.gi(x)=ci,i=1,...,n等式约束hj(x)⩾dj,j=1,...,n不等式约束
硬约束必须要满足
软约束目标是尽量减少下面函数值
min f ( x ) + λ 1 ⋅ g ( x ) + λ 2 ⋅ h ( x ) \min f\left( x \right) +\lambda _1\cdot g\left( x \right) +\lambda _2\cdot h\left( x \right) minf(x)+λ1⋅g(x)+λ2⋅h(x)
λ \lambda λ后面惩罚项/损失函数
•首选但不是严格要求的约束。
•包含各种损失函数。
[论文](Online generation of collision-free trajectories for quadrotor flight in unknown cluttered environments , Jing Chen et al.)
八叉树地图->搜寻处一条几何空间的路径(不考虑动力学)->对方格进行膨胀->生成走廊里的轨迹
问题是凸优化是不考虑初值的A
效率:简化图中的路径搜索,凸优化在走廊上是高效率的。(二次规划问题)
高质量:走廊提供大的优化自由度。
红色为时间点,能够移动,可以根据需要调节
所有的约束只在分段节点上执行,如何保证它们是有效的
迭代检查极值并添加额外的约束。将它压下去,直到符合给定约束的机制
•高阶多项式需要数值解,使用伴随矩阵,转化为矩阵求根问题.在matlab的root公式中说明如下
Y:替换多项式的形式,因为其不方便施加约束
使用Bernstein多项式基。
•将轨迹的基从单项多项式改为伯恩斯坦多项式
•Bézier曲线只是一个特殊的多项式,它可以通过以下方法映射为单项多项式:
p = M c ˙ p=M \dot c p=Mc˙之前的推导仍然成立。
[ n i ] 相当于 c n i \left[ \begin{array}{c} n\\ i\\ \end{array} \right] \text{相当于}c_{n}^{i} [ni]相当于cni
Properties:
Bezier的系数c称为控制点,有实际的物理意义
•端点插值。贝塞尔曲线总是从第一个控制点开始,到最后一个控制点结束,绝不通过任何其他控制点。如图
•凸包。贝塞尔曲线()由一组完全受限的控制点ci组成,一段Bezier曲线一定被其所有控制点围成的凸包包围住(P0~P4)
•Hodograph。Bezier曲线B()的导数曲线B’()被称为Hodograph,还是贝塞尔曲线,
并且是由n∙(c+1−c)定义的具有控制点的Bezier曲线,其中n为度。
• 固定的时间间隔。Bezier曲线总是在[0,1]上定义,所以需要轨迹进行缩放
凸多边形如果被约束在飞行走廊中,那么轨迹也就被约束在飞行走廊中,同样轨迹的导数即速度以及加速度也可以利用凸包范围进行限制。
•飞行走廊由凸多边形组成。
•每一个立方体对应着一条贝塞尔曲线。
•这条曲线的控制点被约束在多边形内
•轨迹完全在所有点的凸包内
目标函数(依然是二次型)
连续性约束只需要前端末尾后端开始两个被控制点相等,速度可以利用hodograph的性质n(c1-c0)=v,同理,加速度可以用速度表示边界,
安全性约束也都可以使用凸包性质,控制点在安全走廊中,不等式约束.
动力学约束可以使用凸包性质和Hodograph性质实现, f 1 ( 0 ) = s 0 , f N ( T N ) = s N f_1(0)=s_0,f_N(T_N)=s_N f1(0)=s0,fN(TN)=sN
综上:约束条件仍然为线性等式约束和线性不等式约束,仍然为QP问题。不过优势是能够彻底地避免迭代求解问题.
[论文](Online Safe Trajectory Generation For Quadrotors Using Fast Marching Method and Bernstein Basis Polynomial , Fei Gao et al.)
source code
•在离散时间点添加大量约束。
•每一个时间段恒定加速度。
•QP方案解决方案
[论文](A hybrid method for online trajectory planning of mobile robots in cluttered environments , L Campos-Macías et. al)
并非凸优化问题,用于无人机编队
对问题解决用数学描述为 大M法,
[论文](Mixed-integer quadratic program trajectory generation for heterogeneous quadrotor teams , D. Mellinger et al.)
Vison-based无人机:
•有限的传感范围和质量
•噪声深度估计
Hard-constrained方法:
•所有解空间都是等价的
•解空间对噪音敏感
软约束能够让路径更加远离障碍物,但是如果目标函数设置不合理,不一定使得约束能够完全满足.
基于梯度的数值优化方法,通过minimizef(x)求得关于 x k x^k xk的数值序列使得 f ( x k ) f(x^k) f(xk)逼近最优解,或者使f(x)的导数为0。有以下求解方法
一阶法,即梯度下降,向导数的负方向搜索:
判断梯度的变化大小进而判断是否收敛
先执行一段固定轨迹,先考虑collision cost,再优化其他
一旦某一项出现情况就会急剧上升,总体J要保证下降
论文: Gradient-Based Online Safe Trajectory Generation for Quadrotor Flight in Complex Environments, Fei Gao et al.
Source code
Kinodynamic path searching
•在matlab中编写一个生成走廊约束分段贝塞尔曲线。
•给出了贝塞尔到单项多项式的转换。
•走廊是预先设定好的。
•只需要限制位置。