任务规划与控制站
GCS(GCS:Ground Control Station)也称为“任务规划与控制站”。任务规划主要是指在飞行过程中无人机的飞行航迹受到任务规划的影响;控制是指在飞行过程中对整个无人机系统的各个系统进行控制,按照操作者的要求执行相应的动作。地面站系统应具有以下几个典型的功能:
1.飞行器的姿态控制
2.有效载荷数据的显示和有效载荷的控制
3.任务规划、飞行器位置监控、及航线的地图显示
4.导航和目标定位
5.与其他子系统的通信链路
系 统
各模块功能说明:
1.导航数据库
导航数据库是无人机地面站系统中极其重要的一部分。航点及航线信息、任务记录信息、系统配置信息、历次飞行数据等都保存在数据库中,用户在界面上操作,频繁读写数据库。
2.用户界面
用户界面模块是地面控制人员与无人机交互的窗口。用户界面是基于MFC框架的对话框,基于该对话框,添加了地图操控的ActiveX控件、虚拟航空仪表控件、菜单和MFC基本控件等,力求界面友好,操纵方便。
3.地图导航
地图导航模块是根据飞机下传的经纬度和高程信息,将飞机的当前位置标注在地图上,同时标注飞机的飞行轨迹。
4.串口通信
串口通信模块采用第三方串口通信类。地面站中实现了多线程、多串口的全双工通信,实时发送或接收数据。
无人机与地面站的通信
通过航线规划工具规划飞机飞行的线路,并设定飞行高度,飞行速度,飞行地点,飞行任务等通过数据口连接的数传电台将任务数据编译传送至飞控中,这里就有讲到数传电台,数传电台就是数据传输电台,类似我们嘴和耳朵一样,好比领导说今天做什么任务,我们接受到任务并回答然后再去执行任务,执行任务的时候时实情况实时汇报给领导,这其中通信就是嘴巴和耳朵。
数传电台就是飞机与地面站通信的一个主要工具,一般的数传电台采用的接口协议有TTL接口、RS485接口和RS232接口,不过也有一些CAN-BUS总线接口,频率有2.4GHZ、433MHZ、900MHZ、915MHZ,一般433MHZ的较多,因为433MHZ是个开放的频段,再加上433MHZ波长较长,穿透力强等优势所以大部分民用用户一般都是用的433MHZ,距离在5千米到15千米不等,甚至更远。最终达到的就是飞机与电脑间的通讯,电脑给飞机的任务,飞机实时飞行高度,速度等很多数据都会通过它来传输,以方便我们时时监控飞机情况,根据需要随时修改飞机航向。
MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)
Mavlink传输时的基本单位是消息帧。
如图所示,每个消息帧都是上述的结构,除了灰色外,其他的格子都代表了一个字节的数据。
红色的是起始标志位(stx),在v1.0版本中以“FE”作为起始标志。这个标志位在mavlink消息帧接收端进行消息解码时有用处。
第二个格子代表的是灰色部分(payload,称作有效载荷,要用的数据在有效载荷里面)的字节长度(len),范围从0到255之间。在mavlink消息帧接收端可以用它和实际收到的有效载荷的长度比较,以验证有效载荷的长度是否正确。
第三个格子代表的是本次消息帧的序号(seq),每次发完一个消息,这个字节的内容会加1,加到255后会从0重新开始。这个序号用于mavlink消息帧接收端计算消息丢失比例用的,相当于是信号强度。
第四个格子代表了发送本条消息帧的设备的系统编号(sys),使用PIXHAWK刷PX4固件时默认的系统编号为1,用于mavlink消息帧接收端识别是哪个设备发来的消息。
第五个格子代表了发送本条消息帧的设备的单元编号(comp),使用PIXHAWK刷PX4固件时默认的单元编号为50,用于mavlink消息帧接收端识别是设备的哪个单元发来的消息(暂时没什么用) 。
第六个格子代表了有效载荷中消息包的编号(msg),注意它和序号是不同的,这个字节很重要,mavlink消息帧接收端要根据这个编号来确定有效载荷里到底放了什么消息包并根据编号选择对应的方式来处理有效载荷里的信息包。
最后两个字节是16位校验位,ckb是高八位,cka是低八位。校验码由crc16算法得到,算法将整个消息(从起始位开始到有效载荷结束,还要额外加上个MAVLINK_CRC_EXTRA字节)进行crc16计算,得出一个16位的校验码。之前提到的每种有效载荷里信息包(由消息包编号来表明是哪种消息包)会对应一个MAVLINK_CRC_EXTRA,这个 MAVLINK_CRC_EXTRA 是由生成mavlink代码的xml文件生成的,加入这个额外的东西是为了当飞行器和地面站使用不同版本的mavlink协议时,双方计算得到的校验码会不同,这样不同版本间的mavlink协议就不会在一起正常工作,避免了由于不同版本间通讯时带来的重大潜在问题。
为了方便叙述,消息包将称作包,包所代表的信息称作消息。上图中的sys将称为sysid,comp将称为compid,msg将称为msgid。