Regarding writing a new ball joint for gazebo with provision for applying forces (SetForce) across all three axis. Similar to actual Gimbal joint.

asked 2020-02-17 21:12:41 -0600

Suyash gravatar image

updated 2020-02-17 21:14:05 -0600


I am trying to create a series of revolute joints so that I can apply torque (from mainbody to mainlink) in all three directions, across a single point. For this, I created two intermediate dummy links. I then created three revolute joints, the first one from main body -> dummylink1, second one from dummylink1->dummylink2 and third one from dummylink2->mainchildlink respectively. I set the weights and inertias of dummy links to 1% of that of mainchildlink. The inertial properties of mainbody, dummylink and mainlink are mentioned below. The axes were set to 0 0 1, 0 1 0 and 1 0 0 for the three revolute joints.

The problem is when I apply forces and torques, it is not behaving as expected. The upper and lower limits are not working and sometimes my model just hangs. Probably due to my low inertial values, the actual accelerations are very high when I apply torques of the order of 10^-3.

I was thinking of writing a separate ball joint (similar to actual gimbal joint, or the gimbal joint in Matlab), where I can apply torques in all the three directions. My question is has someone already done/or is currently doing that in the gazebo community? If someone tried, can I get some pointers on if that is possible or not, or what are the challenges faced. Also if there is any other way I can accomplish my goal of applying torques in all three directions, without creating a new ball joint, please do suggest. Many thanks.



Dummy link:


Main Link:

edit retag flag offensive close merge delete