跳转至

uORB Read Async 模块文档

所属工具箱:uORB Read and Write

uORB Read Async 模块外观

简介

一句话描述:从PX4的uORB通信总线读取指定主题的最新数据,并驱动该模块所在的异步子系统运行。

该模块是RflySim工具链中实现Simulink与PX4飞控进行uORB通信的核心读取模块,归属于uORB Read and Write接口库,支持用户在Simulink自定义控制算法开发过程中,直接获取PX4飞控内部的uORB主题数据。该模块通过指定uORB主题名称与对应总线对象,可输出符合PX4飞控中任意主题的结构化数据,输出结果可直接作为Simulink控制逻辑的输入。

该模块主要用在基于异步仿真开发场景中,当PX4更新对应uORB主题更新时会触发该模块所在的异步子系统执行,配合CopterSim完成Simulink与PX4飞控的通信交互,支持用户在Simulink中开发自定义飞控逻辑、状态观测或数据分析功能,也可配合RflySim3D实现可视化仿真。用户可配合其他uORB读写模块,完成定制化的Pixhawk飞控代码半实物仿真或者纯软件在环仿真开发。

端口说明

输入端口(Inputs)

本模块无输入端口。

输出端口(Outputs)

端口名 数据类型 维度 说明
uORB 数据 由Bus Object定义 由Bus Object定义 指定uORB主题对应的最新仿真数据,用于驱动下游控制逻辑

参数配置(Parameters)

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

参数名 类型 默认值 可选值/范围 说明
Delected Topic string 由工程中已定义uORB主题确定 指定要读取的uORB主题名称
Enter Bus Object BusObject 由工程中已定义总线对象确定 指定与uORB主题关联的总线对象,定义输出数据的结构和数据类型

参数设置说明

Delected Topic

该参数用于指定需要异步读取数据的uORB主题名称,主题名称会根据回调自动匹配工程中实际存在的通信主题,需确保选择的主题与实际通信的主题一致,否则无法正确读取数据。

Enter Bus Object

该参数用于指定目标uORB主题对应的总线对象,总线对象定义了该主题输出消息的数据结构和各字段数据类型,模块输出端口的维度和数据类型由该总线对象决定;使用时需要保证该总线对象与异步触发外层模块的总线对象一致。

模块特性(Block Characteristics)

特性项
支持的数据类型 doublesingleuint8uint16uint32int8int16int32
直接馈通
采样时间 继承
代码生成支持

数据通信协议

本模块基于uORB进程内通信协议读取PX4内部主题数据,无需外部网络端口配置,模块直接访问PX4仿真环境的uORB主题共享数据区获取指定主题最新数据。

相关模块

模块名 说明
uORB Read Sync 同步读取指定uORB主题数据,适用于固定步长仿真轮询读取场景
uORB Write 将Simulink仿真数据写入指定uORB主题,供PX4飞控逻辑读取使用

使用示例

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

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

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

注意事项与常见问题

  • 初始化顺序:该模块需与RflySim无人机飞控仿真环境完成初始化绑定后才能正常读取数据,需要先完成PX4仿真环境配置与uORB话题注册,再运行仿真,否则会输出空数据或触发总线类型不匹配错误。
  • 总线一致性要求:模块中指定的Enter Bus Object总线对象,必须与实际uORB话题的消息结构完全匹配,同时需和异步子系统外层触发模块的总线定义保持一致,否则会出现数据解析错误或Simulink编译报错。
  • 异步触发逻辑:该模块本身用于驱动异步子系统运行,输出为指定uORB话题的最新更新数据,不要将其放置在同步采样的循环子系统中重复读取,否则会导致数据时序混乱。
  • 话题名称匹配:模块的Delected Topic主题名称会自动根据uORB注册回调生成,请不要手动修改该参数,否则会出现话题找不到,无法读取数据的问题。
  • 空数据处理:仿真初始阶段uORB话题尚未完成第一次更新时,该模块会输出全0初始数据,下游控制逻辑需要添加初始状态判断,避免初始控制量异常导致仿真发散。

更新日志

  • v4.3.0 (2024-08-08): 新增uORB Read Async异步读取模块,支持通过uORB主题驱动异步子系统并输出最新主题数据