Files
Mujoco_WASM/wasm/web_platform/V0.1_CAPABILITIES.md
T

4.7 KiB
Raw Blame History

MuJoCo Web Platform V0.1 能力总结

1. 浏览器内模型导入

支持以下模型和资源格式:

  • MJCF/XML
  • URDF
  • ZIP 工程包
  • 文件夹工程
  • OBJ、STL、DAE Mesh
  • PNG、JPG 等纹理资源
  • MJCF include 多文件工程
  • URDF package:// 资源路径

导入工程仅保存在当前浏览器会话和 WASM 文件系统中,不会修改或删除本地文件。

2. 工程资源管理

  • 按真实目录层级展示工程文件。
  • 目录优先并按文件名排序。
  • 标记和高亮当前模型入口。
  • 导入 URDF 时,只自动展开选中 URDF 所在的目录路径。
  • 其他目录默认折叠,仍可手动展开。
  • 支持从当前会话中移除整个工程。

3. URDF 兼容处理

提供两种加载方式:

  • 转换为 MJCF(推荐)
  • MuJoCo 原生 URDF

自动兼容处理包括:

  • package:// 地址改写为工程相对路径。
  • 在浏览器内将 DAE 转换为 OBJ。
  • 保留 DAE 单位、坐标轴和节点变换。
  • 保留 URDF visual mesh 和 Body 层级。
  • 处理 MuJoCo 不支持的重复 material。
  • DAE 转换失败时提供降级几何。
  • 自动添加 z=0 物理地面。
  • 计算模型最低几何点并对齐到地面。

4. 固定与浮动基座

URDF 转 MJCF 时可以选择:

  • 浮动基座
    • 自动添加根 freejoint
    • 支持重力、碰撞和外力运动。
  • 固定基座
    • 根 Body 与世界固连。

切换基座类型后会自动重新转换并加载模型。

5. Three.js 模型可视化

  • 渲染 MuJoCo Body、Geom 和 Mesh。
  • 支持 Box、Sphere、Capsule、Cylinder、Ellipsoid、Plane 和 Mesh。
  • 正确解析 MuJoCo mjvGeom.dataid 的 Mesh/凸包编码。
  • 支持材质颜色、透明度和基础纹理。
  • 默认显示 visual 并隐藏 collision。
  • 可切换显示碰撞几何。
  • 自动计算相机中心和观察范围。
  • 无限地面不会影响相机包围范围。
  • 支持相机旋转、缩放、平移和复位。

6. XYZ 方向指示器

  • 右下角提供固定的 XYZ 方向指示器。
  • X、Y、Z 分别使用红、绿、蓝色。
  • 指示器随相机方向实时旋转。
  • 不参与模型拾取和交互。

7. 模型结构树

左侧工程文件树下方显示 MuJoCo 模型结构:

  • 按 Body 父子关系组织。
  • 显示每个 Body 所属的 Joint。
  • 支持层级展开和折叠。
  • 鼠标悬停或键盘聚焦关节时:
    • 高亮关节所属 Body。
    • 在关节锚点显示黄色标记。
    • 标记随仿真运动实时更新。

8. 仿真控制

支持:

  • 播放和暂停。
  • 单步运行。
  • 完整重置。
  • 0.25×4× 仿真速度。
  • 实时仿真时间和物理耗时。
  • 主线程步进预算及追帧限制。
  • 播放中重置后仍可正常再次播放和暂停。

快捷键:

  • Space:播放/暂停。
  • R:重置。
  • 1/2/3:切换交互模式。

9. 关节控制

  • 使用滑块调整旋转和滑动关节。
  • 只读显示 Free、Ball 等不适合单滑块编辑的关节。
  • 调整关节时自动暂停仿真。
  • 支持重置所有可编辑关节。
  • 重置时恢复初始位置并清零对应速度。
  • 支持忽略 MuJoCo 关节限位。
  • 恢复限位时自动将超限值钳制回合法范围。
  • 高级模式显示原始上下限和“已忽略”状态。
  • 旋转关节支持弧度制和角度制切换。
  • 滑动关节保持使用米制单位。

10. Actuator 与交互工具

  • 显示模型 Actuator。
  • 根据 ctrlrange 提供控制滑块。
  • 提供三种视口交互模式:
    • 物体选择。
    • 关节拖动。
    • 外力施加。
  • 外力强度可调。
  • 松开鼠标后自动清除外力。
  • 显示当前选中的 Body、Geom、类型和世界位置。

11. 界面与主题

  • 中文用户界面。
  • 左右面板支持显示、隐藏和宽度调整。
  • 支持白天与黑夜主题切换。
  • 主题选择保存到浏览器本地。
  • UI、视口、网格和 XYZ 指示器同步换色。
  • 使用约 420 ms 的平滑主题切换动画。
  • 支持系统“减少动态效果”设置。

12. 状态与诊断

实时显示:

  • 仿真时间。
  • FPS。
  • 物理步进耗时。
  • 浏览器内存使用情况。
  • WASM 加载状态。
  • Body、Joint、Geom、Actuator、qpos 和 qvel 数量。

错误分类包括:

  • 导入失败。
  • ZIP 解析失败。
  • 模型编译失败。
  • 渲染失败。

URDF 自动兼容处理会以中文列出具体修改内容。

13. 当前限制

  • DAE 转 OBJ 主要保留几何、单位和节点变换,内嵌材质及复杂贴图不能完全保留。
  • 仿真和渲染目前运行在浏览器主线程。
  • 关节滑块主要面向 Hinge 和 SlideFree、Ball Joint 暂不提供完整的多自由度编辑器。
  • 导入工程不会持久化,刷新页面后需要重新导入。