I am a controls engineer, studying aerospace controls systems and I have been in a lot of confusion lately...
I come from a purely academic background and I have very little-to-no experience in implementing control schemes on real systems. Like for example, recently I decided to implement one non-linear control scheme on a quadrotor, and I instantly ran into issues like, getting accurate model parameters, stuff like the inertia matrix, the drag coefficients, the thrust coefficients etc.
I was curious as to how ArduCopter handles this? I mean, everyone will have different motors, different frames, different batteries etc and yet Arducopter works on all quads! I am stuck here trying to figure out the motor dynamics of my motors, and I feel it is really not necessary.
I wanted to know certain tips I could keep in mind while implementing my controller, like I see a lot of modification done to the outputs of the rate controller in AC_AttitudeControl and also in AP_Motors. Could someone please point out some crucial tips to keep in mind so that I can better implement my control schemes?? Like things to keep in mind when outputting to motors, conversion of controller outputs to motor outputs, estimation of attitude etc. ?? Any advice is greatly appreciated!