Standing on forefoot

Hi dear Anybody team,
I am working on a simple gait model in Anymocap. In the task that I am trying to model, the subject stands on his forefoot. When I run the Inverse dynamic I get an error about the muscle recruitment solver. I realized this is because of the DOFs of the ankle that are defined in Anybody. In addition, in parameteridentification, it is shown that the subject stands on his forefoot, but after inverse dynamic, it is shown the foot contacts completely with the force plate. Could you please give me some advice on what to do?
I think about omitting the eversion degree of freedom of the ankle and define the foot with two segments. Then, defining a degree of freedom for the forefoot. Do you think that this can help me or are there better ways to solve this problem?
The figure that is shown below clarifies what I mean.

Hi Parisa,

It sounds to me like the motion from kinematics is not the same in inverse analysis it should be.

This could be caused by the way the way you are running the studies, please first run the paramteroptimization which will save an .anyset file then run the RunAnalysis operation which will read the .anyset file, track kinematics save it, and finally run inverse dynamics.

If e.g. you just do inverse dynamics it will be missing the scaling saved in the .anyset file and it not have the same kinematics.

I doubt that this difference in foot position is the cause of the recruitment problem, is gravity correctly defined?

Best regards
Søren

Hi Søren,
Thanks for your reply and guidance. Your advice worked for me. The problem was due to the Kinematics as you said and the foot in inverse dynamic also is shown on the forefoot, but I have another problem. In the inverse dynamic analysis after lots of warning about overload muscles it shows an error of Muscle recruitment solver: solver aborted due to singular KKT, and as I read about this error in the forum, it is because of that there is a DOF in the model which can not be balanced., and I think it is because of the position of the left foot which the subject is standing on his forefoot. What do you think? And as I mentioned before, shall I change the foot into two segments to solve this error?
Thanks again for your time and response

Hi again Søren,
I hope to not bother you of too asking questions, and thanks for your time and reply. I really appreciate you.
I could fix the problem and there is no more error about muscle recruitment solver in inverse dynamics. As I mentioned I get warnings about muscle overload configuration, and when I check the maxmusactivity I realize that it exceeds 1 and gets up to nearly 4. I want to calculate the compression force on the lumbar spine and I wonder if this could affect the results?
If not, how can I adjust the strength of my model?
Does filtering the data work?
Thanks again,
Best wishes,
Parisa

1 Like

Hi @parisa

I am glad to hear your modelling is progressing.
Regarding the overloaded muscle configuration you should try an locate what muscles are overloaded and determine how they are affecting your results.

For tuning the strength of your model there are some convenient factors you can adjust in the Main.HumanModel.StrengthParameters or in the Main.HumanModel.Scaling.StrengthScaling folder.

You can also investigate different muscle reqruitment criteria to find the one most suitable for your task.

Best regards,
Bjørn
AnyBody Technology

Hi Bjorn,
Thanks a lot for your reply. Is increasing the strength parameters of muscles from 900 to 1500 reasonable? It seems this can omit the warnings about overload muscles... But I wonder if it is logically true to increase the strength of muscles

Hi @parisa

I cannot give an exact answer to that.
You will have to decide based on your research question.
In the literature you can find different values for the muscle tension to help you.

You can also read our section on scaling the model as this also affects the strength of the model.

Best regards,
Bjørn
AnyBody Technology

Hello Bjorn,
I hope you are doing well. I have a question about overload muscle. The posture of one of my model's tasks is like the picture below. As you see, it has a complex posture that was done in real. In inverse dynamic, I encounter many warnings about overload muscles for this. On the other hand, I have read in the forum that the model in Anybody is for a weak person and if you know that the task can be done by a healthy person, you can increase the strength of the muscles, until you would not see the warnings. In this task, I should use an index 10 for muscle strength to not face any warnings about overload muscles configuration. In this regard, I have 2 questions.
1- Is it true to suppose this index for my subject? Because we know that index 9 means it exceeds the strength of the model. If not, what can I do to solve the problem?
2- My subject does many different tasks, and maybe some of them do not need to increase index for their muscle strength. My question is that shall I use a constant index for all the tasks that are done by one subject or increasing the muscle strength depends on the type of the task?

Hi @parisa

I hope things are progressing!

It is indeed right that the model can appear weak for some postures but if you are setting the strength index to 10 you are effectively multiplying the PCSA of each affected muscle by a factor of 10, and I think that sounds a little extreme.

Here is a few questions to consider when evaluating the strength:

  • Do you know which muscles are overloaded and at what positions? - is it reasonable?
  • Have you but any additional load on the model that could be placed wrong?
  • If it is a near maximum contraction you could try a different muscle recruitment criteria to better reflect the situation? here is a link on that subject

Best regards,
Bjørn
AnyBody Technology

Hello Bjorn,
Thanks for your guidance and help.
In my opinion, index 10 is not logical, but I do not know how to fix this problem.
1-Hip flexor muscles in both sides and muscle spine are overloaded. In fact, I used the frames that my model is in a specific posture. In other words, I can say that the task is static because the model is in a specific posture for 3 seconds, so during the frame my model stands without any motions. The picture of one of my tasks is below. As you see, the highlighted muscles are overloaded and it seems reasonable.
2-The external forces are force plate forces that are applied to both feet and hand load that is applied to a specific spot( the two red lines show the external load that are applied to the hand)
3- Could you please explain more about using another muscle recruitment criteria? Do you mean that for example using Min/Max criteria can solve my problem?
Thanks in advance
Parisa

Hi @parisa

Since you have a external load at the hands you should enable the arm muscles in the body config file with these statements:

  #define BM_ARM_MUSCLES_LEFT ON
  #define BM_ARM_MUSCLES_RIGHT ON

regarding the muscle reqruitment criteria you can read about the different settings here
If the task is close to the subject maximum strength then yes, the min/max criteria could be applicable.
elsewise, you could adjust the level of co-contraction if needed.

Best regards,
Bjørn
AnyBody Technology

Dear Bjorn,
Thanks for your help and guidance. I really appreciate you and hope to not bother you.
As you said, I enabled the lines for arm muscles. Also, I read the link that you sent about criteria for inverse dynamics, and I realized that Min/max seems better than others, so I used Min/max criteria for the inverse dynamics, but the problem of muscle overload has still remained. The index for arm and trunk muscle strength that removes the overload muscle warnings is about 8. Please give me some advice to solve this problem. I think about adding external actuators for the spine to help muscles to carry the load. Is it possible?
Best regards,
Parisa

Hi @parisa

It is of course fine to ask all the questions you have, we will do our best to answer and help you forward!

Great to hear that it worked turning on the arm muscles and min/max criteria.

I am wondering as to how you have modelled the load at the hand?
is it a segment attached or a force applied?
How high is the mass / force applied?
It could be that the load is creating an unwanted moment or force?

Best regards,
Bjørn
AnyBody Technology

Hi Bjorn,
Thanks for your help.
1- I modeled the load as a force applied to a defined point (the code lines are below). First, I defined a relative point of load from the left hand(MY_New_Node ). Then, I defined the magnitude of the load that is applied to the left hand. I did this work for the right hand too(MY_New_Node 1).
Ref_To_PalmJointNode={
AnyRefNode MY_New_Node ={
sRel = {-0.07,-0.225,-0.0};

AnyDrawRefFrame drw ={};
};
};
AnyForce3D lefthandload={
AnyRefFrame &ref= Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Hand.Ref.PalmJoint.MY_New_Node ;
F={0,0,-6.3/29.81};
AnyDrawVector Drw = {
AnyRefFrame &ref= .ref;
Vec = .F/1000;
Line = {
Thickness = 0.025;
RGB = {1, 0, 0};
End = {
RGB = {1, 0, 0};
Thickness = 0.02;
Length = 0.010
0.2;
};
Ref_To_PalmJointNode1={
AnyRefNode MY_New_Node1 ={
sRel = {-0.07,-0.065,0.01};
AnyDrawRefFrame drw ={};
};
};
AnyForce3D Righthandload={
AnyRefFrame &ref= Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Hand.Ref.PalmJoint.MY_New_Node1 ;
F={0,0,-6.3/29.81};
AnyDrawVector Drw = {
AnyRefFrame &ref= .ref;
Vec = .F/1000;
Line = {
Thickness = 0.025;
RGB = {1, 0, 0};
End = {
RGB = {1, 0, 0};
Thickness = 0.02;
Length = 0.010
0.2;
};
};
2-The magnitude of the force for the picture above is about 5.5 kg and I do not think that the problem is due to the force. The maximum force that I use for the load is about 12 kg. Actually, I think the problem is due to the complexity of the posture of the model. As you see, the model has a posture with 90-degree asymmetry for lifting without foot pivoting, and the wrapping of the muscles leads to some problems.
3- I do not think that load creates unwanted force or moment. I see that for example in squat tasks the hip flexor muscles become overload, or even lumber muscles become overload.
Please give me your advice to solve the problem.
Best regards,
Parisa

Hi @parisa

I think you are right that the complex posture of your model combined with a pulling force located at the hands is the main issue.
Even if the magnitude of the applied force you have is low - the model will have difficulties to balance a static position in the posture you have.

You mention that the wrapping of certain muscles is creating problems - have you noticed any muscles that are wrapping wrongly? the posture could lead to muscles wrapping the wrong way around their surfaces - and that we would of course very much like to know so we can fix it.

could you try to perform the simulation without your added force at the hands to see if the model can hold the posture without external forces?

Best regards,
Bjørn
AnyBody Technology

Hi Bjorn,
1-By looking at the model view, I noticed that some muscles are locating wrong and they penetrate other surfaces. For example, please look at the picture below. It seems that the muscle Latissimus Dorsi4 has a problem, but I do not know how to fix it. Also, I do not know how to find other muscles which have a similar problem. I noticed it just by looking at the model view. Please let me know how to solve the wrapping problem.


2-As you asked, I omitted the code lines about forces in hands, and I ran the inverse dynamic. The warnings about muscle overload disappeared(the magnitude of the load is about 11 kg). However, it is obvious that the output of the model for compression force on the spine was not reasonable, since the force plate includes external force in hand plus the body weight. It seems that in this case, the magnitude of the load creates the problem in overload muscles. On the other hand, it is necessary to have this load in hand and see its effects on compression forces on the spine with this posture. I would be thankful if you give me your advice.
Bests,
Parisa

Hi @parisa

The latissimus wrapping you are seeing is not wrong. It is simply the wrapping surface combined with the posture that makes I look like it is wrapping
under that rib.
Do you have the possibility to share that model that includes the force added to the hands, we would like to debug it further.
The posture is really pushing the limits of that the model can do so we would like to see if we can improve its stability here.

Best regards,
Bjørn
AnyBody Technology

Hi Bjorn,
Sorry for responding late.
Sure. I sent it by email today. It would be nice if you could share your perspective after observing my model because modeling these postures are really important for me since it is a part of my master thesis.
Please let me know about the conclusion.
Bests,
Parisa