Computation of the Rotation Matrix
Up ] Orientation Angles ] Computation of the Orientation Angles ] Joint Angle vs. Orientation Angles ] Angular Velocity vs. Orientation Angles ] Electromagnetic Motion Sensors ] Joint Center: Functional Method ] [ Computation of the Rotation Matrix ] Helical (Screw) Axis ] Motion Sensors: Joint Center ]

This page is based on the article by Challis (1995).

Rotation of a Body
The Least-Square Approach
Computation of the Rotation Matrix
References & Related Literature

Rotation of a Body

In motion analysis, it is often necessary to compute the transformation matrix directly from the coordinates of the markers fixed on a moving body. This can be done if more than 3 markers are fixed on the body. Once the transformation matrix is known, the orientation angles and eventually the location of center of rotation as well may be computed.

As shown in Figure 1, an object rotates from position 1 to position 2 about the center of rotation (C). Let rotation matrix R be

    Figure 1

.    [1]

The following relationship holds:

,    [2]

where [xc, yc, zc] = the coordinates of the center of rotation, [x1i, y1i, z1i] = the position of marker i at position 1, and [x2i, y2i, z2i] = the position of marker i at position 2. [2] involves a total of 12 unknowns, thus requires at least 4 markers since each marker provides 3 equations.

In an effort to reduce the number of unknowns involved, [2] can be reduced to




,    [5]

and N = number of markers. [3] basically shows the rotational transformation about the mean-coordinate point within the body, involving 9 unknowns. At least 3 markers are required here. From [3]:

.    [6]


The Least-Square Approach

Applying the least-square approach to [6]:

.    [7]

Further developing [7]:





.    [10]

Matrix shown in [10] is a 1 x 1 matrix (scalar) so it is equal to its transpose.

The least-square approach presented in [7] is in fact equivalent to

.    [11]

Further developing [11]:




where tr(a) = the trace (sum of the diagonal terms) of matrix a

Now, let

,    [14]

where c = the cross-dispersion matrix or the correlation matrix.

From [11], [12] & [14]:

.    [15]


Computation of the Rotation Matrix

The singular value decomposition of matrix c shown in [15] provides

,    [16]

where u & v = orthogonal matrices, and w = diagonal matrix containing the singular values of c. See the Singular Value Decomposition page in this section for the details of this method. Substituting [16] into [15],

,    [17]


,    [18]



Since matrix w shown in [17] is a diagonal matrix, only the diagonal elements of matrix c' shown in [17] and [18] can contribute to the trace. In addition, matrix c' must be orthogonal because all three matrices composing c' are orthogonal. Therefore, tr(c'w) becomes maximum when c' is the identity matrix:

.    [20]


.    [21]

One problem that may arise here in using [21] is that matrix R obtained from [21] can have a determinant of -1. In other words, one can obtain a reflection matrix of the desired rotation matrix. [21] can be modified to solve this problem:

.    [22]



[22] can be used effectively in quantifying the joint motions. As shown in Figure 2, one can transform the global coordinates of the markers fixed to the distal segment to those described in the proximal segment's reference frame (frame P):

    Figure 2

,    [23]

where i = marker, x = the position of the marker observed in frame P, TP/G = the transformation matrix from the global frame to frame P, X = the global position of the marker, and XP = the global position of the origin of frame P. Thus, vectors x'1i & x'2i shown in [2] can be obtained as

.    [24]

The rotation matrix to be obtained from [22] in this case is therefore the joint motion matrix. One thing, at least 3 markers must be commonly observed at both positions (N shown in [7] >= 3).


References & Related Literature

Challis, J.H. (1995). A procedure for determining rigid body transformation parameters. J. Biomechanics 28, 733-737.



Young-Hoo Kwon, 1998-