| { |
| "schema_version": 2, |
| "model_api": 1, |
| "name": "collision-flamingo-ii", |
| "kind": "perpetual", |
| "obs_len": 61, |
| "action_len": 14, |
| "action_scale": 1.0, |
| "entry_pose": "standing", |
| "duration_s": null, |
| "description": "Asymmetric one-foot balance policy trained with the Microduck full exterior-shell collision model; keeps the right foot lifted while the left foot supports the robot.", |
| "command": { |
| "twist": ["unused (0)", "unused (0)", "unused (0)"], |
| "head": "unused (zeros)", |
| "body": "unused (zeros)", |
| "idle": [0, 0, 0] |
| }, |
| "robot": { |
| "model": "microduck full_shell", |
| "hw_rev": 1, |
| "servos": "xl330", |
| "control_hz": 50 |
| }, |
| "training": { |
| "algorithm": "PPO (rsl-rl-lib 5.0.1)", |
| "task_id": "Mjlab-OneLegStandNoBall-Flat-MicroDuck", |
| "repo": "pollen-robotics/microduck_rl", |
| "git_base": "d424a0c899f6b33cbd3daeb279913134349c0b63", |
| "source_state": "The full-shell collision and generated task were uncommitted. The exact required worktree overlay is bundled under reproduction/source-overlay.", |
| "run": "logs/rsl_rl/one_leg_stand_no_ball/2026-09-01_17-49-38_HoppingTraining_V2", |
| "checkpoint": "model_11500.pt", |
| "resume_parent": "2026-09-01_13-43-17_HoppingTraining/model_8750.pt", |
| "seed": 42, |
| "num_envs": 2048, |
| "sim_timestep_s": 0.005, |
| "decimation": 4, |
| "nconmax": 200, |
| "contact_sensor_maxmatch": 128, |
| "dependencies": { |
| "python": "3.12", |
| "torch": "2.9.1", |
| "mjlab": "1.3.0", |
| "mujoco": "3.10.0", |
| "mujoco-warp": "3.8.1", |
| "warp-lang": "1.12.0", |
| "onnxruntime": "1.24.4", |
| "better-actuator-models": "1.0.1" |
| } |
| }, |
| "policy_contract": { |
| "input": "obs[1,61] float32", |
| "output": "actions[1,14] float32", |
| "observation_order": [ |
| "base_ang_vel[3]", |
| "projected_gravity[3]", |
| "joint_pos_relative[14]", |
| "joint_vel[14]", |
| "previous_actions[14]", |
| "twist[3]", |
| "head_pose[4]", |
| "body_pose[6]" |
| ], |
| "normalizer_baked_into_onnx": true, |
| "action_joint_order": [ |
| "left_hip_yaw", "left_hip_roll", "left_hip_pitch", "left_knee", "left_ankle", |
| "neck_pitch", "head_pitch", "head_yaw", "head_roll", |
| "right_hip_yaw", "right_hip_roll", "right_hip_pitch", "right_knee", "right_ankle" |
| ] |
| }, |
| "validation": { |
| "supported_path": "scripts/infer_policy.py with --standing, --new-cmd-obs, --collision-model full_shell, and randomization disabled", |
| "observed_result": "Nominal one-foot standing worked in the safe ONNX deployment-rehearsal viewer.", |
| "example_video": "media/onnx_viewer_example.mp4", |
| "unsupported_paths": [ |
| "mjlab uv run play with the native viewer", |
| "mjlab uv run play with the Viser viewer", |
| "scripts/infer_policy.py with --training-randomization" |
| ], |
| "known_limits": "The same behavior did not reproduce in the native/Viser checkpoint viewers. It has not been validated under training-style randomization or on hardware. The example video shows the nominal safe ONNX-viewer result; no quantitative evaluation battery is available." |
| }, |
| "files": { |
| "policy": "policy.onnx", |
| "example_video": "media/onnx_viewer_example.mp4", |
| "training_checkpoint": "checkpoints/model_11500.pt", |
| "resume_parent_checkpoint": "checkpoints/resume_parent_model_8750.pt", |
| "environment_config": "config/env.yaml", |
| "agent_config": "config/agent.yaml", |
| "source_overlay": "reproduction/source-overlay", |
| "checksums": "checksums.sha256" |
| } |
| } |
|
|