打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Dji-MSDK浅析

虽然OSDK功能强大,但是它使用起来可能不是那么容易,可能需要Linux主机下的开发能力较多,这年头搞C和C++要不是后端,要不就是嵌入式的那帮人。

而MSDK可能使用Java,kotlin,Swift等常用的语言,更加让人上手快些,而且相对来说,功能缺失的也不是很严重,刚刚好。

主要是满足IOS和安卓的平台

功能上面覆盖了,控制和信息交互以及在意的航点功能,这个航点功能为我们用无人机完成一些应用有了保障。

相对于OSDK只能在昂贵的行业机器上面应用,MSDK显得很通用,很平易近人,几乎完成了全系列机型的适配工作。

包括一些我们平时不常见的产品:大疆 OSMO + 入手初体验.上,这里我也曾经写过一些东西。

手持产品也是有了支持

https://developer.dji.com/cn/products/#!/mobile

具体产品也可以在这里去查找,也可以咨询我。

https://developer.dji.com/cn/mobile-sdk/downloads/

SDK只是一些接口,可以去上面我的链接处下载。

这些是测试用demo

https://github.com/orgs/dji-sdk/repositories?q=&type=all&language=java&sort=

SDK可以去这里下载

解压后可以看到大量的demo,可以直接使用

关于MSDK的具体开发,是调用已经封装好的API,这里进行一些简单的分类:

首先是对各种组件的集中管理功能。

真真正正控制的子组件,编写程序的时候也是回调用这里大量的方法

这里的API是赋予了飞行器真正的可以工作的能力。

因为航点任务使用的多:

航点就是在飞行的路径要去执行一些任务的点

在航点任务中,飞行器将在航点之间飞行,在航点执行动作,并调整航点之间的航向和高度。

航路点是飞机将飞往的物理位置。实际上,创建一系列航路点将为飞机制定飞行路线。动作也可以添加到航点,当飞机到达航点时会执行这些动作。

飞机以基本速度在航路点之间自动飞行。但是,用户可以通过使用俯仰操纵杆来改变速度。如果将杆向上推,速度会增加。如果将操纵杆向下推,则速度会减慢。可以向下推操纵杆以停止飞行器,并进一步推动以开始使飞行器沿着它来的路径返回。

当飞行器以相反的顺序通过航点时,不会在每个航点执行航点动作。如果松开摇杆,飞行器将再次按原顺序穿越航点,并继续执行航点动作(即使之前执行过)。

如果飞机沿着航路点任务一直拉回第一个航路点,那么它会悬停在原地,直到操纵杆被释放到足以让它再次从头到尾完成任务。

对于一个飞行的状态,你可以去访问它:

会在这些状态里面的一个

在执行航点的过程中可以去干预去往下个航点的速度,飞行器在航路点之间飞行时,你可以通过遥控器上的油门摇杆来调整飞行速度.

getMaxFlightSpeed当操纵杆被推到最大偏转时,这个偏移量是多少。

例如,如果maxFlightSpeed为10 m/s,那么将油门操纵杆向上推将增加10 m/s的飞行器速度,而向下推则使飞行器速度减去10 m/s。

如果遥控器摇杆未处于最大偏转,则偏移速度将在 [0, getMaxFlightSpeed]之间以 1000 步的分辨率进行插值。

如果偏移速度为负,则飞行器将向后飞行到先前的航路点。当它到达第一个航点时,它会悬停在原地,直到应用正速度。getMaxFlightSpeed范围为 [2,15] m/s。

飞到这个位置,可以做一些动作:

  1. 原地停留

  2. 拍照

  3. 录制

  4. 旋转机身

  5. 改变云台的俯仰角,就是可以直射地面还是平视前方

上面的录音,翻译错误,是录制视频的意思

当然我们也查询当前这个航点的执行情况。具体访问的状态去看上面的飞行状态。

看到这里是不是感觉索然无味,发出就这的声音~

不要慌,还有V2的航点API,让你天马行空的发挥你的创造力!

你是否需要每次的航点坐标用来做数据的可视化:

这个方法会帮助你

如果我们对一个高程感兴趣呢?毕竟不是所有的路都是平坦的。

我们可以使用这样的方法获得相对的高度

在两个航点间的飞行路径应该这么设置呢?我想直飞过去的时候少,如果航点之间就几米倒是可以~

我们可以选择这样的几种轨迹

有时候我们无人机在改变一个航向的时候,需要关注一个细节就是旋转方向:

这样的

我们可以记录这些方向来生成可视化的飞行日志。

还有好多,不一一说了,使用到再看。

说点好玩的API,我们经常想让一个无人机连续的跟着一个动的东西,比如车,动物,怎么办?

在FollowMeMission这个任务中:飞机被编程为跟踪并保持与某个物体(例如人或移动的车辆)之间的恒定距离。你可以使用它使飞行器跟随 GPS 设备,例如带有 GPS 信号的遥控器或移动设备。使用 WiFi 连接时 Mavic Pro 不支持。Spark 不支持它。

  1. 获取纬度

  2. 获取经度

  3. 获取高度

  4. 剩下一个就是航向角

可以设置这个

因为是追着GPS的信号跑,那就有可能没有捕捉到这个信号,所以有很多的状态。

还有一个有趣的是,热点任务,就是绕着一个半径干活.在 Hotpoint 任务中,飞机将围绕一个称为 Hot Point 的指定点以恒定半径重复飞行。用户可以控制飞行器以特定半径和高度绕热点飞行。在执行过程中,用户还可以通过物理遥控器修改其半径和速度。

还有两个飞行任务,我懒的写了,我好饿啊、、、

两个航点之间使用的贝塞尔曲线拟合路径

有个特殊的方法就是获取现在无人机在哪里使用。

MSDK的开发难度相对较低,就是API的调用,不过无人机开发和普通开发有点不一样。这个东西有点和解析几何相关,本质上就是一个曲线的分解,然后加入一点时间的控制。

无人机开发,毕竟是一个飞行的东西,安全测试不可少。

MSDK覆盖的机器种类非常的齐全,提供的功能也涵盖了无人机的方方面面,dji在这方面还是比较良心的。

OSDK是侧重于实时控制的,可以和MSDK联动开发,打造满足需求的应用。

这篇文章有个小尾巴,是关于无人机的控制权问题,下篇文章再讲。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
四轴拍出专业画面:大疆VISION+国内首测
飞行前,将这份安全飞行自检指南加入你的收藏
国内航拍设备商的寒冬要来了么?DJI发布3399美元一体化小型多旋翼飞行器Inspire 1 | 36氪
大疆为开发者推出全新飞行平台和视觉导航系统
大疆发布“飞行眼镜”,让你用头部控制无人机
大疆发布航拍小飞机 DJI Mini 2,售价2899元起
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服