
1. PSDK 基础概念与定位1.1 什么是 PSDK大疆负载软件开发套件Payload Software Development KitPSDK是大疆为开发者提供的一套开发工具用于在无人机上开发并集成自定义负载设备如传感器、摄像头、机械臂等。与 OSDKOnboard SDK机载端开发和 MSDKMobile SDK移动端开发相比PSDK 更侧重于硬件层面的深度集成。适用平台Linux、RTOSReal-Time Operating System实时操作系统硬件载体SkyPort V2 / X-Port 连接无人机通过开发板如 Raspberry Pi、STM32运行负载程序开发语言C/C1.2 PSDK 架构简介PSDK 采用分层架构自上而下包括应用层、核心功能层和硬件抽象层Hardware Abstraction LayerHAL。开发者需要根据自己使用的硬件平台实现对应的 HAL 接口以实现与飞控的通信及电源管理。2. Linux 开发环境搭建本章基于 Raspberry Pi Linux 环境进行配置参照 DJI 官方快速入门文档进行操作。2.1 硬件准备开发板Raspberry Pi 4B或 3B推荐 4GB 内存以上版本连接配件SkyPort V2 或 X-Port 适配板网络连接同轴电缆、UART 串口线或依赖联网方式存储卡至少 32GB 的 TF 卡刷写系统后剩余空间用于编译调试2.2 Linux 系统配置刷写系统使用 Raspberry Pi Imager 刷入 Raspberry Pi OS推荐基于 Debian 的 Lite 版本初始化设置# 启动后更新软件源并升级系统sudoaptupdatesudoaptupgrade-y# 安装必要工具链sudoaptinstall-ybuild-essential cmakegitwget启用串口通信编辑/boot/config.txt使能 UART 接口网络配置确保开发板与调试 PC 在同一网段便于后续文件传输和远程调试2.3 交叉编译工具链可选若在 PC 端编译并将可执行文件传输到树莓派运行需安装交叉编译工具链如 arm-linux-gnueabihf-gcc。本地编译则直接在树莓派上完成省去交叉编译步骤。3. PSDK 快速上手官方 Demo 运行3.1 下载 PSDK 源码注册 DJI 开发者账号并创建应用获取App ID和App Key从 DJI Developer 下载中心 下载 PSDK 最新版本将源码包传输至树莓派并解压unzipPayload-SDK-*.zipcdPayload-SDK3.2 配置并编译 Demo修改samples/sample_c/platform/linux/common/osal/sample_config.h填入 App ID 与 App Key根据硬件连接方式选择通信接口如 UART在配置文件中指定串口设备名/dev/ttyAMA0等编译mkdirbuildcdbuild cmake..make-j43.3 连接无人机并运行将树莓派通过 SkyPort / X-Port 连接至无人机上电启动运行编译好的 demo 可执行文件通过日志确认 PSDK 初始化、飞控连接和订阅数据功能正常工作4. RTOS 与 HAL 抽象层移植要点4.1 操作系统适配官方提供基于 Linux 和 FreeRTOS 的 HAL 模板。若使用 RTOS如 STM32 系列需要额外适配以下组件线程管理创建并管理 PSDK 任务线程psdk 主任务、数据订阅任务等互斥锁与信号量保证多线程访问安全定时器提供毫秒级延时和周期性回调4.2 关键 HAL 接口分析包括但不限于UART/串口收发PsdkPlatform_UartSend()/PsdkPlatform_UartRecv()网络通信若使用 USB 虚拟网卡或网口与飞控通信需实现相应网络层接口电源管理获取引脚供电状态、引脚电压等这部分是很多开发者从 Linux 完整系统迁移到 RTOS 裸板时的核心难点建议结合官方参考实现逐函数移植调试。5. 探索模式与负载开发基础5.1 探索模式PilotPSDK 提供“探索模式”负载可在 Pilot App 中自定义界面并显示状态信息、接收用户交互。开发步骤包括在负载信息管理器中注册负载属性使用控件组件Widget定义界面布局按钮、列表、开关等绑定控件事件回调实现交互逻辑5.2 订阅无人机数据PSDK 允许订阅飞控的遥测数据例如无人机姿态四元数 / 欧拉角GPS 坐标与高度电池电量与电压示例代码片段// 订阅四元数数据T_PsdkDataChannelHandle dataChannelHandle;PsdkDataChannel_Subscribe(DATA_CHANNEL_QUATERNION,QuaternionCallback,dataChannelHandle);5.3 控制权获取部分高级功能如云台控制需要请求控制权。PSDK 通过权限管理模块实现多源控制权切换避免冲突。6. 调试技巧与常见问题排查6.1 日志输出与级别控制利用PsdkLogger_SetLevel()调节日志详细度调试阶段建议开启 DEBUG 级别日志可通过串口工具实时查看6.2 常见连接失败问题现象可能原因排查方向PSDK 初始化超时串口未正确连接或波特率不匹配检查/dev/ttyAMA0及其配置参数飞控无响应App Key 与 App ID 不匹配重新核对官方应用信息硬件识别失败SkyPort/X-Port 未正确供电测量引脚电压确认硬件接线7. 学习路线图与进阶方向7.1 推荐学习阶段第一阶段入门在 Raspberry Pi 上跑通官方 Demo理解代码结构第二阶段基础开发修改 Demo实现自定义负载功能如 GPIO 控制 LED第三阶段深入 HAL尝试在 STM32 或其他 RTOS 平台移植 PSDK第四阶段应用集成开发自定义传感器驱动并将数据回传至飞控或地面站8. 总结本文以 DJI PSDK 官方快速入门文档为依据结合 Linux 环境下的 Raspberry Pi 平台梳理了 PSDK 学习过程中的关键知识点包括开发环境搭建、Demo 编译运行、HAL 移植、数据订阅及常见问题排查等。后续可在此基础上深入探索模式开发、多负载协同等功能模块。