You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

能否通过DJI Onboard SDK向飞控提供定位数据?寻室内无GPS等效方案

如何通过DJI Onboard SDK为无人机提供室内定位数据?

当然可以!DJI Onboard SDK完全支持向飞行控制器注入外部位置数据,用来解决室内GPS失效的场景,这和你提到的Dronecode的ATT_POS_MOCAP消息功能是等效的,下面给你详细拆解可行的实现方案:

核心前提:机型与SDK兼容性

首先要确认你的无人机型号和使用的Onboard SDK版本:

  • 支持的机型:Mavic 2/3系列、Phantom 4系列、Inspire 2、Matrice系列等主流工业/消费级DJI无人机都支持该功能;
  • SDK版本:建议使用Onboard SDK 3.8及以上版本(最新稳定版更佳),旧版本可能没有开放该API或者存在兼容性问题。
    另外,你需要在DJI开发者平台注册应用并获取App Key,同时给无人机开启开发者模式,这是使用所有高级SDK功能的必要条件。

具体实现步骤

DJI Onboard SDK提供了专门的外部定位数据注入API,核心操作如下:

  1. 初始化SDK与无人机连接:按照SDK文档完成基础的硬件连接(比如通过USB/UART连接机载计算机和飞控)、SDK初始化、无人机绑定与激活流程。
  2. 调用位置注入API:使用SDK中的Vehicle::telemetry->injectExternalPosition()接口(不同版本的SDK可能命名略有差异,以官方文档为准),将外部定位系统(比如视觉SLAM、UWB、激光雷达定位等)获取的位置数据注入飞控。
    • 需要传入的核心数据包括:经纬度(如果是相对定位也可以转换为WGS84坐标系的虚拟坐标)、相对/绝对高度、速度信息、滚转/俯仰/偏航姿态角、数据时间戳等;
    • 数据格式要严格遵循SDK要求,比如姿态角单位为弧度,高度单位为米,时间戳要保证连续性。
  3. 设置数据更新频率:为了保证飞控稳定使用外部数据,建议将数据注入频率保持在10Hz以上,最高可以到50Hz,具体根据你的定位系统输出能力调整。

关键注意事项

  • 飞行模式适配:将无人机切换到姿态模式(Atti Mode),或者在GPS模式下让飞控自动识别GPS失效并切换到外部定位数据(部分机型支持自动切换);
  • 数据精度要求:外部定位数据的精度直接影响飞行稳定性,建议确保位置误差在±10cm以内,姿态误差在±1°以内,延迟控制在100ms以下;
  • 错误监听与处理:SDK会返回注入结果的状态码,要实时监听这些状态,比如数据格式错误、频率过低等问题,及时调整数据输出;
  • 测试流程:一定要先在DJI的仿真环境(比如DJI Assistant 2的模拟飞行功能)中验证数据注入的有效性,再进行实际室内飞行测试,避免安全风险。

替代方案:视觉定位辅助

如果你的无人机自带DJI视觉定位系统(比如Mavic系列的下视视觉),可以通过SDK开启视觉定位模式,但这种方案仅适用于有足够视觉特征的室内环境(比如有纹理的地面),如果是无特征的空旷室内,还是需要外部定位数据注入。

内容的提问来源于stack exchange,提问作者jsow

火山引擎 最新活动