FANUC (화낙) 피킹 샘플 프로그램¶
여기에서는 간단한 식별과 움직임을 완성하는 로봇 샘플 프로그램을 소개합니다.
전제¶
FANUC (화낙) 인터페이스 프로그램 복제 를 참조해 로봇 프로그램의 복제를 완료하고 Mech-Center와 연결을 하였습니다.
FANUC (화낙) 캘리브레이션 프로세스 를 참조해 외부 파라미터 캘리브레이션을 완성하였습니다.
Mech-Vision 및 Mech-Viz 프로젝트가 구축되어 각각 소프트웨어에서 자동으로 로드하기 기능을 선택했습니다.
Mech-Center의 구성 설정에서 Mech-Vision에서 자동으로 로드된 프로젝트 리스트를 동기화하고 프로젝트 순서를 조정했습니다.
로봇의 TCP가 정의되었습니다.
디버깅 중 충돌을 피하기 위해 로봇의 속도를 낮춥니다.
샘플 프로그램 설명¶
로봇의 간단한 픽 앤 플레이스 샘플 프로그램 mm_sample ,파일 경로: XXXX/Mech-Center/mech_interface/fanuc
.
다음과 같이 두 가지로 나뉩니다:
Mech-Vision을 사용하여 비전 인식을 하고 결과를 획득하기¶
1: !FUNCTION:Eye to Hand simple pick ;
2: !MechMind,2022-05-30 ;
3: ;
4: !SET Tool ;
5: UTOOL_NUM=1 ;
6: !Move to HOME Position ;
7:J P[1] 100% FINE ;
8: !Move to Camera capture Position ;
9:L P[2] 3000mm/sec FINE ;
10: !Set IP address and Port ;
11: CALL MM_INIT_SKT('8','192.168.1.20',50000,1) ;
12: WAIT .10(sec) ;
13: !Set Vision Recipe ;
14: //CALL MM_SET_MOD(1,1) ;
15: !Run Vision Project ;
16: CALL MM_START_VIS(1,1,2) ;
17: WAIT 1.00(sec) ;
18: CALL MM_GET_VIS(1,50,51,52) ;
19: IF (R[52]<>1100) THEN ;
20: PAUSE ;
21: ENDIF ;
22: CALL MM_GET_POS(1,60,70,80) ;
23:L PR[60] 800mm/sec CNT100 Offset,PR[1] ;
24:L PR[60] 800mm/sec FINE ;
25: !Add object grasping logic here ;
26: ;
27:L PR[60] 800mm/sec CNT100 Offset,PR[1] ;
28: !Add transition point ;
29:L P[3] 800mm/sec FINE ;
30: !Move to DROP Position ;
31:L P[4] 800mm/sec CNT100 Offset,PR[2] ;
32:L P[4] 200mm/sec FINE ;
33: !Add object releasing logic here ;
34: ;
35:L P[4] 800mm/sec CNT100 Offset,PR[2] ;
36: !Move to HOME Position ;
37:J P[1] 100% FINE ;
프로그램 논리 해석¶
로봇을 Home 포인트로 이동합니다.
카메라 사진 캡처 위치로 이동합니다.
MM_INIT_SKT 을 호출하여 통신에 대해 초기화 설정을 합니다.
Mech-Vision 프로젝트 레시피를 설정하려면 MM_SET_MOD 설정에서 Mech-Vision 레시피를 추가할 수 있습니다.
MM_START_VIS는 Mech-Vision 프로젝트가 실행되도록 합니다.
1초를 기다립니다. Eye To Hand 모드에서 MM_START_VIS 와 MM_GET_VIS 사이에 이동 스텝이 있으면 여기서 기다릴 필요가 없습니다. Eye-In-Hand 모드에서는 카메라가 사진 촬영을 마칠 때까지 움직이지 않고 1초 동안 기다려야 합니다.
Mech-Vision 프로젝트에서 계산된 포즈를 획득합니다.
획득된 포즈의 상태 코드가 정상인지 판단하고, 상태 코드 반환이 비정상인 경우 로봇을 정지시켜야 하며 사용자는 조치를 취해야 합니다.
픽 포인트로 이동합니다.
픽 포인트와 배치 포인트 사이의 안전한 지역으로 이동합니다.
고정된 배치 포인트로 이동합니다.
사용자 정의 부분¶
Home 포인트를 정의하기
J P[1] 100% FINE
:사용자는 P[1] 포즈 변수에 HOME 포인트의 위치를 기록해야 합니다.TCP를 정의하기
UTOOL_NUM=1
:사용자는 호출하는 좌표계를 실제 TCP 값을 저장하는 좌표계로 변경해야 합니다. 사용자는 도구 좌표계 1의 값을 변경하여 TCP 위치를 조정할 수 있습니다.티칭 머신을 통해 사진 캡처 위치를 설정하기
L P[2] 1000mm/sec FINE
:사용자는 P[2] 포즈 변수에 사진 포인트의 위치를 기록해야 합니다.티칭 머신을 통해 전이점을 설정하기
L P[3] 800mm/sec FINE
:사용자는 충돌 없이 로봇이 피킹 지점에서 배치 지점으로 이동하도록 하나 또는 여러 개의 중간 지점을 추가할 수 있습니다.티칭 머신을 통해 배치 포인트를 설정하기
L P[4] 200mm/sec FINE
:사용자는 P[4] 포즈 변수에 배치 위치를 기록해야 합니다.피킹 전후, 배치 전후의 접근 거리를 정의하기
픽 포인트로 접근하기
L PR[60] 800mm/sec CNT100 Offset,PR[1]
:픽 포인트의 상단으로 이동하고 편차는 PR[1]에 설정되며 사용자는 접근 프로세스 중에 충돌이 없는지 확인하기 위해 옵셋을 수정해야 합니다.픽 포인트를 떠나기
L PR[60] 800mm/sec CNT100 Offset,PR[1]
:픽 포인트에서 도구 Z축을 따라 위로 이동하면 편차도 PR[1]에 설정됩니다. 사용자는 떠나는 과정에서 충돌이 없도록 옵셋을 수정해야 합니다.배치 포인트로 접근하기
L P[4] 800mm/sec CNT100 Offset,PR[2]
:배치 지점 위로 이동하려면 사용자가 옵셋을 수정해야 하며 옵셋은 접근 중에 충돌이 없도록 PR[2]에 설정됩니다.배치 포인트를 떠나기
L P[4] 800mm/sec CNT100 Offset,PR[2]
:도구의 Z축 방향을 따라 배치점에서 100mm 위로 이동하고 편차도 PR[2]에서 설정합니다. 떠나는 과정에서 충돌이 없도록 사용자가 옵셋을 수정해야 합니다.
그리퍼 동작을 정의하기
피킹 및 배치 지점으로 이동할 때 그리퍼를 켜고 끄는 그리퍼 제어 로직을 추가하십시오.
Mech-Viz를 사용하여 경로를 계획하기¶
1: !FUNCTION:Eye to Hand simple pick ;
2: !and place with Mech-Viz ;
3: !MechMind,2022-05-30 ;
4: ;
5: !SET Tool ;
6: UTOOL_NUM=1 ;
7: !Move to HOME Position ;
8:J P[1] 100% FINE ;
9: !Move to Camera capture Position ;
10:L P[2] 3000mm/sec FINE ;
11: !Set IP address and Port ;
12: CALL MM_INIT_SKT('8','192.168.1.20',50000,1) ;
13: WAIT .10(sec) ;
14: !Set Vision Recipe ;
15: //CALL MM_SET_MOD(1,1) ;
16: !Run Viz Project ;
17: CALL MM_START_VIZ(1) ;
18: WAIT .10(sec) ;
19: !set branch exitport ;
20: //CALL MM_SET_BCH(1,1) ;
21: !get planned path ;
22: CALL MM_GET_VIZ(2,50,51,52,53) ;
23: IF (R[53]<>2100) THEN ;
24: PAUSE ;
25: ENDIF ;
26: CALL MM_GET_POS(1,60,70,80) ;
27: CALL MM_GET_POS(2,61,71,81) ;
28: CALL MM_GET_POS(3,62,72,82) ;
29: !follow the planned path to pick ;
30:L PR[60] R[70]mm/sec FINE ;
31:L PR[61] R[71]mm/sec FINE ;
32: !Add object grasping logic here ;
33: ;
34:L PR[62] R[72]mm/sec FINE ;
35: !Add transition point ;
36:L P[3] 800mm/sec FINE ;
37: !Move to DROP Position ;
38:L P[4] 800mm/sec CNT100 Offset,PR[2] ;
39:L P[4] 200mm/sec FINE ;
40: !Add object releasing logic here ;
41: ;
42:L P[4] 800mm/sec CNT100 Offset,PR[2] ;
43: !Move to HOME Position ;
44:J P[1] 100% FINE ;
프로그램 논리 해석¶
이 샘플은 Mech-Viz를 사용하여 비전 가이드로 피킹하고 고정된 배치 지점에 배치합니다.
로봇을 Home 포인트로 이동합니다.
카메라 사진 캡처 위치로 이동합니다.
MM_INIT_SKT 을 호출하여 통신에 대해 초기화 설정을 합니다.
Mech-Vision 프로젝트 레시피를 설정하려면 여기에서 MM_SET_MOD 를 호출하면 됩니다.
Mech-Viz 프로젝트를 실행하도록 트리거합니다.
Mech-Viz 프로젝트에서 계획한 이동 경로를 획득합니다.
상태 코드가 정상인지 확인하고 상태 코드 반환이 비정상인 경우 로봇을 일시 중지하고 사용자는 조치를 취해야 합니다.
획득한 포인트를 PR[60], PR[61], PR[62]에 차례로 입력합니다.
모션 명령을 사용하여 Mech-Viz 계획 경로를 따라 로봇을 이동하고 시각적 파악을 완료하고 시각적 영역을 떠나십시오.
픽 포인트와 배치 포인트 사이의 중간 영역으로 이동합니다.
고정 배치 포인트로 이동하고 배치합니다.
사용자 정의 부분¶
Home 포인트를 정의하기
J P[1] 100% FINE
:사용자는 P[1] 포즈 변수에 HOME 포인트의 위치를 기록해야 합니다.TCP를 정의하기
UTOOL_NUM=1
:사용자는 호출하는 좌표계를 실제 TCP 값을 저장하는 좌표계로 변경해야 합니다. 사용자는 도구 좌표계 1의 값을 변경하여 TCP 위치를 조정할 수 있습니다.티칭 머신을 통해 사진 캡처 위치를 설정하기
L P[2] 1000mm/sec FINE
:사용자는 P[2] 포즈 변수에 사진 포인트의 위치를 기록해야 합니다.티칭 머신을 통해 전이점을 설정하기
L P[3] 800mm/sec FINE
:사용자는 충돌 없이 로봇이 피킹 지점에서 배치 지점으로 이동하도록 하나 또는 여러 개의 중간 지점을 추가할 수 있습니다.티칭 머신을 통해 배치 포인트를 설정하기
L P[4] 200mm/sec FINE
:사용자는 P[4] 포즈 변수에 배치 위치를 기록해야 합니다.그리퍼 동작을 정의하기
피킹 및 배치 지점으로 이동할 때 그리퍼를 켜고 끄는 그리퍼 제어 로직을 추가하십시오.