Validation model "BergmannGH"

Hello!

I am studying some tutorials of AnyBody. And tried to understand the validation model BergmannGH (AMMR.v1.5-MyDemo/Application/Validation/BergmannGH).

Can anyone give me short explanation of the following lines (from the main file)
1)
[FONT=Calibri]// Create a node for Bergmann’s force reference[/FONT]
[FONT=Calibri]BodyModel.Right.ShoulderArm.Seg.Humerus.gh = {…};[/FONT]

2)

[FONT=Calibri]// Output variables collecting the GH forces in the pertinent coordinate frame[/FONT]
AnyVec3 GHReactionInHumerus = -(Model.HumanModel.Right.ShoulderArm.Seg.Humerus.gh.Bergmann.Axes’ *Model.HumanModel.Right.ShoulderArm.Jnt.GHReactions.ResultanForce.FTotalGlobal’)’;
[FONT=Courier New]Thanks in advance for any help!

With kind regards!!!

Arnaud[/FONT]

Hi Arnaud,

  1. Let’s see the following code first:
BodyModel.Right.ShoulderArm.Seg.Humerus.gh =
{
  AnyRefNode Bergmann = 
  {
   ARel = RotMat(90*pi/180,y);
   AnyDrawRefFrame drwref = 
   {
     RGB = {1,0,0};
     ScaleXYZ = {1,1,1}/5;
   };
  };
};

This code defines an additional AnyRefNode obejct Bergmann ‘inside’ BodyModel.Right.ShoulderArm.Seg.Humerus.gh AnyRefNode.

  1. Let’s look at the second code:
    AnyVec3 GHReactionInHumerus = -(Model.HumanModel.Right.ShoulderArm.Seg.Humerus.gh.Bergmann.Axes'
       *Model.HumanModel.Right.ShoulderArm.Jnt.GHReactions.ResultanForce.FTotalGlobal')';

This code just transforms the reaction force vector from global to local value.

If you see the description of ‘AnyRefNode’ object in the reference manual, you can see the following tips.

GlobalVector = (Axes * LocalVector’)’;

So,

LocalVector = GlobalVector * Axes = (Axes’ * GlobalVector’)’

So in AnyScript, you can transform vectors from local to global and vice versa.

I hope this may help you.

Best regards,
Moonki

Thanks Moonki,

You are right, I arrived to this explanation too, but I’m still wondering, why not direct use the axes of the AnyRefNode “gh” in order to output the reaction force in the local reference frame?

Thanks again!

With kind regards,

Arnaud!

Hi Arnaud,

The purpose of this model is validation.
Thus, when we extract the shoulder joint reaction force from this model,
the creator of this model might want to use the same coordinate system to compare with in-vivo data.
This is the reason why we need to put some additional coordinate system.

You can see the detail explanation from this article:
Rasmussen, J., de Zee, M., Tørholm Christensen, S. & Damsgaard, M. (2007), “Comparison of a musculoskeletal shoulder model with in-vivo joint forces”, Presented at the International Society of Biomechanics 11th congress, Taipei, Taiwan, pp. 1 p.

And you can download this paper here:
http://www.anybodytech.com/index.php?id=publications

Best regards,
Moonki

Hi Moonki!

okay! I’ve got it; Thanks again!

Best regards

Arnaud