如何通过GCS的MAVLink为ArduPilot SITL无人机设置Remote ID
解决ArduPilot SITL中通过GCS设置Remote ID的问题
核心问题澄清
你之前使用的OPEN_DRONE_ID_*系列消息是无人机向外广播自身Remote ID状态的上报消息,并非GCS用来给无人机设置Remote ID的指令消息,这就是发送后无效果的根本原因。
针对疑问的解答
1. 从GCS为无人机设置Remote ID需使用哪条MAVLink消息?
ArduPilot中Remote ID的配置通过参数设置实现,对应使用PARAM_SET消息修改以下关键参数:
DRONEID_ENABLE:开启Remote ID功能(设为1)DRONEID_UAS_ID:无人机唯一标识字符串(最多16字节)DRONEID_TYPE:无人机类型(对应MAV_TYPE枚举,比如0=旋翼机、1=固定翼)DRONEID_OPERATOR_ID:操作者标识字符串(最多16字节)- 可选补充参数:
DRONEID_SERIAL、DRONEID_CATEGORY等
2. 无人机接受Remote ID配置的前置条件?
- 固件版本:确保ArduPilot SITL固件版本在4.1或以上(该版本起正式支持Remote ID功能)
- 功能开启:先通过
PARAM_SET将DRONEID_ENABLE设为1,否则其他Remote ID参数不会生效 - MAVLink版本:保持你当前使用的MAVLink 2即可,无需调整
3. SITL是否支持通过MAVLink更新Remote ID?
完全支持,无需真实硬件。满足上述固件版本和功能开启条件后,通过参数设置的Remote ID会被SITL无人机采纳,并主动广播OPEN_DRONE_ID_*系列消息。
具体操作步骤
- 发送
PARAM_SET消息将DRONEID_ENABLE设为1,等待无人机返回PARAM_VALUE确认参数生效 - 依次发送
PARAM_SET设置DRONEID_UAS_ID、DRONEID_TYPE等你需要的参数 - 监听无人机的MAVLink消息流,此时应该能收到无人机主动发送的
OPEN_DRONE_ID_BASIC_ID、OPEN_DRONE_ID_SYSTEM等广播消息,内容包含你设置的标识信息
验证方法
- 在SITL终端输入
param show DRONEID_*,可查看当前Remote ID相关参数的取值 - 使用MAVLink消息分析工具(比如mavproxy的
log命令),确认OPEN_DRONE_ID_*消息已正确广播
内容的提问来源于stack exchange,提问作者Abdul Muqaddim
相关产品推荐
相关产品推荐

