Biomedical Engineering Reference
In-Depth Information
The first step is to initialize some MATLAB variables
with the data from Tables 2.2-4 and 2.2-5.
Table 2.2-4 Local coordinates for gait markers on the hip and legs,
from Krousgrill (2005)
% Example 2.2.6
% At rest (in local coordinates)
% Each column vector is the 3D coordinates
% of a marker (initial conditions)
ThighRestLocal ¼ [ 6 4 0; 12 4 0; 12 0 4]';
LegRestLocal ¼ [6 3 0; 12 3 0; 12 0 4 ];
ThighFinalGlobal ¼ [3.18 7.13 3.60; 7.16
10.47 6.6; 8.89 5.88 9.41] ';
LegFinalGlobal ¼ [9.11 15.45 10.44; 6.99
20.66 12.52; 9.36 19.88 16.86]';
% Column vectors of positions of O, A and B
HipPos ¼ [2 1 0]';
ThighLen ¼ [18.13 0 0];
LegLen ¼ [18.13 0 0]';
Marker
x-coordinates
y-coordinates
z-coordinates
(1,1)
6
4
0
(1,2)
12
4
0
(1,3)
12
0
4
(2,1)
6
3
0
(2,2)
12
3
0
(2,3)
12
0
4
in Table 2.2-5 . The local coordinates are given in
Table 2.2-4 .
The motion cannot be recorded in a local coordinate
system, but only in the global coordinate system of the
gait laboratory. The cameras record images of the subject
while walking, and the position of the markers in these
images can be used to determine the motion with respect
to the position of the camera(s) in the laboratory, not with
respect to the hip or leg. The problem of determining the
rotations of the thigh and lower leg then means switching
between the local and global coordinates.
The general strategy to solve this problem is to
(1) convert the recorded global coordinates to local co-
ordinates for each segment, and (2) determine the ro-
tation from the correspondence of the markers when
referenced to the initial or resting position. The rotation
of the thigh must be computed first, since it is required
when solving for the rotation of the lower leg.
Bookkeeping is always a challenge when solving for
motion. There are three sets of coordinates to keep track
of: the local coordinates of each segment before motion
(at rest), the global coordinates of each marker after
motion, and the local coordinates of each segment, which
are computed.
The final position, in global coordinates of the thigh after
motion, is given by the equation
X thigh ; motion ¼ R thigh $
X thigh ; initial þ O
(2.2.4)
where X initial and X motion are matrices whose column
vectors are the positions of the markers, R thigh is the
rotation about the hip, and O is the 3D position of the
hip after motion. R thigh can be computed from
R thigh ¼ð X thigh ; motion O Þ $ ð X thigh ; initial Þ 1
(2.2.5)
The MATLAB implementation is
% Find rotation of thigh about hip
% First, determine coordinates of thigh
markers
% with respect to the hip
ThighFinalLocal ¼ ThighFinalGlobal-
[HipPos HipPos HipPos];
% Rotation computed by correspondence
matching
% and is in the local coordinate system
centered at the Hip
RotThigh ¼ ThighFinalLocal*
inv(ThighRestLocal);
Table 2.2-5 Global coordinates of gait markers on the hip and legs
after rigid body motion, from Krousgrill (2003)
Computing the rotation of the lower leg is a little
more challenging. The lower leg is rotated about the
knee, which rotates about the hip, so there are two ro-
tations to the motion:
Marker
x-coordinates
y-coordinates
z-coordinates
Hip (O)
2
1
0
(1,1)
3.18
7.13
3.60
(1,2)
7.16
10.47
6.60
X leg ; motion ¼ R thigh $
R leg $
X leg ; initial þ A
(2.2.6)
(1,3)
8.89
5.88
9.41
where
(2,1)
9.11
15.45
10.44
A[ODR thigh $ ½ 18 : 13 0 0 T
(2,2)
6.99
20.66
12.52
(2.2.7)
(1,1)
9.36
19.88
16.86
After substitution,
Search WWH ::




Custom Search