robotology / human-gazebo

URDF models of humans created to perform human robot interaction experiments.
GNU Lesser General Public License v2.1
136 stars 40 forks source link

Investigate model joint constraints definition #14

Closed lrapetti closed 4 years ago

lrapetti commented 4 years ago

Currently the 48dofs model have joint constraints based on anthropometrics tables. Given the human model

Screenshot 2020-06-16 at 00 25 16

I would expect those constraints to be symmetric between left and right limbs. The symmetry, though, should involve the constraints to be flipped (min_A=-max_B, max_A=-min_B) for those joints around x and z axis accordingly to the frame definition. However, looking at the models, this is not true. In fact, the constraints are defined as follow:

Arms

jLeftC7Shoulder_rotx -5.0000 45.0000 jRIghtC7Shoulder_rotx -5.0000 45.0000

jLeftShoulder_rotx -90.0002 134.9997 jRIghtShoulder_rotx -134.9997 90.0002

jLeftShoulder_roty -90.0002 90.0002 jRIghtShoulder_roty -90.0002 90.0002

jLeftShoulder_rotz -179.9998 45.0000 jRIghtShoulder_rotz -45.0000 179.9998

jLeftElbow_roty -90.0002 85.0000 jRIghtElbow_roty -90.0002 85.0000

jLeftElbow_rotz -145.0001 0 jRIghtElbow_rotz 0 145.0001

jLeftWrist_rotx -60.0001 50.0000 jRIghtWrist_rotx -50.0000 60.0001

jLeftWrist_rotz -20.0000 30.0000 jRIghtWrist_rotz -30.0000 20.0000

Legs

jLeftHip_rotx -30.0000 45.0000 jRIghtHip_rotx -30.0000 45.0000

jLeftHip_roty -15.0000 120.0003 jRIghtHip_roty -15.0000 120.0003

jLeftHip_rotz -45.0000 45.0000 jRIghtHip_rotz -45.0000 45.0000

jLeftKnee_roty 0 134.9997 jRIghtKnee_roty 0 134.9997

jLeftKnee_rotz -30.0000 40.0000 jRIghtKnee_rotz -40.0000 30.0000

jLeftAnkle_rotx -35.0000 45.0000 jRIghtAnkle_rotx -35.0000 45.0000

jLeftAnkle_roty -30.0000 50.0000 jRIghtAnkle_roty -30.0000 50.0000

jLeftAnkle_rotz -50.0000 25.0000 jRIghtAnkle_rotz -25.0000 50.0000

lrapetti commented 4 years ago

I start investigating the constraints for the arms, the only joint that seems to be swapped (you can observe that the configuration when reaching the constraints is not symmetric) is the following:

C7Shoulder_rotx

The right constraints should probably be instead 45 when moving upwards and 5 when moving down, i.e. accordingly to the joints definition:

lrapetti commented 4 years ago

Here are the legs joints for which the constraints seems to be wrongly defined

Hip_rotx

Assuming that the abduction range is higher then the adduction, the right constraints should be: jLeftHip_rotx -30.0000 45.0000 jRightHip_rotx -45.0000 30.0000

Ankle_rotx

Assuming that the ankle inversions range is higher, possible right constraints could be: jLeftAnkle_rotx -45.0000 35.0000 jRIghtAnkle_rotx -35.0000 45.0000