Skip to content

Add B1 and Kangaroo closed-loop models - #383

Open
Sergim96 wants to merge 2 commits into
Gepetto:develfrom
Sergim96:topic/closed_loop
Open

Add B1 and Kangaroo closed-loop models#383
Sergim96 wants to merge 2 commits into
Gepetto:develfrom
Sergim96:topic/closed_loop

Conversation

@Sergim96

Copy link
Copy Markdown
Contributor

Summary

This PR adds several closed-loop robot models.

Unitree B1

  • b1_leg: serial three-joint leg without constraints.
  • b1_leg_3D: leg with a position-level four-bar closure.
  • b1_leg_6D: leg with a pose-level four-bar closure.
  • b1_closed_loop: complete floating-base B1 with closed-loop four-bar mechanisms on all four legs.

Kangaroo

  • kangaroo: serial model without loop constraints.
  • kangaroo_knee_kin: knee mechanisms closed on both legs.
  • kangaroo_knee_1ankle_kin: knee and first ankle linkage stage.
  • kangaroo_knee_2ankle_kin: knee and both ankle linkage stages.
  • kangaroo_legs_kin: complete leg mechanisms, including knee, ankle, and hip actuator loops.

SRDF constraint utility

This PR also adds a utility that parses <loop_constraint> entries from SRDF files and resolves each frame pair into its parent joints, placements, and active constraint DoFs.

When a constraint provides an SRDF mask, the utility uses it directly. When the mask is absent, it numerically infers the active DoFs by perturbing the joints supporting the constraint frames and measuring their linear and angular motion. Currently, b1_leg_6D uses this numerical fallback, while the remaining closed-loop models provide explicit masks.

The models assume that the SRDF reference configuration q0 already satisfies all loop constraints.

change kangaroo colour

fix b1 leg inertias and add full b1 closed loop
@nim65s

nim65s commented Aug 18, 2026

Copy link
Copy Markdown
Member

Thanks, but this repo is already huge.
Could you check if this could go to https://github.com/Gepetto/example-parallel-robots instead ? we already have a few closed-loop models there

@cmastalli

cmastalli commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Thanks, but this repo is already huge. Could you check if this could go to https://github.com/Gepetto/example-parallel-robots instead ? we already have a few closed-loop models there

I believe we should start supporting closed-loop kinematics in example-robot-data. This will allow us to continuously test new features introduced in Crocoddyl (see this PR loco-3d/crocoddyl#1525) without depending on another upstream package.

What do you think?

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.

3 participants