YASKAWA (安川)抓取样例程序

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

前提

  1. 已参照 YASKAWA(安川)标准接口通信配置 完成标准接口通信配置。

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

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

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

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

样例程序介绍

机器人简单抓取和放置的样例程序位于Mech-Vision和Mech-Viz软件安装目录下 Mech-Center/Robot_Interface/YASKAWA/sample 文件夹内。

在示教器中,以下样例程序代码中的 ARGF 会显示为英文括号。

按照使用方式分为三类。

使用 Mech-Vision 进行视觉识别并获取结果

NOP
'*****************************
'FUNCTION:simple pick and place
'with Mech-Vision
'2022-5-27
'*****************************
'clear I50 to I69
CLEAR I050 20
'Initialize p variables
SUB P070 P070
SUB P071 P071
'set  200mm to Z
SETE P070 (3) 200000
'move to the home position
MOVJ C00000 VJ=80.00
'move to the camera position
MOVJ C00001 VJ=80.00 PL=0
'set ip address of IPC
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
TIMER T=0.20
CALL JOB:MM_OPEN_SOCKET
'set vision recipe
CALL JOB:MM_SET_MODEL ARGF"1;1"
'Run vision project
CALL JOB:MM_START_VIS ARGF"1;0;2"
'get result from Vis
CALL JOB:MM_GET_VISDATA ARGF"1;51;52"
PAUSE IF I052<>1100
'set the first pos to P071;
'set lables to I61;
'set speed to I62;
CALL JOB:MM_GET_POSE ARGF"1;71;61;62"
SFTON P070
MOVJ P071 VJ=50.00
SFTOF
MOVL P071 V=80.0 PL=0
'enable gripper
DOUT OT#(1) ON
SFTON P070
MOVJ P071 VJ=50.00
SFTOF
MOVJ C00002 VJ=80.00
'drop point
MOVJ C00003 VJ=80.00 PL=0
'release gripper
DOUT OT#(1) OFF
CALL JOB:MM_CLOSE_SOCKET
END

程序逻辑解读

  1. 完成变量初始化后,移动机器人至 Home 点。

  2. 移动到相机拍照位置。

  3. 调用 MM_INIT_SOCKET 对通信进行初始化设置。

  4. 调用 MM_OPEN_SOCKET 建立 TCP 连接。

  5. 如需设置 Mech-Vision 工程配方,添加 MM_SET_MODEL 可以设置工程配方。

  6. MM_START_VIS 触发 Mech-Vision 工程运行。

  7. 等待 1 秒。Eye To Hand 模式下,若在 MM_START_VIS 和 MM_GET_VISDATA 之间有移动步骤(MoveL 或 MoveJ),则不需要在此设置等待;Eye In Hand 模式下则必须等待 1 秒,在相机拍照完成之前保持相机静止。

  8. 调用 MM_GET_VISDATA 获取 Mech-Vision 工程的视觉结果。

  9. 判断获取视觉结果的状态码是否正常,若状态码返回异常,机器人程序将暂停或停止。

  10. 调用 MM_GET_POSE 将收到的第一个位姿保存到 P071。

  11. 移动到抓取点。

  12. 移动到抓取点和放置点之间的安全区域。

  13. 移动到固定的放置点。

  14. 调用 MM_CLOSE_SOCKET 断开 TCP 连接。

用户自定义部分

  • 定义视觉点的工具

    具体方法参考设置视觉点的工具

  • 示教拍照点

    MOVJ C00000 VJ=80.00,用户需将拍照点位置通过示教的方式记录在 C00000。

  • 示教过渡点

    MOVJ C00002 VJ=80.00, 用户需将过渡点位置通过示教的方式记录在 C00002,同时用户可添加一个或几个中间点,使机器人从抓取点移动至放置点过程中,无碰撞。

  • 定义抓取前后,放置前后的接近距离

    • 接近抓取点

      SFTON P070

      MOVJ P071 VJ=50.00

      SFTOF

      基于机器人坐标系,机器人移动到抓取点上方 200mm 处,用户需要修改偏移量(即 SETE P070 (3) 200000 行处的 200000),保证接近过程无碰撞。

    • 离开抓取点

      SFTON P070

      MOVJ P071 VJ=50.00

      SFTOF

      基于机器人坐标系,移动到抓取点上方 200mm 处,用户需要修改偏移量(即 SETE P070 (3) 200000 行处的 200000),保证离开过程无碰撞。

  • 示教放置点

    MOVJ C00003 VJ=80.00 PL=0,用户需将放置点位置通过示教的方式记录在 C00003。

  • 定义夹具动作

    DOUT OT#(1) ON 与 DOUT OT#(1) OFF,在移动到抓取点和放置点时,用户需添加夹具控制逻辑用以打开或关闭夹具。

使用 Mech-Viz 规划路径

NOP
'*****************************
'FUNCTION:simple pick and place
'with Mech-Viz
'2022-5-27
'*****************************
'clear I50 to I69
CLEAR I050 20
'Initialize p variables
SUB P070 P070
SUB P071 P071
'set  200mm to Z
SETE P070 (3) 200000
'move to the home position
MOVJ C00000 VJ=80.00
'move to the camera position
MOVJ C00001 VJ=80.00 PL=0
'set ip address of IPC
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
TIMER T=0.20
CALL JOB:MM_OPEN_SOCKET
'set vision recipe
CALL JOB:MM_SET_MODEL ARGF"1;1"
TIMER T=0.20
'Run Viz project
CALL JOB:MM_START_VIZ ARGF"1"
TIMER T=0.20
CALL JOB:MM_SET_BRANCH ARGF"1;1"
'get result from Viz
TIMER T=1.00
CALL JOB:MM_GET_VIZDATA ARGF"2;51;52;53"
PAUSE IF I053<>2100
'set the first pos to P071;
'set lables to I61;
'set speed to I62;
CALL JOB:MM_GET_POSE ARGF"1;71;61;62"
SFTON P070
MOVJ P071 VJ=50.00
SFTOF
MOVL P071 V=80.0 PL=0
'enable gripper
DOUT OT#(1) ON
SFTON P070
MOVJ P071 VJ=50.00
SFTOF
MOVJ C00002 VJ=80.00
'drop point
MOVJ C00003 VJ=80.00 PL=0
'release gripper
DOUT OT#(1) OFF
CALL JOB:MM_CLOSE_SOCKET
END

程序逻辑解读

此样例使用 Mech-Viz 进行视觉引导抓取,然后放置到固定的放置点。

  1. 移动机器人至 Home 点。

  2. 移动到相机拍照位置。

  3. 调用 MM_INIT_SOCKET 对通信进行初始化设置。

  4. 调用 MM_OPEN_SOCKET 建立 TCP 连接。

  5. 如需设置 Mech-Vision 工程配方,添加 MM_SET_MODEL 可以设置工程配方。

  6. 调用 MM_START_VIZ 触发 Mech-Viz 工程运行。

  7. 调用 MM_SET_BRANCH 设置 Mech-Viz 工程中的分支步骤走指定的出口。

  8. 调用 MM_GET_VIZDATA 获取 Mech-Viz 工程规划的移动路径。

  9. 判断获取规划路径的状态码是否正常,若状态码返回异常,机器人程序将暂停或停止。

  10. 调用 MM_GET_POSE 将收到的第一个位姿保存到 P071。

  11. 移动到抓取点。

  12. 移动到抓取点和放置点之间的安全区域。

  13. 移动到固定的放置点。

  14. 调用 MM_CLOSE_SOCKET 断开 TCP 连接。

用户自定义部分

  • 定义视觉点的工具

    具体方法参考设置视觉点的工具

  • 示教拍照点

    MOVJ C00004 VJ=80.00,用户需将拍照点位置通过示教的方式记录在 C00004。

  • 示教过渡点

    MOVJ C00006 VJ=80.00, 用户需将过渡点位置通过示教的方式记录在 C00006,同时用户可添加一个或几个中间点,使机器人从抓取点移动至放置点过程中,无碰撞。

  • 定义抓取前后,放置前后的接近距离

    • 接近抓取点

      SFTON P070

      MOVJ P071 VJ=50.00

      SFTOF

      基于机器人坐标系,机器人移动到抓取点上方 200mm 处,用户需要修改偏移量(即 SETE P070 (3) 200000 行处的 200000),保证接近过程无碰撞。

    • 离开抓取点

      SFTON P070

      MOVJ P071 VJ=50.00

      SFTOF

      基于机器人坐标系,移动到抓取点上方 200mm 处,用户需要修改偏移量(即 SETE P070 (3) 200000 行处的 200000),保证离开过程无碰撞。

  • 示教放置点

    MOVJ C00007 VJ=80.00 PL=0,用户需将放置点位置通过示教的方式记录在 C00007。

  • 定义夹具动作

    DOUT OT#(1) ON 与 DOUT OT#(1) OFF,在移动到抓取点和放置点时,用户需添加夹具控制逻辑用以打开或关闭夹具。

使用 Mech-Vision “路径规划”步骤获取规划路径

NOP
'*****************************
'FUNCTION:105_GET_VISPATH
'with Mech-Vision
'2023-1-9
'*****************************
'clear I50 to I69
CLEAR I050 20
'Initialize p variables
SUB P070 P070
SUB P071 P071
SUB P072 P072
'move to the home position
MOVJ C00000 VJ=80.00
'move to the camera position
MOVJ C00001 VJ=80.00 PL=0
'set ip address of IPC
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
TIMER T=0.20
CALL JOB:MM_OPEN_SOCKET
'set vision recipe
CALL JOB:MM_SET_MODEL ARGF"1;1"
TIMER T=0.20
'Run vision project
CALL JOB:MM_START_VIS ARGF"1;0;3;90"
TIMER T=1.00
'get result from Vis
CALL JOB:MM_GET_VISPATH ARGF"1;2;51;52;53"
TIMER T=0.20
'Validation Status
PAUSE IF I053<>1103
'set the first pos to P070;
'set lables to I61;
'set speed to I62;
CALL JOB:MM_GET_POSE ARGF"1;70;61;62"
'set the second pos to P071;
'set lables to I63;
'set speed to I64;
CALL JOB:MM_GET_POSE ARGF"2;71;63;64"
'set the third pos to P072;
'set lables to I65;
'set speed to I66;
CALL JOB:MM_GET_POSE ARGF"3;72;65;66"
MOVJ P070 VJ=50.00
MOVL P071 V=80.0 PL=0
'enable gripper
DOUT OT#(1) ON
MOVJ P072 VJ=50.00
MOVJ C00002 VJ=80.00
'drop point
MOVL C00003 V=500.0 PL=0
'release gripper
DOUT OT#(1) OFF
CALL JOB:MM_CLOSE_SOCKET
END

程序逻辑解读

此样例使用 Mech-Vision “路径规划”步骤获取规划路径,从而进行抓取,然后放置到固定的放置点。

  1. 完成变量初始化后,移动机器人至 Home 点。

  2. 移动到相机拍照位置。

  3. 调用 MM_INIT_SOCKET 对通信进行初始化设置。

  4. 调用 MM_OPEN_SOCKET 建立 TCP 连接。

  5. 如需设置 Mech-Vision 工程配方,添加 MM_SET_MODEL 可以设置工程配方。

  6. MM_START_VIS 触发 Mech-Vision 工程运行。

  7. 等待 1 秒。Eye To Hand 模式下,若在 MM_START_VIS 和 MM_GET_VISDATA 之间有移动步骤(MoveL 或 MoveJ),则不需要在此设置等待;Eye In Hand 模式下则必须等待 1 秒,在相机拍照完成之前保持相机静止。

  8. 调用 MM_GET_VISPATH 获取 Mech-Vision “路径规划”步骤获取规划路径(此样例得到三个路径点,其中第二个点为抓取点)。

  9. 判断获取规划路径的状态码是否正常,若状态码返回异常,机器人程序将暂停或停止。

  10. 调用 MM_GET_POSE 将收到的路径点数据保存至不同变量中。

  11. 移动到抓取点。

  12. 移动到抓取点和放置点之间的安全区域。

  13. 移动到固定的放置点。

  14. 调用 MM_CLOSE_SOCKET 断开 TCP 连接。

用户自定义部分

  • 定义视觉点的工具

    具体方法参考设置视觉点的工具

  • 示教拍照点

    MOVJ C00009 VJ=80.00 PL=0,用户需将拍照点位置通过示教的方式记录在 C00009。

  • 示教放置点

    MOVL C00011 V=500.0 PL=0,用户需将放置点位置通过示教的方式记录在 C00011。

  • 定义夹具动作

    DOUT OT#(1) ON 与 DOUT OT#(1) OFF,在移动到抓取点和放置点时,用户需添加夹具控制逻辑用以打开或关闭夹具。

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。