发明名称 一种通信约束下双无人机协同目标跟踪方法
摘要 本发明公开了一种通信约束下双无人机协同目标跟踪方法,控制两架无人机协同地跟踪一个地面目标;跟踪过程中,长机判断自身进入强制接近状态后,迅速重新满足探测距离约束的要求,若未进入强制接近状态,以精度优先,提高目标观察数据的精度;僚机以强制接近状态和以及提高精度的原理与长机相同,僚机的活动范围被限制在以两机连线为中心的一个小范围内,以足够的速度分量去追踪长机,从而确保长机和僚机之间的距离小于给定值。本发明能够确保通信距离约束得到满足,为协同提供通信保障;能够确保长机的探测距离约束得到满足,为目标跟踪提供保证;能够在飞行中实时分析跟踪精度并优化轨迹,为跟踪质量提供保证。
申请公布号 CN102081404A 申请公布日期 2011.06.01
申请号 CN201110030224.3 申请日期 2011.01.27
申请人 西北工业大学 发明人 符小卫;冯慧成;高晓光;李波;陈军
分类号 G05D1/12(2006.01)I 主分类号 G05D1/12(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 顾潮琪
主权项 1.一种通信约束下双无人机协同目标跟踪方法,其特征在于包括下述步骤:假设算法的执行周期是Δt,目标、长机和僚机在惯性系中的三维坐标分别是x<sub>t</sub>、x<sub>m</sub>和x<sub>s</sub>,长机和僚机航向角分别为ψ<sub>m</sub>和ψ<sub>s</sub>,速率均恒定为v,传感器最大探测距离为r<sub>max</sub>,长机、僚机到目标的距离分别是r<sub>1</sub>、r<sub>2</sub>,v<sup>⊥</sup><sub>t</sub>与v<sup>-</sup><sub>t</sub>、v<sup>⊥</sup><sub>1</sub>与v<sup>-</sup><sub>1</sub>、v<sup>⊥</sup><sub>2</sub>与v<sup>-</sup><sub>2</sub>分别是目标、长机和僚机速度在无人机-目标连线上及其垂直方向上的投影,并引入布尔型标志变量flag<sub>m</sub>=0和flag<sub>s</sub>=0;若没有接收到退出命令或任务没有完成,长机和僚机分别各自重复执行以下步骤:1)长机执行以下步骤:步骤1:计算目标冲出长机探测范围所需时间t<sub>r</sub>=(r<sub>max</sub>-r<sub>1</sub>)×(v<sup>-</sup><sub>t</sub>-v<sup>-</sup><sub>1</sub>)<sup>-1</sup>,估算的无人机调整姿态至对准目标时无人机-目标连线转过的角度Δ=(0.5v<sup>⊥</sup><sub>t</sub>-v<sup>⊥</sup><sub>1</sub>)t<sub>r</sub>/r<sub>1</sub>,中间变量ξ=±acos(v<sub>t</sub> cos(η<sub>t</sub>+Δ)/v<sub>1</sub>)+2kπ-η<sub>1</sub>-Δ,k=0,±1,估算的无人机机动到能够接近目标时需要转过的航向角ξ<sub>0</sub>=sign(ξ)min(|ξ|),计算目标转向减小与目标距离方向所需时间t<sub>n</sub>=|ξ<sub>0</sub>|/ω<sub>max</sub>;步骤2:若|Δ|<π并且r<sub>1</sub>>D<sub>0</sub>并且t<sub>n</sub>>t<sub>r</sub>,长机进入强制接近状态,令flag<sub>m</sub>=1;否则直接转到步骤3;步骤3:计算此时的航向增量<img file="FSA00000428409400011.GIF" wi="577" he="211" />若flag<sub>m</sub>=1且r<sub>1</sub>>D<sub>0</sub>,D<sub>0</sub><r<sub>max</sub>,长机下一时刻的航向角增加λ<sub>urgent</sub>,即:ψ<sub>m</sub>:=ψ<sub>m</sub>+λ<sub>urgent</sub>,x<sub>m</sub>:=x<sub>m</sub>+vΔt[cosψ<sub>m</sub>,sinψ<sub>m</sub>,0],然后返回步骤1;若flag<sub>m</sub>=1且r<sub>1</sub>≤D<sub>0</sub>,则令flag<sub>m</sub>=0,并转到步骤4;若flag<sub>m</sub>=0,直接转到步骤4;步骤4:当临时变量i,j分别取{-1,0,1}时,计算不同i,j组合下的tr值:ψ<sup>i</sup><sub>m</sub>=ψ<sub>m</sub>+i×ω<sub>max</sub>;ψ<sup>j</sup><sub>s</sub>=ψ<sub>s</sub>+j×ω<sub>max</sub>;<maths num="0001"><![CDATA[<math><mrow><msub><msup><mi>T</mi><mi>i</mi></msup><mrow><mn>0</mn><mi>k</mi></mrow></msub><mo>=</mo><mfenced open='[' close=']' separators=''><mtable><mtr><mtd><mi>cos</mi><msub><msup><mi>&psi;</mi><mi>i</mi></msup><mi>k</mi></msub></mtd><mtd><mi>sin</mi><msub><msup><mi>&psi;</mi><mi>i</mi></msup><mi>k</mi></msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mi>cos</mi><msub><msup><mi>&gamma;</mi><mi>i</mi></msup><mi>k</mi></msub><mi>sin</mi><msub><msup><mi>&psi;</mi><mi>i</mi></msup><mi>k</mi></msub></mtd><mtd><mo>-</mo><mi>cos</mi><msub><msup><mi>&gamma;</mi><mi>i</mi></msup><mi>k</mi></msub><msub><mrow><mi>cos</mi><msup><mi>&psi;</mi><mi>i</mi></msup></mrow><mi>k</mi></msub></mtd><mtd><mo>-</mo><mi>sin</mi><msub><msup><mi>&gamma;</mi><mi>i</mi></msup><mi>k</mi></msub></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><msub><msup><mi>&gamma;</mi><mi>i</mi></msup><mi>k</mi></msub><mi>sin</mi><msub><msup><mi>&psi;</mi><mi>i</mi></msup><mi>k</mi></msub></mtd><mtd><mi>sin</mi><msub><msup><mi>&gamma;</mi><mi>i</mi></msup><mi>k</mi></msub><mi>cos</mi><msub><msup><mi>&psi;</mi><mi>i</mi></msup><mi>k</mi></msub></mtd><mtd><mo>-</mo><mi>cos</mi><msub><msup><mi>&gamma;</mi><mi>i</mi></msup><mi>k</mi></msub></mtd></mtr></mtable></mfenced><mo>;</mo><mi>k</mi><mo>=</mo><mi>m</mi><mo>,</mo><mi>s</mi><mo>;</mo></mrow></math>]]></maths><img file="FSA00000428409400021.GIF" wi="958" he="142" />k=m,s;Q<sub>k</sub><sup>i</sup>=‖r<sub>t_k</sub>‖<sup>2</sup>T<sup>i</sup><sub>0k</sub><sup>T</sup>M<sub>k</sub><sup>T</sup>P<sub>k</sub>M<sub>k</sub>T<sup>i</sup><sub>0k</sub>;k=m,s;<maths num="0002"><![CDATA[<math><mrow><mi>tr</mi><msub><mo>|</mo><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mi>trace</mi><mo>[</mo><msubsup><mover><mi>Q</mi><mo>&OverBar;</mo></mover><mi>m</mi><mi>i</mi></msubsup><msup><mrow><mo>(</mo><msubsup><mover><mi>Q</mi><mo>&OverBar;</mo></mover><mi>m</mi><mi>i</mi></msubsup><mo>+</mo><msup><msub><mover><mi>Q</mi><mo>&OverBar;</mo></mover><mi>s</mi></msub><mi>j</mi></msup><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msup><msub><mover><mi>Q</mi><mo>&OverBar;</mo></mover><mi>s</mi></msub><mi>j</mi></msup><mo>]</mo><mo>;</mo></mrow></math>]]></maths>其中,θ<sub>m</sub>和θ<sub>s</sub>分别为长机和僚机传感器的俯仰角,<img file="FSA00000428409400024.GIF" wi="51" he="39" />和<img file="FSA00000428409400025.GIF" wi="39" he="39" />分别为长机和僚机传感器的方位角,r<sub>t_m</sub>和r<sub>t_s</sub>分别为长机和僚机指向目标的向量,这些参数由机载传感器提供;Q<sub>m</sub><sup>i</sup>和Q<sub>s</sub><sup>i</sup>分别为长机和僚机各自对目标定位的协方差阵,T<sup>i</sup><sub>0m</sub>和M<sub>m</sub>是计算Q<sub>m</sub><sup>i</sup>时的系数矩阵;T<sup>i</sup><sub>0s</sub>和M<sub>s</sub>是计算Q<sub>s</sub><sup>i</sup>时的系数矩阵;<img file="FSA000004284094000210.GIF" wi="60" he="60" />和<img file="FSA000004284094000211.GIF" wi="54" he="60" />分别表示矩阵Q<sup>i</sup><sub>m</sub>和Q<sup>j</sup><sub>s</sub>左上角的2×2子块;γ<sup>i</sup><sub>k</sub>=-sign(i)γ<sub>0</sub>,γ<sub>0</sub>为最大转弯滚转角;在所有的tr中搜索得到tr的最优值tr<sub>opt</sub>,以及对应的i<sub>opt</sub>,j<sub>opt</sub>,如下式所示:<maths num="0003"><![CDATA[<math><mrow><msub><mi>tr</mi><mi>opt</mi></msub><mo>=</mo><munder><mi>min</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>=</mo><mo>{</mo><mo>-</mo><mn>1,0,1</mn><mo>}</mo></mrow></munder><mrow><mo>(</mo><mi>tr</mi><msub><mo>|</mo><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>)</mo></mrow><mo>=</mo><mi>tr</mi><msub><mo>|</mo><mrow><msub><mi>i</mi><mi>opt</mi></msub><mo>,</mo><msub><mi>j</mi><mi>opt</mi></msub></mrow></msub></mrow></math>]]></maths>长机下一时刻的航向角增加i<sub>opt</sub>×ω<sub>max</sub>,即:ψ<sub>m</sub>:=ψ<sub>m</sub>+i<sub>opt</sub>×ω<sub>max</sub>x<sub>m</sub>:=x<sub>m</sub>+vΔt[cosψ<sub>m</sub>,sinψ<sub>m</sub>,0]如果达到设定的跟踪终止条件,跟踪过程结束;否则返回步骤1;2)僚机执行以下步骤:步骤1:计算目标冲出僚机探测范围所需时间t<sub>r</sub>:t<sub>r</sub>=(r<sub>max</sub>-r<sub>2</sub>)×(v<sup>-</sup><sub>t</sub>-v<sup>-</sup><sub>2</sub>)<sup>-1</sup>依次计算:Δ=(0.5v<sup>⊥</sup><sub>t</sub>-v<sup>⊥</sup><sub>2</sub>)t<sub>r</sub>/r<sub>2</sub>;ξ=±acos(v<sub>t</sub>cos(η<sub>t</sub>+Δ)/v<sub>2</sub>)+2kπ-η<sub>2</sub>-Δ,k=0,±1ξ<sub>0</sub>=sign(ξ)min(|ξ|)t<sub>n</sub>=|ξ<sub>0</sub>|/ω<sub>max</sub>计算漏斗角范围[ξ<sub>min</sub>,ξ<sub>max</sub>]=[-f(r<sub>ms</sub>),f(r<sub>ms</sub>)]+[α,α],其中,r<sub>ms</sub>表示长机和僚机之间的距离,α表示僚机指向长机向量的方位角,函数f满足f(x)=π;x=0f(x)=ε;x≥R_comm,0<ε□0.1f′(x)<0,f″(x)>0;0≤x<R_comm;步骤2:若|Δ|<π并且r<sub>2</sub>>D<sub>0</sub>并且t<sub>n</sub>>t<sub>r</sub>,僚机进入强制接近状态,令flag<sub>s</sub>=1;否则直接转到步骤3;步骤3:若flag<sub>s</sub>=1且r<sub>2</sub>>D<sub>0</sub>,计算此时的航向增量:<maths num="0004"><![CDATA[<math><mrow><msub><mi>&lambda;</mi><mi>urgent</mi></msub><mfenced open='{' close=''><mtable><mtr><mtd><msub><mrow><mo>-</mo><mi>&omega;</mi></mrow><mi>max</mi></msub><mo>,</mo><msub><mi>&xi;</mi><mn>0</mn></msub><mo>&le;</mo><msub><mrow><mo>-</mo><mi>&omega;</mi></mrow><mi>max</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&xi;</mi><mn>0</mn></msub><mo>,</mo><msub><mrow><mo>-</mo><mi>&omega;</mi></mrow><mi>max</mi></msub><mo>&lt;</mo><msub><mi>&xi;</mi><mn>0</mn></msub><mo>&le;</mo><msub><mi>&omega;</mi><mi>max</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&omega;</mi><mi>max</mi></msub><mo>,</mo><msub><mi>&xi;</mi><mn>0</mn></msub><mo>></mo><msub><mi>&omega;</mi><mi>max</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>若ψ<sub>s</sub>+λ<sub>urgent</sub>不在漏斗区间[δ<sub>min</sub>,δ<sub>max</sub>]内,转步骤4;否则,僚机下一时刻的航向角增加λ<sub>urgent</sub>,即:ψ<sub>s</sub>:=ψ<sub>s</sub>+λ<sub>urgent</sub>x<sub>s</sub>:=x<sub>s</sub>+vΔt[cosψ<sub>s</sub>,sinψ<sub>s</sub>,0]然后返回步骤1;若flag<sub>s</sub>=1且r<sub>2</sub><D<sub>0</sub>,则令flag<sub>s</sub>=0,并转到步骤4;若flag<sub>s</sub>=0,转到步骤4;步骤4:根据长机在当前时刻计算得到的j<sub>opt</sub>,取λ=ψ<sub>s</sub>+j<sub>opt</sub>×ω<sub>max</sub>,若λ在漏斗区间[δ<sub>min</sub>,δ<sub>max</sub>]内,则僚机下一时刻的航向角增加j<sub>opt</sub>×ω<sub>max</sub>,即:ψ<sub>s</sub>:=ψ<sub>s</sub>+j<sub>opt</sub>×ω<sub>max</sub>x<sub>s</sub>:=x<sub>s</sub>+vΔt[cosψ<sub>s</sub>,sinψ<sub>s</sub>,0]然后返回步骤1;否则,转步骤5;步骤5:在临时变量j={-1,0,1}时,取λ=ψ<sub>s</sub>+j×ω<sub>max</sub>,按下式求取临时变量k<sub>max</sub><maths num="0005"><![CDATA[<math><mrow><msub><mi>k</mi><mi>max</mi></msub><mo>=</mo><munder><mi>max</mi><mrow><mi>j</mi><mo>=</mo><mo>{</mo><mo>-</mo><mn>1,0,1</mn><mo>}</mo></mrow></munder><mo>{</mo><mi>cos</mi><mrow><mo>(</mo><mi>&lambda;</mi><mo>-</mo><msub><mi>&delta;</mi><mi>min</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>cos</mi><mrow><mo>(</mo><mi>&lambda;</mi><mo>-</mo><msub><mi>&delta;</mi><mi>max</mi></msub><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>对应于k<sub>max</sub>的j记为j<sub>min</sub>,则僚机下一时刻的航向角增加j<sub>min</sub>×ω<sub>max</sub>,即:ψ<sub>s</sub>:=ψ<sub>s</sub>+j<sub>min</sub>×ω<sub>max</sub>x<sub>s</sub>:=x<sub>s</sub>+vΔt[cosψ<sub>s</sub>,sinψ<sub>s</sub>,0]如果达到设定的跟踪终止条件,跟踪过程结束;否则返回步骤1。
地址 710072 陕西省西安市友谊西路127号