位姿、速度与加速度(PVA)传感器#
Pva 读取坐标系的运动学真值状态。它适用于特权观测、状态估计,以及需要比惯性传感器测量内容更多的控制输入。如果观测应遵循加速度计和陀螺仪的约定,请使用 惯性测量单元 (IMU) 。
传感器可以直接附着到刚体,也可以附着到具有刚体祖先节点的固定子 prim。后一种情况下,Isaac Lab 会将子节点的固定变换与配置的传感器偏移组合。
测量约定#
对于 E 个环境,每个向量的形状为 (E, 3) 。位姿形状为 (E, 7) ,分量顺序为 (x, y, z, qx, qy, qz, qw) 。
缓冲区 |
坐标系和单位 |
含义 |
|---|---|---|
|
世界坐标系;[m,无单位] |
传感器位置和方向 |
|
传感器坐标系;无单位 |
投影到传感器坐标系中的单位重力方向 |
|
传感器坐标系;[m/s] |
相对于世界的线速度 |
|
传感器坐标系;[rad/s] |
相对于世界的角速度 |
|
传感器坐标系;[m/s²] |
坐标线加速度;静止时为零,自由落体时为 \(-g\) |
|
传感器坐标系;[rad/s²] |
相对于世界的角加速度 |
配置和读取传感器#
from isaaclab.sensors import PvaCfg
base_state = PvaCfg(
prim_path="{ENV_REGEX_NS}/Robot/base",
update_period=0.0,
offset=PvaCfg.OffsetCfg(pos=(0.0, 0.0, 0.05)),
)
数据字段为 ProxyArray 缓冲区。仅在需要 Torch 操作时将它们转换为 Torch 视图:
pva_data = scene["base_state"].data
pose_w = pva_data.pose_w.torch
linear_velocity = pva_data.lin_vel_b.torch
coordinate_acceleration = pva_data.lin_acc_b.torch
与 IMU 一样,加速度使用连续仿真更新中的状态计算。请在回合边界同时重置场景和传感器状态。
完整的可运行示例名为 pva :
uv run --extra isaacsim isaaclab example pva