OPEN SOURCE DEEP DIVE
GRIT: Whole-Body Motion-Tracking Control and VR Teleoperation Deployment for Unitree G1
GRIT is a deployment framework for whole-body motion-tracking control on the Unitree G1 humanoid: ONNX policy, 50 Hz Python inference runtime, MuJoCo sim2sim, live PICO VR full-body teleoperation, and a native SDK2 hardware bridge with stale-command watchdog — a complete low-barrier pipeline for whole-body control and teleoperation data collection.
What GRIT Is
GRIT (v0.0.1) is an open-source deployment stack for whole-body motion-tracking control of the Unitree G1 humanoid. The repository ships everything needed to run the policy outside the research sandbox: the ONNX checkpoint with an explicit deployment contract, a 50 Hz Python inference and control runtime, headless and interactive MuJoCo sim2sim, live-motion retargeting from PICO VR headsets, and a native Unitree SDK2 hardware bridge with a stale-command watchdog. Training and data-generation code are deliberately out of scope for this release — that material is scheduled for GRIT v1.0.0 in October.
Architecture: One Policy, One UDP Contract
The design is deliberately narrow: a single whole-body tracking policy talks to whichever backend is attached through one unified UDP interface. That makes the three deployment targets — MuJoCo simulation, live VR teleoperation, and the physical robot — interchangeable from the policy's point of view:
| Layer | Component | Role |
|---|---|---|
| Policy | runtime/grit_policy.py | ONNX inference + action contract (joint order, gains, loop config in controller.yaml) |
| Observation | runtime/grit_observation.py | Constructs the observation vector the policy expects |
| Reference motion | tracking.yaml | Local reference-motion mode (example motions in config/g1/motions/) |
| Live teleop | tracking_vr.yaml + teleop/ | PICO/XRoboToolkit XR stream, G1 retargeting, browser viewer on port 8080 |
| Hardware | g1_sim2real/ | Native Unitree SDK2 bridge with stale-command watchdog |
The watchdog is a detail worth highlighting for anyone shipping real-robot stacks: if the control loop stalls or the link drops, the bridge detects the stale command stream and reacts instead of continuing to execute the last message. It is exactly the kind of safety plumbing that demo code usually omits and production deployments need.
What You Can Run Today
The quick-start path is MuJoCo sim2sim: sim2sim.py --robot g1 in one terminal, deploy.py in another, and the policy tracks reference motions in simulation. Switching to PICO teleoperation uses the same policy with tracking_vr.yaml — the operator's full-body motion is retargeted to the G1 in real time (the README shows the retargeting running live in the demos). Hardware deployment replaces the MuJoCo UDP endpoint with the Unitree SDK2 bridge; the requirement is a dedicated robot-facing network interface. Requirements are Ubuntu 22.04/24.04 (x86_64 or aarch64), Python 3.10 via uv, CMake 3.16+, and a C++17 compiler for the native bridge.
Roadmap: Deployment First, Foundation Model Next
| Release | Contents |
|---|---|
| v0.0.1 (Aug 29) | Initial checkpoint + complete sim2sim / sim2real / VR teleoperation pipelines (this repo) |
| v0.0.2 (September) | Updated checkpoint, technical documentation, on-device deployment pipeline, head/hand hardware modification plans, VLA data-collection pipeline |
| v1.0.0 (October) | General-purpose motion foundation model: technical report, integrated checkpoint, training dataset, framework, source code, VLA collection + training tutorial |
The roadmap makes the project's intent explicit: GRIT is positioning its whole-body tracking policy as the control substrate for VLA data collection — teleoperated full-body demonstrations on a real G1 are a direct route to generating the kind of whole-body data that VLA models currently lack. If v0.0.2 and v1.0.0 land as scheduled, this becomes one of the few open stacks covering the entire chain from teleoperation to policy deployment on affordable humanoid hardware.
Assessment
GRIT's current value is less the v0.0.1 checkpoint itself than the deployment scaffolding done right: a documented policy contract, a tested sim2sim path, a real SDK2 bridge with watchdog semantics, and a working VR retargeting loop. For teams with a Unitree G1, this is a faster on-ramp to whole-body teleoperation than assembling Isaac Lab + retargeting + SDK glue themselves. The honest TODO list (training code still to come) means the repo should be judged as a deployment release, not a research artifact — and judged on those terms, it is unusually complete.
SOURCE LINKS