跳转至

vrpn_data_decoder 模块文档

所属工具箱:RflySim Swarm

vrpn_data_decoder 模块外观

简介

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

特性项
支持的数据类型 doublesingle
直接馈通(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解码无人机动捕位置、速度、加速度、时间戳和数据有效标志,通过总线输出各类状态信息。