4.7 KiB
4.7 KiB
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 暂不提供完整的多自由度编辑器。
- 导入工程不会持久化,刷新页面后需要重新导入。