跳转至

uORB Write 模块文档

所属工具箱:uORB Read and Write

uORB Write 模块外观

简介

一句话描述:用于向PX4的uORB话题发布指定格式消息的uORB数据发布接口模块。

该模块属于RflySim工具链uORB通信接口库,支持用户在Simulink仿真环境中,将自定义的运算结果或控制数据按照PX4 uORB消息格式发布到对应话题。该模块支持自定义配置输入端口,可匹配任意已定义uORB话题的字段结构,生成代码时会自动包含对应uORB话题的定义文件。

该模块典型应用于用户自定义飞控算法开发场景,配合uORB Read模块使用,可实现Simulink层算法与PX4飞控栈之间的uORB消息交互,能够与CopterSim、RflySim3D、PX4完成联合仿真,用户可直接将自定义消息发布给PX4飞控,实现自定义控制逻辑的仿真与验证。

端口说明

输入端口(Inputs)

本模块输入端口由uORB Parameter Names and Data Type区域的配置动态生成,每个端口对应uORB话题的一个消息字段,典型配置格式如下:

端口名 数据类型 维度 说明
自定义字段名 用户指定 用户指定 待发布的uORB消息对应字段的数值

输出端口(Outputs)

本模块无输出端口。

参数配置(Parameters)

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

参数名 类型 默认值 可选值/范围 说明
uORB Topic string vehicle_attitude 任意合法uORB话题名 待发布消息的uORB话题名称
uORB Parameter Names and Data Type 表格配置 - 配置待发布消息各字段的名称、数据类型和维度
Sample time(s) double 0.01 >0 模块采样时间

参数设置说明

uORB Topic

指定需要发布消息的uORB话题名称,名称必须与PX4固件msg目录下已定义的话题文件名一致(不带.msg后缀)。可点击Open.msg file按钮打开当前指定话题的消息定义文件查看字段要求,点击Open.msg folder按钮可打开所有已定义uORB话题所在的文件夹查看所有可用话题。

uORB Parameter Names and Data Type

该区域通过表格配置所有需要发布的消息字段,每一行对应一个输入端口:

  • 变量名(Name):必须与话题消息定义文件中对应字段的名称完全一致
  • 数据类型(Data Type):必须与话题消息定义中对应字段的数据类型一致,支持doublesingleint8int16int32等常用数据类型
  • 维度(Dimension):必须与话题消息定义中对应字段的维度一致,标量填写1,数组填写对应长度

Sample time(s)

指定模块向uORB发布消息的采样间隔,单位为秒。

模块特性(Block Characteristics)

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

数据通信协议

本模块不涉及网络通信。

相关模块

模块名 说明
uORB Read 从指定uORB话题读取消息数据,将消息各字段输出到对应端口

使用示例

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

[RflySim安装路径]/RflySimAPIs/5.RflySimFlyCtrl/0.ApiExps/7.uORB-Read-Write/Readme.pdf

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

注意事项与常见问题

  • 初始化顺序:该模块必须在RflySim初始化配置模块初始化完成后运行,不可将uORB Write模块的输出/输入直接接入飞控启动前的逻辑,否则会出现话题注册失败、数据发布无效的问题。
  • 话题定义匹配:填写的uORB Topic名称必须与PX4固件msg目录下定义的话题名称完全一致,模块配置的每个输入端口的字段名、数据类型、维度必须和对应话题msg定义文件中的字段完全匹配,否则会导致代码编译报错或发布消息数据异常。
  • 自定义话题处理:如果使用自定义新增的uORB话题,需要先将自定义的.msg文件放入PX4固件的msg目录,完成PX4固件的编译刷新后才能在该模块中正常识别使用,否则无法加载自定义话题定义。
  • 采样时间匹配:设置的模块采样时间需要匹配对应uORB话题的更新频率,不可设置远大于话题设计更新频率的采样时间,避免不必要的资源占用;若和uORB Read模块配合使用,双方采样时间尽量匹配应用需求,避免出现数据发布与读取不同步的问题。
  • 重复发布问题:不可在同一个Simulink模型中对同一个uORB话题添加多个uORB Write模块同时发布数据,会导致话题数据冲突,出现不可预期的读写错误。

更新日志

  • v4.20 (2024-08-09): 初始版本发布,提供基础uORB话题消息发布功能,支持自定义配置输入端口对应uORB消息字段。