跳转至

OffCtrlMsgAll 模块文档

所属工具箱:RflySim APIs

OffCtrlMsgAll 模块外观

简介

一句话描述:该模块用于从PX4飞控订阅并输出所有Offboard控制模式相关的uORB消息数据,为Simulink侧的离线控制开发提供完整的飞控状态与控制设定信息。

该模块属于RflySim APIs接口库,是RflySim工具链中支持Offboard模式无人机开发的核心通信模块,专为在Simulink环境中开发自定义离线控制算法提供数据源支持。在仿真流程中,该模块与PX4飞控、CopterSim物理引擎仿真程序交互,从PX4飞控中订阅vehicle_status、offboard_control_mode、trajectory_setpoint、vehicle_attitude_setpoint、vehicle_rates_setpoint共5类和Offboard控制相关的uORB消息,将所有消息中的字段整合后通过MsgBus总线输出给Simulink中的自定义控制逻辑。

该模块的典型使用场景是配合Offboard控制算法开发,开发者可以直接获取PX4飞控的当前状态、现有控制设定等全部相关信息,无需单独配置多个消息订阅模块,简化了Simulink模型的搭建流程,支持快速开发、验证基于PX4的自定义离线控制算法,搭配RflySim3D可视化模块即可完成全流程的闭环仿真验证。各输出消息字段的具体定义可参考PX4官方文档或RflySim安装目录下的Firmware\msg目录中的定义文件。

端口说明

输入端口(Inputs)

本模块无输入端口。

输出端口(Outputs)

端口名 数据类型 维度 说明
MsgBus Bus - 输出vehicle_status、offboard_control_mode、trajectory_setpoint、vehicle_attitude_setpoint、vehicle_rates_setpoint这些uORB消息中定义的所有数据

参数配置(Parameters)

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

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

参数设置说明

Sample Time(s)

该参数用于指定模块的采样步长,控制模块输出offboard控制相关消息的频率,可根据仿真任务的控制需求调整合适的采样时间。

模块特性(Block Characteristics)

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

数据通信协议

本模块通过UDP协议与PX4飞控仿真进程通信,获取uORB话题数据,默认使用飞控端提供的UDP数据端口完成数据订阅,输出整合后的uORB消息总线数据。

相关模块

模块名 说明
VehicleStatusGet 解析OffCtrlMsgAll输出的消息总线,提取vehicle_status状态数据
OffboardModeSet 向飞控发送Offboard控制模式切换指令
SetPointSender 发送各类控制设定点到飞控,配合Offboard控制使用
UORB_Read 读取单个指定uORB话题的消息数据
UORB_Write 写入单个指定uORB话题的消息数据

使用示例

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

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

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

注意事项与常见问题

  • 初始化顺序:本模块依赖PX4固件uORB消息机制完成数据订阅,仿真启动前请确保RflySim环境已完成初始化、PX4仿真进程已正常启动,否则会出现消息订阅失败,输出全零数据的问题。
  • 采样时间匹配:请将本模块的采样时间设置为和Offboard控制逻辑模块的采样时间保持一致,避免因采样频率不匹配导致控制消息读取滞后,引发控制异常;PX4 Offboard控制要求心跳消息至少500ms刷新一次,建议本模块采样时间不大于0.2s,保证数据实时性。
  • 消息输出使用:本模块输出为整合的MsgBus总线信号,如需单独提取某类uORB消息的字段,需配合Simulink的Bus Selector模块使用,字段定义可前往RflySim安装目录下的Firmware\msg文件夹查看对应消息文件。
  • 模式适配说明:本模块仅在PX4 Offboard控制模式下输出有效消息数据,若无人机处于其他飞行模式,部分控制相关的消息字段会保持默认值,开发Offboard控制逻辑时,请先通过本模块输出的vehicle_status消息判断当前是否已切到Offboard模式,再执行控制算法。

更新日志

  • v4.00 (2024-08-07): 初始版本发布,支持订阅Offboard控制相关的vehicle_status、offboard_control_mode、trajectory_setpoint、vehicle_attitude_setpoint、vehicle_rates_setpoint共5种uORB消息,可总线输出所有消息内的定义数据。