One-Two Legged Stance in Free Posture Move Model

Hello,

I am from the University of Toledo Engineering Center of Orthopedic Research Excellence. We are simulating two legged stance and one-legged stance on the free posture move model. We know that the hip joint reaction force should be 3-4x that of the body weight when the model is in one-legged stance.The body weight we simulated was 75kg and we applied 90 degrees knee flexion for the one legged stance model. For two legged stance we did not change anything and just ran the model as it is.

We wanted to make sure our simulation is physiologically correct. So, we saw the hip joint reaction force, it had a very low value (45N) when it should be around 3-4x the body weight (75kg).

Why are these values so low? Is our simulation wrong, and if so can you help us simulate proper single and both legged stance?

Hello,

  1. For hip force analysis, I would say that the free posture move model is not the right choice.
    First, that model has a kind of reaction forces at the pelvis and there are no acting forces at both feet. In this case, the hip reaction force is not what you want to analyze.

  2. For doulbe-satnace model, I would recommend you to try with the ‘StandingModel’ example in the AMMR example folder.

  3. I just attached my example for single leg stance model. I didn’t develop this model for you. But you are very welcome to use this model for research purpose.
    But it will take some time for you to understand this model completely because this is not made by you. So I would recommend you to spend enough time to understand how this model works.

Best regards,
Moon

Hi Moon,

Thank you very much for this model I appreciate it!

Where can we change the motion for this model? We would like to do 90 degrees of knee flexion on this model.

As you know, in the free posture model we can’t simulate double-legged stance properly and in the standing model we can’t move anything. What do you suggest we do in order to simulate two legged stance?

Thank you,
Yogesh

Thank you,
Yogesh.

Hi Yogesh,

To change the knee angle make changes in this section of the main file

 #ifndef ADL_SLS_ANGLE_KNEE_FLEX_MIN_DOMINANT
      #define ADL_SLS_ANGLE_KNEE_FLEX_MIN_DOMINANT 5
    #endif
    #ifndef ADL_SLS_ANGLE_KNEE_FLEX_MAX_DOMINANT
      #define ADL_SLS_ANGLE_KNEE_FLEX_MAX_DOMINANT 5

To do a two leg standing model i would use the standing model and not the free posture.

To change the posture of the standing model you can alter the mannequin.any file, the model will pick some of the angles from this file. So you can change the knee and hip angles in that way. Please also see the files RightLegDriver.any to learn more about how the values from the mannequin.any file is being used.

Best regards
Søren

Hi Søren,

Thank you for the help, we have figured out how to change the knee flexion.

I have another question regarding the AnyOutputFile code. How can we export all muscle forces for a certain region, say the spine, to an excel sheet? For example would the Search function be used to find the correct output? How do we target the muscle group folder to print the values?

Lastly, in the standing model, how can we fix the hip joint in translations and rotations?

Sorry for asking many questions.

Thank you,
Yogesh

Hi Yogesh,

Please use code like below to save muscle forces into a file

AnyFolder MuscleOutput ={
  
  AnyOutputFile FileOutput =   {
    Header.ConstSectionSaveOptionsOnOff = Off;
    FileName = "TestOutput.csv";
    Search = {"Main.HumanModel.BodyModel.Trunk.MusclesSpineRight.ErectorSpinae.*.Ft","Main.HumanModel.BodyModel.Trunk.MusclesSpineRight.Multifidi.*.Ft"};
  };
  
};

When you say the pelvis is fixed i assume you are talking about the freeposture model, if you want a standing model please use the standing model as a starting point.

The standing model has the feet locked to the ground and the pelvis is indirectly driven by setting the joint angles, these can be changed in the mannequin.any file.

If you want the model to be dynamic you will have to introduce interpolation drivers like in the freeposturemove model.

Best regards
Søren

Hi Søren,

Let me explain to you are situation in more detail.

We have an FE model created that is from T1 until the femur with the rib cage attached. In our model, the hip joints are constrained in all six degrees of freedom and attached to the femur. The distal part of each femur is fixed. No motion is allowed at the hip joint to simulate standing. We want to take the muscle forces from one of these models and add them to the FE model we have created. Which model would be best to use to find the muscle forces for the motion of the spine and sacroiliac joints when simulating only standing with spinal flexion/extension/bending/rotation?

Thank you for your help, we appreciate it,
Yogesh.

Hi Yogesh,

I would use a modified version of the standing model for this.
You can alter most of the angles using the manequin.any file.

Best regards
Søren

Hi Søren,

The problem with the standing model in our case is that, for example, when we apply 40 degrees of thoracic flexion, the pelvis is translating backwards in the negative x direction. We want the pelvis to be completely constrained in both translation and rotational motions.

How can we constrain the pelvis in all degrees of freedom?

Sorry for any confusion.

Thank you,
Yogesh.

Hi Yogesh,

Ok i understand, but the reason why the pelvis is moving backwards is that otherwise the model would not be in static balance (it would tip on the nose), and this would give unrealistic muscles forces or a model which would fail to balance itself.

The balance driver has been implemented as a CoM driver which holds the center of masss above the ankle joints… look in the JointsAndDrivers.any file.

Please note that the forces you export out AnyBody can be given in any coordinate system you like … so also pelvis… would it then matter that the pelvis is moving?

Best regards
Søren

Hi Søren,

Sorry for the late response, we do not have the ankles in our model, the model is only from the T1 to femur with the ribcage included. Our specific model is constrained at the hip joint so the pelvis should not be moving.

We are very confused, but I think it would be best to use to free posture model due the pelvis being static while applying angles for flexion. Do you think this is the right move? I apologize for asking so many questions.

Thank you,
Yogesh.

Hi Yogesh,

To get realistic loads you will need to have the fullbody anybody model.

If you export the forces in the pelvis coordinate system it will be like the pelvis is not moving all will be relative to this.

It is not a good idea to use the freeposture model for this, since it is missing:

[ul]
[li]Foot contact… in the freeposture model pelvis is fixed to ground and legs are hanging…
[/li][li]There is no balance driver in the freeposture model
[/li][/ul]

To use the freeposture model you would have to manually create these things to have valid results.

Best regards
Søren

Hi Moon,

I am trying to add thoracic extension/flexion/bending/rotation as modifiable parameters to the code that you have sent me. I have added this line to the code:

#ifndef ADL_SLS_ANGLE_PELVIS_THORAX_EXTENSION_MIN_MOVING
#define ADL_SLS_ANGLE_PELVIS_THORAX_EXTENSION_MIN_MOVING 50
#endif

#ifndef ADL_SLS_ANGLE_PELVIS_THORAX_EXTENSION_MAX_MOVING

#define ADL_SLS_ANGLE_PELVIS_THORAX_EXTENSION_MAX_MOVING 50
#endif

I run the model and I am not able to visualize motion on the spine. I would also like to add both bending and rotation as well. Please let me know how I can add these parameters in the code.

Thank you,
Yogesh.

Dear Yogesh,

You should figure out first where the related drivers for trunk motions are.
In the ‘TrunkDrivers.any’ file in the ‘Model’ folder there are some pieces of the code:

  //Thorax pelvis rotation driver
  AnyKinEqSimpleDriver PelvisThoraxDriver =
  {
    AnyKinMeasureOrg &Ref2 = ...HumanModel.Interface.Trunk.PelvisThoraxLateralBending;        
    AnyKinMeasureOrg &Ref3 = ...HumanModel.Interface.Trunk.PelvisThoraxRotation;   
    AnyKinMeasureOrg &Ref1 = ...HumanModel.Interface.Trunk.PelvisThoraxExtension;
   
    DriverPos = pi/180*
    {
      .JntPos.PelvisThoraxLateralBending,
      .JntPos.PelvisThoraxRotation,
      .JntPos.PelvisThoraxExtension
    };
    DriverVel = pi/180*
    {
      .JntVel.PelvisThoraxLateralBending,
      .JntVel.PelvisThoraxRotation,
      .JntVel.PelvisThoraxExtension
    };
    Reaction.Type = {Off,Off,Off};  
    CType = {Soft, Hard, Soft};
    //CType = {Hard, Hard, Hard};
    AnyFunConst ConstFun = { Value = {1.0, 1.0, 1.0}; };
    WeightFun = {&ConstFun};
  };  

These will be affected by the joint angles and velocities definition in the ‘Mannequin.any’ file. So the easiest way to make any kind of upper body motion is to change the values there.

As I mentioned first at the very first reply to your first question. This model was not developed for your specific question.

So I’m not able to support to explain all the technical questions about this model in detail. I hope that you understand the situation.

Best regards,
Moonki

Hi Moonki,

Thank you for the explanation, I understand that you will not be able to support these types of technical questions, I am just trying to get a feel for how the model works.

I have decided to use the model for a study that we are working on, I am trying to scale the model down to one that matches our FE model, but I am not able to visualize any sort of scaling in the model when I run the file.

For example, I have attempted to change the height of the model to 1.0m from the base 1.8m and also have tried to change other parameters in the file, but can not see any changes in the Model View as well as changes in the muscle forces for a previous motion. Please assist me on how we can scale this model.

Thank you,
Yogesh.

Hi Yogesh,

Sorry for the slow reply, please try to change the individual segments lengths in the AnyMan file the height variable is used for BMI only in some versions of the AnyMan file.

Best regards
Søren