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

accurate.

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

http://www.kwon3d.com/theory/euler/euler_angles.html

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.

References

[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

---------------------------------------------------------------

of what happens during pure shoulder abduction is entirely

accurate.

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

http://www.kwon3d.com/theory/euler/euler_angles.html

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.

References

[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

---------------------------------------------------------------