Femur Coordinate System

The femur’s fixed coordinate system is defined using data reported during experimental setup and the transform (\(T_{Im\_Sen}\)) defined during the registration for the femur (Registration). The file data-MC-oks003/State.cfg contains the transforms that are used to define the femur’s fixed coordinate system with respect to the femur’s position sensor.

Note

The “optimized” femoral coordinate system is used, so additional experimental data needs to be parsed from the file data-MC-oks003/State.cfg

Below you can see the relevant data from data-MC-oks003/State.cfg with unused data removed:

[JCS]
T_FEMnew_FEMold = "<size(s)=4 4> 0.9981824400 0.0492132086 -0.0347832805 0.0009999990 -0.0492330265 0.9987872780 0.0002870382 -0.0119875025 0.0347552241 0.0014259697 0.9993948374 -0.0007254170 0.0000000000 0.0000000000 0.0000000000 1.0000000000"

[Knee JCS]
T_Sensor1_RB1 = "<size(s)=4 4> -0.7583937513 -0.6495517799 0.0540500060 0.0316151825 -0.1168279952 0.2170479726 0.9691446730 -0.1143759355 -0.6412410915 0.7286787103 -0.2404936584 -0.0050802701 0.0000000000 0.0000000000 0.0000000000 1.0000000000"

Where T_FEMnew_FEMold and T_Sensor1_RB1 are each converted to a 4x4 matrix. The first three rows in the last last column of T_FEMnew_FEMold and T_Sensor1_RB1 are the translations for the transforms, and these values are multiplied by 1000 to convert from meters to millimeters.

\[\begin{split}\begin{split} T_{FEMnew\_FEMold} &= \begin{bmatrix} 0.998182440 & 0.0492132086 & -0.0347832805 & 0.999999000 \\ -0.0492330265 & 0.998787278 & 0.000287038200 &-11.9875025 \\ 0.0347552241 & 0.00142596970 & 0.999394837 &-0.725417000 \\ 0. & 0. & 0. & 1. \end{bmatrix}\\ T_{Sensor1\_RB1} &= \begin{bmatrix} -0.75839375 &-0.64955178 & 0.05405001 & 31.6151825 \\ -0.116828 & 0.21704797 & 0.96914467 &-114.3759355 \\ -0.64124109 & 0.72867871 &-0.24049366 &-5.0802701 \\ 0. & 0. & 0. & 1. \end{bmatrix} \end{split}\end{split}\]

The transform from femur’s position sensor to the optimized femoral coordinate system (\(T_{Sensor1\_FEMnew}\)) is defined as

\[T_{Sensor1\_FEMnew} = T_{Sensor1\_RB1}T_{FEMnew\_FEMold}^{-1}\]

Given that oks003 is a left knee specimen, \(T_{Sensor1\_FEMnew}\) is reflected about the x-axis, which is shown below. The reflection of \(T_{Sensor1\_FEMnew}\) is \(R_{Sensor1\_FEMnew}\) (note that this is not needed for a right knee specimen).

\[\begin{split}R_{Sensor1\_FEMnew} = T_{Sensor1\_FEMnew}*\begin{bmatrix} 1 & -1 & -1 & -1 \\ -1 & 1 & 1 & 1 \\ -1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \end{bmatrix}\end{split}\]

Note

Array multiplication is used in the above equation, so element-wise multiplication is used (i.e. there is no summing over indicies).

Next the transform from the MR image’s global coordinate system to the femur’s optimized fixed coordinate system in the MR image (\(T_{Im\_Sen1}\)) is defined. \(T_{Im\_Sen1}\) (which is determined from registration of rigid body 1 fiducial points) is multiplied by \(R_{Sensor1\_FEMnew}\)

\[T_{Im\_FEMnew} = T_{Im\_Sen1}R_{Sensor1\_FEMnew}\]

\(T_{Im\_FEMnew}\) can be used to define the femur’s optimized fixed coordinate system in the knee model using the SimVitro convention, where the positive direction anterior-posterior axis points posteriorly. To match the convention used by this lab, the fixed optimized femoral coordinate system defined by \(T_{Im\_FEMnew}\) is rotated 180 degrees about the fixed optimized femur’s z-axis. This defines the positive direction along the anterior-posterior axis as pointing anteriorly.

\[\begin{split}S_{Im\_FEMnew} = T_{Im\_FEMnew}*\begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}\end{split}\]

The last row in \(S_{Im\_FEMnew}\) is neglected, and the columns are used to define the axes of the fixed optimized femoral coordinate system and its origin.

\[\begin{split}\begin{split} x_{axis} &= [S_{Im\_FEMnew}(0,0), S_{Im\_FEMnew}(1,0), S_{Im\_FEMnew}(2,0)]\\ y_{axis} &= [S_{Im\_FEMnew}(0,1), S_{Im\_FEMnew}(1,1), S_{Im\_FEMnew}(2,1)]\\ z_{axis} &= [S_{Im\_FEMnew}(0,2), S_{Im\_FEMnew}(1,2), S_{Im\_FEMnew}(2,2)]\\ origin &= [S_{Im\_FEMnew}(0,3), S_{Im\_FEMnew}(1,3), S_{Im\_FEMnew}(2,3)]\\ \end{split}\end{split}\]