Robotics StackExchange | Archived questions

question on PID controller in ROS

Update1: In gazebo simulation. Concerning the roscontroller config yaml file for PID specification. Update2: While rqtplot 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}

    at   
     {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?

Asked by rnunziata on 2013-08-16 16:38:11 UTC

Comments

Answers

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.

Asked by Adolfo Rodriguez T on 2013-08-18 21:36:06 UTC

Comments