欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是: 首页

基于VC++和TRTD的无人机地面站软件开发

科普小知识 2023-11-14 14:56:15
...

 摘 要: 针对某无人机飞行监测和控制要求,以vc++为开发环境,采用trtd实时程序开发包开发人机界面,设计了操作方便,功能强大的集飞行监测和控制、地面检测于一体的无人机地面站软件系统。软件采用多线程设计方法,设计了主线程和串口通信子线程,串口通信以保证上行数据为主设计握手协议,将下行数据依对飞行安全重要性不同分为不同传输频率的辅祯,解决了串口通信数据,容易导致通信堵塞和地面站需要数据更新快的矛盾。经实际联调,系统运行良好,通信实时性高,很好地完成了各部分功能,并具有良好的扩展性。关键词:无人机; 地面站; 串口通信; 多线程

中图分类号:tn911-34; tp311.52 文献标识码:a

文章编号:1004-373x(2010)22-0046-03

design of software for uav flight control ground station based on vc++ and trtd

he xiang-zhi,wang rong-chun,zhou wei

(beijing aeronautical technology research center,beijing 100076, china)

abstract: according to the requirement of flight monitoring and control of certain uav, a multifunctional and convinient flight control ground station software is designed which contain functions of flight control, monitoring and ground testing to develop human machine interface by using vc++ and trtd. the software design used multithread method and designed the main thread and serial communication thread. to ensure the uplink data, the serial communication handshaking protocol is designed. the downlink data is divided into auxiliary frame of different transmission frequency according to different importance of flight safety, which can solve the problems of communication jamming and fast data update. experiments show that the system works well and the communication is of perfect real-time property. the task of uav ground station system is fulfilled with satisfaction and it also has good expansibility.keywords: uav; ground control station; serial communication; multithread

收稿日期:2010-06-18

0 引 言

无人机(uav)是一种动力驱使、可控制、能携带多种任务设备、执行多种任务,并能重复使用的无人驾驶航空器[1]。wWw.11665.cOm无人机的飞行控制系统包括两个层次,如图1所示,分别是飞机系统和地面控制系统。无人机的地面控制系统,即地面站gcs(ground control station),是无人机的重要组成部分,是整个无人机系统的“神经中枢”[2],它控制系统各项功能的成功实现。地面站可以完成无人机的飞行操纵、数据链管理、机载任务设备控制和地面检测,同时以数字和图形形式提供飞机飞行状态,实现对全系统的监控[3]。

为了提高实时性,本文采用tilco公司的trtd(tilcon real-time developer)实时程序开发包在windows xp操作系统下开发地面站软件。trtd是一个简单易用、快速、多平台的实时程序开发包,它包括两部分:tilcon graphics editor和tilcon kernel。tilcon graphics editor是一个功能强大的图形编辑器,可以产生诸如窗口、菜单、按钮、复选框、表格等图形对象,产生一个.twd文件供应用程序调用。tilcon kernel是应用程序与操作系统之间相互连接的一个平台,应用程序调用tilcon kernel提供的api (application programming interface)函数与操作系统发生关系。经过综合考虑,选用c语言在visual c/c++6.0集成开发环境下开发应用程序[4]。

1 软件总体

1.1 软件总体框架

无人机的飞行控制系统如图1所示。地面站的主要任务是定时采集分析遥测数据、实时发送遥控指令以及无人机的地面检测。因此地面站软件应用程序主要分为两个线程,主线程用于程序的初始化、子线程的创建和结束、应用程序主窗口的管理以及遥控遥测数据的显示和记录;串口通信子线程主要管理遥控遥测与飞行控制计算机的通信,根据通信协议把通信内容组帧或解帧[5]。软件总体框架如图2所示。

图1 无人机飞行控制系统

图2 软件结构图

程序是从主函数winmain()开始的,它们具有相同的程序架构,程序流程如图3所示。maineventloop()和dlinkrx()是程序在正常运行情况下一直会执行的函数体,dlinkrx()主要实现串口数据接收及解码,在maineventloop()中主要调用函数processnotification(),所以函数processnotification()成为主要运行的函数体,由它来实现定时调用函数(case trt_timer_hint) 以及处理主界面的一些操作(case trt_window)。

图3 软件流程图

1.2 界面设计

鉴于飞控地面站的主要任务,地面站软件界面的设计分为遥控遥测界面和地面检测界面,软件界面的组成结构如图4所示。界面采用trtd提供控件进行设计,遥测数据显示包括了数据显示和图形显示[6]。数据显示界面用来显示飞行姿态信息、气压高度、空速、gps信息等;图形显示用来实现飞行姿态信息、高度和空速的表盘显示。故障回报通过故障灯闪烁报告飞机电源、链路、发动机状态、机载传感器状态,使地面站及时接收故障信息;采用excel表格保存实时数据,方便后续数据统计分析[7]。

图4 界面总体设计

2 串口通信

地面站通过rs 232串口与无人机进行数据交换。数据分为周期性数据和非周期性数据2种。周期性数据主要是无人机飞行时的下行数据,即遥测数据;非周期性数据主要是无人机飞行时的上行数据和地面检测数据。

当地面站与无人机通过数传电台进行无线通信时,虽然地面站与地面数传电台以及无人机与机载数传电台采用rs 232串口为全双工的工作方式,但机载电台与地面电台进行数据交换时为半双工的工作方式,因此在串口读写时要考虑握手协议。从无人机的飞行安全出发,要求无人机要能尽快响应地面的指令,因此在串口通信设计时以地面上行指令为主。默认情况下无人机不下发数据,当无人机收到上行的握手信号后才进行数据的下传,为了提高握手信号上行的精度,采用多媒体定时器来定时调用cmdsend_flag(),多媒体定时器回调函数的原型如下:

callback timerdefine(uint udelay,uint umsg,dword dwuser,dword dw1,dword dw2)

同时为了避免可能产生的下行数据更新慢而影响到地面操作人员对飞机状态的把握,将下行数据按重要等级分为a,b,c三个辅祯。a辅祯主要记录飞机的姿态、角速率等信息;b辅祯主要记录飞机的大气数据,如高度、空速、地面控制指令等信息;c辅祯则记录gps的相关信息。a,b,c三个辅祯下行频率为6∶3∶2,既满足了地面操作人员对飞机安全相关信息的及时把握,又避免了由于数据多而导致的链路堵塞问题。

串口操作采用库文件wsc32.lib提供的串行通信函数实现,常用的有siogetc(int)和sioputs(int,lpstr,unsigned),前者从指定串口接收1个字节的数据,后者将指定长度的数据通过出串口发送出去[8]。图5给出数据发送和数据接收流程。

图5 数据发送和接收流程

3 地面检测

地面检测的主要功能是接收飞控计算机发送下来的各种传感器等信息,同时发送地面检测指令信号给飞控计算机,实现在无人机没有飞行之前对整个飞控系统进行检查,并完成飞控系统中相关参数的配置。

地面检测时无人机的下行数据同飞行时的遥测数据相同。然而地面检测的上行数据比较繁杂,它包括控制指令中的地面检测开关、回传数据开关、装订数据开关等;又包括执行机构指令中的各舵面pwm输出测试指令、舵机参数中的比例因子、偏移量的设置,各舵面指令的发送及循环舵检等;又包括任务航线的装订,发动机三段、油门的设置及输出,以及各参数查询及保存指令的上行等[9]。

4 结 语

本文介绍了某无人机系统地面控制站的软件设计与实现。该软件具有实时性强,稳定性好,人机界面友好,可扩展能力强等优点。通过系统的实际联调测试,该软件可以实现长时间、大数据量的运行。该软件很好地实现了各部分功能,可以适用于不同的无人飞行器,且通用性很强[10]。

编辑整理

参考文献

[1]宁金星,卢京潮,闫建国.基于vc++的无人机飞控地面站软件的开发[j].计算机测量与控制,2007(3):596-598.

[2]王倩,陈怀民,吴成富,等.基于vc++导航控制台仿真软件的开发[j].计算机仿真,2007(11):48-50.

[3]庞洪,吴春,牛申阁.基于vc++的小型无人机地面控制导航软件设计[j].桂林航天工业高等专科学校学报,2008(3):22-26.

[4]吴成富,王睿,陈怀民,等.无人机导航地面站软件研究[j].机械与电子,2009(4):7-9.

[5]张治生,陈怀民,吴成富,等.无人机地面站控制台软件设计[j].测控技术,2007,26(4):74-76.

[6]李南,葛卫丽.小型无人机地面站导航显示系统设计[j].现代电子技术,2008,31(5):93-95.

[7]蔡强军,黄一敏.无人机遥控遥测软件地图功能的实现[j].计算机与现代化,2007(10):26-28.

[8]方国军,王海涛,罗秋凤,等.某小型无人机飞控系统串行通信程序的设计[j].计算机测量与控制,2007(15):1850-1852.

[9]张玉刚,薛红军,栾义春,等.无人机地面控制系统操作员控制台设计与仿真[j].火力与指挥控制,2008(10):141-144.

[10]杨国梁,王玮,郭宗本.小型无人机地面控制站软件的设计与实现[j].遥控遥测,2008(5):12-15.