很多开发者在开发的时候会苦恼这个遥控器的事情,比如我们运行自己的应用的时候,遥控器又摁下了按键,那机器到底发送的是什么呢?这篇文章就是解决这些问题,也有可能一部分没有解决。不过还是先吐槽了,这部分的内容其实在OSDK内。。。但是大部分人使用的是MSDK,那肯定是找不到的。
USB+WIFI是主要的两种控制方式,WIFI使用的机型少
因为团队这里使用的是精灵4,这里就写一下这个。因为使用的是RTK版本,所以遥控器是带屏幕的,其实是不可以连别的手机了。写的程序只能放到内置的安卓系统里面。
遥控器的一些规格
注意,这里的USB不可以再连手机
https://dl.djicdn.com/downloads/phantom_4_rtk/20180918/Phantom_4_RTK_Quick_Start_Guide_v1.2_CHS.pdf
这里也写了
MSDK'控制飞机的方式,一般是第一种,但用手机操作就是WIFI,比较少
关于给无人机写程序需要注意的事情
连接的技术框图
遥控器的连接方式
注意使用AOA
一般是第一种
控制模式
MSDK和OSDK的数据交互
原来遥控器的GPS还有这样的技术在里面
DJI产品通过AOA(Android开放附件)协议连接Android移动设备。DJI官方应用程序和DJI Mobile SDK应用程序均支持该协议。将USB附件(DJI产品)连接至Android移动设备后,Android将自动打开支持该附件的应用程序,或已将其指定为该附件的默认应用程序。
这些编写程序时候需要注意的。
一些细节
我摘了一些感兴趣的方法在下面,都翻译过了,就不解释了。
相当于参数检查
视频源
还是来源
看小字就好
重要的内容:
DJI 无人机的飞行控制器能够根据实际的飞行状态和用户的需求,调整受控主体,无人机控制权限的等级由高至低依次为遥控器、基于MSDK 开发的移动端APP 和基于OSDK 开发的应用程序。(控制权限的声明)
在DJI 的控制体系中,DJI 遥控器的控制权限最高,可随时获取控制DJI 无人机的控制权。 开发者在P-定位模式下,可使用OSDK 控制无人机实现自动化飞行:
基于MSDK 开发的移动端APP 连接至DJI 的遥控器后,在P模式下,可控制无人机执行指定的飞行动作、接收无人机的状态信息及简单的飞行控制,如起飞、降落、相机控制或云台控制。
抢占式控制。
将运行了基于OSDK 开发的应用程序的机载计算机安装至DJI 的无人机后,用户在指定的模式下可实现对无人机的控制。 基于OSDK 开发的应用程序控制DJI 无人机的操作步骤如下所示:
DJI 的无人机在飞行时,若与遥控器或机载计算机断连,将按照如下逻辑执行控制无人机飞行: