myGripper H100 三指灵巧手
1 产品展示
2 产品简介
myGripper H100 是深圳市大象机器人科技有限公司专门为机器人科研、教学等应用场景所开发的一款三指灵巧手。H100 配备有 6 个高性能数字伺服电机,能够实现输出力矩、运动速度、绝对位置等多参数的控制。H100 支持 100Hz 高频通信,可在抓取过程中实时读取状态信息,充分满足科研场景对于数据收集的需求。
3 适配机型
ER myCobot Pro 630
ER Mercury 系列
4 适用场景
精密抓取:拿取水果、食物、工具器材等多种物品
肢体互动:结合机器人实现点赞、打招呼、手势控制等动作
实验操作:在实验室中进行精密操作和实验演示
教学演示:用于机器人课程中的实践教学
5 规格说明
产品规格参数
名称 | myGripper H100 三指灵巧手 |
---|---|
握持范围 | 0 - 130mm |
指尖数 | 3指,分别对应人手的:拇指 食指 无名指 |
使用寿命 | 10W次及以上 |
可活动关节 | 6个 |
电机类型 | 伺服舵机,支持电流、位置、速度控制 |
重量 | 780g |
额定负载 | 500g |
电源参数 | 24V2A |
固定方法 | 螺丝固定 |
使用环境要求 | 常温常压 |
控制接口 | RS485控制 |
线缆接口型号 | M8-8PIN |
引脚线序说明
编号1,5 连接GND与24V,编号2,3 为控制 IO 输入,编号6,7 为 IO 输出,编 号4,8为485 通信,是与灵巧手接收与发送指令
注意事项:
请根据线标区分线序,如出现线标丢失、脱落、遗忘等情况,请联系我 司工作人员,配合确定线序。如不联系我司工作人员,因接错线序,导致灵巧手 损坏,后果自负
5.1 工作原理
在电机的驱动下,机械手的手指表面做直线往复运动,实现打开或关闭动作。通过设置夹持力矩,使工件的冲击最小,定位点可控,夹紧可控。
5.3 控制方式
USB-485模块接线:
连接灵巧手端的 24V,GND, 485_A(T/R+,485+) , 485_B(T/R-,485-)共 4 根线,电源为24V直流稳压电源,将模块的 USB 插口插入到电脑的 USB 接口
485A 接入 485 转 USB 模块 A+;
485B 接入 485 转 USB 模块 B-;
24V 接入 24V 直流稳压电源正极;
GND 接入 24V 直流稳压电源负极
串口控制方法
串口调试助手调试:
用户可用UartAssist串口调试助手,参考下图发送相应的灵巧手指令,CRC校验码无需填写,UartAssist串口调试助手会自动生成。
灵巧手串口默认配置
- 灵巧手 ID:14
- 波特率:115200
- 数据位:8
- 停止位:1
- 校验位:无校验位
灵巧手采用自定义协议,一条指令由帧头(2byte),长度(1byte),地址码 ID(1byte),功能码(1byte),寄存器地址(2byte),寄存器数据(2*n个byte),校验码(2byte),我们以读取灵巧手角度为例
帧头 | 长度 | ID | 功能码 | 寄存器地址 | 寄存器数据/参数 | CRC-16MODBUS校验码 |
---|---|---|---|---|---|---|
Fe Fe | 08 | 0e | 03 | 00 0C | 00 01 | 71 01 |
帧头:254 254
长度:指令长度 08
ID: 0E,可以在设备中修改,默认 ID 为 14 ,0E 代表灵巧手当前 ID 为 14
功能码:识别指令是设置还是获取功能,06(对寄存器进行写操作)/03(对寄存器进行读操作)。
寄存器地址:00 0c 灵巧手功能对应寄存器地址
寄存器参数:00 01 若是读取,只需填写舵机的ID,若是设置,需要填写舵机的ID和写入的参数
CRC 校验:71 01 保证终端设备不去响应那些在传输过程中发生改变的数据,保证系统的安全性和效率,CRC 校验采用 16 位的循环余方法 。将帧头,长度,功能码,寄存器地址,寄存器参数所有16进制直接进行校验得到 71 01 校验码。
命令总览
读取固件主版本号
指令:fe fe 08 0e 03 00 01 00 00 72 51
功能码:03 读操作
参数:无
返回:fe fe 08 0e 03 00 01 00 01 B2 90
标注:数据返回 00 01,返回版本号为 1
读取固件次版本号
指令:FE FE 08 0E 03 00 02 00 00 72 A1
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 02 00 01 B2 60
标注:数据返回 00 01,表示返回版本号为 1
设置/读取设备 ID 号
设置
指令:FE FE 08 0E 06 00 03 00 0E 76 BD
功能码:06 写操作
参数:00 0E,ID 设置范围(1-254)
返回:FE FE 08 0E 06 00 03 00 01 72 FD
标注:成功返回 00 01,失败返回 00 00,设备 ID 修改后,指令中的 ID 也需要修改 成一样才可以通信
读取
指令:FE FE 08 0E 03 00 04 00 00 73 41
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 04 00 0E B7 C0
标注:数据返回 00 0E,表示当前灵巧手 ID 号
设置/读取 485 波特率
设置
指令:FE FE 08 0E 06 00 05 00 00 73 1D
功能码:06 写操作
参数:参数 00 00,0-115200,1-1000000,2-57600,3-19200,4-9600,5-4800, 如设置为 1000000,参数改为 00 01
返回:FE FE 08 0E 06 00 05 00 01 72 FD
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 06 00 00 B3 E0
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 06 00 00 B3 E0
标注:返回数据 00 00,与设值参数对应波特率的值
设置灵巧手使能状态
指令:FE FE 08 0E 06 00 0A 00 00 B0 EC
功能码:06 写操作
参数:00 00, 00 表示断使能, 00 01 表示使能
返回:FE FE 08 0E 06 00 0A 00 01 70 2D
标注:成功返回 00 01,失败返回 00 00
设置/读取灵巧手角度
设置
指令:FE FE 0A 0E 06 00 0B 00 01 00 64 FF 39
功能码:06 写操作
参数:00 01 00 64,设置舵机1角度为100
返回:FE FE 08 0E 06 00 0B 00 01 B0 7C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 0C 00 01 71 01
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 0C 00 64 5A C1
标注:返回数据 00 64,表示当前角度为 100,全开状态
设置舵机零位
指令:FE FE 08 0E 06 00 0D 00 01 B1 9C
功能码: 06 写操作
参数:00 01 设置舵机1零位
返回:FE FE 08 0E 06 00 0D 00 01 B1 9C
标注:成功返回 00 01,失败返回 00 00
读取灵巧手夹持状态
指令:FE FE 08 0E 03 00 0E 00 00 71 61
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 0E 00 01 B1 A0
标注:00 01,返回数据 0为正在运动 ,1为停止运动,未检测到夹到物,2为停止运动,检测到夹住物体,3为检测到夹住物体,物体掉落
设置/读取舵机 P 值
设置
指令:FE FE 0A 0E 06 00 0F 00 01 00 64 3F C8
功能码:06 写操作
参数:00 01 00 64,设置舵机1 P 值为 100,设置范围(1-254)
返回:FE FE 08 0E 06 00 0F 00 01 71 3D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 10 00 01 B7 C0 功能码:03 读操作 参数:00 01 舵机1 返回:FE FE 08 0E 03 00 10 00 64 9C 00 标注:返回数据 00 64,表示当前 P 值为 100
设置/读取舵机 D 值
设置
指令:FE FE 0A 0E 06 00 11 00 01 00 64 3D 60
功能码:06 写操作
参数:00 01 00 64,设置舵机1 D 值为 100,设置范围(1-254)
返回:FE FE 08 0E 06 00 11 00 01 77 5D
标注:成功返回 00 01,失败返回 00 00
若灵巧手出现抖动,可适当增大 D 值
读取
指令:FE FE 08 0E 03 00 12 00 01 77 61
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 12 00 64 5C A1
标注:返回数据 00 64,表示当前 D 值为 100
设置/读取舵机 I 值
设置
指令:FE FE 0A 0E 06 00 13 00 01 00 00 16 18
功能码:06 写操作
参数:00 01 00 00,设置舵机1 I 值为 0,设置范围(1-254)
返回:FE FE 08 0E 06 00 13 00 01 B7 FC
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 14 00 01 76 81
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 14 00 00 B6 40
标注:返回数据 00 00,表示当前 I 值为 0
设置/读取舵机顺时针可运行误差
设置
指令:FE FE 0A 0E 06 00 15 00 01 00 03 17 D0
功能码:06 写操作
参数:00 01 00 03,设置舵机1的误差值为 3,设置范围(0-16)
返回:FE FE 08 0E 06 00 15 00 01 B6 1C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 16 00 01 B6 20
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 16 00 01 B6 20
标注:返回数据 00 01,表示当前值为 1
设置/读取舵机逆时针可运行误差
设置
指令:FE FE 0A 0E 06 00 17 00 01 00 03 D7 A9
功能码:06 写操作
参数:00 01 00 03,设置舵机的误差值为 3,设置范围(0-16)
返回:FE FE 08 0E 06 00 17 00 01 76 BD
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 18 00 01 75 41
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 18 00 01 75 41
标注:返回数据 00 01,表示当前值为 1
设置/读取舵机最小启动力
设置
指令:FE FE 0A 0E 06 00 19 00 01 00 18 1D 80
功能码: 06 写操作
参数:00 01 00 18 设置舵机1的值为24
返回:FE FE 08 0E 06 00 19 00 01 B5 DC
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 1A 00 01 B5 E0
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 1A 00 18 7F 21
标注:返回数据 00 18,表示当前值为 24
设置/读取舵机扭矩
设置
指令:FE FE 0A 0E 06 00 1B 00 01 00 64 3C F8
功能码: 06 写操作
参数:00 01 00 64 设置舵机1扭力为 100,参数范围(0-100)
返回:FE FE 08 0E 06 00 1B 00 01 75 7D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 1C 00 01 B4 00
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 1C 01 2C 39 C1
设置/读取舵机速度
设置
指令:FE FE 0A 0E 06 00 20 00 01 00 14 1D 1C
功能码: 06 写操作
参数:00 01 00 14 设置舵机1速度为 20,参数范围(1-100)
返回:FE FE 08 0E 06 00 20 00 01 B8 0C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 21 00 01 78 91
功能码:03 读操作
参数:00 01 舵机1
返回:FE FE 08 0E 03 00 21 00 32 6D D1
标注:00 32 数据返回为 50
设置灵巧手手势
设置
指令:FE FE 08 0E 06 00 34 01 01 00 35 EC
功能码: 06 写操作
参数:01 01 设置手势(0-4),手势闭合程度(0-5)
返回:FE FE 08 0E 06 00 34 00 01 B8 0C
标注:成功返回 00 01,失败返回 00 00
设置/读取灵巧手角度
设置
指令:FE FE 12 0E 06 00 2D 00 00 00 00 00 00 00 00 00 00 00 00 00 14 23 FC
功能码: 06 写操作
参数:00 00 00 00 00 00 00 00 00 00 00 00 00 14 前面12个字节代表角度(0-100),最后两个字节代表速度 (0-100)
返回:FE FE 08 0E 06 00 2D 00 01 7B 9D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 32 00 00 7D A1
功能码:03 读操作
参数:无
返回:FE FE 0C 0E 03 00 32 00 00 00 01 00 00 00 00 00 01 00 00 84 74
标注:00 00 00 01 00 00 00 00 00 01 00 00 数据返回为 [0, 1, 0, 0, 1, 0]
python USB转485模块控制
驱动库安装 点击下载驱动库
串口依赖库安装
在电脑终端执行下面命令,安装依赖库
pip install pyserial
API说明
get_gripper_firmware_version()
- 功能: 获取夹爪固件主版本号
- 参数: 无
- 返回:
(int)
固件主版本号
get_gripper_modified_version()
- 功能: 获取夹爪固件次版本号
- 参数: 无
- 返回:
(int)
固件次版本号
get_gripper_gripper_Id()
- 功能: 获取夹爪ID
- 参数: 无
- 返回:
(int)
夹爪ID
get_gripper_gripper_baud()
- 功能: 获取夹爪波特率
- 参数: 无
- 返回:
(int)
0-50
: 1152001
: 10000002
: 576003
: 192004
: 96005
: 4800
get_gripper_joint_angle(id)
- 功能: 获取夹爪的当前位置数据信息
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的当前位置数据
get_gripper_status()
- 功能: 获取夹爪的当前状态
- 参数: 无
- 返回:
(int)
0-30
: 正在运动1
: 停止运动,未检测到夹到物体2
: 停止运动,检测到夹到了物体3
: 检测到夹到物体以后,物体掉落
get_gripper_joint_speed(id)
- 功能: 获取夹爪关节ID的当前速度
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的当前速度
get_gripper_joint_P(id)
- 功能: 获取夹爪关节ID的PID的P值
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的PID的P值
get_gripper_joint_I(id)
- 功能: 获取夹爪关节ID的PID的I值
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的PID的I值
get_gripper_joint_D(id)
- 功能: 获取夹爪关节ID的PID的D值
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的PID的D值
get_gripper_joint_cw(id)
- 功能: 获取夹爪关节ID的顺时针可运行误差
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的顺时针可运行误差
get_gripper_joint_cww(id)
- 功能: 获取夹爪关节ID的逆时针可运行误差
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的逆时针可运行误差
get_gripper_joint_mini_pressure(id)
- 功能: 获取夹爪关节ID的最小启动力
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的最小启动力
get_gripper_joint_mini_pressure(id)
- 功能: 获取夹爪关节ID的最小启动力
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
夹爪关节ID的最小启动力
get_gripper_angles()
- 功能: 获取夹爪6个关节的角度
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(list)
夹爪6个关节的角度
set_gripper_Id(value)
- 功能: 设置夹爪ID号
- 参数:
value
:(int)
夹爪ID,取值范围1-254
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_baud(value)
- 功能: 设置夹爪波特率
- 参数:
value
:(int)
夹爪波特率,取值范围0-5
0
: 1152001
: 10000002
: 576003
: 192004
: 96005
: 4800
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_enable(value)
- 功能: 设置夹爪使能状态
- 参数:
value
:(int)
使能状态,取值范围0-1
0
: 掉使能1
: 上使能
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_calibration(id)
- 功能: 设置夹爪关节ID零位校准
- 参数:
id
:(int)
夹爪关节ID,取值范围1-6
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_P(id,value)
- 功能: 设置夹爪关节ID的PID的P值
- 参数:
id
:(int)
关节ID,取值范围1-6
value
:(int)
P值,取值范围0-254
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_I(id,value)
- 功能: 设置夹爪关节ID的PID的I值
- 参数:
id
:(int)
关节ID,取值范围1-6
value
:(int)
I值,取值范围0-254
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_D(id,value)
- 功能: 设置夹爪关节ID的PID的D值
- 参数:
id
:(int)
关节ID,取值范围1-6
value
:(int)
D值,取值范围0-254
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_cw(id,value)
- 功能: 设置夹爪关节ID的顺时针可运行误差
- 参数:
id
:(int)
关节ID,取值范围1-6
value
:(int)
误差,取值范围0-16
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_cww(id,value)
- 功能: 设置夹爪关节ID的逆时针可运行误差
- 参数:
id
:(int)
关节ID,取值范围1-6
value
:(int)
误差,取值范围0-16
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_mini_pressure(id,value)
- 功能: 设置夹爪关节ID的最小启动力
- 参数:
id
:(int)
关节ID,取值范围1-6
value
:(int)
最小启动力,取值范围0-254
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_torque(id,value)
- 功能: 设置夹爪关节ID的扭矩
- 参数:
id
:(int)
关节ID,取值范围1-6
value
:(int)
扭矩,取值范围0-300
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_joint_speed(id,speed)
- 功能: 设置夹爪关节ID的速度
- 参数:
id
:(int)
关节ID,取值范围1-6
speed
:(int)
速度,取值范围1-100
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_angles(angles,speed)
- 功能: 设置夹爪全关节角度
- 参数:
angles
:(list)
6个关节角度,每个关节角度取值范围0-100
speed
:(int)
速度,取值范围1-100
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_action(value)
- 功能: 设置夹爪捏合动作
- 参数:
value
:(int)
动作,取值范围0-3
0
:食指与拇指捏合1
: 中指于拇指捏合2
: 三指握住3
: 双指夹持
- 返回:
(int)
0-10
: 失败1
: 成功
set_gripper_pose(pose,value,flag)
- 功能: 设置夹爪捏合动作及开合程度
参数:
pose
:(int)
动作,取值范围0-3
0
:食指与拇指捏合1
: 中指于拇指捏合2
: 三指握住3
: 双指夹持
value
:(int)
开合程度,取值范围0-5
,合拢程度,等级越高越合拢flag
:(int)
空闲标志,标志1时,空闲手指可自由操控
返回:
(int)
0-10
: 失败1
: 成功
测试程序
from MyHand import MyGripper_H100
import time
if __name__=="__main__":
g=MyGripper_H100("COM27",baudrate=115200,id=14)##填写实际的串口号和波特率和夹爪ID
print("夹爪的实际ID为:",g.get_gripper_Id())
print(g.set_gripper_joint_angle(0,50))
time.sleep(2)
print(g.set_gripper_joint_angle(0,0))
time.sleep(2)
6 场景案例
基于USB-485模块python控制案例