SuperAPI AI 工具集

matlab-connect-mavlink

通用与其它

查看项目

更新于 10-16 00:21

技能介绍

用途:在 MATLAB 中作为地面站(GCS),通过 MAVLink UDP 与 PX4 或 ArduPilot 飞控(含 SITL)建立连接,并完成心跳交换与客户端发现。

主要能力:创建 MAVLink 方言(如 common.xml、ardupilotmega.xml,版本 2);用 mavlinkio 建立 I/O 接口(GCS 身份 SystemID 255、ComponentID 1);通过 connect 打开 UDP 传输;用 createmsg 构造 HEARTBEAT 等消息;用 sendudpmsg 向指定端点发送、sendmsg 向已发现客户端发送;用 listClients 发现客户端,mavlinksub 订阅非心跳消息,latestmsgs 读取最新消息。

使用方式:按固定顺序执行——mavlinkdialect 创建方言,mavlinkio 创建接口,connect(mavlink, "UDP", LocalPort=14550) 连接,构造 GCS 心跳并赋值(字段须写在 msg.Payload.field(:) 上并保留 (:) 索引),再按飞控是否已广播选择自动发现或手动发起,最后 stop/delete 定时器并 disconnect。心跳标准速率为 1 Hz。

适用场景:MATLAB 构建地面站、连接 SITL 或网络飞控、心跳交换与客户端发现。

限制:不适用于已建立连接后的参数读写、任务上传、日志下载;不适用于 Simulink MAVLink 模块;离线解析 .ulg 日志应直接用 ulogreader;仅做消息序列化/反序列化也不适用。端口 14550 是 GCS 本地端口,远端须用飞控监听端口;未发现客户端前须用 sendudpmsg。资料未提供收费、价格与平台信息。