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

167 lines
4.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.
# 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 和 Slide,Free、Ball Joint 暂不提供完整的多自由度编辑器。
- 导入工程不会持久化,刷新页面后需要重新导入。