
Rotation Matrices 2 WCR 2017-04-21 Outline Markers and Measured Orientation Vectors Rotation-of-Points Matrix Rotation-of-Coordinate-System Matrix Summary Helical Axis and Angles Simulating Movement with Helical Angles Euler Angles Simulating Movement with Euler Angles Shoulder Joint Hip Joint Markers and Measured Orientation Vectors Marker locations are determined in the global (lab) reference system (GRS), using motion capture techniques. These marker locations are used to estimate orthogonal unit vectors iprox,jprox,kprox for the proximal segment and idistal,jdistal,kdistal for the distal segment, at each time point. Since the markers are in the GRS, the unit vectors are also expressed in the GRS. We assume vectors are expressed as column vectors. We also assume that i,j,k of the proximal and distal segments are defined so that they are aligned in the neutral position. Another way of saying this is that the joint angles (flexion/extension, abduction/adduction, internal/external rotation) are assumed to be zero when i,j,k point in the same directions for both segments. (The ankle joint may be an exception to this general rule.) Our goal is to use our knowledge of the unit vector orientations at each time to determine the angles of flex/ext, abd/add, and IR/ER, of the distal segment relative to the proximal, at each time. At each time, we arrange the orthogonal unit vectors of the proximal and distal segments into two 3x3 matrices. Each column is a unit vector expressed in the GRS: , , , = ( ) = , , , (1) , , , � � , , , = ( ) = , , , (2) , , , � � Rotation-of-Points Matrix The rotation matrix that will move the vectors in the proximal segment into alignment with the distal segment is Rp2d : = (3) 2 = (4) −1 −1 2 = (5) −1 2 = (6) 2 In going from eq. 5 to eq. 6, we used the fact that R-1=RT when R is a rotation matrix. Note that the rotation matrix Rp2d rotates the vectors, or (equivalently) the points on the segment. Rp2d is not a rotation of the coordinate system. The rotation matrices in Winter, 4th ed., chapter 7, are rotations-of-coordinate-systems, which leave the points themselves unmoved. Therefore we calculate Rp2d according to the equation 6. Saying it again, slightly differently, because it is important to understand: Rp2d is the matrix which, if we multiply it times the unit vectors in the proximal segment (as they are at one instant), will give us a set of unit vectors that are identical to the distal segment unit vectors, as they are at that instant. At most joints (the ankle being an exception), we assume the distal and proximal segment unit vectors are aligned in the neutral position. In that case, Rp2d tells us how the distal segment is rotated relative to its neutral orientation. Rotation-of-Coordinate-System Matrix An alternate approach to quantifying the relative orientation of segments is to consider rotation of the coordinate reference system, instead of rotation of the distal segment relative to the proximal. Mathematically, there is no particular reason to prefer rotation-of-points or rotation- of-coordinate-systems: either approach will successfully account for rotations in three dimensions. The rotation-of-points approach is, perhaps, easier to visualize, since one rotates the segment itself. However, the rotation-of-coordinate-system approach has a practical advantage for biomechanics: when we do successive rotations of the coordinate system, the second and third rotations will be relative to the rotated (distal segment) axes, because the rotation of coordinates “takes the axes along”. Rotations-of-points do not “take the axes along”, so successive rotations are always about the original axes, and not about the moving distal segment axes. Imagine rotating the coordinate system along with the distal segment. When we multiply the rotation-of-coordinate-system matrix by a vector, we get the expression of that vector in the rotated reference system. Therefore, the rotation-of-coordinate-system matrix representing the combined movement of the distal segment relative to the proximal will express the unit vectors of the proximal segment (represented by the identity matrix) in the distal segment coordinate system. Put another way, the columns of the rotation-of-coordinate-system matrix express what iprox, jprox, and kprox “look like” to an observer in the distal segment coordinate system. We know, from experimental observation of markers, Rprox and Rdistal, whose columns are the unit vectors of the proximal and distal segments, expressed in the GRS. The following equations show how we can use that information to express iprox, jprox, kprox in terms of idistal, jdistal, kdistal. = + + (7) 11 21 31 = + + (8) 12 22 32 = + + (9) 13 23 33 The above three equations can be written as a matrix equation: ( ) = ( ) (10) 11 12 13 21 22 23 � � 31 32 33 where iprox, etc., are column vectors. Matrix Q≡(qij) is the rotation-of-coordinate -system matrix. The columns of Q are the proximal coordinate system unit vectors, expressed in terms of the distal coordinate system. We apply equations 1 and 2 to equation 10: = (11) = (12) −1 −1 = (13) Compare equation 6 to equation 13. Equation 6 is the rotation-of-points matrix that moves the proximal segment unit vectors into alignment with the distal coordinate system vectors. Q in equation 13 is the rotation-of-coordinate-system matrix, that expresses the proximal segment unit vectors in terms of the distal segment coordinate system. Summary We have demonstrated two ways to represent the relative orientation of the distal and proximal segments: by the rotation-of-points (Rp2d) or by the rotation-of-coordinate-systems (Q). We need to estimate the proximal and distal segment unit vectors in the GRF (Rprox and Rdistal) to estimate Rp2d or Q. The next step is to use Rp2d or Q to estimate the joint angles, Helical Axis and Angles In the helical approach, we will do a single rotation about an axis which may not be aligned with any of the principle axes in either segment. It is always true that for any non-zero rotation of a segment, there is a single axis n=(nx;ny;nz) and an associated angle φ such that a rotation by angle φ about n will move the proximal i,j,k into the distal i,j,k. (If the distal segment is in the neutral position relative to the proximal, then the angle φ will be zero and the axis will be undefined.) If n is a unit vector (which we can assume without loss of generality), then the components of n along the X, Y, and Z axes tell us how to “allocate” φ to flexion/extension, abduction/adduction, and internal/external rotation. Now we show how to determine n=(nx;ny;nz) from Rp2d. (Remember that we have already determined Rp2d from marker locations.) The rotation-of-points matrix arising corresponding to rotation by φ about n=(nx;ny;nz) is = (1 ) (1 ) (1 ) + ℎ (1 2 ) + (1 ) (1 ) (14) − − − − − (1 ) (1 2 ) + (1 ) − − − − − � 2 � which can− also be written− as − − − + 2( + ) 2( ) = 22( 2 2 ) 2 + 2( + ) (15) 0 1 − 2 − 3 12 03 13 − 02 2( + ) 22( 2 2 ) 2 + ℎ 1 2 0 3 0 1 2 3 2 3 0 1 � − − − 2 2 2 2� (http://mathworld.wolfram.com/EulerParameters.html13 02 23 −, retreived01 20130 −-031-22)− where2 3 e0=cos(φ/2) (16a) e1=nxsin(φ/2), e2=nysin(φ/2), e3=nzsin(φ/2) (16b) The helical angle approach finds the one single axis n=(nx;ny;nz), about which we can rotate the segment to move it from its neutral to its observed position, and it finds the angle of rotation, φ. We wish to find the unit vector n and the rotation angle φ which will make the theoretical rotation-of-points matrix Rhelical equal to the measured rotation-of-points matrix Rp2d: = (17) when ℎ 2 = (18) 11+22+33−1 2 = (19) 11+22+33−1 2 It can be shown by algebra (http://www.kwon3 d.com/theory/jkinem/helical.html� � , retrieved 2013- 03-24) that each column of the following matrix is a scaled version of the rotation axis, n. = ({ } { } { }) = + + (1 ) (20) 1 1 2 3 ℎ ℎ where I is the identity matrix. Combining equations2 � 17, 18, and 20,� we get− = ({ } { } { }) = + + 1 (21) 1 11+22+33−1 1 2 3 2 �2 2 � � − 2 � = ({ } { } { }) = + + 1 ( + + ) (22) 1 1 2 3 2 2 11 22 33 To minimize round-off errors, estimate n2 �by choosing the column� − from (22) above w��hich has the largest magnitude. Normalize that column vector to have unit length: = (23) ‖‖ where nmax = column of N with largest magnitude = maxnorm(n1, n2, n3). Before proceeding further, check that the values for n and φprelim generate a rotation matrix equal to Rp2d, by plugging n and φprelim into equation 14 and computing Rhelix. If Rhelix does not match Rp2d to good precision, set φ=-φprelim. This is necessary because the estimation of φ by equation 19 may result in a sign error for φ. You might think that n would then point the opposite way, in which case we would still get correct answers for angles, but this is not always the case. We do not want small round-off differences between matrices to make us erroneously conclude that the sign of prelim needs changing. Therefore we use equations 14 to compute two rotation-of-points matrices: Rhelix(n,+ prelim) and Rhelixn,- prelim). We choose the sign of that gives a matrix that ϕ is “closer to” the matrix Rp2d , the rotation of points matrix computed with equation 6.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages16 Page
-
File Size-