点击上方“计算机视觉life”,选择“星标”
快速获得最新干货
摘要:近年来,机器人自动化领域越来越多地应用3D视觉技术对目标物体进行定位。本文主要研究3D视觉技术在机器人抓取作业中的应用,总结了3D视觉技术在识别、定位物体时面临的挑战,给出了抓取作业机器人3D视觉系统的设计方法,归纳了现有的3D表面成像方法和视觉处理算法,最后给出一个结合3D视觉技术对白色抽屉纸盒进行抓取分拣的实际应用案例。
关键词:3D视觉;工业机器人;抓取
1 引言
随着经济的发展与科技的进步,人们越来越多地将自动化技术应用到生产与生活中,与此同时,也对自动化技术提出了更高的要求。近十年来,工业机器人的普及使得机器人自动化得到了更广泛的应用和关注。很多机器人系统已经集成了视觉系统,利用机器视觉技术实现检测、识别、定位等功能,为后续的机器人运动提供必要的信息。
在许多自动化应用场合中,如自动化分拣、装配、拆垛、码垛、上料等过程中,工业机器人经常被用来进行抓取作业。要完成抓取操作,机器人系统可能需要完成目标感知、运动规划、抓取规划等一系列任务。视觉系统在机器人抓取作业中的作用就是识别、定位目标物体,为机器人提供目标物体的类型与位姿信息。其中,位姿估计的精度关系到抓取的成功率与精度,是非常重要的技术参数。
3D视觉技术作为新兴的技术领域还存在很多亟待解决的问题,但2D视觉已不能满足空间抓取的应用要求。与2D视觉相比,3D视觉技术的优点有:
(1)3D视觉可以提供目标物体6DOF的位姿数据,而2D视觉仅能提供平面内3DOF的位姿数据;
(2)3D视觉能给出目标物体的深度信息或物体表面的点云信息。
但与此同时,3D视觉技术在机器人抓取应用中仍然面临许多挑战:
(1)点云空洞:用3D相机捕捉反光、透明、网状物体表面的点云信息,经常会出现数据的丢失,丢失的点云数据形成了点云空洞;
(2)点云粘连:多个物体杂乱堆放或者两个物体表面靠近摆放时,不同物体表面的点云会粘连在一起,这就涉及到如何稳定、准确地进行点云分割;
(3)点云密度不一致:物体表面与3D相机之间的相对位姿、物体表面的颜色均会影响点云的密度,使得目标场景的点云密度不一致,这在一定程度上给点云处理算法带来了困难;
(4)视野局限:有限的相机视角、遮挡和阴影效果,都会阻碍3D相机获得抓取目标的表面全貌,进而阻碍对抓取目标的识别;
(5)速度:3D视觉的原理要求其处理的数据量较大。3D相机的分辨率越高,所采集的点云质量越好,越能表征物体表面更细微的几何特征,但相应地带来的数据量就越大。为了适应实际应用需要,如何提高3D相机获取目标场景点云的速度、点云处理算法的速度仍是需要研究的课题。
此外,相机传感器的噪声,点云分割噪声,光照条件的变化,物体的颜色等诸多因素都是3D视觉技术所面临的问题。
本文主要研究3D视觉技术在机器人抓取作业中的应用。文章第二部分介绍抓取作业机器人3D视觉系统的设计,包括视觉设备的选择、与机械设计的关系;第三部分介绍几种3D表面成像技术;第四部分介绍3D视觉处理算法,包括点云分割、3D匹配等;第五部分给出一个实际应用案例:工业机器人结合3D视觉分拣白色抽屉纸盒;第六部分为总结。
2 抓取作业机器人3D视觉系统的设计
2.1 3D相机的选择
图1 3D相机的选择
选择3D相机时需要考虑相机与目标场景之间的距离以及目标场景的尺寸。目标场景最好位于相机的中间视场附近,不超出近视场和远视场的边界,即目标场景的高度不超出测量范围。
3D相机的成像精度需要满足应用场景的抓取精度要求。通常,工作距离越大,3D相机的视场越大,但成像的精度越低。此外,相机的分辨率、点云的获取速度也是评价3D成像系统的重要指标。其中,相机的分辨率决定了点云数据量的大小及其对物体细节的表征程度,关系到点云处理算法的设计。点云的获取时间加上点云处理算法的执行时间必须满足抓取应用的节拍要求。
此外,相机的性价比、系统的可靠性也是选择相机时需要考量的因素。
2.2 光源、遮光板的选择
为了避免外界环境光对视觉系统的影响、保证视觉系统的稳定性,有时需要外加光源和遮光板。外加的光源不能影响3D相机成像。
2.3 视觉系统对机械设计的要求
当相机固定安装时,机器人需要手持标定板做手眼标定。为了方便进行手眼标定,可设计专门的Tool抓持标定板,留出足够的空间以保证标定板在手眼标定过程中不会与机器人发生干涉。相机固定安装的优点是,对Tool位姿进行变更后,无需再做机器人手眼标定。
当机器人手持相机拍照时,一般要求抓取作业Tool(夹具、吸盘)不遮挡相机的视野。
3 3D表面成像技术
3D表面成像/重构/测量技术,可用于测量物体表面上点的(x,y,z)坐标,测量结果可表示为深度图{zij=(xi,yj),i=1,2,…,L,j=1,2,…,M}。除了测量三维坐标,3D表面成像系统也可输出物体表面空间点的其他光学特征值,如反射率、颜色等。这时的点云测量结果可一般表示为{Pi=(xi,yi,zi,fj),i=1,2,…,N},其中,fi为一向量,代表第i个点的光学特征值。如常见的RGB-D(红绿蓝-深度)测量数据可表示为{Pi=(xi,yi,zi,ri,gi,bi),i=1,2,…,N}。
目前,常见的3D表面成像技术有:双目立体视觉(binocular stereo vision),多目立体视觉(multi-view stereo vision),线结构光三角测量(laser triangulation with sheet of light),编码结构光三角测量(encoded structured light),飞行时间深度测量(time of flight),聚焦深度测量(depthfrom focus),光度立体视觉(photometric stereovision)。
3.1 双目立体视觉(binocular stereo vision)
使用两个相机拍摄同一个目标场景,通过匹配场景内同一物理目标点投影到两幅图像中的像点(同源点),测量得到该点的空间三维坐标。双目立体视觉的主要任务是双目系统的标定和同源点的匹配。其中,同源点的匹配(立体匹配,stereo matching)方法有相关法、多重网格法和多扫描线法。这些方法都依赖于目标场景的纹理、结构等特征,因此若能主动制造特征,如投射随机分布的散斑图案、编码结构光等图案,则能变被动为主动,通过增强匹配的鲁棒性,使方法具有普适性。
图2 双目立体视觉原理示意图
3.2 线结构光三角测量(laser triangulation with sheet of light)
线激光器投射出的光平面照射到物体表面上会形成表征其轮廓的亮线,这些窄亮的细线通常被称为光条。线结构光三角测量的基本思想是:通过相机拍摄线结构光发射器所照射的目标物体,得到物体表面上光条中心位置的一系列3D坐标。因此,目标物体与线结构光成像系统之间做相对运动并在多个不同位置进行拍照测量,才能获得目标物体完整的3D表面轮廓。
线结构光三角测量的主要任务是:标定相机及其与光平面之间的相对位姿,标定目标物体与成像系统之间的相对运动,提取光条的中心点。
图3 线结构光三角测量原理示意图
3.3 编码结构光三角测量(encoded structured light)
编码结构光激光器向目标物体投射经过特殊设计的编码图案,基于不同的图案编码方法,相机可能需要拍摄一幅或多幅被激光器照射的目标物体表面图像,通过对比图像上经过物体表面调制的编码光图案与未调制的编码光图案可以测量获得目标表面的3D形貌。与线结构光三角测量相比,只要编码光能够照射到整个物体表面,物体与成像系统之间无需做相对运动即可获取物体表面的几何全貌。
图4 编码结构光原理示意图
3.4 飞行时间深度测量(time of flight)
传感器向目标物体发射经过调制的近红外光脉冲,然后再接收从物体表面反射回来的光脉冲,通过计算返回脉冲与发射脉冲之间的相位差即可测出目标物体的深度。
3.5 聚焦深度测量(depth from focus)
由于相机的景深有限,在某物距下,目标物体表面上只有一部分点能够在成像平面上清晰成像。聚焦深度测量利用这一原理,通过拍摄不同物距下同一物体的多幅图像,提取图像上清晰成像的像点位置,计算得到物体表面上各点的深度坐标。聚焦深度测量技术的精度一般高于双目立体视觉和线结构光三角测量,但因其需要配合远心镜头或显微镜头使用,只适于对小尺寸物体进行测量。
3.6 光度立体视觉(photometric stereo vision)
物体表面反射光量的多少取决于该表面与光源和观察者之间的相对姿态。采用不同的角度对静止目标物体进行照明,在每个照明角度下,使用同一台相机在同一个固定视角下拍摄一幅图像,光度立体视觉技术使用这组图像估计出目标物体表面的法向量。目前,机器人抓取应用中使用的3D相机主要采用3.1 ~ 3.4中的成像原理。
4 3D视觉处理算法
按照不同的功能,3D视觉处理算法可分为:
4.1 点云滤波
点云的滤波(filter)算法主要用于点云数据的预处理,可实现去噪、平滑、采样、特征提取等功能。滤波方法有:双边滤波、高斯滤波、条件滤波、随机采样一致性滤波等。
4.2 点云特征估计
4.2.1 点云局部特征估计
点云的局部特征(local feature)估计算法用于估计点云中一点或一点周围数个邻近点的特征值。这些特征包括法向量、曲率、边界、点特征直方图(PFH)、快速点特征直方图(FPFH)、视角特征直方图(VFH)、NARF描述子、旋转投影统计特征(Rotational Projection Statistics)等。
4.2.2 点云整体特征估计
点云的整体特征(global feature)估计算法用于估计某个点云集合的特征,如点云的表面积、最小外接盒、最大直径、截面曲线等。
4.3 点云关键点提取
关键点(key point),也称为兴趣点,因为具有某种特点,可依照预先定义的标准被稳定地识别出来。点云关键点的提取算法有:Harris3D、ISS3D、NARF、SIFT、SUSAN、Trajkovic3D。
4.4 点云配准
由于遮挡等原因,为了获得完整的目标表面3D点云,常常需要从不同的视角对同一目标物体进行扫描。点云配准(registration)技术是将这些点云数据两两进行匹配,计算它们之间互相重叠的部分,将它们拼接在一起,获得更全面的目标物体表面点云。点云配准算法有最近点迭代法(ICP)。
4.5 点云分割
点云分割(segmentation)算法用于将点云数据分割成不同的子集。依据应用需求,可采用不同的分割方法,如平面分割、柱面分割、欧几里得聚类提取、超体聚类分割、区域生长分割、基于最小割的点云分割、基于法向量差的点云分割等。除了上述的3D点云分割方法,点云的分割也可结合2D图像进行。先在2D图像上应用边缘提取、深度学习等算法,然后再对点云进行分割。
4.6 三维匹配
三维匹配(3D matching)算法的功能是在搜索数据中找到目标物体并确定它的3D位姿,其中,搜索数据可以是3D点云或2D图像。三维匹配算法可分为基于形状的3D匹配、基于表面的3D匹配和可变形表面的3D匹配。
4.7 点云拟合
如果某个点云子集为已知的几何形状,如平面、柱面、球面,可利用点云拟合算法进行拟合求出相应的位姿和几何参数信息。
此外,点云处理算法还包括k维树、八叉树等方法。
在机器人抓取作业中,视觉的重要任务之一是目标物体位姿的估计。要估计位姿,正确地分割点云是前提。通常,综合利用4.1~4.4中的方法,然后再对点云进行分割,最后利用三维匹配或点云拟合估计出目标物体的位姿。
5 实际案例研究
5.1 白色抽屉纸盒机器人3D视觉分拣
任务描述:料框内杂乱堆放着不同型号的白色抽屉纸盒,并且这些纸盒的各个表面的长宽尺寸各不相同。3D视觉系统通过识别纸盒表面的尺寸将不同型号的纸盒区分开来,再由机器人将它们分别分拣到不同的料框中。
5.1.1 视觉系统设计
长方形铁质料框的尺寸为500 X 385 X 180 mm,壁厚为1.5 mm,为避免反光并增加视觉对比度,在料框表面喷涂哑光黑漆。3D相机采用固定安装,在长方形料框的正上方进行拍摄。考虑到ABB 2600机器人的工作范围,3D相机距离料框底部的高度需大于1000 mm并尽可能取小值。
综合考虑各种因素,这里选用Ensenso N20-1202-16-BL相机,该相机的工作原理是投射散斑纹理的双目立体视觉技术,其分辨率为1280 X 1024像素,最小、最大和最佳工作距离分别为1100 mm、2200 mm、1400 mm。料框底部距离相机的距离设计为1400 mm,在该距离下3D相机的Z向分辨率为1.037 mm,能够满足四个真空吸盘的抓取精度要求;纸盒的最大堆叠高度不超过230 mm,Ensenso N20-1202-16-BL在1150mm工作距离下的视野范围为572.90 X 497.96 mm,能够满足视野要求。为避免环境光的影响,在相机顶部上方安装遮光板,在相机旁边加设白色光源。
图5 白色抽屉盒分拣场景示意图
5.1.2 视觉方法描述
为了识别纸盒表面的长宽尺寸、估计纸盒表面的位姿,就需要对纸盒表面的3D点云进行正确分割。这里将2D图像处理技术与3D点云处理技术相结合:首先,相机接收到触发信号,打开散斑投影仪拍摄一幅3D点云图像;然后,关闭散斑投影仪,拍摄一幅左相机矫正灰度图像。Ensenso通过计算左相机矫正图像上各像素点的空间3D坐标,生成一幅3D点云图像。因而,Ensenso所拍摄的3D点云图像(有三个通道,其像素值分别代表X,Y,Z坐标)上各点的像素值与左相机矫正图像上同一位置的像素值是一一对应的,可通过分割左相机矫正图像来实现纸盒表面3D点云的分割。
视觉程序设计思路:
首先,利用边缘提取、边缘连接、腐蚀、膨胀等算法在左相机矫正图像上分割出不同的纸盒表面区域;
然后,取每个区域所对应的3D点云,估计这片点云的厚度,若厚度小于阈值t,则认为这片点云代表了一个纸盒表面的几何形貌,计算这片点云的3D最小外接盒区域,即可估算得到纸盒表面的长宽尺寸、中心位置与姿态;若厚度大于阈值t,则认为2D图像分割失败,这片点云至少代表两个纸盒表面的几何形貌,这时先根据点云的法向量、曲率等特征对其进行3D分割,然后再进入上述的厚度判断与尺寸、位姿的计算程序。为了缩短程序执行时间,对点云做3D分割之前,预先对其进行采样以减少数据量。
检查纸盒表面上方是否有遮挡,过滤掉上方有遮挡的结果,防止抓取过程中发生碰撞或损坏。
最后,将处理结果按照表面中心高度、姿态方向和表面尺寸进行综合排序,输出到机器人抓取路径规划程序当中。路径规划程序根据视觉输出的结果引导机器人运动并控制夹具动作。
5.1.3 视觉算法处理结果
如图6(左上)所示,料框中散乱堆放着三种型号的白色抽屉纸盒,由视觉程序输出的纸盒表面尺寸与位姿的排序结果如表1所示。可以看出,视觉程序没有给出被遮挡纸盒表面的计算结果。
图6左上:Ensenso左相机矫正灰度图;右上:3D点云渲染效果图;左下:排序输出结果;右下:5#纸盒表面点云图
表1 白抽屉盒视觉算法输出结果
经过测试,在该视觉系统下,纸盒表面尺寸的测量误差小于5 mm,表面中心定位误差小于2 mm,表面姿态估计误差小于5度。使用intel i7-6820HQ CPU、主频2.7GHz的LenovoP50笔记本计算机,视觉处理时间为3~5 s。
6 总结
本文主要研究3D视觉技术在机器人抓取作业中的应用,归纳了3D视觉技术在机器人抓取作业中面临的挑战,对机器人抓取视觉系统的设计方法进行了总结,搜集了当前主要的3D成像技术及3D视觉算法,最后给出了应用案例。
从零开始学习三维视觉核心技术SLAM,扫描查看介绍,3天内无条件退款
早就是优势,学习切忌单打独斗,这里有教程资料、练习作业、答疑解惑等,优质学习圈帮你少走弯路,快速入门!
欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?
从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
从零开始一起学习SLAM | 用四元数插值来对齐IMU和图像帧
最新AI干货,我在看