Musculoskeletal Dynamics
Grant Schaffner
ATA Engineering, Inc.
What is musculoskeletal dynamics?
? Modeling the human body and associated objects as a system
of linked rigid segments
? Formulation of the equations of motion for this system
? Computational simulation of motion
Z
X
q
1
q
2
q
3
What is it useful for?
1. Task feasibility
? Range of motion studies
? Strength requirements (joint torques)
2. Joint forces (skeletal loading)
3. Spacesuit design (modeling suit mechanics)
4. Countermeasure evaluation
5. Understanding complex dynamics
? EVA tasks, e.g., Satellite capture, mass manipulation (ISS
assembly / ORU replacement)
? Artificial / reduced gravity
(* Video *)
EVA Mass Manipulation Simulation
02468 10
-80
-60
-40
-20
0
20
40
0246810
-30
-20
-10
0
10
20
30
04812 20
-80
-60
-40
-20
0
20
40
048121620
-30
-20
-10
0
10
20
30
Joint Angle
Joint Torque
Time [sec]
Time [sec]
Time [sec]
Time [sec]
16
Satellite Capture Simulation
-0.05
0.00
0.05
0.10
0.15
0.20
02 5 8
Time (s)
L
i
n
ear
D
i
s
p
l
a
c
em
en
t
(
m
)
-1.50
-1.00
-0.50
0.00
0.50
1.00
1.50
A
ngul
a
r
D
i
s
pl
a
c
e
m
e
nt
(
de
g)
X-tra ns
Y-tra ns
Z-trans
Ro ll(X)
Ya w(Y)
Pitch(Z)
Y
X
Z
143769
Technique / Limitations
? Use the simplest possible model that adequately describes the
dynamics of interest
? Use open kinematic chains
? Individual segments are rigid bodies
Notes
Reference Text
? H. Asada and J.-J. E. Slotine, “Robot Analysis and Control”, John
Wiley & Sons, 1986
Nomenclature
? Vectors or matrices are denoted by bold script (
? Scalar values are denoted by regular script (
x R
x θ
),
),
Part I
Musculoskeletal Kinematics
Position and Orientation of Rigid Body
? Position of rigid body is represented with reference to coord frame
O-xyz by
?
?
?
?
?
?
?
?
?
?
=
o
o
o
o
z
y
x
x
]
?
,
?
,?[ btnR =
? Represent orientation of rigid body
with coord frame O’-x
b
y
b
z
b
? Components of unit vectors
are direction cosines of each axis
? Combine the three unit vectors into
a 3x3 matrix, R, the “Rotation Matrix”
(orthonormal matrix)
x
y
z
n?
t
?
b
?
b
x
b
z
b
y
O
O
′
Coordinate Transformations
? Coords of pt. P wrt fixed frame O-xyz
?
?
?
?
?
?
?
?
?
?
=
z
y
x
x
? Position of P wrt coord frame fixed to
rigid body, O’-x
b
y
b
z
b
b
o
o
b
wvu
w
v
u
Rxxx
btnxx
x
+=
+++=
?
?
?
?
?
?
?
?
?
?
=
?
?
?
x
y
z
n?
t
?
b
?
b
x
b
z
b
y
O
O
′
P
o
x
x
b
x
Coordinate Transformations
? Inverse transformation
T
T
o
Tb
T
bT
o
TT
RR
RxRxRx
RIRR
RxRxRxR
=
?
+?=
=
+=
1
),(
:alsoNote
inversenotoftransposeusesonly
lorthonormaissince
? Example 1.1
Homogeneous Transformations
Goal:
? A coordinate transformation that includes both translational and
rotational transformations
? Define 4x1 vectors: and the 4x4 matrix:
?
?
?
?
?
?
?
?
?
?
?
?
=
1
z
y
x
X
?
?
?
?
?
?
?
?
?
?
?
?
=
1
w
v
u
b
X
?
?
?
?
?
?
?
?
?
?
?
?
=
10
xR
A
o
b
o
Rxxx +=
? Recall thus
b
AXX =
homogeneous
transformation
Homogeneous Transformations
? Consecutive coordinate transformations
4x4 matrix associated with homogeneous transformation
from frame i to frame i-1
then position vector n is transformed to
in frame O by
=
?1i
i
A
n
X
o
X
nn
n
XAAAX
11
2
0
1
0 ?
= m
? Inverse coordinate transformation
XAX
1?
=
b
(Suggested exercise:
Derive an expression for in terms of )
1?
A R
o
x
in frame
and
Open Kinematic Chains
? “Open” chain = no loops
? Serial linkage of rigid bodies
connected by moveable joints
? Wish to analyze motion of last
link (end effector) in terms of
joint motions
0
x
0
y
0
z
O
n
x
n
z
n
y
n
O
Joint 1
Base link
1
x
1
y
1
z
Joint 2
Joint i
Joint i+1
Link i
End Effector
Link n
e
x
Open Kinematic
Chain
Denavit-Hartenberg Notation
A systematic method
of describing the
kinematic relationship
between a pair of
adjacent links
involved in an open
kinematic chain
Denavit-Hartenberg Notation
?H
i
O
i
is the common normal to joint axes i and i+1
? Origin of coord frame O
i
is located at intersection of joint axis i+1
and the common normal H
i
O
i
? x
i
axis is directed along the extension line of the common normal
? z
i
axis is along joint axis i+1
? y
i
axis chosen such that O
i
-x
i
y
i
z
i
forms a RH coord system
? Relative location of the two frames is completely determined by
4 parameters:
– length of the common normal
– distance between origin O
i-1
and point H
i
– angle between joint axis i and z
i
axis in RH sense (wrt x
i
)
– angle between x
i-1
axis and common normal H
i
O
i
measured about the z
i-1
axis in the RH sense
=
i
a
=
i
d
=
i
α
=
i
θ
Denavit-Hartenberg Notation
? & are constant parameters determined by geometry
? One of the other 2 parameters,
(prismatic vs revolute joint)
Kinematic relationship between adjacent links
i
a
i
d
i
α
i
θ
where
ii
i
i
XAX
11 ??
=
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
?
1000
cossin0
sinsincoscoscossin
cossinsincossincos
1
iii
iiiiiii
iiiiiii
i
i
d
a
a
αα
θαθαθθ
θαθαθθ
A
1?i
i
A represents the position and orientation of frame i relative
to frame i-1
varies as joint moves&
Kinematic Equations
? Denote joint displacements (rotation or translation) by
i
q
ii
q θ=
ii
dq =
(revolute joint)
(prismatic joint)
? The position and orientation of the last link relative to the base
frame is given by
)()()(
1
2
1
21
0
1 n
n
n
qqq
?
= AAAT m
matrix44×=T
Kinematic Equations
Exceptions to the Denavit-Hartenberg notation rule:
? To define a coord frame attached to each link, the common normal
between the two joint axes must be determined for the link. No such
common normals exist for the first (base) and last links since each
has only one joint axis
– Last link
? origin at any convenient point of the end effector
? orientation -- x
n
axis intersects last joint axis at 90°
? α
n
is arbitrary
– Base link
? origin at any arbitrary point on jt axis 1 => z
0
axis parallel to jt axis
? orientation of x
0
and y
0
axes is arbitrary
? Exceptions for intermediate links
– 2 joint axes parallel, common normal not unique, choice arbitrary (say d
i
= 0)
– prismatic joints -- only direction is meaningful, position of joint axis is arbitrary
Kinematic Equations
Examples
? 6 dof manipulator with five revolute joints and one prismatic joint
(see Asada & Slotine)
? Successive joint axes intersect (no common normal)
(draw skeletal kinematic structure)
Differential Motion
? System Jacobian, epresents the infinitesimal relationship
between the joint displacements and the end effector location at the
present system configuration
? Example, 2 dof system
J
0
x
0
y
0
O
?
?
?
?
?
?
y
x
Endpoint
1
l
2
l
1
θ
2
θ
?
?
?
?
?
?
=
dy
dx
dx
?
?
?
?
?
?
=
2
1
θ
θ
θ
d
d
d
?Jx dd =
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
21
21
θθ
θθ
yy
xx
J
dt
d
dt
d ?
J
x
=
?Jv
=
)sin(sin
)cos(cos
21211
21211
θθθ
θθθ
++=
++=
lly
llx
?
?
?
?
?
?
+++?
+?+??
=
)cos()cos(cos
)sin()sin(sin
21221211
21221211
θθθθθ
θθθθθ
lll
lll
J
, r
Differential Motion
Generalized System Jacobian
?Linear and angular velocity of end effector (wrt base coord frame)
?
?
?
?
?
?
=
e
e
?
v
pD qJp DD =
?
?
?
?
?
?
?
?
?
?
=
n
q
q
D
o
D
D
1
q
? Dimension of Jacobian = 6xn
? First 3 rows associated with linear velocity,
? Last 3 rows associated with angular velocity,
e
v
e
?
?
?
?
?
?
?
=
AnAA
LnLL
JJJ
JJJ
J
l
l
21
21
Differential Motion
? Linear velocity of end effector
nLnLe
qq DmD JJv ++=
11
?
?
?
?
?
?
×
=
?
?
?
?
?
?
?
??
1
,11
i
eii
Ai
Li
b
rb
J
J
revolute joint
?
?
?
?
?
?
=
?
?
?
?
?
?
?
0
b
J
J
1i
Ai
Li
prismatic joint
? Note: ements
? Direction of joint axis i-1 is given by wrt coord frame i-1
? is transformed to the base frame by the coord transformation
1?i
b
ei ,1?
r
[
T
100=b
bRRRb )()()(
1
2
12
1
21
0
11 ?
?
??
=
i
i
ii
qqq m
b
=
?1i
b unit vector pointing
along joint axis i
=
? ei ,1
r
vector from joint
axis i to end effector
are functions of joint displacand
]
Differential Motion
? Position vector
ei ,1?
r )(
1
j
j
j
q
?
A
[
( ( XAAXAAX
X
X
)()()()(
1000
14
1
2
11
0
1
1
1
0
1,1
1
1,1
?
?
?
?
?
?
?=
==
×=
i
i
in
n
nei
,ei-
T
,ei-ei
qqqq
r
r
hh
offramecoordoforigin
ofvectoraugmented
is computed using
]
))
Differential Motion
Inverse Kinematics
pJq CC
1?
=
Note: s
Test:
J
1?
J
singular?= 0)det(J
? Singular conditions are produced by physical orientations of the
system that make motion in a normal dof impossible
singular singularok
existmust be non-singular, i.e.,
Differential Motion
Redundancy
? When a system has more degrees of freedom than the number
required to define the endpoint position and orientation
i.e., qJp = nm×isJ
? When
general solution, i.e., there are
? May use an optimal solution, e.g., quadratic cost function
mn?
mn?
mn >
J
? Also, Linearized Least Squares
J)(JJJ
p)(JJJqIW
p)J(JWJWq
WqWqq
ofinverse"pseudo"thecallediswhere
toreducesthisIf
matrixweightingdefpossymmwhere
1
1
111
)(
?
?
???
==
=
×==
TT
TT
TT
T
nnG
CC
CChh
CCC
where
variables in the is of full rank, there are and
“redundant dof”