Arduino PID Library

So my question is do they still use a PID controller with some intelligent program to change Kd, Ki and Kp or do they use some completely different controller? What is exactly an adaptive controller?

adaptive control is an umbrella term for a controller that changes its behavior on the fly. how do they do this? I have no idea. they could use a neural network and it would fit this definition! (although fitting one on a microcontroller would be an impressive task)

the pid library has been designed with adaptive control in mind. Example 2 on the wiki uses a form of adaptive control, switching between aggressive and conservative tunings on the fly.

so, while I don't know how they do it, I have a feeling you could use pid. as long as you're ok with some experimentation you should be fine. "I know that THESE parameters work well in calm seas, while these work well in 5ft swells. I'll automatically switch between them, or even interpolate between them, depending on the situation I'm in." if that isn't enough you can even bring in some Feed Forward control, but it's probably better to cross that bridge when we come to it.

now I should add here that I'm not a seaman, so I have very limited knowledge of "changing weather conditions" and how they affect the navigation of the boat. my intuition is that the pid library should give you
the tools you need. if not, you've spent 0$ and learned a little about control. :wink: