romainbrette/manipulator

Automated calibration

Opened this issue · 0 comments

The automated calibration application:

  • measures motor ranges
  • calculates coordinate transforms for all manipulators

It uses visual information based on OpenCV. We implement a simple version.

For motor ranges, the user is asked to move each manipulator at two opposite XYZ corners.
For coordinate transforms, we use the same technique as manual calibration, except template matching is used to recenter the pipette tip:

  1. The user puts the pipette tip in the center of view. A photo is taken
  2. The program moves the Z axis of the microscope and calculates template matching criterion (correlation) vs. Z. This is the autofocus function.
  3. The program moves each axis in turn by a small amount, to keep the pipette in view. Autofocus is done using the autofocus function: template matching criterion gives two possibilities for the Z coordinate, the program tries both; we repeat until maximum match is obtained. Then position on screen is obtained by template matching.
  4. A first coordinate transform is obtained in this way.
  5. We repeat (3-4), but before template matching, the stage is moved using the first coordinate transform so as to put the pipette back in the field of view.