很多开发者在开发的时候会苦恼这个遥控器的事情,比如我们运行自己的应用的时候,遥控器又摁下了按键,那机器到底发送的是什么呢?这篇文章就是解决这些问题,也有可能一部分没有解决。不过还是先吐槽了,这部分的内容其实在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 控制无人机实现自动化飞行:
在P模式下,无人机依靠GNSS 和视觉定位系统避障保障无人机飞行的安全性;
在无人机执行任务时,用户使用遥控器能够控制无人机,改变无人机的飞行状态:
在航点任务中,用户使用操纵杆能控制无人机的飞行速度和偏航角度;
热点任务:用户使用操纵杆能控制无人机执行任务的速度、飞行半径(执行热点任务)、飞行方向和偏航角度。
基于MSDK 开发的移动端APP 连接至DJI 的遥控器后,在P模式下,可控制无人机执行指定的飞行动作、接收无人机的状态信息及简单的飞行控制,如起飞、降落、相机控制或云台控制。
在P模式下,使用基于MSDK 开发的移动端APP 向无人机发送控制指令。
当使用基于MSDK 开发的移动端APP 向无人机不再发送控制指令时,遥控器会获得无人机控制权。
基于OSDK 开发的应用程序在控制无人机执行指定的任务时,基于MSDK 开发的移动端APP 可抢占该应用程序对无人机的控制权,优先控制无人机执行指定的动作,确保无人机和用户的安全。
抢占式控制。
将运行了基于OSDK 开发的应用程序的机载计算机安装至DJI 的无人机后,用户在指定的模式下可实现对无人机的控制。
基于OSDK 开发的应用程序控制DJI 无人机的操作步骤如下所示:
调整飞行模式为P 模式
激活基于OSDK 开发的应用程序
获取控制DJI 无人机的控制权限
DJI 的无人机在飞行时,若与遥控器或机载计算机断连,将按照如下逻辑执行控制无人机飞行:
当用户仅使用遥控器控制DJI 的无人机执行飞行任务时,若DJI 的无人机和遥控器信号中断,DJI 的无人机会按照开发者在DJI Pilot 或基于MSDK 开发的移动端APP 上设置的断连控制策略执行相应的控制动作。
当用户使用遥控器并接入机载计算机控制无人机飞行时,无人机将按照机载计算机中的逻辑自动执行飞行任务,如需使用遥控器控制无人机,请先切换档位(随机切换即可)再控制无人机;若机载计算机与DJI 的无人机信号中断,则需开发者指定对应的控制策略,如悬停、降落或返航,请开发者务必启用安全返航功能,确保机载计算机与DJI 的无人机在连接中断时能按照指定的返航策略安全返航,如图启用无人机安全返航功能。