罗俊婷, 杨永侠, 李 琳
(西安工业大学 电子信息工程学院, 陕西 西安 710021)
随着机器人的应用和发展,机器人在各个领域发挥着越来越重要的作用。由于机器人面临的任务愈发复杂和困难,针对单一机器人进行重大突破具有投资高、耗时长的问题,异构机器人协同被人们提出,通过不同结构的机器人协同[1],完成单一机器人无法完成的复杂任务。一个稳定、可靠、友好的地面监控平台是异构机器人协同系统的重要组成部分。本文就空地机器人协同系统为研究目标,设计稳定、可靠的通信链路和通信协议,以及界面友好的地面平台软件,使其具有实时图像显示、系统状态数据显示和存储、对空地机器人指令控制等功能[2]。
空地机器人协同系统由空中无人机、地面无人车群、地面监控平台3部分构成。无人机对无人车进行自主识别与跟踪,将遥测数据、图像信息通过无线数传模块和视频发送模块传输给地面监控平台,并根据所接收到的地面监控平台控制指令对飞行状态进行相应调整。
地面无人车群在向地面监控平台所指定的目标点移动过程中,根据环境自主调整队形完成避障,把领导者无人车采集的视频及数据传输给地面监控平台,通过接收地面监控平台控制指令,对无人车群编队运行状态进行调整。
地面监控平台通过无线数传模块接收无人机和无人车群的遥测信息,并对数据进行解析处理,实时显示到软件界面,通过图像接收模块接收两者各自采集得到的图像并实时显示出来,通过数传模块发送目标点位置,还能够根据接收到的图像信息,对无人机和无人车发送相应控制指令,实现对其实时控制。
本文所实现的地面监控平台[5]结构框图如图1所示。分为通信设计和监控软件[6]两部分来实现系统功能。
图1 地面监控平台总体结构框图
通信设计包括无线数据传输和无线视频传输两部分。数据传输采取全双工的串口通信方式来实现监控平台与无人机和无人车之间的通信任务,同时实现对机器人遥测数据的接收和控制指令的发送。无人机下传数据协议为MavLink[7](Micro Air Vehicle Link)通信协议,其为一个专为微型空中飞行器设计的信息编组库。无人车下传数据通信协议制定如图2所示,无人车为地面监控平台发送3辆无人车的坐标位置信息,每格代表长度为1 Byte,包括帧头、帧尾、有效载荷和校验,每帧数据长度为18 Byte。其中帧头为0x02、0xA6,帧尾0x0D、0x0A,CKA和CKB分别代表对有效载荷进行CRC(循环冗余校验)的低8位和高8位,有效载荷为12 Byte,分别为3辆小车的X轴、Y轴坐标的整数和小数部分。地面监控平台的上传数据则采用简便的仅包含帧头帧尾和有效载荷的通信协议。视频传输则采用5.8 G传输方式,由摄像头、图传发射机、图传接收机、采集卡组成,采集卡通过USB接口与计算机进行连接。此频段设备受外界干扰较小,且传输距离远,实时性高。
图2 无人车下传数据通信协议
监控软件在VC++环境下采用MFC框架完成,设计了简洁完整的操作显示界面,实现显示和控制功能。
2.2.1 遥测数据显示
图3 串口接收数据处理流程
软件串口通信[8]编程采取基于多线程的第三方提供的串口通信类CSerialPort[9],无人机端通过MavLink的33号消息GLOBAL-POSITION-INT来解析出无人机GPS位置信息,即经度、纬度、高度,30号消息ATTITUDE解析出姿态信息包括滚转角、俯仰角、偏航角,74号消息VFR-HUD解析出空速、地速。无人车端通过解析无人车端下传数据通信协议消息在软件界面显示出无人车群的位置坐标信息。为了更加明了直观的显示无人车群编队变换轨迹,使用TeeChart控件根据3辆无人车坐标位置信息描绘其运动轨迹图。图3为串口接收数据处理流程图。
2.2.2 视频显示
视频显示采用Directshow编程技术。Directshow[10]是微软公司推出的,能够对本监控平台选用的支持WDM驱动模型的便携式USB图像采集卡来进行多媒体流的捕捉处理及保存。在软件界面上能够显示无人机和无人车上搭载的摄像头视频信息,通过改变图传频道可切换显示无人机及无人车群实时运作状态。
2.2.3 命令控制
无人机与无人车的控制均由地面监控平台通过无线数传模块发送串口指令实现。无人机端的控制通过地面监控平台发送MavLink协议流中的悬停指令来实现特殊情况下的紧急悬停。无人车端控制为无人车群设定目标位置坐标打包发送,可以直接按键控制无人车的上、下、左、右、行进及停止。数据显示部分也采用上述串口通信类CSerialPort来实现。
2.2.4 数据存储
无人机和无人车的遥测数据采用SQLServer数据库存储。VC++提供的常用数据库访问技术有ADO、ODBC两种,本监控平台软件采用ADO方式访问数据库,将飞行数据进行存储并进行后续的数据查询分析,视频的存储采用directshow开发方法进行存盘。
监控软件界面实验结果显示如图4,主要有3个功能显示部分:(1)无人机参数显示部分,该部分主要显示无人机的飞行姿态参数,如滚转角、偏航角、俯仰角、位置信息及速度,并且设计紧急悬停键,可以实现无人机的悬停功能;(2)无人车参数显示、控制按钮、轨迹显示部分,该部分主要为无人车群的位置坐标、运行轨迹的显示,设定无人车目标位置,同时可以对无人车进行上、下、左、右和停止控制;(3)实时视频显示及保存。
图4 软件界面图
通过模拟数据测试及试飞实验测试结果表明,该监控平台室外通信距离达2 km,视频显示分辨率达720×576,延迟小于0.5 s,具有实时性强、稳定性好、人机界面友好等优点。监控平台实现了视频与遥测数据的实时传输显示以及用户远程实时监控空地机器人。
[参考文献]
[1] 陈炜,马利,陈吉保.机器人远程控制系统的设计与实现[J].制造业自动化,2016,38(2):67-70.
[2] 李丹.基于视觉的空地机器人协作方法研究[D].沈阳:沈阳理工大学,2013.
[3] 祝甜一,赵忠辉,谈英姿,等.机器人远程监控平台的设计与实现[J].工业控制计算机,2015(4):45-47.
[4] 吴军,徐昕,连传强,等.协作多机器人系统研究进展综述[J].智能系统学报,2011,6(1):13-27.
[5] 刘洋,韩泉泉,赵娜.无人机地面综合监控系统设计与实现[J].电子设计工程,2016,24(14):110-112.
[6] 周焱.无人机地面站发展综述[J].航空电子技术,2010,41(1):1-6.
[7] KAYAYURT B,YAYLA I,YAPICI A,et al.Ground control station avionics software development in ANKA UAV[C]//Digital Avionics Systems Conference IEEE,2011:5B6-1-5B6-7.
[8] 房鑫言,芦利斌,谭力宁,等.对无人机地面站软件设计的两种常用方法的比较[J].现代计算机,2012(9):59-62.
[9] 王婧宇,贾秋玲,付玮.基于VC++的无人机便携式地面站设备的设计[J].电子设计工程,2014,22(4):39-42.
[10] 赵炯,陈力.利用VC++实现基于DirectShow的视频播放器开发[J].成都大学学报(自然科学版),2011,30(4):349-352.