[38ba34]: / Body / AAUHuman / LegTLEM / Calibration / LegCal4.any

Download this file

117 lines (99 with data), 5.2 kB

//This is the calibration4 file, it will calibrate specific muscles on the leg
AnyFolder LegCal4={
  AnyComponentDefinition obj = {};  
  
  AnyFolder &Pelvis = ...HumanFolderRef.Trunk.SegmentsLumbar.PelvisSeg;
  AnyFolder &Sacrum = ...HumanFolderRef.Trunk.SegmentsLumbar.SacrumSeg;
  
  AnyFolder &LegSegSide = .SideHumanFolderRef.Leg.Seg;
  
  AnyFolder &LegJointsSide = .SideHumanFolderRef.Leg.Jnt;
  AnyFolder &SacrumPelvisJnt = ...HumanFolderRef.Trunk.JointsLumbar.SacrumPelvisJnt;
  AnyFolder &SacrumPelvisJnt = .SideHumanFolderRef.Leg.Jnt; 
  
  AnyFixedRefFrame ground = {
    AnyRefNode node = { 
      ARel=..Pelvis.Axes0;
      sRel=..Pelvis.r0;
    };
  };
  
  AnyRevoluteJoint PelvisGround={
    AnyRefFrame &Ground = .ground.node;
    AnySeg &Sacrum= Main.HumanModel.Right.Leg.Seg.Pelvis; 
    Axis=z;
  };
  
  AnyKinEqSimpleDriver PelvisGroundRot = {
    AnyRevoluteJoint &Jnt = .PelvisGround;
    DriverPos = {0};
    DriverVel = {0};
    Reaction.Type = {Off}; 
  };
  
  AnyKinEqSimpleDriver PelvisSacrumFix = {
    AnyKinMeasure& Jnt = .SacrumPelvisJnt;
    DriverPos = {0,0,0};
    DriverVel = {0,0,0};
    Reaction.Type = {Off,Off,Off}; 
  }; 
  
//  AnyKinEqSimpleDriver JntDOFDriver = {
//    AnyKinMeasure& Joint = ..SideHumanFolderRef.Leg.JntDOF;
//    DriverPos = {2.15,0,-1.22,0,0,-1}; //10 degrees plantar flexion  
////    DriverPos = {1.,0.0,0,0,0,-1};
//    DriverVel = {0.0,0,0,0,0,0};
//    Reaction.Type = {Off,Off,Off,Off,Off,Off};
//  };//JntDOFDriver
  
  AnyKinEqSimpleDriver Hip = {
    AnySphericalJoint &Spherical = Main.HumanModel.Right.Leg.Jnt.HipRight;
    MeasureOrganizer = {2,0,1}; // flexion/extension, abduction/adduction, internal/external rotation
    DriverPos = {0,-5,0}*pi/180;
    DriverVel = {0,0,0}*pi/180;
    Reaction.Type = {Off,Off,Off};
  };  
  
  AnyKinEqSimpleDriver Knee = {
    AnyRevoluteJoint &Hinge = Main.HumanModel.Right.Leg.Jnt.Knee;
    DriverPos = {0*pi/180};
    DriverVel = {0*pi/180};
    Reaction.Type = {Off};
  };  
  
  AnyKinEqSimpleDriver Ankle = {
    AnyRevoluteJoint &Hinge = Main.HumanModel.Right.Leg.Jnt.Ankle;
    DriverPos = {0*pi/180}; // 10 degrees plantar flexion
    DriverVel = {0*pi/180};
    Reaction.Type = {Off};
  };

  AnyKinEqSimpleDriver SubTalar = {
    AnyRevoluteJoint &Hinge = Main.HumanModel.Right.Leg.Jnt.SubTalar;
    DriverPos = {0*pi/180};
    DriverVel = {0*pi/180}; 
    Reaction.Type = {Off};
  };

  // Calibration4 calibrates the following muscles of the lower leg:
  // rectus femoris
  AnyFolder &MuscleParCal4 =.SideHumanFolderRef.Leg.MuscleModels;
  
  AnyFolder Mus = {  
    AnyMuscleViaPoint &GluteusMinimusAnterior1 =  ..SideHumanFolderRef.Leg.Mus.GluteusMinimusAnterior1;
    AnyMuscleViaPoint &GluteusMinimusMid1 =  ..SideHumanFolderRef.Leg.Mus.GluteusMinimusMid1;
    AnyMuscleViaPoint &GluteusMinimusPosterior1 =  ..SideHumanFolderRef.Leg.Mus.GluteusMinimusPosterior1;
    AnyMuscleViaPoint &GluteusMediusAnterior1 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior1;
    AnyMuscleViaPoint &GluteusMediusAnterior2 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior2;
    AnyMuscleViaPoint &GluteusMediusAnterior3 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior3;
    AnyMuscleViaPoint &GluteusMediusAnterior4 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior4;
    AnyMuscleViaPoint &GluteusMediusAnterior5 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior5;
    AnyMuscleViaPoint &GluteusMediusAnterior6 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusAnterior6;
    AnyMuscleViaPoint &GluteusMediusPosterior1 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior1;
    AnyMuscleViaPoint &GluteusMediusPosterior2 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior2;
    AnyMuscleViaPoint &GluteusMediusPosterior3 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior3;
    AnyMuscleViaPoint &GluteusMediusPosterior4 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior4;
    AnyMuscleViaPoint &GluteusMediusPosterior5 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior5;
    AnyMuscleViaPoint &GluteusMediusPosterior6 =  ..SideHumanFolderRef.Leg.Mus.GluteusMediusPosterior6;
    
    //Muscle main function: Plantar flexion, different angle w.r.t. LegCal2 due to larger pennation angle
//    AnyMuscleViaPoint &SoleusMedialis1 =  ..SideHumanFolderRef.Leg.Mus.SoleusMedialis1;
//    AnyMuscleViaPoint &SoleusMedialis2 =  ..SideHumanFolderRef.Leg.Mus.SoleusMedialis2;
//    AnyMuscleViaPoint &SoleusMedialis3 =  ..SideHumanFolderRef.Leg.Mus.SoleusMedialis3;
//    AnyMuscleViaPoint &SoleusLateralis1 =  ..SideHumanFolderRef.Leg.Mus.SoleusLateralis1;
//    AnyMuscleViaPoint &SoleusLateralis2 =  ..SideHumanFolderRef.Leg.Mus.SoleusLateralis2;
//    AnyMuscleViaPoint &SoleusLateralis3 =  ..SideHumanFolderRef.Leg.Mus.SoleusLateralis3;      
  };
  
};

// The study: Operations to be performed on the model
AnyBodyCalibrationStudy LegCalibrationStudy4 = {
  AnyFolder &ref=.LegCal4; 
  nStep = 1;
  InitialConditions.SolverType = KinSolOverDeterminate;
  InitialConditions.SmallStepAssumptionOnOff = Off;
};