跳转至

RflyUdpMavlink 模块文档

所属工具箱:RflySim Swarm

RflyUdpMavlink 模块外观

简介

一句话描述:基于UDP协议实现MAVLink数据的收发,支持同时对多架无人机进行仿真控制或实际飞行控制,是RflySim集群开发中MATLAB/Simulink连接底层飞控与可视化的核心通信模块。

该模块是RflySim Swarm集群工具链的核心基础模块,负责完成Simulink环境中用户控制算法与底层飞控(仿真PX4飞控或真实PX4飞控)之间的MAVLink协议数据交互,既支持多无人机软件在环仿真,也支持多无人机实机飞行控制。在仿真场景中,该模块会按照RflySim平台默认规则建立UDP通信,对接CopterSim的仿真模型与PX4软件飞控,同时可通过UDP将无人机状态数据转发至RflySim3D进行三维可视化渲染;用户开发的集群控制算法输出的控制指令可通过该模块封装为MAVLink报文发送给各无人机飞控,同时该模块会将各无人机的飞行状态数据输出给Simulink端的控制算法。在实飞场景中,勾选RealflyMode后,该模块可按照配置的静态IP与端口规则,直接与局域网内多架真实无人机的PX4飞控建立通信,实现Simulink端算法对实机集群的直接控制。

该模块输出的原始状态数据需要搭配real_data_decoder模块解析后使用,解析后可得到无人机位置、姿态、飞行模式、电量等多种状态信息,支持用户快速提取所需数据开发集群控制算法,同时支持对连续编号、不连续编号的无人机集群进行灵活配置,适配不同的仿真与实飞场景需求。

端口说明

输入端口(Inputs)

端口名 数据类型 维度 说明
ActuatorOutputs double N×1 N架无人机的控制输出信号,总长度为16*CopterNum,每架无人机对应16维执行器控制信号

当配置为N架无人机时,输入为拼接的一维信号,维度随无人机数量动态变化。

输出端口(Outputs)

端口名 数据类型 维度 说明
VehicleStates double N×28 N架无人机的状态反馈数据,每架无人机对应28维状态信息,需搭配real_data_decoder模块解析使用

输出为N架无人机的状态拼接而成,维度随配置的无人机数量动态变化。

参数配置(Parameters)

双击模块打开的 Mask 对话框中可配置以下参数:

参数名 类型 默认值 可选值/范围 说明
Vehicle number or CopterID list double vector 1 任意正整数向量 无人机编号列表,向量长度表示无人机数量,向量元素为每架无人机的CopterID
Sample Time double 1/30 >0-1 模块采样时间,设置为-1时继承仿真全局采样率
RealflyMode bool false true/false 是否启用真机实飞模式,勾选后启用真机IP/端口配置规则
Target IP Address string 127.0.0.1 合法IPv4地址字符串 仿真模式下CopterSim所在主机的目标IP地址
GPS Orin double vector [0 0 0] 任意三维向量 全局坐标系的GPS原点,格式为[纬度(°) 经度(°) 高度(m)]
Udp Mode enum Mavlink_Real Mavlink_Full/Mavlink_Simple/Mavlink_Real MAVLink通信模式,不同模式对应不同的数据包大小
Base IP Address string 192.168.151.101 合法IPv4地址字符串,多机不连续时用逗号分隔 真机模式下无人机的基准IP地址,连续IP时基准IP按编号自增
Base Udp Port int 15501 1024~65535 真机模式下无人机的基准UDP端口,按编号自增

参数设置说明

Vehicle number or CopterID list

用于指定本模块控制的无人机数量和编号:当控制的无人机编号连续时,可简写为[1:5]表示控制编号1~5共5架无人机;当编号不连续时,直接写编号向量[1 3 5 7]即可,向量长度即为控制的无人机总数量。

Sample Time

推荐设置为1/30对应30Hz的通信控制频率,也可设置为-1,让模块继承Simulink模型的全局仿真采样率。如果模型中存在不同频率的任务,建议明确设置本模块的采样时间避免Simulink报错。

RealflyMode

软件在环仿真时请勿勾选,实飞控制无人机真机时需要勾选,勾选后会切换为真机模式的IP和端口配置规则。

Udp Mode

三种通信模式的数据包负载大小不同,Mavlink_Full传输完整飞控数据包,Mavlink_Simple仅传输核心状态信息,Mavlink_Real适配真实PXI飞控的数据包格式,实飞场景推荐选择Mavlink_Real

仿真模式(不勾选RealflyMode)配置说明

仿真模式下,默认IP为127.0.0.1表示连接本机运行的CopterSim,端口会自动按照规则递增:第N架无人机的端口号为基准端口15500 + CopterID,无需手动配置。GPS原点仅在使用全局GPS坐标的场景下需要修改,默认即可。

真机模式(勾选RealflyMode)配置说明

真机模式要求所有无人机提前配置静态IP和端口,遵循基准值按编号递增的规则:例如基准IP为192.168.151.101,基准端口为15501,则CopterID为5的无人机会自动使用IP192.168.151.105、端口15505。如果无人机编号不连续,可直接填写多个IP用逗号分隔,同时在Vehicle number or CopterID list`中填写对应编号即可。

模块特性(Block Characteristics)

特性项
支持的数据类型 doublesingle
直接馈通(Direct Feedthrough)
采样时间 离散
代码生成支持

数据通信协议

本模块基于UDP进行MAVLink协议通信,端口与IP规则根据运行模式不同分为两类:

  1. 非真机模式(仿真模式,不勾选RealflyMode)
  2. 目标IP:默认127.0.0.1,可自定义配置目标CopterSim所在主机IP
  3. 端口规则:基准端口为15500 + 2 * CopterID,每个无人机对应端口随CopterID自增2,收发共用对应端口
  4. 支持三种MAVLink模式:Mavlink_FullMavlink_SimpleMavlink_Real,不同模式对应数据包大小不同

  5. 真机模式(勾选RealflyMode)

  6. IP规则:支持配置连续/不连续IP,基准IP为起始地址,连续IP规则下每个无人机IP为基准IP最后一位自增1;不连续IP可通过逗号分隔填写多个IP
  7. 端口规则:基准端口为配置的Base Udp Port,每个无人机端口为基准端口 + (CopterID - 起始CopterID),即随CopterID自增1
  8. 通信内容:传输MAVLink格式的无人机控制指令与飞行状态数据

相关模块

模块名 说明
real_data_decoder 对本模块输出的28维状态向量进行解码,输出包含位置、模式、电量等信息的状态总线
RflySwarmJoystick 为多无人机集群仿真提供摇杆控制输入,可配合本模块使用
RflySimVehicleBusCreator 生成符合RflySim平台规范的无人机控制总线,可作为本模块的输入
UAVWaypointFollower 多无人机航点跟踪控制器,输出控制指令可接入本模块发送给无人机

使用示例

相关使用示例请参考以下路径:

[RflySim安装路径]/RflySimAPIs/10.RflySimSwarm/1.BasicExps/e4_RflyUdpSwarmExp/Readme.pdf

请在上述路径中查看 Readme.pdf 获取完整的示例说明与操作步骤。

注意事项与常见问题

  • 初始化顺序:仿真场景下,需要先启动CopterSim与对应的飞控仿真程序,再启动Simulink仿真,否则模块无法完成UDP连接,会丢失状态数据。实飞场景下,请确保所有无人机已经完成上电入网、静态IP配置完成后再启动Simulink仿真。
  • 采样时间匹配:推荐模块工作频率为30Hz,可将模块采样时间设置为1/30,或设置采样时间为-1并将Simulink全局仿真频率设置为30Hz。如果模型中存在多个不同频率的任务,需要对本模块的输入输出数据做同步采样处理,否则会触发Simulink速率检测报错。
  • CopterID配置规则:无论是仿真还是实飞场景,不连续的无人机ID需要以向量形式按从小到大排列输入,例如[1 3 5],不可乱序或重复输入,否则会导致IP和端口匹配错误,无法建立通信。
  • RealflyMode配置校验:软件在环仿真场景下请勿勾选RealflyMode,实飞场景下必须勾选RealflyMode,该选项会直接改变IP和端口的分配规则,错误勾选会导致通信失败。
  • 实飞IP与端口规则:实飞模式下若无人机IP和端口为连续规则,所有无人机需要提前配置为基准IP自增1、基准端口自增1的规则;若为不连续编号,需要保证输入的CopterID列表与IP列表顺序一一对应,否则会出现控制信号错位。
  • 输出数据使用:模块原始输出为28维MAVLink解码向量,必须搭配real_data_decoder模块解析后才能使用,解析后输出为总线格式,可直接通过Simulink总线选择工具提取所需的位置、姿态、模式、电量等状态数据。
  • 防火墙与网络限制:跨主机仿真或实飞场景下,需要关闭主机和无人机端的防火墙,或添加UDP通信端口的放行规则,否则会被拦截导致无法接收数据。
  • UDP模式选择:推荐统一使用Mavlink_Real模式适配RflySim集群通信,不同模式数据包长度不同,错误选择会导致解码失败,输出状态异常。
  • GPS原点设置:如果需要使用全局GPS坐标,需要根据实际起飞场地设置正确的GPS原点参数,否则全局位置输出会出现偏差,仿真场景下使用默认值即可。

更新日志

  • v4.10 (2024-05-03): 初始版本发布,支持仿真模式与实飞模式下多无人机MAVLink UDP通信,支持不连续无人机ID配置,提供三种MAVLink通信模式选择