ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

question on PID controller in ROS [closed]

asked 2013-08-16 16:38:11 -0600

rnunziata gravatar image

updated 2013-08-18 06:22:02 -0600

Update1: In gazebo simulation. Concerning the ros_controller config yaml file for PID specification. Update2: While rqt_plot works now it is sporadic - gazebo stops responding to the commands. This can happen consistently after a reset world or model pose. Update3: In the text when I say apply force I mean via published command and not via the gazebo tab

If no internal force is applied to a joint; Should the the PID controller adjust the joint.

I have a model where an incorrect PID setting was causing the model to move without an internal force being applied to any joint. The controller caused the model to jump off the gazebo grid. By adjusting the PID I was able to stop this but should this have been at all?

    I had taken this setting used in a tutorial  
     {p: 100.0, i: 0.01, d: 10.0}  
    and changed to this one and the robot stop jumping off screen
     {p: 0.001, i: 0.001, d: 0.001}

at no time did I apply a force to the joints

When I start rviz with the controllers the robot moves on its own showing odometry movement. When I again change the setting to something smaller like

    pid: {p: 0.000001, i: 0.000001, d: 0.000001}

     {p: 0.00, i: 0.00, d: 0.00}   
    the robot did not move even when a force was applied.  

the robot does not move and now I can apply a force and have it respond only to the force applied.

Is this correct for the controller?

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by rnunziata
close date 2013-08-19 03:16:11

1 Answer

Sort by ยป oldest newest most voted

answered 2013-08-18 21:36:06 -0600

Adolfo Rodriguez T gravatar image

I don't quite understand the question, but I'll do my best to answer based on my interpretation of it.

Copying a set of PID gains from a tutorial will not in general work for you, unless your robot is similar to the one in the tutorial (ie. its dynamics and desired performance). It might be that your model has lower inertias or damping than the tutorial example, and the gains are too high, which make the simulation unstable. A consequence of an unstable simulation can be NaNs in the /joint_states topic, which causes things dependent on it like tf or some Rviz plugins to not behave.

Things not blowing up when you set zero gains confirms this hypothesis.

I would suggest you to try tuning the PID gains to your specific setup. This is a non-ROS subject with plenty of literature out there, but can be tricky to get right in practice.

If there's something else that I did not cover, please consider rewording the original question for better clarity.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2013-08-16 16:38:11 -0600

Seen: 642 times

Last updated: Aug 18 '13