刘 琨,黄大庆,韩玉洁,万思钰
(1.南京航空航天大学电子信息工程学院,江苏南京 210016;2.南京航空航天大学无人驾驶飞机研究所,江苏 南京 210016)
近年来无人机技术蓬勃发展,无人机与有人机相比拥有很多优点。例如,无人机的成本远低于有人机,并且无人机在执行任务时比有人机更加灵活,被敌方攻击时并不会像有人机一样造成飞行员的伤亡等。无人机在许多方面得到了大量的应用,例如对战场环境内目标的侦察监视[1]、多架无人机之间进行通信中继[2]、携带载荷对区域内的敌方目标进行精确打击[3]等,已成为未来智能化、无人化作战的重要手段之一[4-5],并且具有执行战场任务效率高、抗敌防击打能力强[6-7]等优点。
UAV 实际的应用场景是较复杂的战场环境,战场环境中存在着各种地形威胁、敌方威胁等。单架UAV 由于自身性能更容易受到各种限制,例如航行时间限制等,所以目前主要作战的形势是多架无人机一起共同合作去执行战场中复杂的任务[8]。多架无人机共同合作组成无人机群执行战场任务是目前无人机作战应用的重要模式[9]。单架无人机与多架无人机协同执行作战任务相比较,在无人机数量和协同配合方面处于劣势[10]。当地方区域内火力攻击我方正在执行任务的UAV 时,若只有一架UAV 执行任务,则该UAV 被击中坠毁造成任务失败的可能性远远大于多架UAV 协同执行某一任务。在复杂的战场环境下,为了完成一定的复杂任务,我方派出多架无人机协同合作共同搜索寻找地方区域中存在的目标并且进行无人机最优飞行航迹的规划。文中针对以上问题,提出一套多机协同搜索问题的完整解决方案,设计了多UAV 协同搜索系统的操作系统,并且给出了详细的软件设计细节。
在敌我双方作战过程中,需要了解敌方区域内目标位置、各种威胁信息等,这样才能掌握敌方区域情报。UAV获取敌方区域信息的方式叫做侦察,进行战场区域内的敌方目标搜索是侦察方式的一种[11],执行搜索任务的目的是尽可能多地发现战场区域内存在的未知敌方目标、降低未知战场环境的不确定度。
图1 表示多UAV 协同区域搜索的任务场景,假设战场区域内的敌方目标和各种威胁的位置信息是未知的。我方派出多架UAV 自身携带机载探测传感器,同时假设UAV 具备一定的自主控制力和决策力,集群UAV 之间可以进行通信,多架UAV 在战场环境下进行目标搜索航迹规划任务,由此获取敌方的目标位置信息和战场区域内的各种威胁信息。
图1 UAV飞行场境
1.2.1 单架无人机系统架构
单架无人机系统架构如图2 所示。
如图2 所示,由于合适的CPU 可以为上层处理算法奠定基础,所以选择合适的CPU 对后续系统的搭建至关重要。
图2 单架无人机系统架构
执行任务的过程中,不需获取UAV 飞行过程中的姿态角、俯仰角等信息。驱动层的作用是支持无人机获取飞行姿态等信息,与此同时,UAV 自身携带的探测传感器还需要添加GPS、云台相机、无线通信等模块。系统层主要进行任务调度和控制协调,对集成的软硬件进行分配,处理获取的传感器数据并控制人机交互和姿态。应用层可以分为UAV 搜索、在线决策、信息交互3 个模块。UAV 集群搜索是在未知环境下实现感知与目标追踪,信息交互是指在多UAV 之间、UAV 与地面站之间实现信息共享,从而实现战场信息共享和任务协同,UAV 之间需要共享的信息包括自身在执行任务过程中的位置信息、搜索到敌方目标的位置信息等。
1.2.2 信息交互
由于系统是多UAV 协同执行任务,所以UAV 在空中不仅需要进行数据采集,并且要在空中与其他UAV 进行信息交互。信息交互需要考虑数据融合和网络连接两个方面。数据融合指与其他UAV 共享和融合采集到的数据,生成完整的环境图片,进而完成对未知环境的目标搜索过程;网络连接是指UAV集群之间、UAV 与地面站之间的通信。图3 为UAV集群之间、UAV 与地面站之间进行信息交互的示意图。为了能够持续不断地进行机间通信,每架UAV之间的距离都不能超过通信设备的最大通信限制距离。
图3 信息交互系统示意图
信息交互系统由地面站、UAV和数据传输模块组成。根据定位系统将自身UAV 位置通过无线传输模块传给地面站和集群内其他UAV,同时根据多UAV 协同搜索系统中的通信机制,将各自搜索到的战场区域的信息进行融合,并且通过数据传输模块将多UAV 对战场区域的搜索结果发送给地面站进行显示。
文中系统的硬件平台采用图4 所示的四旋翼和六旋翼无人机,同时UAV 机载云台相机以此获取高分辨率的图像,同时利用机载计算平台搜索到敌方目标所在位置的信息,同时将获取到的数据通过数传电台传回地面,地面需要配备一台基于Windows操作系统的笔记本用来接收从空中实时传输回来的数据。表1 为四旋翼和六旋翼硬件参数。
表1 无人机结构和性能参数
图4 M100四旋翼和M600六旋翼
多架UAV 在航飞的过程中通过自身携带的GPS测量获得自身的位置信息,同时与其他UAV 进行机间信息交互共享探测到的区域内的信息[12],因此该导航采取在线处理方式。Manifold 妙算实物图像如图5 所示,Manifold 妙算的基本参数如表2 所示。
图5 Manifold妙算实物
表2 Manifold妙算结构和性能参数
在UAV 视觉导航中,获取画面清晰、高质量、不失真的图像起着至关重要的作用。系统通过在UAV上加入Zenmuse X3 云台相机载荷,来获取高质量、清晰的图像。这个云台相机像素为1 240 万,每秒可全像素拍摄7 张画面,可以满足系统视觉导航的设计需求。Zenmuse X3 云台相机如图6 所示,性能参数如表3 所示。
表3 Zenmuse X3云台相机结构性能参数
图6 Zenmuse X3云台相机
机器人技术的迅速发展使得对机器人模块代码复用率的需求逐渐增强[13],ROS(Robot OperatingSystem)是基于提高模块化利用率设计的机器人操作系统。ROS 并不是实际的操作系统[14],ROS 用来为多UAV 协同搜索系统提供操作系统功能框架和一些需要的工具集[15-16]。系统中,每个任务是由不同节点负责的,节点与节点之间通过逻辑通道进行消息的传递,从而实现节点之间的通信。图8 为多UAV 节点状态示意图,A和B 为两个异构UAV,UAV内部的各个节点可以通过逻辑通道进行通信,同时无人机A和无人机B 之间也可以通过逻辑通道进行通信。
图7 多UAV节点状态示意图
文中在设计多UAV 协同搜索系统软件部分时,将软件部分分为视觉检测识别、集群控制、UAV 飞行任务管理3 个模块,如图8 所示。
图8 系统软件模块依赖关系图
多UAV 执行协同搜索任务过程中,首先要设置多架UAV 在同一时刻起飞,基于鲸鱼算法对待搜索区域执行搜索侦查任务,并且将搜索侦查过程中怀疑是目标点的位置进行标记。集群控制模块同时将标定的信息地图发送给智能决策模块;UAV 对待搜索区域的遍历、地面站对数据信息的接收和对控制指令的发送等功能都是由集群控制模块控制的。UAV 飞行状态的更新是由地面站向集群控制模块发送信号进行控制的。
The authors are grateful to CINVESTAV del I.P.N. for providing the resources to carry out this work.
3.2.1 视觉检测识别模块
视觉检测模块总体流程如图9 所示。
图9 视觉检测模块总体流程
3.2.2 UAV飞行任务管理模块
多UAV 协同搜索系统中需要不同的应用程序拥有不同的能力来完成各种任务。执行UAV 飞行任务管理模块前,需要得到UAV 开发者权限,DJISDK 负责提供相应的函数接口,地面站调用的函数在模块中进行封装。当获得控制权后,UAV 将启动电机同时进行初始化和通信连接,利用DJI-SDK 接口获取UAV 飞行参数,完成一系列飞行操作。
UAV 飞行阶段的任务流程管理示意图如图10所示。
图10 飞行任务管理系统示意图
飞行任务管理模块的功能为获取各个UAV的信息,例如各UAV的位置信息、速度大小和姿态角等;建立全局信息目标概率地图,为了发送UAV 信息同时接收控制指令还需要与地面站建立通信连接;规划任务流程,进行航迹规划覆盖搜索区域。
3.2.3 集群控制模块
集群控制模块中订阅与发布的关系如下:协同控制节点发布期望速度信息与本机实际速度和位置信息,订阅其他UAV 信息和实际自身信息,该节点功能是运行协同控制算法。通信节点订阅所有UAV信息、任务信息、路径信息和本机速度与位置,发布所有UAV 信息并且发布路径规划初始参数。飞行控制节点主要进行飞控程序的运行,订阅期望UAV速度信息,发布实际自身位置、速度等信息。任务分配节点主要运行任务程序,订阅所有UAV 信息,发布需要执行的任务信息。航迹规划节点主要运行航迹规划算法程序,发布路径信息。
在UAV 系统中,UAV 与地面软件系统之间需要进行频繁的数据交换和信息交流。地面软件系统可以通过数传电台与无人机进行通信,实时在线获得UAV 位置和性能数据。地面站系统会根据UAV 在执行任务的过程中通过GPS 所获取自身的航迹进行展示,并且地面站可以设置每架UAV 飞行的航迹点等。在地面站上设置搜索区域,控制UAV 完成搜索任务。
首先,确认UAV 是否能正常飞行;然后,在UAV上安装机翼和通信模块;最后,启动地面站。使用数传或者数据线连接飞控,点击设置航线,增加航点和起飞降落点,最后上传航线规划,然后点击一键起飞,UAV 将按照设置的航线进行区域内的目标搜索,然后将规划的UAV 飞行航迹通过界面显示出来。
文中首先根据实际战场情况,模拟搭建了飞行场景,并且按照实际系统需求搭建了硬件平台;然后提出了多架UAV 协同合作对某一任务区域执行搜索任务的操作系统,并对系统结构进行了搭建与分析;最后设计了一个用于进行UAV 调试的地面站软件。文中在搭建硬件平台的同时,描述了相关模块的设计与选型。提出的多UAV 协同区域搜索系统是基于机器人操作系统设计的,同时又将该系统详细的划分为视觉检测识别、集群控制、UAV 飞行任务管理三大模块。最后设计的地面站软件用来进行UAV 飞行数据的处理、设置指令对飞行任务进行命令控制,并且显示UAV的飞行航迹。