姜 林,郑 尧,轩新想,范本果,许祥馨
(1.中国电子科技集团公司第三研究所,北京 100015;2.陆航研究所,北京 101121)
光电吊舱作为无人机(Unmanned Aerial Vehicle,UAV)的重要载荷之一,主要由主控单元、伺服平台单元、光学控制单元、传感器组件(含可见光、短波红外、中波红外、激光测距机等传感器)、图像处理单元以及组合惯导单元等组成,用于昼/夜间对目标进行侦查、搜索、识别、瞄准、跟踪、目标定位、激光测距以及照射、引导攻击等任务。在无人机执行飞行任务时,无人机需要与地面站无线通信,地面站人员通过地面控制程序与无人机进行人机交互。光电吊舱主控单元在外部需要与无人机飞控计算机、综合控制终端、飞控记录仪以及目标引导系统等设备进行通信,在内部需要与伺服平台单元、光学控制单元、图像处理单元以及组合惯导单元等进行通信[1-3]。如何确保内外通信的稳定性[4-5],提高通信效率,是无人机光电吊舱主控软件设计的关键所在。
本文在ARM架构上使用C++语言设计并实现了光电吊舱主控软件。通过主控软件中线程管理模块合理的资源分配与调度,实现了主控程序的稳定、可靠、高效运行。
1.1.1 外部通信
无人机系统中多个模块间通过1553B总线[6-7]进行数据交互,光电吊舱属于其中的一个模块。在该总线结构中,所有消息规划均由综合管理计算机(Bus Controller,BC)来实现。光电吊舱、综合控制系统、飞机广播(目标引导系统,飞机组合惯导)均为远程终端设备(Remote terminal,RT),总线采用广播形式发送目标引导系统数据和飞机惯导数据,与综合控制系统和综合管理计算机进行数据交互。
1.1.2 内部通信
光电吊舱中的主控单元(含硬件平台和内部软件)使用RS-422串口通信来实现与伺服平台单元、光学控制单元、图像处理单元以及组合惯导单元等组件间的数据交互,如图1所示。
图1 光电吊舱内部通信功能模块图
光电吊舱主控软件与内、外部功能模块的信息交互如表1所示。
主控软件在配置ARM板卡的Ubuntu 18.04环境中进行开发。板卡使用NFS(Network File System)挂载Ubuntu文件系统,使用Visual Studio Code编辑代码与编译。主控软件开发使用高性能台式机,以提高程序编辑效率,加快编译步骤,缩短开发与测试周期;并使用Git代码托管来维护代码的历史记录,有效地解决软件备份问题。
2.2.1 主控软件线程流程
主控软件线程流程如图2所示。
图2 线程流程图
主控软件的主要线程如下:
(1)程序开始,读取配置文件参数(算法参数),初始化Log类,记录主控软件状态;
(2)主线程创建系统控制与算法模块线程、无人机1553B数据线程、伺服控制单元线程、光学控制单元线程、图像处理单元线程以及光电吊舱组合惯导单元线程,并实时监听子线程状态并完成记录;
(3)系统控制与算法模块线程接收无人机1553B数据线程的指令,并接收伺服控制单元线程、光控控制单元线程、图像处理单元线程、光电吊舱组合惯导单元线程的实时数据,完成相应的策略与算法控制并反馈控制情况,上报状态,传输数据给对应的模块;
(4)线程3-线程6接收系统控制与算法模块线程传来的指令并执行对应的操作。
2.2.2 系统工作模式切换关系
主控软件的系统工作模式共11种,包括收藏、锁定、手动、自动扫描、小区搜索、随动、自动跟踪、搜索跟踪、地理跟踪、目标坐标引导以及目标角度引导。系统工作模式的切换如图3所示,图中的箭头指向表示系统允许的状态切换方向。
图3 系统工作模式
2.2.3 系统功能定义
(1)自检测。自检测分为上电自检、周期自检以及启动自检三种。
(2)激光测距。激光上电后,发送“激光测距”指令,激光开始测距。激光测距一定时间后自动停止测距。在激光测距时,可以通过发送“激光测距停止”指令中止激光测距。激光测距未停止时,发送“激光照射”可转为激光照射,重新计时。激光测距未停止时,再次收到“激光测距”指令,激光测距仍以原激光测距开始的时间继续计时。
(3)激光照射。激光照射分为“激光单次照射”和“激光连续照射”两个指令。激光单次照射和激光连续照射的区别在于照射时间不同。
激光上电后,发送“激光单次照射”或“激光连续照射”指令,激光开始照射并回报测距值。在激光照射未停止时,发送“激光测距”为无效指令。在激光照射时,可以通过发送“激光照射停止”指令中止激光照射。在激光单次(连续)照射未停止时,再次发送激光单次(连续)照射指令,即当发送的照射指令与当前激光照射状态相同时,该激光照射仍以原激光照射开始计时的时间继续计时。当激光单次照射时发送“激光连续照射”指令,或当激光连续照射中发送“激光单次照射”指令,激光均以原起照开始时间继续计时,以连续照射时间为照 射时间。
(4)激光测距(照射)停止。发送“激光测距(照射)停止”,则激光测距(照射)停止。
(5)线性位移补偿。在任一工作模式下,发送线性位移补偿指令,光电装置进入线性位移补偿状态。在手动模式下,该算法自动运行,补偿飞机飞行速度。发送“线性位移补偿关闭”指令,光电装置退出线性位移补偿状态。上电时,系统线性位移补偿指令默认无效。
本文设计的主控单元软件已经过多次无人机吊舱实际挂飞测试,挂飞实验过程中的可见光与红外的图像分别如图4和图5所示。
图4 可见光视频截图
图5 红外视频截图
测试过程中,无人机与主控软件之间数据控制正常,数据接收与发送正常;主控单元与吊舱内部模块(伺服控制单元、光控控制单元、图像处理单元及光电吊舱组合惯导)之间进行数据接收与发送正常,指令响应速度快。将主控软件实时存储的Log、无人机中飞控记录仪存储的数据与视频记录仪存储的视频进行对比验证,发现3组数据具有较高的一致性。因此可以认为,本文设计的主控程序运行稳定、可靠且高效。
本文基于ARM架构硬件平台,使用C++语言完成了无人机光电吊舱主控单元控制软件的设计,通过该软件实现了光电吊舱内部单元之间以及光电吊舱与无人机其他模块间的数据交互,并高效地执行了对应的策略与算法。主控单元控制软件经地面测试及无人机吊舱多次实际挂飞测试,充分验证了软件运行稳定、鲁棒性高,可以有利地支撑光电吊舱各项功能的实现,具有较高的应用价值。