Ground's reaction


My question is about the ground’s reaction. I would like to know if, in a classical gait analysis, with one platform, muscle force, joint reaction forces ect… were computed only when the foot hit the plateform or also on others steps, where there is no plateforme?

More largely, is it possible to make an entire gait analysis without forceplate, but with a modelised ground?

In fact, I’m using a gait model, with a unique forceplate, and, looking at muscle forces for example, I sometimes see a high peak at the time the foot hit the plateform, and smaller peaks for the rest of the gait analysis each time the foot hit the ground. So I wonder if it was estimations from anybody?

Why aren’t theses forces equal to those mesured on the forceplate?

I’m using AMMRV1.4

Thank you a lot for your help,

Best regards,

Claude Pothrat


Even if you have only one force plate information, AnyBody can solve the inverse dynamics.

If you are using the ‘GaitFullBody’ model, then you can fine the “JointsAndDriversOptimized.any” file.

And in the file, you can see the following AnyScript code:

  AnyKinEqInterPolDriver JntDriverTrunk = {
    FileErrorContinueOnOff = On;
    Type = Bspline;
    BsplineOrder = 4;
    FileName = Main.ModelSetup.C3DFileData.NameOfFile+"-output-euler-trunk.txt";
    AnyKinMeasureOrg &PelvisPosX = ...HumanModel.Interface.Trunk.PelvisPosX;
    AnyKinMeasureOrg &PelvisPosY = ...HumanModel.Interface.Trunk.PelvisPosY;
    AnyKinMeasureOrg &PelvisPosZ = ...HumanModel.Interface.Trunk.PelvisPosZ;
    AnyKinMeasureOrg &PelvisRotX = ...HumanModel.Interface.Trunk.PelvisRotX;
    AnyKinMeasureOrg &PelvisRotY = ...HumanModel.Interface.Trunk.PelvisRotY;
    AnyKinMeasureOrg &PelvisRotZ = ...HumanModel.Interface.Trunk.PelvisRotZ;
    AnyKinMeasureOrg &PelvisThoraxExtension = ...HumanModel.Interface.Trunk.PelvisThoraxExtension;
    AnyKinMeasureOrg &PelvisThoraxLateralBending = ...HumanModel.Interface.Trunk.PelvisThoraxLateralBending;
    AnyKinMeasureOrg &PelvisThoraxRotation = ...HumanModel.Interface.Trunk.PelvisThoraxRotation;

We call this forces and moments as ‘pelvis residuals’.
And there is the descriptions about this on wiki:
This is a kind of ‘god forces’ acting on pelvis to make the human balanced even when there is no input from force plate data.

So if there is a certain time period when the subject touches the ground without force plate,
the result of analysis may not be useful during that time period. This is same for both forward and inverse dynamics.

To solve this situation, AnyBody can predict the ground reactions using conditional contact elements.
You can see the following video that I made before using conditional contact element to predict ground reactions when there is no force plate available.

To make a good prediction of ground reactions,
you need to input as precise information as you can into the model, for instance, accurate mass properties, segment lengths, good motion capture data and so on.

I hope this may be helpful to you.

Best regards,


Thank you a lot for your response!
Does it means that in the model that I use, results are only good when there is a forceplate?
Can you tell me more about Conditional Contact Reaction? Would it be possible for me to add it in the model I previously posted here, in order to have good results during all the gait?
Do you know where I could find a model that uses it, so I could understand it better?
Maybe there is articles that describes how it works?

Thank you again,

Best regards,

Claude Pothrat

Hi Claude,

As far as I know, this conditional contact element is a kind of invention from Søren.
You can see some related files here in the repository:

You can see the example of this conditional contact element in ‘StandingLift’ model in the repository.
Please look ‘JointAndDrivers.any’ file in detail.

Best regards,

Hi, Moonki

Thanks for the help last week, the force plate is appear now.
But the unit of my force plate data is Newton, not like the exmaple’s
unit is kilogram.
So in the model view, the vector of my model is that big just like the pictures.

I know that just a visualization. But if I can make the vector smaller, visually will be more better to see.
This attached file name is “Softball_ChaoForcePlate”.

The next question is now I want to use a conditional contact.
Morten had taught me when I was in Aalborg University four months before.
But now I use the same code but there’s some error.

The attached file name is “Softball_ChaoFP”.
I had made some node in “PedalContactNode”.
And I write the conditional contact at “JointsAndDriversOptimized”.

My version is AMS 5.0.0, AMMRV1.3
Thank you :slight_smile:
Best regards,