Msg2SimulinkAPI 模块文档¶
所属工具箱:RflySim APIs

简介¶
一句话描述:对PX4 uORB消息
rfly_ctrl不同ID输出的数据进行解析封装,输出统一维度的消息总线信号。
该模块属于RflySim APIs工具库,专门用于解析PX4端通过UDP通信传输至Simulink仿真环境的自定义控制消息,是RflySim工具链中实现PX4与Simulink外部控制算法数据交互的重要组件。模块会将rfly_ctrl、rfly_ctrl1、rfly_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)¶
| 特性项 | 值 |
|---|---|
| 支持的数据类型 | double、single |
| 直接馈通(Direct Feedthrough) | 否 |
| 采样时间 | 离散 |
| 代码生成支持 | 否 |
数据通信协议¶
本模块不涉及网络通信。
相关模块¶
| 模块名 | 说明 |
|---|---|
Simulink2MsgAPI |
将Simulink输出的数据封装为uORB消息rfly_ctrl格式的输入模块 |
VehicleStatusGetAPI |
获取PX4无人机状态数据的输出模块 |
SetControllerAPI |
发送PX4无人机控制器控制指令的输入模块 |
OffboardControlAPI |
实现无人机Offboard模式控制指令发送的模块 |
使用示例¶
相关使用示例请参考以下路径:
请在上述路径中查看
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_ctrl、rfly_ctrl1、rfly_ctrl2的rfly_ctrl类型消息,若使用自定义消息ID或非rfly_ctrl类型消息,模块无法正确解析,输出数据会异常。
更新日志¶
v4.0(2024-08-07): 初始版本,实现uORB消息rfly_ctrl不同ID数据封装输出功能