Open Source RoboticsRobots, software & learning

BeyondMimic Motion Tracking Controller

Software

ROS 2 Jazzy inference controller for BeyondMimic policies, using CPU ONNX inference and model-embedded motion metadata. [1]

Installation & first result →Official websiteGetting started

For
Developers integrating trained humanoid policies into ROS 2 simulation or robot control [1]
Source rights
Named licenses are documented by part. Review licenses
Unknowns
operating system not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware

Requirements · Research details and dates

On this page

Overview

This repository is the inference side of BeyondMimic: a C++ controller using ROS 2 Jazzy, legged_control2 and ONNX CPU inference. Training and model export live in a separate project. The controller expects both robot parameters and reference-motion information in a compatible exported model, so an arbitrary ONNX policy is not sufficient. [1] [3]

Is this for you?

Known limitations
  • Arbitrary ONNX policies do not satisfy the required motion outputs and metadata.
  • Simulation activates the walking controller directly.
  • Physical deployment requires a separate robot setup and research-model rights review.

Editorial assessment from cited documentation; no runtime testing.

[1] [2] [3] · Editorial assessment

What you need

Dependencies
  • ROS 2 Jazzy
  • legged_control2
  • unitree_bringup
  • Unitree description and systems packages
  • Compatible exported ONNX policy

[1]

Compute for the workload
  • Upstream specifies ONNX CPU inference; no measured minimum host performance established.

Editorial assessment from cited documentation; no runtime testing.

[1] · Editorial assessment

Installation & first result

Open the upstream getting-started guide [1]

  • Prepare the documented ROS 2 Jazzy workspace and dependencies.
  • Build unitree_bringup and motion_tracking_controller, then source the workspace.
  • Launch mujoco.launch.py with an absolute local policy_path or a compatible WandB run.

[1] [2]

Installation

Install ROS 2 and legged_control2 dependencies, clone unitree_bringup and this controller into a workspace, resolve rosdep dependencies and build both packages.

[1]

Hardware, models & data

Inputs and outputs

Robot observations plus a time_step input produce actions and reference joint/body motion from a compatible ONNX model.

[1] [3]

Project notes

Start with a compatible export in MuJoCo

Review target: commit 742924f1e119dc98995dfe2daf99ae84d020f512, with no GitHub release listed. Install ROS 2 Jazzy and follow the linked legged_control2 setup. The workspace also needs unitree_bringup, Unitree description/system packages and resolved rosdep dependencies. Build unitree_bringup and motion_tracking_controller with the documented colcon commands, then source the workspace's install/setup.bash. [1] [6]

With an exported policy, run ros2 launch motion_tracking_controller mujoco.launch.py policy_path:=<absolute_model_path>. A wandb_path can be used instead; the launcher downloads from WandB only when a local policy path is empty. The default robot is G1, and the simulation launch activates both the state estimator and walking controller. Prepare the model before launching rather than expecting a policy selector or standby stage. [1] [2]

The model contract includes a time_step input and joint_pos, joint_vel, body_pos_w and body_quat_w outputs. The implementation checks output dimensions against body and joint names, and reads anchor/body metadata. These checks help catch incompatible exports, but they do not establish that a controller is stable or correctly matched to physical hardware. [3]

Deployment is a separate integration step

The physical launch has its own network-interface setup and remote-control switching between standby, tracking and damping. Upstream labels the models research-only and warns about physical deployment. Keep that model-use notice separate from the repository's MIT source terms. No particular external policy payload or its full license was verified here. [1] [7]

The first useful validation would be a compatible policy running in the documented simulation stack. This review inspected the pinned sources; it did not build ROS packages, run ONNX inference or operate a robot. [1] [2]

What we checked

Source researched only; no installation, training, benchmark or physical hardware test performed. No affiliate links or reused media.

Not yet established

  • Requirements: operating system, host computer
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Aug 18, 2026 [6]
Latest release
Not established
Profile updated
Oct 17, 2026
Sources last checked
Oct 17, 2026
Next review
Nov 17, 2026
Reviewed revision
commit snapshot; no GitHub releases listed / 742924f1e119dc98995dfe2daf99ae84d020f512 · software repository

Source files and licenses

Source-available deployment adapter with concrete model contract; model payload and full stack integration remain unverified.

LayerAvailability / license
softwareavailable · MIT
Repository materials only; external components retain their own terms. [7]
model weightsnot found · License not fully assessed
User must supply a compatible exported ONNX file or WandB run; no specific policy payload verified. README states research-only model use. [1] [2]
documentationavailable · MIT
Repository materials only; external components retain their own terms. [7]

Inference uses motion embedded in the supplied policy; no separate training dataset required for this adapter.

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history