A Unitree G1 walks end-to-end
through AEROS.

Runtime schedules. ECM dispatches. Governance approves. Embodiment executes. Four layers, one closed loop. AGPL-clean dependency stack throughout.

30s narrated walk-through. Captions land on each chain step: Runtime → ECM → Governance → Embodiment. Live HUD telemetry uses the actual data shapes the bridge emits. Sim G1 in MuJoCo · seamless loop.

What you're seeing

Robot Unitree G1 humanoid (MuJoCo simulation)
Policy ONNX bipedal locomotion, AGPL-clean stack
Distance & speed Pelvis advances ≥0.4 m over 1.5 s per NavigateECM dispatch
Validation Live integration test boots a real SimulatedUnitreeG1Robot + NavigateECM and asserts pelvis advances ≥0.3 m under the g1_onnx_locomotion policy
License posture No AGPL dependencies in the import graph — CI invariant pipdeptree | grep -i agpl empty

From scheduler to joint torque

The same call path that runs in this sim is what a real-robot bridge process executes. Every layer is named, versioned, and traceable to source files in the open repo.

1

Runtime — lifecycle & scheduling

Bridge process initializes, loads the IdentityManifest, attaches the persona engine + Layer 2 consolidator + DreamScheduler. Lifecycle is init → start → pause → resume → stop → restart.

bridge/app/main.py
2

ECM — capability dispatch

NavigateECM v2 receives a structured intent from the planner; the v1/v2 dispatcher pattern picks the right handler with stable fallback_reason if v2 raises. v2 calls into the G1 robot's apply_twist.

bridge/app/ecm/navigate.py
3

Governance — policy & audit

Capability admission, policy DSL check, watcher registration. Persona engine evaluates the resulting PersonaAdaptiveEvent stream; tighten events emit through the Ed25519 audit chain. Outbox pattern guarantees at-least-once delivery.

src/aeros/runtime/persona_emit.py · semantic_consolidator.py
4

Embodiment — ONNX policy + joint command

An ONNX-controller class receives a TwistCommand; the vendored G1 locomotion policy (~880 KB) computes joint torques; MuJoCo steps the simulation. The same controller class plugs into the real-robot bridge in v0.11.0.

Run the same demo locally

Three commands. MuJoCo renders a window; the G1 walks; tests pass. Same code path the video shows.

git clone https://github.com/s20sc/aeros-runtime
cd aeros-runtime
make hello
# expected: STEP 6 identity-preservation PASS
#           STEP 7 G1 navigates ≥0.4m

What's next

v0.11.0 RFC

Real-robot bridge

Migrate this exact chain off the MuJoCo sim onto a real Unitree G1. Same NavigateECM, same policy, same governance — different embodiment driver.

Roadmap

Manipulation policies

Grasp-and-place ECM v2 with shadow-mode rollout. Locomotion is the proof; manipulation is the next surface.