自动驾驶学习记录
五次多项式
Jerk=dtda
其加速度的导数,其绝对值越小,则越舒适
因此自动驾驶的优化目标是
find f(t). s.t. min∫0T(dt3d3f)2dt
subjecto to s(0)=s0,s˙(0)=v0,s¨(0)=a0
s(T)=sn,s˙(T)=vn,s¨(T)=an
这是一个泛函,要求得一个最佳的f(t),使积分最小。为了匹配六个边界条件,需要五次多项式。
将f泰勒展开有
s=f(t)=f(0)+f′(1)t+2!f′′(0)t2+3!f′′′(0)t3+...
=s0+v0t+a0t/2+Jerk(0)×t3/6+...
约束可以化为
s(T)−s(0)=sn−s0=∫0Tf˙(t)dt=C0s˙(T)−s˙(0)=vn−v0=∫0Tf¨(t)dt=C1s¨(T)−s¨(0)=an−a0=∫0Tdddotf(t)dt=C2
min ∫0Tdddotf2+λ1(f˙−C0/T)+λ2(f¨−C1/T)+λ3(dddotf−C2/T)dt
其应该满足 [EL方程 | ### 欧拉拉格朗日方程] ,应有
dt3d3(λ3+2dddotf)=0,f(6)=0
欧拉拉格朗日方程
https://zhuanlan.zhihu.com/p/698294026
∫
∂g∂L−dxd(∂g′∂L)=0
广义EL
∂f∂L−dtd∂f˙∂L+dt2d2∂f¨∂L−dt3d3∂dddotf∂L=0
FEMSmoother
![20241024163936.png]
![20241024163947.png]
平滑算法代价的计算
平滑代价
∣P1P3∣=∣P1P2+P1P0∣=∣(x2+x0−2x1,y2+y0−2y1)∣
设输入向量为
[x]=⎣⎡x0y0x1y1x2y2⎦⎤
则应有
cost=[1001−200−21001]⎣⎡x0y0x1y1x2y2⎦⎤=Ax
使用距离平方做代价则有
∣P1P3∣2=xTATAx
如果拓展到n个点,则有
A=⎣⎡100000010000−2010000−2010010−2010010−20110−20010−21001⎦⎤
变成一个上三角矩阵,其列数为2n,行数为2n-4
紧凑代价
∣P1P2∣+∣P2P3∣
几何相似代价
∣P1P1r∣+∣P2P2r∣+∣P3P3r∣
推导过程类似,不赘述