Problem with setting PD target of joints from imported URDF

Hi, I am importing the URDF of a dexterous hand but I cannot actuate all the joints. Each finger has 3 joints (proximal, middle and distal), but for some reason I can actuate only the middle one. The URDF seems to be imported fine.

When I set the PD target of the proximal joint nothing happens:

but I can edit the dof :

the middle joint though, works normally:

Also if I change the axis of the proximal joint in the urdf from:

<axis xyz="-1.0 0.0 0.0"/>

to

<axis xyz="0.0 1.0 0.0"/>

I can set the pd target of the proximal joint normally:

but it’s not the desired movement.
Any idea what might be causing this?

Thanks.

Hi @Dimitris_Dimou,

Can you share the URDF with us to have a look at?

Thanks,
-Gav

Hi,

this is the urdf from the screenshot.

hand_isaac.zip (1.7 MB)

Hi, I have the same issue, only some of the joints are actuated, the URDF looks fine with correct limits and inertial properties. Have you figured out what the problem is? @gstate

Here is a side by side comparison of the pinky proximal joint on the left which works, and the pinky middle joint on the right which doesn’t work:

As you can see in the simulation when applying 1 radian drive to each joint, only the proximal joints are actuated while the other joints remain in original position

I managed to overcome the problem in the new preview release by setting the armature property of each joint to 0.0001. I think the problem was that the values of the inertia matrix was very small.

Thanks for the reply. I tested with setting the armature to 0.0001 but it had no effect for me:
image

I’m not sure if there is any difference but I did it through the gym api:

props = gym.get_actor_dof_properties(env, hand)
props["armature"].fill(0.0001)
1 Like

Oh!!! That worked. Thank you so much.
Very annoying that this doesn’t work through URDF, I would have been stuck on this for ages

1 Like