跳转至

Msg2SimulinkAPI 模块文档

所属工具箱:RflySim APIs

Msg2SimulinkAPI 模块外观

简介

一句话描述:对PX4 uORB消息rfly_ctrl不同ID输出的数据进行解析封装,输出统一维度的消息总线信号。

该模块属于RflySim APIs工具库,专门用于解析PX4端通过UDP通信传输至Simulink仿真环境的自定义控制消息,是RflySim工具链中实现PX4与Simulink外部控制算法数据交互的重要组件。模块会将rfly_ctrlrfly_ctrl1rfly_ctrl2三种不同ID的消息数据拼接封装为48维MsgBus信号输出,供Simulink端的控制算法读取PX4侧输出的各类传感、状态信息。

该模块典型应用于外部控制器调试、无人机控制算法联合仿真场景,通常搭配PX4飞控、CopterSim物理仿真引擎以及RflySim3D可视化环境使用:PX4输出的uORB自定义rfly_ctrl消息会通过通信接口传输至Simulink,本模块完成数据解析封装后,即可将飞控侧的信息传递给Simulink中开发的自定义控制算法,支撑联合仿真开发流程。

端口说明

输入端口(Inputs)

本模块无输入端口。

输出端口(Outputs)

端口名 数据类型 维度 说明
MsgBus double 1×48 输出封装后的rfly_ctrl消息总线数据,依次包含rfly_ctrl、rfly_ctrl1、rfly_ctrl2三个不同ID消息的数据内容

参数配置(Parameters)

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

参数名 类型 默认值 可选值/范围 说明
Sample Time(s) double 0.01 >0 模块采样时间,控制输出数据的更新频率

参数设置说明

Sample Time(s)

该参数定义模块输出数据的更新周期,单位为秒,需根据整个仿真模型的步长和任务需求设置合理数值,一般飞控控制场景可设置为0.01s。

模块特性(Block Characteristics)

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

数据通信协议

本模块不涉及网络通信。

相关模块

模块名 说明
Simulink2MsgAPI 将Simulink输出的数据封装为uORB消息rfly_ctrl格式的输入模块
VehicleStatusGetAPI 获取PX4无人机状态数据的输出模块
SetControllerAPI 发送PX4无人机控制器控制指令的输入模块
OffboardControlAPI 实现无人机Offboard模式控制指令发送的模块

使用示例

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

[RflySim安装路径]/RflySimAPIs/5.RflySimFlyCtrl/0.ApiExps/9.PX4CtrlExternalTune/Readme.pdf

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

注意事项与常见问题

  • 初始化顺序:该模块需要依赖RflySim仿真环境的uORB消息通信链路完成初始化,必须放置在PX4固件启动、仿真环境通信链路建立之后运行,否则会输出全零数据。
  • 输出维度匹配:模块固定输出48维MsgBus信号,对应3组rfly_ctrl消息(rfly_ctrl、rfly_ctrl1、rfly_ctrl2)各16维数据,使用时需按照该维度拆分提取数据,不可直接修改输出维度,否则会引发信号维度不匹配报错。
  • 采样时间匹配:模块输出采样时间需要和接收uORB消息的PX4固件调度周期匹配,建议设置为和PX4控制周期相同的0.001s~0.01s,若采样时间远大于PX4消息更新频率,会导致输出数据延迟,若远小于更新频率会产生冗余重复数据。
  • 消息ID兼容性:该模块仅能解析uORB消息中ID为rfly_ctrlrfly_ctrl1rfly_ctrl2的rfly_ctrl类型消息,若使用自定义消息ID或非rfly_ctrl类型消息,模块无法正确解析,输出数据会异常。

更新日志

  • v4.0 (2024-08-07): 初始版本,实现uORB消息rfly_ctrl不同ID数据封装输出功能