Creating a wrist motion with actuators

#1

Dear all,

I am trying to dimension a model for a wrist exoskeleton. I would like to have 4 actuators, one for wrist flexion, wrist extension, wrist abduction and wrist adduction.

I have create this motion for the wrist:

 AnyKinEqInterPolDriver WristMotion = 
  {
    Type = PiecewiseLinear;
    AnyVar totalSimTime = 24;
      T = {0, 1, 2, 3, 4, 5, 6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
      Data = {
       {0,10,30,50, 30, 10, -10, -30, -50,-30, -10, 0,0,0,0,0,0,0,0,0,0,0,0}
        ,{0,0,0,0,0,0,0,0,0,0,0,0,-10, -30, -50, -30, -10, 10, 30, 50,30,10,0}
      }*pi/180;
    
    AnyKinMeasure &WristFlexion =  ..Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.WristJointFlexion;
    AnyKinMeasure &WristDeviation =  ..Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.WristJointDeviation;
  Main.Model.ModelEnvironmentConnection.Drivers.WristMotion.Reaction.Type={Off,Off};
  
  };

Basically flexes, extends, abducts and adducts.

I have switched off all the muscles since I want my actuators to create the motion.

And here know I have some problems:

First of all is that as soon as I turn off the muscles the motion is created by the drivers but I think that I have turn them off when defining the motion.

Second I have defined muscles to create the actuators that pull as if they where bowden cables. And I think this is okay but, I defined an actuator as if it was an spring to create the wrist extension as following:

 AnyForce Actuator5 = { 
      AnyKinPLine line = { 
        AnyRefNode &n1 = Main.Model.Environment.Guide___Wrist___Assem__with__gear__and__glove___1.Actuator5_origin; 
        //AnyRefNode &n2 =Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.WristJointSeg.Actuator5_via1; 
        AnyRefNode &n3 = Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Hand.Actuator5_inser;  
        AnyDrawPLine drw = { 
          Thickness = 0.01; 
          RGB = {1,0,0};
        };
      }; 
      AnyVar k = 5.0; 
    
      F = (k*1/(line.Pos+0.00000000000000000001)); 
            AnyDrawForce drw = 
      {ForceScale =0.1;  };
    };

Can a spring defined like that create a motion to fulfil a wrist driver? (I sum 0.000…1 because if not it tells me that there is a division by 0). Can I create a muscles that pushes instead of pulling?

Thank you very much for your help.

Enric

#2

Hi Enric,

AnyBody is an inverse dynamics system. The muscles and other elements do not generally cause model to move. The drivers do. We find forces necessary to generate the motion, but not the motion caused by certain forces. Please read the tutorials.

BUT it is possible to introduce spring elements and minimize potential energy of those springs by driving potential energy measures to 0 using soft kinematics constraints (allowed violations).

Yes, muscles can “push” when defined to do so.

Kind regards,
Pavel