I am glad it was the driver issue.
I have not looked at your model in details, but, as far as I understand, it
is a person jumping, motion recorded by MOCAP, and the model has “a hand of
God” to account for the reactions to the environment needed in the Inverse
dynamic analysis. These reactions are what you refer to as the external
If so, I think you are right that CoM acceleration not being equal to -g is
the same as external forces during the free fall period. Of course the
external forces are not real; they come as an artifact of other
inaccuracies/errors in the model.
I think there are the following two important sources of these errors:
The MOCAP experiment is not accurate, i.e., you will have inaccuracies on
your marker positions, maybe in the transformation to the model input (e.g.
joint angles). Interpolation and differentiation may also contribute to
The model does not have exactly the mass distribution of the person you
have in your lab. Segment masses, centers of masses, moments of inertia,
etc. are not accurate and on top of this the possible movements of the
masses are idealized to a rigid-body system. These things together will also
have an effect on the model’s CoM.
When I look at your graph, I think it is a very interesting case. The small
oscillations in the middle of the free fall are probably what you can expect
due to the errors mentioned above, but the peeks at the start and end of the
free fall are rather high, I think (-16m/s^2 instead of -g). Though, it is
not so strange that the error is higher in the beginning and the end,
because this is probably where the faster relative motion of the segments
occur. This implies of course that the sources of error (both 1 and 2) will
have greater significance.
Another thing, that caught my eye, is the Bezier curve that shows less
oscillation (understandable) but it also from a certain point of view fits
better (or just as good) as the more exact interpolations. The Bezier cuts
many corners; it smoothen the curves. It is like the “correct result” lies
somewhere in between Bezier and your BSplines orders.
You could in principle try with higher order BSplines, but you may end up
with numerical problems.
Could it be that you have lost important dynamics in the MOCAP data during
data filtering and down-sampling or the like?
These two suggestions target the kinematic data you input, but there is also
the mass distribution. If we for a moment assume the masses to be the source
of error, it is indeed an interesting case because you sort of know what the
result should be, i.e., CoM acc = -g: Maybe you could use your experiment to
adjust the model mass distribution to fit the real person better?
Essentially this could be formulated as an optimization problem, e.g.,
minimize the error on the CoM acceleration with respect to mass properties.
We have considered doing things like this for some time and actually we have
a Ph.D. project (done by Michael Skipper Andersen) aimed at making smoother
integration between models and MOCAP data, but this project is so far only
considering kinematical data, not inertia data. However I think this could
be the next extension.
Well, this was a long talk without many accurate answers.
I am very interested in what your next steps will be.
PS. Michael Skipper Andersen will present his project in a webcast soon.
From: email@example.com [mailto:firstname.lastname@example.org] On Behalf
Sent: Monday, February 05, 2007 13:10 PM
Subject: [!! SPAM] [anyscript] Re: Strange accelerations
You were correct in your suggestion that the interpolation function
of the MoCap data in AnyKinEqInterPolDriver was affecting the applied
I plotted the vertical acceleration of the centre of mass for
PiecewiseLinear, Bezier and Bspline (orders 4 and 10) as shown in
uploaded file shippen_ acc_interpolation.jpg. As can be seen the
acceleration of the CoM is greatly modified by the interpolation
function and varies considerably from -g during the free fall period.
Could this explain the external force acting on the model during free
fall? And if so, can you think of an approach which would correct
— In anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com,
“AnyBody Support” <support@…>
> Hi James,
> It really looks strange indeed.
> The only thing, I can think, that may do something like this, is if
> you are using PiecewiseLinear interpolation of you motion data.
> The PiecewiseLinear interpolation is really a linear function
> the data points. This implies that velocities is kind of average
> velocities between data points and (very important) accelerations
> Could this be the case?
> Please get back to me - I really want to get to the bottom of this.
> AnyBody Support
> — In anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com,
> > Hi
> > Could there be something strange with the AnyBody acceleration
> > calculations? I MoCapped a jump (please see shippen_jump.avi)
> > external force was required on the CoM during free-fall to attain
> > I extracted the vertical displacement, velocity and acceleration
> > the CoM. I calculated and overlaid plots of d(displacement)/dt
> > Velocity which showed a good agreement
> > I then calculated and plotted d(velocity)/dt on Acceleration
> > showed poor correlation.
> > I repeated this procedure with a physical location on the model
> > (happened to be the origin of the right scapula) and found a
> > disagreement between dV/dt and the Acceleration from AnyBody.
> > plots are shown in shippen_acc.doc.
> > Am I missing something?
> > Ta!
> > James
> > PS Many thanks for the tips on scaling - if only it were that
> > to decreased my mass in real life!
[Non-text portions of this message have been removed]