A point that I don't think has been mentioned here: quaternions as a representation of attitude are really just a funky parameterization of an Euler axis/angle representation. Quaternions happen to be parameterized in a way that lets you avoid the evaluation of trigonometric functions when expressing their dynamics. This used to be important, e.g. in aircraft control systems, because computing power was extremely limited and you didn't want to have to evaluate sines and cosines in real time.
The biggest disadvantage of using quaternions over Euler axis/angle representations is that quaternions are basically impossible for humans to visualize, whereas Euler axis/angle representations are easier than transformation matrices, Euler angles, or any other representation.
So why not just use Euler axis/angle representations instead? Nobody cares any more about evaluating cosines at 1 kilohertz, and there would be none of this complicated geometric algebra stuff that nobody understands.
So why not just use Euler axis/angle representations instead?
Composition of two rotations in axis/angle representation basically proceeds via the quaternionic formula, ie in terms of half-angles. So if you need to do that a lot, it makes sense to go fully quaternionic to avoid having to work with both full and half angles.
The biggest disadvantage of using quaternions over Euler axis/angle representations is that quaternions are basically impossible for humans to visualize, whereas Euler axis/angle representations are easier than transformation matrices, Euler angles, or any other representation.
So why not just use Euler axis/angle representations instead? Nobody cares any more about evaluating cosines at 1 kilohertz, and there would be none of this complicated geometric algebra stuff that nobody understands.