Skip to content

feat: 移植 InstinctMJ 感知运控任务,评估 motrixsim LidarSensor(height scan / depth) #30

Description

@wlgys8

背景

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.dev121620LidarSensorLidarPattern.grid/rings/explicitexclude 自遮挡过滤、LidarReturns distance/point/normal)做测试评估:

  1. 功能正确性:批量 env 下多 world 射线求交结果是否正确(与已知几何对照)
  2. 性能吞吐:grid pattern(~百束量级/环境)× 批量 env × 50Hz policy 频率下的开销,静态快照模式 vs hz 旋转模式
  3. API 契合度:SensorValues Query 批量读取 lidar 的形状/性能约束(注意 execute 的 batch shape 约束,参照 issue perf: migrate MotrixSim write compiler to batched compile_write FFI plan #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 接入后的性能预期

参考

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions