Skip to content
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

Weird behavior after PID tuning update #9

Open
PeterBowman opened this issue Dec 28, 2022 · 2 comments
Open

Weird behavior after PID tuning update #9

PeterBowman opened this issue Dec 28, 2022 · 2 comments
Labels
blocking Focus on this issue before working on issues that are blocked by it help wanted priority: critical

Comments

@PeterBowman
Copy link
Member

PeterBowman commented Dec 28, 2022

The recent PID tuning accomplished at #2 (comment) (4807410) has some interesting side effects:

teoman.mp4

There seems to be something wrong with the model and we currently suspect the COLLADA files (introduced in #1). @imontesino says this happened to him when working with some old STL models on Bullet, apparently some vertices/faces appeared twice and collisions between them were happening constantly. He solved it by uploading a cleaner version at roboticslab-uc3m/teo-bullet-models@b4d68ad.

I have attempted a similar operation on our COLLADA files with Meshlab and its handy filtering functions (5a6252e). There are in fact a few duplicates, but scarce and in just a bunch of files. It didn't seem to solve the problem in our case.

@PeterBowman PeterBowman added blocking Focus on this issue before working on issues that are blocked by it help wanted priority: critical labels Dec 28, 2022
@PeterBowman
Copy link
Member Author

It seems that a substantial decrease of both Ki saturation and maximum PID output along with a substantial increase of contact points and stiffness helped a lot: 1dfc764. Thanks to @Gerson-Martin for pointing me at https://classic.gazebosim.org/tutorials?tut=physics_params&cat=physics!

@PeterBowman
Copy link
Member Author

PeterBowman commented Mar 18, 2023

The derivative term is to be blamed here. I have found that the derivative error (obtained via GetErrors) is several orders of magnitude bigger than the proportional and integral ones.

Add the following code after this line for debug output:

double ep, ei, ed;
pid.GetErrors(ep, ei, ed);
yCIDebug(GAZEBOCONTROLBOARD, m_jointNames[j]) << ep << ei << ed;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocking Focus on this issue before working on issues that are blocked by it help wanted priority: critical
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant