Pipetting model

Hi AnyBody:
I have an user-developed model simulating the thumb action during pipetting. The model works OK kinematically. But, when I tried to calibrate the model, there was an error message “8 over-constrains”. It seems that each of DOF in the calibration driver caused a conflict of over-constrain. I did only “TendonLengthAdjustment”.
The model is attached. It runs on v3.0. It also works on v5.0, you have to change all “Transparency” to “Opacity”.
Thanks,
John Wu

Hi John,

Would you please let us know which version of AMMR(model repository) you have used for this model?

Best regards,
Moonki

Hi Moonki,

No repository was used. This is an user-developed model.

Regards, John

Hi John,

It will take some time to investigate your model in detail, but let me explain my guess.
Of course this may not be the reason of your problem.

When I loaded your model, I could find these warnings.

WARNING for Main.Cylinder.handle: Non-orthogonal axes were adjusted.
WARNING for Main.ThumbModel.CenterOfPressure1.button: Non-orthogonal axes were adjusted.

When I tried to run ‘InitialConditions’ operation of Calibration, I could see the error due to the over-constrained kinematic situation.

So when I looked the ‘Main.Cylinder.handle’ and ‘Main.ThumbModel.CenterOfPressure1.button’ objects in your model,

  AnyRefNode handle = {
    sRel = {0.09,0.005,0.048};
    //      ARel = RotMat(-90*pi/180, x);
    ARel = {{-1, 0, 0}, {0, 0, 1}, {0, -1, 0}};
    
//    AnyDrawSTL DrwSurf = { 
//      FileName = "handle.STL"; 
//      ScaleXYZ = {1, 1, 1}/700.0;
//      Transparency = 1.0;
//      RGB = {0.80, 0.20, 0.00};
//    };
  };

AnySeg CenterOfPressure1={
  Mass=0;
  Jii={0.0,0.0,0.0};
  AnyRefNode node={
    sRel={0.0,0.0,0};
    AnyDrawNode drw={
    ScaleXYZ={0.01,0.01,0.003}; 
    Transparency = 1;
    RGB={1.0,0,1};};
  };
  AnyRefNode button = {
      sRel = {0.01,0.01,0.075};
//      ARel = RotMat(-90*pi/180, x);
      ARel = {{-1, 0, 0}, {0, 0, 1}, {0, -1, 0}};

      AnyDrawSTL DrwSurf = { 
      FileName = "button.STL"; 
      ScaleXYZ = {1.0, 1.0, 1.0}/1000.0;
      Transparency = 1.0;
      RGB = {0.80, 0.20, 0.00};
    };};
};

The basis vectors that constructs ARel matrix are not orthogonal each other.
I guess that it would be modified like this:

ARel = {{-1, 0, 0}, {0, 0, 1}, {0, 1, 0}};

or

ARel = {{-1, 0, 0}, {0, 0, -1}, {0, -1, 0}};

Please modify these values and check whether this change can be applied to your model.

And if you can’t solve the problem again, please ask again.

Best regards,
Moonki

Moonki,

Thanks for the quick response. I have modified the axis. These two warnings have been eliminated. But, the problem of over-constrains in calibration is still there.

Thanks, John

Hi John,

If you double-click on the calibration study you will notice that you have 2 sets of drivers for your joints - 0, 1, 2 and 5, 6, 7:
Drivers:
0: Main.ThumbModel.Drivers.CMCMotion (3constr.) Segments(1): Proximal_Phalanx
1: Main.ThumbModel.Drivers.MPMotion (3constr.) Segments(2): Proximal_Phalanx Middle_Phalanx
2: Main.ThumbModel.Drivers.IPMotion (2constr.) Segments(2): Middle_Phalanx Distal_Phalanx

5: Main.CalibrationDrivers.CMCCali (3constr.) Segments(1): Proximal_Phalanx
6: Main.CalibrationDrivers.MPCali (3constr.) Segments(2): Proximal_Phalanx Middle_Phalanx
7: Main.CalibrationDrivers.IPCali (2constr.) Segments(2): Middle_Phalanx Distal_Phalanx

You should exclude 0, 1, 2 in order to run the calibration.

Best regards,
Pavel

Pavel:

Thanks. That is exactly what caused over-constains. I have deleted the CalibrationDrivers completely and it works now.

My problem has been resolved.

John