cmvr_ai_lab/source/engineai_lab/assets/gen2/README.md
2026-07-20 08:56:11 +08:00

2.6 KiB
Raw Blame History

Gen2 运行时资产

本目录是 engineai_lab Python 包内唯一的 Gen2 运行时资产位置。这样 editable 安装、wheel 安装和从其他工作目录启动时都会得到同一份 URDF 与 mesh。

gen2/
├── README.md
├── urdf/
│   ├── robot.urdf
│   ├── robot_simplified_collision.urdf
│   └── robot_simplified_collision_mesh.urdf
└── meshes/
    ├── *_visual.stl
    ├── *_collision.stl
    └── collision_simplified/
        └── *_box_collision.stl

三份 URDF 的职责

文件 用途 是否用于训练
robot.urdf 原始高精度 visual/collision作为生成源和人工核对基准
robot_simplified_collision.urdf visual mesh + URDF box collision接触更稳定、计算更轻 是,唯一默认训练资产
robot_simplified_collision_mesh.urdf visual mesh + 简化 box STL便于外部工具叠加检查

source/engineai_lab/robots/gen2.py 明确加载 robot_simplified_collision.urdf。文件缺失时会直接报错,不会静默回退到原始高精度碰撞体,避免不同安装环境得到不同训练物理。

URDF 内 mesh 使用相对路径:

../meshes/<link>_visual.stl
../meshes/<link>_collision.stl
../meshes/collision_simplified/<link>_box_collision.stl

不要写机器相关的绝对路径或旧的 source/gen2_lab 路径。

重新生成简化碰撞体

生成脚本不会覆盖 robot.urdf

cd /home/xtkuang/Projects/cmvr/RL/cmvr_ai_lab

/home/xtkuang/App/anaconda3/envs/engineai_lab/bin/python \
  scripts/gen2_generate_simplified_collisions.py

它会更新两份 simplified URDF 和 meshes/collision_simplified/,审计 CSV 写入 outputs/gen2_asset_audit/

生成后必须执行:

/home/xtkuang/App/anaconda3/envs/engineai_lab/bin/python \
  scripts/gen2_check_rl_readiness.py

/home/xtkuang/App/anaconda3/envs/engineai_lab/bin/python \
  scripts/gen2_visualize_collisions.py

静态检查期望 RESULT=PASS,且 pelvis/torso 高度目标不能显示 unknown。可视化 PNG 写入 outputs/gen2_asset_audit/,不写回资产包。

修改约束

  1. robot.urdf 是生成源,先在这里确认 link、joint、limit、mass、inertia 和 mesh。
  2. 不要直接手改生成的 simplified URDF 后忘记同步生成脚本。
  3. 训练前检查 29 个 link、28 个 joint、全部 mesh 引用和 q0 脚底高度。
  4. 历史 logs/**/params/env.yaml 中的旧绝对路径只是训练快照,不要批量改写。
  5. 供应商原始压缩包放在仓库 third_party/gen2/,不进入运行时 wheel。