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

아래 표는 위 프로그램에 대한 설명입니다. 명령어 이름의 링크를 클릭하면 해당 명령의 상세 설명을 확인할 수 있습니다.
워크플로 | 코드와 설명 | ||
---|---|---|---|
좌표계 설정 |
위의 두 명령어는 현재 선택한 말단장치 좌표계와 사용자 좌표계를 설정한다는 것입니다. |
||
Home포인트로 이동하기 |
따라서, 이 명령어는 로봇이 관절 각도 이동 방식을 사용하여 티칭된 Home포인트로 이동하는 명령어입니다.
|
||
통신 파라미터를 초기화하기 |
따라서 전체 명령어는 로봇이 MM_INIT_SKT 명령어를 통해 통신 대상(IPC)의 IP 주소, 포트 번호, 타임아웃 대기시간을 지정함으로써 비전 시스템 간의 연결을 설정합니다.
|
||
카메라 이미지 캡처 위치로 이동하기 |
따라서 전체 명령어는 로봇이 직선 운동으로 설정된 이미지 캡처 포인트로 이동합니다(속도: 1000mm/sec).
|
||
Mech-Vision 프로젝트 실행을 트리거하기 |
따라서, 이 명령어는 로봇이 비전 시스템에 실행 번호 1인 Mech-Vision 프로젝트를 트리거하여 Mech-Vision 프로젝트가 모든 비전 포인트를 반환할 것으로 예상하는 것을 나타냅니다. |
||
비전 결과 획득하기 |
따라서, 이 명령어는 로봇이 Mech-Vision 프로젝트 1이 반환한 비전 결과를 획득하는 명령어입니다.
따라서, 위의 문장은 상태 코드 R[53]가 1100일 경우 로봇이 모든 비전 결과를 성공적으로 획득했다는 것을 의미하며, 그렇지 않으면 비전 시스템에 이상이 발생한 것이며, 프로그램은 LBL[99] 위치로 점프하여 실행합니다. 다음에는 LBL[99] 위치의 코드입니다.
사용자는 구체적인 비정상 상태 코드에 따라 적절한 처리를 수행할 수 있습니다. 이 샘플에서는 모든 비정상적인 상태 코드에 대해 같은 처리를 수행하며, 즉 PAUSE 명령어를 사용하여 프로그램 실행을 종료합니다. |
||
비전 결과를 저장하기 |
따라서, 이 명령어는 첫 번째 비전 포인트의 말단장치 포즈, 라벨 및 말단장치 번호를 각각 지정된 레지스터로 전송하는 명령어입니다. |
||
중간 웨이포인트로 이동하기 |
따라서 이 전체 명령어는 로봇이 관절 각도 이동 방식을 사용하여 이미지 캡처 포인트와 피킹 접근 웨이포인트 사이의 특정 중간 웨이포인트로 이동합니다.
|
||
피킹 접근 웨이포인트로 이동하기 |
따라서, 이 명령어는 로봇이 피킹 웨이포인트 위로 어딘가에 직선 이동하는 것을 나타냅니다.
|
||
피킹 웨이포인트로 이동하기 |
로봇은 직선 이동 방식으로 피킹 접근 웨이포인트에서 피킹 웨이포인트로 이동합니다. |
||
DO 명령어를 설정하여 피킹을 수행하기 |
로봇이 피킹 웨이포인트로 이동한 후, DO 명령어(예: "DO[1]=ON")를 설정하여 말단 장치를 제어하고 피킹를 수행합니다. 사용자는 실제 상황에 맞게 DO 설정 작업을 추가해야 합니다.
|
||
피킹 출발 웨이포인트로 이동하기 |
로봇이 피킹 웨이포인트 위로 어딘가에 이동합니다. 즉 피킹 출발 웨이포인트로 이동합니다.
|
||
중간 웨이포인트로 이동하기 |
로봇이 피킹 출발 웨이포인트와 배치 접근 웨이포인트 사이의 특정 중간 웨이포인트로 이동하합니다.
|
||
배치 접근 웨이포인트로 이동하기 |
|
||
배치 웨이포인트로 이동하기 |
로봇이 배치 접근 웨이포인트에서 배치 웨이포인트로 이동합니다. |
||
“DO 설정”을 통해 배치를 수행하기 |
로봇이 배치 웨이포인트로 이동한 후, DO 명령어(예: "DO[1]=OFF")를 설정하여 말단 장치를 제어하고 배치를 수행합니다. 사용자는 실제 상황에 맞게 DO 설정 작업을 추가해야 합니다.
|
||
배치 출발 웨이포인트로 이동하기 |
로봇이 배치 웨이포인트 위로 어딘가에 이동합니다. 즉 배치 출발 웨이포인트로 이동합니다.
|
||
Home포인트로 이동하기 |
로봇이 배치 출발 웨이포인트에서 다시 Home포인트로 이동합니다. |