DJI SDK开发目录

章禄
2023-12-01

若有非列表中相关内容的开发,可以私信联系。

1、SDK介绍

DJI开发者平台提供了多种SDK,可以根据需求开发自己的无人机解决方案。

(1)Mobile SDK (MSDK)
使用移动设备轻松为您的DJI无人机部署自定义移动应用程序, 使管理人员能够针对业务优化飞行方案。
关键词:飞行控制、任务规划、自动测绘、监测。
DJI官方应用:DJI GO 4,DJI GO, DJI Pilot, GS Pro, DJI XT Pro

(2)Onboard SDK (OSDK)
使用机载计算机,通过开放的通信端口直接实时访问DJI的无人机平台,允许集成外部处理器,相机或其他负载/配件。
关键词:机载计、视觉传感器、冗余系统、激光雷达、多光谱相机。

(3)UX SDK
使用开发者平台提供的核心功能,轻松开发应用程序,使用UI组件快速构建无人机行业应用,缩短时间。
关键词:组件、面板、设计统一。

(4)Windows SDK
定制专属桌面级应用,做无人机行业应用专家

(5)Payload SDK (PSDK)

将传感器与强大的工业级平台融为一体,拓展更多可能,全面打开新兴市场。
关键词:农业、石油&天然气、建筑、基础设施建设。

2、SDK开发系列博文

2.1 DJI OSDK开发

dji osdk开发(1)介绍与demo运行

点击链接
简单介绍OSDK的框架
详细介绍开发OSDK的软硬件环境准备
demo代码的编译与运行
记录了在开发调试真机时出现的问题及解决方案。

dji osdk开发(2)osdk3.9.0 交叉编译

点击链接
交叉编译器的准备
使用交叉编器,编译不同目标类型osdk-core核心库
在wsl下使用静态库构建树莓派目标程序的详细流程
演示osdk与msdk数据通信的功能

dji osdk开发(3)demo3.9.0 简单示例代码

点击链接
改造精简上一博文中osdk3.9.0与msdk通信代码
说明osdk初始化的代码

dji osdk开发(4)osdk4.x交叉编译使用

点击链接
最新版osdk4.0.1 适配新机M300 RTK, SDK有些改动
由于新版本提供libdji-linker.a,目标机为树莓派时交叉编译核心库只能选择arm-linux-gnueabihf
使用OSDK提供的多线程api,将通信功能包装为线程task
M300 Type-c 接口使用,直接连接、dji osdk 拓展版两个方法尝试

dji osdk开发(5)广播与订阅:消息订阅功能

点击链接
osdk广播功能简介,消息订阅功能使用、测试,订阅项的一些说明。

dji osdk开发(6)高级视觉功能 系列

高级视觉功能 - 环境准备、测试demo运行 点击链接
api接口使用示例(1)获取相机H264码流 点击链接
api接口使用示例(2)获取相机实时RGB图像 点击链接

2.2 DJI MSDK开发

dji msdk开发 sample测试与osdk通信

点击链接
主要为dji官网的介绍,最后搭配当前有关osdk 开发使用的通信功能,修改demo代码以实现该功能

2.3 DJI PSDK开发

dji psdk开发(1)交叉编译与运行

点击链接
使用psdk提供的静态库进行在wsl交叉编译目标平台为树莓派的应用程序。
demo详细配置(含DJI Assistant设置,硬件连接)、编译、运行流程

dji psdk开发(2)图传功能实现-树莓派相机

点击链接
从树莓派raspivid项目修改,封装供图传使用的接口函数的静态库RaspiCamera,主要介绍其编译流程
静态库测试项目,源代码、编译、运行、测试
PSDK中图传功能的实现介绍
基于RaspiCamera实现PSDK上树莓派相机的图传功能,并使用了硬件加速编码器。

dji psdk开发(3)负载应用固件升级

点击链接
基于PSDK发布的负载设备交给客户后,若后续版本时,我们应该将新版本的程序固件包发给客户,客户通过DJI Assistant 2 导入程序固件包更新负载设备,进行本地升级。

dji psdk开发(4)自定义控件widget

点击链接
介绍官方demo中widget控件的UI、展示,再详细介绍自定义控件功能的实现(get和set两个对应的回调事件处理),最后简单说明按键映射、widget动作航点任务中的使用。

dji psdk开发(4)自定义控件widge(运行不依赖widget_config.json文件)

点击链接
上一篇在linux下使用Widget功能,运行时必须依赖widget_config.json文件、PNG控件图片(若需要)。
若更改UI配置后仍通过DJI Assistant2进行固件升级,则必须移除运行时的文件依赖。

dji psdk开发(5)SDK互联互通功能MopChannel

点击链接
介绍Msdk、Osdk、Psdk之间的通信功能,以PSDK为例说明与MSDK建立连接、进行非可靠性传输的数据通信流程,修改基于MSDK的DJIMOPDemo实现可靠性传输。

dji psdk开发(6)高级视觉功能 系列

环境准备、测试demo运行
api接口使用示例(1)获取相机H264码流
api接口使用示例(2)获取相机实时RGB图像

dji psdk开发(7)时间同步功能

点击链接
使用开发板IO口检测无人机PPS信号的上升沿,获取无人机系统时间与负载开发板系统时间的时钟差。时间同步功能用于更新本地时间,也用在精准定位应用中。

dji psdk开发(8)电源管理(高功率申请、关机通知)

点击链接
使用电源管理功能实现:高功率的申请,无人机关机通知。高功率申请的功能,以树莓派系统及其wiringPi库为例,通过注册控制GPIO高低电平函数实现,同时实现无人机输出默认功率和高功率之间的切换。

PSKD V3版本中集成OSDK功能(1)psdk v3使用配置详解

点击链接
介绍psdk v2.2.1 与 psdk v3.0.0 配置的区别,分别实现 psdk 与 osdk 功能。

DJI M30无人机运行PSDK V3.1/3.2

点击链接
主要介绍了M30接口usb、开发版作为usb slave配置rndis、bulk功能;sample的测试。

PSDK v3.3版本测试、老版本对比

点击链接
介绍最新版本的v3.3的使用,主要在usb配置变动,相对于之前版本的做了新功能的测试说明。

3、其他相关应用

3.1、视频编解码

3.1.1、raspiberry树莓派相机编码库

点击链接
在树莓派4B平台下为PSDK负载图传开发,提供几个不同需求下的试用接口静态库实现和源代码库(包括ffmpeg通用平台简单实现)。树莓派上使用硬解码器,720p@30fps的cpu占用~10%左右。

3.1.1、解决从GDR H264码流中间开始解码异常的问题(解码H20/Z30相机数据)

点击链接
针对Z30/H20相机h264码流在OSDK的官方示例中不能解码的问题进行分析,类似官方demo使用ffmpeg来实现解码Z30/H20的GDR格式码流;讨论不同应用场景的GDR使用。

3.1.2、PSDK V2.x 视频流图传发送实现、问题汇总

点击链接
整理基于psdk v2.x视频流图传发送功能的实现,注意点,出现的问题汇总等。文章较长,有相关问题研究的可以了解下。

 类似资料: