- #1
sgidley
- 1
- 0
Hello,
We have a robot whose function is to connect to a grid of connectors on the back of an industrial frame, one at a time. The robotics can move in 3 dimensions, I call them X Y and Z, where Z engages and disengages the connector.
The robotics have a software map of the relative distances of all the connectors from each other. In an ideal world, the robotics and frame would be exactly lined up with each other in every way, so no calibration would be needed. But this is not the case. There can be skew in the X & Y direction (picture the frame leaning to one side as you look at the grid of connectors) and there can be skew in the Z dimension (picture the frame and the robotics leaning towards each other, or leaning away from each other).
I can do 3 point calibration, and therefore come up with a "real life" plane equation for the plane (frame) that I am working with, but where I am stuck is how to translate my 2 dimensional map to the "real world" plane equation.
So the ideal locations are something like this (x,y):
0,2 1,2 2,2 3,2
0,1 1,1 2,1 3,1
0,0 1,0 2,0 3,0
And I would like to translate my software map, after receiving the input from 3 point calibration, to be something like this (x,y,z):
0,0,0 0.95,-.05,.01 0.90,-.10,.02 0.85,-.15,.03
My best guess is to do the following:
Use 3 corners to calibrate with: say Upper Left (reference), Upper Right, and Lower Left.
Get a linear multiplier for the difference between ideal and actual for each coordinate in each direction... so let's take Z for example.
Ideal: No change in Z
Actual form Upper Left to Upper Right, .5 in over 12 in, so .0417 per in
Actual from Upper Left to Lower Left, -.5 in over 30 in, so -.0167 per in
So now say I am connecting to a connector 8 into the right and 20 in below the Upper Left connector. Would I simply add the resulting values together to find the expected z dimension?
(2 * .0417 ) + (20 * -.0167) = -.25 in
I could repeat the same process for the other dimensions.
The other 2 dimensions would work a little different, because there is an Ideal distance.
So say reference is connector 1, connector 10 is 10" to the right (ideally), but measures 10.2" in actuality.
That then is .2" difference over 10 in, or .02" expected skew per in. Form there it is similar to the way the Z axis was done. I would then find the expected skew per in when moving in the other direction. During robotic movements, I would add the two skews together depending on how far the robot moves in each direction.
Anyway, I've elaborated quite enough I fear, but I was wondering if there is a more elegant solution than what I have thought to do so far, and if what I'm thinking to do even is correct.
Thanks!
We have a robot whose function is to connect to a grid of connectors on the back of an industrial frame, one at a time. The robotics can move in 3 dimensions, I call them X Y and Z, where Z engages and disengages the connector.
The robotics have a software map of the relative distances of all the connectors from each other. In an ideal world, the robotics and frame would be exactly lined up with each other in every way, so no calibration would be needed. But this is not the case. There can be skew in the X & Y direction (picture the frame leaning to one side as you look at the grid of connectors) and there can be skew in the Z dimension (picture the frame and the robotics leaning towards each other, or leaning away from each other).
I can do 3 point calibration, and therefore come up with a "real life" plane equation for the plane (frame) that I am working with, but where I am stuck is how to translate my 2 dimensional map to the "real world" plane equation.
So the ideal locations are something like this (x,y):
0,2 1,2 2,2 3,2
0,1 1,1 2,1 3,1
0,0 1,0 2,0 3,0
And I would like to translate my software map, after receiving the input from 3 point calibration, to be something like this (x,y,z):
0,0,0 0.95,-.05,.01 0.90,-.10,.02 0.85,-.15,.03
My best guess is to do the following:
Use 3 corners to calibrate with: say Upper Left (reference), Upper Right, and Lower Left.
Get a linear multiplier for the difference between ideal and actual for each coordinate in each direction... so let's take Z for example.
Ideal: No change in Z
Actual form Upper Left to Upper Right, .5 in over 12 in, so .0417 per in
Actual from Upper Left to Lower Left, -.5 in over 30 in, so -.0167 per in
So now say I am connecting to a connector 8 into the right and 20 in below the Upper Left connector. Would I simply add the resulting values together to find the expected z dimension?
(2 * .0417 ) + (20 * -.0167) = -.25 in
I could repeat the same process for the other dimensions.
The other 2 dimensions would work a little different, because there is an Ideal distance.
So say reference is connector 1, connector 10 is 10" to the right (ideally), but measures 10.2" in actuality.
That then is .2" difference over 10 in, or .02" expected skew per in. Form there it is similar to the way the Z axis was done. I would then find the expected skew per in when moving in the other direction. During robotic movements, I would add the two skews together depending on how far the robot moves in each direction.
Anyway, I've elaborated quite enough I fear, but I was wondering if there is a more elegant solution than what I have thought to do so far, and if what I'm thinking to do even is correct.
Thanks!