2026-05-26

多物体抓取变刚度软体机械手

Sawyer 机器人软体夹爪与树莓派舵机控制

基于 Sawyer 单臂协作机器人,结合气动软体手指、颗粒阻塞变刚度模块、可调爪距机构、存储传送带和树莓派舵机控制,实现对多个目标物体的连续抓取、暂存和释放。

多物体抓取机械手建模图

项目背景

传统软体机械手具有柔顺、安全和适应性强的优点,但也存在指尖力不足、抓取稳定性不足、单次只能抓取单个物体等问题。该项目提出一套用于 Sawyer 协作机器人的多物体抓取变刚度软体机械手:通过颗粒阻塞提升软体手指刚度,通过变爪距机构适配不同尺寸物体,通过存储传送带暂存已抓取目标,从而减少机器人往返次数。

设计目标

目标 实现方式 --- --- 提高软体手指输出力 在气动驱动模块底部引入颗粒阻塞变刚度模块 提高抓取稳定性 抓取后对变刚度模块施加负压,提升手指抗变形能力 适配不同物体尺寸 通过变爪距机构调节四指间距 提高多目标作业效率 通过存储传送带暂存已抓取物体,减少往返次数 保持人机协作安全性 保留软体手指柔顺接触特性

技术路线

1. 设计气动柔性驱动模块,使用 E630 成型硅胶和多腔体结构实现手指弯曲。 2. 设计颗粒阻塞变刚度模块,通过 TPU 外膜、玻璃颗粒、分隔腔室和锯齿形凸起提升刚度调节效果。 3. 设计存储机构,通过带传动和柔性凸起传送带实现目标物体暂存。 4. 使用 SolidWorks 完成机械结构建模,包括变爪距机构、存储机构、手指平移机构和 Sawyer 连接结构。 5. 搭建气路控制系统,分别控制驱动模块正压和变刚度模块负压。 6. 使用 Raspberry Pi 4B 和 Python 控制舵机,实现变爪距、存储传送和平移动作。 7. 通过最大抓取重量、最大存储重量、抓取效率和应用抓取试验验证效果。

系统工作流程

text 调整爪距 - 正压驱动手指弯曲 - 负压启动变刚度模块 - 手指平移靠近存储机构 - 存储传送带暂存物体 - 继续抓取下一个物体 - 移动至目标区域 - 反向传送并释放全部物体

系统组成

机械手采用模块化设计,主要由以下部分组成:

模块 功能 --- --- 变刚度手指 气动弯曲抓取,颗粒阻塞调节刚度 变爪距机构 通过转盘、连杆、滑块和滑轨改变四指间距 存储机构 通过带传动和柔性凸起传送带暂存已抓取物体 手指平移机构 通过齿轮齿条带动手指沿竖直方向移动 气路控制系统 正压控制手指弯曲,负压控制变刚度模块 舵机电控系统 树莓派 4B + Python 控制变爪距、存储和平移动作

机械手三个主要机构

主要创新点

方向 内容 --- --- 变刚度结构 在传统颗粒阻塞基础上加入分隔块和锯齿形凸起,降低颗粒滑移对刚度稳定性的影响 多物体抓取 将存储传送带集成到四指软体机械手中,使机械手能够连续抓取并暂存多个目标 机构协同 变爪距、手指平移和存储传送分别由舵机驱动,与气动手指协同完成抓取流程 实验验证 同时验证指尖抓取、环抱抓取、存储重量、抓取效率和家庭场景应用效果

机械设计

CAD 文件位于原仓库 cad/4指(变爪距多物体抓取)。为降低 SolidWorks 装配引用断链风险,原仓库保留了装配体、零件、模具和支架的目录结构;网站项目页只展示设计说明和关键图像,完整 CAD 工程请通过 GitHub 仓库查看。

主要装配体

文件 说明 --- --- 装配/机械手装配2(无指尖).SLDASM 机械手主体装配,包含变爪距、存储和平移等硬结构 装配/变刚度手指.SLDASM 变刚度手指装配 装配/变刚度手指2(截图用).SLDASM 用于展示或截图的变刚度手指装配 装配/手指平移.SLDASM 手指竖直平移机构 装配/存储物体.SLDASM 存储机构相关装配

结构模块

模块 对应 CAD 内容 --- --- 变爪距机构 转盘.SLDPRT、变爪距连杆.SLDPRT、滑块2.SLDPRT、平移滑轨2.1.SLDPRT、平移滑轨2.2.SLDPRT 存储机构 传送带.SLDPRT、传动带1.SLDPRT、传送带轮.SLDPRT、传送带支架.SLDPRT、存储机构连杆.SLDPRT 手指平移机构 底座5(带齿条).SLDPRT、平移机构齿轮.SLDPRT、手指平移.SLDASM 软体手指与模具 柔性驱动模块(截图用).SLDPRT、柔性手指模具/ 支架与连接 支架/、连接座.SLDPRT、长连接座.SLDPRT 舵机占位模型 SG90舵机.SLDPRT、舵机槽3.SLDPRT

结构说明

机械手采用四指结构,四指分布于存储机构两侧,以减少手指与存储机构之间的干涉。整体结构由变刚度手指、变爪距机构、存储机构和手指平移机构组成。

气囊结构参数示意图

变爪距机构通过转盘和连杆把舵机旋转运动转换为滑块沿滑轨的直线运动。存储机构通过带传动把舵机动力传递到存储传送带,传送带表面的柔性凸起物与目标物体接触并提供暂存力。手指平移机构通过齿轮齿条把舵机旋转转换为手指底座的竖直直线运动。

存储传送带结构及尺寸参数

制备信息

部件 制备方式或材料 --- --- 驱动模块 E630 成型硅胶,多步成型法 变刚度骨架 TPU 材料,3D 打印 变刚度外膜 0.1 mm TPU 薄膜 填充颗粒 4 mm 玻璃球 存储传送带 浇注法制备,T 形存储模块和圆形截面硅胶毛发 硬结构零件 光固化 3D 打印,ZR680 光固化树脂

控制系统

抓取系统由气路控制系统和舵机电控系统两部分组成。气路控制系统负责手指弯曲和刚度调节,舵机电控系统负责变爪距、存储传送和手指平移动作。

气路控制系统

气路 作用 组成 --- --- --- 正压气路 向驱动模块供气,使软体手指弯曲 空气压缩机、常闭两位两通电磁阀、带数显表调压阀 负压气路 向变刚度模块提供负压,使颗粒阻塞并提高刚度 空气压缩机、常闭两位两通电磁阀、真空发生器、带数显表调压阀

舵机电控系统

舵机系统使用 Raspberry Pi 4B 通过 Python 发送 PWM 指令,控制机械手内部舵机旋转角度和方向。选择 MG90S 舵机,代码中按照 SG90/MG90S 类 50 Hz PWM 舵机的脉宽范围进行控制。

功能 脚本 舵机 BCM GPIO --- --- --- --- 变爪距 gripperspacingcycle.py S1 12 双舵机同步动作 dualservosynccycle.py S2, S3 13, 14 四指同步动作 fourfingersynccycle.py S4-S7 15, 16, 17, 18 单舵机调试 gripperspacinghome.py, singleservos6cycle.py S1 或 S6 12 或 17 固定角度演示 examples/.py 多组 12-18

推荐接线原则

- 舵机信号线接对应 GPIO。 - 多个舵机不要直接由树莓派 5 V 引脚供电。 - 舵机红线接独立 5 V 电源,棕线或黑线接电源 GND。 - 独立电源 GND 必须与树莓派 GND 共地。 - 首次调试时先拆开机械负载,确认角度方向和限位安全后再装回机构。

关键参数与结果

指标 结果 --- :--- 变刚度模块最大刚度 2.19 N/mm at -80 kPa 变刚度手指最大弯曲角度 137.652 deg at 120 kPa 变刚度手指最大指尖力 5.17 N 指尖力提升 +140.47% compared with flexible finger 最大存储重量 128.58 g 指尖抓取最大重量 393.78 g 环抱抓取最大重量 688.45 g 抓取直径范围 106.0 mm to 155.4 mm 多物体抓取耗时降低 35.4% compared with single-object mode

实验结果

变刚度模块

参数 结果 --- --- 外膜材料 TPU 薄膜 外膜厚度 0.1 mm 填充颗粒 4 mm 玻璃球 颗粒腔室 2 个分隔块形成 3 个腔室 结构增强 变刚度骨架设置锯齿形凸起 最大测试负压 -80 kPa 最大刚度 2.19 N/mm

手指性能

指标 柔性手指 变刚度手指 --- :--- :--- 最大驱动气压 120 kPa 120 kPa 最大弯曲角度 249.031 deg 137.652 deg 最大指尖力 2.15 N 5.17 N 指尖力提升 baseline +140.47%

整机抓取性能

测试项目 结果 :-- :--- 最大存储重量 128.58 g 指尖抓取最大重量 393.78 g 环抱抓取最大重量 688.45 g 变爪距最大抓取直径 155.4 mm 变爪距最小抓取直径 106.0 mm

抓取效率

模式 任务 平均耗时 移动距离 :-- :-- :--- :--- 单物体抓取 抓取 5 个目标,抓取点到放置点 1 m 58.2 s 9 m 多物体抓取 抓取 5 个目标,抓取点到放置点 1 m 37.6 s 5 m

家庭场景抓取应用

物体 质量 姿态 成功率 :-- :--- :-- :--- 辣椒 73.10 g 抓取后暂存 90% 橘子 68.39 g 指尖抓取 96% 水果刀 73.31 g 抓取后暂存 84% 口香糖盒 121.83 g 指尖抓取 94% 润唇膏 38.62 g 抓取后暂存 90% 充电器 148.19 g 指尖抓取 78% 胶棒 76.11 g 抓取后暂存 92% 胶带 159.62 g 环抱抓取 94%

硬件与材料

- 机械平台:Sawyer 单臂协作机器人 - 主控:Raspberry Pi 4B - 舵机:MG90S / SG90 类 50 Hz PWM 舵机 - 气动驱动:空气压缩机、两位两通电磁阀、调压阀、真空发生器 - 软体手指材料:E630 成型硅胶 - 变刚度模块:TPU 外膜、玻璃颗粒、TPU 变刚度骨架 - 结构件:SolidWorks 建模,3D 打印制备

运行树莓派控制脚本

树莓派控制代码位于原仓库 software/raspberry-pi/,用于控制变爪距、双舵机同步动作和四指同步动作。

控制代码目录

text software/raspberry-pi/ servoruntime.py GPIO / PWM 公共控制逻辑 servoprograms.py 复用动作程序 gripperspacingcycle.py S1 变爪距循环动作 gripperspacinghome.py S1 单角度调试 dualservosynccycle.py S2 / S3 双舵机同步动作 fourfingersynccycle.py S4-S7 四指同步动作 singleservos6cycle.py S6 单舵机测试 examples/ 固定角度演示脚本

GPIO 分配

舵机 BCM GPIO 物理引脚 作用 --- :--- :--- :-- S1 12 32 变爪距 S2 13 33 存储机构同步动作 S3 14 8 存储机构同步动作 S4 15 10 平移机构四指同步 S5 16 36 平移机构四指同步 S6 17 11 平移机构四指同步 / 单舵机调试 S7 18 12 平移机构四指同步

在 Raspberry Pi OS 上安装依赖:

bash sudo apt update sudo apt install -y python3-rpi.gpio

或使用仓库中的 Python 依赖文件:

bash python3 -m pip install -r requirements.txt

运行示例:

bash cd software/raspberry-pi sudo python3 gripperspacingcycle.py sudo python3 dualservosynccycle.py sudo python3 fourfingersynccycle.py

接线与调试注意事项

- 多个舵机应使用独立 5 V 电源供电,不要直接依赖树莓派 5 V 引脚。 - 舵机信号线接对应 GPIO,电源 GND 必须与树莓派 GND 共地。 - 首次运行前先拆开机械负载,确认舵机方向和角度范围。 - 建议先运行 gripperspacinghome.py 或 examples/ 下的固定角度脚本,再逐步测试完整动作脚本。 - 当前脚本为实验控制脚本,不包含闭环反馈、急停保护或异常恢复逻辑。