It took me a while to really grok all the aspects of the PID controlled autopilot. The P is simple, just set the rudder to a fraction of the error. For the D term I use gyro rate of turn information. I think that's the only way to do it so that if an autopilot system doesn't have gyro data then it can't be a PID controller. The Integral term took me a little longer to understand. But once I implemented the term correctly the autopilot really came to life. My model for how it should behave is how I drive, what would I do, and the integral term really made the controller seem alive and aware in that sense.
One thing that I don't think is part of a traditional PID and for which I don't yet understand how to do the mathematics is the speed of the correction. A lot of things like power supplies don't have control over the speed at which the correction is made but it's a critical parameter in the autopilot. I implemented a variable rudder speed based on the magnitude of the errors. Again just asking myself 'what would I do'.
In the future I'd like to add features like the ability to drive through waves. I can imagine how it would be done: "When the bow pitches up turn into the wind, when the bow pitches down turn away from the wind". Maybe it would turn out funky but it would be worth a try. I can imagine other things like when going downwind if the boat rolls turn into the roll. Stuff like that wouldn't be hard to do.
So things like wind direction need to be added to my model. That could be done with a hall effect sensor as well and avoid having to buy some piece of cr@p from B$G or whoever. There are also weather station wind direction and speed units that cost much less than the sailboat stuff that could be used. Ultimately it would be nice to be able to put together a system that uses parts a guy could order from Digikey should any of them fail and that's why I like the idea of Bournes Hall Effect sensors.
I'm using a tiny IMU from Pololu. It has the electronic compass which is apparently not as good as the flux gate compasses but it's much cheaper. I do an average of ten before using the value and have it up on a stick a foot or so away from the motors because they cause havoc.
Anyway, I agree. Whatever it is, it must be strong, it must be reliable, and it must be field repairable. This BS about 'sending it back' just isn't acceptable. In my concept you overnight yourself an Arduino or whatever it is then reflash it and you are back up and running. I do electronics for a living and let me tell you, if there's been a failure and you send it back you don't really want the same board back again. It's been reworked and that's never good. Customers should get replacement hardware for all failed PCB's.
Ok enough of that. I could probably go on all day.