Everyone..
I would like to open a discussion on how to shift the user frame for the robot offset on the camera process.
Main problem: Robot is inaccurate when locating a product
Goal: To locate the product using a camera without adding VOFFSET.VR on the program (usually 2D vision Fanuc has a program like this L P[1] 100mm/sec FINE VOFFSET.VR[1])
Currently, I have done some logic in the program :
1. first Logic
Vision RUN_FIND VISION1
VISION GET_OFFSET VISION 1 VR[1] JMP,LBL [99]
PR[20]=VR[1].OFFSET (getting offset from vision)
PR[30]=UFRAME[2] (this is a static user frame, I was set it up since the beginning)
CALL MATRIX (20,30,40)
UFRAME[3]=PR[40] (uframe from the matrix result)
UFRAME_NUM=3
UTOOL_NUM=1
L P[1] 100mm/sec FINE
L P[2] 100mm/sec FINE
L P[3] 100mm/sec FINE
I Still have miss accurate picking from the robot when applying to the robot, the robot is not accurate
2. Second Logic
Vision RUN_FIND VISION1
VISION GET_OFFSET VISION 1 VR[1] JMP,LBL [99]
PR[20]=VR[1].OFFSET
CALL INVERSE (20,21)
L P[1] 100mm/sec FINE OFFSET PR[21]
L P[2] 100mm/sec FINE OFFSET PR[21]
L P[3] 100mm/sec FINE OFFSET PR[21]
Actually, this logic is good enough when the part only moving in the X or Y direction, but when it goes to rotate and Change some R, the accuracy is really bad.
is there anyone who has a similar application?, that would get an accurate picking without using VOFFSET.VR in the program? maybe by using PR offset or shifting the USERFRAME, or is there any insight from you if there is some mistake in my logic.
PS: i cannot using VOFFSET.VR in the program for specific reason