路径跟踪之导航向量场(三)——无奇异点导航向量场
今天带来导航向量场最后一期文章——无奇异点导航向量场。
1. 引言
还记得我们第一期文章中关于圆的导航向量场介绍吗?导航向量场具有计算量小、实现简单、应用灵活等优点。并且前文所述的导航向量场构建方法通过将期望轨迹转化为隐函数,采用点所在的水平集作为轨迹跟踪误差,成功的避免了在轨迹上寻找最近点的繁琐计算。
不知道大家有没有思考过一个问题,在圆心 ( 0 , 0 ) (0,0) (0,0)处如何计算导航向量场。在圆心 ( 0 , 0 ) (0,0) (0,0)计算梯度 ∇ ϕ \nabla\phi ∇ϕ时,其中有部分项分母为0。另外如果是曲线存在自相交的情况,交点处向量场应该如何计算?
在期望轨迹为闭合曲线或有自交点时,必然存在奇异点,也就是导航向量为0的点[1]。尽管有文献可证明这个奇异点集是零测度的[2],也有很简单的策略能保证无人机掠过奇异点,然而在轨迹更复杂的情况下,这些奇异点仍然是潜在的威胁,可能带来不可预计的后果。本文介绍的文章通过引入参数,将 n n n维空间中的期望轨迹映射到 n + 1 n+1 n+1维的空间中,从而得到一条 n + 1 n+1 n+1维的无交点非闭合无限曲线,从而避免了奇异点。
如上图所示,原始期望轨迹为二维空间中的圆(蓝线),通过添加第三轴 θ \theta θ可将其投影为三维空间中的螺旋线(红线),称额外添加的维度 θ \theta θ为虚拟坐标,原始的维度对应的坐标为物理坐标。对红线构建导航向量场,利用导航向量中的物理空间中的项做无人机的实际导引;用虚拟坐标上的项更新无人机的虚拟坐标,实现无奇异点的导航向量场。
2. 期望轨迹构建
一个 n n n维空间中的曲线可以写为 n − 1 n-1 n−1个超曲面的交点。可以直观理解为:一个 n n n维空间具有 n n n个自由度,而任何一个超曲面( n − 1 n-1 n−1维)可约束掉其中一个自由度,因此需要 n − 1 n-1 n−1个超曲面共同约束,得到仅有1个自由度的 n n n维空间中的曲线。因此在二维空间中仅需要一个函数即可定义曲线,而三维空间中需要两个函数。当然,这些超曲面需要有公共交点。下面以三维空间内曲线为例进行说明,感兴趣的读者可根据需求自行推导其他维度。
根据前一篇文章可知,一条三维曲线可表示两个隐函数的零水平集的交线:
P = { x : ϕ i ( x ) = 0 , i = 1 , 2 } \mathcal P = \{\pmb x:\phi_i(\pmb x)=0, i=1,2\} P={xxx:ϕi(xxx)=0,i=1,2}
其中 x = [ x 1 , x 2 , x 3 ] \pmb x=[x_1,x_2,x_3] xxx=[x1,x2,x3]。
现在,我们引入参数 τ \tau τ,将物理空间中的各个维度用参数表示,此时曲线方程变为:
{ x 1 = f 1 ( τ ) x 2 = f 2 ( τ ) x 3 = f 3 ( τ ) \left\{\begin{aligned} x_1=f_1(\tau) \\ x_2=f_2(\tau) \\ x_3=f_3(\tau) \end{aligned}\right. ⎩⎪⎨⎪⎧x1=f1(τ)x2=f2(τ)x3=f3(τ)
令 p = [ x 1 , x 2 , x 3 , τ ] \pmb p=[x_1,x_2,x_3,\tau] ppp=[x1,x2,x3,τ], ϕ i ( p ) = x 1 − f i ( τ ) , i = 1 , 2 , 3 \phi_i(\pmb p)=x_1-f_i(\tau),i=1,2,3 ϕi(ppp)=x1−fi(τ),i=1,2,3,可得升维后的期望轨迹:
P = { p : ϕ i ( p ) = 0 , i = 1 , 2 , 3 } \mathcal P = \{\pmb p:\phi_i(\pmb p)=0, i=1,2,3\} P={ppp:ϕi(ppp)=0,i=1,2,3}
与三维导航向量场相同,无奇异点导航向量场同样采用 Φ = [ ϕ 1 , ϕ 2 , ϕ 3 ] \Phi=[\phi_1,\phi_2,\phi_3] Φ=[ϕ1,ϕ2,ϕ3]表示轨迹跟踪误差。
例:假设有一个三维空间中倾斜的圆轨迹,圆心在原点处,所在平面与 X O Y XOY XOY平面夹角 45 ° 45° 45°,则其可表示为一个球面和一个平面的交线,也即是:
ϕ 1 = x 2 + y 2 + z 2 − r 2 = 0 ϕ 2 = x − y = 0 \begin{aligned} \phi_1 &= x^2+y^2+z^2 - r^2 = 0\\ \phi_2 &= x - y = 0 \end{aligned} ϕ1ϕ2=x2+y2+z2−r2=0=x−y=0
现在引入参数 τ \tau τ分别表示 x y z xyz xyz,可表示为:
x = r cos τ 2 y = r cos τ 2 z = r sin τ \begin{aligned} x &= r\frac{\cos\tau}{\sqrt{2}} \\ y &= r\frac{\cos\tau}{\sqrt{2}} \\ z &= r\sin\tau \end{aligned} xyz=r2cosτ=r2cosτ=rsinτ
因此,该曲线在四维空间下的隐函数表示就可以写作:
ϕ 1 = x − r cos τ 2 ϕ 2 = y − r cos τ 2 ϕ 3 = z − r sin τ \begin{aligned} \phi_1 &= x - r\frac{\cos\tau}{\sqrt{2}} \\ \phi_2 &= y - r\frac{\cos\tau}{\sqrt{2}} \\ \phi_3 &= z - r\sin\tau \\ \end{aligned} ϕ1ϕ2ϕ3=x−r2cosτ=y−r2cosτ=z−rsinτ
至此,一个 x y z xyz xyz三维空间下的曲线就转化到了 x y z τ xyz\tau xyzτ的四维空间下。
3. 无奇异点导航向量场的构建
如前一篇文章所述,导航向量场由收敛项和传播项两项组成:
χ ( p ) = χ n ( p ) + χ t ( p ) \chi(\pmb p)=\chi_n(\pmb p)+\chi_t(\pmb p) χ(ppp)=χn(ppp)+χt(ppp)
根据前述的期望轨迹形式,计算可得各个超曲面的偏导数 ∇ ϕ i \nabla \phi_i ∇ϕi:
∇ Φ = [ ∇ ϕ 1 ∇ ϕ 2 ∇ ϕ 3 ] = [ 1 0 0 − f 1 ′ ( τ ) 0 1 0 − f 2 ′ ( τ ) 0 0 1 − f 3 ′ ( τ ) ] \nabla\Phi=\begin{bmatrix}\nabla\phi_1 \\ \nabla\phi_2 \\ \nabla\phi_3\end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & -f'_1(\tau) \\ 0 & 1 & 0 & -f'_2(\tau) \\ 0 & 0 & 1 & -f'_3(\tau) \end{bmatrix} ∇Φ=⎣⎡∇ϕ1∇ϕ2∇ϕ3⎦⎤=⎣⎡100010001−f1′(τ)−f2′(τ)−f3′(τ)⎦⎤
由此,可计算得到收敛项 χ n \chi_n χn:
χ n = − Φ K ∇ Φ = − ∑ i = 1 3 k i ϕ i ∇ ϕ i = − [ k 1 ϕ 1 k 2 ϕ 2 k 3 ϕ 3 − ∑ i = 1 3 k i ϕ i f i ′ ( τ ) ] \begin{aligned} \chi_n =& -\Phi \pmb K \nabla\Phi \\ =& -\sum_{i=1}^3 k_i\phi_i\nabla\phi_i \\ =& -\begin{bmatrix} k_1\phi_1 & k_2\phi_2 & k_3\phi_3 & -\sum_{i=1}^{3}k_i\phi_if_i'(\tau) \end{bmatrix} \end{aligned} χn===−ΦKKK∇Φ−i=1∑3kiϕi∇ϕi−[k1ϕ1k2ϕ2k3ϕ3−∑i=13kiϕifi′(τ)]
式中 K = d i a g { k i , k 2 , k 3 } , k i > 0 \pmb K=diag\{k_i,k_2,k_3\},k_i>0 KKK=diag{ki,k2,k3},ki>0 为收敛项增益矩阵。
同样可以计算得到传播项 χ t \chi_t χt:
χ t = ∇ × Φ = [ f 1 ′ ( τ ) f 2 ′ ( τ ) f 3 ′ ( τ ) 1 ] \chi_t=\nabla_\times\Phi = \begin{bmatrix} f_1'(\tau)& f_2'(\tau)& f_3'(\tau)& 1\end{bmatrix} χt=∇×Φ=[f1′(τ)f2′(τ)f3′(τ)1]
式中 ∇ × Φ \nabla_\times\Phi ∇×Φ表示 ∇ Φ \nabla\Phi ∇Φ的楔积。
可证明 χ t \chi_t χt与 ∇ ϕ i \nabla\phi_i ∇ϕi均正交,而 χ n \chi_n χn为 ∇ ϕ i \nabla\phi_i ∇ϕi的线性组合,因此, χ t \chi_t χt与 χ n \chi_n χn正交。由于 χ n \chi_n χn总是沿着误差 Φ \Phi Φ的负梯度方向,因此总是倾向于使 ∣ ∣ Φ ∣ ∣ ||\Phi|| ∣∣Φ∣∣减小;而传播项 χ t \chi_t χt与误差 Φ \Phi Φ梯度正交,也就意味着无人机沿着 χ t \chi_t χt运动不会引起误差改变,当误差收敛为 0 \pmb 0 000时, χ t \chi_t χt方向即为轨迹切线方向。
由导航向量场的表示形式也可见,由于 χ t \chi_t χt和 χ n \chi_n χn正交,且 ∣ ∣ χ t ∣ ∣ ||\chi_t|| ∣∣χt∣∣恒大于0,因此 ∣ ∣ χ ( p ) ∣ ∣ > 0 ||\chi(\pmb p)||>0 ∣∣χ(ppp)∣∣>0,也就意味着这种导航向量场没有奇异点,可实现全局收敛。
4. 数值仿真
以李萨如曲线为例,定义期望轨迹为:
x 1 = f 1 ( τ ) = sin ( 3 τ ) x 2 = f 2 ( τ ) = sin ( 4 τ + π / 4 ) x 3 = f 3 ( τ ) = sin ( 5 τ + π / 5 ) \begin{aligned} x_1 &= f_1(\tau) = \sin(3\tau) \\ x_2 &= f_2(\tau) = \sin(4\tau + \pi/4) \\ x_3 &= f_3(\tau) = \sin(5\tau + \pi/5) \end{aligned} x1x2x3=f1(τ)=sin(3τ)=f2(τ)=sin(4τ+π/4)=f3(τ)=sin(5τ+π/5)
- 写为隐函数形式:
ϕ 1 ( p ) = x 1 − sin ( 3 τ ) ϕ 2 ( p ) = x 2 − sin ( 4 τ + π / 4 ) ϕ 3 ( p ) = x 3 − sin ( 5 τ + π / 5 ) \begin{aligned} \phi_1(\pmb p) &= x_1 - \sin(3\tau) \\ \phi_2(\pmb p) &= x_2 - \sin(4\tau + \pi/4) \\ \phi_3(\pmb p) &= x_3 - \sin(5\tau + \pi/5) \end{aligned} ϕ1(ppp)ϕ2(ppp)ϕ3(ppp)=x1−sin(3τ)=x2−sin(4τ+π/4)=x3−sin(5τ+π/5) - 计算超曲面梯度
根据前文,计算误差梯度有:
∇ Φ = [ 1 0 0 − 3 cos ( 3 τ ) 0 1 0 − 4 cos ( 4 τ + π / 4 ) 0 0 1 − 5 cos ( 3 τ + π / 5 ) ] \nabla\Phi=\begin{bmatrix} 1 & 0 & 0 & -3\cos(3\tau) \\ 0 & 1 & 0 & -4\cos(4\tau + \pi/4) \\ 0 & 0 & 1 & -5\cos(3\tau + \pi / 5) \end{bmatrix} ∇Φ=⎣⎡100010001−3cos(3τ)−4cos(4τ+π/4)−5cos(3τ+π/5)⎦⎤ - 计算导航向量场
取收敛项增益均为 k k k,计算其导航向量场有:
χ = χ t + χ n = [ 3 cos ( 3 τ ) 4 cos ( 4 τ + π / 4 ) 5 cos ( 5 τ + π / 5 ) 1 ] ⊤ + k [ sin ( 3 τ ) − x 1 sin ( 4 τ + π / 4 ) − x 2 sin ( 5 τ + π / 5 ) − x 3 ∑ i = 1 3 ϕ i f i ′ ( τ ) ] ⊤ \begin{aligned} \chi = & \chi_t + \chi_n \\ =& \begin{bmatrix}3\cos(3\tau) \\ 4\cos(4\tau + \pi/4) \\ 5\cos(5\tau + \pi/5) \\ 1\end{bmatrix}^\top + k\begin{bmatrix} \sin(3\tau) - x_1 \\ \sin(4\tau+\pi/4)-x_2 \\\sin(5\tau+\pi/5)-x_3 \\ \sum_{i=1}^{3}\phi_if_i'(\tau) \end{bmatrix}^\top \end{aligned} χ==χt+χn⎣⎢⎢⎡3cos(3τ)4cos(4τ+π/4)5cos(5τ+π/5)1⎦⎥⎥⎤⊤+k⎣⎢⎢⎡sin(3τ)−x1sin(4τ+π/4)−x2sin(5τ+π/5)−x3∑i=13ϕifi′(τ)⎦⎥⎥⎤⊤ - 设置初值进行仿真
设置初始位置为 p = [ x 0 , y 0 , z 0 , τ 0 ] \pmb p=[x_0,y_0,z_0,\tau_0] ppp=[x0,y0,z0,τ0],其中 x 0 , y 0 , z 0 x_0,y_0,z_0 x0,y0,z0需要根据无人机实际位置给出, τ 0 \tau_0 τ0可任意给定,若能找到更为贴近期望轨迹的 τ 0 \tau_0 τ0,可加快收敛过程。本例中给定 p = [ 0 , 0 , 0 , 0 ] \pmb p=[0, 0, 0, 0] ppp=[0,0,0,0](设置速度 v = 0.1 v=0.1 v=0.1,增益 k = 5 k=5 k=5,仿真飞行 200 s 200s 200s)可得飞行结果如下:
5. 总结
本文所介绍的无奇异点导航向量场,在上一篇文章的基础上,通过引入参数将原始轨迹升维,使得原始的 n n n维轨迹(不管是闭合的还是有自交点的)在 n + 1 n+1 n+1维的空间中映射为一条无限不自交的曲线,从而避免了可能存在的奇异点问题;同时由于该方法仍然使用水平集表示轨迹跟踪误差,因此保留了原方法计算量小的特点。
此外,由于此方法采用参数轨迹作为期望轨迹,也就意味着用户可以使用多项式曲线或者B样条曲线等参数曲线作为无人机飞行的期望轨迹,给期望轨迹的设计灵活性带来了极大的提高,使得此方法更具有实用意义。
此处附上我们团队采用多项式轨迹作为期望轨迹、利用三自由度固定翼无人机模型得到的仿真飞行轨迹图。
6. 参考文献
[1] H. Khalil, Nonlinear Systems, 3rd ed. Prentice Hall, 2002.
[2] GONCALVES V M,PIMENTA L C A,MAIA C A,et al. Vector fields for robot navigation along time-varying curves in ndimensions[J]. IEEE Transactions on Robotics,2010,26(4): 647-659
END
后续会陆续带来规划、控制相关的文章、仿真分享。
迅翼SwiftWing致力于固定翼技术共享,汇聚固定翼领域技术极客,推动固定翼技术持续创新!