Skip to content

MiaoDX/robowbc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

199 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RoboWBC

RoboWBC runtime overview: TOML configs, registry, WbcPolicy core, ONNX and PyO3 backends, MuJoCo, joint targets, JSON, and Rerun reports

Linux-first embedded runtime for humanoid whole-body-control policy inference.

Reports · Getting Started · Architecture · Status · Python SDK · Founding Document

RoboWBC loads multiple WBC policies through one caller-facing contract: observations and commands in, joint position targets out. The Python SDK is the primary user surface through Registry, Observation, Policy, command classes, and MujocoSession. Embedded Rust is available for teams that own the host loop directly, while the CLI remains the reproducible validation, benchmarking, and reporting surface for the same runtime.

RoboWBC is Linux-only. Runtime backends fail fast on unsupported platforms instead of carrying partial or unverified fallbacks.

First Run

make toolchain
make build
make smoke
make ci

make help lists the repo-level commands for build, validation, benchmarks, site generation, and local serving. configs/decoupled_smoke.toml uses a checked-in dynamic identity ONNX fixture, so make smoke is the no-download local path.

See It Move

On Linux with a display and OpenGL available:

git clone https://github.com/MiaoDX/robowbc
cd robowbc
make demo-keyboard

make demo-keyboard is the protected clone-and-see-it-work path. It downloads the public GEAR-Sonic ONNX files and MuJoCo runtime on first run, starts the local MuJoCo viewer, and runs keyboard teleop. Keep the terminal focused: ] engages after init-pose settle. Then press 9 promptly in either the terminal or MuJoCo viewer if the support band is holding the robot high so it drops to foot contact. WASD changes linear velocity, QE changes yaw, Space zeroes velocity, O sends a zero-velocity emergency-stop tick, and Esc quits. Preserve the demo guardrails in docs/agents/keyboard-demo.md when changing this path.

Runtime Surfaces

Python uses Registry, Observation, command classes, and Policy.predict:

policy = Registry.build("decoupled_wbc", "configs/decoupled_smoke.toml")
targets = policy.predict(obs)

Rust uses the same registry and WbcPolicy contract:

let policy = WbcRegistry::build("my_policy", &policy_cfg)?;

Architecture

RoboWBC codebase architecture

TOML config or Python SDK
  -> robowbc-config + robowbc-registry
  -> WbcPolicy implementation
  -> Observation -> predict -> JointPositionTargets
  -> hardware, MuJoCo, synthetic transport, JSON report, Rerun trace, static site

Core contracts are Observation, WbcCommand, JointPositionTargets, WbcPolicy, PolicyCapabilities, and RobotConfig. Unsupported commands fail explicitly instead of falling back silently. Read ARCHITECTURE.md and docs/architecture.md for the crate map and extension points.

Policy Status

Policy State Config Notes
gear_sonic Live configs/sonic_g1.toml Published planner velocity path; CPU by default, CUDA/TensorRT opt-in
decoupled_wbc Live configs/decoupled_g1.toml Public G1 balance/walk checkpoints; smoke config needs no download
wbc_agile Live configs/wbc_agile_g1.toml Published G1 recurrent checkpoint; T1 path expects user export
bfm_zero Live configs/bfm_zero_g1.toml Public ONNX plus tracking context bundle
hover Blocked configs/hover_h1.toml Wrapper exists; no public pretrained checkpoint
wholebody_vla Experimental configs/wholebody_vla_x2.toml Contract wrapper only; no runnable public upstream release
py_model User supplied user TOML Loads Python modules or PyTorch checkpoints through robowbc-pyo3

Public Reports

The showcase job on main publishes generated HTML policy cards, proof-pack links, benchmark pages, JSON, .rrd, and raw artifacts:

Local report commands:

make site
make showcase-verify
make site-serve SITE_OPEN=1

make showcase-verify downloads public checkpoints and requires a working headless MuJoCo EGL environment. Use MUJOCO_DOWNLOAD_DIR and SITE_OUTPUT_DIR to override local cache and output paths.

Python SDK

pip install "maturin>=1.9.4,<2.0"
maturin develop
python -c "from robowbc import Registry; print(Registry.list_policies())"

The standalone Python package lives in crates/robowbc-py; robowbc-pyo3 provides the runtime backend for user-supplied Python or PyTorch policies. Examples live under crates/robowbc-py/examples/ and examples/python/.

Documentation

Related Projects

  • roboharness, companion visual testing and browser-report project
  • LeRobot, upstream robotics stack that can consume a WBC backend

License

robowbc is MIT-licensed; see LICENSE. Third-party dependencies and runtime-fetched policy weights retain their original licenses. See LICENSES/, docs/third-party-notices.md, and CONTRIBUTING.md for dependency and notice rules.

About

Linux-first embedded runtime for humanoid whole-body-control (WBC) policy inference. One contract, multiple backends — Python SDK with a Rust core, ONNX and PyO3.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors