Is your goal to pick this part in the same place everytime?
Yes, but we have 60 parts.Each part has a specific distance from center of sphere.I made a program as your said (with vr offset) and it's working accurately.
But what ı tried to do is giving offset directly from camera ,not in tp program. I thought with this way Robot will go to direct coordinate by using found position method but ıt didnt work for rotations.
You can see my current program below.
Code
1: PAYLOAD[1:ASIK_MILI_TOOL] ;
2: UTOOL_NUM=1 ;
3: UFRAME_NUM=1 ;
4: OVERRIDE=20% ;
5:J PR[1:Home] 100% CNT20 ;
6: VISION RUN_FIND 'FINDPART' ;
7: VISION GET_OFFSET 'FINDPART' VR[1] JMP LBL[99] ;
8: JOINT_MAX_SPEED[2]=50 ;
9: JOINT_MAX_SPEED[3]=50 ;
10: PR[5,3:Offsetz40]=(-40) ;
11: PR[5,1:Offsetz40]=10 ;
12: ;
13:L PR[3:REFPick2] 2000mm/sec CNT20 VOFFSET,VR[1] Tool_Offset,PR[5:Offsetz40] ;
14: PR[5,3:Offsetz40]=0 ;
15:L PR[3:REFPick2] 2000mm/sec FINE VOFFSET,VR[1] ACC100 Tool_Offset,PR[5:Offsetz40] ;
16: WAIT .10(sec) ;
17: CALL PICKPART ;
18: WAIT .10(sec) ;
19: PR[5,3:Offsetz40]=(-40) ;
20: ;
21:L PR[3:REFPick2] 2000mm/sec CNT20 Tool_Offset,PR[5:Offsetz40] VOFFSET,VR[1] ;
22:J PR[4:Place] 50% CNT20 Tool_Offset,PR[10:OffseZ200Tool] ;
23:L PR[4:Place] 2000mm/sec FINE Tool_Offset,PR[9:OffsetX40Tool] ;
24:J PR[4:Place] 50% CNT20 ACC50 ;
25: WAIT .10(sec) ;
26: CALL DROPPART ;
27: WAIT 1.00(sec) ;
28:L PR[4:Place] 1500mm/sec CNT20 Tool_Offset,PR[10:OffseZ200Tool] ;
29:J PR[1:Home] 50% FINE ;
30: LBL[99] ;
Display More