Skip to content

MiaoDX/robowbc

Repository files navigation

RoboWBC

Unified inference runtime for humanoid whole-body control policies.

Open Live Policy Reports · Getting Started · Architecture · Python SDK · Founding Document

RoboWBC gives you one config-driven runtime for loading multiple WBC policies, running them through the same Rust CLI, and exporting the same JSON + Rerun report pipeline across smoke tests, MuJoCo runs, and hardware-oriented transports.

RoboWBC is a Linux-only project. The runtime backends fail fast on non-Linux targets instead of carrying partial or unverified platform fallbacks.

Run make help to see the repo-level commands for build, validation, benchmarks, site generation, and local serving.

Published HTML reports

These pages are generated by the showcase job on main and published directly from the CI artifact bundle:

Page Link Purpose
Site home https://miaodx.com/robowbc/ Comparison-first overview across all generated policy cards
NVIDIA benchmarks https://miaodx.com/robowbc/benchmarks/nvidia/ Normalized RoboWBC-vs-official benchmark comparison page
GEAR-SONIC detail https://miaodx.com/robowbc/policies/gear_sonic/ Planner-driven velocity showcase, logs, JSON, .rrd, and proof-pack assets
Decoupled WBC detail https://miaodx.com/robowbc/policies/decoupled_wbc/ GR00T WholeBodyControl locomotion showcase with the same staged command profile
WBC-AGILE detail https://miaodx.com/robowbc/policies/wbc_agile/ Published G1 recurrent checkpoint detail page and raw artifacts
BFM-Zero detail https://miaodx.com/robowbc/policies/bfm_zero/ Prompt-conditioned tracking showcase with context-bundle artifacts

RoboWBC architecture

What ships today

Area Status
Runtime Rust workspace with registry-driven policy loading, ONNX Runtime and PyO3 backends, MuJoCo and communication transports, plus JSON and Rerun reporting
Live public-policy paths gear_sonic, decoupled_wbc, wbc_agile, bfm_zero
Honest blocked wrappers hover needs a user-exported checkpoint, wholebody_vla still lacks a runnable public upstream release
Published visual report The main workflow is wired to build the same HTML report in CI and publish it to the live report link above

Policy status

Policy Status Public assets Example config Notes
gear_sonic Live Yes configs/sonic_g1.toml Uses the published planner_sonic.onnx velocity path by default; standing_placeholder_tracking = true exposes the narrower encoder+decoder standing-placeholder path
decoupled_wbc Live Yes configs/decoupled_g1.toml Public G1 balance and walk checkpoints; configs/decoupled_smoke.toml stays as the no-download smoke path
wbc_agile Live Yes configs/wbc_agile_g1.toml Published G1 recurrent checkpoint is wired; the T1 path still expects a user export
bfm_zero Live Yes configs/bfm_zero_g1.toml Public ONNX plus tracking context bundle is normalized by scripts/download_bfm_zero_models.sh
hover Blocked No configs/hover_h1.toml Wrapper exists, but the public upstream repo does not ship a pretrained checkpoint
wholebody_vla Experimental No configs/wholebody_vla_x2.toml Contract wrapper only; the public upstream repo does not yet expose a runnable inference release
py_model User supplied N/A user TOML Loads Python modules or PyTorch checkpoints through robowbc-pyo3

The generated HTML report includes every currently working public-asset policy: gear_sonic, decoupled_wbc, wbc_agile, and bfm_zero.

Quick start

make toolchain
make build
make smoke
make ci

configs/decoupled_smoke.toml uses the checked-in dynamic identity ONNX fixture, so it is the intended no-download local smoke path. make ci runs the same repo entry points that GitHub CI uses for Rust validation, docs, Python SDK verification, and the generated HTML site bundle.

Run the live public policies
bash scripts/download_gear_sonic_models.sh
cargo run --release --bin robowbc -- run --config configs/sonic_g1.toml

bash scripts/download_decoupled_wbc_models.sh
cargo run --release --bin robowbc -- run --config configs/decoupled_g1.toml

bash scripts/download_wbc_agile_models.sh
cargo run --release --bin robowbc -- run --config configs/wbc_agile_g1.toml

bash scripts/download_bfm_zero_models.sh
cargo run --release --bin robowbc -- run --config configs/bfm_zero_g1.toml

gear_sonic defaults to the published planner_sonic.onnx velocity path. To exercise the narrower encoder+decoder standing-placeholder path instead, set standing_placeholder_tracking = true in configs/sonic_g1.toml. That path does not execute planner_sonic.onnx on the tick and is not a generic motion-reference streaming interface. bfm_zero fetches the public ONNX plus tracking bundle and converts the context into the runtime layout used by both the CLI and CI.

Open or generate the visual report

The same site builder powers both the local static bundle and the published GitHub Pages site.

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

make site wraps scripts/build_site.py and now owns the full local/CI site build. It picks ./.cache/mujoco by default, downloads MuJoCo there when needed, rebuilds the robowbc binary with robowbc-cli/sim-auto-download,robowbc-cli/vis, runs the benchmark generators, forces the same MUJOCO_GL=egl / PYOPENGL_PLATFORM=egl offscreen path that the GitHub showcase job uses, and assembles the final static bundle into /tmp/robowbc-site. Set MUJOCO_DOWNLOAD_DIR=/your/cache make site if you want a different cache location, or override SITE_OUTPUT_DIR=/your/output make site if you want the site somewhere else. make site-smoke validates the generated bundle layout without serving it, and make site-serve-check does a short start/stop probe of the local HTTP server.

make showcase-verify is the closest local equivalent to the GitHub showcase job. It installs the site Python deps, runs the same headless MuJoCo EGL render smoke check that CI now relies on, downloads the public checkpoints, builds the site bundle, and fails if any MuJoCo-backed policy page ships a proof-pack manifest without real screenshots. On Ubuntu, install the headless EGL runtime first if that render smoke check fails: sudo apt-get install -y libegl1 libegl-mesa0 libgles2 libgl1-mesa-dri libgbm1.

The output folder contains index.html, manifest.json, policies/<policy>/ folders with per-policy HTML plus raw run artifacts, benchmarks/nvidia/ with the NVIDIA comparison page, and assets/rerun-web-viewer/ for embedded Rerun playback. Pull requests keep the downloadable robowbc-site artifact, and main publishes the generated site to the live report links above.

Manual real-model verification
bash scripts/download_gear_sonic_models.sh
cargo test -p robowbc-ort -- --ignored gear_sonic_real_model_inference

bash scripts/download_decoupled_wbc_models.sh
cargo test -p robowbc-ort -- --ignored decoupled_wbc_real_model_inference

bash scripts/download_wbc_agile_models.sh
cargo test -p robowbc-ort -- --ignored wbc_agile_real_model_inference

bash scripts/download_bfm_zero_models.sh
BFM_ZERO_MODEL_PATH=models/bfm_zero/bfm_zero_g1.onnx \
BFM_ZERO_CONTEXT_PATH=models/bfm_zero/zs_walking.npy \
cargo test -p robowbc-ort bfm_zero_real_model_inference -- --ignored --nocapture

hover still requires a user-trained exported checkpoint, and wholebody_vla still requires a compatible private or local model because no runnable public release exists upstream today.

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

The standalone Python package lives in crates/robowbc-py, while robowbc-pyo3 provides the runtime backend for user-supplied Python or PyTorch policies.

Workspace layout
Path Purpose
crates/robowbc-core WbcPolicy, Observation, WbcCommand, JointPositionTargets, RobotConfig
crates/robowbc-registry inventory-based policy registration and factory
crates/robowbc-ort ONNX Runtime backends and policy wrappers
crates/robowbc-pyo3 Python-backed runtime policy loading
crates/robowbc-comm Control-loop plumbing and robot transports
crates/robowbc-sim MuJoCo transport for hardware-free execution
crates/robowbc-vis Rerun visualization and .rrd recording
crates/robowbc-cli robowbc CLI binary
crates/robowbc-py Standalone maturin package for the Python SDK

Documentation

Related projects

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

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors