How to modify the F0 at GRF prediction code

Good morning.
We are currently using the GRF prediction code provided by Anybody.

According to the paper(skals 2015), the maximum value of the force per point is 0.4 BW, but I do not know where this is implemented.

My question is:

  1. The muscle F0 value set in ContactSurfaceDistanceAndVelocityDepLinPush.any is 0. Is it possible to be 0?

  2. I want to change the maximum force of a point (one muscle) in GRF prediction code, but I do not know how to modify that.

Always thank you for kind answers.

Dear JM Seo,

I would recommend you to see the following example of the ‘GRF_example.any’ file:

FootPlateConditionalContact GRF_Prediction_Right  ( 
PLATE_BASE_FRAME = Main.EnvironmentModel.GlobalRef,
NORMAL_DIRECTION = "Z",
NODES_FOLDER = FootNodes,
NUMBER_OF_NODES = [b]25[/b]  ) =
{
  CreateFootContactNodes25 FootNodes(foot_ref = 
  Main.Studies.HumanModel.BodyModel.Right.Leg.Seg.Foot) = { };
  
[b]  Settings = 
  {
    Strength = 1000;
  };[/b]
};    



FootPlateConditionalContact GRF_Prediction_Left(
PLATE_BASE_FRAME = Main.EnvironmentModel.GlobalRef,
NORMAL_DIRECTION = "Z",
NODES_FOLDER =FootNodes,
NUMBER_OF_NODES = 25
) =
{
  
  CreateFootContactNodes25 FootNodes(foot_ref = 
  Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Foot) = { };
  
  Settings = 
  {
    Strength = 1000;
  };  
};   

It is always nice to set this ‘NUMBER_OF_NODES’ as close to 25 unless there is any specific reason to use any smaller number.

Regarding your questions,

  1. In the ‘ContactSurfaceDistanceAndVelocityDepLinPush.any’ file, the strength of artificial muscle (for contact) can be zero based on the distance and the velocity between the base node and the target node.
    For instance, if the distance is too far between the base node and the target node, then the artificial muscle strength for this contact should be zero because we can guess that there should be no contact force in that element.
    So yes it is possible to be zero for some cases and that is intended.

  2. In the above code, you can set the strength of your contact muscles. And say again, this is the maximum contact muscle strength. And this value will be affected by other multipliers considering distance and velocity as aforementioned.

If you want to modify the artificial muscle strength differently for individual contact elements, then you need to modify the ‘FootPlateConditionalContact.any’ file by yourself.

I hope this may be helpful to you.

Best regards,
Moonki

Thank you very much for your reply.

But I have some questions again.

It was correct that the Strength was the maximum value of the muscle, but it exceeded the maximum value as the muscle activity became higher than 1.

Therefore, it seems that the Fout of a muscle has exceeded the Strength value.

Can the muscle of “AnyMuscleModelUsr1” exceed 1?
How do I fix this?

Thank you.

Hi,

Yes, it can be exceeded by default.

You can force it not to exceed the value of 1.0 in the solver settings:


InverseDynamics.Criterion.UpperBoundOnOff = On;

Regards,
Pavel