cmvr-es/scripts/meshcat/README.md
lgv 4e9bd398f1 feat(collision): add collision primitive generation tools
Add URDF and USD collision primitive generation, MeshCat collision visualization, configuration, documentation, and generated Isaac Sim assets for the dual-arm model.
2026-07-27 15:39:54 +08:00

2.7 KiB
Raw Blame History

URDF 碰撞体查看器

view_urdf_collisions.py 使用 MeshCat 显示 URDF 中的碰撞体。默认按 Isaac Sim 风格 原样显示视觉 STL 和 URDF 材质,并用亮绿色线框显示 <collision>。它直接解析 URDF 的 link、joint 和 origin不依赖 Pinocchio。

安装

当前 cmvr-es Conda 环境已经安装 MeshCat。其他环境可执行

python -m pip install -r scripts/meshcat/requirements.txt

运行

推荐先激活 cmvr-es 环境,再进入项目根目录:

conda activate cmvr-es
cd /home/lgv/cmvr/0-workspace/cmvr-es

python \
  scripts/meshcat/view_urdf_collisions.py \
  --input model/xiaoyan_description/dual_arm_collision.urdf

不能在 /home/lgv/Desktop 等其他目录直接使用上述相对路径,否则 Python 会在当前 目录中查找 scripts/model/。另外MeshCat 安装在 cmvr-es 环境中,当前提示符 如果是 (base),需要先执行 conda activate cmvr-es

如果需要从任意目录启动,使用完整绝对路径和 conda run

conda run -n cmvr-es python \
  /home/lgv/cmvr/0-workspace/cmvr-es/scripts/meshcat/view_urdf_collisions.py \
  --input /home/lgv/cmvr/0-workspace/cmvr-es/model/xiaoyan_description/dual_arm_collision.urdf

脚本会打开浏览器,并持续运行到按下 Ctrl+C。如果不希望自动打开浏览器,可增加 --no-browser,然后手动打开终端输出的 MeshCat URL

需要关闭终端后继续查看,或者希望页面刷新后仍然保留场景时,导出独立 HTML

conda run -n cmvr-es python \
  scripts/meshcat/view_urdf_collisions.py \
  --input model/xiaoyan_description/dual_arm_collision.urdf \
  --export-html /tmp/dual_arm_collision_meshcat.html

独立 HTML 会嵌入视觉 STL 和碰撞体,因此文件较大,但不再依赖后台 Python 进程或 WebSocket 连接。

只显示碰撞体:

conda run -n cmvr-es python \
  scripts/meshcat/view_urdf_collisions.py \
  --input model/xiaoyan_description/dual_arm_collision.urdf \
  --collision-only

设置关节位置,旋转关节的单位为弧度:

conda run -n cmvr-es python \
  scripts/meshcat/view_urdf_collisions.py \
  --input model/xiaoyan_description/dual_arm_collision.urdf \
  --joint L_SHOULDER_P=0.5 \
  --joint R_SHOULDER_P=-0.5

其他显示选项:

  • --solid-collisions:把碰撞体切换为半透明实体
  • --visual-opacity 0.15:需要透视内部时降低视觉模型透明度
  • --collision-opacity 0.8:调整碰撞体线框或实体透明度
  • --collision-color 00ff66:使用十六进制颜色覆盖默认绿色
  • --collision-cylinder-lines 12:默认 12 条轴向母线,每 30° 一条