虚拟摇杆教程
Sample 介绍
虚拟摇杆功能模拟了遥控器的操纵杆的工作,发送摇杆命令以模拟手动飞行来实现自动飞行。通过虚拟摇杆功能,用户可以开启或关闭虚拟摇杆模式,获取或设置虚拟摇杆杆量,添加虚拟摇杆状态监听,使用虚拟摇杆的高级模式。
注意:
- 使用虚拟摇杆功能,需要飞行器不处于任何自动任务中,并且遥控器处于 “普通档”,如 M3E/M3T 机型的配套遥控器的 N 档。
- 若 M3E/M3T/M3M 机型固件版本低于 V7.01.10.03,在虚拟摇杆模式启动时,视觉避障不生效,建议升级到最新固件版本。
虚拟摇杆高级模式
虚拟摇杆高级模式开启后,左摇杆 getLeftStick()
和右摇杆 getRightStick()
的控制数据将不再生效。可以通过倾角控制模式、偏航控制模式、垂直油门控制模式以移动飞行器。
- 横滚俯仰控制模式:以速度模式或角度模式对横滚轴和俯仰轴设置,使飞行器产生水平方向位置的变化。
- 偏航控制模式:以角速度模式或角度模式对偏航轴设置,使飞行器的航向产生变化。
- 垂直油门控制模式:以速度模式或高度模式发送命令,使飞行器产生垂直方向位置的变化。
虚拟摇杆相关的无人机知识在 飞行控制器 章节做了介绍。高级模式可设置的参数以及参数范围,请阅读虚拟摇杆管理类 IVirtualStickManager。
控制权说明
飞行器当前的控制权所有者会被监听,同时被监听的还有虚拟摇杆是否开启,虚拟摇杆高级模式是否开启。虚拟摇杆模式开启期间,控制权所有者为 MSDK。若开启期间控制权被抢夺,需要重新开启虚拟摇杆模式夺回控制权。
说明: 下面提及的 OSDK 即指当前的 PSDK。在 PSDK V3 版本时,OSDK 合并到 PSDK 并统称 PSDK,统一维护。更多信息可以阅读 PSDK 教程文档。
- M30 系列及后续机型:无论控制权在遥控器或 OSDK,MSDK 侧调用
enableVirtualStick()
都可以获取飞行控制权,调用disableVirtualStick()
则把控制权释放给遥控器。 - M300 RTK:MSDK 侧只能从遥控器处获取飞行控制权,如果从 OSDK 处抢夺控制权则会触发飞行控制权混乱。此问题为固件问题,暂无修复计划。
接口调用流程
下图为虚拟摇杆接口调用流程示例,无需每步参照,请视实际情况调用。详细的使用方法请查看 Mobile SDK API 文档中的虚拟摇杆管理类 IVirtualStickManager。
注意:
- 通过
sendVirtualStickAdvancedParam()
发送高级控制参数前,需要通过setVirtualStickAdvancedModeEnabled()
先开启虚拟摇杆高级模式。- 虚拟摇杆高级模式开启后,左摇杆
getLeftStick()
和右摇杆getRightStick()
的控制数据将不再生效。- 开发者可以根据自己的需求按照特定的频率发送控制参数,建议发送频率在 5Hz 到 25Hz 之间。
.png)