샘플 프로그램1:MM_S1_Vis_Basic
프로그램 소개
기능 설명 |
로봇이 Mech-Vision 프로젝트 실행을 트리거하고 비전 결과 획득하여 피킹 및 배치 작업을 수행합니다. |
파일 경로 |
Mech-Vision 및 Mech-Viz의 설치 디렉토리로 이동하여 |
필요한 프로젝트 |
Mech-Vision 프로젝트 |
사용 전제 조건 |
|
이 샘플 프로그램은 참고용으로 제공됩니다. 사용자는 실제 상황에 맞춰 이 내용을 바탕으로 수정해야 하며, 해당 프로그램을 그대로 사용하지 않도록 하십시오. |
프로그램 설명
다음에는 MM_S1_Vis_Basic 샘플 프로그램의 코드와 관련 설명입니다.
NOP
'--------------------------------
'FUNCTION: trigger Mech-Vision
'project and get vision result
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P070 P070
SUB P071 P071
'set 100mm to z of P070
SETE P070 (3) 100000
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger NO.1 Mech-Vision project
CALL JOB:MM_START_VIS ARGF"1;0;2;30"
'get vision result from NO.1
'Mech-Vision project
CALL JOB:MM_GET_VISDATA ARGF"1;51;52"
'check whether vision result has
'been got from Mech-Vision
'successfully
IFTHENEXP I052<>1100
'add error handling logic here
'according to different error
'codes
'e.g.: I052=1003 means no point
'cloud in ROI
'e.g.: I052=1002 means no
'vision result
PAUSE
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save first vision point data to
'local variables
CALL JOB:MM_GET_POSE ARGF"1;71;61;62"
'move to intermediate waypoint of
'picking
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'picking
SFTON P070
MOVL P071 V=166.6 PL=0
SFTOF
'move to picking waypoint
MOVL P071 V=50.0 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE
'move to departure waypoint of
'picking
SFTON P070
MOVL P071 V=166.6 PL=0
SFTOF
'move to intermediate waypoint of
'placing
MOVJ C00003 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00004 V=166.6 PL=0
'move to placing waypoint
MOVL C00005 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00006 V=166.6 PL=0
'move back to robot home position
MOVJ C00007 VJ=50.00
END
위 샘플 프로그램 코드에 해당하는 워크플로는 아래 그림에 표시되어 있습니다.

아래 표는 위 프로그램에 대한 설명입니다. 명령어 이름의 링크를 클릭하면 해당 명령의 상세 설명을 확인할 수 있습니다.
워크플로 | 코드와 설명 | ||
---|---|---|---|
변수 초기화 |
따라서, 이 명령은 정수형 변수 I050부터 I069까지(총 20개)를 0으로 지우는 명령입니다.
따라서, 위의 두 명령어는 위치형 변수 P070과 P071을 0으로 설정하는 명령어입니다.
따라서, 위 명령어는 P070의 Z축 데이터를 100000μm로 (100mm) 설정하는 명령어입니다. |
||
Home포인트로 이동하기 |
따라서, 이 명령어는 로봇이 관절 각도 이동 방식을 사용하여 티칭 Home포인트로 이동하는 명령어입니다. |
||
통신 파라미터를 초기화하기 |
로봇이 MM_INIT_SOCKET명령어를 통해 통신 대상(IPC)의 IP 주소(192.168.170.22), 포트 번호(50000), 타임아웃 대기시간(1분)을 지정합니다.
|
||
카메라 이미지 캡처 위치로 이동하기 |
따라서, 이 명령어는 로봇이 관절 각도 이동 방식을 사용하여 티칭 카메라 이미지 캡처 위치로 이동하는 명령어입니다. |
||
통신 구축 |
로봇은 MM_OPEN_SOCKET명령어를 통해 비전 시스템과 TCP 프로토콜 통신 연결을 설정합니다. |
||
Mech-Vision 프로젝트 실행을 트리거하기 |
따라서, 이 명령어는 로봇이 비전 시스템에 실행 번호 1인 Mech-Vision 프로젝트를 트리거하여 Mech-Vision 프로젝트가 모든 비전 포인트를 반환할 것으로 예상하는 것을 나타냅니다. |
||
비전 결과 획득하기 |
따라서, 이 명령어는 로봇이 Mech-Vision 프로젝트 1이 반환한 비전 결과를 획득하는 명령어입니다.
따라서, 위의 문장은 상태 코드 I052가 1100일 경우 로봇이 모든 비전 결과를 성공적으로 획득했다는 것을 의미하며, 그렇지 않으면 비전 시스템에 이상이 발생한 것이며, 프로그램은 IFTHENEXP와 ENDIF 사이의 코드를 실행합니다. 사용자는 구체적인 비정상 상태 코드에 따라 적절한 처리를 수행할 수 있습니다. 이 샘플에서는 모든 비정상적인 상태 코드에 대해 같은 처리를 수행하며, 즉 PAUSE 명령어를 사용하여 프로그램 실행을 일시 중단합니다. |
||
통신을 종료하기 |
로봇은 MM_CLOSE_SOCKET 명령어를 통해 비전 시스템과 TCP 프로토콜 통신 연결을 끊깁니다. |
||
비전 결과를 저장하기 |
따라서, 이 명령어는 첫 번째 비전 포인트의 말단장치 포즈, 라벨 및 말단장치 번호를 각각 지정된 변수로 전송하는 명령어입니다. |
||
중간 웨이포인트로 이동하기 |
이 전체 명령어는 로봇이 관절 각도 이동 방식을 사용하여 이미지 캡처 위치와 피킹 접근 웨이포인트 사이의 특정 중간 웨이포인트로 이동합니다.
|
||
피킹 접근(approach) 웨이포인트로 이동하기 |
따라서, 이 명령어는 로봇이 피킹 웨이포인트(P071) 위로 100mm 직선 이동하는 것을 나타냅니다.
|
||
피킹 웨이포인트로 이동하기 |
로봇은 직선 이동 방식으로 피킹 접근 웨이포인트에서 피킹 웨이포인트로 이동합니다. |
||
“DO 설정”을 통해 피킹을 수행하기 |
로봇이 피킹 웨이포인트로 이동한 후, DO 명령어(예: "DOUT OT#(1) ON")를 설정하여 말단 장치를 제어하고 피킹를 수행합니다. 사용자는 실제 상황에 맞게 DO 설정 작업을 추가해야 합니다.
|
||
피킹 출발(departure) 웨이포인트로 이동하기 |
로봇이 피킹 웨이포인트 위로 100mm 이동합니다. 즉 피킹 시 출발(departure) 웨이포인트로 이동합니다.
|
||
중간 웨이포인트로 이동하기 |
로봇이 피킹 출발 웨이포인트와 배치 접근 웨이포인트 사이의 특정 중간 웨이포인트로 이동하합니다.
|
||
배치 접근 웨이포인트로 이동하기 |
로봇은 중간 웨이포인트에서 배치 접근 웨이포인트로 이동합니다.
|
||
배치 웨이포인트로 이동하기 |
로봇이 배치 접근 웨이포인트에서 배치 웨이포인트로 이동합니다.
|
||
“DO 설정”을 통해 배치를 수행하기 |
로봇이 배치 웨이포인트로 이동한 후, DO 명령어(예: "DOUT OT#(1) OFF")를 설정하여 말단 장치를 제어하고 배치를 수행합니다. 사용자는 실제 상황에 맞게 DO 설정 작업을 추가해야 합니다.
|
||
배치 출발 웨이포인트로 이동하기 |
로봇이 배치 웨이포인트에서 배치 출발 웨이포인트로 이동합니다.
|
||
Home포인트로 이동하기 |
로봇이 배치 출발 웨이포인트에서 다시 Home포인트로 이동합니다.
|