Skip to content

Foot Orientation Issue for New Robot #35

@willthibault

Description

@willthibault

HI @manumerous,

Thanks for open sourcing this mpc, very cool work!

I'm interested in adding a couple new models that I work with (REEM-C and TALOS by PAL Robotics). I started with REEM-C by emulating the G1 description and centroidal MPC that are available and produced the following:

wb_humanoid_mpc_reemc_centroidal_mujoco_initial.mp4

It seems like the robot is walking on its ankles and I believe this is due to a difference in frame orientation when the contact frames are created. Here is a snippet of the last joint in the REEM-C description:

  <joint name="leg_right_6_joint" type="revolute">
    <origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
    <axis xyz="0 0 1"/>
    <parent link="leg_right_5_link"/>
    <child link="leg_right_6_link"/>
    <dynamics damping="1.0" friction="1.0"/>
    <limit effort="71.48" lower="-0.261799387799" upper="0.523598775598" velocity="3.94"/>
    <safety_controller k_position="100" k_velocity="100" soft_lower_limit="-0.226892802759" soft_upper_limit="0.488692190558"/>
  </joint>

Visually this looks like this:

Image

My understanding is that for the G1 the contact frame orientation matches the last joint frame so only a translation is needed (looking through humanoid_common_mpc it seems like there are a lot of hard coded identity matrices for the orientation). Can you recommend the best way to add this feature?

Another issue that I will have is that for the G1 the foot contact offsets are identical for the contact frames, but for REEM-C the left and right foot will have different offsets. Again this looks like a similar area of the code that would need modification to differentiate feet. Can you recommend how this could be done?

As a side note, I added a docker file with NVIDIA GPU acceleration. I found this helped my laptop get through the heavy build (reducing PARALLEL_JOBS wasn't enough). Happy to share this if it is of interest.

I am happy to contribute both these features as well as REEM-C and TALOS examples.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions