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

简介¶
一句话描述:对RflyVrpnRecv接收的VRPN动捕数据进行解析解码,以总线形式输出无人机的各类状态信息。
该模块是RflySim Swarm集群工具链中针对动捕定位数据处理的核心模块,搭配数据接收模块RflyVrpnRecv使用,主要用于将外部动捕系统通过VRPN协议传输的原始数据包解析为可直接用于仿真控制的结构化数据。在集群协同定位、室内无人机控制仿真、动捕辅助状态估计等场景中,该模块是对接动捕系统与Simulink控制算法的关键中间层。
该模块解析完成后会以总线形式输出无人机的动捕位置、速度、加速度、时间戳,同时输出有效数据标志位,便于控制逻辑判断数据可用性,提取总线数据时MATLAB会自动提示总线包含的可用数据项,方便开发者快速对接自主设计的控制算法,处理后的数据也可进一步结合CopterSim、PX4固件以及RflySim3D完成闭环仿真与三维可视化展示。
端口说明¶
输入端口(Inputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
RawData |
double |
N×1 |
输入RflyVrpnRecv模块输出的原始VRPN数据 |
输出端口(Outputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
StateBus |
Bus |
1 | 包含无人机各类状态的总线信号 |
ValidFlag |
boolean |
1×1 | 是否接收到有效VRPN数据的标志位,1为数据有效,0为数据无效 |
参数配置(Parameters)¶
双击模块打开的 Mask 对话框中可配置以下参数:
| 参数名 | 类型 | 默认值 | 可选值/范围 | 说明 |
|---|---|---|---|---|
UAVName |
string |
"Quad1" |
- | 需要解码VRPN数据的目标无人机名称[待确认] |
参数设置说明¶
UAVName¶
指定待解码的目标无人机的VRPN数据名称,模块会从RflyVrpnRecv输出的原始数据中提取对应名称无人机的状态信息,输出到总线中。
模块特性(Block Characteristics)¶
| 特性项 | 值 |
|---|---|
| 支持的数据类型 | double、single |
| 直接馈通(Direct Feedthrough) | 是 |
| 采样时间 | 继承 |
| 代码生成支持 | 否 |
数据通信协议¶
本模块不涉及网络通信。
相关模块¶
| 模块名 | 说明 |
|---|---|
RflyVrpnRecv |
接收来自VRPN动捕系统的原始数据,作为本模块的输入源 |
UAV_Dynamics_4Rfly |
可接入本模块输出的无人机状态数据,用于 swarm 仿真验证 |
PX4_Simulink_Control |
可基于本模块输出的动捕状态信息进行闭环控制 |
注意事项与常见问题¶
- 初始化顺序:该模块必须和同库的
RflyVrpnRecv模块配合使用,仿真运行前请确保RflyVrpnRecv模块已经正确配置并连接到该模块的输入端口,否则会出现总线数据类型不匹配或输出全零错误。 - 采样时间匹配:该模块的采样时间需要和上级
RflyVrpnRecv模块的接收采样时间保持一致,若采样时间差异过大,会导致输出状态数据跳变、时间戳不连续,建议设置为相同的离散采样时间。 - 总线数据提取:使用Bus To Element模块提取总线内数据时,若提示找不到对应信号,请检查仿真运行后MATLAB工作区是否生成对应的总线对象,或更新总线数据定义后重新连接提取模块。
- 有效性判断使用:该模块输出的
data_valid标志位为有效数据判断依据,开发控制逻辑时建议添加该标志位的判断逻辑,避免在动捕数据丢失时使用错误的历史状态数据导致仿真异常。 - 多无人机集群场景:在集群仿真中每一架无人机需要单独配置一个
vrpn_data_decoder模块,请勿多个无人机共用一个解码模块,否则会出现数据串扰或解码错误。
更新日志¶
v4.0.0(2024-01-01): 初始版本,发布vrpn_data_decoder模块,支持搭配RflyVrpnRecv解码无人机动捕位置、速度、加速度、时间戳和数据有效标志,通过总线输出各类状态信息。