Rosanswers logo

One of the hardware interfaces from controller_manager package is EffortJointInterface, but when I define transmission with this hardware interface and run the simulation in Gazebo, the joint collide into the robot origin. However, if I set the mass of the links 100 times larger, the joints are connected in the right place, can be simulated and doesn't move from its place.

But I don't want my robot to weight 500 kg if in reality it wights 5 kg. Why does this occur and what can I do to fix this? Other hardware interfaces doesn't have this problem.

Originally posted by kump on ROS Answers with karma: 308 on 2018-11-27

Post score: 0


1 Answer 1


Rosanswers logo

This sounds as though the PID parameters of the Effort controller are set way too high. This is causing such a large torque to be applied to the simulated robot that it's tearing it apart. This is why increasing it's mass works around the problem.

If you try dividing all the PID parameters by 100 and letting us know if that solves the problem.

Originally posted by PeteBlackerThe3rd with karma: 9529 on 2018-11-27

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by gvdhoorn on 2018-11-27:
Or the inertias are not properly configured.

Comment by kump on 2018-11-27:
Yes, you are right. Lowering the PID parameters solved the issue. Thank you.

Comment by PeteBlackerThe3rd on 2018-11-27:
You should also check the inertias as @gvdhoorn mentioned, if they are significantly smaller than their correct values they will cause the same problem.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.