샘플 프로그램14: MM_S14_Vis_GetUserData
프로그램 소개
기능 설명 |
로봇은 비전 결과를 얻을 때 동시에 Mech-Vision 프로젝트에서 출력된 사용자 정의 데이터를 획득합니다. |
파일 경로 |
Mech-Vision 및 Mech-Viz의 설치 디렉토리로 이동하여 |
필요한 프로젝트 |
Mech-Vision 프로젝트 (하나 이상의 사용자 정의 포트를 출력 스텝에 추가해야 합니다). |
사용 전제 조건 |
|
이 샘플 프로그램은 참고용으로 제공됩니다. 사용자는 실제 상황에 맞춰 이 내용을 바탕으로 수정해야 하며, 해당 프로그램을 그대로 사용하지 않도록 하십시오. |
프로그램 설명
다음에는 MM_S14_Vis_GetUserData 샘플 프로그램의 코드와 관련 설명입니다.
MM_S1_Vis_Basic 샘플과 비하면, 이 샘플은 아래와 같이 굵게 표시된 코드 부분만 수정되었습니다. 따라서, MM_S14_Vis_GetUserData의 MM_S1_Vis_Basic과 일치하는 부분은 다시 설명하지 않습니다. (일치하는 부분에 대한 정보는 MM_S1_Vis_Basic샘플 프로그램 설명을 참조하십시오). |
1: !-------------------------------- ;
2: !FUNCTION: trigger Mech-Vision ;
3: !project and get vision result ;
4: !and custom data using ;
5: !command 110 ;
6: !Mech-Mind, 2023-12-25 ;
7: !-------------------------------- ;
8: ;
9: !set current uframe NO. to 0 ;
10: UFRAME_NUM=0 ;
11: !set current tool NO. to 1 ;
12: UTOOL_NUM=1 ;
13: !move to robot home position ;
14:J P[1] 100% FINE ;
15: !initialize communication ;
16: !parameters(initialization is ;
17: !required only once) ;
18: CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;
19: !move to image-capturing position ;
20:L P[2] 1000mm/sec FINE ;
21: !trigger NO.1 Mech-Vision project ;
22: CALL MM_START_VIS(1,0,2,10) ;
23: !get vision result from NO.1 ;
24: !Mech-Vision project ;
25: CALL MM_GET_DY_DT(1,51,53) ;
26: !check whether vision result has ;
27: !been got from Mech-Vision ;
28: !successfully ;
29: IF R[53]<>1100,JMP LBL[99] ;
30: !save first vision point data to ;
31: !local variables ;
32: CALL MM_GET_DYPOS(1,60,70,90) ;
33: !save received custom data ;
34: R[10]=R[90] ;
35: R[11]=R[91] ;
36: R[12]=R[92] ;
37: !move to intermediate waypoint ;
38: !of picking ;
39:J P[3] 50% CNT100 ;
40: !move to approach waypoint ;
41: !of picking ;
42:L PR[60] 1000mm/sec FINE Tool_Offset,PR[1] ;
43: !move to picking waypoint ;
44:L PR[60] 300mm/sec FINE ;
45: !add object grasping logic here, ;
46: !such as "DO[1]=ON" ;
47: PAUSE ;
48: !move to departure waypoint ;
49: !of picking ;
50:L PR[60] 1000mm/sec FINE Tool_Offset,PR[1] ;
51: !move to intermediate waypoint ;
52: !of placing ;
53:J P[4] 50% CNT100 ;
54: !move to approach waypoint ;
55: !of placing ;
56:L P[5] 1000mm/sec FINE Tool_Offset,PR[2] ;
57: !move to placing waypoint ;
58:L P[5] 300mm/sec FINE ;
59: !add object releasing logic here, ;
60: !such as "DO[1]=OFF" ;
61: PAUSE ;
62: !move to departure waypoint ;
63: !of placing ;
64:L P[5] 1000mm/sec FINE Tool_Offset,PR[2] ;
65: !move back to robot home position ;
66:J P[1] 100% FINE ;
67: END ;
68: ;
69: LBL[99:vision error] ;
70: !add error handling logic here ;
71: !according to different ;
72: !error codes ;
73: !e.g.: status=1003 means no ;
74: !point cloud in ROI ;
75: !e.g.: status=1002 means no ;
76: !vision results ;
77: PAUSE ;
위 샘플 프로그램 코드에 해당하는 워크플로는 아래 그림에 표시되어 있습니다.

아래 표는 굵게 표시된 코드의 설명입니다. 명령어 이름의 링크를 클릭하면 해당 명령의 상세 설명을 확인할 수 있습니다.
워크플로 | 코드와 설명 | ||||
---|---|---|---|---|---|
비전 결과 획득하기(사용자 정의 데이터가 포함됨) |
따라서, 이 명령어는 로봇이 Mech-Vision 프로젝트 1이 반환한 비전 결과를 획득하는 명령어입니다(사용자 정의 데이터가 포함됨).
|
||||
비전 결과를 저장하기(사용자 정의 데이터가 포함됨) |
따라서 이 명령어는 첫 번째 비전 포인트의말단장치 포즈, 레이블 및 사용자 정의 데이터를 지정된 레지스터에 저장한다는 것입니다.
위 코드는 비전 이동 웨이포인트(피킹 웨이포인트)의 세 가지 사용자 정의 데이터R[90], R[91], R[92]를 각각 R[10], R[11], R[12]로 할당하는 것을 나타냅니다.
|