Why use these PID values for the Fetch robot arm?

Hi I’m trying to work on the OpenAI Fetch gripper tasks with reinforcement learning. I’m attempting to solve it using just the joint positions for the action which are then passed to the joint controllers. The issue is that the arm sways back and forth too much around the cube.

I’m using the Fetch environment defined in Fetch_Simple_Simulation and I noticed that https://bitbucket.org/theconstructcore/fetch_simple_simulation/src/master/fetch_simple_description/config/fetch.yaml
there are certain PID values defined for the controllers for the Fetch robot.
Under the original Fetch_Gazebo package [https://github.com/fetchrobotics/fetch_gazebo/blob/gazebo9/fetch_gazebo/config/default_controllers.yaml] there are different PID values defined.

I was thinking that using different PID values might reduce the amount of sway in the controllers and I wanted to know why you chose these values vs. the original Fetch_Gazebo values?

Thank you,


The simple version was just created to have a simple joint control instead of the more complex one used with the Joint Trajectories.

PIDS are just aproximated values that try to make the movement smooth, but of cours etheyneed a lot of tweeking and for sure you can improve upon them to match your needs. There are several methods but the most basic one is sending angle commands and with rqt_reconfigura change the values until it doesnt oscilate when going to the position.

There are other methods like using the automatic PID callibration launch from PID ROS Package

Thanks! Did you guys ever have any luck implementing an OpenAI ROS version of the FetchPickAndPlace task?