[770c98]: / Application / Validation / GaitVaughan / Model / JointsAndDriversOldMethod.any

Download this file

282 lines (220 with data), 7.6 kB

/* This file contains the connections between the model and makers
//please notice that the model is driven using the local cooridnate systems on the 
//human instead 
Sacrum in (y) 
Right and left ASIS in (x) 
Right and left knee in (x) 
Right and left malleolus in (z) 
Right and left metatarsal in (x,�z) 
Right and left heel in (x, y, z)

Right and left ASIS  and Sacrum in (y), combined as RAsisZ+LAsisZ=SacrumZ
*/

AnyFolder JointsAndDrivers = {
  
  //Make a visualization of the drivers
  //#include "DriverVisualization.any"
  AnyFixedRefFrame GlobalRef ={
    Origin={0,0,0};
  };
    
  AnyKinEqSimpleDriver PelvisThoraxDriver ={
    AnyKinMeasure& ref1= Main.HumanModel.BodyModel.Interface.Trunk.PelvisThoraxExtension;
    AnyKinMeasure& ref3=     Main.HumanModel.BodyModel.Interface.Trunk.PelvisThoraxRotation;
    DriverPos={0,0}; 
    DriverVel={0,0};
  };
  
  //This is an etsimation of the upper body motion it will enforce that the head is kept above the pelvis medial/laterally
  AnyKinEqSimpleDriver LateralBendDriver ={
    AnyKinLinear lin ={
      AnySeg &ref1=  Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
      AnySeg &ref2=  Main.HumanModel.BodyModel.Trunk.SegmentsCervicalSpine.SkullSeg;
    };
    DriverPos={0};
    DriverVel={0};
    MeasureOrganizer={1};
  };
  
  AnyKinEqSimpleDriver NeckDrv={
    AnyKinMeasure& ref0= Main.HumanModel.BodyModel.Interface.Trunk.SkullThoraxLateralBending; 
    AnyKinMeasure& ref1= Main.HumanModel.BodyModel.Interface.Trunk.SkullThoraxRotation; 
    AnyKinMeasure& ref2= Main.HumanModel.BodyModel.Interface.Trunk.SkullThoraxFlexion; 
    DriverPos={0,0,0};
    DriverVel={0,0,0};
    Reaction.Type={Off,Off,Off};
  };
  
  AnyReacForce PelvisGroundReaction={
    AnyKinLinear Lin={
      AnyFixedRefFrame &ref1 =..GlobalRef;
      AnySeg &ref2 = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
    };
    
    AnyKinRotational Rot={
      AnyFixedRefFrame &ref1 =..GlobalRef;
      AnySeg &ref2 = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
      Type=RotVector;
    };
  };
  
  
  AnyReacForce AnkleInversionEversionReaction ={
  
  AnyKinMeasure& ref1=  Main.HumanModel.BodyModel.Interface.Right.AnkleEversion;
  AnyKinMeasure& ref2=   Main.HumanModel.BodyModel.Interface.Left.AnkleEversion;

  };
  
  AnyKinLinear PelvisToSacrumMarkerLin = {  
    Ref=0;
    AnyRefNode &ref1 = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.SacrumMarker;
    AnySeg &ref2 = Main.Model.Markers.p15.Seg;
  };
  
  AnyKinEqSimpleDriver PelvisToSacrumMarkerLinDrv = {  
    AnyKinLinear &ref=.PelvisToSacrumMarkerLin;
    MeasureOrganizer={2};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  
  AnyKinEqSimpleDriver AsisRDrv  = {
    AnyKinLinear AsisR ={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.RAsis;
      AnyRefFrame &ref2=Main.Model.Markers.p7.Seg;
    };
    MeasureOrganizer={0};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  AnyKinEqSimpleDriver AsisLDrv  = {
    AnyKinLinear AsisL ={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.LAsis;
      AnyRefFrame &ref2=Main.Model.Markers.p14.Seg;
      
    };
    MeasureOrganizer={0};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  
  AnyKinMeasureOrg AsisRy={
    AnyKinLinear lin ={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.RAsis;
      AnyRefFrame &ref2=Main.Model.Markers.p7.Seg;
      AnyDrawPLine drw={RGB={1,1,0};Thickness=0.005;    };
      
    };
    MeasureOrganizer ={1};
  };
  
  AnyKinMeasureOrg AsisLy ={
    AnyKinLinear lin ={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.LAsis;
      AnyRefFrame &ref2=Main.Model.Markers.p14.Seg;
      AnyDrawPLine drw={RGB={1,1,0};Thickness=0.005;    };
      
    };
    MeasureOrganizer ={1};
  };
  AnyKinMeasureOrg SacrumLy={
    AnyKinLinear PelvisToSacrumMarkerLin = {  
      Ref=0;
      AnyRefNode &ref1 = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.SacrumMarker;
      AnySeg &ref2 = Main.Model.Markers.p15.Seg;
    };
    MeasureOrganizer ={1};
    
  };
  
  AnyKinEqSimpleDriver AsisZDrv={
    AnyKinMeasureLinComb LinComb = {
      AnyKinMeasure& u1 = ..AsisRy;
      AnyKinMeasure& u2 = ..AsisLy;
      AnyKinMeasure& u3 = ..SacrumLy;
      OutDim=1;
      Coef={
        {-1,-1,1}
      };      
    }; 
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  
  
  
  AnyKinEqSimpleDriver KneeRDrv  = {
    AnyKinLinear KneeR ={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Right.Leg.Seg.Thigh.KneeMarker;
      AnyRefFrame &ref2=Main.Model.Markers.p5.Seg;
      AnyDrawPLine drw={RGB={1,0,0};Thickness=0.005;    };
    };
    MeasureOrganizer={0};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  AnyKinEqSimpleDriver KneeLDrv  = {
    AnyKinLinear KneeR ={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Left.Leg.Seg.Thigh.KneeMarker;
      
      AnyRefFrame &ref2=Main.Model.Markers.p12.Seg;
      AnyDrawPLine drw={RGB={1,0,0};Thickness=0.005;    };
    };
    MeasureOrganizer={0};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };  
  
  
  
  
  AnyKinEqSimpleDriver MalleolusRDrv  = {
    AnyKinLinear MalleolusR ={
      Ref=0;
      
      AnyRefFrame &ref1=Main.Model.BodyModel.Right.Leg.Seg.Shank.MalleolusMarker;
      AnyRefFrame &ref2=Main.Model.Markers.p3.Seg;
      //AnyDrawPLine drw={RGB={1,0,0};Thickness=0.005;    };
    };
    MeasureOrganizer={2};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  AnyKinEqSimpleDriver MalleolusLDrv  = {
    AnyKinLinear MalleolusL ={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Left.Leg.Seg.Shank.MalleolusMarker;
      AnyRefFrame &ref2=Main.Model.Markers.p10.Seg;
      //AnyDrawPLine drw={RGB={1,0,0};Thickness=0.005;    };
    };
    MeasureOrganizer={2};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };  
  
  
  
  
  
  AnyKinEqSimpleDriver MetatarsalYRDrv={
    AnyKinLinear lin={
      AnyRefFrame &ref1=Main.Model.BodyModel.Right.Leg.Seg.Foot.MetatarsalMarker;
      AnyRefFrame &ref2=Main.Model.Markers.p1.Seg;
      Ref=0;
    };
    MeasureOrganizer={0,2};
    DriverPos={0,0};
    Reaction.Type={Off,Off};
    DriverVel={0,0};
  };
  
  
  
  AnyKinEqSimpleDriver MetatarsalYLDrv={
    AnyKinLinear lin={
      AnyRefFrame &ref1=Main.Model.BodyModel.Left.Leg.Seg.Foot.MetatarsalMarker;
      AnyRefFrame &ref2=Main.Model.Markers.p8.Seg;
      Ref=0;
    };
    MeasureOrganizer={0,2};
    DriverPos={0,0};
    Reaction.Type={Off,Off};
    DriverVel={0,0};
  };
  
  AnyKinEqSimpleDriver HeelYRDrv={
    AnyKinLinear lin={
      AnyRefFrame &ref1=Main.Model.BodyModel.Right.Leg.Seg.Foot.HeelMarker;
      AnyRefFrame &ref2=Main.Model.Markers.p2.Seg;
    };
    DriverPos={0,0,0};
    Reaction.Type={Off,Off,Off};
    DriverVel={0,0,0};
  };
  
  
  AnyKinEqSimpleDriver HeelYLDrv={
    AnyKinLinear lin={
      Ref=0;
      AnyRefFrame &ref1=Main.Model.BodyModel.Left.Leg.Seg.Foot.HeelMarker;
      AnyRefFrame &ref2=Main.Model.Markers.p9.Seg;
    };
    DriverPos={0,0,0};
    Reaction.Type={Off,Off,Off};
    DriverVel={0,0,0};
  };
  
  
  
};