2. 陕西省飞行控制与仿真技术重点实验室(西北工业大学), 西安 710072
2. Key Laboratory of Flight Control and Simulation Technology (Northwestern Polytechnical University), Shaanxi Province, Xi'an 710072, China
UAV在执行敌情侦查、视觉导航、目标检测和跟踪等任务时,视觉系统是不可缺少的一部分[1].在执行任务时,UAV上的视觉系统对目标地区进行图像采集,通过图像处理方法对感兴趣的目标进行分析和特征提取,实现对目标的跟踪和定位.目前大多数涉及到UAV跟踪系统的研究都停留在理论探索层面.由于UAV飞行速度快、起降难以及空域管制等问题,使得实际试飞成本高、难度大.因此如何降低成本并且有效地进行目标跟踪实验是一个急需解决的问题.
在过去的几十年中,计算机技术的迅猛发展使得视景仿真技术得到快速发展.视景仿真技术利用计算机图形技术构建具有三维模型和仿真环境的研究对象,从而实时地再现仿真场景.视景仿真不仅提供精确的环境模拟,同时能快速地对系统重新设计和测试,大大降低成本,在航路规划和飞行器姿态显示和军事仿真训练等方面[1-5]广泛应用.文献[6-7]用显示器播放视景仿真软件运行的画面,用实际的摄像机进行拍摄,但是这种方法没有考虑到软件中视场角的影响.文献[8]在Creator/Vega中利用高程及影像数据模拟环境以及摄像机效果,搭建了跟踪系统来满足侦察训练需求,但是每一帧视场范围需经过参数解算才能获得,实现起来较为复杂.
本文利用视景仿真软件(Vega Prime, VP)和MATLAB/Simulink设计和实现了一个UAV跟踪系统仿真平台,并选择汽车作为地面跟踪的目标.视景显示系统、图像跟踪算法与MATLAB/Simulink之间通过共享内存和UDP进行通信,解决不同子系统之间的通信问题.提出了一种实用可靠的标定方法,完成了视景仿真系统中虚拟摄像机内参矩阵的标定.为验证仿真平台的运行效果,本文将基于运动补偿的云台控制算法[9]和参考点制导法[10]应用到该仿真平台上.仿真结果表明,该仿真平台能较好地还原实际跟踪场景,模拟UAV跟踪汽车的过程,实现了低成本、高质量的闭环仿真验证.
1 仿真平台的设计与搭建 1.1 仿真平台搭建仿真平台由视景显示系统、目标跟踪系统、目标定位系统和Simulink模型系统四个部分组成,如图 1所示.整个跟踪系统的组成如图 2所示.
视景显示系统使用VP作为开发平台[11-12].首先在软件中导入UAV和汽车的3D模型,在UAV模型底部设置一个Transform模块模拟云台,然后通过设置Transform的俯仰和旋转运动模拟云台的运动.将观察者设置为Transform模块,则VP的主窗口会显示从Transform模块视角看到的场景,模拟摄像机拍摄,视景显示系统输出如图 3所示.UAV的运动及云台的俯仰和水平旋转会改变摄像机的视场,VP的主窗口就会显示不同的场景,模拟了UAV实际飞行中摄像机的拍摄情况.
目标跟踪系统采用基于相关滤波[13-14]的高效卷积算子(Efficient Convolution Operators, ECO)图像跟踪算法[15].使用ECO算法时,首先人工选定目标区域,即汽车所在的矩形区域,然后ECO算法对目标区域进行特征提取,初始化跟踪器,开始跟踪,并将目标所在的矩形区域的坐标传递给目标定位系统.
目标定位系统选择汽车所在矩形框的中心点像素坐标当作汽车的坐标,结合本图像保存时UAV和云台对应的位姿,利用目标图像模型解算出目标在世界坐标系下的坐标,并把解算结果发送到Simulink模型系统用于飞行引导指令的计算.
Simulink模型系统由飞机仿真模型、汽车仿真模型和云台仿真模型组成.飞机仿真模型负责进行六自由度方程的解算并完成UAV的控制,进而引导UAV围绕目标飞行.云台仿真模型用于解算云台的姿态,控制云台的旋转和俯仰,使目标保持在视野中央.汽车仿真模型的任务是解算汽车的位置,控制汽车的航向和速度.汽车仿真模型独立于其他模型,其他模型无法得知汽车的运动状态.
1.2 系统通信仿真平台实物如图 4所示,左边屏幕有两个窗口,左边窗口为视景显示系统的输出显示,右边窗口为目标跟踪系统的输出显示.右边屏幕为Simulink的窗口,运行目标定位系统和Simulink模型系统.两个屏幕均连接在同一台工作站上.
4个子系统之间通信方式如图 5所示.视景显示系统利用Windows的设备句柄将VP主窗口的场景以图像序列的形式保存到共享内存中,并且在保存该图像帧的同时,以文本形式保存下UAV的位姿和云台的位姿.
目标跟踪系统读取共享内存中的图像序列,在第一张图片中标出感兴趣的物体,然后ECO开始进行跟踪.ECO算法将目标在图像中的位置以文本的形式保存到共享内存中.
目标定位系统读取内存中飞机的位姿,云台的位姿以及目标在图像中的位置,利用目标图像模型计算出目标的实际位置,把目标的位置输出到Simulink模型系统中.
Simulink模型系统与视景显示系统之间利用UDP通信.Simulink模型系统定时将UAV、汽车以及云台的位姿信息发送到视景显示系统中,驱使视景系统中UAV、汽车和云台模型的运动,使视景不断进行更新,从而实现闭环仿真.
2 目标位置计算 2.1 目标图像模型通过图像信息获取到目标在世界坐标系下的位置是进行目标跟踪的首要条件.因此本文根据UAV、云台和目标三者的几何关系建立了目标图像模型.UAV在跟踪过程中目标、云台、摄像机和UAV的相对位置关系如图 6所示.摄像机和云台的位置重合,跟随云台转动.
根据几何分析,目标的位置Pt=[xt yt zt]T表示为
$ {\mathit{\boldsymbol{P}}_{\rm{t}}} = {\mathit{\boldsymbol{P}}_1} + {\mathit{\boldsymbol{P}}_2} + {\mathit{\boldsymbol{P}}_3}. $ | (1) |
式中:向量P1=[x1 y1 z1]T为UAV在世界坐标系下的位置,向量P2=[x2 y2 z2]T为UAV质心到摄像机光心的距离,可由下式得到
$ {\mathit{\boldsymbol{P}}_2} = _b^s\mathit{\boldsymbol{R}}{ \cdot ^b}{\mathit{\boldsymbol{P}}_2}. $ | (2) |
式中:bP2=[x2b y2b z2b]T为摄像机在机体坐标系下的位置,bsR为机体坐标系到世界坐标系的转换矩阵.
式中向量P3为摄像机到目标的距离,满足如下关系
$ {\mathit{\boldsymbol{P}}_3} = _b^s\mathit{\boldsymbol{R}} \cdot _c^b\mathit{\boldsymbol{R}}{ \cdot ^c}{\mathit{\boldsymbol{P}}_3}. $ | (3) |
式中:cP3=[x3c y3c zc]T为目标在摄像机坐标系下的位置,zc为图像深度,表示摄像机的光心沿光轴到目标的距离,cbR为摄像机坐标系到机体坐标系的转换矩阵.因此,式(1)转化为
$ {\mathit{\boldsymbol{P}}_{\rm{t}}} = {\mathit{\boldsymbol{P}}_1} + _b^s\mathit{\boldsymbol{R}}{ \cdot ^b}{\mathit{\boldsymbol{P}}_2} + _b^s\mathit{\boldsymbol{R}} \cdot _c^b\mathit{\boldsymbol{R}}{ \cdot ^c}{\mathit{\boldsymbol{P}}_3}. $ | (4) |
像素坐标系与摄像机坐标系之间的关系为
$ {z_c}\left[ {\begin{array}{*{20}{l}} u\\ v\\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\frac{f}{{dx}}}&{ - \frac{{\cot {\kern 1pt} {\kern 1pt} {\kern 1pt} \theta f}}{{dx}}}&{{u_0}}\\ 0&{\frac{f}{{dy{\rm{sin}}{\kern 1pt} {\kern 1pt} {\kern 1pt} \theta }}}&{{v_0}}\\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {x_3^c}\\ {y_3^c}\\ {{z_c}} \end{array}} \right] = \mathit{\boldsymbol{M}}\left[ {\begin{array}{*{20}{c}} {x_3^c}\\ {y_3^c}\\ {{z_c}} \end{array}} \right]. $ | (5) |
式中:Pf=[u v 1]T表示目标在图片中的像素坐标,f代表相机的焦距,u0和v0代表图片的中心点坐标,dx和dy代表每个像素物理尺寸的大小,θ代表镜头的畸变角度,M代表摄像机内参矩阵,表示摄像机坐标系和像素坐标系之间的关系.内参矩阵和相机的内部参数有关,需要进行标定.
由式(4)、(5)可得图像目标模型的表达式为
$ \left[ {\begin{array}{*{20}{l}} {{x_{\rm{t}}}}\\ {{y_{\rm{t}}}}\\ {{z_{\rm{t}}}} \end{array}} \right] = \left[ {\begin{array}{*{20}{l}} {{x_1}}\\ {{y_1}}\\ {{z_1}} \end{array}} \right] + _b^s\mathit{\boldsymbol{R}} \cdot \left[ {\begin{array}{*{20}{c}} {x_2^b}\\ {y_2^b}\\ {z_2^b} \end{array}} \right] + _b^s\mathit{\boldsymbol{R}} \cdot _c^b\mathit{\boldsymbol{R}} \cdot {\mathit{\boldsymbol{M}}^{ - 1}}{z_c}\left[ {\begin{array}{*{20}{c}} u\\ v\\ 1 \end{array}} \right]. $ | (6) |
实际工程中,最常用的标定方法是张正友提出的基于单平面棋盘格的标定方法[16].该方法只需利用相机拍摄若干张棋盘格照片,步骤简单,实用性较强.但是在仿真系统中,摄像机是虚拟的,无法拍摄棋盘格,则张正友标定法无法应用.受到张正友标定的启发,本文提出一种精确可靠的标定方法,可直接标定视景仿真软件中的内参矩阵.
目标图像模型如式(6)所示.通过在视景软件中设置UAV、汽车和摄像机的位置姿态信息,可获得对应的图片.汽车在图像中的位置通过人工标记获得,深度信息zc的解算将在目标位置计算中详细说明.因此,式(6)中仅有内参矩阵未知.内参矩阵共有5个参数,标记一张图片获得两个方程,利用与图 3类似的3张图片就可求解出内参矩阵M,但是这样计算出的结果并没有实际的物理意义,并且存在误差.为进一步增加标定结果的可靠性,将使用最大似然估计来优化上面得到的结果.
世界坐标系和像素坐标系之间的关系用一个旋转矩阵R和平移向量T表示,假设得到不同条件下的n幅图片,每幅图片上均有一个汽车的像点,目标图像模型可表示为
$ \mathit{\boldsymbol{\hat P}}({\mathit{\boldsymbol{M}}_i},{\mathit{\boldsymbol{P}}_{{\rm{t}},i}}) = {\mathit{\boldsymbol{M}}_i}[{\mathit{\boldsymbol{R}}_i}\quad \mathit{\boldsymbol{T}}]{\mathit{\boldsymbol{P}}_{{\rm{t}},i}}. $ | (7) |
式中:Pt, i表示第i幅图片上汽车像点的实际坐标,
$ f({\mathit{\boldsymbol{P}}_{{\rm{f}},i}}) = \frac{1}{{\sqrt {2\pi } }}{{\rm{e}}^{\frac{{ - {{(\mathit{\boldsymbol{\hat P}}({\mathit{\boldsymbol{M}}_i},{\mathit{\boldsymbol{P}}_{{\rm{t}},i}}) - {\mathit{\boldsymbol{P}}_{{\rm{f}},i}})}^2}}}{{{\sigma ^2}}}}}. $ | (8) |
构造似然函数
$ L({\mathit{\boldsymbol{M}}_i},{\mathit{\boldsymbol{P}}_{{\rm{t}},i}}) = \prod\limits_{i = 1}^n {f({\mathit{\boldsymbol{P}}_{{\rm{f}},i}})} = \frac{1}{{\sqrt {2\pi } }}{{\rm{e}}^{\frac{{ - \sum\limits_{i = 1}^n {(\mathit{\boldsymbol{\hat P}}(} {\mathit{\boldsymbol{M}}_i},{\mathit{\boldsymbol{P}}_{{\rm{t}},i}}) - {\mathit{\boldsymbol{P}}_{{\rm{f}},i}}{)^2}}}{{{\sigma ^2}}}}}. $ | (9) |
为了能够让L取得最大值,将问题转化为
$ {\rm{min}}\sum\limits_{i = 1}^n {{{\left\| {\mathit{\boldsymbol{\hat P}}({\mathit{\boldsymbol{M}}_i},{\mathit{\boldsymbol{P}}_{{\rm{t}},i}}) - {P_{{\rm{f}},i}}} \right\|}^2}} . $ | (10) |
式(10)是一个非线性优化问题,将使用Levenberg-Marquardt方法进行优化.利用最开始标定得到的解作为初始值,不断进行迭代得到最优解.
2.3 目标位置计算图像深度zc通常是未知的.为了估计zc,假定地面高程地图已知,则地面目标的海拔高度zt已知.现在设κ=bsR·cbR·M-1,κ∈R3×3,则代入式(6)得
$ \begin{array}{l} {z_{\rm{t}}} = {z_1} + [_b^s{\mathit{\boldsymbol{R}}_{31}},_b^s{\mathit{\boldsymbol{R}}_{32}},_b^s{\mathit{\boldsymbol{R}}_{33}}]\left[ {\begin{array}{*{20}{c}} {x_2^b}\\ {y_2^b}\\ {z_2^b} \end{array}} \right] + {z_c} \cdot \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \left[ {\begin{array}{*{20}{l}} {{\mathit{\boldsymbol{\kappa }}_{31}},{\mathit{\boldsymbol{\kappa }}_{32}},{\mathit{\boldsymbol{\kappa }}_{33}}} \end{array}} \right] \cdot \left[ {\begin{array}{*{20}{l}} u\\ v\\ 1 \end{array}} \right]. \end{array} $ | (11) |
则通过下式计算得到
$ {z_c} = \frac{{{z_{\rm{t}}} - {z_1} - \left( {_b^s{\mathit{\boldsymbol{R}}_{31}} \cdot x_2^b + _b^s{\mathit{\boldsymbol{R}}_{32}} \cdot y_2^b + _b^s{\mathit{\boldsymbol{R}}_{33}} \cdot z_2^b} \right)}}{{{\mathit{\boldsymbol{\kappa }}_{31}} \cdot u + {\mathit{\boldsymbol{\kappa }}_{32}} \cdot v + {\mathit{\boldsymbol{\kappa }}_{33}}}}. $ | (12) |
获得深度信息zc之后,式(6)右侧的剩余变量可通过传感器量测获得,则利用下式估算出目标的地理位置
$ \left\{ {\begin{array}{*{20}{l}} {{x_{\rm{t}}} = {x_1} + _{\rm{b}}^{\rm{s}}{\mathit{\boldsymbol{R}}_{1j}}{ \cdot ^b}{\mathit{\boldsymbol{P}}_2} + {z_c}({\mathit{\boldsymbol{\kappa }}_{1j}} \cdot {\mathit{\boldsymbol{P}}_{\rm{f}}}),}\\ {{y_{\rm{t}}} = {y_1} + _b^s{\mathit{\boldsymbol{R}}_{2j}}{ \cdot ^b}{\mathit{\boldsymbol{P}}_2} + {z_c}({\mathit{\boldsymbol{\kappa }}_{2j}} \cdot {\mathit{\boldsymbol{P}}_{\rm{f}}}).} \end{array}} \right. $ | (13) |
式中:bsRij和κij分别为bsR和κ的第i行第j列元素.
2.4 定位误差分析图像深度zc的计算需要已知目标的海拔高度zt,在计算的时候假设zt已知.但地形可能存在高低起伏,造成zt存在误差,给定位带来影响.假设
$ {z_{\rm{t}}} = {z_{{\rm{t,o}}}} \pm {\varDelta _{\rm{t}}}. $ | (14) |
式中:zt, o代表目标海拔高度的精确值,Δt代表海拔高度的误差.根据式(12)和式(13),得到目标水平位置xt和yt关于海拔高度zt的导数为:
$ \left\{ {\begin{array}{*{20}{l}} {\frac{{\partial {x_{\rm{t}}}}}{{\partial {z_{\rm{t}}}}} = \frac{{\partial [{z_c}({\mathit{\boldsymbol{\kappa }}_{1j}} \cdot {\mathit{\boldsymbol{P}}_{\rm{f}}})]}}{{\partial {z_t}}} = \frac{{{{\dot z}_{\rm{t}}}({\mathit{\boldsymbol{\kappa }}_{1j}} \cdot {\mathit{\boldsymbol{P}}_{\rm{f}}})}}{{{\mathit{\boldsymbol{\kappa }}_{31}} \cdot u + {\mathit{\boldsymbol{\kappa }}_{32}} \cdot v + {\mathit{\boldsymbol{\kappa }}_{33}}}},}\\ {\frac{{\partial {y_{\rm{t}}}}}{{\partial {z_{\rm{t}}}}} = \frac{{\partial [{z_c}({\mathit{\boldsymbol{\kappa }}_{2j}} \cdot {\mathit{\boldsymbol{P}}_{\rm{f}}})]}}{{\partial {z_{\rm{t}}}}} = \frac{{{{\dot z}_{\rm{t}}}({\mathit{\boldsymbol{\kappa }}_{2j}} \cdot {\mathit{\boldsymbol{P}}_{\rm{f}}})}}{{{\mathit{\boldsymbol{\kappa }}_{31}} \cdot u + {\mathit{\boldsymbol{\kappa }}_{32}} \cdot v + {\mathit{\boldsymbol{\kappa }}_{33}}}}.} \end{array}} \right. $ |
zt的主要来源是高程地图,是一系列离散的点,难以获得żt的数学表达式.因此本文将采用序贯扰动(Sequential Perturbation, SP)方法来分析zt对定位精度的影响[17].SP是一种数字方法,在偏导数的直接计算不可行或者难以计算时使用,并且容易洞察哪些误差参数对最终结果产生显著影响.
海拔高度对定位精度的影响可用如下模型评估
$ {\left. {\frac{{\partial {\mathit{\boldsymbol{P}}_{\rm{t}}}}}{{\partial {z_{\rm{t}}}}}} \right|_{\rm{o}}}{\varDelta _{\rm{t}}} = \mathit{\boldsymbol{P}}({z_{{\rm{t,o}}}} + {\varDelta _{\rm{t}}}) - {\mathit{\boldsymbol{P}}_{{\rm{t,o}}}} = {\mathit{\boldsymbol{P}}_{\rm{t}}} - {\mathit{\boldsymbol{P}}_{{\rm{t,o}}}}. $ | (15) |
式中:Pt代表由式(6)计算出的目标的位置,Pt, o代表准确的目标位置.式(15)代表地面海拔改变时引起的定位误差.
由于UAV目标跟踪主要应用于平原地区,因此可以假定Δt=±20 m.根据式(6)和式(15),固定其他变量,可得∂Pt/∂zt=0.43 m/m.而UAV跟踪目标的期望半径通常在100 m以上,所以在平原地区,该定位误差对UAV跟踪精度影响较小.
3 UAV跟踪地面目标策略 3.1 基于运动补偿的云台控制算法在跟踪过程中,摄像机视野会受到UAV运动的影响.实际上,受到气流变化、UAV姿态调整和目标位置变化等因素的影响,摄像机的成像画面容易出现模糊、跳动的情况,降低识别准确度甚至丢失目标.为保证摄像机的视野保持稳定,需要对云台的运动加以控制.
3.1.1 UAV姿态补偿UAV的姿态变化会引起摄像机视线的变化,因此需要通过云台转动来补偿机体运动对摄像机视线的影响,机体角速度[p q r]T与云台姿态角速度
$ \left[ {\begin{array}{*{20}{c}} {{{\dot \varphi }_c}}\\ {{{\dot \theta }_c}}\\ {{{\dot \psi }_c}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{\rm{cos}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\psi _c}/{\rm{cos}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\theta _c}}&{{\rm{sin}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\psi _c}/{\rm{cos}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\theta _c}}&0\\ {{\rm{sin}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\psi _c}}&{ - {\rm{cos}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\psi _c}}&0\\ { - {\rm{tan}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\theta _c}{\rm{cos}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\psi _c}}&{ - {\rm{tan}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\theta _c}{\rm{sin}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\psi _c}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} p\\ q\\ r \end{array}} \right] = {\omega _{cb}}\left[ {\begin{array}{*{20}{c}} p\\ q\\ r \end{array}} \right]. $ | (16) |
由于二自由度云台不具备绕ocxc轴转动的自由度,即φc≡0,
$ \left[ {\begin{array}{*{20}{c}} 0\\ {{{\dot \theta }_c}}\\ {{{\dot \psi }_c}} \end{array}} \right] = - {\omega _{cb}}\left[ {\begin{array}{*{20}{c}} p\\ q\\ r \end{array}} \right]. $ | (17) |
摄像机的分辨率为px和py,横向和纵向视场角分别为λx和λy,当目标在图像平面偏离图像中心像素点的位置为[Δx Δy]T时,为使目标移动到图像的中心,云台需要旋转的角度为
$ \left[ {\begin{array}{*{20}{c}} {d{\theta _c}}\\ {d{\psi _c}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} { {\rm{atan}} \frac{{2{\rm{tan}}({\lambda _y}/2)\Delta y{\rm{cos}}(d{\psi _c})}}{{{p_y}}}}\\ { {\rm{atan}} \frac{{2{\rm{tan}}({\lambda _x}/2)\Delta x}}{{{p_x}}}} \end{array}} \right]. $ | (18) |
式中:atan为反正切.设采样时间为Δt,则总的云台控制指令为
$ \left[ {\begin{array}{*{20}{c}} {\Delta {\theta _c}}\\ {\Delta {\psi _c}} \end{array}} \right] = {k_1}\left[ {\begin{array}{*{20}{c}} {{{\dot \theta }_c}}\\ {{{\dot \psi }_c}} \end{array}} \right]\Delta t + {k_2}\left[ {\begin{array}{*{20}{c}} {d{\theta _c}}\\ {d{\psi _c}} \end{array}} \right]. $ | (19) |
式中:k1和k2为补偿的比例系数,均大于0.根据式(19),本文提出如图 7所示的云台控制器.
通过云台控制算法,避免因飞机姿态变化过快而引起摄像机视场的变化,可始终保证目标在图像中心附近,有利于图像跟踪算法跟踪目标.
3.2 UAV的飞行引导 3.2.1 UAV控制律设计UAV在跟踪地面目标的时候,需要围绕目标做圆周运动,因此需要给出相应的滚转角指令.本文中采用参考点制导法来获取滚转角指令.
3.2.2 参考点制导法文献[18]利用参考点制导法[10]实现了UAV跟踪曲线航路,并证明了稳定性.在利用参考点制导法跟踪目标时,UAV和目标的位置关系如图 8所示.
参考点制导法根据目标位置生成期望的圆形路径,半径为rd,并在圆形路径上指定一个参考点.参考点的位置在圆形路径上并与飞行器相距L1.根据L1与无人机速度的夹角,生成横向加速度指令为
$ {a_{{{\rm{s}}_{{\rm{cmd}}}}}} = 2\frac{{{V^2}}}{{{L_1}}}{\rm{sin}}{\kern 1pt} {\kern 1pt} {\kern 1pt} \eta . $ | (20) |
式中:V为无人机的速度,ascmd为横向加速度指令,与UAV速度方向垂直,L1为连接UAV位置和期望路径参考点的线段,大小为固定值,η为V与L1的夹角,η∈[-π π].
利用式(20)得到横向加速度指令后,需要利用式φcmd=atan(ascmd/g)将横向加速度转换成滚转角指令,引导UAV围绕目标飞行,实现跟踪.
4 仿真结果 4.1 仿真参数设定工作站的硬件环境为:处理器Inter Core i7-6800K CPU 12核,主频3.40 GHz;显卡NVIDA GeForce GTX1080;内存32 G.VP的版本为2013,MATLAB版本为2016b.
本文在仿真时采用UAV六自由度模型,UAV飞行高度hg为150 m,飞行速度Vg为25 m/s,起点坐标为(0, 0)m,滚转角限制为φ≤30°.
VP的分辨率设置为1 280×960,纵向和横向视场角均为80°,模拟摄像机的内参矩阵为
$ \mathit{\boldsymbol{M}} = \left[ {\begin{array}{*{20}{c}} {770.4}&{13.5}&{640}\\ 0&{592.9}&{484}\\ 0&0&1 \end{array}} \right]. $ | (21) |
云台控制算法中比例系数取k1=1和k2=0.06.
参考点制导法的运行周期为200 ms,期望跟踪半径rd为130 m,L1的长度为100 m.
4.2 跟踪算法跟踪结果ECO算法的部分输出如图 9所示,长方形框表示ECO算法预测汽车所在的矩形区域.
本文选取中心点误差定量衡量跟踪算法的跟踪效果.中心点误差是指跟踪算法预测的图片上目标中心点与人工标注的目标中心点之间的欧式距离,是衡量跟踪算法性能的重要指标,单位为pixel.一般将中心点误差小于20 pixel看作正确跟踪[19].由图 10可知,中心点误差的平均值为9.75 pixel,只有少数帧的误差超过20 pixel,说明ECO在仿真环境也同样表现优异.
本节设计了多种汽车运动模式,验证云台控制算法和参考点制导算法的效果,并利用本文所搭建的仿真平台进行闭环仿真.
图 11中,汽车的运动轨迹为直线,x方向速度为10 m/s,y方向的速度为10 m/s.
图 12中,汽车的运动轨迹为正弦.
图 13中,汽车x方向的速度依次为4 m/s、8 m/s、10 m/s和12 m/s;y方向的速度依次为4 m/s、8 m/s、10 m/s和12 m/s;运动轨迹为四边形.
由仿真结果可知,云台控制算法和参考点制导法相结合的策略能够使UAV跟踪不同运动速度和方向的地面目标.整个仿真过程均是在本文设计的仿真平台进行的闭环仿真,证明该仿真平台对UAV跟踪过程具有较高程度的还原,得到的仿真结果具有较高的工程参考价值.
5 结论1) 利用3D仿真软件Vega Prime(VP)和MATLAB/Simulink设计了一个UAV跟踪系统仿真平台,实现了目标跟踪实验的闭环仿真.该仿真平台成本低,实现简单,并且各个子系统采用模块化设计,方便进行推广和替换.
2) 将基于运动补偿的云台控制算法和参考点制导法应用到该仿真平台上,使UAV能够跟踪具有不同运动状态的目标,并且保证目标始终在视野范围内.
3) 仿真平台对UAV跟踪过程具有较高程度的还原,得到的仿真结果具有较高的工程参考价值.下一步工作,将研究把云台控制算法和参考点制导法应用到真正的无人机平台上.
[1] |
KANELLAKIS C, NIKOLAKOPOULOS G. Survey on computer vision for UAVs: Current developments and trends[J]. Journal of Intelligent & Robotic Systems, 2017, 87(1): 141. DOI:10.1007/s10846-017-0483-z |
[2] |
赵俊峰.无人机航迹规划虚拟视景仿真系统设计[D].南昌: 南昌航空大学, 2019 ZHAO Junfeng. UAV route planning virtual vision simulation system design[D]. Nanchang: Nanchang Hangkong University, 2019 https://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CMFD&filename=1019654383.nh |
[3] |
QI Juntong, LIU Jinda, ZHAO Bichuan, et al. Visual simulation system design of soft-wing UAV based on FlightGear[C]//2014 IEEE International Conference on Mechatronics and Automation. Tianjin: IEEE, 2014: 1190. DOI: 10.1109/ICMA.2014.6885867
|
[4] |
姜博.基于Mulitigen Creator和Vega Prime的车辆制动性试验视景仿真研究[D].西安: 长安大学, 2019 JIANG Bo. Visual simulation study of vehicle brake test based on Mulitigen Creator and Vega Prime[D]. Xi'an: Chang'an University, 2019 http://cdmd.cnki.com.cn/Article/CDMD-10710-1019628308.htm |
[5] |
孙旺, 刘西, 南英. 基于MFC的Vega Prime航空飞行器动态视景仿真[J]. 指挥控制与仿真, 2019, 41(5): 87. SUN Wang, LIU Xi, NAN Ying. Dynamic visual simulation of aviation aircraft using Vega Prime based on MFC[J]. Command Control & Simulation, 2019, 41(5): 87. DOI:10.3969/j.issn.1673-3819.2019.05.018 |
[6] |
ROSS J, GEIGER B, SINSLEY G, et al. Vision-based target geolocation and optimal surveillance on an unmanned aerial vehicle[C]//AIAA Guidance, Navigation and Control Conference and Exhibit. Hawaii: AIAA, 2008: 7448. DOI: 10.2514/6.2008-7448
|
[7] |
GANS N R, DIXON W E, LIND R, et al. A hardware in the loop simulation platform for vision-based control of unmanned air vehicles[J]. Mechatronics, 2009, 19(7): 1044. DOI:10.1016/j.mechatronics.2009.06.014 |
[8] |
李增彦, 李小民. 无人侦察机半物理跟踪仿真平台设计与实现[J]. 测控技术, 2013, 32(3): 63. LI Zengyan, LI Xiaomin. Design and implementation of semi-physical simulation system for URAV's tracking[J]. Measurement & Control Technology, 2013, 32(3): 63. DOI:10.19708/j.ckjs.2013.03.016 |
[9] |
李湘清, 孙秀霞, 彭建亮, 等. 基于运动补偿的小型无人机云台控制器设计方法[J]. 系统工程与电子技术, 2011, 33(2): 377. LI Xiangqing, SUN Xiuxia, PENG Jianliang, et al. Motion compensation based gimbal controller design for small UAV[J]. Journal of Systems Engineering and Electronics, 2011, 33(2): 377. DOI:10.3969/j.issn.1001-506X.2011.02.29 |
[10] |
PARK S, DEYST J, HOW J P. A new nonlinear guidance logic for trajectory tracking[C]//AIAA Guidance, Navigation, and Control Conference and Exhibit. Rhode Island: AIAA, 2004: 4900. DOI: 10.2514/6.2004-4900
|
[11] |
王文恽, 王文双, 侯学隆, 等. Vega Prime开发与应用仿真[M]. 第1版. 成都: 西南交通大学出版社, 2017: 49. WANG Wenyun, WANG Wenshuang, HOU Xuelong, et al. Development and simulation application based on Vega Prime[M]. 1st ed. Chengdu: Southwest Jiaotong University Press, 2017: 49. |
[12] |
王孝平, 董秀成, 古世甫. Vega Prime虚拟现实开发技术[M]. 第1版. 成都: 西南交通大学出版社, 2018: 71. WANG Xiaoping, DONG Xiucheng, GU Shifu. Development technology of virtual reality based on Vega Prime[M]. 1st ed. Chengdu: Southwest Jiaotong University Press, 2018: 71. |
[13] |
HENRIQUES J F, CASEIRO R, MARTINS P, et al. High-speed tracking with kernelized correlation filters[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(3): 583. DOI:10.1109/TPAMI.2014.2345390 |
[14] |
DANELLJAN M, ROBINSON A, KHAN F S, et al. Beyond correlation filters: Learning continuous convolution operators for visual tracking[C]//European Conference on Computer Vision. Cham: Springer, 2016: 472. DOI: 10.1007/978-3-319-46454-1_29
|
[15] |
DANELLJAN M, BHAT G, KHANF S, et al. ECO: Efficient convolution operators for tracking[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 6931. DOI: 10.1109/CVPR.2017.733
|
[16] |
ZHANG Zhengyou. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1332. DOI:10.1109/34.888718 |
[17] |
FIGLIOLA R S, BEASLEY D E. Theory and design for mechanical measurements[M]. 5th ed. [S.l.]: John Wiley & Sons, 2011: 174.
|
[18] |
PARK S, DEYST J, HOW J P. Performance and Lyapunov stability of a nonlinear path following guidance method[J]. Journal of Guidance, Control, and Dynamics, 2007, 30(6): 1719. DOI:10.2514/1.28957 |
[19] |
BABENKO B, YANG M H, BELONGIE S. Robust object tracking with online multiple instance learning[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 33(8): 1627. DOI:10.1109/TPAMI.2010.226 |