大疆 PSDK介绍

一、什么是大疆PSDK?

PSDK = Payload SDK,负载软件开发套件

大疆开放给第三方开发者,用来开发挂载在机腹 E-Port/SkyPort 上的自研负载(相机、多光谱、激光雷达、传感器、抛投装置等),让自研负载和飞行器、Pilot2 地面站、O4 图传链路深度打通。

区分三个 SDK,避免混淆:

  1. PSDK:跑在负载硬件上(自研板),负载 ↔ 飞行器通信
  2. MSDK:跑在地面端(安卓平板 / APP),地面站 ↔ 遥控器 ↔ 飞行器
  3. OSDK(现已合并进新版 PSDK):跑在妙算机载计算机,用于机载算力开发

二、PSDK 核心定位

1、PSDK 本质

是一套协议栈 + API 库 + 硬件 HAL 适配层,运行在自研负载板 MCU/SOC(RTOS/Linux 均可,C 语言开发),不需要妙算。

2、核心目标

  1. 负载和飞行器握手、身份认证(依赖 SkyPort V2 内置 CC 认证芯片,I2C 总线)
  2. 读取飞行器飞行状态(位置、RTK、姿态、高度、电池、遥控器按键)
  3. 负载上报自身状态给 Pilot2 地面站,在地面站生成自定义 UI 控件
  4. MDI 高速通道:把自研相机图像 / 视频流注入飞行器 O4 图传,直接回传到遥控器 Pilot2
  5. 双向自定义数据透传:负载 ↔ 地面站之间传输自定义业务数据

三、硬件通信链路选型(M400 + SkyPort V2)

M400 挂载 SkyPort V2 时,PSDK 支持两种组合:

1、DJI_USE_ONLY_UART:

只用 UART 串口,低速,只传指令、状态,无法传输图像

2、DJI_USE_UART_AND_NETWORK_DEVICE:

UART + MDI 以太网

  • UART(DJI_RX/TX,3.3V TTL 串口):信令 / 指令通道(PSDK 控制协议、飞行状态、遥控按键、负载控制命令),带宽低,高可靠
  • MDI 以太网:高速媒体数据流通道,H.264/H.265 视频流、大文件、传感器大数据,直接送入飞行器 O4 图传链路,遥控器 Pilot2 实时预览画面DJI

其他链路:USB Bulk / USB RNDIS,SkyPort V2 不支持 USB 链路,只有 E-Port 直连才支持。

四、PSDK 软件架构(分层)

1、HAL 硬件适配层

对接底层硬件:UART 读写函数、MDI 网口初始化、I2C 认证芯片读写、PPS 时间同步。

PSDK 库不绑定硬件,HAL 由开发者实现。

2、核心协议栈(大疆闭源库)

飞行器与负载之间私有帧协议,处理帧打包、校验、重传、心跳、握手认证、链路保活。

3、API 业务层(开放头文件,可直接调用)

模块化 API,分为:

  • 飞行器状态订阅模块:姿态、位置、速度、电量、GPS/RTK、飞行模式
  • 遥控器按键订阅模块:读取自定义 C1/C2、拨轮、按键事件
  • 自定义 Widget 控件模块:在 Pilot2 界面生成按钮、滑块、文本框,地面站下发参数控制负载
  • Media 媒体推流模块(MDI 通道核心):把图像 H.264 码流推送给飞行器图传,地面实时预览
  • 数据透传模块:自定义双向数据包,业务数据负载↔地面站
  • 云台控制模块:控制 SkyPort 云台俯仰、横滚
  • 时间同步 PPS 模块:I2C+PPS 脉冲,图像像素与飞行器 GNSS 时间戳对齐,巡检打点、测绘打标必备

五、核心能力清单(自研负载板,SkyPort V2)

1、可用能力

  1. 飞行器实时状态:经度纬度、高度、速度、姿态角、RTK 定位状态、剩余电量、飞行模式
  2. 遥控器自定义按键、拨轮事件订阅
  3. Pilot2 自定义 UI 控件(按钮、开关、数值输入、提示弹窗),地面控制负载
  4. MDI 以太网视频推流:自研相机 H.264 流送入 O4 图传,遥控器实时看画面
  5. 云台控制:控制 SkyPort V2 云台转动、角度读取
  6. 双向自定义数据透传(负载 ↔ 地面 MSDK/Pilot2)
  7. PPS 时间同步,图像打 GPS 时间戳
  8. 多负载协同(M400 支持多个 E-Port 挂载多 PSDK 负载)

2、不可用(无妙算 Manifold3)

  1. 无法读取 M400 机载激光雷达、毫米波、机载 FPV 相机原始码流 / 点云,这个能力必须妙算 3
  2. 无法在负载端运行机载 AI 算法(妙算才是机载算力),算法只能跑在自研负载板上

六、上电与握手流程(SkyPort V2)

  1. M400 上电,E-Port V2 输出电源给 SkyPort V2
  2. SkyPort V2 内部CC 认证芯片(I2C)和飞行器握手,完成负载身份校验;校验失败,飞行器会切断负载供电、PSDK 链路无法启动
  3. 自研负载板上电,初始化 UART 和 MDI PHY
  4. PSDK 库启动,UART 链路和飞行器 PSDK 服务端建立心跳握手,版本协商
  5. HAL 层上报硬件就绪,订阅飞行状态、注册 Widget 回调
  6. MDI 以太网链路建立,负载调用 Media API,开始推送图像码流
  7. 地面 Pilot2 自动识别 PSDK 负载,加载自定义 UI、预览 MDI 推送视频

关键:认证芯片在 SkyPort V2 转接环上,不是自研板。

七、开发环境与移植要点

  1. 开发语言:C 语言,支持 RTOS(FreeRTOS)、嵌入式 Linux
  2. 编译:CMake,交叉编译,编译生成应用跑在你的 SOC/MCU
  3. 移植核心工作:
    • 实现 HAL 串口读写(DJI_RX/TX)
    • MDI 以太网 PHY 硬件调试(MDI 是飞行器专用差分以太网,不是普通家用 RJ45)
    • 对接 SkyPort V2 I2C(认证通信,无需你读写认证芯片密钥)
    • Media 推流接口:封装 H.264 码流送入 MDI 通道
  4. 账号:需要大疆开发者企业账号,SkyPort V2 硬件序列号在开发者后台绑定,否则认证无法通过。

八、PSDK 与 SkyPort V2 开发常见的问题

  1. SkyPort V2 原生固件不支持 M400,必须升级 v01.04.1112 固件,否则飞行器不认负载,握手失败
  2. PSDK 版本锁定:SkyPort V2 只能 PSDK V1,不能用 V3
  3. UART 是 3.3V TTL,严禁 5V 电平,会烧毁 SkyPort 信号管脚
  4. MDI 以太网不是普通 TCP/IP 随便传,必须使用 PSDK Media 推流 API 封装码流,裸 TCP 图像数据飞行器图传链路无法识别,Pilot2 无法解码预览
  5. 上电时序:负载不能先于飞行器完成 PSDK 初始化,必须等飞行器握手就绪,否则链路断开
  6. 心跳保活:UART 链路必须维持 PSDK 心跳,心跳超时飞行器判定负载离线,断开图传和通信

九、PSDK、MSDK、妙算整体数据流全景

1、Pilot2地面站(平板) <---MSDK---> 遥控器 <---O4图传---> M400飞行器

2、飞行器 <---UART(PSDK指令)+MDI(图像)---> SkyPort V2 ---> 自研PSDK负载板

相关推荐
sxgzzn6 小时前
电力设备故障定位与特种电缆局放监控技术分析
重构·无人机·gis局放在线监测·矿用高压电缆绝缘故障检测装置·光伏运维管理系统
FL16238631297 小时前
无人机关键点检测姿态估计数据集COCO+YOLO格式2246张1类别4关键点
yolo·无人机
FL162386312910 小时前
反无人机红外图像关键点检测姿态估计数据集COCO+YOLO格式272张1类别5关键点
yolo·无人机
sxgzzn1 天前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
mtouch3331 天前
多源矢量数据接入与API动态聚合:三维可视化沙盘系统的设计与实现
人工智能·无人机·虚拟现实·电子沙盘·数字沙盘
蓝悦无人机1 天前
【航空科普】飞机为什么能飞?机身、机翼、尾翼、发动机、起落架
无人机·航空科普
GlobalInfo1 天前
2026-2032年工业无人机测绘服务产业链及前景趋势报告:产业洞察、十五五路径与市场竞争格局
人工智能·无人机
湖北英特丽2 天前
工业级无人机 PCBA 工艺管控全解析:从 DFM 到量产落地
无人机
moonsims2 天前
AiBrainBox 多域有人/无人协同智能系统-从端侧智能到多域协同的国产化验证基础设施
人工智能·无人机