08 / AMD MIGRATION CASE

PAC-MAN
on AMD

PAC-MAN assembles four projectile-depth frames and G1 proprioception into a 960-D observation, then produces 29 joint targets through the dodge_link_cbf ONNX actor. The robot holds its stance until the ball enters view, then selects a duck, left sidestep, or right sidestep.

01 / WHOLE-BODY DODGING

Standing balance and emergent dodging

The 13-second 1080p film shows a high ball triggering a duck, a left-side ball triggering a right sidestep, and a right-side ball triggering a left sidestep. The 9x16 projectile depth seen by the policy remains visible throughout.

Unitree G1 · upstream ONNX · free-base · 13 s · 1080pDuck, sidestep right, sidestep left
18.8 cmduck height change
25.5 cmright-sidestep travel
31.0 cmleft-sidestep travel
3 / 3complete dodge modes
02 / CONTROL METHOD

From depth history to whole-body joint targets

The reproduction directly connects the upstream observation assembly, ONNX actor, 29-joint mapping, balance controller, and free-base dynamics.

01

Four-frame depth history

Assemble four 9x16 depth frames at upstream offsets 0, 3, 8, and 18 alongside proprioceptive history.

02

960-D observation

Concatenate 384-D term-major proprioceptive history with 576-D depth history in upstream order.

03

29-joint policy

dodge_link_cbf.onnx outputs 29 actions mapped to joint targets with official DEFAULT_POS and ACTION_SCALE.

04

Free-base balance execution

mjlab and MuJoCo-Warp execute the complete dynamics so ducking, sidestepping, and posture recovery unfold in one loop.

target = DEFAULT_POS + action × ACTION_SCALEobs[960] → dodge_link_cbf.onnx → action[29]
03 / CONTROL STACK

From predictive safety to Unitree G1

PAC-MAN connects projectile depth, policy inference, G1 assets, balance control, and free-base dynamics along one system path.

CapabilitySystem roleAMD pathFeatured output
ONNX actorUpstream 960-D observation to 29-D actionONNX Runtimeone policy, three responses
Unitree G1Official MJCF, 29-joint order, and action scalingupstream assetsfree-base stance and recovery
Depth historyFour 9x16 projectile-depth frames plus proprio historycontract alignedpolicy-I/O visualization
Balance controlMaintain stance and recover posture under zero commandmjlab3 / 3 zero-reset runs
Free-base dynamicsWhole-body execution, contacts, and headless renderingMuJoCo-Warp1920×1080 · 25 FPS
Evidence archivemotion metrics · video · runtime · checkpointJSON + SHApinned and reproducible
04 / REPRODUCE

Reproduce all three dodge modes

One entry point reads the pinned upstream commit, ONNX checkpoint, G1 assets, and official task configuration, then exports the 1080p film, motion metrics, run manifest, and SHA files.

MUJOCO_GL=egl \
  PYTHONPATH=.vendor/perceptive_cbf_rl \
  /data/Data14TB/envs/perceptive-cbf-rl-official/bin/python \
  code/perceptive_cbf_rl_amd/official_freebase_capture.py
Runtime recorded
  • mjlab = 1.5.3
  • MuJoCo = 3.10.0
  • MuJoCo-Warp = 3.10.0.3
  • obs 960 → action 29
  • 1080p · 25 FPS
Open reproduction code
05 / DEPLOYMENT PATH

From simulation loop to G1 deployment

The free-base simulation now connects depth history, the ONNX actor, 29-joint mapping, balance actuators, and dynamics. The same deployment contract extends to ZED depth perception and Unitree DDS.