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

简介¶
一句话描述:该模块用于从PX4的uORB消息订阅获取载具经过滤波处理的完整位置、速度、姿态、角加速度、角速度全量运动状态量。
该模块属于RflySim APIs接口库,是RflySim工具链中用于获取PX4端载具状态的基础功能模块,典型应用于自定义飞控算法开发、状态观测算法验证、状态数据记录分析等场景。
该模块会自动订阅PX4固件中vehicle_local_position、vehicle_attitude、vehicle_angular_velocity三个uORB话题,提取PX4飞控内部滤波估计后的全量运动状态,通过MsgBus总线输出整理后的加速度、时间戳、姿态四元数、欧拉角、机体角速度等状态数据,可与Simulink中的自定义控制算法模块直接对接,在基于CopterSim的PX4联合仿真、搭配RflySim3D的可视化仿真流程中,为用户算法提供可靠的PX4端状态输入。
端口说明¶
输入端口(Inputs)¶
本模块无输入端口。
输出端口(Outputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
MsgBus |
double |
1×21 |
输出载具经PX4滤波后的所有运动状态量,按照协议顺序排列:NED系三轴加速度ax, ay, az(3个)、系统时间戳timestamp(1个)、机体系FRD到地系NED的旋转四元数q(4个)、滚转/俯仰/偏航角Roll, Pitch, Yaw(3个)、机体系FRD三轴角速度xyz(3个),总计21个元素,单位分别为m/s²、μs、无量纲、rad、rad/s |
参数配置(Parameters)¶
双击模块打开的 Mask 对话框中可配置以下参数:
| 参数名 | 类型 | 默认值 | 可选值/范围 | 说明 |
|---|---|---|---|---|
Sample Time(s) |
double |
0.01 |
>0 |
模块采样时间,单位为秒 |
参数设置说明¶
Sample Time(s)¶
该参数控制模块状态数据读取的采样频率,需与Simulink模型的整体仿真步长匹配,常规仿真使用默认值即可,若需要更高频率的状态数据可根据需求减小该参数值。
模块特性(Block Characteristics)¶
| 特性项 | 值 |
|---|---|
| 支持的数据类型 | double、single、float32 |
| 直接馈通(Direct Feedthrough) | 否 |
| 采样时间 | 离散 |
| 代码生成支持 | 否 |
数据通信协议¶
本模块通过uORB消息总线订阅PX4飞控内部滤波后的状态消息,MsgBus输出数据协议格式如下:
| 字段 | 数据类型 | 说明 |
|---|---|---|
ax |
float32 |
NED大地坐标系下北向加速度,单位:m/s² |
ay |
float32 |
NED大地坐标系下东向加速度,单位:m/s² |
az |
float32 |
NED大地坐标系下向下加速度,单位:m/s² |
timestamp |
uint64 |
系统启动时间,单位:微秒 |
q[4] |
float32[4] |
从FRD机体坐标系到NED大地坐标系的旋转四元数 |
Roll |
float32 |
FRD坐标系下滚转角,由四元数转换得到,单位:rad |
Pitch |
float32 |
FRD坐标系下俯仰角,由四元数转换得到,单位:rad |
Yaw |
float32 |
FRD坐标系下偏航角,由四元数转换得到,单位:rad |
xyz[3] |
float32[3] |
修正偏差后的FRD机体坐标系三轴角速度,单位:rad/s |
相关模块¶
| 模块名 | 说明 |
|---|---|
PosVelAtt |
获取载具基本位置速度姿态状态量的模块 |
GetMAVLinkData |
通过MAVLink协议获取载具各类状态数据的模块 |
VehicleStatusGet |
获取PX4飞控核心状态信息的模块 |
使用示例¶
相关使用示例请参考以下路径:
请在上述路径中查看
Readme.pdf获取完整的示例说明与操作步骤。
注意事项与常见问题¶
- 初始化顺序:该模块依赖PX4飞控的uORB消息通信机制,仿真启动时需等待PX4飞控完成初始化、对应消息 topic 完成注册后,模块才能正确输出有效状态数据,仿真启动初期前几个采样步输出可能为零,属于正常现象。
- 坐标系说明:模块输出的位置、加速度为NED地面坐标系,姿态角和角速度为FRD机体坐标系,使用输出数据开发控制算法时请注意坐标系转换,避免因坐标系不匹配导致控制逻辑错误。
- 采样时间匹配:模块输出的PX4状态为滤波后数据,建议将模块采样时间设置为与PX4飞控内部状态估计周期一致(默认250Hz即0.004s),避免因采样频率不匹配获取到重复或过时的状态数据。
- 数据合法性检查:PX4飞控未完成起飞前锁桨状态下,部分状态字段初始值可能存在异常,建议在控制逻辑中添加对输出姿态、速度数据的范围检查,避免异常值导致算法误触发。
- 字段扩展说明:若需要获取该模块未输出的额外uORB字段,可参考PX4官方消息定义,在RflySim安装目录下的Firmware\msg文件夹中查看
vehicle_local_position、vehicle_attitude、vehicle_angular_velocity三个消息的完整字段定义。
更新日志¶
v4.20(2024-08-07): 初始版本发布,实现载具位置、速度、姿态、加速度全状态量获取功能,支持订阅vehicle_local_position、vehicle_attitude、vehicle_angular_velocity三个uORB滤波后消息输出。