You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取DJI无人机MQTT订阅主题?适配SDK兼容无人机

问题

我在一个用于无人机飞行规划与拍照的开源项目中,用JavaScript的Mosquitto库连接DJI Phantom 4 Pro无人机,代码片段如下:

// Drone Position 
var drone_general_longtitute = 0;
var drone_general_latitude = 0;
var points_two = [];

client.on('connect', function() {
    console.log('MQTT SERVER SUCCESSFULLY CONNECTED');

    jQuery('#communication_server').removeClass('offline');
    jQuery('#communication_server').addClass('online');

    client.subscribe('telemetry/dji.phantom.4.pro.hawk.1', function(err) {
        if (!err) {
            client.publish('presence', 'Hello mqtt')
        } else {
            console.log(err);
        }
    })

    client.subscribe('camera/dji.phantom.4.pro.hawk.1', function(err) {
        if (!err) {
            client.publish('presence', 'Hello mqtt')
        }
    })

    client.subscribe('missionStatus/dji.phantom.4.pro.hawk.1', function(err) {
        if (!err) {
            client.publish('presence', 'Hello mqtt')
        }
    })

    client.subscribe('missionStart/dji.phantom.4.pro.hawk.1', function(err) {
        if (!err) {
            client.publish('presence', 'Hello mqtt')
        }
    })

我想知道怎么找到client.subscribe需要的特定主题(比如示例里的'camera/dji.phantom.4.pro.hawk.1'),查过DJI SDK文档没找到相关信息,最终目标是让功能适配任意支持SDK的无人机。

解决方法
  • 优先查看开源项目的配置与文档
    这类主题格式大概率是项目自定义规则,并非DJI SDK原生定义。先找项目内的config.js、settings.json等配置文件,或者项目的README、本地文档,里面通常会明确主题的命名逻辑,比如[功能类型]/[厂商].[机型].[自定义设备标识]这类格式。

  • 抓包监听MQTT全量流量
    用MQTT客户端工具(比如MQTTX、Mosquitto自带的mosquitto_sub命令)连接同一MQTT服务器,订阅通配符主题#,然后操作无人机(比如触发拍照、发送飞行指令),就能捕获到无人机或项目服务端发布的所有主题,从中筛选出camera、telemetry等你需要的目标主题。

  • 直接查看项目的MQTT服务端代码
    如果这个开源项目配套有后端服务,直接找服务端代码里的client.publish调用逻辑,就能明确每个功能对应的主题格式——前端需要订阅的,就是服务端主动发布数据的那些主题。

  • 适配任意机型的通用实现思路
    不要硬编码机型标识,改成动态生成主题:

    1. 通过DJI SDK获取当前连接无人机的机型信息(比如调用SDK的getProduct()方法拿到机型名称);
    2. 按照项目的主题规则,动态拼接主题字符串,比如const cameraTopic = camera/dji.${modelName.toLowerCase().replace(/\s+/g, '.')}.${deviceId}``;
    3. 将设备标识(示例中的hawk.1)设为可配置项,让用户手动输入或自动获取无人机SN码作为唯一标识。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:30:28