
The motion of an object from one position to another can be broken down into a rotation about and a translation along the instantaneous axis of rotation. (One exception will be when the object shows pure translation but no rotation.) This instantaneous axis of rotation is often called helical axis (screw axis) (Fig. 1).
The helical axis is a useful tool to analyze the relative motion of a rigid object to another, especially the joint motion. Human body joints have varying degrees of freedom depending on the shapes of the articulating bones: ballandsocket (3), condyloid (2), hinge (1), and pivot (1). Degrees of freedom in a joint basically means how many axes of rotation are present in the joint. The instantaneous axis of rotation of a joint can be viewed as a helical axis and the relative translation of the bones along the instantaneous axis of rotation can be quantified along this line. Displacement of a Point Fixed to the Moving Body Vector d shown in [Fig. 2] is the displacement of a point fixed to the moving body from position i to i+1 due to the object's rotation () and translation L.
Vector L shows the orientation of the helical axis:
where L = magnitude of the translation along the helical axis, and n = the unit vector of the helical axis. Vector r_{o} is the position vector of the helical axis. The displacement from position i to i+1 can be described as the sum of the translation along (L) and the displacement due to the rotation about the helical axis (d_{R}) (Fig. 3):
[Fig. 4] Focus on the rotation of a point fixed to the moving body (P shown in [Fig. 4]) about the helical axis passing through the origin of the reference frame. n is the unit vector of the helical axis. P is rotated around n to P'. Line QP is the perpendicular distance from n to P and vector QP can be written as ru, where u is the unit vector normal to n, and r = the radius. As vector ru rotates by angle around n, P moves to P'. Vectors Q, P, and P' are the position vectors of points Q, P, and P', respectively. Unit vector v (Fig. 4), normal to both n and u, can be defined as
From [Fig. 4]: , [4] and . [5] From [3] and [5]:
From [4], [5], and [6]:
since . Q is the projection of P on n or
From [7] and [8]:
where { } = column matrix operator, t = transpose, 1 = identity matrix, H = helical rotation matrix, and = cross product operator or . [10] in [10] has the following properties among many: , [11] where [12] tr() in [12] is the sum of the diagonal terms or the trace of the matrix. Remember here that both P and P' in [7] are described in the XYZsystem and H is thus a rotation matrix, not a transformation matrix. [11] is the general form of the rotation matrix about an arbitrary axis of rotation that passes through the origin of the reference frame. Now, let's get back to the original problem illustrated in [Fig. 2]. Let the position of the helical axis, r_{o}, be
From [9], and [2] and [Fig. 2]:
where i = frame, and j = marker. Expand [14] for N markers and take the mean: , [15] where = mean position of the markers in frame i, etc. Modify [14] using the mean position vector and apply [15]: , [16] where = the relative position of marker j to the mean position () in frame i, etc. In other words, H can be computed directly from the coordinates of the markers attached to the rotating body. This operation is independent from the translation along the helical axis (L). See the Computation of the Rotation Matrix page and the Singular Value Decomposition (SVD) page for details on how to compute the rotation matrix based on the least square method and singular value decomposition. From [14]:
where . [18] t is constant for all markers. Expand [17] for N markers and compute the mean: [19] Once H is known, t can be computed using [19]. Now, both H and t are known and from [9] and [11]:
Angle () can be obtained from [20]. Remember here that angle can not be negative. If the rotation happens in the opposite direction, vector n must be reversed while angle still maintains a positive value. Also from [9]:
Thus, from [9], [11], and [21]: , [22] where . [23] From [9] and [21]: . [24] From [24]: , [25] where {n_{1}}, {n_{2}}, and {n_{3}} = three column matrices. n_{1}, n_{2} & n_{3} are all parallel to n since
where k = a scalar. One can compute n from any column of the matrix shown in [25]. Use the column that gives the maximum magnitude because it is the least errorprone:
From [9]: ,. [28] and from [11] and [28]: . [29] From [18] and [29]: [30] Thus, [30] can be used in computing L. From [18]: . [31] Although [31] is a linear equation of r_{o}, it does not yield a unique solution since any point on the helical axis will suffice [31]: [32] Describe r_{o} in terms of a new vector R_{o}: [33] As shown in [33], R_{o} is still the position of the helical axis but it is perpendicular to the helical axis. From [33]: [34] and [35] From [31] and [35]: [36] [36] has a unique solution since R_{o} is the position vector of the helical axis which is perpendicular to the helical axis. Use [16], [19], [20], [25] or [27], [30], and [36] to obtain a complete set of description on the helical axis for a given situation. Helical Axis vs. Transformation Matrix [Fig. 5] shows 4 new vectors: R_{i}, R_{i+1}, y_{i}, and y_{i+1}. Vector R is the relative position of the origin of the reference frame fixed to the rotating body to point R while y is the position of a point observed in the rotating reference frame: [Fig. 5] [37] The relative position of any point fixed to the rotating body to point R in fact suffices [14] and the origin of the local reference frame is no exception. From [14] and [Fig. 5]: , [38] and . [39] The relative positions of the point of interest to the rotating reference frame can be transformed as , [40] where T_{i}_{/}_{F} = the transformation matrix from the fixed frame (XYZsystem) to frame i (X_{i}Y_{i}Z_{i}system), and y_{i}^{(}^{i}^{)} = vector y_{i} described in frame i, etc. From [39] and [40]: , [41] since the local reference frame rotates with the body and the relative position of a point on the body described in its local reference frame does not change: . [42] [41] basically shows that the helical rotation matrix can be obtained directly from the transformation matrices. References & Related Literature Challis, J.H. (1995). A procedure for determining rigid body transformation parameters. J Biomech 28, 733737. Dewey, B.R. (1988). Computer graphics for engineers. New York, NY: Harper & Row. Engin, A.E. (1980). On the biomechanics of the shoulder complex. J Biomech 13, 575590. Spoor, C.W., & Veldpaus, F.E. (1980). Rigid body motion calculated from spatial coordinates of markers. J Biomech 13, 391393. Woltring, H.J., Huiskes, R., De Lange, A., & Veldpaus, F.E. (1985). Finite centroid and helical axis estimation from noisy landmark measurements in the study of human joint kinematics. J Biomech 18, 379389. Zatsiorsky, V.M. (1998). Kinematics of human motion. UrbanaChampaign, IL: Human Kinetics. The author is grateful to Dr. Joe Sommer of Penn State for his valuable input on this topic.

© YoungHoo Kwon, 1998 