1. 引言
在机械臂抓取任务中,目标检测算法所输出的检测框通常作为抓取位姿估计的前提信息,为后续抓取点的确定提供基础。然而在实际应用中,该过程中仍存在一些挑战,例如识别精度不足、运行速度较慢等问题,限制了机械臂在复杂场景中的环境感知能力,从而影响抓取任务的成功率和稳定性,不利于实现预期目标。因此,为满足目标检测与机械臂抓取任务的实际需求,有必要引入更先进的深度学习模型与结构优化机制,以提升整体系统的识别性能和运行稳定性。
近年来,随着深度学习的发展,视觉检测与机器人抓取的结合研究逐渐增多。目标检测算法大致可以分为单阶段、双阶段与多阶段方法,其中Cascade R-CNN是多阶段算法的代表,R-CNN系列属于双阶段方法,而YOLO系列因其实时性被广泛应用于机械臂抓取任务。已有研究表明,在不同场景下将目标检测与抓取结合能够取得良好效果。
例如,Sun等[1]将YOLOv3与GG-CNN融合,实现了协作机器人对多种物体的实时检测与抓取姿态预测,在自建数据集上的实验结果显示该方法在速度和精度上均优于传统方法;Chen等[2]人提出结合YOLO与深度强化学习的方法,使机械臂能够在复杂环境下自主学习抓取策略,提升了成功率与泛化性能;为了提升抓取机器人在复杂环境中的实时检测能力,Song等[3]基于YOLOv5s进行了改进。传统YOLOv5在轻量化方面表现良好,但在特征提取和小目标检测上仍有提升空间;人工授粉效率低、依赖人工经验。为了实现果蔬温室中的精准授粉,丁昊等[4]将YOLOv5 + 机械臂融入授粉系统,进行实时花朵检测和机械臂定位。此外,部分研究通过融合2D检测与3D视觉技术,实现了物体6D姿态估计,为高精度抓取提供了支持。综上,单阶段的YOLO系列在实时性与检测精度方面具有突出优势,因而成为机器人抓取场景中常用的目标检测框架。
2. 检测算法改进
2.1. Backbone优化
传统YOLOv5网络的Backbone主要由Focus和C3模块构成,其中C3模块通过多个Bottleneck结构的堆叠实现跨层特征融合,能够在较低计算开销下增强网络的特征表达能力。然而,C3模块内部仍依赖大量标准卷积操作,其特征生成过程中存在一定的冗余性,难以在复杂工业场景中兼顾检测精度与实时性。特别是在需要与机械臂协同完成抓取操作的任务中,检测算法的延迟将直接影响整体系统的响应速度与稳定性。因此,在保持模型检测性能的前提下,进一步提升Backbone的轻量化程度具有必要性。
基于上述考虑,本文以YOLOv5s为基础,在Backbone中最深层的两个C3模块处引入改进的C3GSConv模块,以减轻计算负担并增强深层特征建模能力。C3GSConv模块将C3模块中密集的标准卷积替换为轻量化的GSConv结构。GSConv通过将标准卷积分解为主分支卷积与cheap分支卷积,并结合通道Shuffle策略实现跨通道信息交互,有效减少冗余特征的生成并提升特征融合质量。此外,为进一步提高模型对关键语义区域的响应能力,C3GSConv中嵌入了轻量化的ECA注意力机制,通过局部跨通道交互分配更合理的通道权重,使网络能够更聚焦于目标区域的关键特征。
通过上述结构优化,改进后的YOLOv5s-gse在Backbone部分实现了更高的计算效率和更强的特征表达能力。实验结果表明,这种轻量化结构不仅降低了特征提取阶段的冗余计算,提高了网络整体实时性,还有效增强了深层语义特征的融合与表征能力,最终构建出更适用于机械臂抓取场景的检测模型。C3模块替换前后的Backbone结构如图1所示。
Figure 1. Backbone network comparison before and after modification
图1. 主干网络改动前后对比
2.2. C3GSConv模块
本文提出的C3GSConv模块分为GSConv模块[5]与通道混洗(Channel Shuffle) [6]结合进行轻量化,后加入ECA注意力机制层,在前者将整个检测网络完成轻量化的前提下,通过注意力机制可以最小限度损失减少参数而带来的性能损失。
在轻量化卷积网络中,分组卷积(Group Convolution)被广泛用于降低计算量和参数规模。通过将输入特征通道划分为多个组,每组通道仅与对应的卷积核进行卷积,分组卷积显著减少了乘加运算量。然而,这种操作同时带来了组间信息隔离的问题:每组卷积只能利用本组通道信息,限制了网络的表达能力。为了解决这一问题,引入了通道混洗机制。通道混洗通过将分组卷积输出的通道重新排列,使得不同组之间的通道可以互相交互,从而实现跨组信息融合。具体来说,通道混洗将通道维度划分为多个组,然后交换组与组内通道的位置,最终恢复原始通道顺序,但不同组的特征已经交叉混合。结合分组卷积与通道混洗的策略,不仅保留了分组卷积带来的计算效率优势,还增强了网络对通道间信息的利用能力,从而在轻量化网络中实现了更优的特征表示与性能提升。GSConv模块结构如图2所示。
Figure 2. GSConv module
图2. GSConv模块
在注意力机制的研究中,高效通道注意力(Efficient Channel Attention, ECA)被广泛应用于增强特征表达能力[7]。传统的通道注意力机制[8]通常依赖于全连接层进行通道间依赖建模,这会引入额外的参数和计算开销。ECA的核心思想是通过一维卷积来高效建模通道间的相互关系,避免了全连接操作带来的冗余参数。ECA模块结构如图3所示。
具体而言,ECA首先对输入特征图进行全局平均池化(Global Average Pooling),得到每个通道的全局描述向量。随后,通过一个带有合适卷积核大小的一维卷积来捕获局部跨通道交互,从而在不增加过多计算量的前提下建立通道依赖。紧接着,该结果经过Sigmoid激活函数生成权重系数,并与原始特征通道逐元素相乘,实现对重要特征的增强和无关特征的抑制。ECA的设计充分兼顾了计算效率与特征建模能力,在保持轻量化的同时有效提升了网络的表达能力与性能。
Figure 3. ECA attention module
图3. ECA注意力模块
3. 深度相机成像原理与坐标映射
深度相机可获取深度信息,因此可直接定位抓取目标。深度相机内成像原理为常见的小孔成像原理[9],如图4所示。其中f为相机焦距,即相机镜头到像素平面的距离;O为相机的光心,作为成像模型的原点;P点在真实世界坐标系中的坐标为(x, y, z),成像点P'的坐标为(x', y', z')。
Figure 4. Pinhole camera imaging model
图4. 相机小孔成像模型
根据图4,对于x轴的成像可以简化为图5形式。
Figure 5. Pinhole camera projection model on the x-axis
图5. x轴小孔成像原理
同理y轴,且由相似可得(1)式:
(1)
根据(1)式,可得P点的投影点P'坐标为:
(2)
一般像素坐标系通常定义方式是:原点位于图像左上角,u轴向右与x轴平行,v轴向下与y轴平行。设P'在像素坐标系上的坐标是
,设像素坐标在u轴上缩放
倍,在v轴上缩放了
倍。同时,原点平移了
。因此可以得到P'与像素坐标之间的关系:
,
。在此基础上将式(2)带入x',y'可得式(3):
(3)
可将式(3)写作矩阵相乘形式得到真实坐标与相机坐标系的关系:
(4)
其中fx,fy,cx,cy均为相机出厂默认参数。
4. 手眼标定
手眼标定(Hand-Eye Calibration)是机器人视觉系统中的核心环节,其目标是确定相机坐标系与机器人坐标系(如基坐标系或末端执行器坐标系)之间的空间刚性变换。完成标定后,相机获取的物体位置信息能够被准确映射到机器人工作空间中,从而为抓取、装配以及检测等视觉引导任务提供精确的位姿数据[10]。
手眼标定主要分为眼在手外(Eye-to-Hand):相机固定在机器人外部,视野稳定,但需要额外的坐标系转换。眼在手上(Eye-in-Hand):相机安装在机械臂末端,视野随机械臂运动而变化,但定位精度高[11]。
本文选择了工业上常用的标定板法,标定板结合机械臂的两种标定方法如图6所示。
(a) 眼在手外 (b) 眼在手上
Figure 6. Hand-eye calibration
图6. 手眼标定
手眼标定原理
以眼在手外标定为例,设End:机械臂末端,Robot:机械臂基座,Camera:相机坐标系,Object:标定板。由以上所设可知,当机械臂所夹标定板移动任意两个位姿时,可知标定板与机械臂末端之间的空间变换相同,有以下等式成立:
通过矩阵变换可得:
由机械臂基座和机械臂末端关系与相机和标定板关系可直接获取,即
已知,通过上式可得知相机与机械臂末端之间的空间旋转平移变换关系,获取刚性变换矩阵
,由此完成整个眼在手外标定的过程。
眼在手上标定原理与此类似,不同处在于标定过程应为将机械臂移动至任意两个位姿,且相机与机械臂末端之间的空间变换相同,通过该等量关系获取需要的刚性变换矩阵
。
Figure 7. Aruco code recognition example
图7. Aruco码识别示例
本文采用Aruco码结合眼在手外标定,如图7所示。
5. 机械臂D-H参数与逆运动学求解
5.1. 基于D-H法的机械臂模型构建
本文采用机械臂如图8所示,为便于描述机械臂的运动学关系,本文采用Denavit-Hartenberg (D-H)参数法对各关节建立坐标系[12],得到表1所示各个关节的D-H参数。通过连杆长度
、连杆扭角
、连杆偏距
与关节变量
定义每个关节的齐次变换矩阵式(5):
(5)
Figure 8. Episode1 six-axis robotic arm
图8. Episode1六轴机械臂
根据表1结合式(5),可求得前三组连杆变换矩阵式(7),
、
、
同理可得。
(6)
将
、
、
、
、
、
连乘可得:
Table 1. D-H parameters
表1. D-H参数
关节i |
a (mm) |
d (mm) |
α (˚) |
1 |
55 |
166 |
90 |
2 |
200 |
0 |
0 |
3 |
56 |
0 |
90 |
4 |
0 |
192 |
−90 |
5 |
0 |
0 |
90 |
6 |
0 |
55 |
0 |
5.2. 逆运动学解析
通过逆运动学解析,针对本文所用的六自由度球腕型机械臂,给出末端位姿已知条件下各关节角的解析求解方法。逆运动学的目标是:在已知末端位姿
的情况下求得六个关节变量
[13],求解方法:机械臂4-6轴为球型腕,因此腕心(wrist center)坐标为:
由
位移部分与
相等可得约束方程:
(7)
其中为方便书写
,
,
,
。
对式(7)求解,可得关节角
,记
,
,
,
,
。由余弦定理得到“轴角”
:
(8)
其中
两组解,分别对应于肘关节的伸展与弯曲。由此得
,
。球型腕机械臂前三轴旋转决定位置,而后三轴决定姿态,故将齐次变换矩阵T的旋转部分单独提取设为旋转矩阵R。已知
,可得
。球腕采用Y-Z-Y欧拉结构,设
则关节4-6的解析解为:
,
,
。球腕奇异时(
)时,
与
耦合,可取一自由度,例如:
,
(或保持与上一时刻连续)。
6. 机械臂D-H参数与逆运动学求解
机械臂识别定位与吸附作业实验系统如图9所示。系统中,深度相机与机械臂以眼在手外标定作为连接。硬件设备为微星gp68个人计算机、Realsense d435深度相机、相机内参标定所需的棋盘格标定板、眼在手外所需标定板Aruco标定板、相机支架以及Episode1机械臂,实验环境为系统:Ubuntu20.04、CPU:Inter(R) Core(TM) i7-13700hx、GPU:NVIDIA GeForce RTX 4080 Laptop。
Figure 9. Experimental system for robotic arm recognition, positioning, and suction grasping
图9. 机械臂识别定位与吸附实验系统
Figure 10. Three-level experimental process flow diagram
图10. 三层级实验过程流图
整个机械臂检测定位与吸附实验系统主要由三大模块构成,系统架构如图10所示。在环境感知模块中,首先采用棋盘格标定法对相机镜头畸变进行校正,随后对采集的图像进行预处理以提升质量。进入检测与位姿估计模块后,系统充分利用深度相机能够直接采集深度信息的特性,结合本文提出的改进型YOLOv5-gse算法,精准获取待吸附目标中心点在相机坐标系下的二维坐标及其对应深度值。在执行吸取模块中,基于已获得的相机坐标系坐标,配合手眼标定得到的刚性变换关系,将目标位置转换至机械臂基坐标系下的三维坐标。最终通过逆运动学求解计算出机械臂末端需要抵达的目标位姿,从而完整实现机械臂的识别、定位与吸附作业流程。
7. 实验验证与结果分析
7.1. 检测网络对比实验
为验证C3GSConv模块替换原C3模块的有效性,本文选用同在coco数据集下进行验证两个模型的各个目标检测重要指标,测试结果见表2。
Table 2. YOLOv5s,YOLOv5s-gse performance comparison
表2. YOLOv5s,YOLOv5s-gse性能对比
类比 |
P |
R |
mAP@0.5 |
mAP@0.5:0.95 |
Yolov5s |
0.672 |
0.519 |
0.566 |
0.371 |
Yolov5s-gse |
0.671 |
0.521 |
0.569 |
0.371 |
通过表2的结果对比可知,将原C3模块替换为C3GSConv模块后,检测重要指标召回率与mAP略有提升,同时模型体积减少约0.1 MB。这表明,本文所提出的改进方法在保持模型轻量化的同时,有效降低了漏检情况的发生概率,并在小目标检测精度方面取得了一定提升。
从图11对比结果可以明显看出,优化前的模型未能检测出图像中的手机目标,存在漏检现象;而引入C3GSConv模块优化后的模型成功识别并准确定位了手机。该结果表明,改进后的模型在小目标识别方面表现更优,有效提升了检测的灵敏度与可靠性。
(a) YOLOv5s (b) YOLOv5s-gse
Figure 11. Comparison of detection performance before and after replacing the C3 module with GSConv in the detection network
图11. 检测网络替换C3GSConv模块前后检测效果对比
7.2. 机械臂吸取实验
在进行目标吸取实验之前,需要首先确定吸取位置。本文采用基于目标检测的抓取点提取方案,即通过检测模型得到目标的Bounding Box,并计算其中心点作为吸取位姿。如图12所示,以圆形物体为例,其中心点O被选定为机械臂吸盘末端位置[14]。
Figure 12. Bounding box and centroid calculation
图12. 目标检测框与形心计算
Figure 13. Detect and absorb the process of placing tea boxes
图13. 检测与吸取茶叶盒放置过程
点O定义为相机坐标系的参考点,经手眼标定后,其空间坐标与深度信息被统一转换到机械臂坐标系,实现对末端执行器目标位置的精确定位。基于该位姿信息,逆运动学模块进一步计算出各关节的运动指令,完成吸取动作。图13给出了针对目标的整个吸取与放置过程,其中黄色方框ROI限定了目标检测的有效区域。
在针对20个不同位置的实验测试中,机械臂共执行20次吸取操作,均成功吸取,且单次吸取时间控制在15 s以内。实验结果表明,本文所构建的目标检测模型能够稳定可靠地支撑机械臂的吸取任务。
8. 结语
本文以改进后的YOLOv5s-gse模型作为检测先验,对机械臂的目标定位与吸取策略进行了研究。实验结果表明,相较于原始YOLOv5s,所提出的检测方案在小目标识别方面具有更高的准确性,同时模型规模略有缩减。在与深度相机结合后,系统能够实现机械臂对目标的高精度吸取与放置操作。该方案在诸如分拣药盒形状应用场景中具有一定的参考价值与推广意义。
NOTES
*通讯作者。