7.1.1 夹爪

产品图示

图10

工作原理

  • 由电机驱动,夹爪的指面作直线往复运动来实现张开或闭合动作的,电动夹爪的加减速可控,对工件的冲击可以减至最小,定位点位可控,夹持可控。

购买链接

适用物体

  • 小方块
  • 小球
  • 长条物体

技巧 可以在夹爪指尖粘贴橡胶,以获得更好的摩擦力。

安装图示

图11

产品安装教程

  • 第一步:

    使用乐高科技件将夹爪固定在机械臂顶部。

  • 第二步:

    连接到M5 Basic的末端执行器扩展接口(在安装图示中有标注)。

注意事项

  • 请确保产品已经按照说明连接成功
  • 请确保产品供电为附带适配器供电
  • 请确保电源适配器能正常工作

Arduino 环境下使用夹爪

  1. 电气连接

    • 夹爪引脚与 Basic的末端执行器扩展接口连接
  2. 新建一个Arduino程序,内容如下:

// 此文件用于mycobot设备控制末端夹爪运动,对应烧录设备为Basic
// 烧录前请将夹爪张开至最大角度
//导入相关库:
#include <MycobotBasic.h>
#include <ParameterList.h>
//实例化函数:
MycobotBasic myCobot;   
//初始化函数:
//编写setup函数,只在设备打开时执行一次setup函数:
void setup() {
  myCobot.setup();
  delay(10);
  myCobot.powerOn();
  delay(10);
  myCobot.setGripperIni();                          //设定夹爪当前位置电位值为2048
  delay(20);
  Serial.begin(9600);
}
//主体函数
//编写loop函数,程序循环执行loop函数:
void loop() {
    myCobot.setEncoder(7,2048);                     //设定末端夹爪打开至2048电位值
    delay(2000);
    Serial.println(myCobot.getGripperValue());      //读取末端夹爪电位值
    delay(50);
    myCobot.setEncoder(7,1700);                     //设定末端夹爪打开至1700电位值
    delay(2000);
    Serial.println(myCobot.getGripperValue());      //读取末端夹爪电位值
    delay(50);
}

Python 环境下使用夹爪

一、API 简介

1、 is_gripper_moving()

函数功能:判断夹爪是否正在运行。

返回参数:

1表示正在运行,0 表示没有运行,-1 表示出错

2、 set_encoder(joint_id, encoder)

函数功能:让指定关节点转动到指定位置

参数说明:

joint_id:取值范围 1~7,分别表示 1~6 个关节点以及夹爪。

encoder:取值范围 0~4096,2048 表示角度时的 0。

3、 set_encoders(encoders, sp)

函数功能:让机械臂移动到指定位置。

参数说明:

encoders:六个 int 元素的 list 集合,六个 encoder 数据的顺序分别代表 1~6 个关节点的位置。

sp:表示机械臂转动的速度。

4、 get_encoder(joint_id)

函数功能:获取指定关节点的 encoder 数据。

参数说明:

joint_id:取值范围 1~7,分别表示 1~6 个关节点以及夹爪。

返回值:

encoder:表示该关节的 encoder 数据信息。

5、 set_gripper_value(value, speed)

函数功能:让夹爪以指定的速度转动到指定的位置。

参数说明:

value:表示夹爪所要到达的位置,取值范围 0~4096。

speed:表示以多少的速度转动,取值范围 0~100。

6、 get_gripper_value()

函数功能:获取夹爪的encoder数据信息。

返回值:

encoder:夹爪的数据信息。

7、 set_gripper_state(flag, speed)

函数功能:让夹爪以指定的速度达到指定的状态。

参数说明:

flag:1 表示夹爪合拢,0 表示夹爪打开。

speed:表示以多快的速度达到指定的状态,取值范围 0~100。

二、代码内容

from pymycobot import PI_PORT, PI_BAUD  # 当使用树莓派版本的mycobot时,可以引用这两个变量进行MyCobot初始化
from pymycobot.mycobot import MyCobot
import time
def gripper_test(mc):
    print("Start check IO part of api\n")
    # 检测夹爪是否正在移动
    flag = mc.is_gripper_moving()
    print("Is gripper moving: {}".format(flag))
    time.sleep(1)

    # Set the current position to (2048).
    # Use it when you are sure you need it.
    # Gripper has been initialized for a long time. Generally, there
    # is no need to change the method.
    # mc.set_gripper_ini()
    # 设置关节点1,让其转动到2048这个位置
    mc.set_encoder(1, 2048)
    time.sleep(2)
    # 设置六个关节位,让机械臂以20的速度转动到该位置
    mc.set_encoders([1024, 1024, 1024, 1024, 1024, 1024], 20)
    time.sleep(3)
    # 获取关节点1的位置信息
    print(mc.get_encoder(1))
    # 设置夹爪转动到2048这个位置
    mc.set_encoder(7, 2048)
    time.sleep(3)
    # 设置夹爪让其转到1300这个位置
    mc.set_encoder(7, 1300)
    time.sleep(3)

    # 以70的速度让夹爪到达2048状态
    mc.set_gripper_value(2048, 70)
    time.sleep(3)
    # 以70的速度让夹爪到达1500状态
    mc.set_gripper_value(1500, 70)
    time.sleep(3)

    # 设置夹爪的状态,让其以70的速度快速打开爪子
    mc.set_gripper_state(0, 70)
    time.sleep(3)
    # 设置夹爪的状态,让其以70的速度快速收拢爪子
    mc.set_gripper_state(1, 70)
    time.sleep(3)

    # 获取夹爪的值
    print("")
    print(mc.get_gripper_value())

if __name__ == "__main__":
    # 初始化一个MyCobot对象
    mc = MyCobot(PI_PORT, PI_BAUD)
    # 让其移动到零位
    mc.set_encoders([2048, 2048, 2048, 2048, 2048, 2048], 20)
    time.sleep(3)
    gripper_test(mc)

Roboflow 环境下使用夹爪

1、登录RoboFlow

图1.png

2、点击创建空项目

图2.png

3、选择基础功能点击夹爪

图3.png

  • 用户通过一个简单的功能定义和控制夹爪。
    • 选择夹爪
    • 设置已存在夹爪
    • 选择夹爪,可以对已有夹爪进行编辑或者删除。
    • 定义新夹爪如下图所示,可以命名夹爪,同时控制多个输入信号:设置需要控制的输出信号的数量、在“设置”中选择设置第几个信号、设置状态(关系到具体执行时对应“打开”或“关闭”功能)、设置对应输出信号。在设置完成后,还可以选择等待条件。

图4.png

  • 设置已保存状态
    • 完全打开:执行夹爪定义中为“打开”状态的选项。
    • 完全关闭:执行夹爪定义中为“关闭”状态的选项。 调试控制
    • 打开夹爪:手动操作执行夹爪定义中为“打开”状态的选项。
    • 关闭夹爪:手动操作执行夹爪定义中为“关闭”状态的选项。

4、设置对应参数

图5.png

  • 1.设置程序数量
  • 2.设置程序ID
  • 3.设置夹爪打开或者关闭
  • 4.设置运行模式KEEP保持在设置状态
  • 5.执行后等待时间,建议设置在2s-5s

5、点击关闭切换到关闭的设置

图6.png

6、等待

  • 如下图所示,等待指令一共有四种模式。
    • 等待时间:可以设置延时时间,单位为秒。
    • 等待输入信号:对输入信号的状态进行判断,除非符合已设置的输入信号状态条件,否则一直等待。
    • 等待输出信号:对输出信号的状态进行判断,除非符合已设置的输出信号状态条件,否则一直等待。
    • 等待条件:可以自定义等待条件,除非符合等待条件,否则一直等待。

图7.png

7、设置

  • 如下图所示,设置指令有四种模式的选择。
    • 设置PIN:设置输出信号的状态,除了选择设置的输出信号,确定其是打开或关闭的状态,还可以设置该信号保持的时间。
    • 设置条件:自定义设置的内容。
    • 设置TCP(即工具中心点)。
    • 设置载荷。

图8.png

8、组合

  • 如下图所示,组合指令提供了常用组合模板,例如抓取和放置组合。

图9.png

  • 用户使用组合模板时,例如使用抓取和放置模板,可以直接在模板程序的基础上修改参数、示教路点等,也可以根据需求自由增删指令。 使用组合模板可以简化用户查找指令的过程,更方便快捷完成对应项目的编程。

Myblock 环境下使用夹爪

  1. 案例介绍

    • 通过调用mycobot的Set_Gripper_State函数分别让夹爪进行10次张开收拢操作,并且在每组张开收拢后对其进行角度调位。
  2. demo内容

图片3.png

Seria 环境下使用夹爪

1、通信协议与数据结构

  • 读取夹爪角度
数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X02
Data[3] 指令帧 0X65
Data[4] 结束帧 0XFA

串口发送实例:FE FE 02 65 FA

返回数据结构

数据域 说明 数据
Data[0] 返回识别帧 0XFE
Data[1] 返回识别帧 0XFE
Data[2] 返回数据长度帧 0X04
Data[3] 指令帧 0X65
Data[4] 角度值高位 Value_high
Data[5] 角度值低位 Value_low
Data[6] 结束帧 0XFA
  • 设置夹爪模式
数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X04
Data[3] 指令帧 0X66
Data[4] 夹爪开合 0X00/0X01
Data[5] 速度 Sp
Data[6] 结束帧 0XFA

设置夹爪以20的速度张开

串口发送示例:FE FE 04 66 00 20 FA

无返回值

  • 设置夹爪角度
数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X05
Data[3] 指令帧 0X67
Data[4] 角度值高位 Angle_high
Data[5] 角度值低位 Angle_low
Data[6] 速度 Sp
Data[7] 结束帧 0XFA

串口发送示例:FE FE 05 67 00 00 60 FA

Gripper_data:数据类型byte 取值范围0-1

无返回值

  • 夹爪设置零点
数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X02
Data[3] 指令帧 0X68
Data[4] 结束帧 0XFA

设置夹爪当前位置为零点

串口发送示例:FE FE 02 68 FA

  • 检测夹爪是否运动
数据域 说明 数据
Data[0] 识别帧 0XFE
Data[1] 识别帧 0XFE
Data[2] 数据长度帧 0X02
Data[3] 指令帧 0X69
Data[4] 结束帧 0XFA

串口发送示例:FE FE 02 69 FA

返回数据结构

数据域 说明 数据
Data[0] 返回识别帧 0XFE
Data[1] 返回识别帧 0XFE
Data[2] 返回数据长度帧 0X03
Data[3] 指令帧 0X69
Data[4] 静止/运动 0X00/0X01
Data[5] 结束帧 0XFA

2、具体使用

  • 设置夹爪零位

    • 串口发送:FE FE 02 68 FA
  • 设置夹爪模式

    • 设置夹爪处于张开状态

    • 串口发送:FE FE 04 66 00 70 FA

    • 设置夹爪处于收拢状态

    • 串口发送:FE FE 04 66 01 70 FA

  • 读取夹爪角度

    • 串口发送:FE FE 02 65 FA

results matching ""

    No results matching ""