View Full Version : uniqueness and continuity of Euler angles

Ton Van Den Bogert
01-10-2003, 05:43 AM
Young-Hoo brings up some interesting issues. His description
of what happens during pure shoulder abduction is entirely

My equations produce a set of unique 3-D angles from an attitude
matrix, independent of any preceding data. If such history information
is not available, restricting theta to the -90 to +90 range is probably
a good convention. However, I agree that for quantifying continuous
motion, rather than unrelated 3-D poses, it is desirable to avoid the
sudden changes in angles that are caused by this convention. Continuity can
be indeed achieved by exploiting the existence of multiple sets of cardanic
angles that represent the same attitude matrix.

The first invariance is obvious: the attitude matrix T remains
unchanged when adding multiples of 360 degrees to any angle.
This is equivalent to the 2-D case. This invariance can be used to
eliminate discontinuities in descriptions of motions such as multiple
somersaults, walking in circles, etc.

Young-Hoo pointed out a more interesting invariance: T is also
invariant under the following transformation of the angles:

phi' = phi + 180
theta' = 180 - theta
psi' = psi + 180

This transformation changes the sign of the cos() of all three angles,
and of sin(phi) and sin(psi). It is easily seen that this does
not cause any changes in T, using equation (5) in

This invariance can -- in theory -- be used to avoid discontinuity in
the angles during the specific shoulder movement described by Young-Hoo.

However, there are practical problems. This discontinuity would occur
when the cardanic linkage passes through Gimbal lock. Gimbal lock occurs
when the second angle (theta) is +90 or -90 degrees, causing the first
and third axis of the linkage to become aligned. The linkage then has
two rotational degrees of freedom rather than three.

Note that it is *not* the joint itself that has two degrees of freedom in
this situation, but rather the (imaginary) cardanic linkage that is used
to quantify the rotational motion in the joint. The problem is
mathematical rather than physical.

If the motion is slow enough, or the data is collected at a high
enough sampling rate, we will sooner or later get an attitude matrix that
is very close to Gimbal lock. In that case the first and third angles
(phi and psi) become extremely sensitive to noise. This is readily
seen in my equations. If cos(theta) is zero, the equation for phi becomes:

ph = atan2(-t32,t33) = atan2(sin(ph)cos(th),cos(ph)cos(th))
= atan2(0,0)

which is undefined. The same happens for the third angle (psi).
In practice, cos(theta) is never exactly zero, but can get arbitrary
close to zero, causing arbitrarily large noise in phi and psi. See
also [1]. This makes these angles rather useless, in such poses, for
motion interpretation, even though they still describe the attitude
matrix correctly.

This noise also makes it difficult to reliably maintain continuity in
cardanic angles when moving through Gimbal lock. For instance, when the
noise in phi and psi briefly exceeds 360 degrees, we no longer can keep
track of how many revolutions have occurred. I programmed a "cardanic
continuity filter" once to handle this properly. It uses constructs such
as "if (abs(cos(theta)) < epsilon)" to detect Gimbal lock and switch
to an alternative algorithm. This works, sort of, but it slightly
alters the motion and there is always a finite probability that noise
will confuse the decision process.

Cardanic angles were first used in biomechanics to quantify motion in
the knee joint [2]. Gimbal lock is impossible in the knee if ab-adduction
is used as the second axis of rotation. For the shoulder joint, this is no
longer guaranteed. Not having done any shoulder kinematics myself, I
do not know how often problems related to Gimbal lock occur in such an
analysis. But I do know that these problems continue to motivate new
methods for description of 3-D joint kinematics [3].

Outside of biomechanics, 3-D rotations are often quantified using
quaternions. Quaternions are related to Woltring's "helical angles"
[1] and also to the "axis-angle" description that is commonly used in
3-D graphics and animation, see [4]. All of these descriptions avoid
Gimbal lock problems, but are not easily translated into a clinical
or functional interpretation.


[1] Woltring HJ (1994) 3-D attitude representation of human joints: a
standardization proposal. J Biomech. 27(12):1399-414.

[2] Grood ES, Suntay WJ (1983) A joint coordinate system for the clinical
description of three-dimensional motions: application to the knee.
J Biomech Eng. 105(2):136-44.

[3] Cheng PL, Nicol AC, Paul JP (2000) Determination of axial rotation
angles of limb segments - a new method. J Biomech 33(7):837-43.

[4] http://www.martinb.com/maths/geometry/rotations/


Ton van den Bogert


A.J. (Ton) van den Bogert, PhD
Department of Biomedical Engineering
Cleveland Clinic Foundation
9500 Euclid Avenue (ND-20)
Cleveland, OH 44195, USA
Phone/Fax: (216) 444-5566/9198

To unsubscribe send SIGNOFF BIOMCH-L to LISTSERV@nic.surfnet.nl
For information and archives: http://isb.ri.ccf.org/biomch-l