Non-Optimal POSE Met..

Download Report

Transcript Non-Optimal POSE Met..

Background:
Coordinate System Transformations
Derivation of the 2D Rotation Matrix
(basis vectors)
j
ΞΈ
i
Coordinate Transformations (2D)
j
ΞΈ
i
Find
𝑖′
in global space:
𝑖′ = cos πœƒ 𝑖 + sin πœƒ 𝑗
Coordinate Transformations (2D)
j
ΞΈ
i
𝑖′ = cos πœƒ 𝑖 + sin πœƒ 𝑗
Find 𝑗
β€²
in global space:
𝑗′ = βˆ’ sin πœƒ 𝑖 + cos πœƒ 𝑗
Coordinate Transformations
𝑖′ = cos πœƒ 𝑖 + sin πœƒ 𝑗
𝑗′ = βˆ’ sin
πœƒ 𝑖 + cos πœƒ 𝑗
𝑖′
cos πœƒ
β€² =
𝑗
βˆ’sin πœƒ
sin πœƒ 𝑖
cos πœƒ 𝑗
Note: The rows of the 2x2 rotation matrix from global to local space are composed
of the unit vectors of the local coordinate system axis (in global space).
Derivation of the 3D Rotation Matrix
(basis vectors)
j
ΞΈ
i
K’
k
Z Rotation from Global to Local
𝑖′ = cos πœƒ 𝑖 + sin πœƒ 𝑗
𝑗′ = βˆ’ sin πœƒ 𝑖 + cos πœƒ 𝑗
π‘˜β€² = π‘˜
𝑖′
cos πœƒ
𝑗′ = βˆ’sin πœƒ
0
π‘˜β€²
sin πœƒ
cos πœƒ
0
0 𝑖
0 𝑗
1 π‘˜
Note: The rows of the 3x3 rotation matrix from global to local space are composed
of the unit vectors of the local coordinate system axis (in global space).
Translations of Bodies in 3D
𝑂
Y
Z
X
𝑂 = 𝑂π‘₯ 𝐒 + 𝑂𝑦 𝑗 + 𝑂𝑧 π‘˜
Coordinate System Transformations
(Global to Local example)
y’
P’ z’
P’
X’
P
𝑂
Y
β€²
Z
X
𝑃 = 𝑅(𝑃 βˆ’ 𝑂)
Translations and Rotation
(Example: Global to Local)
Y
𝑃 = 10𝐒 + 9.41𝑗 + 1.41π‘˜
P’
X
Z
O
For:
P
Y
Z
X
1
𝑅= 0
0
0
0
. 707 . 707
βˆ’.707 . 707
and
Ox=8, Oy=8, Oz=0
Find P in Local Space (P’)?
Coordinate System Transformations
(Example: Global to Local)
Y
𝑃 = 10𝐒 + 9.41𝑗 + 1.41π‘˜
P’
X
Z
Transform global to local:
𝑃′ = 𝑅(𝑃 βˆ’ 𝑂)
Y
Z
X
𝑃π‘₯ β€²
1
0
0
β€²
𝑃𝑦 = 0 . 707 . 707
0 βˆ’.707 . 707
𝑃𝑧 β€²
8
10
9.41 βˆ’ 8
0
1.41
𝑃π‘₯ β€²
1
β€²
𝑃𝑦 = 0
0
𝑃𝑧 β€²
2
1.41
1.41
0
. 707
βˆ’.707
0
. 707
. 707
2
= 2
0
Rotation Matrices are orthonormal
β€’ The rotation from Global to Local Space
is the inverse of the rotation from Local to
Global Space
β€’ Rotation Matrices are orthonormal and thus
the inverse is equal to the transpose
β€²
𝑅𝑅 = 𝐼
Coordinate System Transformations
(Local to Global)
P’ z’
P’
y’
X’
P
𝑂
Y
β€²
β€²
𝑃=𝑅𝑃 + 𝑂
Z
X
R’ is the rotational transformation from local to global space
Coordinate System Transformations
(Example: Local to Global)
Y
𝑃′ = 2𝐒′ + 2𝑗′ + 0π‘˜ β€²
P’
X
Z
O
For:
P
Y
Z
X
1
𝑅= 0
0
0
0
. 707 . 707
βˆ’.707 . 707
and
Ox=8, Oy=8, Oz=0
Find P in Global Space
Coordinate System Transformations
(Example: Local to Global)
Y
𝑃′ = 2𝐒′ + 2𝑗′ + 0π‘˜ β€²
X
Z
Transform local to global:
β€²
𝑃=𝑅𝑃 + 𝑂
Y
𝑃π‘₯
𝑃𝑦
𝑃𝑧
Z
β€²
X
𝑃π‘₯
𝑃𝑦
𝑃𝑧
1
= 0
0
0
. 707
. 707
0
2
8
βˆ’.707 2 + 8
. 707 0
0
10
8
2
= 1.41 + 8 = 9.41
0
1.41
1.41
Coordinate System Transformations
Global to Local:
𝑃′ = 𝑅(𝑃 βˆ’ 𝑂)
Local to Global:
β€²
β€²
𝑃=𝑅𝑃 + 𝑂
Where the rows of the rotation matrix from global to local
space (R) are composed of the unit vectors of the local
coordinate system axis (in global space).
Non-Optimal Pose Estimation
Pelvis
Anatomical Coordinate Systems (pelvis)
How to calculate the anatomical coordinate systems
Z
1) Find midpt between LASIS & RASIS = Origin
2) Find the vector from Origin to right ASIS
Y
X
3) Create M/L Unit Vector i from step 2
unit vector = (ix, iy, iz)
4) Find the vector from the Sacrum to
Origin
5) Create Unit Vector v from step 4
unit vector = (vx, v, vz)
𝑅𝑝𝑒𝑙𝑣𝑖𝑠
𝑖π‘₯
= 𝑗π‘₯
π‘˜π‘₯
𝑖𝑦
𝑗𝑦
π‘˜π‘¦
𝑖𝑧
𝑗𝑧
π‘˜π‘§
6) Use i X v to get Inferior/Superior Unit Vector
unit vector = (kx, ky, kz)
7) Use k X i to get Anterior/Posterior
Unit Vector
unit vector = (jx, jy, jz)
Finding the Hip Center
(in Pelvic Coordinate System)
Z
Y
X
Right Hip (Bell, Brand and Pederson):
X = 0.36 * ASIS Distance
Y = -0.19 * ASIS Distance
Z = -0.30 * ASIS Distance
Pelvis Non-Optimal Calibration:
β€’ Finding the local coordinates of the
hip center (which are needed to
calibrate the other segments)
β€’ Anthropometrics, Graphics Scaling
and Graphing the Calibration Trial
Pelvis: code is already part
of GaitProject
Thigh
Anatomical Coordinate Systems (thigh)
How to calculate the anatomical coordinate systems
Z
1) Find the Hip center in Lab from Pelvis (tricky)
2) Find the Knee center (Midpt of knee targets)
X
3) Find the vector from Knee to Hip
Y
4) Find the Inferior/Superior Axis, k, from Unit
vector of step 3
unit vector = (kx, ky, kz)
5) Find the vector from medial to lateral Knee
6) Find the vector v which is unit vector of step 5
unit vector = (vx, vy, vz)
v
7) Find the the A/P axis, j, from k X v
unit vector = (jx, jy, jz)
π‘…π‘‘β„Žπ‘–π‘”β„Ž
𝑖π‘₯
= 𝑗π‘₯
π‘˜π‘₯
𝑖𝑦
𝑗𝑦
π‘˜π‘¦
𝑖𝑧
𝑗𝑧
π‘˜π‘§
8) Find the M/L axis, i, via j X k
unit vector = (ix, iy, iz)
Problem: Calculating the anatomical
coordinate system requires a target
(medial knee) not used during the
walking trial
Solution: Create a virtual medial knee
target which can be located during
the motion trials
Step 1: Creating the temporary local coordinate system
1) Select one Point (Lateral Knee) as Origin
2) Find the unit vector from origin to the Hip
unit vector = (ktx, kty, ktz)
3) Use the lateral knee and 3rd target to
find a second vector v
4) Find the the β€œA/P” axis from k X v
π‘…π‘‘π‘’π‘šπ‘
𝑖𝑑 π‘₯
𝑑
= 𝑗 π‘₯
𝑖𝑑 𝑦
𝑗𝑑 𝑦
𝑖𝑑 𝑧
𝑗𝑑 𝑧
π‘˜π‘‘ π‘₯
π‘˜π‘‘ 𝑦
π‘˜π‘‘ 𝑧
5) Use the results of step 4 to
find β€œA/P” unit vector j
unit vector = (jtx, jty, jtz)
6) Find the third axis via j X k
unit vector = (itx, ity, itz)
Step 2: Storing the virtual lateral knee target
1) Start with the tracking based local
coordinate system (Rtemp)
2) Transform P into the tracking coordinate
system (P’) using
β€²
𝑃 = π‘Ήπ’•π’†π’Žπ’‘ (𝑃 βˆ’ 𝑂)
Pβ€˜
Where P are the global coordinates of lat knee and O are the global coordinates
of the medial knee
Thigh Non-Optimal Calibration:
β€’ Finding the local coordinates of the
medial knee target in the calibration
trial
β€’ Anthropometrics, Graphics Scaling
and Graphing the Calibration Trial
Step 3: Find the anatomical system during movement
1) Create the tracking based local
coordinate system (Rtemp)
2) Recall the stored vector (P’) from
origin to the calibration target
(in tracking coordinate system)
3) Transform P’ into the global coordinate
system (P) using:
β€²
Pβ€˜
𝑃 = π‘Ήπ’•π’†π’Žπ’‘ β€² 𝑃 + 𝑢
4) Use the tracking targets (including
virtual) to find anatomically based
coordinate system
Thigh: code is already part
of GaitProject
Shank
Anatomical Coordinate Systems (shank)
How to calculate the anatomical coordinate systems
1) Find the Knee center in Lab from Thigh (tricky)
2) Find the Ankle center
3) Find the vector from Ankle to Knee
4) Find the Inferior/Superior Axis from Unit
vector of step 3
unit vector = (kx, ky, kz)
5) Find the vector v from medial to lateral Ankle
6) Find the the β€œA/P axis from k X v
v
7) Find the Unit A/P vector j
unit vector = (jx, jy, jz)
π‘…π‘ β„Žπ‘Žπ‘›π‘˜
𝑖π‘₯
= 𝑗π‘₯
π‘˜π‘₯
𝑖𝑦
𝑗𝑦
π‘˜π‘¦
𝑖𝑧
𝑗𝑧
π‘˜π‘§
8) Find the M/L axis via j X k
unit vector = (ix, iy, iz)
Problem: Calculating the anatomical
coordinate system requires a target
(medial ankle) not used during the
walking trial
Solution: Create a virtual medial
ankle target which can be located
during the motion trials
Step 1: Creating the temporary local coordinate system
1) Select one Point (Lateral Ankle) as Origin
2) Find the unit vector from origin to the Knee
unit vector = (ktx, kty, ktz)
3) Use the lateral ankle and 3rd target to
find a second vector v
4) Use the results of step 3 to find a second
unit vector
unit vector = (vx, vy, vz)
π‘…π‘‘π‘’π‘šπ‘
𝑖𝑑 π‘₯
𝑑
= 𝑗 π‘₯
𝑖𝑑 𝑦
𝑗𝑑 𝑦
𝑖𝑑 𝑧
𝑗𝑑 𝑧
π‘˜π‘‘ π‘₯
π‘˜π‘‘ 𝑦
π‘˜π‘‘ 𝑧
5) Find the the β€œA/P” axis from k X v
unit vector = (jtx, jty, jtz)
6) Find the third axis, i, via j X k
unit vector = (itx, ity, itz)
Step 2: Storing the virtual lateral ankle target
1) Start with the tracking based local
coordinate system (Rtemp)
2) Transform P into the tracking coordinate
system (P’) using
β€²
𝑃 = π‘Ήπ’•π’†π’Žπ’‘ (𝑃 βˆ’ 𝑂)
Pβ€˜
Where P are the global coordinates of lat ankle and O are the global coordinates
of the medial ankle
Shank Non-Optimal Calibration:
β€’ Finding the local coordinates of the
medial ankle target in the calibration
trial
β€’ Anthropometrics, Graphics Scaling
and Graphing the Calibration Trial
Step 3: Find the anatomical system during movement
1) Create the tracking based local
coordinate system (Rtemp)
2) Recall the stored vector (P’) from
origin to the calibration target
(in tracking coordinate system)
3) Transform P’ into the global coordinate
system (P) using:
β€²
Pβ€˜
𝑃 = π‘Ήπ’•π’†π’Žπ’‘ β€² 𝑃 + 𝑢
4) Use the tracking targets (including
virtual) to find anatomically based
coordinate system
Foot
Anatomical Coordinate Systems (foot)
How to calculate the anatomical coordinate systems
1) Find midpoint of ankle targets = Origin
(from Shank - tricky)
Y
2) Find the Vector from Toe to Origin
Z
3) Find Z Axis from Unit vector of step 1
unit vector = (kx, ky, kz)
4) Find the vector from Origin to Heel v
X
5) Find the M/L axis via k X v
6) Find the unit vector from step 2
unit vector = (ix, iy, iz)
π‘…π‘“π‘œπ‘œπ‘‘
𝑖π‘₯
= 𝑗π‘₯
π‘˜π‘₯
𝑖𝑦
𝑗𝑦
π‘˜π‘¦
𝑖𝑧
𝑗𝑧
π‘˜π‘§
7) Find the the Y axis, j, from k X i
unit vector = (kx, ky, kz)
Foot Non-Optimal Calibration:
Anthropometrics, Graphics Scaling and
Graphing the Calibration Trial
Assignment #5 – Build Non Optimal Model in
Gait Project for the right thigh, right shank and
right foot
Let’s Look at the Pelvis and Thigh Code right now