Gazebo | Ignition | Community
Ask Your Question

Problem with Gazebo's built-in PID controller.

asked 2013-08-21 19:17:11 -0600

EduardoMaciel gravatar image

updated 2013-08-22 09:58:09 -0600

nkoenig gravatar image

Hi, I using ROS fuerte version with Gazebo 1.0.2, my questions are:

  1. When opening the Gazebo, there is some controller (PID) that is initialized automatically by default?
  2. When creating a prismatic joint or the revolution Gazebo, is automatically added a controller (PID) in the joint?
  3. Why the gains are limited at most 99,990 in "Control Joints"?
  4. How to calculate the action applied to the joint using this controller's internal Gazebo?
  5. In "Control Joints", the force, position and velocity are applied separately or is a summation?
  6. There is documentation on this internal controller to the Gazebo?
  7. What happens to the internal controller Gazebo when added a new controller?

My code URDF: and Image "Joint Control":

Thanks, best regards.

edit retag flag offensive close merge delete


You should upgrade to gazebo 1.9. Version 1.0.2 is very old.

nkoenig gravatar imagenkoenig ( 2013-08-22 09:58:46 -0600 )edit

I'll update my version.

EduardoMaciel gravatar imageEduardoMaciel ( 2013-08-22 13:09:53 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-08-22 09:56:45 -0600

nkoenig gravatar image
  1. A PID position or velocity controller is built into Gazebo for every joint. These controllers will do nothing until you send them a command.

  2. See above.

  3. The gain limit you refer to is just a GUI limit. You can send a message to Gazebo with any gain.

  4. Look here for position control, and here for velocity control.

  5. Only one force is applied to a joint in the following order of precedence: Force, Position PID, Velocity PID.

  6. Search the wiki, and look in the API

  7. If you add another controller (say from ROS), then they two will conflict. You should really only use only controller at a time.

edit flag offensive delete link more


Thanks for respond, is there any way to turn off this internal controller of the Gazebo or should I create a code to zero the parameters? Because I would like to create my controller.

EduardoMaciel gravatar imageEduardoMaciel ( 2013-08-22 13:09:11 -0600 )edit

The controller is off by default.

nkoenig gravatar imagenkoenig ( 2013-08-23 10:17:55 -0600 )edit

Thanks Nate, but I need your help, I have how set all parameters (PID) in "0.000" for this controller? I would like to start the gazebo with all parameters in "0.000". How can I do this?

EduardoMaciel gravatar imageEduardoMaciel ( 2013-08-26 15:11:12 -0600 )edit

I'm don't think I understand the problem. By default Gazebo does not run a PID controller on a joint. You have to explicitly tell Gazebo to use it's internal PID controller. Do not pass any PID parameters to Gazebo, and you will be all set.

nkoenig gravatar imagenkoenig ( 2013-08-26 18:01:55 -0600 )edit
Login/Signup to Answer

Question Tools


Asked: 2013-08-21 19:17:11 -0600

Seen: 4,022 times

Last updated: Aug 22 '13