一般而言,对接大疆的无人机的目的有如下方面:
l获取无人机飞行过程中的实时画面,用来直播
l获取飞机飞行数据(如实时高度,实时经纬度,实时飞机姿态等)
l获取飞机静态数据(如飞机基本信息、飞行记录、电池信息等)
l操控飞机飞行(如起飞、降落,改变高度,操作操控杆,设定航飞任务,拍照,录视频等)
l媒体管理(下载飞机记载内存卡中的文件等)
l其它业务功能开发(如态势感知,固件升级,多飞机集中管控等)
对接方式有如下:
l应用开发:MobileSDK,UXSDK,WindowsSDK
l设备开发:PayloadSDK,EdgeSDK,OnBoardSDK
l云开发:大疆智图API,上云API
l私有化服务:4G私有化增强图传服务
其中有些已经过时,停止维护(如WindowsSDK,IOSSDK,OnBoardSDK),着重介绍MobileSDK和上云API,MobileSDK也仅仅围绕Android,因为IOS版本已经废弃。
大疆无人机的构成由飞机和遥控器组成,对接大疆的无人机本质是对接遥控器,因为无人机和遥控器通信是私有协议而且是近场通信
飞机 <---> 遥控器 <---> 三方平台
l飞机和遥控器是私有协议进行近场通信
l遥控器和三方平台是IP链路进行通信,遥控器中有一个定制版的安卓系统
l三方平台指非大疆软件系统,即对接方系统
飞机 <---> 机场(dock) <---> 三方平台
Mobile SDK是一款软件开发套件,旨在让开发者能够访问DJI无人机和手持相机产品的丰富功能。该SDK通过兼顾更底层的功能,诸如飞行稳定,电池管理,信号传输和通信等,简化了应用程序开发的过程。这样,开发者就不需要具备丰富的机器人或嵌入式系统背景知识,而可以专注于DJI产品相关的行业应用开发。适用于基于android和ios的应用软件集成,目的是使用android/ios应用软件控制飞行器;获取飞行器数据(视频、图片、传感器数据)。移动应用、飞机遥控器、飞机的连接方式如下:
lV4V5不可以后台推流,当前页面必须有Surface画面渲染,不得最小化,跳转页面。
lV5支持RTMP(不支持RTMPS)、国标GB28181、RTSP和Agora声网(WebRTC),V4仅支持RTMP
l直播协议设置
nRTMP,需要setUrl。
nGB28181,需要setServerIP,setServerPort,setServerID,setAgentID,setPassword,setLocalPort和setChannel。
nRTSP,需要setUserName,setPassword和setPort(需要设置为8554)。
nAgora,需要setChannelId,setUid,setToken和enableSafety。
l拓展:本身DJI的H.264码流中的SEI字段在行业版V3固件以前是空的,在V3固件之后添加了信息,由于维护成本等诸多因素,我们不对外开放DJI的H.264码流的SEI的解析。我们了解到有的用户希望在H.264码流中的SEI中解析出无人机的地理位置和姿态信息,我们提供了更好的解决方案。
n如果你使用Mobile SDK与私有云连接,你可以通过Mobile SDK的接口获取这些信息通过移动设备的网络传输到私有云平台。
n如果你使用DJI Pilot 2与私有云连接,你可以通过上云API将这些信息通过移动设备的网络传输到私有云平台。
l通过KeyAircraftLocation3D可以获取飞行器的三维坐标,坐标系为WGS84,高度为相对起飞点高度。
l通过KeyAircraftAttitude和KeyAircraftVelocity可以获取飞行器的姿态和速度,坐标系为NED。
l通过KeyTakeoffLocationAltitude可以获取起飞点的海拔高度,该数据不精 确。
l通过KeyUltrasonicHeight可以获取飞行器底部的超声波模块的测距高度
l调用KeyStartTakeoff将使飞行器起飞。
l调用KeyStartAutoLanding将开始降落,飞行器降落到离地0.7米左右悬停。此时KeyIsLandingConfirmationNeeded将变为true,调用KeyConfirmLanding确认最终降落。
仅适用于android,ios,旨在加快移动应用的开发,提供了UI元素及开箱即用的组件。UXSDK实际上是使用MSDK的接口封装出来的具备MSDK功能的UI控件,所以它同样依赖MSDK。
制作UXSDK的目的是为了缩短开发者开发MSDK相关app的开发周期,通过我们预先制作好的控件,可以让开发者快速地开发出类似DJI Pilot的app。UXSDK 4.X,这个版本的UXSDK使用了很多MSDK内部(未开放)的方法,所以这个版本的UXSDK无法开源,由于UI控件无法做到高度的定制化,所以只能给啥用啥,4.16将会成为它的最后一个版本,后续再发版本只会发4.16.X的维护版本。
UXSDK 5.X,这个版本的UXSDK会被设置为开源版本,它将使用MSDK 5.X版本的所有对外接口、Key来实现。未来我们也会持续更新UXSDK 5.X版本,为其提供更加丰富的控件,由于其为开源版本,欢迎开发者对其进行定制化或者制作新的UI控件更新到公共社区。
UXSDK V5将会以开源框架的形式存在于官方Sample中,以后不再有UXSDK V5这个概念存在,开发者可以在MSDK V5的官方Sample中看到一个开源的类似DJI Pilot 2的UI开源框架。
DJI 上云 API 主要是采用业界通用的 MQTT、HTTPS 和 WebSocket 协议,把飞机的能力抽象成物联网设备的物模型,开发者可以很方便的基于这个物模型进行业务开发,同时不用去关心飞机本身复杂的飞行控制问题。此外,上云 API 内置到 DJI Pilot 2 和大疆机场中,开发者无需重新开发 App,即可把无人机接入云平台。
目前对于 DJI 无人机接入第三方云平台,主要是基于 MSDK 开发定制 App,然后自己定义私有上云通信协议连接到云平台中。这样对于核心业务是开发云平台,无人机只是其中一个接入硬件设备的开发者来说,重新基于 MSDK 开发 App 工作量大、成本高,同时还需要花很多精力在无人机功能接口适配上,从而导致整体的方案开发进度较为缓慢。
上云 API 的推出主要期望解决开发者重新造轮子的苦恼。对于没有 App 深度定制需求的开发者,直接可以采用 DJI Pilot 2 来和云平台通信,使开发商可以更加专注于上云业务接口的开发与实现。
l类型:目前有两种方式可以和三方云进行对接,第 一个是pilot2,它是遥控器上面的一个安卓程序;第二个是dock,它是大疆机场。
l信息传递流程为:飞机--->网关(带pilot2的遥控器 or 机场)--->三方云
机场上云需要借助遥控器内安装的 DJI Pilot 2。如下图示,开发者可按照 Pilot 内的指示一步步操作完成上云。在上云过程中,需要完成设备的检查(如急停按钮的检查、网络是否已经连接等)、将飞行器与机场对频、填写上云配置信息(如填写 MQTT 账号密码以实现 MQTT 连接)等操作。
目前一个机场只能用一个飞机
dock上云需要先通过Pilot2配置三方云平台登录界面,登录完成后拿到了三方云平台信息(mqtt服务地址,流媒体服务地址等),这些信息下发到dock,后续dock和三方云平台进行交互。
直播功能主要是把无人机相机负载和大疆机场的监控视频码流发给第三方云平台进行播放,用户可以方便的在远程web页面点击直播。直播功能支持直播的开始、停止、清晰度设置、镜头切换。第三方云平台需要预先部署MQTT网关以及流媒体服务器,DJI推流协议支持 Agora/RTMP/GB28181 等模式,其中MQTT网关主要用来做消息通信,配置信息设置和读取。
l上云api:每一个飞机都通过各自的网关(Pilot2app或者dock)连接到三方云平台
lMSDK:每一个飞机都通过与之配对的遥控器中的app(此app由非大疆公司开发)和私有云服务连接
l对接现成的平台:大疆司空2平台(目前为公有云产品无法私有化部署);已经实现了GBT28181的平台
公众号 扫码咨询
![]() |
上海市闵行区中春路4999号莘庄商务楼1326室 |
![]() |
service@covond.com |
![]() |
www.covond.com |
![]() |
交换机:18017588179(孙经理) 无人机:13311882358(孙总) |