Skip to content

feat(lite_biped_debug): add the deployment scene wrapper - #14

Merged
T-K-233 merged 2 commits into
mainfrom
feat/lite-biped-debug-scene
Aug 8, 2026
Merged

feat(lite_biped_debug): add the deployment scene wrapper#14
T-K-233 merged 2 commits into
mainfrom
feat/lite-biped-debug-scene

Conversation

@T-K-233

@T-K-233 T-K-233 commented Aug 8, 2026

Copy link
Copy Markdown
Member

lite_biped_debug shipped the generated robot-only MJCF but never the scene wrapper its sibling lite_biped has — no floor, no spawn keyframe.

This blocks merged code: humanoid_control_ros2#24 made biped_mujoco.launch resolve scene from the selected robot_variant (defaulting to <variant>_scene) and error if the file is absent. So robot_variant:=lite_biped_debug currently fails on a fresh clone.

Hand-authored, mirroring lite_biped_scene.xml — the generator emits only the robot-only VARIANT.xml, which mjlab training reuses as-is with its own terrain; this wrapper adds the deployment floor + spawn pose.

Keeping the A/B honest

Floor friction and the visual block are byte-identical to lite_biped_scene, so a lite_biped vs lite_biped_debug run isolates the foot and nothing else.

The home keyframe differs only in base z. The box foot sits the pelvis 25 mm lower at the same joint angles (0.7443 m above the sole vs 0.7693 m), so 0.80 → 0.775 preserves the spawn clearance.

Verification (MuJoCo 3.8.1)

lite_biped_scene lite_biped_debug_scene
loads
nq / nu / hinges 21 / 14 / 14 21 / 14 / 14
base z 0.800 0.775
min gap to floor 30.6 mm 30.6 mm
contacts at spawn 0 0

Identical structure and identical spawn clearance — which is what the base-z change was for. The 14 leg joint values match the training default pose (= standby_controller_a).

🤖 Generated with Claude Code

T-K-233 and others added 2 commits August 7, 2026 22:45
lite_biped_debug shipped the generated robot-only MJCF but never the scene
wrapper its sibling lite_biped has, so there was no floor and no spawn keyframe
to bring it up against.

humanoid_control's biped_mujoco.launch now resolves `scene` from the selected
robot_variant (defaulting to <variant>_scene) and errors if the file is absent,
so `robot_variant:=lite_biped_debug` cannot work without this. Hand-authored,
mirroring lite_biped_scene.xml -- the generator emits only the robot-only
VARIANT.xml, which mjlab training reuses as-is with its own terrain.

Floor friction and the visual block are byte-identical to lite_biped_scene so a
lite_biped vs lite_biped_debug run isolates the FOOT and nothing else. The home
keyframe differs only in base z: the box foot sits the pelvis 25 mm lower at the
same joint angles, so 0.80 -> 0.775 preserves the spawn clearance. Verified in
MuJoCo 3.8.1 -- both scenes load with nq=21 / nu=14 / 14 hinges and spawn at
30.6 mm clearance with zero contacts. The 14 leg joint values match the training
default pose (= standby_controller_a).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A double hyphen is illegal inside an XML comment. MuJoCo's tinyxml2 accepts it,
which is why the model loaded fine and the `ros` lane passed, but Python's expat
does not -- so tests/test_mesh.py failed to even parse the file at collection.

Reworded to a colon, matching how lite_biped_scene.xml phrases the same
sentence. Verified with both parsers now: xml.etree parses it, MuJoCo 3.8.1
still loads it (nq=21, nu=14, 30.6 mm spawn gap, 0 contacts), and the full suite
passes (1569 passed, 6 skipped).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@T-K-233
T-K-233 merged commit 3771726 into main Aug 8, 2026
2 checks passed
@T-K-233
T-K-233 deleted the feat/lite-biped-debug-scene branch August 8, 2026 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant