RECONSTRUCTING BODY SEGMENT AND JOINT KINEMATICS FROM 2-D OR 3-D POSITION DATA
A number of groups (both academic and industrial) are currently looking into 3-D
rigid-body kinematics in biomovement studies, both in gait analysis and in other
types of movement research: various commercial systems (e.g., CODA-3, EXPERT
VISION, IROS, OPTOTRAK, ORTHOTRAK, PRIMAS, SELSPOT, VICON, WATSMART) provide
reconstructed 3-D positions of identified landmarks on moving body segments.
As some BIOMCH-L readers have asked for help in this respect, it might be useful
to provide a little information.
If the body segment (or a cluster of landmarks marking the segment) is viewed as
a rigid body, i.e., the interlandmark distances are invariant under a displace-
ment of the segment proper, there are standard algorithms in the (bio)mechani-
cal, robotics, and aeronautics literature for transforming 3-D landmark position
data into 3-D rigid-body position and attitude data. Once these data have been
reconstructed, joint motion, i.e., movement of the distal body segment with
respect to the proximal segment can be assessed. Recent publications in the
biomechanical litterature include Spoor & Veldpaus, J. of Biomechanics 13(1980)
391-393 and Veldpaus et al., J. of Biomechanics 21(1988)1, 45-54; the latter one
includes some information on error propagation effects.
An interesting paper assessing 3-D rigid-body kinematics directly from SINGLE
camera image data was published last month by Joseph S.-C. Yuan at Spar Aero-
space Ltd. in Toronto, Canada: `A General Photogrammetric Method for Determining
Object Position and Orientation', IEEE Trans. on Robotics and Automation
5(1989-4)2, 129-142.
For a spatial distribution of landmarks, five out of six degrees of freedom are
well-determined from single-camera data: only the distance from the camera is
relatively ill-determined (unless the object subtends a very wide angle on the
camera). However, if all degrees of freedom (three for position, three for
attitude) are to be recovered with comparable accuracy, multi-camera measurement
is called for.
In the context of 3-D instantaneous joint kinematics and inverse dynamics where
3-D velocity and acceleration data (both rotational and translational) are
required, rigid-body algorithms should be complemented by suitable low-pass
filtering and differentiation. Since biological movement data are generally
low-frequent (apart from impact phenomena such as heel strike in gait) and
disturbed by additive, `white' measurement noise, it becomes important to
smooth and differentiate the data prior to any strong, non-linear operation
such as when transforming image or 3-D landmark data into rigid-body data.
Here, it becomes useful to smooth and interpolate the image or 3-D landmark
data (the intervening transformation being only mildly nonlinear), whence
smoothed AND interpolated rigid-body data are assessed. Because of the inter-
polation process on the smoothed data, finite differencing on rigid-body data
will provide sufficiently reliable estimates of the true, instantaneous
derivatives.
Thus, given estimated position vectors Pi and attitude matrices Ri, with
(interpolated) sampling interval T, the velocity and acceleration estimates
follow from:
Translation velocity: Vi = (Pi+1 - Pi-1) / 2T
acceleration: Ai = (Vi+1 - Vi-1) / 2T
Rotation velocity: S{Wi} = (Ri+1 - Ri-1')/ 2T
acceleration: Ei = (Wi+1 - Wi-1) / 2T
where S{X} is the skew-symmetric (or anti-symmetric) matrix with axial vector X
| 0 -z +y | |x|
S{X} = | z 0 -x |, X = |y|
| -y x 0 | |z|
Quite a bit of software in source code form accomodating these operations is in
the public or academic domain; see, for example, the quoted references and the
mathematical file-servers NETLIB@MCS.ANL.GOV and NETLIB@RESEARCH.ATT.COM: the
simple request SEND INDEX to either fileserver will provide further information
(NB: SEND INDEX in CAPITALS will result in all caps; if your machine can accomo-
date lower case, you would be well advised to put any request in lower case!).
I would like to know how many readers on BIOMCH-L find this kind of information
useful in their work, so as to judge whether this kind of `tutorial' serves a
purpose. Please send me a note at one of the email addresses below.
Herman J. Woltring
(Research Associate in Biomedical and Health Technology at Eindhoven University
of Technology, The Netherlands)
A number of groups (both academic and industrial) are currently looking into 3-D
rigid-body kinematics in biomovement studies, both in gait analysis and in other
types of movement research: various commercial systems (e.g., CODA-3, EXPERT
VISION, IROS, OPTOTRAK, ORTHOTRAK, PRIMAS, SELSPOT, VICON, WATSMART) provide
reconstructed 3-D positions of identified landmarks on moving body segments.
As some BIOMCH-L readers have asked for help in this respect, it might be useful
to provide a little information.
If the body segment (or a cluster of landmarks marking the segment) is viewed as
a rigid body, i.e., the interlandmark distances are invariant under a displace-
ment of the segment proper, there are standard algorithms in the (bio)mechani-
cal, robotics, and aeronautics literature for transforming 3-D landmark position
data into 3-D rigid-body position and attitude data. Once these data have been
reconstructed, joint motion, i.e., movement of the distal body segment with
respect to the proximal segment can be assessed. Recent publications in the
biomechanical litterature include Spoor & Veldpaus, J. of Biomechanics 13(1980)
391-393 and Veldpaus et al., J. of Biomechanics 21(1988)1, 45-54; the latter one
includes some information on error propagation effects.
An interesting paper assessing 3-D rigid-body kinematics directly from SINGLE
camera image data was published last month by Joseph S.-C. Yuan at Spar Aero-
space Ltd. in Toronto, Canada: `A General Photogrammetric Method for Determining
Object Position and Orientation', IEEE Trans. on Robotics and Automation
5(1989-4)2, 129-142.
For a spatial distribution of landmarks, five out of six degrees of freedom are
well-determined from single-camera data: only the distance from the camera is
relatively ill-determined (unless the object subtends a very wide angle on the
camera). However, if all degrees of freedom (three for position, three for
attitude) are to be recovered with comparable accuracy, multi-camera measurement
is called for.
In the context of 3-D instantaneous joint kinematics and inverse dynamics where
3-D velocity and acceleration data (both rotational and translational) are
required, rigid-body algorithms should be complemented by suitable low-pass
filtering and differentiation. Since biological movement data are generally
low-frequent (apart from impact phenomena such as heel strike in gait) and
disturbed by additive, `white' measurement noise, it becomes important to
smooth and differentiate the data prior to any strong, non-linear operation
such as when transforming image or 3-D landmark data into rigid-body data.
Here, it becomes useful to smooth and interpolate the image or 3-D landmark
data (the intervening transformation being only mildly nonlinear), whence
smoothed AND interpolated rigid-body data are assessed. Because of the inter-
polation process on the smoothed data, finite differencing on rigid-body data
will provide sufficiently reliable estimates of the true, instantaneous
derivatives.
Thus, given estimated position vectors Pi and attitude matrices Ri, with
(interpolated) sampling interval T, the velocity and acceleration estimates
follow from:
Translation velocity: Vi = (Pi+1 - Pi-1) / 2T
acceleration: Ai = (Vi+1 - Vi-1) / 2T
Rotation velocity: S{Wi} = (Ri+1 - Ri-1')/ 2T
acceleration: Ei = (Wi+1 - Wi-1) / 2T
where S{X} is the skew-symmetric (or anti-symmetric) matrix with axial vector X
| 0 -z +y | |x|
S{X} = | z 0 -x |, X = |y|
| -y x 0 | |z|
Quite a bit of software in source code form accomodating these operations is in
the public or academic domain; see, for example, the quoted references and the
mathematical file-servers NETLIB@MCS.ANL.GOV and NETLIB@RESEARCH.ATT.COM: the
simple request SEND INDEX to either fileserver will provide further information
(NB: SEND INDEX in CAPITALS will result in all caps; if your machine can accomo-
date lower case, you would be well advised to put any request in lower case!).
I would like to know how many readers on BIOMCH-L find this kind of information
useful in their work, so as to judge whether this kind of `tutorial' serves a
purpose. Please send me a note at one of the email addresses below.
Herman J. Woltring
(Research Associate in Biomedical and Health Technology at Eindhoven University
of Technology, The Netherlands)