Two revolute joints at the same place is not working as expected

Hi All,

I have created two revolute joints along x and z axis correspondingly at the same place in the attached usd. But I see that when I am playing the scene only one joint is working at a time. I have checked that both joints are working individually but not together. Can you please let me know is there any way i Can make it work for both the joints?

Please find the attached usd.

Thanks and Regards,
Santu
humanoid.usd (118.2 KB)

1 Like

Revolute joints restrict all degrees of freedom except the rotational axis. The best way to achieve what you want is to add a rigid body in between with a mass/inertia but no collision.

body_link β†’ revolute_x ->dummy_link->revolute_y->shoulder_link

Thanks a lot. It’s working now.

sorry to bother, now I have a problem that I have a bar which contains four revolute joints, which means this solution is not applicable, do you have other solutions?

The Solution should be scalable to your configuration too. you can add one dummy rigid body per joint
for example:

Body_link β†’ revolute_1_1 β†’ dummy_1_1 β†’ revolute_1_2 β†’ body_link_2
Body_link β†’ revolute_2_1 β†’ dummy_2_1 β†’ revolute_2_2 β†’ body_link_3

Or, if the four revolute joints are connecting body 1 to body 2:

Body_link β†’ revolute_1 β†’ dummy_1 β†’ revolute_2 β†’ duymmy_2 β†’ revolute_3 β†’ dummy_3 β†’ revolute_4 β†’ body_link_2

maybe I’m not get myself cleared. I mean there are two or three joints on the same link defined at different locations and they are connected to different links like the photo attached, when I defined them separately, only one joint behaved normally and the other joints are not function. How can I solve this problem? Thanks.


Do you have any loops in your hierarchy? (for example body_1 β†’ body_2 β†’ body3 β†’ body_1)

I ask because Articulations do not support loops. If you do, try excluding one of the joints from the articulation so it breaks the loop. The joint will still be imposed by the simulation, but not included in the articulation solver. There is a checkbox for this in the joint properties:

image

I checked it and there is no loop in the hierarchy, but I have the situation that four bar links revolute to the same body link, which means bar_link_1β†’body_link_1, bar_link_2β†’body_link_1, bar_link_3β†’body_link_1, bar_link_4β†’body_link_1 and these joints are all revolute joints without angular drive and they can’t behave at the same time.

That should work without problems. Are you able to share the usd so we can take a look?

Renato G.