无人直升机地面监控软件模块化设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

60 | 电子制作 2021年03月
侦测、地质地貌测绘、航空影拍、电力施工、森林防火、应急救灾、通信中继、反恐侦查等诸多领域[2]。

近年来,无人
直升机的伤亡风险低、机动性好、起降条件少、使用方便等优势在民用市场需求中逐步显现出来。

我国民用无人机已经进入了快速发展时期。

越来越多的无人直升机系统研制已经由“以平台为中心”向“以任务为中心”的思想转变[3]。


何提高无人直升机的多任务能力,如何降低无人直升机改装的成本。

这对无人机工业设计提出了更高的要求。

本文使用模块化设计思想研发无人直升机地面监控软
件,为降低无人直升机多任务改装带来的风险提供帮助。

1 设计原则
软件模块化旨在建立可重用的软件构件[4]。

在不需要修改或少量修改的情况下,可再次组建成新的软件。

进而降低软件的开发成本、提高软件的可靠性和可维护性。

软件模块的良好设计体现在以下几个方面。

(1)要求软件模块具有较好弹性的同时不增加解决问题的复杂程度。

(2)要求软件模块具有较好的可移植性。

(3)要求软件模块具有更清晰的接口定义。

(4)要求软件模块具有更好的稳定性。

(5)要求软件模块具有更好的独立性。

避免模块间的过度依赖。

2 软件模块设计
无人直升机地面监控软件实现地面人员对无人直升机的远程控制和监视功能。

通过数据通信系统将获取的无人机下行遥测数据帧进行解析、分析和图形化显示。

同时将控制指令编码成上行遥控数据帧发送到无人机飞控系统中。

具有不同任务载荷的无人直升机在监控数据和通信协
■2.1 底层功能抽象
长期实践表明,良好的软件弹性来自于更多高层次的抽
象。

地面监控软件最为核心和固化的功能就是根据不同的协议对各种数据帧进行解析、组装、分析和图形化显示。

因此,
将这些功能分成协议解析模块、数据算法模块、通信模块和用户界面组件模块四大底层功能模块。

通过面向对象的设计方式各自形成四大互相独立的类库。

这些类库的设计具有以下的特点。

(1)采用单一职责[5]的类设计原则。

不同职责的类相互独立,没有继承或接口关系。

(2)相同职责的类实现同一接口、继承同一父类。

可以
根据不同需要扩展新类增加软件弹性。

下面以协议解析模块为例。

该模块以AbstractSignal
为基类抽象出十六进制字节数组与实际值的换算逻辑。

而不同的换算逻辑实现在具体的子类中。

比如AnalogSignal
实现字节数组与数值的换算;TextSignal 实现字节数组与文本的换算;DiscreteSignal 实现字节数组与离散位状态
的换算等。

Protocol 类包含一组信号,实现帧数据的匹配、
解析、过滤和校验功能。

图2展现协议解析模块的UML 类图。

www�ele169�com | 61
软件开发
■2.2 数据协议分离
地面监控软件处理数据需要依据不同的帧数据协议。


协议数据与功能进行分离。

可以使各底层模块具有更好的独立性,避免模块间的过度依赖。

同时将分离的协议数据结构化和持久化存储。

有助于提高软件的可配置性。

降低因协议变化而造成软件更改的风险。

协议数据结构化和持久化存储可以采用各种形式。

比如
XML 结构文件、JSON 结构文件、关系型数据库等。

图3
展现某协议的XML 结构。

图3 协议XML 结构
■2.3 用户界面组件化
地面监控软件最终目的是将解析和分析后的数据通过
图形用户界面展现给用户。

不同项目软件变化最大的部分就是图形用户界面(GUI)。

将界面组件化能更好的降低UI 设计中大量的重复性工作。

针对无人直升机的使用特点和习惯。

我们抽象出了状态
灯、仪表盘、水平仪、刻度尺、游标尺、能量柱、雷达图和开关按钮等UI 组件。

这些组件具备以下三个特点。

(1)每个组件都是独立的模块,在修改时不会影响其他的组件。

(2)每个组件都是完整的功能闭环。

具有独立的尺寸、颜色和状态设置逻辑。

(3)每个组件都可以通过布局与其他组件自由组合成更大的组件或界面。

下面介绍几个使用QT 开发的QWidget 组件,如图4
所示。

水平仪用于显示无人直升机的俯仰角、滚转角和航向角等姿态信息。

使用setDegValue(int)、setRollValue(int)等方法实现背景图、刻度线和方向指示器的旋转。

游标尺用于显示无人直升机的速度和高度信息。

使用setCursorValue(int)等方法实现游标刻度的上下移动,并在即将超出刻度范围时刷新刻度轴。

仪表盘可以用于显示各种发动机转速、旋翼转速等信
息。

能量组可以用于显示各种燃油量、滑油温度等信息。

雷达图可以显示无人直升机起飞降落时的定位信息。

状态灯可以显示无人机直升机的各种告警信息。

图4 组件可视化界面
3 应用实例
在某无线电监测项目中。

无人直升机下行遥测数据包含
BCD 格式的时间量需要解析显示。

针对需求变化,在地面
监控软件的协议解析模块中增加了继承AbstractSignal 的BCDTimeSignal 类。

通过getRealValue()方法直接可以获取解析后的时间数据显示在用户界面中。

此次变更只需要完
成BCDTimeSignal 的单元测试和时间数据显示的配置项测试即可。

在某海事项目中。

需要控制无人直升机上的部分任务设
备。

针对需求变化,需要在上行控制指令增加新的内容。

为此,地面监控软件通过修改上行控制帧协议的格式。

在没有更新任何代码的情况下实现了需求。

此次变更只需要完成针对指令发送功能的配置项测试即可。

经过长期的项目实践证实了模块化设计的地面监控软
件有效的降低了研发成本。

为降低无人直升机平台改装需求
带来的风险提供了帮助。

4 结束语
本文详细介绍了无人直升机地面监控软件的模块化设
计与实现。

并通过应用实例说明经过模块化设计的地面监控软件具有更高的开发效率、更好的可配置能力和更低的研发成本。

通过模块组装和参数配置,地面监控软件可以适应更
(下转第80页)
显示。

图7为程控电源的矩阵键盘输入和LCD显示部分,通过矩阵键盘可以输入一个设定电压值,然后按下ON/C按键,输出电压就可以调整到设定电压值。

另外,LCD接口的控制总线采用了一个与门和一个或非门电路,在编程时,只需要定义好写数据宏#define LCDWR_D XBYTE[0xf5c7],然后语句LCDWR_D=0x01就可以实现对LCD写入数据。

这种方式相比较经典的普通IO口赋值方式来看,编程得到极大的简化。

4 结语
通过上述应用案列表明,通过这种模块化的组合,可以快速实现软硬件的裁剪和组合运行。

可以实现所有外设模块的同时运行,而且软件编程接口统一,外设扩展数量几乎没有限制,这极大的增加了系统的扩展性和可裁剪性。

因此,本系统不但能够用于基础性实验开展,也能够通过模块的拼接实现复杂的系统性实验,使得做实验就像“搭积木”这样简洁,另外还能够在本系统的基础上进一步扩展,构建一个更加庞大和完善的多课程一体化的实验平台,比如可以加入FPGA实验课程、PCB制版课程、电工训练等课程。

参考文献
* [1] 高林. 多课程综合软件仿真系统的设计与应用[J]. 实验室研究与探索, 2014, 33(6):90-93.
* [2] 谢光明. “数字电路”与后续课程的连贯性[J]. 科技资讯,2007(31):129.
* [3] 曾繁政. 单片机技术实验教学的优化思路与实践[J].北京: 电子世界, 2020,(1):47-48.
* [4]闫龙, 张鑫, 张顺堂等. 教学-实验-实训三位一体的单片机教学改革探讨[J]. 上海:实验室研究与探索, 2019,38(8): 220-223.* [5] 曹伟青, 张艳荣. 单片机实验教学过程中自主学习的探索[J]. 北京:中国现代教育装备,2020,(3):90-92.
* [6] 董优丽. 基于EDA实验平台的多课程融合式教学探究[J].北京:科技创新导报,2019,(15):228-229.
* [7] 李荣强,李波,杜国宏.基于新工科的学科交叉实验教学研究[J].西南师范大学学报(自然科学版),2019,44(07):156-160.* [8] 杨加国.PROTEUS 对电子类专业课程的影响[J].成都: 成都大学学报(教育与教学研究), 2013, 27(4):83-84, 121.
* [9] 周荷琴, 冯焕清. 微型计算机原理与接口技术[M]. 5版. 合肥:中国科学技术大学出版社,2013. 36-46.
* [10] 马春燕,郑剑海,王淑红,郑丽君.基于“口袋机”的“单片机原理与接口技术”课程开放式教学探索[J].实验技术与管理,2020,37(04):16-19+27.
多具有不同任务载荷的无人直升机平台。

参考文献
* [1]丁国华,张大庆,丁自强. 国外无人直升机现状及发展趋势浅析[J]. 中国无人机系统峰会, 2013,39-40.
* [2]周帅.无人直升机在民用行业的应用与发展[J].舰船电子对
抗,2013,36(01):117-120.
* [3]张栋,董军堂,雷文礼. 基于互联网看国内无人直升机发展[J].机器人技术与应用,2014,19-23.
* [4]徐文岗,姚一杨,王晓东,等. 动态可重构性测控系统软件模块化设计[J].计算机科学与应用, 2020,777-782.
(上接第61页)
80 | 电子制作 2021年03月。

相关文档
最新文档