Methods of Representing Solid Angles

Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.
                                                                                                                                                                                                                        Bertrand Russell
Direction cosine (transformation, rotation) matrices  a11, a12, a13
a21, a22, a23
a31, a32, a33
Redundant, Interpretation No gimbal lock Most complete representation
Cardan (Tait-Bryant) roll, pitch, yaw
(somersault, tilt, twist)

no axis repeats

cyclic: (Xyz (Earth Fixed - longitude/latitude, Fick), Yzx (Helmholz), Zxy

or anti-cyclic: Zyx, Xzy,Yxz 

Sequence Dependence

Increasingly sensitive to measuring errors.
near gimbal lock when second 
rotation = 90 or 270° , i.e. first &
third axes  parallel (e.g. earth at poles for Fick, shoulder abducted to 90°, false torsion in eye movements in Fick & Helmholz)

Interpretaton in terms of anatomical motion (sagittal, frontal, transverse) Sometimes also grouped with Euler angles

[Grood & Suntay, 1983]

Euler As for Cardan but first and last rotations about same axis: 

Xyx, Yzy, Zxz, 
Xzx, Xyx, Yxy

Sequence Dependence

Gimbal lock when second 
rotation is 0 or 180°, i.e. first & third axes parallel

Interpretaton in terms of anatomical motion

No false torsion in eye movements for Xzx

[Craig, 1989 has conversion matrices between all Euler sequence combinations]
Euler parameters (Quaternions, Euler's axis and angle, finite rotational axis) q = q4 + iq1 + jq2 + kq3
i2 = j2 = k2 = ijk = -1 

q1 = ex sin (f/2)
q2 = ey sin (f/2)
q3 = ez sin (f/2)
q4 = cos(f/2)
e = unit vector along axis of rotation
f = total rotation angle

Interpretation in terms of anatomical motion Sequence-independent 

Insensitive to round-off errors

Conversion from Euler Angles

q1 = cos(yaw/2) cos(pitch/2) sin(roll/2) - sin(yaw/2) sin(pitch/2) cos(roll/2)

q2 = cos(yaw/2) sin(pitch/2) cos(roll/2) + sin(yaw/2) cos(pitch/2) sin(roll/2)

q3 = sin(yaw/2) cos(pitch/2) cos(roll/2) - cos(yaw/2) sin(pitch/2) sin(roll/2)

q4 = cos(yaw/2) cos(pitch/2) cos(roll/2) + sin(yaw/2) sin(pitch/2) sin(roll/2)

For small angles:
q1 ~ roll / 2
q2 ~ pitch / 2
q3 ~ yaw / 2
q4 ~ 1

Conversion from Quaternion to Euler
tan(yaw) = 2(q1q2+q4q3) / (q42 + q12 - q22 - q32)
sin(pitch) = -2(q1q3-q4q2)
tan(roll)  =  2(q4q1+q2q3) / (q42 - q12 - q22 + q32

[Haug, 1989; Kuipers, 1999]

Angle-axis q1 = Ux
q2 = Uy
q3 = Uz
q4 = f
Conversion from Euler Angles
Rotation Vector (Benati, Rodriguez-Hamilton) q1 = ex tan (f/2)
q2 = ey tan (f/2)
q3 = ez tan (f/2)
Gimbal lock when 180°
Helical angles (finite helical axis, screw theory, Woltring) h1 = A*Ux
h2 = A*Uy
h3 = A*Uz
sensitive to
measurement error & noise
combines description of location & attitude (absolute or relative) or location & attitude
[Ball, 1900; Woltring 1994]

The current rotations must respect the previous rotations to avoid gimbal lock to prevent any alignment of rotation axis which causes this problem. This problem doesn't depend on the mathematical way you choose to express rotations, it depends on the way to combine rotations. The problem comes from Euler's classical transform: R=Rx.Ry.Rz

Implicitely or explicitly you use it with matrices, quaternions, Euler or Cardan angles, ...

You should correct this transform and it works whatever you used to express your rotations:

R=R[R[R[Ox,a]Oy,b]R[Ox,a]Oz,c] . R[R[Ox,a]Oy,b] .R[Ox,a].

Contributed by Julien Gouesse


Altmann, Simon L  Rotations, quaternions, and double groups (Clarendon Press, Oxford, 1986).

Andrews Letter to the Editor, Journal of Biomechanics 17(1984)2, 155-158.

Ball, R.S. (1900) A Treatise on the Theory of Screws, Cambridge University Press

Benati, M., Morasso, P., Tagliasco, V., Zaccaria, R. (1980) Anthropomorphic robotics. I: representing mechanical complexity. Biological Cybernetics, 38, 125-140.

Benati, M., Morasso, P., Tagliasco, V. (1982) The inverse kinematic problem for anthropomorphic manipulator arms. Transactions of the ASME Journal Dynamical Systems, Measurements, and Control, 104, 110-113.

Blankevoort, L., Huiskes, R., Lange, A. de (1988) The Envelope of passive knee joint motion. J. Biomechanics 21, 705-720.

Bortz A John E. New Mathematical Formulation for Strapdown Inertial Navigation   IEEE Transactions on Aerospace and Electronic Systems January 1971, Vol. AES-7, No. 1, pp 61-66

Bottema & Roth "Theoretical Kinematics", Chapter 3 (Elsevier, Amsterdam 1979)

Chao, E.Y., J. Biomech. 13:989-1006, 1980

Craig, J.J. (1989) Introduction to Robotics, Addison-Wesley

Denavit, J. and Hartenberg, R.S. (1955) A kinematic notation for lower pair mechanisms based on matrices.  ASME J. Applied Mechanics, 22:215-221

Goeran Selvik, Roentgen Stereophotogrammetric Analysis - A Review Article, Acta Radiologica 31(1990), Fasc. 2.

Grood, E.S. and Suntay, W.J. (1983) A joint coordinate system for the clinical description of three-dimensional motions: applications to the knee. J. Biomech. Engng 105, 136-144.

Haug, E.J. (1989) Computer-Aided Kinematics and Dynamics of Mechanical Systems, Allyn and Bacon

Hiller M. Woernle C. A unified Representation of Spatial Displacements Mechanical and Machine Theory - Pergamon Press Vol. 19 pp.477-486, 1984

Jordan J. W. An Accurate Strapdown Direction Cosine Algorithm NASA TN D-5384, Sept, 1969

Kadaba M.P, H.K. Ramakrishnan and M.E. Wootten, Measurement of Lower Extremity Kinematics During Level Walking (pp. 383 - 392)

Kerry W. Spring (McGill): Euler Parameters and the Use of Quaternion Algebra in the Manipulation of Finite Rotations: a Review. Mechanism and Machine Theory 21(1986/5)5, 365-373.

The vector analysis of finite rotations and angles J. H. Laning, Jr. MIT/IL Special Rept. 6398-S-3, 1949 Mass. Inst. of Tech., Cambridge

Kuipers, J.B. (1999) Quaternions and Rotation Sequences, Princeton University Press

Liegeois Alain, Performance and Computer-Aided Design Vol. 7, Robot Technology Series Hermes Publishing, London - Paris - Lausanne 1985

Liegeois A. Les Robots, Tome 7: Analyse des performances et C.A.O. Hermes, Neully 1984

McCarthy JM, Introduction to Theoretical Kinematics, MIT Press, 1990.

Miller Robin B. A New Strapdown Attitude Algorithm  J. Guidance, Vol. 6, No. 4, July-Aug 1983, pp 287-291

Panjabi M.M, A.A. White & R.A. Brand in the Journal of Biomechanics 7(1974), 385

Rooney, J. (1977) A survey of representations of spatial rotation about a fixed point. Environment and Planning B, 4:185-210

Rooney, J. (1978) A comparison of representations of general spatial displacement.  Environment and Planning B, 5:45-88

Roth B, "Finite-Position Theory Applied to Mechanism Synthesis" in ASME Transactions, Journal of Applied Mechanics, pp 599-605

Simon L. Altmann (Oxford): Hamilton, Rodrigues, and the Quaternion Scandal.  Mathematics Magazine 62(1989/12)5, 291-308.

van Kampen A. and Huiskes R, The Three-Dimensional Tracking Pattern of the Human Patella (pp. 372 - 382)

M. Williams & H.R. Lissner, Biomechanics of Human Motion, W.B. Saunders Co., Philadelphia 1962

William G. Negendank, Felix R. Fernandez-Madrid, Lance K. Heilbrun, and Robert A. Teige, Magnetic Resonance Imaging of Meniscal Degeneration in Asymptomatic Knees (pp. 311 - 320)

Woltring (1994) J Biomech 27:1399-1414

Please let me know if you spot any errors, or have any additions!
Dr. Chris Kirtley