Hi all,
I’ve built a bipedal robot rig in Isaac Sim from CAD-derived USD geometry, fully scripted (single Python file run in the Script Editor). Current pipeline:
- CAD → USD reference → rigid bodies + real mass/CoM per link
- Joint reconstruction (revolute hips/knees/ankles, fixed structural links) with world-anchor-based local frame computation
- Real friction materials on feet + ground
- A cascaded balance controller: contact-triggered (hysteresis-based) → ankle PID → knee offset → hip offset, driven off torso tilt/lean
- Live physics-step debug logging (torso height/tilt/lean, per-foot contact state, correction values) with automatic fall detection and joint-gap diagnostics
This is stable standing on flat ground. I’m now extending it to a walking gait:
- Converting the previously-fixed hip pitch joints to driven revolute joints
- Adding a phase-based gait pattern generator (swing/stance split, hip pitch swing, knee lift during swing, lateral CoM shift for weight transfer) layered underneath the existing balance PID, so the reactive stabilization rides on top of moving gait setpoints instead of static ones
- Starting with a slow, statically-stable walk (CoM within support polygon, generous double-support fraction) before considering ZMP/dynamic gait or an RL-trained policy in Isaac Lab
Questions for the community:
- Anyone have recommendations for tuning
PhysxSceneAPIsolver iteration counts (currentlyminPositionIterations=16,minVelocityIterations=4at 120 Hz) for stable foot-contact behavior during a walk cycle vs. static standing? - For contact detection, I’m currently doing a geometric lowest-point height check with hysteresis rather than PhysX contact reporting APIs — is there a lighter-weight way to get reliable per-foot ground contact events (e.g.,
PhysxContactReportAPI) that people have had good luck with for locomotion control loops? - Any pointers to reference Isaac Sim/Isaac Lab examples of drive-based (not RL) scripted bipedal gaits I could benchmark against?