[38ba34]: / Body / AAUHuman / Arm / Glove.any

Download this file

83 lines (68 with data), 2.3 kB

//This model is used for simulating the gripforce of the hand and are to be used if no 
//real handmodel can be used

Seg={
  AnySeg Glove = { 
    r0=.Radius.wj.sRel*.Radius.Axes0'+.Radius.r0+.Hand.HandRef.PalmJoint.sRel*.Hand.Axes0'; 
    Axes0=.Hand.Axes0;
    Mass=0.0;
    Jii={0,0,0};

    AnyFunTransform3D& Scale = ..Scaling.Hand.ScaleFunction;
    AnyMat33 Mirror={{1,0,0},{0,1,0},{0,0,..Sign}};
  
    //if this node is set to 0,0,0 it will cause numeric problems in cases
    // where the glove is being used and when is it not loaded by any moment
     AnyRefNode ConnectionNode ={
      sRel=.Scale({0.002,0.002,0.002})*.Mirror;
    };    
    
    AnyRefNode ContactNode ={
       ARel={{-1,0,0},{0,0,...Sign*1},{0,...Sign*1,0}};  
       sRel={0,0,0};
    };
  
    AnyRefNode WristContactNode={
      sRel=.Scale({0.08,0.02,0.0})*.Mirror;
      ARel={{-1,0,0},{0,0,...Sign*1},{0,...Sign*1,0}};  
    };
    
    AnyRefNode PalmLateralContactNode={
      sRel=.Scale({-0.0,-0.02,0.0})*.Mirror;
      ARel={{-1,0,0},{0,0,...Sign*1},{0,...Sign*1,0}};  
    };
    
    AnyRefNode PalmMedialContactNode={
      sRel=.Scale({-0.0,0.04,0.0})*.Mirror;
      ARel={{-1,0,0},{0,0,...Sign*1},{0,...Sign*1,0}};  
    };
   
  };
};

Jnt={

  AnyKinLinear HandGloveLin={
    AnyRefNode &ref1=..Seg.Glove.ConnectionNode;
    AnyRefNode &ref2=..GloveInsertationNode;
  };
  
  AnyKinEqSimpleDriver HandGloveLinDrv={
    AnyKinLinear &ref=.HandGloveLin;
    DriverPos={0,0,0};
    DriverVel={0,0,0};
    Reaction.Type={On,On,On};
  };
  
  AnyKinRotational HandGloveRot={
    AnyRefNode &ref1=..Seg.Glove.ConnectionNode;
    AnyRefNode &ref2=..GloveInsertationNode;
    Type=RotAxesAngles;
  };
  
  AnyKinEqSimpleDriver HandGloveRotDrv={
    AnyKinRotational &ref=.HandGloveRot;
    DriverPos={0,0,0};
    DriverVel={0,0,0};
    Reaction.Type={Off,Off,Off};
  };
  
  AnyKinMeasureOrg HandGloveRotZ={
    AnyKinRotational &ref=.HandGloveRot;
    MeasureOrganizer={0};
  }; 
  AnyKinMeasureOrg HandGloveRotY={
    AnyKinRotational &ref=.HandGloveRot;
    MeasureOrganizer={1};
  }; 
  AnyKinMeasureOrg HandGloveRotX={
    AnyKinRotational &ref=.HandGloveRot;
    MeasureOrganizer={2};
  }; 
};