Driving full body model using markers

Hi;
I’m going to drive human model by my kinematic data. To find the procedure, I studied “GaitVaughan.any” file. But I can’t understand some points. I use ARMMRV1.0. Give me hints, please:
1- Why do you apply a reaction force between pelvis and ground? There is no real constraint between them. How do you explain it?
AnyReacForce PelvisGroundReaction={
AnyKinLinear Lin={
AnyFixedRefFrame &ref1 =…GlobalRef;
AnySeg &ref2 = Main.Model.HumanModel.Trunk.SegmentsLumbar.PelvisSeg;
};

  AnyKinRotational Rot={
    AnyFixedRefFrame &ref1 =..GlobalRef;
    AnySeg &ref2 = Main.Model.HumanModel.Trunk.SegmentsLumbar.PelvisSeg;
    Type=RotVector;
  };
};

2- What’s the mathematical and physical interpretation of these lines?
AnyReacForce AnkleInversionEversionReaction ={

AnyKinMeasureOrg &ref1=  Main.HumanModel.BodyModel.Interface.Right.AnkleEversion;
AnyKinMeasureOrg &ref2=   Main.HumanModel.BodyModel.Interface.Left.AnkleEversion;

};

3- My last question is about driving DOFs. We know hip joint supplies 3DOFs and we need 3 parameters to define its motion, but you use just one marker to drive thigh!! Which is x component of p5 for right and left leg.

Help me please.
Thanks.

Hi Majed,

A gait model with no upper body is missing more than half of the natural body weight, so the load from gravity and inertia forces would not nearly provide the correct loads on the lower extremities. Instead, such a model relies on the measured ground reaction forces. They are applied under the feet and are larger than the gravity on the amputated model. Therefore, the reaction force on the pelvis balances the part of the ground reaction forces that is not cancelled out by the segment masses of the lower extremities. In other words, the reaction force corresponds to the gravity and inertia forces from the missing upper body. Of course this only works correctly if we have measured ground reaction forces.

The one thigh marker can be enough to drive the model in combination with the other markers of the model. This is because AnyBody is smart enough to exploit also the kinermatic constraints of the model. Here’s an example:

If you have a single segment, then you need three markers to position it uniquely in space.

If you have two segments, then you need six markers.

However, if the two segments are connected by a joint, then the joint provides additional constraints such that the two segments can be driven with less than six markers.

Best regards,
John

Hi John;
thanks! it was interesting.
so if I consider the real mass, I don’t need this reaction force (PelvisGroundReaction) ?!!

what about “AnkleInversionEversionReaction”? Why did you use this force?

I think that I understanded the DOF problem! Thanks. one more question. You used markers to drive DOFs. But I can’t understand one of drivers:

RAsisY+LAsisY=SacrumY

what is the interpretation of this driver?

Best Regards.

Hi Majed,

In addition to John’s detail explanation, I’d like to provide some information. I’m sorry in advance if you know what I’m telling already.

The ‘PelvisGroundReaction’ that you mentioned is so-called Pelvis Residual Forces & Torques.
I’d like to recommend you to find several papers about it. One example is as follows:
Riemer, R., Hsiao-Wecksler, E.T., ‘Improving joint torque calculations: Optimization-based inverse dynamics to reduce the effect of motion errors’,
Journal of Biomechanics, 41(7), PP.1503-1509, 2008

In the introduction of the above paper,
you can find that there are several reasons why we need to consider the pelvis residual forces & torques.
(1) inaccuracy in movement coordinate data
(2) estimations of body segment parameters
(3) errors related to force plate
(4) identification of joint center of rotation locations

So even if you consider the whole body model, I would recommend you to use the pelvis residual forces and torques.
Of course you can find that those residual values can be small if your experiment environment may be good.

In AMMRV1.2 or AMMRV1.3, there is ‘GaitFullBody’ example.
In the example you can see the whole body model and in the model you can find the AnyScript that considers pelvis residual forces and torques.
I hope this may help to you.

Best regards,
Moonki

Hi;
thanks for your reply. It was helpful.
what about my other questions:

what do you think about “AnkleInversionEversionReaction”? Why did you use this force?

I think that I understanded the DOF problem! Thanks. one more question. You used markers to drive DOFs. But I can’t understand one of drivers:

RAsisY+LAsisY=SacrumY

what is the interpretation of this driver?

You are right, in principle, but there are some caveats. You do need to fix the model to the world somewhere to get non-singular equilibrium equations. We still do not know whether the accuracy of a typical full-body motion capture experiment will be good enough to do away with the need for measured boundary conditions.

what about “AnkleInversionEversionReaction”? Why did you use this force?

This is because the configuration of muscles about the ankle in this simple lower extremity model is not sufficient to carry the inversion/eversion moment. If we require the insufficient muscle configuration to do this, then we will get very strange muscle recruitment patterns.

I think that I understanded the DOF problem! Thanks. one more question. You used markers to drive DOFs. But I can’t understand one of drivers:

RAsisY+LAsisY=SacrumY

what is the interpretation of this driver?

Best Regards.

This old gait model is from a time when AnyBody could not handle over-determinate kinematics. Almost any marker protocol will provide more kinematic information than the human model has degrees of freedom, and therefore we had to select degrees of freedom from the markers to use for driving the model, for instance the x coordinate from one marker, and the z coordinate from another. However, because of the configuration of markers on the pelvis, there was no simple way to obtain a symmetrical choice of directions to use. Therefore,several markers were combines with a linear combination driver. This is what you are seeing.

Please beware that this is an old problem that does not exist in newer models and newer versions of AnyBody. I therefore recommend that you investigate the GaitLowerExtremity model instead and read the tutorial “Making things move”.

John

Thanks a lot. It was helpful.