Dji-MSDKv5开发 记录贴【1】准备运行环境

事先声明——JR只是一个小白!

本帖子只是一个没有任何安卓开发经验的小白记录他在尝试进行无人机开发时候遇到的问题,和最终解决办法的记录!不能够当作教程仅供参考!


介绍-在项目中准备进行的事情

最近进行的项目需要我完成用无人机实现自动路径规划并且完成拍照的计划。经过搜索之后,发现大疆无人机提供了无人机二次开发的完整文档和接口,能够自己编写APP对无人机进行控制,完成一些自动化的任务执行;下面是链接:

大疆MSDK官网入口

所以JR(作者自称)决定采用大疆家的无人机来进行这次开发任务!

那么在开发进行初期,手头上面有御2行业进阶版(Mavic 2 Enterprise),

御2系列使用的是旧版的MSDK v4,和新版本不兼容!下面是新旧版本的解释文档:

Mobile SDK (dji.com)

而且由于开发中使用的开发环境版本更迭,导致编译很容易失败,以及程序只支持arm架构,在当前环境下的x86架构虚拟机中不能运行。

总之,在参考之前的经验贴成功运行MSDK4的示例程序之后,由于大疆官方已经停止御2销售,决定采用新版本的无人机进行开发

关于Dji MSDK的介绍

官方文档中已有详细解释。这里不再赘述; 

大疆MSDK官网入口

运行MSDKv4例程(适配御2系列)

本贴是v5版本的开发运行过程,请参考其它经验贴,这里简单放一下

DJI MSDK开发(一)示例代码运行 - 知乎 (zhihu.com)

运行示例代码 - DJI Mobile SDK Documentation

请在运行前仔细准备好对应版本的Android Studio,否则会出现版本兼容问题!(很多依赖随着版本更新被弃用,新的环境不支持运行过往的项目)

运行MSDKv5例程(适配御3系列)

这个专栏就是为了这件事建立的。鉴于网上能够提供的参考不多,我经过了一些试错和摸索,目前刚完成运行示例程序。接下来将详细介绍环境配置以及后续的学习过程。

以下为配置过程中的参考文档(基本只有官方文档可以参考)

Mobile SDK (dji.com)

准备完成的开发任务

在保证无人机安全的情况下,完成自动规划一段路线,并在路线中多次进行红外拍照;实现距离检测和指定的物体保持一定距离以保证照片的拍摄质量。在意外情况中能够选择继续执行任务,或者返航;

能够在任务进行过程中返回或者保存照片,并及时手动中止任务。


开发环境配置

Android Studio配置下载

我们需要下载官方文档中标注的对应版本的AS来确保示例项目能够正常运行。

作者之前因为版本兼容性问题被困扰很久,所以请记住使用对应版本的IDE进行运行!

我们接下来到官网的往期文档来下载对应版本。需要注意:往期版本的中文版名单版本不全,需要切换到英文来下载全部的版本。

Android Studio download archives  |  Android Developers (google.cn)

翻阅同意文档到底部,点击同意后查看往期版本的内容:

我们需要使用的版本大概在2022.5.25发布的AS版本,Chipmunk,Dolphin只是谷歌为了让版本号有趣在版本后面加的小动物的名字,不同名字我们理解为不同的版本号就可以了。

打开下拉菜单之后选择我们自己系统对应的AS版本进行下载。

『2022/2/5』Android Studio下载安装详细步骤(Android Studio BumbleBee/2021.1.1.21 Patch 1 )_咸来与共的博客-CSDN博客

这是当时版本接近的AS的详细安装步骤,可以参考进行安装。

需要注意的是,由于网络问题比较大的组件如Emulator可能会提示下载失败,可能需要先手动进行下载,放到对应的文件夹,安装程序检测到之后就不需要进行下载。安装成功后我们就可以导入我们的示例项目了。

导入示例项目

从github下载官方提供的示例程序Mobile-SDK-Android-V5

dji-sdk/Mobile-SDK-Android-V5: MSDK V5 Sample (github.com)

以上是解压后的项目内部结构;

我们将SmpleCode-V5整个复制到我们打算放置示例项目的位置(记得备份,以免我们为了运行之后调整Gradle,SDK等版本对原来的例程项目进行破坏)

里面虽然有三个项目,但是as是依赖后面sample中提供的模块来实现功能的,所以我们要保留完整的文件结构。

之后从Android Studio,选择File->Open...

在文件夹中打开SampleCode-V5下的android-sdk-v5-as作为项目路径。

接下来就可以等待Android Studio自动完成gradle和对应版本的依赖的下载配置了。在刚才文件夹复制完整的情况下是不会出现灰箭头无法运行的。接下来我们准备在遥控器上准备运行;

打开遥控器USB调试

首先我们将Mavic3的遥控器通过Type-C数据线连接到电脑。

在遥控器内部是一个经过开发的安卓机,会默认打开Dji Pilot来遥控我们的飞机。我们需要把自己开发的程序给装进去,运行,就要先把自动打开的Pilot关闭掉。

上面就是当前刚打开遥控器显示的pilot程序界面。将顶部向下划,打开齿轮状的“设置”;

在设置中选择“应用和通知”选项;

在应用中可以看到最近打开的应用,点击DJI Pilot 2;

点击最右侧的“强行停止”来关闭Pilot(这个方法来源于官方文档中运行示例项目的方法)

接下来我们通过设置来切换到开发者模式。在设置选项中划到底部,可以看到设备选项,点击进去;

接下来我们翻到底部,点击下面的“版本号”的信息栏。这时候会悬浮窗弹出再点击X下进入开发者模式的弹窗;

现在成功进入了开发者模式。在系统设置中会多出“开发者选项”。

在设置菜单中,点击“系统”->“高级”->“开发者选项”进入开发者选项栏中打开“USB调试”;

现在我们的遥控器内部的安卓系统已经成功进入了USB调试模式,可以在上面编译运行我们电脑上面的程序了。

如图,在示例项目的内部也能够看到我们的设备名称了。就算当前我们并没有为APP注册一个API Key,但是依然可以点击绿色箭头运行。这个时候运行是可以顺利打开程序的,但程序内部会显示“未注册”。

那么,接下来的步骤就是为APP申请一个运行需要的KEY来激活程序了!

注册Dji开发者,获取APP Key

点击下面的链接进入大疆官方的开发者社区来注册一个开发者账号;

DJI Developer

在我们注册完成后,进入个人页面点击右上角蓝色的“Create APP”;

在进行APP的注册时,关于APP的名字、用途(Category)、描述(Description)都可以进行任意填写。但是注意:包名需要与例程的包名相同!否则依然会显示认证失败!

接下来让我们看看示例程序的包名是什么:

在示例项目中,包名被配置在BuildConfig文件中的APPLICATION_ID中。

com.dji.sampleV5.aircraft

在点击邮箱中的确认创建链接之后,我们就建立好自己的APP了,打开之后即可看到我们的APPKey,我们复制这段key,将它替换进项目中;

在gradle配置夹中的gradle.properties文件中,将变量AIRCRAFT_API_KEY的值修改成我们刚才复制的key值。在保存之后我们连接上机器编译运行,即可成功打开大疆提供的示例程序了!

可以看到连接到飞机后,可以通过自制小程序来实现对飞机的控制,我们接下来可以建立自己的空项目来进行开发了~


第一篇的后记

在JR成功运行第四代和第五代MSDK的示例项目的时候有很多感受。

首先,选择旧版本的时候就有很多前人留下的经验可以借鉴,出现运行问题的时候也是通过stack overflow上面的高赞解决方案来完成运行的。

新版本的经验比较少只有官方文档可以参考;甚至在寻找包名的过程中都反复纠结和查找了一段时间。希望自己的运行经验能给想使用DJI-MSDKv5开发的朋友们提供一点帮助。(红字都是我自己出问题的地方)

如果在你运行期间出现了什么问题也欢迎留言进行讨论~我们下篇见

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值