视觉辅助的机械臂智能抓取实验教学平台开发
2021-02-27冷春涛武书昆刘彦博
郝 丽, 冷春涛, 武书昆, 刘彦博
(上海交通大学学生创新中心,上海200240)
0 引 言
随着以智能制造为主导的工业4.0 观念普及和人工智能领域快速发展,机器人及机械臂的智能控制和研究已经成为当下的热门领域,同时也对社会产生了深远的影响,特别是在生活及工业生产中,机械臂智能控制的应用日益广泛,越来越成为现代生活生产中不可或缺的工具[1-3]。随之而来的机械臂控制相关的实验教学,也逐步在各大高校中展开[4-6]。胡幸江等[7]通过将单片机实验融入机械臂控制实验中,使学生对于机械臂控制系统的整体架构及搭建有了直观感受,并通过结合CAD 教学让学生自行设计机械臂的机械结构,提高学生的学习兴趣,注重动手能力的培养。杨杨等[8]则利用Matlab/Simulink仿真工具箱,为学生呈现了操作简便的机械臂控制用户界面,学生可以通过修改参数观察机械臂运动的仿真结果,节约了教育成本的同时,加深了学生对理论算法的理解,并且安全可靠。
不可否认这些做法有利于提高学生的创新与实践能力,但是机械臂的控制方法仍偏向传统,例如通过手动点击按钮而使机械臂完成物体抓取等一系列动作,没有结合计算机视觉等将智能自动控制方法引入机械臂教学中。杨亮等[9]将视觉伺服添加进机械臂控制系统,通过摄像头采集目标物体图像信息,并将位置信息转换控制指令,控制机械臂自动完成物体抓取任务,具有成本低,控制效果好的优点,但是此结构要求学生在Linux系统下进行控制系统搭建、指令发送等一系列操作,对学生的计算机专业知识要求较高,对于一些初涉计算机和非理工科专业的学生,会对此感到难以理解和适应,难以面向全校各专业推广。
为此,开发了基于视觉辅助的机械臂抓取目标物实验平台,通过机械臂和工业相机构建一套机械臂智能控制机构,能够自动感知一定区域内的目标物所在位置,在自动定位后实现目标物的识别、抓取与搬运,并且此平台运行于Windows系统,具有成本低,趣味性高,入门快,各专业学生接受度高的优点。通过将计算机视觉等智能控制知识融入传统的机械臂控制课程,可以增强学生对机械臂智能控制知识和理论的理解,提高学生的动手能力和深入思考能力,激发学生的学习兴趣和创造性思维。
1 机械臂智能控制系统总体设计方案
本课程主要面向全校各专业本科生,在学生动手搭建并操作机械臂智能控制系统的同时,学会基本的机械结构搭建和原理、机械臂控制知识以及计算机视觉的基础知识等,开拓学生跨学科知识应用的思路,提高学生的动手能力与培养学生的创新思维。
平台分为执行系统及图像处理系统。执行系统即机械臂本体,整个机械臂一共有4 个自由度,分别由4个步进电动机控制,并配有吸盘,机械爪,画笔等末端执行器来匹配不同的任务,在实验平台中,需用到一个气泵控制吸盘,以实现物体的抓取及搬运。
图像处理系统配置了USB工业摄像头,用来采集目标物的图像信息,并将图像信息传输至计算机,用来进行目标定位及目标识别处理。此系统的整体架构如图1 所示。
图1 系统整体架构框图
为了使实验更具普适性,尤其是针对使用视野范围较小的USB工业摄像头的场景下,图像采集不完整的问题,本课题采用遍历搜索的方式寻找目标物硬币。具体操作如下:在机械臂末端固定摄像头并连接至计算机,随着机械臂末端的蛇形遍历搜索运动,摄像头视野将遍历整个工作区,计算机通过Python 调用OpenCV得到目标物中心坐标,通过坐标转换,定位目标物的位置,控制机械臂的动作,从而完成目标物的自动抓取。
2 机械臂结构及视觉系统搭建
2.1 机械系统构建
本实验平台中,机械机构以Dobot机械臂为主体,该机械臂由底座、大臂、小臂、末端工具等部分组成,如图2 所示。机械臂末端在运动过程中保持水平,可通过加装末端夹具实现物体抓取,写字等功能。在实际使用中,可使用LabVIEW、Python 等语言对机械臂关节进行单独或协同控制,便于日常应用和教学。
图2 机械臂主体结构示意图
2.2 视觉系统设计
在实验平台中,视觉系统的硬件部分主要由工业摄像头,计算机组成。摄像头结构使用30 ×40 ×15 的工业摄像头,分辨率为640 ×480,采用USB接口,即插即用,镜头可以旋转调焦,如图3 所示。
在安装摄像头时,需确定正方向,在本文中,规定数据线头在右上角时,摄像头所取得图像视野的左上角视为笛卡尔坐标系的原点,向右为X 轴正方向,向下为Y轴正方向,正方向示意图及摄像头视野示意图如图4 所示。
图3 USB工业摄像头实物图
图4 摄像头正方向与视野的确定
在安装时需注意,摄像平面应与桌面平行,并使用胶带将USB 线缆、气泵橡胶管等配件沿机身固定,然后将摄像头线缆连接到计算机的USB端口。
3 目标物识别、定位及抓取搬运过程
在视觉辅助机械臂控制系统中,准确检测目标物位置是关键的一环[10]。在本实验中的目标物识别方面,视觉模块将图像信息传输至计算机进行处理,为了易于描述及理解,使用一元硬币作为目标物,在具体算法实现上,采用Python +OpenCV 框架,通过霍夫圆变换进行处理。在目标物定位方面,通过坐标变换过程,使用“逐步遍历搜索”的方法,确定目标物的坐标位置。整体算法流程如图5 所示。
3.1 遍历搜索点设置
设置机械臂末端搜索点是目标物定位的关键步骤,若搜索点设置不合理,会出现目标物定位失败的问题,因此,需要设置合理的搜索方式。首先测量摄像头视野的尺寸,再根据一帧画面的实际大小尺寸,对工作区域进行蛇形遍历,进而设置合理的遍历搜索“步长”与总“步数”。遍历搜索示意图如图6 所示。
3.2 坐标转换过程
在设置遍历搜索点时,由于视觉系统检测得到的硬币圆心需与机械臂吸盘投影点坐标保持一致,因此,需计算摄像头与吸盘投影点的坐标转换关系[11]。
图5 整体算法流程图
图6 遍历工作区域示意图
摄像头与吸盘投影点的坐标关系图如图7 所示。
图7 坐标关系图
摄像头坐标用x,y 表示,机械臂的坐标用X,Y 表示。易知,两个坐标系的转化关系,与此时机械臂的底盘旋转角度J1有关,如图8 所示。
设从吸盘投影点到硬币中心的向量,在摄像头坐标系下为(Δx,Δy),在机械臂坐标系下为(ΔX,ΔY),根据坐标关系,可以得出:
图8 关节坐标系示意图
根据测定,吸盘投影点在摄像头坐标系中的像素坐标为(x0,y0),在程序中,可以通过OpenCV 得到硬币中心的像素坐标,设为(x1,y1)。
于是,这两点之间的向量为(x0-x1,y0-y1),由于这是以像素为单位的向量,若要转化为实际尺寸,需要乘以一个系数。在本文中,摄像头的分辨率是640×680,设摄像头视野尺寸为L·W,则系数为:L/640,W/680。综上,
因此可得:
或者写成如下的矩阵形式:
3.3 目标识别过程
利用硬币作为目标物,由于硬币外观呈圆形,因此,选择霍夫圆变换对采集到的图像进行处理,以检测出圆形形状,进而识别硬币[12]。
霍夫圆变换是一种迄今为止较为优秀的圆检测算子[13-14],其教学及理解难度适中,相比于更加简单但更易受噪声干扰的基本边缘检测器,如Roberts、Prewitt等,霍夫圆变换更适合应用在本实验的教学及实验算法中。
霍夫圆变换识别硬币的具体步骤为[15]:
(1)检测圆心。①对输入图像进行边缘检测,检测到硬币的边缘线;② 计算硬币图形的梯度,并确定圆周线,其中圆周的梯度就是它的法线;③ 在二维霍夫空间内,绘出所有图形的梯度直线,某坐标点上累加和的值越大,说明在该点上直线相交的次数越多,也就是越有可能是圆心;④在霍夫空间的4 邻域内进行非最大值抑制;⑤设定一个阈值,霍夫空间内累加和大于该阈值的点就对应于硬币的圆心。
(2)检测圆半径。① 计算某一个硬币的圆心到所有圆周线的距离,这些距离中就有该圆心所对应的圆的半径的值,这些半径值当然是相等的,并且这些圆半径的数量要远远大于其他距离值相等的数量;②设定两个阈值,定义为最大半径和最小半径,保留距离在这两个半径之间的值,阈值的取值以硬币实际测量得到的半径为准;③对保留下来的距离进行排序;④ 找到距离相同的那些值,并计算相同值的数量;⑤ 设定一个阈值,只有相同值的数量大于该阈值,才认为该值是该圆心对应的圆半径;⑥ 对每一个硬币的圆心,完成上述步骤,得到所有的硬币半径。
对硬币图像进行霍夫圆变换的过程及结果如图9所示,图9(a)~(d)分别为原图像、灰度变换后图像、图像的灰度直方图及变换的最终结果。
图9 霍夫圆变换
3.4 目标抓取及搬运过程
在目标抓取及搬运过程中,需将气泵及吸盘安装至机械臂相应位置,当硬币的位置信息被视觉系统识别后,机械臂收到指令开始运动至目标物上方,并使用气泵及吸盘进行目标物的抓取及搬运。
在抓取过程中,机械臂末端使用门型轨迹的点到点的运动模式,具体形式如图10 所示。
设A点为机械臂末端起始点,B 点为目标物所在处,当位于B处的目标物坐标信息传输至机械臂控制系统后,机械臂末端吸盘从起始点出发,上升至一定高度后,平移至目标物上方,然后下降至目标物所在位置,通过气泵控制吸盘,完成目标物的抓取,当目标物抓取成功后,再以相同的门型运动方式运载目标物至预先设置好的放置点。
图10 门型轨迹示意图
4 实验结果与分析
开发的基于视觉辅助的机械臂智能抓取实验平台支持自动抓取目标物,控制效果如图11 所示。将硬币置于机械臂的工作半径之内,机械臂上方安装USB 工业摄像头,用于捕获现场信息,系统能够自动识别目标位置,并使用机械臂末端吸盘将物体搬运至指定位置。
图11 控制效果图
在教学实践中,需要通过完成智能控制软硬件系统搭建及分组进行目标物抓取实验并分析结果,考查学生对于机械臂运动原理和智能控制过程的理解及灵活应用程度。
学生两人1 组进行实验,需自行完成搭建视觉及机械臂抓取控制系统的软硬件部分,通过视觉系统识别定位目标物,并完成将目标物采用门式运动运送至指定位置并叠放的操作。在完成5 枚1 元硬币的自动识别并搬运实验后,将目标物由5 枚1 元硬币换为2枚1 元硬币与3 枚5 角硬币的混合硬币,和2 枚1 元硬币与3 枚相同硬币大小但是厚度为10 mm 的亚克力片,摆放于相同的位置,分别进行实验并记录成功搬运次数。在分别完成10 次实验后,将3 组实验的成功率进行对比分析。
10 组对比实验后,成功次数统计结果如表1所示。
由表1 可见,在目标物的半径尺寸大小相同、厚度均匀时,抓取搬运的成功率最高;在厚度不同,半径尺寸大小相同时,抓取搬运的成功率次之;在有明显目标物半径尺寸差异的情况中,成功率最低。
在实验中,通过图表对比,可以使学生直观地感受到机械臂智能控制的优越性与不足之处,进而引导学生思考并提出改进方向,对于深入学习机器智能理论知识及提高实践能力大有好处。
表1 成功搬运次数统计表
5 结 语
桌面型机械臂具有成本低,重量轻,占地空间小的特点[16]。基于视觉的桌面型机械臂创新实验平台可以通过工业摄像头采集图像信息,通过遍历搜索的方式定位硬币方位,辅助机械臂完成目标物抓取等任务,具有反应时间短,稳定性高,操作简便等特点,非常适合创新实验教学。另外,相比于Linux 系统,对于广大本科学生来说,在Windows 系统上的智能控制编程及操作更具有普适性,适用于大多数学生的计算机操作习惯,更易于理解与掌握,便于课程在全校各学院各专业之间顺利展开。目前,该创新平台已应用于本校机械臂智能控制等选修课程中,并已开设两个学期,根据学生反馈,该课程及实验平台可以有效调动学生的学习积极性以及提高动手能力,使学生从被动的简单实验验证转变为主动学习,深入思考与探索新知识,提高了授课质量。