若有非列表中相关内容的开发,可以私信联系。
PSDK v3开始,合并了原有的osdk功能,从此支持一套sdk开发开发不同负载、机载功能,并且在新机型上一个硬件接口能实现原来两套sdk的功能。因此,强烈建议直接使用PSDK v3系列开发。
文章目录
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)
将传感器与强大的工业级平台融为一体,拓展更多可能,全面打开新兴市场。
关键词:农业、石油&天然气、建筑、基础设施建设。
(6)Thermal SDK(TSDK)
TSDK(DJI Thermal SDK)主要用于分析、处理红外照片。用户可以在Windows或Linux中借助该SDK开发出自己的专用软件,实现对R-JPEG红外照片的处理和温度测量等功能。
(7)Aeroscope
大疆云哨反制相关的内容。
2、SDK开发系列博文
PSDK v3开始,合并了原有的osdk功能,从此支持一套sdk开发开发不同负载、机载功能,并且在新机型上一个硬件接口能实现原来两套sdk的功能。因此,强烈建议直接使用PSDK v3系列开发,这里也将psdk v3的内容独立。
2.1、PSDK v3系列开发
关于v3版本中api接口函数,前缀从v2版本的
Psdk*
修改成Dji*
。
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配置变动,需要配置2个usb bulk通道,相对于之前版本的做了新功能的测试说明。
Payload SDK v3.4、v3.5的更新和测试
点击链接
v3.5 适配了新机型M350。usb bulk使用再次更新,对M30/M3E的新功能适配测试。
包含2个功能测试:(1)红外测温 (2)码流请求I帧
dji psdk开发(9)第三方自定义 HMS 功能
点击链接
HMS 模块(1)提供基本接口来获取各模块异常的错误信息,便于PSDK程序获知飞机各模块的工作状态。(2)提供了接口用于将自定义的错误信息,推送到APP上。
dji psdk开发(10)运动规划(航线任务、KMZ文件的解析,兴趣点环绕)
点击链接
(1)简要介绍 Waypoint 3.0,其只需要导入一个KMZ文件即可实现和Pilot2相同的航线规划功能。之后再介绍相对复杂的waypoint v2版本 api,手动解析kml/kml文件。
(2)介绍兴趣点环绕接口,实现兴趣点环绕计算航点的代码。
dji psdk开发中各种机型的连接和配置说明(增加E-Prot接口不使用usb配置的方式)
点击链接
(1)介绍不同机型使用osdk/psdk开发的连接方式整理,以及使用的注意事项。
(2)目前主流机型均使用e-port 进行psdk开发,初学者配置usb slave稍微有些麻烦,且需要硬件支持,介绍使用网络连接的方式来降低开发难度。
2.2、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.3、DJI MSDK开发
dji msdk开发 sample测试与osdk通信
点击链接
主要为dji官网的介绍,最后搭配当前有关osdk 开发使用的通信功能,修改demo代码以实现该功能
2.4、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高低电平函数实现,同时实现无人机输出默认功率和高功率之间的切换。
2.5、DJI TSDK开发
dji tsdk 开发(1)thermal sdk介绍和工具使用
点击链接
介绍大疆热红外分析工具的基本使用,DJI Thermal SDK基本介绍。
命令行工具的使用,温度数据的解析读取。
dji tsdk 开发(2)thermal sdk的API和测试代码
点击链接
先介绍 dji thermal sdk的常用api,之后基于 sdk 实现前年命令行工具的导出温度数据raw文件的功能。
dji tsdk 开发(3)thermal sdk的测温应用(1)dji tsdk的封装
点击链接
介绍 dji tsdk封装层,实际就是实现了前一篇博客测试代码的功能,但是持久化了一些应用程序需要的数据,例如加载照片后获取的图像分辨率,RAW分辨率,RAW数据,支持重复读取照片或RAW。
dji tsdk 开发(4)thermal sdk的测温应用(2)测温应用
点击链接
在前面博客基础上,通过Dirp类持久化了一些应用程序需要的数据,例如加载照片后获取的图像分辨率,RAW分辨率,RAW数据,支持重复读取照片或RAW。本文,继续说明测试应用的实现。
2.6、DJI ESDK 开发
dji esdk开发(1)Edge SDK 简介、配置demo运行
点击链接
简单介绍edge sdk,如何软件、硬件准备环境,编译项目代码,运行获取显示实时视频流的demo。
dji esdk开发(2)订阅实时视频流
点击链接
功能类似psdk/osdk中获取负载相机实时码流功能。介绍基本使用api函数,最简单的rgb实现方式,以及demo的简要介绍。
dji esdk开发(3)媒体资源文件获取下载
点击链接
通过接口获取机场媒体文件,包含两部分应用:(1)即时接收航线拍摄的照片和视频更新通知(2)获取最近一次航线拍摄的媒体文件列表。之后,机场对下载获取的图片或视频文件进行边缘设备端的处理。
dji esdk开发(4)SDK互联互通(与云端进行小数据通信)
点击链接
Edge SDK 提供接口可以通过上云 API 与和机场建立连接的云端服务器进行小数据交互,即向云端服务器发送自定义小数据与接收来自云端服务器的自定义小数据。
2.7、DJI Aeroscope
dji云哨aeroscope反制数据的解码、破解
云哨设备脱离linux sdk的测试应用,可以认为是crack吧。一些常见数据格式的说明。
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视频流图传发送功能的实现,注意点,出现的问题汇总等。文章较长,有相关问题研究的可以了解下。