RflyUdpRaw 模块文档¶
所属工具箱:RflySim Swarm

简介¶
一句话描述:基于UDP协议实现多架无人机的MAVLink数据收发,同时支持多机仿真组网与真机集群控制。
该模块是RflySim Swarm集群工具链中的核心通信接口,可同时对指定ID列表的多架无人机完成控制指令下发与状态数据采集,既适配RflySim平台内的多机仿真场景,也支持外部真实无人机集群的算法验证。
当不启用真机模式时,模块会按照RflySim默认IP端口规则,通过UDP与本地或远程主机上的多个CopterSim仿真进程通信,配合RflySim3D实现多无人机集群仿真可视化;当启用真机模式后,用户可自定义基准IP与基准端口规则,模块会按照约定的自增规则与局域网内的多架真实PX4无人机建立UDP连接,直接将Simulink设计的集群算法部署到实际硬件平台上。
端口说明¶
输入端口(Inputs)¶
| 端口名 | 数据类型 | 维度 | 1×(10×N |
输入为N架无人机的控制指令数据,N由参数中设置的无人机数量决定,每架无人机对应10维控制信号 |
|---|---|---|---|---|
输出端口(Outputs)¶
| 端口名 | 数据类型 | 维度 | 1×(36×N |
输出为N架无人机的状态反馈数据,N由参数中设置的无人机数量决定,每架无人机对应36维状态数据 |
|---|---|---|---|---|
参数配置(Parameters)¶
双击模块打开的 Mask 对话框中可配置以下参数:
| 参数名 | 类型 | 默认值 | 可选值/范围 | 说明 |
|---|---|---|---|---|
Vehicle number or CopterID list |
vector |
[1 2] |
任意正整数向量 | 指定本模块管理的无人机ID列表,向量长度为管理的无人机数量 |
Sample Time |
double |
0.01 |
>0 |
模块的采样时间,单位为秒 |
Enable real flight (RealflyMode) |
bool |
false |
true/false |
是否启用真机通信模式 |
Target IP Address |
string |
127.0.0.1 |
合法IPv4地址字符串 | 非真机模式下,目标CopterSim所在主机的IP地址 |
Base IP Address |
string |
192.168.151.101 |
合法IPv4地址字符串 | 真机模式下,第一架无人机的基准IP地址 |
Base Udp Port |
int |
15501 |
1024~65535 |
真机模式下,第一架无人机的基准UDP端口号 |
参数设置说明¶
Vehicle number or CopterID list¶
本参数指定了模块需要管理的无人机ID列表,向量长度即为当前模块管理的无人机总数量,每个元素的值对应该无人机的CopterID。例如输入[1:5]等价于[1 2 3 4 5],表示管理ID为1到5的五架无人机;输入[1 3 5 6]表示管理ID分别为1、3、5、6的四架无人机。
RealflyMode¶
- 不勾选(非真机模式:默认控制仿真环境):IP使用统一的
Target IP Address,所有无人机的UDP端口遵循基准端口自增规则:1号无人机端口为15501,ID每加1端口对应加2。 - 勾选(真机模式:控制真实无人机):遵循基准IP和基准端口自增规则,N号无人机的IP为
基准IP最后一段自增N-1,端口为基准端口自增N-1,例如基准IP为191.168.151.101、基准端口15501时,5号无人机的IP为191.168.151.105,端口为15505`,要求所有无人机提前配置好静态IP和固定端口规则。
Sample Time¶
该参数对应Simulink模型的采样步长,默认值10ms适配大多数无人机控制场景。
模块特性(Block Characteristics)¶
| 特性项 | 值 |
|---|---|
| 支持的数据类型 | double、single |
| 直接馈通(Direct Feedthrough) | 是 |
| 采样时间 | 离散 |
| 代码生成支持 | 否 |
数据通信协议¶
本模块基于UDP协议进行MAVLink数据传输,端口与IP规则分两种模式:
非真机模式(不勾选RealflyMode)¶
- 默认目标IP地址为
127.0.0.1,可自定义修改为目标CopterSim所在主机的IP地址 - 端口规则遵循基准端口自增规则,每架无人机的端口号在上一个无人机基础上+2
真机模式(勾选RealflyMode)¶
- IP规则:所有无人机配置静态IP,遵循基准IP自增规则,即第
N架无人机的IP地址为基准IP末位+N-1。例如基准IP为192.168.151.101时,1号机IP为192.168.151.101,5号机IP为192.168.151.105 - 端口规则:所有无人机配置固定端口,遵循基准端口自增规则,即第
N架无人机的MAVLink通信端口为基准端口+N-1。例如基准端口为15501时,1号机端口为15501,5号机端口为15505 - 传输内容:输入为多架无人机的控制信号,输出为多架无人机的状态反馈数据,数据封装为MAVLink格式传输
相关模块¶
| 模块名 | 说明 |
|---|---|
RflySwarmJoystick |
为群规模型生成多无人机的摇杆控制信号 |
RflySwarmWaypoint |
实现多无人机的航点任务路径规划 |
RflyUdpOffboardRaw |
多无人机原始离线控制通信模块,适配RflyUdpRaw的接口规范 |
使用示例¶
相关使用示例请参考以下路径:
请在上述路径中查看
Readme.pdf获取完整的示例说明与操作步骤。
注意事项与常见问题¶
- 初始化顺序:模块会在仿真启动阶段根据配置的CopterID列表、IP和端口规则初始化UDP通信套接字,需确保对应的真机或CopterSim进程已经启动并完成网络配置后,再启动Simulink仿真,否则会出现通信连接失败、数据丢包问题。
- 采样时间匹配:模块配置的
Sample Time需要与你的Simulink模型基础采样时间保持匹配,真机通信时建议设置不小于2ms,避免UDP缓存溢出导致数据接收异常。 - 真机模式IP规则:启用
RealflyMode时,所有无人机必须提前配置为静态IP,且保证IP地址满足基准IP末尾自增1的规则,若IP格式不匹配会导致模块无法正确解析目标IP,通信完全失败。 - 真机模式端口规则:启用
RealflyMode时,所有无人机的MAVLink发送端口必须满足基准端口自增1的规则,且需要开放对应端口的局域网访问权限,关闭防火墙或添加端口放行规则,否则会无法接收无人机数据。 - 跨主机通信配置:非真机模式下控制另一台电脑的CopterSim时,需要填写目标电脑的实际局域网IP,且保证两台电脑在同一网段,关闭目标电脑的防火墙或添加UDP端口放行规则,否则无法建立通信。
- CopterID冲突:同一仿真工程中,多个
RflyUdpRaw模块不能配置重复的CopterID,否则会出现端口占用冲突,导致通信异常。 - 输入输出维度匹配:输入控制信号的维度、输出状态端口的维度和配置的CopterID列表长度必须保持一致,每个CopterID对应一组输入控制信号和一组输出状态数据,维度不匹配会导致仿真报错。
更新日志¶
v4.0(2024-05-03): 初始版本发布,支持基于UDP的多无人机MAVLink数据收发,支持仿真模式与真机飞行模式两种通信规则配置。