-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve Gazebo PID parameters for all robots #526
Improve Gazebo PID parameters for all robots #526
Conversation
I finished to tune the pid parameters for all the models, I am quite happy with the performance now. Once this is merged and we are sure about the new inertia values in #504 I can check again if the performance is still good or if the PID params need retuning. |
Thanks @matteolucchi also for documenting your testing method. It will be very interesting to see, how the changes from #504 change that outcome. |
Great contribution. Thanks a lot @matteolucchi I made a preliminary test on simulation and it works as expected 🎉 |
2bade90
to
6a64eb0
Compare
Hi, what is missing for this to be merged? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ping @gavanderhoorn, could you please take a look at the changes proposed here?
This is a great contribution, thanks @matteolucchi ! I'll close this now as it was merged through #619 |
This is a work in progress. I am working on improving the Gazebo PID parameters for all the robots.
This is based on #525 as for now I will focus on tuning them with the standard cylinder approximation of the links. Once we are sure that the intertia matrices of #504 are correct and this will be merged I will check again if the performance is still ok or if the PID params need re tuning.
Update PID parameters of:
I am tuning the params at the best of my knowledge, if some has any advice on how to this better let me know.
This is what I did for the UR10:
I wrote a small ROS node to publish sinusoidal or step inputs to the different joints of the robot, it looks ugly but it does the job:
I then tried my best to improve the response of the controller to sinewaves and step inputs. Here is what I got so far for the UR10:
The wrist_3_joint was not able to mantain the position at all:
wrist_3 error response to a 1.0 step input with previous pid params
wrist_3 error response to a 1.0 step input with proposed pid params
The wrist_2_joint has now a response with smaller amplitude and the oscillation is dampened faster
wrist_2 error response to a 1.0 step input with previous pid params
wrist_2 error response to a 1.0 step input with proposed pid params
Wrist 1 was not modified.
The elbow step response oscillation is now dampened faster
elbow error response to a 1.0 step input with previous pid params
elbow error response to a 1.0 step input with proposed pid params
The shoulder_lift step response oscillation is now dampened faster
shoulder_lift error response to a 1.0 step input with previous pid params
shoulder_lift error response to a 1.0 step input with proposed pid params
The shoulder_pan step response oscillation is now dampened faster, I apologize but I lost the plots of it.
I am sorry if the plots are not the best, and maybe a bit confusing given the different axis scales but I hope it shows the improvement.
@gavanderhoorn @fmauch let me know what do you think about this.