BotLab — 浏览器端的机器人仿真与控制开发环境
BotLab 是一个跑在浏览器里的机器人开发与仿真环境。打开网页就能写控制代码、加载机器人 模型、运行 MuJoCo 物理仿真、跑 ONNX 策略推理,并在三维视图里实时看到结果。不用装 仿真器,不用配 Python 环境,不用编译任何东西——从「想试一下这个策略」到「看到机器人 动起来」之间,只隔一个网页。
它解决什么问题
机器人仿真的入门成本一直集中在环境上:装仿真器、对齐版本、配依赖、解决显卡驱动, 真正写控制逻辑之前先花掉一两天。等到要把结果分享给别人——同事、评审、客户—— 对方还得把这套环境再装一遍,否则只能看录屏。
BotLab 把仿真器本身搬进了浏览器。MuJoCo 以 WebAssembly 运行,策略推理走 ONNX Runtime Web(优先 WebGPU,其次 WebNN,最后 WASM),三维渲染用 Three.js, 全部在本地这一个页面里完成。项目还可以打包发布成独立的仿真运行包,接收方打开链接 就能自己跑,而不是只能看你录的视频。
项目结构:三个文件
一个 BotLab 项目固定由三个入口文件组成,职责分开、没有隐式编排:
- botlab.yaml — 声明项目名称、物理与控制频率、资源引用和实时可调参数。
- main.py — 实验编排:取得仿真实例、创建控制器、启动控制循环。
- controller.py — 显式地选择、装配并导出控制器;标准控制器复用 SDK 内由资源 preset 配置的实现,需要自定义算法时在这里写。
编辑在内置的 Monaco 编辑器里完成,YAML 有 schema 校验,资源 id、类型、来源和参数 写错会当场报错而不是等到运行时。复杂控制器可以增加同目录的 Python 辅助模块,由项目 代码显式 import。
核心能力
- 浏览器内物理仿真:MuJoCo WebAssembly,支持 MJCF 与 URDF 机器人模型、地形与场景配置。
- 策略推理:ONNX Runtime Web 加载预训练策略,执行提供者按 WebGPU → WebNN → WASM 依次降级。
- 三维实时视图:Three.js 渲染机器人状态、接触点与地形,仿真数据直接驱动画面。
- 时序观测:uPlot Scope 面板实时绘制观测量、控制量与传感器读数。
- 模式与遥控:状态机式的模式切换,手柄和键盘命令可以映射到控制模式上。
- 动作参考:加载 motion 参考数据并按仿真步驱动播放与插值,用于模仿学习一类的场景。
- 资源生态:几何/物理模型(mesh、URDF、MJCF)、预训练 ONNX 策略、motion 参考数据三类资源都可以引用。
- 发布独立运行包:项目打包为 .botlab.zip,并可发布成一个能独立打开运行的仿真页面。
典型使用场景
- 拿到一个训练好的 ONNX 策略,想在真机之前先在仿真里快速看一眼它到底稳不稳。
- 课程或培训里需要让一屋子人同时跑仿真,但不想让每个人各装一套环境。
- 给客户或评审演示一个机器人行为,希望对方能自己改参数试,而不是只看录屏。
- 调机械臂的 IK、轨迹规划或阻抗控制,需要一个改完就能立刻看到结果的循环。
- 比较同一个机器人在不同地形、不同策略下的表现,需要可复现的工程配置。
它在平台里的位置
BotLab 负责机器人开发流程里「仿真验证」这一段,是链路的下游。机器人模型来自 BotWorld 与 URDF Studio,动作资产来自 Motion Studio,在 BotLab 里合成一个可运行的 闭环。四个产品可以各自独立使用,也可以围绕同一份资产串成一条完整链路。
- BotWorld — 机器人资产平台,模型、动作、技能、场景与案例的发现和分发入口。
- URDF Studio — 在线机器人模型编辑器,支持 URDF、MJCF、SDF、USD 的编辑与互转。
- Motion Studio — 动捕数据处理与多机器人动作重定向工作台。
- 平台文档中心 — 从资产到仿真的完整操作手册。
常见问题
- BotLab 需要安装吗?
- 不需要。仿真、推理和渲染全部在浏览器里运行,打开网页即可使用。
- 用什么仿真器?
- 当前是 MuJoCo,以 WebAssembly 形式在浏览器内运行。仿真器耦合被限制在专门的模块里, 为将来接入其他仿真器留了位置。
- 支持哪些机器人模型?
- MJCF 与 URDF,配套 mesh 资源。URDF Studio 里编辑好的模型可以直接拿过来用。
- 可以跑我自己训练的策略吗?
- 可以。把策略导出为 ONNX,在项目里作为资源引用,由 ONNX Runtime Web 在浏览器内推理。
- 做好的项目怎么分享?
- 项目可以打包为 .botlab.zip,也可以发布成独立仿真运行包——对方打开链接就能运行, 不需要安装任何东西。
- 对浏览器和硬件有什么要求?
- 需要一个支持 WebAssembly 的现代桌面浏览器。有 WebGPU 时推理会明显更快,没有也能跑, 会自动降级到 WebNN 或 WASM。