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.
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.
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.
Four-frame depth history
Assemble four 9x16 depth frames at upstream offsets 0, 3, 8, and 18 alongside proprioceptive history.
960-D observation
Concatenate 384-D term-major proprioceptive history with 576-D depth history in upstream order.
29-joint policy
dodge_link_cbf.onnx outputs 29 actions mapped to joint targets with official DEFAULT_POS and ACTION_SCALE.
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]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.
| Capability | System role | AMD path | Featured output |
|---|---|---|---|
| ONNX actor | Upstream 960-D observation to 29-D action | ONNX Runtime | one policy, three responses |
| Unitree G1 | Official MJCF, 29-joint order, and action scaling | upstream assets | free-base stance and recovery |
| Depth history | Four 9x16 projectile-depth frames plus proprio history | contract aligned | policy-I/O visualization |
| Balance control | Maintain stance and recover posture under zero command | mjlab | 3 / 3 zero-reset runs |
| Free-base dynamics | Whole-body execution, contacts, and headless rendering | MuJoCo-Warp | 1920×1080 · 25 FPS |
| Evidence archive | motion metrics · video · runtime · checkpoint | JSON + SHA | pinned and reproducible |
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.pymjlab = 1.5.3MuJoCo = 3.10.0MuJoCo-Warp = 3.10.0.3obs 960 → action 291080p · 25 FPS
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.