Graphics Reference
In-Depth Information
was interactively dragged. However, it's important to note that if
is nonzero, the
estimated joint angleswill not correspondexactlywith the observedmarker locations;
that is, Equation (
7.14
) will not be satisfied exactly.
λ
7.4.2
Optimization-Based Inverse Kinematics
Nowwediscuss themoreusual case inwhich
N
P
(that is, themarkers overconstrain
the kinematicmodel).Wewant to select trajectories
>
θ
(
t
)
that are as natural as possible
(
)
while still matching the observed marker positions
r
and satisfying any kinematic
constraints as well as possible. In this section, we describe different ways to pose this
problem that all result in the minimization of a nonlinear objective function
C
t
.
Zhao and Badler [
577
] proposed several building blocks for inverse kinematics cost
functions. The simplest is a position goal: for example, we want the 3D position of a
point in the kinematic model to be as close as possible to a certain 3D point
p
:
(
θ
(
t
))
2
C
pos
(
θ
(
t
))
=
f
p
(
θ
(
t
))
−
p
(7.24)
where
f
p
defines the predicted location of
p
via the forward kinematics in
Equation (
7.14
). Thus, given the trajectories of
N
3D motion capture markers
{
, we can form a cost function that minimizes the sum of squares
cost of fitting them to a kinematic model:
X
j
,
j
=
1,
...
,
N
}
N
2
C
allpos
(
θ
(
t
))
=
1
f
j
(
θ
(
t
))
−
X
j
(
t
)
(7.25)
j
=
where
f
j
(
θ
(
is the forward kinematicsmodel that determines the position of marker
j
given the joint parameters.
We might also want to specify vector constraints — for example, that the vector
between two observed markers should be parallel to a certain limb in the kinematic
model. A corresponding cost function would look like
t
))
X
j
(
t
)
−
X
i
(
t
)
C
vec
(
θ
(
t
))
=
1
−
)
·
f
ij
(
θ
(
t
))
(7.26)
X
j
(
t
)
−
X
i
(
t
where
f
ij
(
θ
(
t
))
is a unit vector specifying the direction of the limb relating markers
i
and
j
.
A nonlinear cost function can be formed as the weighted sum of such terms
and minimized using an algorithm such as the Broyden-Fletcher-Goldfarb-Shanno
(BFGS) method [
351
]. This was one of the earliest inverse kinematics approaches for
motion capture [
51
].
In this framework, we can also impose hard constraints on
θ
(
)
— for example,
to enforce that a joint not exceed the limits of feasible human motion. The expected
ranges of motion for performers of different ages and genders can be determined
from biomechanical studies (e.g., [
465
]). If we directly parameterize the vector
t
θ
using angles, such limits can be expressed as linear constraints of the form
a
i
θ
(
t
)
≤
b
i
(7.27)
The BFGS algorithm can handle such linear constraints, but if we used the quater-
nion or twist parameterizations, the constraints would be nonlinear, taking the more