基于DJI Mobile SDK的无人机航迹规划与欺骗方案设计*
2020-12-02顾曦文崔峰瑞
顾曦文 吴 琦 崔峰瑞
(1.91351部队 兴城 125106)(2.海军工程大学 武汉 430033)
1 引言
无人机技术发展日新月异,应用前景十分广阔,在军事侦察、航行拍摄、电力巡检,大气检测等领域都扮演着重要的角色。当前无人机定位导航主要依赖GPS等卫星导航系统,卫星信号格式公开且极其微弱,使得无人机飞行控制存在欺骗干扰的隐患。近些年无人机被欺骗的事例屡见不鲜。美国德克萨斯大学曾在美国国防部的支持下,开展无人机隐蔽欺骗技术研究,通过模拟渐变的GPS欺骗信号,对无人机进行飞行欺骗诱导,团队开展的演示验证试验取得成功[1]。在军事应用中,伊朗利用卫星信号欺骗技术曾两次分别截获美国RQ-170“哨兵”和“扫描鹰”无人机,在国际上引起较大轰动。2016年12月16日,所在团队参加了在南京举行的卫星导航信息安全技术联合试验专题活动,现场观摩了卫星导航接收机定位欺骗和民用无人机诱骗主动防御等系列实验[2],对无人机的欺骗技术研究产生了浓厚的兴趣,尝试开展无人机底层飞行控制技术研究,并在此基础上进行无人机欺骗原理分析和方案设计验证,旨在揭示无人机欺骗干扰的底层原因,引起无人机应用领域对飞行过程中安全防护的足够重视。
2 系统设计方案
2.1 总体方案设计
系统设计使用卫星回放器回放卫星信号的方式对无人机的飞控系统进行欺骗,来达到欺骗的目的。首先采用车载实验的方式验证采样与回放器的信息欺骗功能,为了能展现出欺骗效果,在进行无人机欺骗之前,先进行了无人机的航迹规划验证,之后提出了一种新的航迹欺骗的方案并进行了讨论。航迹规划中,硬件平台选用了大疆公司的DJI Mtrice100,由于其开发环境的开源性,所以能够通过调用函数库的方式来读取无人机的飞行信息,来全面的掌握无人机的整个飞行过程。最后,基于卫星信号回放技术,提出了一种无人机航迹欺骗演示方案。
使用DJI Mobile SDK的开发平台设计了无人机航路规划的程序,来进行无人机航迹规划。利用此程序来对无人机实现连接,并可以实时接收无人机位置信息并在界面上得以展现。接着在应用软件上进行航迹规划,使无人机可以按照预定的航路完成起飞、航行、降落过程。组成框图和场景模拟图如图1、图2所示。
图1 航路规划系统组成框图
图2 航路规划模拟图
在无人机航行过程中,利用卫星回放器对无人机进行欺骗,让无人机误以为到达目的地,从而直接进入降落程序,即完成了对无人机的欺骗。或者可以改变无人机的地图接收信息,在达到我方目的的基础上,传达错误的位置信息,使其降落在另一我方设置的目的地,完成飞行。组成框图和场景模拟图如图3、图4所示。
图3 航迹欺骗系统组成框图
图4 航迹欺骗模拟图
2.2 硬件平台搭建与开发
2.2.1 无人机平台
无人机模块采用的是大疆公司的DJI Matrice100(简称M100)型号的无人机。M100是一个专为开发者二次开发而推出的四轴飞行器,是一个可以满足开发者拓展需求的无人机平台。M100扩展机架采用模块化设计,可以在机身上安装各种设备,比如不同功能相机、各种传感器模块、图传设备,还可以搭载任意自己DIY的任务设备,实物图如图5。
图5 DJI Matrice100
2.2.2 卫星中频信号采样与回放器
对无人机的干扰信号的产生使用的是宇志通信的SAS6862A卫星中频信号采样与回放器。SAS6862A是一款可灵活配置的高速信号采样和存储系统平台。能够实现卫星中频信号的采样与回放,卫星导航定位接收机干扰、抗干扰的研究等研究。回放器示意图如图6。
图6 卫星中频信号采样与回放器SAS6862A
SAS6862A实现了对卫星导航信号的采集和回放,卫星导航信号的采集和回放就是可以采集任意时间某地的导航卫星信号,在欺骗地点使用采集到的信号回放模拟当时卫星的信号状态,从而进行欺骗干扰。
2.3 软件设计方案
利用DJI Mobile SDK开发的方式,自主设计一款软件在手机或平板上运行,可以实现对无人机的的飞行通过设置航路点的方式进行航路规划的程序,并且无人机的信息可以实时显示和保存。系统的算法流程图如图7。
图7 算法流程图
软件功能算法的实现如下。
导入DJI Android SDK Package:M100是一个专为二次开发推出的四轴飞行器,有关M100的操作大疆都做成了库的形式,开发者在开发过程中将包导入到工程,只需要对库里的接口、类或者方法进行操作就可以实现所需要的功能[3]。如图8所示。
图8 导入DJI Android SDK视图
申请DJI APP Key:DJI Mobile SDK开发APP,成功运行APP之前需要在大疆官网注册APP Key,并将APP Key在程序中注册。如图9所示。
图9 注册成功信息显示界面
dji.sdk.MissionManager:该包用于实现飞行器的运动控制。其中的库函数DJIWaypointMission:执行航路点任务,可以设置飞行器按照航路点飞行,在各个航路点调整不同的航向和飞行高度;
速度信息的获取:M100无人机的速度信息通过对DJI Flight Controller Data Type.DJIFlightControllerCurrentState类操作即可获取[4];
连接:通过无人机与遥控器之间的无线通信链路将M100自身传感器数据发送到遥控器端,遥控器端通过USB数据线与手机或者平板连接,再将数据通过USB数据线发送给手机,自主设计的软件读取手机接收到的数据,实时显示并保存;
地图信息:利用现在已有的Google地图作为基础,将Google地图转入自己设计的APP中,利用无人机上已有的天线,接受卫星发射的位置信息,以确定无人机自己的位置;
返航点的设置:将无人机起飞前的位置选在空旷平整,无较大电磁干扰的场地,对准飞机的传感器,并且设置为返航点;
航路点的设置:选择合适的位置作为飞机飞行的拐点设置为航路点,设置在该航路点的高度信息,速度信息;
运动轨迹:从终端接收到的无人机的位置信息,通过在软件上的显示,实时掌握无人机的位置,并且通过USB将APP记录的运动轨迹信息传入电脑中,进行解算;
在飞行开始时,打开软件界面,配置无人机与遥控器的信息,调整无人机的飞行参数,状态信息,设置航路点的个数,启动航路规划飞行模式,无人机就会自动的按照预定的轨迹飞行。
以简单的四点航路规划为例,简单说明一下我们自主设计的APP软件,图10为所设计的软件界面。
图10 软件界面
3 实验测试验证
3.1 干扰机欺骗实验验证
为了使无人机欺骗实验顺利进行,需要对卫星中频信号采样与回放器的性能进行验证,来达到预期的效果。因此对其进行了车载实验,初步掌握其工作原理。
通过采集信号后控制回放,模拟欺骗干扰源,在车载动态情况下进行了对商用手机导航软件的欺骗试验,验证了欺骗干扰对手机导航软件的欺骗效果,具体过程如下。车载实验平台如图11所示。
回放器供电由UPS电源提供,对手机上GPS软件进行欺骗实验验证;
在武汉市建设大道上利用卫星回放器采集了一段GPS信号并保存,作为模拟干扰信号;
当车行驶至武汉市二环线时,播放保存的建设大道上的卫星信号,播放信号后,手机GPS软件显示定位效果如图12,其定位位置错误,而且播放的卫星信号变强,如图13。
图11 动态欺骗干扰演示试验
图12 无人机的实际飞行
如图所示,在武汉市二环线上由于欺骗信号的播发,手机导航软件上显示了错误的时间,位置与卫星信息,其卫星信号明显增强,显然初步的地理信息欺骗已经得到验证。
3.2 无人机性能验证
选择在空旷的场地进行实际飞行的实验,经过遥控器的操纵方式,对无人机的掌控变得熟练,为后续的航路规划实验打下基础。图13为无人机实际飞行。
图13 设置航路点
3.3 设计软件性能验证
设计的程序可以实现航路规划的功能,对于功能能否实现,是否能稳定的控制无人机按照规定的航路点进行飞行,我们利用无人机按照规定的轨迹进行了测试。图13是试验时的软件界面,在界面上首先设置航路点作为无人机飞行的依据,随后启动软件,通过手机与遥控器连接的,将控制信息发送给无人机,可以清楚地看到,无人机按照规定的航路进行飞行。
设置完成后,点击开始的图标,无人机会自动的按照航路进行飞行,图14为无人机起飞时的软件界面,图15为飞机飞行到第一个航路点时的软件界面。
图14 无人机起飞
图15 无人机飞到第一个航路点
从实验的结果来看,自主设计的软件成功实现了对无人机飞行的航路规划,而且飞行平稳,操作简单,没有明显的失控现象,得出航路规划实验成功的结论。
3.4 无人机欺骗方案设计
3.4.1 无人机位置信息的提取
M100无人机提供的位置信息有两种,一种是纯位置信息,另一种是与IMU组合导航定位位置信息。其中位置信息包含在DJI Remote Controller.DJIRCGPSData类里,该类共含有8个变量,分别是accuracy代表定位误差精度;isValid表示定位数据是否有效;latitude代表纬度值,单位是°;longitude代表经度值;satellite Count代表卫星颗数;speedE-ast无人机东向速度;speedNorth代表无人机北向速度;time表示时间。通过DJIRemoteController.DJIRCGPSData类库函数的调用,输入get Altitude()返回无人机相对起飞位置的高度,输入getLatitude()返回无人机所处位置的纬度值;输入getLongitude()返回经度值。实现后的界面如图16所示。
图16 数据实时显示界面
根据提取出来的无人机位置信息,利用信号回放器,首先对无人机的导航接收天线进行欺骗实验,成功后,再进行飞行试验的模块。
3.4.2 欺骗方案设计
1)事先在无人机航迹规划目的地用卫星信号采集与回放器采集好时间、位置、卫星信息并记忆;
2)进行无人机航迹规划实验。设计好无人机的飞行路线。其中无人机的飞控原理为:自行起飞程序>>收集导航信号>>按照既定航路飞行>>到达目的地>>位置信息与目的地信息匹配>>自行降落程序;
3)在无人机按照航迹飞行途中,设置欺骗点。开启卫星信号回放器进行信号回放;
4)在航迹飞行途中无人机接收到卫星信号回放器信息,位置信息与目的地信息匹配,进入自行降落程序;
5)完成航迹欺骗。
4 结语
本文基于M100平台,开发出基于DJI Mobile SDK的无人机控制应用程序。可以对无人机进行实时控制,也可以接收在无人机上安装的导航模块发送的位置信息,更加直观,易于操作。
1)创新地进行了航路规划实验,避免了在实际操作中对无人机操作不慎而出现的飞行路线错误;
2)开展了航迹欺骗的设想,对现有设备进行了前期实验,并实现了初期位置信息的传输拦截与干扰,成功显现出错误的位置信息。
基于本文的研究结果,其可应用于如下方面:
1)航迹规划方面。可推广应用于气象、测绘、勘探等方面,方便大规模开展,节省人力;
2)航迹欺骗方面。主要应用于电子对抗干扰方面,军事上对敌方或者实战演练中,均可以在反侦测,反干扰方面作用。现如今,信息的掌握就是决胜的关键,能更加有力地保护己方信息,提高打赢能力;
3)揭示了现如今无人机导航模式存在的安全隐患,对于国防领域电力巡检、农业、应用无人机等领域卫星信息终端防护有启示意义;
4)军事上的无人巡航导弹,或者依赖GPS的舰船、无人机等,均存在被干扰、欺骗的可能,应尽早设置预警方案,或者开发出应对策略。