APP下载

基于机器视觉和力反馈的自动装配技术研究

2019-09-19

测控技术 2019年4期
关键词:轴孔螺旋线像素点

(东南大学 仪器科学与工程学院,江苏 南京 210096)

机器人自动装配是工业自动化生产中的典型作业,需要机器人能够自动完成目标的识别、分拣和装配[1]。随着科技发展,工业生产中越来越多地使用机器人代替人工作业,对机器人自动化、智能化的要求也越来越高。对于机器人自动装配技术的研究可以减轻人工工作量,提高生产效率,提升工业生产自动化水平,具有重要的研究和应用价值。

目前机器人自动装配技术的应用受到装配精度的制约,传统的自动装配技术主要采用视觉引导,摄像头的标定误差、拍摄角度引起的误差以及机器人运动精度的误差导致机器人实现精密装配工作时难度较大[2-4]。针对目前生产应用中遇到的这些问题,本文提出了一种基于机器视觉和六维力传感器的自动装配方法,采用两个摄像头对装配物体和装配孔两次定位,通过六维力传感器实现装配过程中的力位控制,完成精密装配作业。

1 装配系统总体设计

如图1所示,机器人自动装配系统主要由两个工业相机、六自由度机械臂、六维力传感器和机械手爪组成。传统的单目视觉定位系统有两种,一种将相机固定在机械臂远端[5],视野范围大,能反映整个工作台的情况,但俯拍角度在拍摄具有一定高度的物体时无法准确定位;另一种将相机固定在机械臂末端[6],可以反映物体细节轮廓和位置,但是视野范围很小,识别范围有限。故采用将两者结合的方法,远端摄像头识别工作台全景,检测工作台上所有的物体,识别待测物体的大致位置,做一次粗略定位;根据粗略定位,末端摄像头随机械臂末端运动到待测物体上方,对待测物体进行二次准确定位。在两个相机的视觉引导下,机械手爪抓取工件装入装配孔中,装配过程中通过六维力传感器获取力与力矩的变化情况,通过力和力矩的反馈调整装配位姿,实现精度较高的机器人自动装配作业,自动装配系统框图如图2所示。

图1 机器人自动装配系统

图2 装配系统控制原理框图

2 基于视觉的工件定位

采用两个工业相机实现工件的抓取和轴孔装配,首先对两个相机进行标定,矫正图像畸变并确定图像坐标系和世界坐标系的对应关系[7]。接着在示教模式下人工创建图像模板,在自主模式下,根据图像模板利用远端相机进行一次粗略定位,引导机械臂运动到工件上方,由于远端相机俯拍角度的问题,这个过程不能准确定位工件位置,但对识别算法的快速性和抗干扰性有较高要求;通过末端相机对工件进行二次精确定位,引导机械臂抓取和装配,末端相机可以清晰反映工件的位置和轮廓,这个过程对识别算法精度有较高要求。

2.1 远端相机一次定位

2.1.1 图像预处理

首先将远端相机采集到的彩色图像转换为灰度图像,接着使用一个3×3的高斯核与图像做卷积,平滑图像并保留图像的边缘信息。通过手动操作绘制方形区域在图像上标出想要识别的工件,即感兴趣的区域(Region of Interest,ROI),动态创建待识别工件的图像模板。一次定位流程图如图3所示。

图3 远端相机一次定位流程图

2.1.2 使用SB-GrabCut算法分割图像

由于远端相机俯拍角度的问题,拍摄到的图像可能存在背景干扰,如图3所示,对模板图像区域人为添加纹理背景作为干扰,对于获取的ROI图像,通过基于超像素分割的GrabCut算法(Superpixel Based-Grab Cut)[8]分离目标和背景,创建只包含目标物体像素点的理想模板图像,加速模板匹配的过程[9]。首先对ROI进行超像素处理。超像素是指由若干像素点组成的像素集合,每个像素在原图像中通常彼此相邻,灰度值相似。采用相邻超像素子集之间的灰度直方图交叉与灰度直方图相似性作为超像素分割标准[10-11],公式如下:

H(A,B)=Int(A,B)+ωSim(A,B)

(1)

(2)

设图像ROI中像素点总个数为N,图像ROI可以分割成含有Q个超像素的集合SROI,图像中所有的像素点都可以映射到这Q个超像素中,即

ROI:{1,…,n,…,N}→SROI:{B1,…,Bq,…,BQ}

(3)

设超像素Bq的灰度直方图为H,Hj为H中的某个灰度区间,δ(·)为判决函数,当Bq(x)∈Hj时,该函数返回值为1,否则返回值为0。设gBq(j)为超像素Bq中灰度在Hj中的像素集合,则Int(gBq1,gBq2)与Sim(gBq1,gBq2)均可以通过gBq来计算,即

(4)

Int(gBq1,gBq2)=∑jmin{gBq1(j),gBq2(j)}

(5)

Sim(gBq1,gBq2)=exp(-|∑jj(gBq1-gBq2)|abs)

(6)

通过评估函数的结果作为超像素分割的标准,每个超像素板块都聚集了原始图像中相似的像素点,有效简化了原始图像。

应用GrabCut算法分离目标和背景,GrabCut是一种基于高斯混合模型(Gaussian Mixture Model,GMM)的一种图像分割算法,它依靠式(7)Gibbs能量函数作为判决参考实现图像分割。

(7)

将待分割图像中所有像素点分为两组,即图像背景像素点集合Tb和目标像素点集合Tt,在算法初始化阶段,将一部分像素映射到集合Tb和集合Tt中,基于两者建立该图像的像素分布高斯混合模型,在之后的迭代中,剩余像素被映射到构建的模型中,经分析将每个像素点映射到集合Tb或集合Tt中,高斯混合模型的参数也随着像素点的分类而改变,直至计算出最小分割能量Emin。在该算法中,Emin通过“最小切”法计算出,此时集合Tt中所包含的像素点被认为是目标像素点,根据分割出的目标图像创建图像模板Isub。

2.1.3 改进搜索策略的归一化交叉验证匹配算法

归一化交叉验证算法(NCC)具有很高的准确性和通用性,抗干扰能力强,使用简单,但其搜索时间较长。应用NCC算法,对其搜索策略进行优化[12-13]。设待搜索图像为IS,模板图像为Isub,归一化交叉验证的计算式如下:

(8)

2.2 末端相机二次定位

相机二次定位的流程框图如图4所示,末端相机拍摄视野较小,背景也较为单一,在图像的预处理上,得到灰度图像后,对图像进行各向异性扩散处理,来增强工件的边缘信息,抑制噪声,模板的创建过程与一次定位相同。

图4 末端相机二次定位流程图

采用基于边缘特征的模板匹配(Gradient based-NCC)[14-15]对工件进行识别和准确定位,步骤如下:

① 使用Sobel算子各像素点的横向梯度Gx与纵向梯度Gy,根据Gx和Gy计算每个像素点的梯度大小与方向,即

(9)

(10)

② 对边缘信息进行非极大值抑制处理,非最大抑制算法跟踪梯度方向上的左右像素点,如果该像素点小于左右像素点的值,那么就抑制该像素点,以此简化边缘信息。

(11)

基于梯度矩阵GT创建图像轮廓模板。

④ 同理求出待搜索图像的梯度矩阵GS,设图像尺寸为m×n,当前搜索坐标为(u,v),然后按照如下公式进行归一化相似度验证:

SGB-NCC(u,v)=

(12)

根据SGB-NCC(u,v)的分数可以判断模板与搜索图像区域的相似程度。

⑤ 对于加速搜索和提前终止策略和一次定位时相同,加快模板匹配速度。

由于轴孔配合的工件均为规则边缘,对模板图像的边缘轮廓进行多边形或圆形拟合,得到轮廓中心点,通过仿射变换矩阵,标记出匹配轮廓的边缘和中心。在抓取工件时,将工件中心点坐标和工件旋转角度发送给机械臂,机械臂旋转相应角度以固定姿态抓取工件;在轴孔装配时,机械臂运动到装配孔中心点上方,等待下一步操作。

3 基于六维力传感器的精密装配

基于视觉的轴孔装配由于存在拍摄角度、标定误差、机器人运动精度的误差等问题,无法完成精度较高的装配作业。此外,当机械臂下降时,相机标定的坐标系将不再有效,无法再通过视觉进行位置修正,因此需要通过六维力传感器感知装配过程中机械手受到力与力矩的变化,通过力反馈修正装配位置。

3.1 六维力传感器

六维力传感器可以检测三维空间X、Y、Z3个方向上的力与力矩信息,当机械手夹持工件进行操作时,它可以检测出机械手与外部环境的作用力,实现力反馈,使用的六维力传感器为东南大学仪器科学与工程学院自制的力传感器,该传感器精度如表1所示。

表1 六维力传感器测量精度 单位:%F.S.

其中,Ⅰ类误差为传感器的测量值与实际施加值之间的偏离程度,Ⅱ类误差为维间耦合误差。该传感器量程、精度、灵敏度等参数均符合实验需求,机械爪同样为实验室自制,通过传力轴与六维力传感器连接。

3.2 六维力传感器数据处理

为了防止装配过程中传感器数据波动对控制造成干扰,需要对采样电压值进行均值滤波,采样频率设为100 kHz,对每100个数据进行均值滤波,以平滑电压。采用基于耦合误差建模的解耦算法对传感器进行数据解耦[16],得到3个方向的力Fx,Fy,Fz和3个方向的力矩Mx,My,Mz。

3.3 轴孔装配受力分析

轴孔装配过程中六维力传感器受到的力/力矩分析如图5所示。装配过程中,六维力传感器受到机械爪及工件竖直向下的重力FG,机械臂运动带来的惯性力FI和装配孔给予工件竖直向上的反作用力Fz。对于重力FG,将机械爪夹持工件后传感器的数值记为零点,一切控制基于测量的差值ΔF即可消除重力的影响。对于惯性力FI,装配过程中控制机械臂以小于2 cm/s的匀速运动靠近装配孔,六维力传感器受到的惯性力可忽略不计。设受力点与工件中心的距离为d,根据力平移定理,六维力传感器传力轴将感受到竖直向上的力Fz和合力矩M,M即为Mx、My产生的合力矩,通过以下公式即可计算出距离d和移动方向角度θ,移动方向垂直于力矩M的方向指向装配孔中心。

(13)

(14)

θ=arctan|Mx/My|

(15)

图5 装配过程受力分析示意图

3.4 轴孔装配路径规划

通过两个工业相机的两次定位,装配时能保证工件中心与装配孔中心距离较小,只需微调即可。基于3.3节中的受力分析,提出了两种装配策略,如图6所示。

图6 运动轨迹示意图

(1) 直线运动轨迹。

通过受力分析得知工件应该移动的方向垂直于力矩方向,指向装配孔中心。直线运动由以下公式:

Δx=kdsinθ

(16)

Δy=kdcosθ

(17)

确定运动坐标。其中,Δx,Δy为机械臂在X方向和Y方向上的运动步长;k为比例系数,调节运动步长。机械臂末端始终保持竖直姿态,向下运动与装配孔边缘接触,检测受到向上的力Fz后抬起,按直线步长向装配孔中心运动,完成运动后再次检测力与力矩信息,构成闭环控制,当机械臂Z轴坐标低于装配孔高度并检测到Fz较小时即认为完成装配,机械爪松开。

(2) 螺旋线运动轨迹。

对于边缘表面光滑,不易损坏和形变的工件,可控制机械臂始终使工件与装配孔边缘保持轻微接触,检测实时力与力矩,做螺旋线运动向装配孔中心收敛,螺旋线运动半径计算公式如下:

r=2kd-Δr

(18)

式中,k为比例系数,控制半径步长;Δr为一个很小的常数,使螺旋线运动半径递减,保证最终能够收敛到圆心。

4 实验

对提出的两种基于机器视觉和六维力传感器的自动装配控制方法进行了对比试验,如图7所示,工业机械臂为Motoman六自由度机械臂,图像采集采用两个参数相同的Mindvision工业相机,六维力传感器数据通过单片机和A/D采集卡获取并通过蓝牙传输,轴孔装配采用的工件和装配孔均使用3D打印材料,上位机采用Visual Studio 2010与OpenCV混合编程。装配使用的工件尺寸和实验结果如表2所示。

图7 装配实验

控制方式孔直径/mm工件直径/mm轴孔间隙/mm装配次数成功次数平均用时/s直线运动5049.001.0010102.634039.001.0010102.154039.500.5010102.233029.900.101086.223029.950.051029.46螺旋线运动5049.001.00101010.724039.001.0010107.274039.500.5010107.343029.900.1010105.883029.950.051096.19

以49 mm直径的圆柱型工件插入50 mm直径装配孔为例,由六维力传感器检测到的两种装配方法,Fz,Mx,My变化如图8所示。

图8 装配过程中力与力矩的变化曲线

通过对比试验可以发现,在轴孔间隙大于等于0.5 mm时,直线运动由于运动距离较短,装配时间远少于螺旋线运动的装配时间,平均用时均少于3 s,且具有很高的成功率。但是当轴孔间隙小于0.5 mm时,由于直线运动控制步长以及机械臂运动精度等问题,直线运动会在装配孔中心反复调整,装配耗时大幅增加,且成功率开始下降,当轴孔间隙小于0.05 mm时,直线运动很少能将工件正确插入装配孔中,需要进一步减小运动步长来微调装配位置。而螺旋线运动需要环绕装配孔边缘运动调整装配位置,装配时间主要和装配孔直径有关。在轴孔间隙较大的情况下,螺旋线运动装配普遍比直线运动耗时,但其对不同轴孔间隙的装配表现很稳定,均具有很高的成功率,当轴孔间隙小于等于0.1 mm时,螺旋线运动的装配效率和成功率均高于直线运动。因此在实际应用中,应根据装配需求将两种控制方法相结合,针对不同孔径采用不同装配方式,或是采用先直线运动粗调后螺旋线运动细调的混合控制方法,提高装配效率。

5 结束语

针对现有工业生产自动装配技术存在的问题,提出了一种基于机器视觉和六维力传感器的机器人自动装配控制方法,以典型的轴孔装配为例,采用两个单目摄像头对工件和装配孔进行两次定位,基于六维力传感器实现装配过程中给的力反馈,形成控制闭环,提出了两种装配轨迹控制策略并进行了对比实验,通过分析得出结论:在轴孔间隙大于等于0.5 mm时,采用直线运动具有较高的装配效率;而当轴孔间隙小于0.5 mm时,则应该采用螺旋线运动提高装配效率和成功率,采用螺旋线运动控制方式可以实现精度0.05 mm的轴孔装配。针对不同的装配情况采用不同的装配策略可以提高装配效率和成功率。

猜你喜欢

轴孔螺旋线像素点
从平面到立体,全方位提升学科素养——一道螺旋线运动试题的赏析
基于局部相似性的特征匹配筛选算法
V波段三种螺旋线类慢波结构高频特性
打结器支架精铸毛坯误差分析与五轴数控加工方法
涡轮增压器壳体轴孔加工工艺优化措施研究
基于5×5邻域像素点相关性的划痕修复算法
螺旋线对斜拉桥斜拉索高雷诺数风致振动影响的试验研究
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
一种断路器焊接拐臂