Kawasaki (川崎)抓取样例程序

本章将介绍用于完成简单识别并移动的机器人样例程序。

前提

  1. 已参照 Kawasaki (川崎)主控程序说明 完成机器人程序烧录,并与 Mech-Center 建立连接。

  2. 已参照 Kawasaki (川崎)标定操作流程 完成外参标定。

  3. Mech-Vision 和 Mech-Viz 工程已搭建,并已勾选 自动加载当前工程

  4. 在 Mech-Center 的部署设置中,同步 Mech-Vision 自动加载的工程列表,并调整工程顺序。

  5. 机器人工具中心点已定义好。

  6. 调低机器人运行速度,以避免调试过程中发生碰撞。

样例程序介绍

机器人简单抓取和放置的样例程序 mm_sample 保存在 Mech-Center/mech-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 点需要用户预先在 辅助功能 ‣ 4 基本设定 ‣ 2 原点位置 中进行设定,设定好之后按 登录 键确认。

../../../../_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. 使用循环将获取的位姿保存到变量。

  9. 使用循环使机器人沿 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 点需要用户预先在 辅助功能 ‣ 4 基本设定 ‣ 2 原点位置 中进行设定,设定好之后按 登录 键确认。

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