Kawasaki (가와사키) 피킹 샘플 프로그램

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

전제

  1. Kawasaki (가와사키) 마스터 컨트롤 프로그램 설명 을 참조해 로봇 프로그램의 복제를 완료하고 Mech-Center와 연결을 하였습니다.

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

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

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

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

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

샘플 프로그램 설명

로봇의 간단한 픽 앤 플레이스 샘플 프로그램 mm_sampleXXXX/Mech-Center-xxx/Robot_Interface/KAWASAKI 파일에 저장됩니다.

다음과 같이 두 가지로 나뉩니다:

Mech-Vision을 사용하여 인식하고 결과를 획득하기

.PROGRAM vision_sample_1()
;**********************************************************
;* FUNCTION:simple pick and place with Mech-Vision
;* mechmind, 2022-5-1
;**********************************************************
  accuracy 1 always
  speed 30 always
  TOOL gripper ;set TCP
  Home ;move robot home position
  lmove camera_capture ;move to camera capture position
  break
  pos_num = 0
  ;Set ip address of IPC
  call mm_init_skt(127,0,0,1,50000,60)
  twait 0.1
  ;Set vision recipe
  ;call mm_switch_model(1,1)
  ;Run vision project
  call mm_start_vis(1,1,2)
  twait 1
  call mm_get_visdata(1,pos_num,ret2)
  if ret2 <> 1100
      halt
  end
  call mm_get_pose(1,&pick[1],label[l],speed[1])
  LAPPRO pick[1],100
  LMOVE pick[1]
  break
  ;Add object grasping logic here.
  ldepart 100
  lmove waypoint[1]
  lappro drop[1],100
  lmove drop[1]
  ;Add object releasing logic here.
  ldepart 100
  HOME
.END

프로그램 논리 해석

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

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

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

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

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

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

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

  8. 획득된 포즈의 상태 코드가 정상인지 판단하고, 상태 코드 반환이 비정상인 경우 로봇 프로그램이 중지되거나 정지됩니다.

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

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

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

사용자 정의 부분

  • TCP를 정의하기

    TOOL gripper, 포즈 변수 gripper를 사용하여 로봇 TCP를 설정합니다. 사용자는 호출하는 좌표계를 실제 TCP 값을 저장하는 좌표계로 변경해야 합니다.

  • 티칭 머신을 통해 사진 캡처 위치를 설정하기

    LMOVE camera_capture, 사용자는 사진 캡처 위치를 camera_capture 포즈 변수에 기록해야 합니다.

  • 티칭 머신을 통해 전이점을 설정하기

    LMOVE waypoint[1], 사용자는 충돌 없이 로봇이 픽 포인트에서 배치 포인트로 이동하도록 하나 또는 여러 개의 중간 지점을 추가할 수 있습니다.

  • 티칭 머신을 통해 배치 포인트를 설정하기

    LMOVE drop[1], 사용자는 배치 위치를 drop[1] 포즈 변수에 기록해야 합니다.

  • 피킹 전후, 배치 전후의 접근 거리를 정의하기

    • 픽 포인트로 접근하기

      LAPPRO pick[1],100이 픽 포인트 위 100mm로 이동하려면 사용자는 접근 중에 충돌이 없도록 옵셋을 수정해야 합니다.

    • 픽 포인트를 떠나기

      LDEPART 100은 픽 포인트에서 도구 Z축 방향을 따라 위로 100mm 이동합니다. 사용자는 떠나는 과정에서 충돌이 없도록 옵셋을 수정해야 합니다.

    • 배치 포인트로 접근하기

      LAPPRO drop[1],100이 배치 포인트 위 100mm로 이동하려면 사용자는 접근 중에 충돌이 없도록 옵셋을 수정해야 합니다.

    • 배치 포인트를 떠나기

      LDEPART 100은 배치 지점에서 도구 Z축 방향을 따라 위로 100mm 이동하므로 사용자는 떠나는 과정에서 충돌이 없도록 옵셋을 수정해야 합니다.

  • 그리퍼 동작을 정의하기

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

  • Home 포인트를 정의하기

    로봇의 HOME 포인트는 Aux. ‣ 4 Basic setting ‣ 2 Home Position 에서 사용자가 미리 설정해야 하며 설정 후 Login 키를 눌러 확인합니다.

../../../../_images/define_home_1.png
../../../../_images/define_home_2.png
../../../../_images/define_home_3.png

Mech-Viz를 사용하여 경로를 계획하기

.PROGRAM vision_sample_2()
;**********************************************************
;* FUNCTION:simple pick and place with Mech-Viz
;* mechmind, 2022-5-1
;**********************************************************
  accuracy 1 always
  speed 30 always
  TOOL gripper ;set TCP
  Home ;move robot home position
  LMOVE camera_capture ;move to camera_capture position
  break
  pos_num = 0
  ;Set ip address of IPC
  call mm_init_skt(127,0,0,1,50000,60)
  twait 0.1
  ;Set vision recipe
  ;call mm_switch_model(1,1)
  ;Run Viz project
  call mm_start_viz(1)
  twait 0.1
  ;set branch exitport
  ;call mm_set_branch(1,1)
  ;get planned path
  call mm_get_vizdata(2,pos_num,vispos_num,ret1)
  if ret1 <> 2100
      halt
  end
  for count=1 to pos_num
    call mm_get_pose(count,&movepoint[count],label[count],speed[count])
  end
  ;follow the planned path to pick
  for count =1 to pos_num
    speed speed[count]
    LMOVE movepoint[count]
    if count == vispos_num then
        ;add object grasping logic here
    end
  end
  ;go to drop location
  ldepart 100
  lmove waypoint[1]
  lappro drop[1],100
  lmove drop[1] ;drop point
  ;add object releasing logic here
  ldepart 100
  HOME
.END

프로그램 논리 해석

이 샘플은 Mech-Viz를 사용하여 비전 가이드로 피킹하고 고정된 배치 지점에 배치합니다.

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

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

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

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

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

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

  7. 획득된 포즈의 상태 코드가 정상인지 판단하고, 상태 코드 반환이 비정상인 경우 로봇 프로그램이 중지되거나 정지됩니다.

  8. for 루프를 사용하여 획득한 포즈를 변수에 저장합니다.

  9. for 루프를 사용하여 Mech-Viz가 계획한 경로를 따라 로봇을 이동하고 피킹을 완료하고 픽 포인트를 떠납니다.

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

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

사용자 정의 부분

  • TCP를 정의하기

    TOOL gripper, 로봇 TCP를 설정하고 포즈 변수 gripper를 사용합니다. 사용자는 호출하는 좌표계를 실제 TCP 값을 저장하는 좌표계로 변경해야 합니다.

  • 티칭 머신을 통해 사진 캡처 위치를 설정하기

    LMOVE camera_capture, 사용자는 사진 캡처 위치를 camera_capture 포즈 변수에 기록해야 합니다.

  • 티칭 머신을 통해 전이점을 설정하기

    LMOVE waypoint[1], 사용자는 충돌 없이 로봇이 픽 포인트에서 배치 포인트로 이동하도록 하나 또는 여러 개의 중간 지점을 추가할 수 있습니다.

  • 티칭 머신을 통해 배치 포인트를 설정하기

    LMOVE drop[1], 사용자는 배치 위치를 drop[1] 포즈 변수에 기록해야 합니다.

  • 그리퍼 동작을 정의하기

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

  • Home 포인트를 정의하기

    로봇의 HOME 포인트는 Aux. ‣ 4 Basic setting ‣ 2 Home Position 에서 사용자가 미리 설정해야 하며 설정 후 Login 키를 눌러 확인합니다.

../../../../_images/define_home_1.png
../../../../_images/define_home_2.png
../../../../_images/define_home_3.png