1. 引言
目前,民用无人机已经迎来产业化浪潮 [1],无人机正在渗透进越来越多的行业,虽然无人机具有许多不可比拟的优势,但是不可否认的是,由于无人机电池技术始终没有出现突破性的技术革命,无人机飞行时间过短直接影响到无人机机载设备的使用 [2]。现有的无人机机载设备智能化程度低,无法完成复杂任务等缺点严重阻碍了无人机在各行各业中的使用。
目前的多旋翼无人机均以地面站人工遥控的控制方式为主,即操作人员需要在无人机飞行过程中对无人机进行包括航点规划 [3] 、姿态控制、镜头控制在内的多种操作进行控制。而无人机采集的数据存储在机载设备中 [4],需要操作人员在无人机返航后,利用指定软件进行后续分析。无论是飞行过程中的遥控,还是返航后的数据分析 [5],无人机的使用均对操作人员的分析判断能力、数据分析能力以及专业软件使用能力有着一定的要求,这也是现阶段无人机目前迟迟无法得到有效普及的重要原因 [6]。其次现有的无人机通用性极差,消费级无人机通常只有简单的拍照能力,基本无法执行复杂的功能 [7]。而专业级无人机通常都是针对某些场景进行定制,比如针对现代农业所定制的农用无人机,虽然具有播撒农药 [8],确定农作物生张状况等等功能,但却基本无法再加入其他功能,而一架专业级无人机价格又十分昂贵,导致了社会资源的极大浪费。
鉴于以上原因,本文在设计系统过程中,通过软件和硬件将无人机和云的强大计算能力结合起来 [9],从而将云端的强大计算能力和无人机实时的测量,拍照能力结合起来,使得无人机具有比以往更加强大的信息处理能力 [10],这对目前克服无人机功能单一,死板的缺点具有重要的意义。
2. 文章概述
对于本论文所研究的无人机云操作系统,总的来说,本套无人机云操作系统主要由系统云端部分和系统本地部分组成两大部分组成,其中云端部分为系统的核心部分。系统云端部分,系统的云端部分分为云服务器和图像处理中心。系统的本地部分共分为系统地面部分和系统的空中部分,地面部分为地面站,和智能模块,空中部分为无人机终端为其系统框图如图1所示。
在整个系统中,首先是地面站的操作人员向云服务器发送某个指令,随后云服务器再将指令打包发送到智能硬件模块,由智能硬件模块控制无人机的飞行姿态并获取无人机的实时飞行数据和相机拍摄的图像信息。随后智能硬件模块和远程云服务器进行通信,将获取到的无人机状态信息和图像数据发送到云服务器,并由远程云服务器将无人机的飞行状态实时推送到地面端的地面站,智能硬件传输的图像信

Figure 1. The block diagram of the system
图1. 系统总体框图
息将由图像处理中心进行与地面端发送到的命令相对应的处理,然后将处理的结果推送到地面站。
3. 系统云端部分
3.1. 云服务器
云端部分为整个系统的关键,是整个系统的数据存储和数据处理中心。整个系统云端部分可按功能分为两个部分,分别是数据库和图像数据处理中心。数据库主要存储经过智能硬件模块采集到的飞机的数据。而图像数据处理中心主要负责对图像数据进行各种处理,从而实现各种定制功能。其中云端部分的结构框图如图2所示。
云操作系统与普通电脑中运行的操作系统相比,就好像高效协作的团队与个人一样。个人在接受用户的任务后,只能一步一步地逐个完成任务涉及的众多事项。而高效协作的团队则是由管理员在接收到用户提出的任务后,将任务拆分为多个小任务,再把每个小任务分派给团队的不同成员;所有参与此任务的团队成员,在完成分派给自己的小任务后,将处理结果反馈给团队管理员,再由管理员进行汇聚整合后,交付给用户。
本文中利用阿里云进行数据的交互,系统云服务器主要获取并存储来自无人机智能控制模块的数据。服务器存储的数据主要是无人机的型号,ID,IP,电量信息,X,Y,Z轴方向的速度,yaw偏航角,pitch俯仰角,roll翻滚角,视频流和图像以及无人机的GPS信息。在Linux系统下利用ROS无人机操作系统进行数据获取,之后利用云服务器强大的数据处理功能实现相关的人脸识别检测、全景图像的动态融合以及定位跟踪。其中云服务器的部分功能如图3,图4所示,图中数据是无人机数据与云服务器直接连接的各个数据的测试以及传输图片的基本信息。
3.2. 图像处理中心
图像处理中心主要处理来自无人机的图像信息。图像处理中心根据所进行的任务的不同采用不同的图像处理算法,目前已经开发出全景图动态融合,人脸识别等等功能。功能图如图5所示。
由于无人机与云服务器之间进行实时通信,服务器得到的图像都是无人机实时采集的图像,随后由图像处理算法进行处理,得到的结果将会实时推送到系统地面站操作人员身边。图像全景拼接的效果图
如图6所示。其中左图为四张无人机拍摄西电新校区礼仪广场的图片,右图的为合成出的图像。
4. 系统本地部分
系统本地部分由三部分组成,分别是:普通无人机,智控模块,用户终端。普通无人机用于采集图像信息,然后由智控模块将采集到的图像信息上传到云服务器,云服务器将信息处理并打包后又重新将数据打包发送到手机APP,由APP解数据包之后推送给地面站控制人员。
地面部分结构
1) 普通无人机
普通无人机是指具有一定航拍能力以及视频图像传输功能的机器人。现阶段采用的是大疆公司的M100和法国parrot公司的AR.Drone 2.0,分别如图7和图8所示。
2) 智控模块
智控模块 [11] 分为两个小模块,分别是无人机信息采集以及控制模块和信息传输模块。无人机信息采集控制模块主要采集无人机 [12] [13] 电量,ID,IP,X,Y,Z轴的速度,无人机GPS等信息,以及无人机摄像头回传的图像信息。信息传输模块主要向服务器发送无人机的无人机电量,ID,IP,X,Y,Z轴的速度,无人机GPS位置信息,以及无人机摄像头回传的图像信息。
本文以parrot公司的AR.Drone 2.0为例,简介智能模块获取并向远程服务器端发送无人机状态信息

Figure 5. Image processing center function diagram
图5. 图像处理中心功能图

Figure 6. Panoramic synthetic effect diagram
图6. 全景合成效果图
和图像信息的流程。智能模块获取无人机状态信息和图像信息。
智能模块获取无人机状态信息主要是无人机信息采集模块。无人机信息采集模块内部安装一个Ubuntu14.04系统,同时安装indigo版本Robot Operating System (ROS)。ROS (Robot Operating System,机器人操作系统)提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、
设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。大疆无人机功能包自带的SDK包含了可供调用飞机实时状态的函数,如ardrone_autonomy::Navdata等,是ROS系统中用于传输导航定位数据的函数包库,里面包含一系列的数据Update frequencies,batteryPercent等;同时还有调用无人机图像信息的函数,作用是用于回调图像信息,如图9所示。所拍摄的图像是在武汉的客户端发送指令到北京的服务器,北京的服务器再将命令转发到无人机所在的西安电子科技大学北校区,操作无人机所拍摄的图像信息。发送无人机状态信息和图像信息。
信息传输 [6] 模块主要负责无人机和云服务器的通信。信息传输模块应用4G通信,通信延迟小,能及时将本地采集的信息发送至远程云服务器,并接受命令。主要的技术在Linux系统下加载4G通信模块,使计算机能够使用4G网卡进行实时数据传输。随后使用大疆提供的Manifold机载操作系统,加装4G通信模块,使定位数据、视频流以及图像等能够实时的与云操作系统进行数据交互。使无人机数据传输摆脱传统的遥控器,直接与云服务器进行传输。由于大疆无人机数据保护性比较强。所以直接从获取的视频流的接口截断,用4G进行数据发送。所用模块如图10所示。
3) 用户终端
用户终端分为手机APP和网页,用于显示无人机的各项数据并对无人机进行各种操作,完成各种规定的动作。如图11所示,为手机APP的回传图像的界面。
手机APP主要负责与云服务器通信,发送操作人员的命令,并从服务器端接收数据并且显示。使用网页也可随时获取自己无人机的数据。

Figure 9. Unmanned aerial vehicle image acquisition
图9. 无人机图像获取

Figure 11. Mobile APP return image interface
图11. 手机APP回传图像界面
5. 总结与展望
传统的对无人机操作的设备大多为手机遥控器或者控制飞机飞行姿态以及回传图像的手机APP。操作方式主要以地面遥控为主,消费级的无人机功能简单,基本只可供人与娱乐。专业级的无人机功能又过于单一,使得设备的通用性太差,而且价格昂贵,用户承受能力过低,使得无人机的实用性也受到了很大影响。而一些国外厂商所提供的一些基于无人机的云服务软件都需要无人机降落以后,将无人机拍摄的图像视频数据从无人机的SD卡中拷贝出来,再上传到自己的服务器,这样使得对图像进行分析就缺少了实时性,会导致很多不必要的麻烦。而本文所介绍的无人机云操作系统完美的解决了上述问题。首先使用智能通信模块将无人机和云服务器连接起来,不但使得无人机可以实现更多的功能,并解决了国外厂商无法对无人机图像进行实时处理的缺点。
基金项目
国家自然科学基金资助项目(61571346)。
参考文献
NOTES
*通讯作者。