惯性测量单元 (IMU)#
Imu 模拟传统惯性测量单元输出的两种量:
ang_vel_b:相对于世界的角速度 [rad/s],以 IMU 坐标系表示。lin_acc_b:固有线加速度 [m/s²],以 IMU 坐标系表示。
固有加速度是加速度计实际测量的量。自由落体时它为零;传感器静止、受到支撑而抵抗重力时,它指向上方,大小为 \(g\) 。这与 位姿、速度与加速度(PVA)传感器 报告的坐标加速度不同。
配置传感器#
将传感器附着到刚体,或刚体下方的固定子坐标系。 offset 设置测量坐标系相对于父坐标系的位置和方向。
from isaaclab.sensors import ImuCfg
base_imu = ImuCfg(
prim_path="{ENV_REGEX_NS}/Robot/base/imu",
update_period=0.0,
offset=ImuCfg.OffsetCfg(
pos=(0.0, 0.0, 0.05),
rot=(0.0, 0.0, 0.0, 1.0),
),
debug_vis=True,
)
这两个数据字段都是 ProxyArray 缓冲区。对于 E 个环境,其 Torch 视图形状为 (E, 3) :
imu_data = scene["base_imu"].data
angular_velocity = imu_data.ang_vel_b.torch
proper_acceleration = imu_data.lin_acc_b.torch
加速度估计依赖连续的仿真状态。请同时重置场景及其传感器,避免将求导历史带入下一回合。传感器更新周期应与使用该测量值的控制循环兼容。
完整的可运行示例名为 imu :
uv run --extra isaacsim isaaclab example imu