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

81 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# URDF 碰撞体查看器
`view_urdf_collisions.py` 使用 MeshCat 显示 URDF 中的碰撞体。默认按 Isaac Sim 风格
原样显示视觉 STL 和 URDF 材质,并用亮绿色线框显示 `<collision>`。它直接解析 URDF
的 link、joint 和 origin不依赖 Pinocchio。
## 安装
当前 `cmvr-es` Conda 环境已经安装 MeshCat。其他环境可执行
```bash
python -m pip install -r scripts/meshcat/requirements.txt
```
## 运行
推荐先激活 `cmvr-es` 环境,再进入项目根目录:
```bash
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`
```bash
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
```bash
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 连接。
只显示碰撞体:
```bash
conda run -n cmvr-es python \
scripts/meshcat/view_urdf_collisions.py \
--input model/xiaoyan_description/dual_arm_collision.urdf \
--collision-only
```
设置关节位置,旋转关节的单位为弧度:
```bash
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° 一条