Alignment-Free Joint Angles Measurement Using Virtual Reference Coordinate System
Abstract
In order to overcome the difficulty in aligning specimens accurately with in a reference system for angular kinematic measurements, amethod of using a virtual reference coordinate system was designed and implemented in conjunction with using an optical motion capture device. The virtual coordinate system is created by digitizing three identifiable points in space. In this way, angular measurements of specimens can be described with respect to the virtual coordinate system to be anatomically relevant. This system provides an easier procedure for 3-D angular measurement than aligning the specimen with a loading apparatus, in which a reference coordinate system generally exists. More importantly, the procedure using a virtual reference coordinate system can diminish variations resulting from possible misalignments of specimens in a reference system, thus enablingreliable measurement of rotational data that is independent of specimen alignment.
Introduction
The measurements of static and dynamic joint angular kinematics are used for a wide spread range of applications, including biomechanical studies, sports performance, and rehabilitation [1]. The joint angular change refers toa rotational motion of the joints about the anatomical joint axes approximated by bony structures. Various methods, such as using goniometers, camera-based motion capturing systems, optical fibers, inertial sensors or radio graphs, can be usedfor joint angle measurement [2-4]. These sensors or devices generally require the reference frames andtest subjects or specimens that are aligned within the frames. The frames function as a reference coordinate system by which angular motion can be expressed. However, the accurate representation of angular change tends to be heavily contingent upon the alignment accuracy of the test subjects or specimens with respect to the reference frames. For example, in the application of ankle kinematics, small offsets in the alignment of an anatomical axis likely induce large errors of angular measurements describing joint rotations [5].
In order to improve the reliability of angular representation, as well as mitigate the difficulty of alignment procedures, a method of using a virtual reference coordinate system has been designed to be used in conjunction with a camera-based motion capturing system. Our proposed method allows for the joint angular measurements, with respect to the defined virtual reference coordinate system, has easily defined orientations of the virtual reference coordinate system in experimental setups. In addition, this provides more reliable measurement of rotational changes independent of alignment procedure with much less effort. This technical report focuses on the mathematical description for the proposed virtual reference coordinate system method and the validation of the method.
Methods
The method proposed in this report was developed to measure three-degrees of freedom joint angles (the rotation of x, y, and z axis, so called, yaw, pitch, and roll, respectively). This was designed and validated with the Optotrak system (Northern Digital Inc., Canada), but can work with other camera-based motion capturing systems. The Optotrak is a non-contact motion measurement system that tracks small infrared, light-emitting diodes that are attached to the test subjects.
Virtual coordinate system
Virtual points refer to points in spacewhere it is difficult or undesirable to fix markers that are tracked by motion capturing systems. The virtual points can be individually defined by identifying specific points with a customized or commercial digitizing probe (Figure 1a). If three virtual points are specified in space, a virtual coordinate system can be created in such a manner that the x-axis is the line passing through the first and second virtual points, the y-axis is the line passing through the third virtual point and perpendicular to the x-axis (Figure 1b). For example, inankle kinematics, a virtual coordinate system can be set up as follows: The first virtual point is defined at the tip of the lateral malleolus, the second point is at the tip of the medial malleolus, and the third point isrelative to the anterior tibia above the foot. In this way, one of the axes will bealigned with the ankle anatomical axis because dorsi-and plantar-flexion of the foot are generally considered to take place in the ankle (talocrural) joint whose axis crosses the tips of lateral and medial malleolus [6-8].
Local coordinate system and orientation
The accurate measurement of angular displacements of an object requires two coordinate systems: A referenced global coordinate system to describe the orientation of the object and a local coordinate system that is usually attached to the object being examined. For example, (Figure 2a) shows a pair of coordinate systems G and A, where the position and orientation of system A relative to G is defined by the displacement vector ^{G}A, and three unit vectors $\left({}^{\text{G}}\text{x}{}_{\text{A}},{}^{\text{G}}\text{y}{}_{\text{A}},{}^{\text{G}}\text{z}{}_{\text{A}}\right)$ which align to the coordinate axes of the A coordinate system. For convenience, the three vectors are combined into a 3 × 3 matrix and written as ${}^{\text{G}}\text{R}{}_{A}=\left[{}^{\text{G}}\text{x}{}_{A}{}^{\text{G}}\text{y}{}_{A}{}^{\text{G}}\text{z}{}_{A}\right],$ called a rotation matrix. The notation ^{I}j is used to indicate the coordinates of a point j as expressed in a coordinate system I.
A rigid body can be made and attached to the object of interest to define a local coordinate system assigned to that object. The three-markers rigid bodies define three points in space which can be used to create a plan or set up a three-dimensional coordinate system. Since a rigid body contains three markers, it can constitute a plane inspace, and an orthogonalcoordinate system can be fixed to that plane. (Figure 2b) shows an example of a local coordinate system set up on a rigid plane containing three marker positions. With the position p as the origin of the local frame, the x-axis of the frame (i) can be defined as the same direction of the vector pointing to the point q from the point p, which is represented by (^{G}q - ^{G}p). The y-axis of the frame (j) can be defined as perpendicular to the plane created by the three marker positions. The z-axis of the frame will then be automatically determined by the cross product i × j. The unit vectors (i, j, and k) along with the x, y, and z-axis of the local frame can be computed by the following formula.
$$i\text{=}\frac{{}^{G}q-{}^{G}p}{\parallel {}^{G}q-{}^{G}p\parallel}\text{,}j\text{=}\frac{({}^{G}q-{}^{G}p)\text{}\times \text{(}{}^{G}r-{}^{G}p\text{)}}{\parallel ({}^{G}q-{}^{G}p)\text{}\times \text{(}{}^{G}r-{}^{G}p\text{)}\parallel}\text{,and}K=\text{}i\text{}\times \text{}J\text{(1)}$$
This described procedure also applies to the process of obtaining virtual points using a digitizing probe. Since the three markers attached to the digitizing probe define a local coordinate system, and the physical location of the tip relative to the probe markers is already known, the tip position of the probe is easily measured.
Definition of virtual coordinate system
In the application of ankle kinematics, two rigid bodies can be attached to the lower limb and the foot respectively, to define local coordinate systems assigned to each segment of the limb (Figure 3). The default global coordinate system (G) for the Optotrak system lies in the camera lens of the device, but any such camera-based capturing system has its own method for defining the global coordinate system. Any other coordinate systems that are specified on rigid bodies are therefore called local coordinate systems and are expressed with respect to the reference coordinate system. Figure 3 shows these coordinate systems defined for the application. We have defined four different coordinate systems for the kinematic measurement of ankle joint. The two local coordinate systems and the global coordinate system aredenoted by A, B, and G respectively, and the virtual coordinate system is denoted by V. One of the axes of the virtual coordinate system is aligned with the anatomical joint axis. In this application, we aim to measure the foot angular motion (ankle rotation) about the anatomical axis, which is now replaceable by the V coordinate system.
In order to make the measurement of the ankle rotation independent of any unintentional movement of the lower limb, the V coordinate system needs to be expressed with respect to the A coordinate system, that is fixed to the limb segment above the foot. Thus, the orientation of the Vcoordinate system needs to be represented by the rotation matrix ${}^{\text{A}}\text{R}{}_{\text{v}}$. The procedure in ${}^{\text{A}}\text{R}{}_{\text{v}}$ computation is in the following description. (Figure 4a) shows the G, A, and V coordinate systems andthe points P, Q, and R, the three virtual points that have been digitized previously. Based on these three points, the following vectors are defined: ^{G}P is a vector that begins at the origin of the G coordinate system and ends at point P, and similarly for ^{G}Q and ^{G}R. The notation ^{I}j is used to indicate the coordinates of a point j as measured in a coordinate system I. By a principle of vector summation within the triangle, the virtual points P, Q, and R are now expressed in the A coordinate system as follows; ^{A}P = ^{G}P - ^{G}A, ^{A}Q = ^{G}Q - ^{G}A, and ^{A}R = ^{G}R - ^{G}A. As shown in (Figure 4b), we can then create the x-axis of the V coordinate system along the line crossing the P and Q points, and the y-axis along the line crossing both R and the origin O, which is not defined yet.
The origin O of the V coordinate system can be computed as follows. The O has coordinates and the vector from the origin of Ato the origin O is written as ^{A}O = (^{A}O_{x}, ^{A}O_{y}, ^{A}O_{z}). Like wise, AP and AQ vectors are written as $\left({}^{\text{A}}\text{P}{}_{\text{x}},{}^{\text{A}}\text{P}{}_{\text{y}},{}^{\text{A}}\text{P}{}_{\text{z}}\right)$ and $\left({}^{\text{A}}\text{Q}{}_{\text{x}},{}^{\text{A}}\text{Q}{}_{\text{y}},{}^{\text{A}}\text{Q}{}_{\text{z}}\right)$, respectively. Since ${}^{\text{A}}\overrightarrow{\text{PQ}}$ and ${}^{\text{A}}\overrightarrow{\text{QR}}$ is perpendicular (because x and y axes are orthogonal), the dot product of the two vectors gives ${}^{\text{A}}\overrightarrow{\text{PQ}}.$ ${}^{\text{A}}\overrightarrow{\text{QR}}=\text{0}$. This is equivalent to the following scalar equation.
$$\left({}_{}{}^{\text{A}}\text{Q}{}_{\text{x}}-{}_{}{}^{\text{A}}\text{P}{}_{\text{x}}\right)\left({}_{}{}^{\text{A}}R{}_{\text{x}}-{}_{}{}^{\text{A}}\text{O}{}_{\text{x}}\right)\text{+}\left({}_{}{}^{\text{A}}\text{Q}{}_{\text{y}}-{}_{}{}^{\text{A}}\text{P}{}_{\text{y}}\right)\left({}_{}{}^{\text{A}}R{}_{\text{y}}-{}_{}{}^{\text{A}}O{}_{\text{y}}\right)\text{+}$$
$$\left({}_{}{}^{\text{A}}\text{Q}{}_{\text{z}}-{}_{}{}^{\text{A}}\text{P}{}_{\text{z}}\right)\left({}_{}{}^{\text{A}}R{}_{\text{z}}-{}_{}{}^{\text{A}}O{}_{\text{z}}\right)\text{=0(2)}$$
Also, the cross product of ${}^{\text{A}}\overrightarrow{\text{PQ}}$ and ${}^{\text{A}}\overrightarrow{\text{QR}}$ will be perpendicular to ${}^{\text{A}}\overrightarrow{\text{OR}}$ (because z and y axis are orthogonal), so it gives $\left({}^{\text{A}}\overrightarrow{{\text{PQ}}_{\text{X}}}\text{}{}^{\text{A}}\overrightarrow{\text{QR}}\right).$ ${}^{\text{A}}\overrightarrow{\text{OR}}=\text{0}$. This is equivalent to the following scalar equation.
$$\begin{array}{l}\left\{\left({}^{\text{A}}\text{Q}{}_{\text{y}}\text{-}{}^{\text{A}}\text{P}{}_{\text{y}}\right)\right.\left({}^{\text{A}}\text{R}{}_{\text{z}}\text{-}{}^{\text{A}}\text{Q}{}_{\text{z}}\right)\text{-}\left({}^{\text{A}}\text{Q}{}_{\text{z}}\text{-}{}^{\text{A}}\text{P}{}_{\text{z}}\right)\left.\left({}^{\text{A}}\text{R}{}_{\text{y}}\text{-}{}^{\text{A}}\text{Q}{}_{\text{y}}\right)\right\}\left({}^{\text{A}}\text{R}{}_{\text{x}}\text{-}{}^{\text{A}}\text{O}{}_{\text{x}}\right)+\\ \left\{\left({}^{\text{A}}\text{Q}{}_{\text{z}}\text{-}{}^{\text{A}}\text{P}{}_{\text{z}}\right)\right.\left({}^{\text{A}}\text{R}{}_{\text{x}}\text{-}{}^{\text{A}}\text{Q}{}_{\text{x}}\right)\text{-}\left({}^{\text{A}}\text{Q}{}_{\text{x}}\text{-}{}^{\text{A}}\text{P}{}_{\text{x}}\right)\left.\left({}^{\text{A}}\text{R}{}_{\text{z}}\text{-}{}^{\text{A}}\text{Q}{}_{\text{z}}\right)\right\}\left({}^{\text{A}}\text{R}{}_{y}\text{-}{}^{\text{A}}\text{O}{}_{\text{y}}\right)+\\ \left\{\left({}^{\text{A}}\text{Q}{}_{\text{x}}\text{-}{}^{\text{A}}\text{P}{}_{\text{x}}\right)\right.\left({}^{\text{A}}\text{R}{}_{\text{y}}\text{-}{}^{\text{A}}\text{Q}{}_{\text{y}}\right)\text{-}\left({}^{\text{A}}\text{Q}{}_{\text{y}}\text{-}{}^{\text{A}}\text{P}{}_{\text{y}}\right)\left.\left({}^{\text{A}}\text{R}{}_{\text{x}}\text{-}{}^{\text{A}}\text{Q}{}_{\text{x}}\right)\right\}\left({}^{\text{A}}\text{R}{}_{\text{z}}\text{-}{}^{\text{A}}\text{O}{}_{\text{z}}\right)\text{=0(3)}\end{array}$$
Lastly, since the virtual points P, O, and Q lie on the same line, the two vectors ${}^{\text{A}}\overrightarrow{\text{PO}}$ and ${}^{\text{A}}\overrightarrow{\text{PQ}}$ are collinear $\left({}^{\text{A}}\overrightarrow{\text{PO}}\text{//}{}^{\text{A}}\overrightarrow{\text{PQ}}\right).$ Thus, the ratios of distances of each component of the two vectors satisfies
$$\frac{{}^{\text{A}}\text{O}{}_{\text{X}}-{}^{\text{A}}P{}_{\text{X}}}{{}^{\text{A}}\text{Q}{}_{\text{X}}-{}^{\text{A}}P{}_{\text{X}}}\text{=}\frac{{}^{\text{A}}\text{O}{}_{\text{y}}-{}^{\text{A}}P{}_{\text{y}}}{{}^{\text{A}}\text{Q}{}_{\text{y}}-{}^{\text{A}}P{}_{\text{y}}}\text{=}\frac{{}^{\text{A}}\text{O}{}_{\text{z}}-{}^{\text{A}}P{}_{\text{z}}}{{}^{\text{A}}\text{Q}{}_{\text{z}}-{}^{\text{A}}P{}_{\text{z}}}\text{(4)}$$
From the Equations (2), (3), and (4), the three coordinates $\left({}^{\text{A}}\text{O}{}_{\text{x}},{}^{\text{A}}\text{O}{}_{\text{y}},{}^{\text{A}}\text{O}{}_{\text{z}}\right)$ of the origin O can be obtained. Now that the vectors ${}^{\text{A}}\overrightarrow{\text{OP}},$ ${}^{\text{A}}\overrightarrow{\text{OQ}},$, and ${}^{\text{A}}\overrightarrow{\text{OR}}$ are known, the rotation matrix ${}^{\text{A}}\text{R}{}_{\text{v}}$ can be written as
$${}^{\text{A}}\text{R}{}_{\text{v}}\text{=}\left[\frac{{}^{\text{A}}\overrightarrow{\text{OP}}}{\Vert {}^{\text{A}}\overrightarrow{\text{OP}}\Vert}\text{,}\frac{{}^{\text{A}}\overrightarrow{\text{OR}}}{\Vert {}^{\text{A}}\overrightarrow{\text{OR}}\Vert}\text{,}\frac{{}^{\text{A}}\overrightarrow{\text{OP}}\times {}^{\text{A}}\overrightarrow{\text{OR}}}{\Vert {}^{\text{A}}\overrightarrow{\text{OP}}\times {}^{\text{A}}\overrightarrow{\text{OR}}\Vert}\right]\text{(5)}$$
Orientation of joint angle in virtual reference system
The orientations of the A and B local coordinate systems, with reference to the G coordinate system, are represented by by ^{G}R_{A} and ^{G}R_{B}. Since motion capturing systems track the position of all markers in their default global coordinate system, the ${}^{\text{G}}\text{R}{}_{\text{A}}$ and ${}^{\text{G}}R{}_{\text{B}}$ are easily calculated from the marker information provided by the capturing system. The angular representation of the ankle between the foot and the limb segment above the foot must be independent of an unexpected movement of the limb segment during ankle motion. Therefore, an additional local coordinate system (A) has been assigned to the limb segment (above the foot) where the virtual coordinate system has also been set up. Now that the B coordinate system has been attached to the lower foot, ${}^{\text{V}}\text{R}{}_{\text{B}}$ has the angular information about the anatomical ankle joint axis. The rotation matrix that relates the V and B coordinate systemsis written as
$${}^{\text{V}}\text{R}{}_{\text{B}}\text{=}{}^{\text{V}}\text{R}{}_{\text{A}}{}^{\text{V}}\text{R}{}_{\text{B}}\text{(6)}$$
Since ${}^{\text{V}}\text{R}{}_{\text{A}}$ VRA is an orthogonal matrix, it can be written as
$${}^{\text{V}}\text{R}{}_{\text{A}}\text{=}{\left({}^{\text{A}}\text{R}{}_{\text{V}}\right)}^{-1}\text{(7)}$$
On the other hand, ${}^{\text{G}}\text{R}{}_{\text{B}}$ can be written as ^{G}R_{B} = ^{G}R_{A} ^{A}R_{B}. When ${\left({}^{\text{G}}\text{R}{}_{\text{A}}\right)}^{-1}$ is taken on both sides, it yields (^{G}R_{A} ) ^{-1} ^{G}R_{B} = (^{G}R_{A} ) ^{-1} ^{G}R_{A} ^{A}R_{B}. Since ${\left({}^{\text{G}}\text{R}{}_{\text{A}}\right)}^{-1}{}^{\text{G}}R{}_{\text{A}}\text{=I,}$ it finally gives
$${}^{\text{A}}\text{R}{}_{\text{B}}\text{=}{\left({}^{\text{G}}\text{R}{}_{\text{A}}\right)}^{-1}{}^{\text{G}}\text{R}{}_{\text{B}}\text{(8)}$$
Substituting Equation (7) and (8) into the right side of the Equation (6), the ${}^{\text{G}}\text{R}{}_{\text{B}}$ is finally calculated such as
$${}^{\text{V}}\text{R}{}_{\text{B}}\text{=}{\left({}^{\text{A}}\text{R}{}_{\text{V}}\right)}^{-1}{\left({}^{\text{G}}\text{R}{}_{\text{A}}\right)}^{-1}{}^{\text{G}}R{}_{\text{B}}\text{=}{\left({}^{\text{G}}\text{R}{}_{\text{A}}{}^{\text{A}}\text{R}{}_{\text{V}}\right)}^{-1}{}^{\text{G}}\text{R}{}_{\text{B}}\text{(9)}$$
Note that ${}^{\text{G}}\text{R}{}_{\text{A}}$ and ${}^{\text{G}}R{}_{\text{B}}$ are given from the measuring system, andthe rotation matrix ${}^{\text{A}}\text{R}{}_{\text{V}}$ can be easily obtained as described already. It is also important to note that the ${}^{\text{A}}\text{R}{}_{\text{V}}$ is constant regard less of the motion of the limb segment above the foot if the A is still attached to the limb because the V and A coordinate systems have beenalready set up. In other words, the relative orientation of V with respect to A does not change even if the A coordinate system changes its position and orientation along the movement of the lower limb. (Figure 5a) shows an example of the measurement of the ankle motion and shows the case of different orientation of the B coordinate system depending on the starting (B, when the foot is at a neutral position) and the next positions (B', after the foot is flexed). After foot movement, ^{G}R_{A} and ${}^{\text{G}}\text{R}{}_{\text{B}},$ can be computed using the new positions of markers in two rigid bodies. We now call the V coordinate system at the second measurement position V' (we assume that the limb segment above the foot moves slightly with the ankle movement). Using the Equation (9), the orientation of the B' coordinate system in the V' coordinate system can be computed as
$${}^{{\text{V}}^{\text{'}}}\text{R}{}_{{\text{B}}^{\text{'}}}\text{=}{\left({}^{\text{G}}\text{R}{}_{\text{A}}\text{,}{}^{{\text{A}}^{\text{'}}}\text{R}{}_{{\text{V}}^{\text{'}}}\right)}^{\text{-1}}{}^{\text{G}}\text{R}{}_{{\text{B}}^{\text{'}}}\text{=}{\left({}^{\text{G}}\text{R}{}_{\text{A}}\text{,}{}^{\text{A}}\text{R}{}_{\text{V}}\right)}^{\text{-1}}{}^{\text{G}}\text{R}{}_{{\text{B}}^{\text{'}}}\text{(10)}$$
As already mentioned, the ${}^{{\text{A}}^{,}}\text{R}{}_{{\text{V}}^{,}}$ will be the same as ${}^{\text{A}}\text{R}{}_{\text{V}}$. The computed ${}^{\text{V}}\text{R}{}_{\text{B}}$ and ${}^{{\text{V}}^{,}}\text{R}{}_{{\text{B}}^{,}}$ matrix describes the RPY angles (roll, pitch, and yaw), which represent successive rotations of the B and B' coordinate system about the fixed X, Y, and Z axes of the virtual reference coordinate system, respectively.
Net joint angle representation in virtual reference system
If the B local coordinate system would have been defined that their axes are exactly aligned to those of the Vreference coordinate systemat the starting position, the RPY angles computed from the ${}^{{\text{V}}^{,}}\text{R}{}_{{\text{B}}^{,}}$ matrix would be the net angle components about the anatomical axis during the motion. However, this is not the usual case, and it is impractical to align the B with the V reference system when ever the measurements are made. Thus, in order to obtain the angular displacement of the joint at a given time with respect to a starting (neutral) position, we need to compute the orientation matrix described at both positions and calculate the net angle components occurring between the starting and the next position from those matrices.
The following procedure shows how to compute the net angle component. As shown in (Figure 5b), the net change of the two matrices ${}^{\text{V}}\text{R}{}_{\text{B}}$ and ${}^{{\text{V}}^{,}}\text{R}{}_{{\text{B}}^{,}}$ can be represented by the unit vector ^{B}m = [^{B}m_{x}, ^{B}m_{y}, ^{B}m_{z}] and an angle of rotation θ. However, the final goal of this process is to express the net joint angles in the V reference coordinate system, instead of in the B coordinate system. Thus, the idea is that after determining the rotation axis ^{B}m and angle θ in the B coordinate system, they can be applied to the V reference coordinate system such that V has been rotated during motion by an angle θ about the rotation axis ^{V}m (Figure 5c).
Since ^{B}R_{B'} = (^{G}R_{B})^{-1} ^{G}R_{B'} = (^{G}R_{B})^{-1} ^{G}R_{B'}, with the rotation matrix ^{B}R_{B'} with the rotation matrix ^{B}R_{B'}, the rotation axis ^{B}m and angle θ are obtained as follows [8]. If the rotation matrix ${}^{\text{B}}\text{R}{}_{{\text{B}}^{,}}$ is written as:
$${}^{\text{B}}\text{R}{}_{{\text{B}}^{,}}\text{=}\left[\begin{array}{l}{\text{r}}_{\text{00}}{\text{r}}_{01}{\text{r}}_{02}\\ {\text{r}}_{10}{\text{r}}_{11}{\text{r}}_{12}\\ {\text{r}}_{20}{\text{r}}_{21}{\text{r}}_{22}\end{array}\right]$$
Solving for θ gives ${\text{\theta =cos}}^{-1}\left(\left({\text{r}}_{\text{00}}{\text{+r}}_{11}{\text{+r}}_{22}-1\right)/2\right)$. The value of θ that lies in the range of 0 to π will be selected, and the unique corresponding axis of rotation will be computed (if the value of θ was in the range of -π to 0, the resulting rotation axis would point in the opposite direction to the one that will be computed).
Solving for ^{B}m gives to $\left({}^{\text{B}}\text{m}{}_{\text{x}},{}^{\text{B}}\text{m}{}_{\text{y}},{}^{\text{B}}\text{m}{}_{\text{z}}\right)$ as follows:
${}^{\text{B}}\text{m}{}_{\text{x}}=\text{}\pm \sqrt{\frac{{\text{r}}_{\text{00}}-\mathrm{cos}\text{\theta}}{1-\mathrm{cos}\text{\theta}}}$ where, m_{x} is positive if $\left({\text{r}}_{\text{21}}{\text{-r}}_{\text{12}}\right)$ is positive.
${}^{\text{B}}\text{m}{}_{\text{y}}=\text{}\pm \sqrt{\frac{{\text{r}}_{11}-\mathrm{cos}\text{\theta}}{1-\mathrm{cos}\text{\theta}}\text{}}\text{or}\frac{{\text{r}}_{\text{01}}{\text{+r}}_{\text{10}}}{2{\text{m}}_{\text{x}}\left(1-\mathrm{cos}\text{\theta}\right)}$ where, m_{y} is positive if $\left({\text{r}}_{\text{02}}{\text{-r}}_{\text{20}}\right)$ is positive.
${}^{\text{B}}\text{m}{}_{\text{z}}=\text{}\pm \sqrt{\frac{{\text{r}}_{22}-\mathrm{cos}\text{\theta}}{1-\mathrm{cos}\text{\theta}}\text{}}\text{or}\frac{{\text{r}}_{\text{02}}{\text{+r}}_{\text{20}}}{2{\text{m}}_{\text{x}}\left(1-\mathrm{cos}\text{\theta}\right)}$ where, m_{z} is positive if $\left({\text{r}}_{\text{21}}{\text{-r}}_{\text{12}}\right)$ is positive.
If the absolute value of m_{x} is larger than the absolute values of my and m_{z}, a more accurate answer for m_{y} and m_{z} can be obtained by using a second term in the above formulas.
In order to express the measured rotation as a rotation that occurs within the V coordinate system, the rotation axis Bm and angle θ can be applied directly to the V coordinate systemregardless of the orientation of the V coordinate system (Figure 5d). This allows the V coordinate system to be interpreted as rotating by θ around the axis of ^{B}m. However, the ^{B}m is the vector expressed in the B coordinate system. Thus, it needs to be expressed as a vector in the V coordinate system by ^{V}m = ^{V}R_{B} ^{B}m. With ^{V}m = (^{V}m_{x}, ^{V}m_{y}, ^{V}m_{z}) and θ, the rotation matrix ${}^{\text{V}}\text{R}{}_{{\text{v}}^{,}}$ will be computed by using the following steps [8].
$${}^{\text{V}}\text{R}{}_{{\text{v}}^{,}}\text{=}\left[\begin{array}{l}{\text{q}}_{\text{00}}{\text{q}}_{01}{\text{q}}_{\text{02}}\\ {\text{q}}_{\text{10}}{\text{q}}_{11}{\text{q}}_{12}\\ {\text{q}}_{\text{20}}{\text{q}}_{21}{\text{q}}_{22}\end{array}\right]\text{(11)}$$
where, ${\text{q}}_{\text{00}}\text{=}{}^{\text{V}}\text{m}{}_{\text{x}}{}^{\text{V}}\text{m}{}_{\text{x}}\left(1-\mathrm{cos}\text{\theta}\right)\text{+}\mathrm{cos}\text{\theta ,}$
$${\text{q}}_{\text{01}}\text{=}{}^{\text{V}}\text{m}{}_{\text{x}}{}^{\text{V}}\text{m}{}_{\text{y}}\left(1-\mathrm{cos}\text{\theta}\right)-{}^{\text{V}}\text{m}{}_{\text{z}}\text{sin\theta ,}$$
$${\text{q}}_{\text{02}}\text{=}{}^{\text{V}}\text{m}{}_{\text{X}}{}^{\text{V}}\text{m}{}_{\text{Z}}\left(\text{1-cos\theta}\right)\text{+}{}^{\text{V}}\text{m}{}_{\text{Y}}\text{sin\theta ,}$$
$${\text{q}}_{10}\text{=}{}^{\text{V}}\text{m}{}_{\text{x}}{}^{\text{V}}\text{m}{}_{\text{y}}\left(1-\mathrm{cos}\text{\theta}\right)+{}^{\text{V}}\text{m}{}_{\text{z}}\text{sin\theta ,}$$
$${\text{q}}_{11}\text{=}{}^{\text{V}}\text{m}{}_{\text{y}}{}^{\text{V}}\text{m}{}_{\text{y}}\left(1-\mathrm{cos}\text{\theta}\right)+\mathrm{cos}\text{\theta ,}$$
$${\text{q}}_{12}\text{=}{}^{\text{V}}\text{m}{}_{\text{y}}{}^{\text{V}}\text{m}{}_{\text{z}}\left(1-\mathrm{cos}\text{\theta}\right)-{}^{\text{V}}\text{m}{}_{\text{x}}\text{sin\theta ,}$$
$${\text{q}}_{20}\text{=}{}^{\text{V}}\text{m}{}_{\text{x}}{}^{\text{V}}\text{m}{}_{\text{z}}\left(1-\mathrm{cos}\text{\theta}\right)-{}^{\text{V}}\text{m}{}_{\text{y}}\text{sin\theta ,}$$
$${\text{q}}_{21}\text{=}{}^{\text{V}}\text{m}{}_{\text{y}}{}^{\text{V}}\text{m}{}_{\text{z}}\left(1-\mathrm{cos}\text{\theta}\right)+{}^{\text{V}}\text{m}{}_{\text{x}}\text{sin\theta ,}$$
$${\text{q}}_{22}\text{=}{}^{\text{V}}\text{m}{}_{\text{z}}{}^{\text{V}}\text{m}{}_{\text{z}}\left(1-\mathrm{cos}\text{\theta}\right)+\mathrm{cos}\text{\theta ,}$$
The roll, pitch, yaw (RPY) angles are successive rotations about the fixed XYZ axes, in that order:
${\text{R}}_{\text{zyx}}\left(\gamma ,\beta ,\alpha \right){\text{=R}}_{\text{z}}\left(\gamma \right){\text{R}}_{\text{y}}\left(\beta \right){\text{R}}_{\text{x}}\left(\alpha \right)$
$$\begin{array}{l}=\left[\begin{array}{l}\mathrm{cos}\text{\gamma}\mathrm{cos}\text{\beta -sin\gamma}\mathrm{cos}\text{\alpha}+\mathrm{cos}\text{\gamma sin\beta sin\alpha sin\gamma sin\beta}+\mathrm{cos}\text{\gamma sin\beta}\mathrm{cos}\text{\alpha}\\ \text{sin\gamma}\mathrm{cos}\text{\beta}\mathrm{cos}\text{\gamma}\mathrm{cos}\text{\beta}+\text{sin\gamma sin\beta sin\alpha -}\mathrm{cos}\text{\gamma sin\alpha}+\text{sin\gamma sin\beta}\mathrm{cos}\text{\alpha}\\ \text{-sin\beta}\mathrm{cos}\text{\beta sin\alpha}\mathrm{cos}\text{\beta}\mathrm{cos}\text{\alpha}\end{array}\right](12)\\ \end{array}$$
Note that the order is right-to-left because of the rotation about the fixed axes. By contrast, Euler angles are successive rotations about the current axes. The results would be the same with the ZYX Euler angles. By comparing Equation (11) to Equation (12), the RPY angles of ${}^{\text{V}}\text{R}{}_{{\text{v}}^{,}}$ can be extracted as follows.
$$\text{\gamma}={\text{tan}}^{-1}\left(\frac{{\text{q}}_{\text{10}}}{{\text{q}}_{\text{00}}}\right)$$
$$\text{\beta}={\text{tan}}^{-1}\left(\frac{{\text{-q}}_{\text{20}}}{{\text{q}}_{\text{00}}\mathrm{cos}{\text{\gamma +q}}_{\text{10}}\mathrm{cos}\text{\gamma}}\right)$$
$${\text{\alpha =tan}}^{\text{-1}}\left(\frac{{\text{q}}_{\text{02}}{\text{sin\gamma -q}}_{\text{12}}\text{cos\gamma}}{{\text{q}}_{\text{11}}{\text{cos\gamma -q}}_{\text{01}}\text{sin\gamma}}\right)$$
Finally, these three angles (between -90° and +90°) are the net angular displacements of the lower foot from the first position B to the second position B' in the Vreference coordinate system.
Results
Implementation and validation of the algorithm
In order to demon strate how the proposed method describes the useful information of joint angular changes in virtual reference system, we implemented the methods using a simple experimental instrument. Our proposed method in this study can be used for the measurement of any joint angles if its anatomical axis can be properly defined. Thus, we focused on validating our proposed method using a more generic and in tuitive way than applying the method to actual joint measurements.
Experimental setup
A camera-based motion capturing system (Optotrak) was used for method validation. Since the goal of this experiment was to focus on validating the method proposed in this study, the angular motion occurring in an experimental set up was measured rather than measuring the actual subject's joint motion (Figure 6a). As shown in the figure, the first segment of the goniometer was fixed to a vertical wooden bar, and the lower segment of the goniometer can rotate. Two rigid bodies, A and B, were attached to the vertical bar and the rotating segment of the goniometer, respectively.
The simple goniometer setup simulates a single-axis joint movement. First, three virtual points were digitized. As shown (Figure 6b), the first virtual point was digitized as close as possible to the rotating center of the goniometer, the second virtual point was digitized close to the other side of the rotating axis (the opposite side of the wooden bar), and the last virtual point was digitized as the point about the middle of the top of the wooden bar. The tip of the 3D printed digitizing probe is 27.7 mm, 136.1 mm, and 7.9 mm away from the origin of the local digitizer coordinate system. By digitizing three virtual points in such a way, the rotating axis of the goniometer became closest to the x-axis of the virtual coordinate system, and the y-axis was defined in the upward direction of the vertical wooden bar (Figure 6c).
Next, for the measurement component of the experiment, 12 different angle changes were measured by moving the lower segment of the goniometer by 5° based on the neutral position (six angle changes were positive direction and the other six were negative direction). Figure 6a shows the neutral position (0°) of the goniometer. Thus, the total range of the angle changes was 60°. Only positions of markers fixed to rigid bodies A and B were recorded by the motion capturing system during these measurements: The process of digitizing virtual points was performed only once before different angle changes were measured.
(Figure 7) shows the results of the validation test. All computation for the rotation matrices and angles were performed in MATLAB. The two local coordinate systems A and B were set up on the two rigid bodies (Figure 6c). (Figure 7a) shows the net rotation (θ) of the B coordinate system for each angle position about the neutral position of the goniometer. Mathematically, the net θ values were computed using ${}^{\text{B}}\text{R}{}_{{\text{B}}^{,}}$ $\left(\text{or}{}^{\text{V}}\text{R}{}_{\text{V2}}\right)$. The calculated θ angles accurately corresponds to the angle changes read from the goniometer. The mean error across the 12 data points is 0.20° ± 0.12° and can be attributed to the reading error of the goniometer, not calculation error.
(Figure 7b) shows the computed ZYX Euler angles of the rotating segment in the virtual reference coordinate system (V). Since the x-axis of the virtual reference was close to the goniometer rotating axis, the X Euler angle (α) turned out to be most prominent. Note that the angle changes in Y-axis (β) and Z-axis (γ) indicate that the x-axis of the virtual reference system has not been completely parallel to the goniometer rotating axis. Overall, it was not our intention to make a perfect alignment between the goniometer rotating axis and one of the axes of the virtual reference system because the purpose of the experiment was to validate our proposed method.
Discussion
A method that allows the measurement of three-dimensional joint angles without the need of careful sensor/specimen alignment was developed. In this method, auser can attach two rigid bodies (three markers each) with an arbitrary orientation.When defining a virtual reference coordinate system using three digitized points in space, the user can make one of the axes of the virtual reference coordinate system oriented align towards the joint anatomical axis. Then, the method algorithm computes the net angle changes by the specified axis. A camera-based capturing system was used to evaluate the performance of the proposed method, and the method proved to be robust and provided correct values.
In the cases where joint angular displacements are in vestigated about the anatomical or particular axes [9], having 3-D angular displacements described in a virtual reference coordinatesystem can provide manyadvantages. It will reduce the difficulty of careful alignment ofa sensor or test specimen to a specific reference frame. Since small mistakes in the alignment have a strong impact on the measurement quality, our method can establisha more reliable and reproducible procedure for the measurement of joint angles. The virtual reference coordinate system can beeasily created based on three digitally defined points in space. Net angle changes arethen described with respect to the virtual reference coordinate system. Hence, this provides a convenient way to represent angular measurements in the user defined axes. Accordingly, it can diminish variations in angular measurements resulting from any possible misalignment of specimens in experimental setup. One limitation in the method application is that the anatomicalaxis of human joints made up a combination of bony structure, with which the virtual reference system is aligned, may slightly change without being fixed during motion. Although the joint axes may not be totally fixed during motion, clinically accepted joint axes are often considered stationary within a normal motion [6,7-10]. Another limitation is that rigid bodies should be held steady without being affected by any motions of subjects and the attachment of the rigid bodies should not affect the motions.
The proposed method has been applied to a biomechanical study where ankle kinematics were studied (not discussed here). The footand lower footwere secured with 3D printed rigid bodies and LEDs in a pattern with known distances between them to establish local coordinate systems. In addition, a virtual anatomical coordinate system was calculated on the medial malleolus and tibia using the digitizer and rotation matrices. However, multiple joint kinematics can benefit from this method. A sound alignment procedure should be used for accurate joint kinematic data, and the alignment procedure using ananatomically relevant virtual coordinate system will provide more reliable and repeatable experimental results.
Conflict of Interest Statement
The authors declare that this study was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.
Acknowledgements
This work was supported by the Gordon and Jill Bourns College of Engineering at California Baptist University.
References
- Muller P, Begin MA, Schauer T, et al. (2017) Alignment-free, self-calibrating elbow angles measurement using inertial sensors. IEEE J Biomed Health Inform 21: 312-319.
- Angevine PD, Kaiser M G (2008) Radiographic measurement techniques. Neurosurgery 63: 40-45.
- Zhou H, Stone T, Hu H, et al. (2008) Use of multiple wearable inertial sensors in upper limb motion tracking. Med Eng Phys 30: 123-133.
- Wong C, Zhang ZQ, Lo B, et al. (2015) Wearable sensing for solid biomechanics: A Review. IEEE Sensors Journal 15: 2747-2760.
- Blankevoort L, Huiskes R, De Lange A (1988) The envelope of passive knee joint motion. J Biomech 21: 705-720.
- Lundberg A, Svensson OK, Németh G, et al. (1989) The axis of rotation of the ankle joint. J Bone Joint Surg Br 71: 94-99.
- Stiehl JB (1991) Inman's Joints of the Ankle. Williams & Wilkins.
- Crane I, Carl D, Duffy J (1998) Kinematic analysis of robot manipulators. Cambridge: Cambridge University Press.
- D Astous JL, MacWilliams BA, Kim SJ, et al. (2005) Superficial versus deep transfer of the posterior tibialis tendon. J PediatrOrthop 25: 245-248.
- Mizel MS, Miller RA, Scioli MW (1998) Orthopaedic knowledge update: Foot and ankle 2. (2^{nd} edn), AAOS.
Corresponding Author
Seung-Jae Kim, Biomedical Engineering, Gordon and Jill Bourns College of Engineering, California Baptist University, 8432 Magnolia Avenue, Riverside, CA 92504, USA, Tel: (951)-552-8635, Fax: (951)-343-4782.
Copyright
© 2020 Pontius J, et al. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.