吴波
(南京模拟技术研究所,南京 210016)
无人机系列产品是南京模拟技术研究所众多模拟训练产品中的一类,海用型无人机系列产品是众多无人机系列产品中的一类。海用型无人机具备陆地和舰上起飞、海上回收、伴舰飞行、协同编队等能力。海用型无人机伴舰飞行时,飞行航线会跟随舰船移动的方向和速度实时移动,始终保证航线相对舰船的方向、位置不变。
为了满足训练时无人机飞行航路对舰勾径变化的需求,需要在飞行时调整某段航路的位置。调整飞行航路,就需要修改无人机存储的飞行航线。首先在测控软件上修改本机航线的位置,再通过遥调功能修改无人机的航线信息。一种方法是手动调整本机航线段,再依次将调整的位置、高度等信息反馈给无人机。但是手动调整本机航线的位置等信息,计算复杂,精度较低,且手动反馈的速度太慢。另一种方法是自动化调整,开发自动调整航线对舰勾径的功能。该功能在选择好相对的舰船和偏移的航线段后,输入最终的勾径值,按照此勾径值对该段航线整体偏移,重新绘制,并将航线变化的位置等信息反馈给无人机。无人机再调整飞行航路,进而达到勾径偏移的效果。鉴于实际任务需要,设计了“航点勾径偏移”(即“航路勾径偏移”)功能。
当无人机测控软件收到无人机和舰船的数据后,接入该架无人机的遥控、遥调控制权限。通过界面显示的“舰船回传计数”信息,可以确保无人机收到舰船数据。之后上传本机航线信息至无人机飞行控制系统。无人机起飞后,进入航线自动飞行。无人机飞行至待调整勾径航线段前时,打开“航点勾径偏移”对话框,如图1所示。
图1 航点勾径偏移
具体内容介绍如下:
(1)舰船编号。舰船的编号信息。飞行航线调整时,计算偏移航线位置信息使用的舰船编号。
(2)本地航线号。无人机测控软件主视图界面上显示的飞行航线编号。
(3)上传航线号。向无人机发送航点数据包时,数据包的航线信息识别码(数据包包含航线信息识别码、航点信息识别码)。
(4)起始点。偏移的起始航点。
(5)终止点。偏移的结束航点。
(6)勾径值。偏移后的航线段距离舰船的垂直距离。
选择完起始点、终止点后,软件会自动计算并在下方显示该航线段当前的对舰勾径值。以计算出的当前勾径值为参考,输入调整后的勾径值(例如5000)。点击“确定”按钮,测控软件会自动将该段航线调整至勾径值为5000 m 处,重新绘制航线,并将调整的航线段信息发送给无人机。发送成功后,无人机会按照调整后的航线伴舰飞行。
航线段起始点高斯坐标P(1a1,b1),终止点高斯坐标P(2a2,b2),舰船高斯坐标P(3a3,b3),调 整 后 的 勾 径 值 dfGoujing (PI =3.1415926535897932)。
图2 算法示意图
起始点和结束点经过的直线方程Ax+By+C=0。 计算得A=(b2-b1),B=(a1-a2),C=(a2×b1-a1×b2)。舰船高斯坐标点与直线的垂足坐标为P(4x,y),可得:
x=(a3×B×B-b3×A×B-A×C)(/A×A+B×B)
y=(b3×A×A-a3×A×B-B×C)(/A×A+B×B)
由舰船坐标P3和垂足坐标P4
计算舰船当前勾径:
double dfDistance = sqrt((x-a3)*(x-a3)+(yb3)*(y-b3))
需要调整的勾径值double dfOffsetDis=dfGoujing-dfDistance;
计算舰船相对直线的方向:
为了预防舰船刚好出现在航线段上的特殊情况:
计算航点P(1a1,b1)与航点P(2a2,b2)的方向为dfDirectionLine(与计算舰船相对直线的方向的方法相同)。当dfDistance<1 m时,始终计算
测控软件与无人机之间通信如图3所示。
图3 数据传输
地面测控站作为工作电脑与无人机的中继站,与个人工作电脑通过网络连接,与无人机之间通过电磁波通信。
(1)个人工作电脑运行测控软件。操作人员操作测控软件,执行指令。测控软件将指令打包成数据帧后通过网线发送给地面工作站。由于指令发送对速度、实时性要求较高,所以测控软件与地面测控站之间使用了UPD传输协议。
(2)地面测控站通过天线设备向无人机发送指令数据帧。无指令触发时,地面测控站以固定频率持续发送空指令。当地面测控站接收到个人工作电脑通过网络发送的指令,则将指令装载后发送给无人机。
(3)无人机接收到指令后,会以校验数据包的形式回传指令信息。校验数据包通过天线反馈给地面测控站,地面测控站再通过网络发送给个人工作电脑。运行在个人工作电脑上的测控软件接收到校验数据包后,先对校验数据包进行校验。校验正确后,再使用之前发送的指令数据包与校验数据包进行比对。如果比对正确,则认为该指令已成功发送给无人机,并输出发送成功标识。
(4)依据上述(1)—(3)通信过程,将调整的航点信息发送给无人机。具体流程如图4 所示。
图4 航点上传流程
1)启动多航点上传线程。由于启动下一个航点的上传需要等待上一个航点上传完成,所以多航点上传耗时较久,因此需要单独开辟多航点上传线程:
之后再对处理的经纬度数据包加上帧头、航线信息识别码、航点信息识别码、校验码。
3)上传当前航点数据。上传过程采取先进先出原则,超时等待时间为3 s。当前数据包发送后,如果3 s 内接收到无人机回传的确认数据包,则进行数据比对。比对成功,则认为本次上传成功;比对失败,则上传失败。如果3 s内没有收到无人机回传的确认数据包,则认为发送超时,上传失败。无论是否收到回传的确认数据包,超过3 秒后,当前数据包都要出队列,执行下一个数据包的处理过程。
4)循环处理。依步骤3),对所有调整的航点进行处理。直到处理完所有待调整的航点信息或者中途失败,则处理结束,返回处理结果(成功/失败)。
图形设备接口(GDI,graphics device interface)是Windows 的子系统,它负责在显示器和打印机上显示图形,是程序与计算机硬件之间的桥梁,是Windows 重要组成部分之一。不但一般的Windows 应用系统在显示视觉信息时使用GDI,而且Windows 本身也使用GDI 来显示用户界面对象。
为了实时监控无人机状态信息,主视图界面以300 ms 的周期持续刷新。界面上的航线图也会跟着界面不断刷新。一旦航点信息发生变化,航线图会按照新的航点信息重新绘制。测控软件采用GDI方法绘制主界面航线图,具体步骤如下:
(1)创建画笔对象。
航线段偏移到预期位置,意味着主界面航线绘制完成。无人机会沿着调整后的航线完成剩下的飞行过程。
下面为调节前后的航线对比图。图5 显示的是调节前航线,图6 显示的是调节后航线。1 号舰船为无人机飞行跟随舰,2 号舰船为辅助舰,航线段的调整计算方式依赖1号舰的位置。
图5 初始航线
图6 调节后航线
上图调节的目标航点段为09→10 航线段,为了使无人机沿着1 号舰船的舰尾1000 米勾径直线飞行,使用“航点勾径偏移”,调整09→10 航线段的勾径值为1000 m。
本文介绍了航路勾径偏移功能的算法实现和功能实现。“航点勾径偏移”功能可以精确计算偏移后的航点信息,自动向无人机发送新航点信息,重新绘制新航点。既满足了飞行训练时无人机对舰勾径精度的需求,又简化了操作人员的操作步骤,减轻了操作人员的操作压力,帮助操作人员更好的完成飞行保障任务。