pioneers / runtime

Firmware for the PiE kit robots and devices
7 stars 2 forks source link

[LOWCAR] Make a PID controller tuning tool #141

Open benliao1 opened 3 years ago

benliao1 commented 3 years ago

We should have a tool in the runtime folder that allows us to quickly run some tests on controller values and see the current position and desired positions as graphs so we can tune the PID controllers quickly without blindly guessing.

benliao1 commented 3 years ago

I ended up manually tuning the PID controllers on the KoalaBears for the 2021 season, since the tuning tool that I had envisioned didn't work. What I tried to do was have another device that flashes onto the KoalaBear board but which contains some extra exposed information, such as the set point (velocity or position), the current position, and the error, as parameters. Then, some special student code can pull those parameters out of the devices and use some clever printing to display the graphs in the terminal. But, the terminal graphics were too low fidelity to be of any use; the coefficients that I got from the tool were no better than what I could've gotten manually, so I decided to table this project and just do it manually.

If, in the future, we want to make a proper tuning tool, we can include it as part of a webpage-run "Runtime dashboard" or "Runtime monitor" that will be a project for Runtime v1.2+, where we can draw higher-quality graphs to help us debug. Using the log messages to get those graphs is just not ideal.

benliao1 commented 3 years ago

For a reference on the constants that I arrived at by tuning the controller manually, see PR #181