跳转至

RflyUdpRaw 模块文档

所属工具箱:RflySim Swarm

RflyUdpRaw 模块外观

简介

一句话描述:基于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)

特性项
支持的数据类型 doublesingle
直接馈通(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的接口规范

使用示例

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

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

请在上述路径中查看 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数据收发,支持仿真模式与真机飞行模式两种通信规则配置。