0

Is there a fast a way to interpolate "mesh calibration" to a bunch of points? Imagine a precise but inaccurate 2 axis cartesian robot that can move to any X,Y coordinate within its work area.

As a simple example, when the robot is instructed to move to
[0, 0], [5, 0], [10, 0]
[0, 5], [5, 5], [10, 5]
[0, 10], [5, 10], [10, 10]

the actual recorded positions are
[0.1, 0.2], [4.9, 0.2], [10.0, 0.1]
[-0.1, 5.2], [5.0, 5.3], [10.1, 5.1]
[-0.2, 10.0], [4.8, 9.9], [9.9, 9.8]

Thus, an "error grid" shown below is obtained
[0.1, 0.2], [-0.1, 0.2], [0.0, 0.1]
[-0.1, 0.2], [0.0, 0.3], [0.1, 0.1]
[-0.2, 0.0], [-0.2, 0.1], [0.1, 0.2]

Using this "error grid", how can I apply a correction to the robot input to minimize the error at any arbitrary point? For example, when I instruct it to go to [7, 8], it should look up the error measured at [5,5], [10, 5], [5, 10], [10, 10] to estimate the amount of correction needed.

I'm sure someone out there has figured this out 50 years ago but I just can't think of what keyword to google.

Many thanks.

  • I would use a matrix transformation. p' = M * p where p' are the corrected points and p the original, and M a 3x3 matrix. I once fiddled out how to determine such a matrix for 4 points: [How to paint / deform a QImage in 2D?](https://stackoverflow.com/a/56970955/7478597). – Scheff's Cat Dec 08 '21 at 06:27
  • I believe it's possible with 3 points also and probably even simpler (though there are less opportunities concerning the deformations which can be described). With 3 points in source and target space you can describe two vectors which become the 1st and 2nd column of your matrix M. The 1st point is the translation - the 3rd column. The last row has to become 0, 0, 1, of course. – Scheff's Cat Dec 08 '21 at 06:29
  • _I just can't think of what keyword to google._ Maybe [Robot calibration](https://en.wikipedia.org/wiki/Robot_calibration)... In industry, it's common that the robots doesn't are exactly at the position where they were planned to be in CAD. Thus, they measure points (e.g. welding points) on a sample product, and use the corresponding expected positions to compute calibration parameters for the robots. That's not quite trivial but you're expectations are probably less in your case... ;-) – Scheff's Cat Dec 08 '21 at 06:39

0 Answers0