吴蓬勃,张金燕,张冰玉,王拓
(1.石家庄邮电职业技术学院,河北石家庄,050021; 2. 河北工程技术学院,河北石家庄,050091)
近年来,随着电子商务的迅猛发展,快件处理量与日俱增,对快递包裹配送的速度和准确性提出了更高的要求[1]。快递处理中心是快递网络关键节点,其普遍采用交叉带式分拣机、AGV(Automated Guided Vehicle,简称AGV)分拣小车等自动化分拣装备,目前主要依靠人工来完成分拣系统的供件动作,大大降低了分拣效率,增加了企业的人工成本。
随着机械臂技术、计算机视觉技术的不断成熟,通过视觉识别物体位置,采用机械臂进行抓取的智能视觉抓取系统逐渐被各大企业所重视。本文通过树莓派、相机和四轴机械臂设计了一套简洁、高效的机械臂视觉抓取系统,实现了物体的快速识别和抓取。
系统架构图如图1所示,整个系统模拟了快递分拣机自动供件的场景,系统主要由四部分组成:树莓派、四轴机械臂、USB相机和传输带。树莓派通过USB连接相机,进行图像采集和快递包裹识别,此处采用不同颜色的积木模拟不同的快递包裹。此外,树莓派通过串口连接四轴机械臂,进行机械臂运动控制和抓取控制;通过IO口连接传输带步进电机,控制传输带的运动。整个系统工作流程为:首先,树莓派通过相机识别物体放置区域的积木位置;其次,通过机械臂手眼标定,将像素坐标转换为机械臂坐标,控制机械臂抓取积木并搬运到传送带上,模拟机械臂抓取快递包裹搬运到自动分拣设备上这一业务流程。
图1 系统架构图[2]
图3 凸透镜成像
相机采用小孔成像的原理来采集图像(如图2所示),为了增加物体的成像亮度,使用了透镜(如图3所示)。但是,透镜的制作工艺会使成像产生多种形式的畸变,主要包括:径向畸变、切向畸变。为了完整还原真实的图像,提高机械臂抓取的精度,需要对相机进行畸变校正。
图2 小孔成像
系统中包括四种坐标系(如图4所示),分别是:
图4 四种坐标系的关系
(1)世界坐标系,Ow-XwYwZw:用于描述相机在物理世界的位置。
(2)相机坐标系,Oc-XcYcZc:光心为原点。
(3)图像坐标系,O-xy:成像平面中点是原点。
(4)像素坐标系,C-uv:图像左上角是原点。
其中,P为物理世界中的一点,p为点P在图像中的成像点。p点在图像坐标系中坐标为(x,y),p点在像素坐标系中坐标为(u,v)。此外,f为相机焦距。
坐标系转换公式,如图5所示。由于相机设计工艺问题,会造成相机成像与实际图像不一致的现象。相机成像到实际图像的转换矩阵称为相机内参矩阵。相机外部环境或者安装方式也会造成图像失真,将世界坐标到相机坐标的转换矩阵,称为相机外参矩阵。
图5 坐标系转换公式
由于从世界坐标到相机坐标的变换不会发生形变,只需进行旋转和平移,所以相机外参矩阵主要包括:3×3旋转矩阵R和1×3平移矩阵T。
相机内参矩阵与焦距f、1个像素点x方向的尺寸dx和y方向的尺寸dy、像素坐标原点C(u0,v0)相关。在图5内相机参矩阵中,fx为焦距f与dx的商,fy为焦距f与dy的商。
相机标定的目标:通过获取相机内参、外参、畸变系数,实现图像校准。在OpenCV中,相机标定所使用的标定图案主要有:棋盘格、对称圆形、ArUco板和ChArUco板等。其中,棋盘格图案操作简单、快速,标定精度可满足一般应用场景的需求,所以本系统采用棋盘格图案进行相机标定,棋盘格为8行7列,每个方块尺寸为27mm×27mm,通过A4纸打印图案。
图6 棋盘图案图像采集
将A4纸放置在相机图像区域内,在确保A4纸不弯曲的情况下,调整A4纸在相机区域的位置、姿态,采集不少于20张图像,保存到树莓派中。运行OpenCV官方相机校准例程,获取相机内参矩阵、外参矩阵和畸变系数。
机械臂与相机的位置关系分为“eye in hand”和“eye to hand”[3],为提高抓取效率,本系统采用“eye to hand”方式,相机与机械臂分离,架设在抓取区域上部。
本系统的目标是,通过视觉获取物体图像坐标,转换为机械臂坐标,进而控制机械臂运动到指定位置进行物体抓取。所以,需要进行机械臂与相机的标定,实现像素坐标到机械臂坐标的变换。在进行坐标变换前,需要调用相机校准中获取的相机内参矩阵、畸变系数,对图像进行校准。
图5的坐标变换公式,在此简化为图7的公式。
图7 像素与机械臂坐标变换公式
图7中,B为3个物理位置的机械臂笛卡尔坐标(对应图5中的世界坐标),需要手动获取;A为经过畸变校正后的图像中3个位置的像素坐标(对应图5中的像素坐标),需通过程序获取;R为待求矩阵,需要通过实验的方法获取。
本系统通过修改OpenCV校准程序,对标定板的四个角点分别标注为:红、绿、蓝、紫(如图8所示),并获取对应的图像坐标,选取其中3个点用于求解矩阵R。
图8 标定板上的四个像素点
相机、棋盘图和机械臂的位置关系,如图9所示。调整机械臂位置,使得机械臂末端可达到棋盘图的最少3个角点。通过机械臂示教功能,控制机械臂到达3个角点位置;通过机械臂上位机软件读取3个角点位置的坐标,通过图7公式可求出转换矩阵R。
图9 位置关系图
图像处理流程,如图10所示。首先,通过相机采集图像,通过相机内参矩阵和畸变系数进行图像校准。其次,通过OpenCV对图像进行处理,包括:高斯模糊(减少图像噪声以及降低细节层次)、RGB转HSV(方便单一颜色的提取)、腐蚀(去除噪声点)、图像二值化;最后,获取积木矩形外框中心点的像素坐标,图像处理效果图如图11所示。获得积木像素坐标后,通过图7公式,可以计算出机械臂坐标,从而可控制机械臂进行积木抓取。
图10 图像处理流程
图11 图像处理效果图
将不同颜色的积木分别放置到抓取区域不同的位置,测试图像识别和抓取效果,如图12所示。经过上百次测试,系统抓取准确率达到了90%以上。
图12 积木抓取测试
本文面向快递分拣机自动供件场景,设计了一套基于视觉的机械臂抓取系统,通过相机标定、机械臂手眼标定、OpenCV图像处理等环节,实现了积木的准确识别和抓取。如果将系统中的2D相机,替换为3D深度相机[4-5],则可以实现堆积物体的机械臂抓取,将更加适配实际的应用场景。