## 背景 [InstinctMJ](https://github.com/project-instinct/InstinctMJ)(Project Instinct 的 mjlab/MuJoCo-Warp 原生框架)实现了完整的感知运控任务族,其中 `Instinct-Perceptive-Shadowing-G1-v0` 的感知方案值得作为 motrixsim raycast/lidar 能力的实测参照: - **height_scan**:187 点 yaw 对齐 raycaster 网格(1.6×1.0m,0.1m 分辨率),作为特权 critic 观测(asymmetric actor-critic,policy 只见深度图,height_scan 不进 actor) - **depth_image**:针孔射线束(FOV 87°×58°,27×48 下采样到 18×32),纯 ray casting 生成(mjwarp BVH refit + raycast kernel),经归一化/crop/resize 噪声管线后进 policy - 传感器更新与 policy 频率解耦(per-env refresh mask + 过期帧缓存) ## 目标 以移植该感知任务为载体,对 motrixsim `0.10.1.dev121620` 的 **LidarSensor**(`LidarPattern.grid/rings/explicit`、`exclude` 自遮挡过滤、`LidarReturns` distance/point/normal)做测试评估: 1. 功能正确性:批量 env 下多 world 射线求交结果是否正确(与已知几何对照) 2. 性能吞吐:grid pattern(~百束量级/环境)× 批量 env × 50Hz policy 频率下的开销,静态快照模式 vs `hz` 旋转模式 3. API 契合度:`SensorValues` Query 批量读取 lidar 的形状/性能约束(注意 `execute` 的 batch shape 约束,参照 issue #20 经验) ## 工作分解 - [ ] **Spike**:go1 rough/stairs 场景 MJCF 挂 grid lidar,批量 env 读取,验证数值正确性 + 吞吐基线 - [ ] 新增 `height_scan` obs term(yaw 对齐网格高程,miss 值处理对齐 LidarReturns 的 -1 约定) - [ ] obs 基建补齐:history 堆叠(参照 InstinctMJ 8 帧)、gaussian noise(现仅 uniform) - [ ] 深度观测近似路径:针孔 grid pattern + distance 返回 + 归一化/裁剪后处理(真机噪声模型暂缓) - [ ] 感知版跟踪/行走 env(候选:go1 height_scan 进 value 通道的 rough terrain walk,复用 WbtMotionCommand / policy-value 双通道 asymmetric critic) - [ ] 评估报告:与 InstinctMJ(mjlab/Warp)实现对比,给出 GPU raycast 接入后的性能预期 ## 参考 - InstinctMJ:https://github.com/project-instinct/InstinctMJ (CC BY-NC 4.0,仅作设计参照,不移植代码) - Perceptive shadowing 配置:`src/instinct_mj/tasks/shadowing/perceptive/perceptive_env_cfg.py` - 相关联工作:#26(controller 接入,同属 obs 通道扩展)
背景
InstinctMJ(Project Instinct 的 mjlab/MuJoCo-Warp 原生框架)实现了完整的感知运控任务族,其中
Instinct-Perceptive-Shadowing-G1-v0的感知方案值得作为 motrixsim raycast/lidar 能力的实测参照:目标
以移植该感知任务为载体,对 motrixsim
0.10.1.dev121620的 LidarSensor(LidarPattern.grid/rings/explicit、exclude自遮挡过滤、LidarReturnsdistance/point/normal)做测试评估:hz旋转模式SensorValuesQuery 批量读取 lidar 的形状/性能约束(注意execute的 batch shape 约束,参照 issue perf: migrate MotrixSim write compiler to batched compile_write FFI plan #20 经验)工作分解
height_scanobs term(yaw 对齐网格高程,miss 值处理对齐 LidarReturns 的 -1 约定)参考
src/instinct_mj/tasks/shadowing/perceptive/perceptive_env_cfg.py