Hi,
Let's say you have a good attitude estimator (DCM, for example) and you would like to control the attitude of the quad - most of the articles are talking about a PID controller that generates a control signal to motors based upon roll, pitch, and yaw angles obtained from the attitude estimator and have 3 loop to control each of the angles individually.
This is more or less OK when the roll and pitch angles are relatively small, but as soon as they start to get to some meaningful numbers, let's say 10-15 degrees, the independence is lost! If, let's say, both roll and pitch are at 15 degrees, any changes to yaw will affect both roll and pitch as the rotation will take place in a plane that is at an angle to Earth horizon. Similarly, because of the roll angle, changing motor balance to adjust pitch will have a component of force that will rotate the quad changing both roll and yaw.
These issues would disappear if all the control be done in the Body frame as in this frame axis are independent, but that would require to translate the control set points (required roll, pitch, and yaw from RC controller) to the Body frame, which, the way I see it, is rather computationally expensive (constructing a rotation matrix from the angles would require a lot of sine and cosine calculations).
Considering that rotations are not commutative, when I played in Excel with DCM - setting some roll, pitch, and yaw, calculating DCM, then transposing DCM and calculating the attitude angles that I need to compensate to rotate Earth frame to match Body frame (direct approach would try to feed to PID the actual attitude angles to rotate the body frame back to match Earth frame) the rotation angles were very counterintuitive - definitely not the reverse of the original angles :)
A there is a lot of quads flying around, this problem has been solved - would appreciate any insights/suggestions on how to implement quad control loop that avoids pitfall that I outlined above.
Thank you,
--Alex
Replies
Sorry to comment this late, I have just seen this interesting post
Most of papers dealing with quad control are assuming (i.e. linearizing) system around hover state , where You won't find any of those problems. The minute You go there (cross coupling You mentioned) You're in deep problem....
Obviously, the answer might be using some non-linear control method