当前位置: 首页 > news >正文

路径跟踪之导航向量场(三)——无奇异点导航向量场

今天带来导航向量场最后一期文章——无奇异点导航向量场。

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 n1个超曲面的交点。可以直观理解为:一个 n n n维空间具有 n n n个自由度,而任何一个超曲面( n − 1 n-1 n1维)可约束掉其中一个自由度,因此需要 n − 1 n-1 n1个超曲面共同约束,得到仅有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)=x1fi(τ),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+z2r2=0=xy=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=r2 cosτ=r2 cosτ=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=xr2 cosτ=yr2 cosτ=zrsinτ
至此,一个 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=100010001f1(τ)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=13kiϕiϕi[k1ϕ1k2ϕ2k3ϕ3i=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. 写为隐函数形式
    ϕ 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)=x1sin(3τ)=x2sin(4τ+π/4)=x3sin(5τ+π/5)
  2. 计算超曲面梯度
    根据前文,计算误差梯度有:
    ∇ Φ = [ 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} Φ=1000100013cos(3τ)4cos(4τ+π/4)5cos(3τ+π/5)
  3. 计算导航向量场
    取收敛项增益均为 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+χn3cos(3τ)4cos(4τ+π/4)5cos(5τ+π/5)1+ksin(3τ)x1sin(4τ+π/4)x2sin(5τ+π/5)x3i=13ϕifi(τ)
  4. 设置初值进行仿真
    设置初始位置为 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致力于固定翼技术共享,汇聚固定翼领域技术极客,推动固定翼技术持续创新!


http://www.mrgr.cn/news/65625.html

相关文章:

  • Automattic 和 Matt Mullenweg 要求驳回 WP Engine 诉讼案中的关键索赔
  • 使用 pytorch 运行预训练模型的框架
  • 什么是人工智能学习框架?——人工智能技术科普指南
  • Java毕业设计-基于微信小程序的校园二手物品交易系统的实现(V2.0)
  • 正向代理模块
  • 鸿蒙NEXT开发笔记(十)仿微信聊天App的解析JSON串
  • 弹性布局flex-direction
  • 知识图谱论文分享
  • 指针(c语言)
  • gulp入门教程9:lastRun
  • [算法初阶]第二集 滑动窗口(已完结)
  • 宠物空气净化器是不是智商税?真实测试热门品牌!哪款除毛好?
  • 在VScode中配置C_C++环境
  • ROS2 单帧Pcd转多帧节点 录制Bag
  • 截至2024年10月, 数据知识产权登记分析
  • ArkTS常用数据处理:掌握核心技能与实践
  • GS-SLAM论文阅读--High-Fidelity SLAM Using Gaussian Splatting
  • DoubletFinder报错小结
  • 人工智能----Ai普及---手机App
  • 8、raid磁盘阵列
  • C++线程池
  • sklearn红酒数据集分类器的构建和评估
  • 图说复变函数论重大错误:将无穷多各异平面误为同一面
  • 智慧医疗——提出了一种基于敌对领域适应症预测候选抗癌药物的方法
  • 江协科技STM32学习- P35 硬件I2C读写MPU6050
  • 信息安全工程师(74)网络安全风险评估技术方法与工具