Consolidating Leg Muscles Forces

Hello everybody,

I want to figure out the muscular load of the lower extremity in the shooting foot in Football Players.

Everything working fine so far, BUT:

Some muscles are splitted into several fibres (e.g. vastus lateralis inferior 1-6).

To make a Point, I need to summarize these fibres into one muscle.

How can I do that?

Thanks once before…

Dear Cristoph,

A similar question has recently been asked - please have a look at another thread: here

Kind regards,
Pavel

Thanks for the quick reply.

Sorry for the next question…, but:

How (and where in the script) can i add the AnyForceMomentMeasure2?
Do I have to list all the leg muscles in this command?

Anywhere in the code, but it is, of course, nice to make a some sort of output folder :slight_smile:

For the second part, you could create invidivudal AnyForceMomemtMeasure2 instances for muscles that have multiple branches. And leave everything else as it was.

If you want to find a list of all muscles you could load a model (say StandingModel) and look in the model tree for:
Main.HumanModel.BodyModel.SelectedOutput.Left.Leg.Muscles.Envelope.

When you select this object - in the description window you can see that this envelope is computed over all muscles in the leg and it should be possible to copy all names, in case you need them all. Otherwise you can just construct an AnyForceMomentMeasure2 for the muscle that you need.

Regards,
Pavel

Hello Pavel,

I’m back from holidays and working again on my problem with consolidating the leg muscles. Made an AnyForceMomentMeasure2 for the Vastus Lateralis like that:

AnyForceMomentMeasure2 VastusLateralis = {

AnyRefFrame &ref1 = Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Shank; ;

AnySeg &seg1= Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Patella; // Segment on which the muscles of interest have their common insertion

AnyForceBase &mus1 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior1;

AnyForceBase &mus2 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior2;

AnyForceBase &mus3 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior3;

AnyForceBase &mus4 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior4;

AnyForceBase &mus5 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior5;

AnyForceBase &mus6 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior6;

AnyForceBase &mus7 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisSuperior1;

AnyForceBase &mus8 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisSuperior2;

};

Is that right? The curious thing is, that I get out 3 curves… I suppose that’s the x y and z direction? But I just want to get the Muscle Force in general. Like the normal output of the other non-splitted muscles (Fm).

Would be nice to get a little hint how to do that.

Best regards,

Christoph

Dear Cristoph,

You can take a norm of the vector and this will give you the magnitude. This magnitude will correspond to the Ft value. You could try to visualize the direction of your muscle force by using AnyDrawVector to check that it makes sense.

Regards,
Pavel

Okay, thank you. I understand that.
The only thing that I still don’t understand is the reference frame. Is it right to refer it to the shank in the case of vastus lateralis? Or do I have to refer it to the global coordinations to get the Fm of the muscle?
Sorry for not stopping asking… but I have to understand how this works.
Thanks!

Hi Cristoph,

That’s perfectly ok to ask. It would be worse if you did not :slight_smile:

The reference frame - it is what you select. You can output in global, local, a muscle attachment node ref. frame or segmental. Depending on how you need you can do different things - using AnyForceMomentMeasure classes will recompute the forces/moments in the relevant ref. frame.

Pavel

Thank you, that’s more or less clear now.
To be sure I got it right one last question :wink: :

If I want to find out the Muscle Force in Action (to compare it with other muscle Forces in literature or also with other Muscle Ft values from Anybody) I have to compute the Forces/moments that are working on the part of the Body the muscles are working on, right?
For example - vastus lateralis working on the shank, or adductors working on the thight… did I get it right?

[SIZE=3] [COLOR=black]Maybe easier to understand my question by attaching the script I did for one extensor and one adductor:

AnyForceMomentMeasure2[/COLOR][/SIZE] VastusLateralis = {
[SIZE=3]AnyRefFrame[/SIZE] &ref1 = Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Shank;
[SIZE=3]AnySeg[/SIZE] &seg1= Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Patella; [SIZE=3]// Segment on which the muscles of interest have their common insertion
[/SIZE][SIZE=3] AnyForceBase[/SIZE] &mus1 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior1;
[SIZE=3] AnyForceBase[/SIZE] &mus2 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior2;
[SIZE=3] AnyForceBase[/SIZE] &mus3 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior3;
[SIZE=3] AnyForceBase[/SIZE] &mus4 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior4;
[SIZE=3] AnyForceBase[/SIZE] &mus5 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior5;
[SIZE=3] AnyForceBase[/SIZE] &mus6 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisInferior6;
[SIZE=3] AnyForceBase[/SIZE] &mus7 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisSuperior1;
[SIZE=3] AnyForceBase[/SIZE] &mus8 = Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.VastusLateralisSuperior2;
[SIZE=3] AnyFloat[/SIZE] FVastusLateralis = vnorm(Main.Studies.InverseDynamicStudy.VastusLateralis.F);
};

[SIZE=3] AnyForceMomentMeasure2[/SIZE] ObturatoriusExternus = {
[SIZE=3]AnyRefFrame[/SIZE] &ref1 = Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Thigh;
[SIZE=3]AnySeg[/SIZE] &seg1= Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Thigh; [SIZE=3]// Segment on which the muscles of interest have their common insertion
[/SIZE][SIZE=3] AnyForceBase [/SIZE]&mus1[SIZE=3] [/SIZE]=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.ObturatorExternusSuperior1;
[SIZE=3] AnyForceBase [/SIZE]&mus2[SIZE=3] [/SIZE]=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.ObturatorExternusSuperior2;
[SIZE=3] AnyForceBase [/SIZE]&mus3[SIZE=3] [/SIZE]=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.ObturatorExternusSuperior3;
[SIZE=3] AnyForceBase [/SIZE]&mus4[SIZE=3] [/SIZE]=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.ObturatorExternusInferior1;
[SIZE=3] AnyForceBase [/SIZE]&mus5[SIZE=3] [/SIZE]=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Left.Leg.Mus.ObturatorExternusInferior2;

[SIZE=3] AnyFloat[/SIZE] FObturatoriusExternus = vnorm(Main.Studies.InverseDynamicStudy.ObturatoriusExternus.F);
};

Well, the muscle pulls both bones (or other anatomical parts). So it is up to you to choose something that corresponds to the data in hand.

And the code you specified here shows that you are outputting everything in the segmental reference frame, which may not necessary reflect someone else’s output frame. It is best to find out what was used and construct the same entity in AnyBody, e.g. one could use the ISB recommendations for anatomical axes.

AnyFloat FObturatoriusExternus = vnorm(Main.Studies.InverseDynamicStudy.Obturatoriu sExternus.F);
can be simplified to :
AnyFloat FObturatoriusExternus = vnorm(F); Since the member is in the same folder.
Pavel