跳转至

传感器

Genesis 不会通过 MJCF sensor block 暴露所有信号,因此 GeneLab 提供后端感知的传感器抽象。 传感器产出带缓存的数据,供 observation、reward、recording 和自定义代码消费。

生命周期

传感器声明在 InteractiveSceneCfg.sensors 中。ManagerBasedRlEnv 在 scene 存在后构建并绑定它们。 每个控制步会使缓存失效;第一次访问 sensor.data 时计算新输出。reset 会清理每 env 状态。

这种惰性缓存保证同一个控制步内多次 observation 和 reward 读取一致。

内置传感器族

传感器 用途
BodyVelocitySensor offset 处 link 线速度或角速度。
IMUSensor 姿态、projected gravity、线/角加速度。
CameraSensor 挂到 link 上的 RGB-D 相机。
ContactSensor 每 link 接触力和可选 air/contact time。
FrameTransformerSensor target frame 相对 source frame 的姿态。
RayCastSensor 解析法射线 vs 地面 / heightfield(grid、ring、hemisphere pattern)——地形高度扫描的 O(1) 快路。
MeshRayCastSensor Genesis BVH 射线对真实场景 mesh 求交——射线能打到任意刚体(道具、障碍)。目标需设 use_visual_raycasting=True
TerrainHeightSensor 地形感知 locomotion 的向下 height scan。
SelfContactSensor 自碰撞/自接触信号。
RootAngularMomentumSensor root angular momentum 诊断。

MDP term 中的传感器数据

observation term 可以通过 mdp.sensor_data 或自定义 callable 读取传感器。reward 和 metric 可以直接访问 env.sensors[name].data

保持传感器名称稳定;它们会成为配置路径、recording source 和 term params。

相机注意事项

并行 RGB-D 渲染需要 CUDA 和 InteractiveSceneCfg.batch_render=True。把 camera task 当成不同于轻量状态 RL task 的硬件 profile。

继续阅读