FANUC (화낙) 피킹 샘플 프로그램

여기에서는 간단한 식별과 움직임을 완성하는 로봇 샘플 프로그램을 소개합니다.

전제

  1. FANUC (화낙) 인터페이스 프로그램 복제 를 참조해 로봇 프로그램의 복제를 완료하고 Mech-Center와 연결을 하였습니다.

  2. FANUC (화낙) 캘리브레이션 프로세스 를 참조해 외부 파라미터 캘리브레이션을 완성하였습니다.

  3. Mech-Vision 및 Mech-Viz 프로젝트가 구축되어 각각 소프트웨어에서 자동으로 로드하기 기능을 선택했습니다.

  4. Mech-Center의 구성 설정에서 Mech-Vision에서 자동으로 로드된 프로젝트 리스트를 동기화하고 프로젝트 순서를 조정했습니다.

  5. 로봇의 TCP가 정의되었습니다.

  6. 디버깅 중 충돌을 피하기 위해 로봇의 속도를 낮춥니다.

샘플 프로그램 설명

로봇의 간단한 픽 앤 플레이스 샘플 프로그램 mm_sample ,파일 경로:XXXX/Mech-Center-xxx/Robot_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    ;

프로그램 논리 해석

  1. 로봇을 Home 포인트로 이동합니다.

  2. 카메라 사진 캡처 위치로 이동합니다.

  3. MM_INIT_SKT 을 호출하여 통신에 대해 초기화 설정을 합니다.

  4. Mech-Vision 프로젝트 레시피를 설정하려면 MM_SET_MOD 설정에서 Mech-Vision 레시피를 추가할 수 있습니다.

  5. MM_START_VIS는 Mech-Vision 프로젝트가 실행되도록 합니다.

  6. 1초를 기다립니다. Eye To Hand 모드에서 MM_START_VIS 와 MM_GET_VIS 사이에 이동 스텝이 있으면 여기서 기다릴 필요가 없습니다. Eye-In-Hand 모드에서는 카메라가 사진 촬영을 마칠 때까지 움직이지 않고 1초 동안 기다려야 합니다.

  7. Mech-Vision 프로젝트에서 계산된 포즈를 획득합니다.

  8. 획득된 포즈의 상태 코드가 정상인지 판단하고, 상태 코드 반환이 비정상인 경우 로봇을 정지시켜야 하며 사용자는 조치를 취해야 합니다.

  9. 픽 포인트로 이동합니다.

  10. 픽 포인트와 배치 포인트 사이의 안전한 지역으로 이동합니다.

  11. 고정된 배치 포인트로 이동합니다.

사용자 정의 부분

  • 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[80]mm/sec FINE    ;
31:L PR[61] R[81]mm/sec FINE    ;
32:  !Add object grasping logic here ;
33:   ;
34:L PR[62] R[82]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를 사용하여 비전 가이드로 피킹하고 고정된 배치 지점에 배치합니다.

  1. 로봇을 Home 포인트로 이동합니다.

  2. 카메라 사진 캡처 위치로 이동합니다.

  3. MM_INIT_SKT 을 호출하여 통신에 대해 초기화 설정을 합니다.

  4. Mech-Vision 프로젝트 레시피를 설정하려면 여기에서 MM_SET_MOD 를 호출하면 됩니다.

  5. Mech-Viz 프로젝트를 실행하도록 트리거합니다.

  6. Mech-Viz 프로젝트에서 계획한 이동 경로를 획득합니다.

  7. 상태 코드가 정상인지 확인하고 상태 코드 반환이 비정상인 경우 로봇을 일시 중지하고 사용자는 조치를 취해야 합니다.

  8. 획득한 포인트를 PR[60], PR[61], PR[62]에 차례로 입력합니다.

  9. 모션 명령을 사용하여 Mech-Viz 계획 경로를 따라 로봇을 이동하고 시각적 파악을 완료하고 시각적 영역을 떠나십시오.

  10. 픽 포인트와 배치 포인트 사이의 중간 영역으로 이동합니다.

  11. 고정 배치 포인트로 이동하고 배치합니다.

사용자 정의 부분

  • 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] 포즈 변수에 배치 위치를 기록해야 합니다.

  • 그리퍼 동작을 정의하기

    피킹 및 배치 지점으로 이동할 때 그리퍼를 켜고 끄는 그리퍼 제어 로직을 추가하십시오.