Shoulder FDK using scapula and humerus as bone contact surfaces

Dear all

I am currently implementing force dependent kinematics in the shoulder joint.
I got the model running and as a next step I want to include contact sufaces between the scapula and the humerus head. Most examples show how this is done with including implants sufaces but I would like to use the surface of the anybody bones. What would be the most straightforward way to do so?
I tried the following but it gave me an unknown error and I assume it might be too easy:

AnyForceSurfaceContact FSurf = 
{ 
  AnySurface &sMaster = Main.HumanModel.BodyModel.Right.ShoulderArm.STL.FileNameHumerus;
  AnySurface &sSlave = Main.HumanModel.BodyModel.Right.ShoulderArm.STL.FileNameScapula;

  PressureModule = 3e9;//3.7e9;//600e8;  //Vol Pen
  
  ForceViewOnOff = On;
  MeshRefinementMaster = 0;
  MeshRefinementSlave = 0;
  SingleSidedOnOff= On;
  
};


AnyKinLinear GHLin = {
  AnyRefNode &scapula_gh = ..Seg.Scapula.gh;
  AnyRefNode &humerus_gh = ..Seg.Humerus.gh;
  
  Ref=0; //use this for shifting between the two ref systems: scapula=0, humerus=1 
  
}; 

/**This is the reactions of the GH joint they are normally set to "Off Off Off" if the file 
GHReactions.any is being used, if this is not the case the reactions should be set to "On On On"
*/
AnyKinEq GHLinCon = {
  AnyKinMeasure& GHLinCon = .GHLin;
  //MEJ3:
  CType = {ForceDep,ForceDep,ForceDep};
  Reaction.Type = {Off,Off,Off};

};


//******************* include stiffness (taken from FDK hip example) ************************

AnyForce ShoulderStiffnessRight = 
{
  AnyFloat Stiffness = 5e4; // N/m
  AnyKinLinear lin = 
  {
    //Ref = -1;
    AnyRefFrame &r1= Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Scapula.gh;
    AnyRefFrame &r2 = Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Humerus.gh;
    
  };
  F = - Stiffness * lin.Pos;
};

Thank you for your help and best regards
Johanna

Hi Johanna,

When do you get the unknow error? is that at load time or while the model is running?

I think it would be a good idea to cut the bones used for contact to consist only of primarily the joint surfaces, this would also make the analysis quicker.

Please see this wiki page on FDK models it has a few sections on surface contact.

In the ShoulderStiffnessRight.lin you are using a global reference system, i would change this to either Scapula or Humerus.

Best regards
Søren

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.