I am a little stumped by the Inv_Pos() function Kuka has. I've looked around the forum and everywhere seems to point to old integrator manuals. I'm looking for peoples sentiment on this particular problem.
I have a robot picking from a cart, and placing on a table. I want to have a program that can be ran once and get a vector that can be used to offsets subsequent place points. So you'd run a calibration program like:
DEF CALIBRATION()
...
IDEAL_POS.X = 1000
IDEAL_POS.Y = 1000
IDEAL_POS.Z = 1000
IDEAL_POS.A = -90
IDEAL_POS.B = 0
IDEAL_POS.C = 180
MsgDialog(DialogAnswer, "Adjust the robot "XTOUCHED_UP_POS", "Calib", , "Ok")
HALT ; Jog to desired position and touch up the "XTOUCHED_UP_POS"
;INLINE FORMS DON'T WORK SUPER WELL SO TOUCH UP THIS POINT
XTOUCHED_UP_POS
NEW_CALIB_OFFSET = INV_POS(IDEAL_POS):XTOUCHED_UP_POS
...
END
Display More
Then the idea is at this point "NEW_CALIB_OFFSET" is the vector you seek that can be added in a different program like:
So when you go to "PLACE_PT" it accounts for some of the inaccuracy in teaching the tool / base, some of the mechanical tooling slop and so on. This seems to work, but not quite. The values that pop out of "NEW_CALIB_OFFSET" are of magnitude <10 mm. The inaccuracy in my placement is about 2mm in X and Y.
I don't understand how: NEW_CALIB_OFFSET = INV_POS(IDEAL_POS):XTOUCHED_UP_POS is different from NEW_CALIB_OFFSET = IDEAL_POS:XTOUCHED_UP_POS. One gives different values then the other obviously.
I hope this ramble makes some sense. At a high level, what is the ideal use case of INV_POS()?