6软硬约束下的轨迹优化
作者:互联网
Introduction
Minimum snap trajectory optimization
Minimum snap这种方法只限制轨迹应该会通过的中间路径点(中继点),collision checking存在于轨迹搜寻中。
优点在于计算成本低,易于实现。但对轨迹本身没有约束,轨迹的“超调”不可避免如图所示。
基于Minimum snap 框架有利于平滑曲线但不利于避障。所以需要我们进行优化.
方法
产生障碍物推力(人工势场法),添加硬约束(bound box绿色方块)
Hard/Soft constraints
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
λ后面惩罚项/损失函数
•首选但不是严格要求的约束。
•包含各种损失函数。
Hard-constrained Optimization
Corridor-based Trajectory Optimization
[论文](Online generation of collision-free trajectories for quadrotor flight in unknown cluttered environments , Jing Chen et al.)
八叉树地图->搜寻处一条几何空间的路径(不考虑动力学)->对方格进行膨胀->生成走廊里的轨迹
问题是凸优化是不考虑初值的A
Problem formulation
如何将一段轨迹放在方框里,特别是重叠区域,中间区域
- 瞬时线性约束,比较好施加
-
- 起始点,重点约束( A p = b A_p=b Ap=b)
-
- 变化点 ( A p = b , A p ⩽ b A_p=b,A_p \leqslant b Ap=b,Ap⩽b)
-
- 连续约束( A p i = A p ( i + 1 ) A_{p_i}=A_{p_(i+1)} Api=Ap(i+1)
- 间隔线性的约束
- 对于 A ( t ) p ⩽ b , ∀ t ∈ [ t l , t r ] A\left( t \right) p \leqslant b, \forall t\in \left[t_l,t_r \right] A(t)p⩽b,∀t∈[tl,tr]
- 边界约束
- 动力学约束(v,a限制)
Advantages
效率:简化图中的路径搜索,凸优化在走廊上是高效率的。(二次规划问题)
高质量:走廊提供大的优化自由度。
红色为时间点,能够移动,可以根据需要调节
Disadvantages
所有的约束只在分段节点上执行,如何保证它们是有效的
迭代检查极值并添加额外的约束。将它压下去,直到符合给定约束的机制
- 但是QP问题迭代求解非常耗时。
- 如果没有严格可行的解决方案满足所有约束。那我们要跑10次迭代来确定解决方案?
- 原因:
•检验极值(多项式求极值转变为导数为0的问题)是另一个多项式求根问题。
•四次等式有求根公式,容易求,但是高阶呢。
Polynomial roots finding
•高阶多项式需要数值解,使用伴随矩阵,转化为矩阵求根问题.在matlab的root公式中说明如下
Bezier Curve Optimization贝塞尔曲线优化
Y:替换多项式的形式,因为其不方便施加约束
Trajectory basis changing
使用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称为控制点,有实际的物理意义
•端点插值。贝塞尔曲线总是从第一个控制点开始,到最后一个控制点结束,绝不通过任何其他控制点。如图
•凸包。贝塞尔曲线
标签:软硬,多项式,曲线,约束,控制点,优化,轨迹,left 来源: https://blog.csdn.net/qq_37087723/article/details/116152961