MDSK-MDSK-FlightController的使用
MDSK-FlightController
- FlightController的使用
- 类的功能
- State Updates状态更新
- To Determine 获取状态
- Sensors传感器
- Sub Components 子组件
- Flight Assistance飞行协助
- Flight Actions 飞行动作
- LED Settings
- Virtual Sticks虚拟遥控
- Home降落点
- Flight Mode飞行模式
- 总结
FlightController的使用
class FlightController extends BaseComponent
飞行控制器继承自BaseComponent,我们首先介绍一下这个父类。
DJI产品中组件的抽象类。组件可以是相机,万向节,遥控器等.DJI产品由几个组件组成。产品的所有组件都是子类,BaseComponent可以直接从产品对象(Aircraft或HandHeld)访问。
这里引入了组件的概念,在整个生态中,把相机万向节等都认为是飞机的一个组成部分,叫组件,每个组件有单独的固件版本和编号。
具体的组件有:
FlightController飞行控制器
Battery电池
Camera相机
Gimbal云台
DJIAirLink无线连接
RemoteController遥控器
HandheldController手持设备控制器
MobileRemoteController移动设备遥控器
本节,我们主要讲FlightController
类的功能
该类提供了多种控制云台的方法。这些包括设置云台的工作模式,用角度调整云台的旋转,开始云台自动校准等。这个对象可以从Aircraft获得,使用方法getFlightController()获得实例。
State Updates状态更新
1.method setStateCallback 设置更新飞行控制器当前状态数据的回调函数。这个方法每秒调用10次。
void setStateCallback(@Nullable FlightControllerState.Callback callback)
用法参考下面的例子:
if (mFlightController != null) {mFlightController.setStateCallback(new FlightControllerState.Callback() {@Overridepublic void onUpdate(FlightControllerStatedjiFlightControllerCurrentState) {//--更新坐标droneLocationLat = djiFlightControllerCurrentState.getAircraftLocation().getLatitude();droneLocationLng = djiFlightControllerCurrentState.getAircraftLocation().getLongitude();droneLocationAlt = djiFlightControllerCurrentState.getAircraftLocation().getAltitude();droneCurrentHeading = mFlightController.getCompass().getHeading();//updateDroneLocation();}});}
这里面涉及到了一个新的类:class FlightControllerState 这个类包含了当前的飞行控制的状态。
要延伸多讲一点 interface Callback
回调功能,用于更新飞行控制器的当前状态数据。调用startUpdatingFlightControllerCurrentState后,此方法每秒调用10次。(?startUpdatingFlightControllerCurrentState这个没有见过?djiFlightControllerCurrentState这个是哪里来的?这个类可能还需要单独研究)
interface Callback
这个接口下含有一个接口方法method onUpdate 当飞行控制器的当前状态数据已更新时调用。这种方法每秒调用10次。
void onUpdate(@NonNull FlightControllerState state)
这里先介绍到这里后面关于FlightControllerState单独成节 链接
2.method setIMUStateCallback 设置IMU状态回调,它将接收IMU的已更改的状态。
3.method setASBInformationCallback ASB飞机航班状态
4.method setOnboardSDKDeviceDataCallback 设置更新从外部设备(onboard device)接收的数据的回调函数。
void setOnboardSDKDeviceDataCallback(
@Nullable OnboardSDKDeviceDataCallback callback)
To Determine 获取状态
1.method getState 返回flight controller当前的状态,和setStateCallback的区别在于主动单次调用和被动回调。
@NonNull
FlightControllerState getState()
Sensors传感器
1.method getCompass 获得电子罗盘的一个实例,这里有一个比较常见的应用就是使用getHeading获取机头朝向。
Compass getCompass()
2.method getRTK RTK的一个实例。RTK有着极其重要的作用,包含另外一套的坐标获取回调函数以及更为精确的机头方向。这里在获取数据的时候需要对RTK的工作状态进行判定,要和GPS设计好切换,因此这个部分会针对RTK的几个类以及RTK和GPS的工作状态切换做单独讲解
@Nullable
RTK getRTK()
3.IMU 部分包含校准在内的3个方法
Sub Components 子组件
1.Landing Gear 降落旋钮的两个方法
2.Simulator 模拟器的方法
3.method isOnboardSDKDeviceAvailable 如果已连接产品上的Onboard SDK功能可用,则返回true
boolean isOnboardSDKDeviceAvailable()
4.method sendDataToOnboardSDKDevice 如果使用Onboard SDK将设备连接到飞机,此方法将向该设备发送数据。数据大小不能超过100个字节,并且每14ms以40字节为增量发送。仅在支持Onboard SDK(Matrice 100,Matrice 600,Matrice 600 Pro,A3,A3 Pro和N3)的产品上支持此方法。
void sendDataToOnboardSDKDevice(@Size(min = 1, max = 100) byte[] data,
@Nullable CompletionCallback callback)
Flight Assistance飞行协助
这里包含大量关于飞行/跟随等模式的使用,不做介绍。
Flight Actions 飞行动作
启动电机/起飞/降落/beep等动作
LED Settings
这里包含2个方法开启关闭LED
Virtual Sticks虚拟遥控
Home降落点
这里包含降落位置的信息设置以及返航 gohome
Flight Mode飞行模式
总结
FlightController包含大量的方法及功能,我们主要用到的有飞行状态也就是无人机空间位置姿态信息获取的两种方法,以及指南针/RTK两种传感的实例获取,还有给OSDK发送数据的方法。其中姿态数获取 RTK OSDK<==>MSDK会单独成节进行讲解。
MDSK-MDSK-FlightController的使用相关推荐
- 计算机说唱卖苹果是谁,官宣!上来就是十四人炸裂Cypher!三位新成员加盟MDSK!...
2021已经过去了一半,每到下半年来,说唱听众最为期待的必备环节,便是各大说唱厂牌一年一度的Cypher. 就在昨天,摩登天空MDSK突然打响第一枪,直接甩出了MDSK 2021 CYPHER! 好家 ...
- 抖音发布五一数据报告:重庆为最热门旅游城市
本文转载自IT之家 IT之家 5 月 6 日消息 5 月 6 日,抖音发布<2021 抖音五一数据报告>.报告显示,重庆首次成为抖音打卡数量最多的城市,超过上海.深圳和苏州. 本次五一长假 ...
- FFmpeg集成qsv的编译安装
文章目录 FFmpeg集成qsv的编译安装 一.参考 二.编译安装流程 1. LibVA 和 Media-Driver 的安装 2. Intel Media SDK 编译 3. ffmpeg的编译安装 ...
- 如何通过 DJI SDK 控制无人机运动
简单的流程就是如下图所示分为三步: 连接上飞机,切换成 virtualStickControl 模式 发送 control data 结束后关闭 virtualStickControl 模式 Virt ...
- php基础 快速入门文档,快速入门 - Laravel 5.8 中文文档手册 - php中文网手册
Eloquent:入门 简介 Laravel 的 Eloquent ORM 提供了一个漂亮.简洁的 ActiveRecord 实现来和数据库交互.每个数据库表都有一个对应的「模型」用来与该表交互.你可 ...
- mini,minis2,御2,御pro可以飞航线,飞跟随
1.初始化飞行,飞机会直接飞到指定的高度 fun InitData(height: Float) {pitch = 0froll = 0fyaw = 0ffunctionPoints = nullth ...
- android大疆无人机直播推流VLC
官方给了直播的方法:startStream,最近公司需求是大疆无人机做直播推流给后台服务器,然后在后台可以看到无人机拍摄的内容,实时监控无人机的状态 因为这个最新的大疆官方给出了方法,所以做起来是非常 ...
- 大疆文档(8)-Android教程-模拟器App
本节全篇为大疆 Mobile SDK 安卓教程 部分,ios教程参见 IOS教程 . 模拟器应用程序 在本教程中,你可以学习如何使用DJI Mobile SDK在你的Android Studio项目中 ...
- 大疆文档(9)-Android教程-GEO系统App
本节全篇为大疆 Mobile SDK 安卓教程 部分,ios教程参见 IOS教程 . DJI GEO 系统教程 在本教程中,你将学会如何使用 DJI Mobile SDK 的 FlyZoneManag ...
- 我发现雷迅提供了完整的中文版的教程,这个很棒
我发现雷迅提供了完整的中文版的教程,这个很棒 包括怎么用地面站加载固件也讲了. 你就不用担心说没有Pixhawk4的教程什么的了. 而且V5 nano只用699 RMB 感觉还是可以的,买个正版pix ...
最新文章
- 苹果8参数_八年磨两苹果,日本精致农业“秘密” 打造不一样的智慧农业园区...
- php指针注意问题,c语言指针注意问题
- CSS3+jQuery实现时钟插件
- SSY and JLBD
- 计算机网络实验报告3-tcp,计算机网络实验报告3-TCP.doc
- 【Proteus仿真】220V转5V向单片机供电
- hhvm mysql_Ubuntu 14.10 安装 Nginx + MySQL + HHVM + phpMyAdmin [LNMH]
- 使用POI导出数据以及性能比较
- js 根据公历日期 算出农历_JS简单获取当前日期和农历日期的方法
- 如何连接在同一个局域网内的打印机
- win 7更改计算机用户名和密码错误,Win7旗舰版开机显示用户名和密码错误的解决教程...
- SpaceSniffer(磁盘大小扫描分析) 彻底解决C盘爆满问题 清理C盘必备软件
- 病毒木马入侵招数大曝光
- MakeSpace:什物云存储版Dropbox 融800万美元
- 云服务器 文件管理,云服务器如何管理文件
- vue 报错:Elements in iteration expect to have ‘v-bind:key‘ directives
- 【面经牛客网整理】度小满一面
- 福元医药上市在即:募资净额将达到16亿元,胡柏藩为实际控制人
- 奥维电脑导入坐标标签--坐标导入手机
- HTTP(http+抓包Fiddler+协议格式+请求+响应)