计算机装置、控制机械手臂夹取和放置物件的方法与流程

文档序号:25875366发布日期:2021-07-16 17:37阅读:265来源:国知局
计算机装置、控制机械手臂夹取和放置物件的方法与流程

1.本发明涉及机器人控制技术领域,具体涉及一种计算机装置、控制机械手臂夹取和放置物件的方法。


背景技术:

2.现行机械手臂架设须经由专业且训练良好的工程师进行复杂且长时间的架设。此外,现行的机械手臂无法适应于各种环境做出抓与取的动作。


技术实现要素:

3.鉴于以上内容,有必要提出一种计算机装置、控制机械手臂夹取和放置物件的方法,可使用立体视觉,让机械手臂认知到自己所在的三度空间位置,以及各种对象的相关位置,经由此方式,简化机械手臂的定位问题且配合相关对象辨识,可以让机械手臂在空间中抓取各种不同的对象。
4.本发明的第一方面提供一种控制机械手臂夹取和放置物件的方法,所述方法包括:
5.获取机械手臂的深度摄像机所拍摄的多组图像,其中,每组图像包括一张rgb图像和一张深度图像,由此所述多组图像包括多张rgb图像和多张深度图像;将每组图像所包括的rgb图像与深度图像建立关联;利用预设的图像处理算法处理所述多张rgb图像;将经过处理的所述多张rgb图像与所述多张深度图像作深度信息融合,从而获得多张融合图像;基于所述多张融合图像构建三维地图;及控制所述机械手臂基于所述三维地图夹取和放置物件。
6.优选地,所述利用预设的图像处理算法处理所述多张rgb图像包括:对所述多张rgb图像作第一次处理,由此获得经过所述第一次处理的多张rgb图像,该第一次处理包括:利用surf算法对所述多张rgb图像中每相邻的两张rgb图像作特征点匹配;对经过所述第一次处理的多张rgb图像作第二次处理,由此获得经过所述第二次处理的多张rgb图像,该第二次处理包括:利用ransac算法,确认经过所述第一次处理的多张rgb图像中的每相邻的两张rgb图像是否正确匹配特征点,并剔除匹配错误的特征点;及对经过所述第二次处理的多张rgb图像作第三次处理,由此获得经过所述第三次处理的多张rgb图像,该第三次处理包括:利用ransac算法,对经过所述第二次处理的多张rgb图像中每相邻的两张rgb图像计算图形角度差异,并基于计算得到的图形角度差异对应修正每相邻的两张rgb图像中的一者,使得任意相邻的两张rgb图像的图形角度相同。
7.优选地,所述基于所述多张融合图像构建三维地图包括:计算所述多张融合图像中的每张融合图像的每个像素点在实体空间的三维坐标;及将所述每张融合图像与该每张融合图像的每个像素点在实体空间的三维坐标建立关联,并缝合所述多张融合图像,由此获得所述三维地图。
8.优选地,所述每张融合图像的每个像素点p1在实体空间的三维坐标为(x1,y1,
z1),其中,z1=d/s;x1=(xx1-cx)*z1/fx;y1=(yy1-cy)*z1/fy;其中,xx1为像素点p1在融合图像中的横坐标,yy1为像素点p1在融合图像中的纵坐标,d为像素点p1在融合图像中的竖坐标,fx为所述深度摄像机在所述实体空间所在的坐标系的x轴上的焦距;fy为所述深度摄像机在所述实体空间所在的坐标系的y轴上的焦距;cx为该深度摄像机的光圈中心到所述x轴的距离,cy为该深度摄像机的光圈中心到到所述y轴的距离;s为所述深度摄像机的缩放值。
9.优选地,所述控制所述机械手臂基于所述三维地图夹取和放置物件包括:当已经获得所述三维地图时,基于所述三维地图定位所述机械手臂的位置坐标;读取目标物件的第一位置坐标,该第一位置坐标为所述目标物件当前所在位置的坐标;控制所述机械手臂基于该机械手臂的位置坐标以及所述目标物件的第一位置坐标抓取所述目标物件;读取所述目标物件的第二位置坐标,该第二位置坐标为所述目标物件需要放置的位置所在的坐标;及控制所述机械手臂基于所述目标物件的所述第二位置坐标放置所述目标物件。
10.优选地,所述控制所述机械手臂基于所述三维地图夹取和放置物件还包括:于控制所述机械手臂基于该机械手臂的位置坐标以及所述目标物件的第一位置坐标抓取所述目标物件后,确定所述机械手臂是否成功抓取所述目标物件;当所述机械手臂抓取所述目标物件失败时,辨识所述目标物件,并测量所述目标物件的位置坐标;及控制所述机械手臂基于所测量的所述目标物件的位置坐标来抓取所述目标物件。
11.本发明第二方面提供一种计算机装置,所述计算机装置包括:存储器;处理器;以及多个模块,所述多个模块被存储在所述存储器中并被由所述处理器执行,所述多个模块包括:获取模块,用于获取机械手臂的深度摄像机所拍摄的多组图像,其中,每组图像包括一张rgb图像和一张深度图像,由此所述多组图像包括多张rgb图像和多张深度图像;执行模块,用于将每组图像所包括的rgb图像与深度图像建立关联;所述执行模块,还用于利用预设的图像处理算法处理所述多张rgb图像;所述执行模块,还用于将经过处理的所述多张rgb图像与所述多张深度图像作深度信息融合,从而获得多张融合图像;所述执行模块,还用于基于所述多张融合图像构建三维地图;及控制所述机械手臂基于所述三维地图夹取和放置物件。
12.优选地,所述利用预设的图像处理算法处理所述多张rgb图像包括:对所述多张rgb图像作第一次处理,由此获得经过所述第一次处理的多张rgb图像,该第一次处理包括:利用surf算法对所述多张rgb图像中每相邻的两张rgb图像作特征点匹配;对经过所述第一次处理的多张rgb图像作第二次处理,由此获得经过所述第二次处理的多张rgb图像,该第二次处理包括:利用ransac算法,确认经过所述第一次处理的多张rgb图像中的每相邻的两张rgb图像是否正确匹配特征点,并剔除匹配错误的特征点;及对经过所述第二次处理的多张rgb图像作第三次处理,由此获得经过所述第三次处理的多张rgb图像,该第三次处理包括:利用ransac算法,对经过所述第二次处理的多张rgb图像中每相邻的两张rgb图像计算图形角度差异,并基于计算得到的图形角度差异对应修正每相邻的两张rgb图像中的一者,使得任意相邻的两张rgb图像的图形角度相同。
13.优选地,所述基于所述多张融合图像构建三维地图包括:计算所述多张融合图像中的每张融合图像的每个像素点在实体空间的三维坐标;及将所述每张融合图像与该每张融合图像的每个像素点在实体空间的三维坐标建立关联,并缝合所述多张融合图像,由此
获得所述三维地图。
14.优选地,所述每张融合图像的每个像素点p1在实体空间的三维坐标为(x1,y1,z1),其中,z1=d/s;x1=(xx1-cx)*z1/fx;y1=(yy1-cy)*z1/fy;其中,xx1为像素点p1在融合图像中的横坐标,yy1为像素点p1在融合图像中的纵坐标,d为像素点p1在融合图像中的竖坐标,fx为所述深度摄像机在所述实体空间所在的坐标系的x轴上的焦距;fy为所述深度摄像机在所述实体空间所在的坐标系的y轴上的焦距;cx为该深度摄像机的光圈中心到所述x轴的距离,cy为该深度摄像机的光圈中心到到所述y轴的距离;s为所述深度摄像机的缩放值。
15.优选地,所述控制所述机械手臂基于所述三维地图夹取和放置物件包括:当已经获得所述三维地图时,基于所述三维地图定位所述机械手臂的位置坐标;读取目标物件的第一位置坐标,该第一位置坐标为所述目标物件当前所在位置的坐标;控制所述机械手臂基于该机械手臂的位置坐标以及所述目标物件的第一位置坐标抓取所述目标物件;读取所述目标物件的第二位置坐标,该第二位置坐标为所述目标物件需要放置的位置所在的坐标;及控制所述机械手臂基于所述目标物件的所述第二位置坐标放置所述目标物件。
16.优选地,所述控制所述机械手臂基于所述三维地图夹取和放置物件还包括:于控制所述机械手臂基于该机械手臂的位置坐标以及所述目标物件的第一位置坐标抓取所述目标物件后,确定所述机械手臂是否成功抓取所述目标物件;当所述机械手臂抓取所述目标物件失败时,辨识所述目标物件,并测量所述目标物件的位置坐标;及控制所述机械手臂基于所测量的所述目标物件的位置坐标来抓取所述目标物件。
17.本发明实施例中所述的计算机装置、控制机械手臂夹取和放置物件的方法,通过获取深度摄像机所拍摄的多组图像,每组图像包括一张rgb图像和一张深度图像,由此所述多组图像包括多张rgb图像和多张深度图像;将每组图像所包括的rgb图像与深度图像建立关联;利用预设的图像处理算法处理所述多张rgb图像;将经过处理的所述多张rgb图像与所述多张深度图像作深度信息融合,从而获得多张融合图像;基于所述多张融合图像构建三维地图;及控制所述机械手臂基于所述三维地图夹取和放置物件,可使用立体视觉,让机械手臂认知到自己所在的三度空间位置,以及各种对象的相关位置,经由此方式,简化机械手臂的定位问题且配合相关对象辨识,可以让机械手臂在空间中抓取各种不同的对象。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
19.图1是本发明较佳实施例提供的构建三维地图的方法流程图。
20.图2是本发明较佳实施例提供的控制机械手臂夹取和放置物件的方法的流程图。
21.图3是本发明较佳实施例提供的控制系统的模块图。
22.图4是本发明较佳实施例提供的计算机装置和机械手臂的示意图。
23.如下具体实施方式将结合上述附图进一步说明本发明。
24.主要元件符号说明
[0025][0026]
具体实施方式
[0027]
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
[0028]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
[0030]
图1是本发明较佳实施例提供的三维地图构建方法的流程图。
[0031]
需要说明的是,在本实施例中,所述三维地图构建方法可以应用于计算机装置中,对于需要进行三维地图构建的计算机装置,可以直接在计算机装置上集成本发明的方法所提供的用于构建三维地图的功能,或者以软件开发工具包(software development kit,sdk)的形式运行在计算机装置上。
[0032]
如图1所示,所述三维地图构建方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
[0033]
步骤s1、计算机装置获取机械手臂的深度摄像机所拍摄的多组图像,其中,每组图像包括一张rgb图像和一张深度图像。因此,所述多组图像包括多张rgb图像和多张深度图像。计算机装置将每组图像所包括的rgb图像与深度图像建立关联。本实施例中,每张rgb图像对应一张深度图像。
[0034]
在本实施例中,所述多组图像为计算机装置控制所述机械手臂的深度摄像机在第一预设角度范围内每转动第二预设角所拍摄的图像。
[0035]
在本实施例中,每组图像所包括的rgb图像和深度图像为所述深度摄像机同时刻所拍摄,即每组图像所包括的rgb图像的拍摄时间和深度图像的拍摄时间相同。
[0036]
在一个实施例中,所述第一预设角度范围为360度。所述第二预设角度为30度、60度或其他角度值。
[0037]
举例而言,计算机装置可以控制所述深度摄像机每顺时针转动30度即控制该深度摄像机对当前场景进行拍摄,获得当前场景的rgb图像和深度图像。
[0038]
在一个实施例中,所述深度摄像机安装于机械手臂的末端。
[0039]
步骤s2、计算机装置对所述多张rgb图像作第一次处理,由此获得经过所述第一次处理的多张rgb图像。该第一次处理包括:利用surf算法对所述多张rgb图像中每相邻的两张rgb图像作特征点匹配。
[0040]
本实施例中,所述相邻的两张rgb图像可以是指拍摄时间相邻的两张rgb图像。
[0041]
举例而言,假设所述深度摄像机先后依次拍摄了三张rgb图像,分别是r1、r2、r3,则r1和r2为相邻的两张rgb图像,r2和r3为相邻的两张rgb图像。那么计算机装置则利用surf算法对该三张rgb图像中的r1和r2作特征点匹配,以及对r2和r3作特征点匹配。
[0042]
步骤s3、计算机装置对经过所述第一次处理的多张rgb图像作第二次处理,由此获得经过所述第二次处理的多张rgb图像。该第二次处理包括:利用ransac算法,确认经过所述第一次处理的多张rgb图像中的每相邻的两张rgb图像是否正确匹配特征点,并剔除匹配错误的特征点。
[0043]
步骤s4、计算机装置对经过所述第二次处理的多张rgb图像作第三次处理,由此获得经过所述第三次处理的多张rgb图像。该第三次处理包括:利用ransac算法,对经过所述第二次处理的多张rgb图像中每相邻的两张rgb图像计算图形角度差异,并基于计算得到的图形角度差异对应修正每相邻的两张rgb图像中的一者,使得任意相邻的两张rgb图像的图形角度相同。
[0044]
在一个实施例中,被修正的rgb图像为每相邻的两张rgb图像中拍摄时间在后的rgb图像。
[0045]
举例而言,仍然假设所述深度摄像机先后依次拍摄了三张rgb图像,分别是r1、r2、r3,当该r1、r2、r3经过所述第二次处理后,计算机装置则可以利用ransac算法对经过所述第二次处理后的r1和r2计算图形角度差异,并基于计算得到的图形角度差异修正r2,使得r1和r2的图形角度相同;然后利用ransac算法对经过所述第二次处理后的r2和r3计算图形角度差异,并基于计算得到的图形角度差异修正r3,使得r2和r3的图形角度相同。
[0046]
步骤s5、计算机装置将经过所述第三次处理的多张rgb图像与所述多张深度图像作深度信息融合,从而获得多张融合图像。
[0047]
所述多张融合图像中的每张融合图像是指经过所述第三次处理的每张rgb图像融合了对应的深度图像的深度信息的图像。即融合后的图像既包含深度信息,也包含色彩信息。
[0048]
本实施中,计算机装置可以将经过所述第三次处理的多张rgb图像中的每张rgb图像的相素值与对应的深度图像的深度值作1:1的迭合。
[0049]
举例而言,假设像素点p1在经过所述第三次处理的rgb图像中坐标为(xx1,yy1),该像素点p1在对应的深度图像中的深度值为d,则将经过所述第三次处理的rgb图像的相素值与对应的深度图像的深度值作1:1的迭合后,该像素点p1在融合图像中的坐标为(xx1,yy1,d)。即xx1为像素点p1在融合图像中的横坐标,yy1为像素点p1在融合图像中的纵坐标,d为像素点p1在融合图像中的竖坐标。
[0050]
步骤s6、计算机装置基于所述多张融合图像构建三维地图,并存储所述三维地图。例如,将所述三维地图存储于该计算机装置的存储器中。
[0051]
在一个实施例中,计算机装置可以基于所述多张融合图像中的每张融合图像的深度信息来构建所述三维地图。
[0052]
在一个实施例中,所述基于所述多张融合图像构建三维地图包括(a1)-(a2):
[0053]
(a1)计算所述多张融合图像中的每张融合图像的每个像素点在实体空间的三维坐标。
[0054]
在一个实施例中,所述每张融合图像的每个像素点在实体空间的三维坐标也即是指每张融合图像的每个像素在实体空间所在的坐标系中的坐标。
[0055]
本实施例中,所述计算机装置建立所述实体空间的坐标系包括:以所述深度摄像机为原点o,以水平向右为x轴,以竖直向上为z轴,以及以垂直于xoz平面所在的一个方向建立y轴。
[0056]
本实施例中,可以利用高斯光学原理来实现对每个像素点在实体空间的三维坐标的计算。
[0057]
举例而言,假设已知像素点p1在融合图像中的坐标为(xx1,yy1,d),像素点p1在实体空间所在的坐标系的坐标为(x1,y1,z1)。假设所述深度摄像机在所述实体空间所在的坐标系的x轴上的焦距为fx,在y轴上的焦距为fy;以及该深度摄像机的光圈中心到所述x轴的距离为cx,到所述y轴的距离为cy;以及所述深度摄像机的缩放值为s。即fx,fy,cx,cy,s均是已知数值。那么z1=d/s;x1=(xx1-cx)*z1/fx;y1=(yy1-cy)*z1/fy。由此即可计算得到每张融合图像的每个像素在实体空间的三维坐标。
[0058]
(a2)将所述每张融合图像与该每张融合图像的每个像素点在实体空间的三维坐标建立关联,并缝合所述多张融合图像,由此获得一副三维地图。
[0059]
在一个实施例中,所述计算机装置可以基于特征的方法、基于流的方法和基于相位相关的方法来缝合所述多张融合图像。此为现有技术,于此不再赘述。
[0060]
步骤s7、计算机装置控制所述机械手臂基于所述三维地图夹取和放置物件。
[0061]
本实施例中,控制所述机械手臂基于所述三维地图夹取和放置物件的方法步骤可参以下对图2的描述。
[0062]
图2是本发明较佳实施例提供的控制机械手臂夹取及放置物件的方法的流程图。
[0063]
需要说明的是,在本实施例中,所述控制机械手臂夹取及放置物件的方法可以应用于计算机装置中,对于需要控制机械手臂夹取及放置物件的计算机装置,可以直接在计算机装置上集成本发明的方法所提供的用于控制机械手臂夹取及放置物件的功能,或者以软件开发工具包(software development kit,sdk)的形式运行在计算机装置上。
[0064]
如图2所示,所述控制机械手臂夹取及放置物件的方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
[0065]
步骤s20,计算机装置确定是否已经获得所述三维地图。当尚未获取所述三维地图时,执行步骤s21。当已经获得所述三维地图时,执行步骤s22。
[0066]
具体地,计算机装置可以查询所述计算机装置的存储器中是否存在三维地图。
[0067]
步骤s21,计算机装置控制设置于机械手臂上的深度摄像机拍摄图像,并基于所拍摄的图像构建所述三维地图。
[0068]
具体地,构建所述三维地图的方法参图1所示的方法步骤s1到s6的记载。
[0069]
步骤s22,当已经获得所述三维地图时,计算机装置基于所述三维地图定位所述机械手臂的位置坐标。
[0070]
在一个实施例中,计算机装置可以使用预设的算法如粒子演算法(particlefilter)、蒙地-卡罗法(monte-carlo)估算机械手臂在所述三维地图中的位置坐标。
[0071]
需要说明的是,所述粒子算法是基于蒙地-卡罗法的方法。具体是使用每个粒子(particle)代表所述三维地图上视觉看到的估计姿态。当机械手臂视觉移动的时候,利用图型特征点比对,赋予不同的粒子不同的权重,错误的粒子权重低,正确粒子权重高。经过不断的递归运算,以及重新采样,特征值高的图型会被比对出来,特征值低的图型会消失(收敛)。由此找到机械手臂在所述三维地图的位置坐标。换句话来讲,使用粒子演算法(particle filter)、蒙地-卡罗法(monte-carlo)估算机械手臂在所述三维地图中的位置坐标为现有技术,因此不再赘述。
[0072]
步骤s23,计算机装置读取目标物件的第一位置坐标。该第一位置坐标为所述目标物件当前所在位置的坐标。
[0073]
本实施例中,所述目标物件即为待抓取的物件,并被所述机械手臂抓取后需要放置到其他位置的物件。所述目标物件的第一位置坐标为在所述三维地图中的坐标。该目标物件的第一位置坐标可以预先存储在计算机装置的存储器中。从而使得当需要夹取该目标物件时,计算机装置可以直接从该存储器中读取该目标物件的第一位置坐标。
[0074]
步骤s24,计算机装置控制所述机械手臂基于该机械手臂的位置坐标以及所述目标物件的第一位置坐标抓取所述目标物件。
[0075]
换句话来讲,计算机装置控制所述机械手臂从该机械手臂的位置移动到所述目标物件的位置,并控制所述机械手臂抓取所述目标物件。
[0076]
步骤s25,计算机装置确定所述机械手臂是否成功抓取所述目标物件。当所述机械手臂抓取所述目标物件失败时,执行步骤s26。当所述机械手臂成功抓取所述目标物件时,执行步骤s28。
[0077]
具体地,计算机装置可以根据所述机械手臂上的力传感器(force sensor)所检测的重量来确定所述机械手臂是否成功抓取所述目标物件。
[0078]
步骤s26,当所述机械手臂抓取所述目标物件失败时,计算机装置辨识所述目标物件,并测量所述目标物件的位置坐标。执行完步骤s26后执行步骤s27。
[0079]
具体地,所述计算机装置可以控制所述机械手臂带动所述深度摄像机,基于所述目标物件的所述第一位置坐标对所述目标物件拍摄照片,并利用模板匹配法从所拍摄的照片中识别所述目标物件。所述计算机装置还可以进一步利用模板匹配法将所识别的物件与所述三维地图进行匹配,从而在所述三维地图中识别到所述目标物件并获取该目标物件在
所述三维地图中的位置坐标。将该目标物件在所述三维地图中的位置坐标作为所测量获得的所述目标物件的位置坐标。
[0080]
步骤s27,计算机装置控制所述机械手臂基于所测量的所述目标物件的位置坐标来抓取所述目标物件。执行完步骤s27后执行步骤s25。
[0081]
步骤s28,当所述机械手臂成功抓取所述目标物件时,计算机装置读取所述目标物件的第二位置坐标。该第二位置坐标为所述目标物件需要放置的位置所在的坐标。
[0082]
步骤s29,计算机装置控制所述机械手臂基于所述目标物件的所述第二位置坐标放置所述目标物件。
[0083]
步骤s30,计算机装置判断所述机械手臂是否成功放置所述目标物件。当所述机械手臂成功放置所述目标物件时,结束流程。当所述机械手臂放置所述目标物件失败时,执行步骤s31。
[0084]
同样地,计算机装置可以根据所述机械手臂上的力传感器(force sensor)所检测的重量来确定所述机械手臂是否成功放置所述目标物件。
[0085]
步骤s31,计算机装置调整所述第二位置坐标,并控制所述机械手臂基于调整后的所述第二位置坐标放置所述目标物件。执行完步骤s31后执行步骤s30。在一个实施例中,所述计算机装置可以根据用户操作信号来调整所述第二位置坐标。即根据用户的输入来调整所述第二位置坐标。
[0086]
综上所述,本发明实施例中所述的机械手臂夹取和放置物件的方法,通过获取深度摄像机所拍摄的多组图像,每组图像包括一张rgb图像和一张深度图像,由此所述多组图像包括多张rgb图像和多张深度图像;将每组图像所包括的rgb图像与深度图像建立关联;利用预设的图像处理算法处理所述多张rgb图像;将经过处理的所述多张rgb图像与所述多张深度图像作深度信息融合,从而获得多张融合图像;基于所述多张融合图像构建三维地图;及控制所述机械手臂基于所述三维地图夹取和放置物件,可使用立体视觉,让机械手臂认知到自己所在的三度空间位置,以及各种对象的相关位置,经由此方式,简化机械手臂的定位问题且配合相关对象辨识,可以让机械手臂在空间中抓取各种不同的对象。
[0087]
上述图1和图2分别详细介绍了本发明的三维地图构建方法以及机械手臂夹取和放置物件的方法,下面结合图3和图4,对实现所述三维地图的构建以及机械手臂夹取和放置物件的方法的软件装置的功能模块以及硬件装置架构进行介绍。
[0088]
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0089]
参阅图3所示,是本发明较佳实施例提供的控制系统的模块图。
[0090]
在一些实施例中,所述控制系统30运行于计算机装置(例如所述计算机装置3)中。所述控制系统30可以包括多个由程序代码段所组成的功能模块。所述控制系统30中的各个程序段的计算机程序代码可以存储于计算机装置的存储器中,并由所述至少一个处理器所执行,以实现(详见图1描述)三维地图的构建方法和机械手臂夹取和放置物件的方法。
[0091]
本实施例中,所述控制系统30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块301、执行模块302。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
[0092]
为清楚简单说明本发明,下面从构建三维地图的方面来具体说明所述控制系统30
的各个功能模块的功能。
[0093]
获取模块301获取机械手臂的深度摄像机所拍摄的多组图像,其中,每组图像包括一张rgb图像和一张深度图像。因此,所述多组图像包括多张rgb图像和多张深度图像。执行模块302将每组图像所包括的rgb图像与深度图像建立关联。本实施例中,每张rgb图像对应一张深度图像。
[0094]
在本实施例中,每组图像所包括的rgb图像和深度图像为所述深度摄像机同时刻所拍摄,即每组图像所包括的rgb图像的拍摄时间和深度图像的拍摄时间相同。
[0095]
在一个实施例中,所述第一预设角度范围为360度。所述第二预设角度为30度、60度或其他角度值。
[0096]
举例而言,获取模块301可以控制所述深度摄像机每顺时针转动30度即控制该深度摄像机对当前场景进行拍摄,获得当前场景的rgb图像和深度图像。
[0097]
在一个实施例中,所述深度摄像机安装于机械手臂的末端。
[0098]
执行模块302对所述多张rgb图像作第一次处理,由此获得经过所述第一次处理的多张rgb图像。该第一次处理包括:利用surf算法对所述多张rgb图像中每相邻的两张rgb图像作特征点匹配。
[0099]
本实施例中,所述相邻的两张rgb图像可以是指拍摄时间相邻的两张rgb图像。
[0100]
举例而言,假设所述深度摄像机先后依次拍摄了三张rgb图像,分别是r1、r2、r3,则r1和r2为相邻的两张rgb图像,r2和r3为相邻的两张rgb图像。那么执行模块302则利用surf算法对该三张rgb图像中的r1和r2作特征点匹配,以及对r2和r3作特征点匹配。
[0101]
执行模块302对经过所述第一次处理的多张rgb图像作第二次处理,由此获得经过所述第二次处理的多张rgb图像。该第二次处理包括:利用ransac算法,确认经过所述第一次处理的多张rgb图像中的每相邻的两张rgb图像是否正确匹配特征点,并剔除匹配错误的特征点。
[0102]
执行模块302对经过所述第二次处理的多张rgb图像作第三次处理,由此获得经过所述第三次处理的多张rgb图像。该第三次处理包括:利用ransac算法,对经过所述第二次处理的多张rgb图像中每相邻的两张rgb图像计算图形角度差异,并基于计算得到的图形角度差异对应修正每相邻的两张rgb图像中的一者,使得任意相邻的两张rgb图像的图形角度相同。
[0103]
在一个实施例中,被修正的rgb图像为每相邻的两张rgb图像中拍摄时间在后的rgb图像。
[0104]
举例而言,仍然假设所述深度摄像机先后依次拍摄了三张rgb图像,分别是r1、r2、r3,当该r1、r2、r3经过所述第二次处理后,执行模块302则可以利用ransac算法对经过所述第二次处理后的r1和r2计算图形角度差异,并基于计算得到的图形角度差异修正r2,使得r1和r2的图形角度相同;然后利用ransac算法对经过所述第二次处理后的r2和r3计算图形角度差异,并基于计算得到的图形角度差异修正r3,使得r2和r3的图形角度相同。
[0105]
执行模块302将经过所述第三次处理的多张rgb图像与所述多张深度图像作深度信息融合,从而获得多张融合图像。
[0106]
所述多张融合图像中的每张融合图像是指经过所述第三次处理的每张rgb图像融合了对应的深度图像的深度信息的图像。即融合后的图像既包含深度信息,也包含色彩信
息。本实施中,执行模块302可以将经过所述第三次处理的多张rgb图像中的每张rgb图像的相素值与对应的深度图像的深度值作1:1的迭合。
[0107]
举例而言,假设像素点p1在经过所述第三次处理的rgb图像中坐标为(xx1,yy1),该像素点p1在对应的深度图像中的深度值为d,则将经过所述第三次处理的rgb图像的相素值与对应的深度图像的深度值作1:1的迭合后,该像素点p1在融合图像中的坐标为(xx1,yy1,d)。即xx1为像素点p1在融合图像中的横坐标,yy1为像素点p1在融合图像中的纵坐标,d为像素点p1在融合图像中的竖坐标。
[0108]
执行模块302基于所述多张融合图像构建三维地图,并存储所述三维地图。例如,将所述三维地图存储于该计算机装置的存储器中。
[0109]
在一个实施例中,执行模块302可以基于所述多张融合图像中的每张融合图像的深度信息来构建所述三维地图。
[0110]
在一个实施例中,所述基于所述多张融合图像构建三维地图包括(a1)-(a2):
[0111]
(a1)计算所述多张融合图像中的每张融合图像的每个像素点在实体空间的三维坐标。
[0112]
在一个实施例中,所述每张融合图像的每个像素点在实体空间的三维坐标也即是指每张融合图像的每个像素点在实体空间所在的坐标系中的坐标。
[0113]
本实施例中,所述执行模块302建立所述实体空间的坐标系包括:以所述深度摄像机为原点o,以水平向右为x轴,以竖直向上为z轴,以及以垂直于xoz平面所在的一个方向建立y轴。
[0114]
本实施例中,可以利用高斯光学原理来实现对每个像素点的三维坐标的计算。
[0115]
举例而言,假设像素点p1在融合图像中的坐标为(xx1,yy1,d),像素点p1在实体空间所在的坐标系的坐标为(x1,y1,z1)。假设所述深度摄像机在所述实体空间所在的坐标系的x轴上的焦距为fx,在y轴上的焦距为fy;以及该深度摄像机的光圈中心到所述x轴的距离为cx,到所述y轴的距离为cy;以及所述深度摄像机的缩放值为s。即fx,fy,cx,cy,s均是已知数值。那么z1=d/s;x1=(xx1-cx)*z1/fx;y1=(yy1-cy)*z1/fy。由此即可计算得到每张融合图像的每个像素在实体空间的三维坐标。
[0116]
(a2)将所述每张融合图像与该每张融合图像的每个像素点在实体空间的三维坐标建立关联,并缝合所述多张融合图像,由此获得一副三维地图。
[0117]
在一个实施例中,所述执行模块302可以基于特征的方法、基于流的方法和基于相位相关的方法来缝合所述多张融合图像。此为现有技术,于此不再赘述。
[0118]
所述执行模块302基于所构建的所述三维地图控制所述机械手臂夹取及放置物件。
[0119]
下面从控制机械手臂夹取及放置物件的方面来对所述控制系统30的各个功能模块的功能作具体说明。
[0120]
执行模块302确定是否已经获得所述三维地图。
[0121]
具体地,执行模块302可以查询所述计算机装置的存储器中是否存在三维地图。
[0122]
当尚未获取所述三维地图时,获取模块301控制设置于机械手臂上的深度摄像机拍摄图像,执行模块302基于所拍摄的图像构建所述三维地图。
[0123]
当已经获得所述三维地图时,执行模块302基于所述三维地图定位所述机械手臂
的位置坐标。
[0124]
在一个实施例中,执行模块302可以使用预设的算法如粒子演算法(particle filter)、蒙地-卡罗法(monte-carlo)估算机械手臂在所述三维地图中的位置坐标。
[0125]
需要说明的是,所述粒子算法是基于蒙地-卡罗法的方法。具体是使用每个粒子(particle)代表所述三维地图上视觉看到的估计姿态。当机械手臂视觉移动的时候,利用图型特征点比对,赋予不同的粒子不同的权重,错误的粒子权重低,正确粒子权重高。经过不断的递归运算,以及重新采样,特征值高的图型会被比对出来,特征值低的图型会消失(收敛)。由此找到机械手臂在所述三维地图的位置坐标。换句话来讲,使用粒子演算法(particle filter)、蒙地-卡罗法(monte-carlo)估算机械手臂在所述三维地图中的位置坐标为现有技术,因此不再赘述。
[0126]
执行模块302读取目标物件的第一位置坐标。该第一位置坐标为所述目标物件当前所在位置的坐标。
[0127]
本实施例中,所述目标物件即为待抓取的物件,并被所述机械手臂抓取后需要放置到其他位置的物件。所述目标物件的第一位置坐标为在所述三维地图中的坐标。该目标物件的第一位置坐标可以预先存储在计算机装置的存储器中。从而使得当需要夹取该目标物件时,执行模块302可以直接从该存储器中读取该目标物件的第一位置坐标。
[0128]
执行模块302控制所述机械手臂基于该机械手臂的位置坐标以及所述目标物件的第一位置坐标抓取所述目标物件。
[0129]
换句话来讲,执行模块302控制所述机械手臂从该机械手臂的位置移动到所述目标物件的位置,并控制所述机械手臂抓取所述目标物件。
[0130]
执行模块302确定所述机械手臂是否成功抓取所述目标物件。
[0131]
具体地,执行模块302可以根据所述机械手臂上的力传感器(force sensor)所检测的重量来确定所述机械手臂是否成功抓取所述目标物件。
[0132]
当所述机械手臂抓取所述目标物件失败时,执行模块302辨识所述目标物件,并测量所述目标物件的位置坐标。
[0133]
具体地,所述执行模块302可以控制所述机械手臂带动所述深度摄像机,基于所述目标物件的所述第一位置坐标对所述目标物件拍摄照片,并利用模板匹配法从所拍摄的照片中识别所述目标物件。所述执行模块302还可以进一步利用模板匹配法将所识别的物件与所述三维地图进行匹配,从而在所述三维地图中识别到所述目标物件并获取该目标物件在所述三维地图中的位置坐标。将该目标物件在所述三维地图中的位置坐标作为所测量获得的所述目标物件的位置坐标。
[0134]
执行模块302控制所述机械手臂基于所测量的所述目标物件的位置坐标来抓取所述目标物件。
[0135]
当所述机械手臂成功抓取所述目标物件时,执行模块302读取所述目标物件的第二位置坐标。该第二位置坐标为所述目标物件需要放置的位置所在的坐标。
[0136]
执行模块302控制所述机械手臂基于所述目标物件的所述第二位置坐标放置所述目标物件。
[0137]
执行模块302判断所述机械手臂是否成功放置所述目标物件。
[0138]
同样地,执行模块302可以根据所述机械手臂上的力传感器(force sensor)所检
测的重量来确定所述机械手臂是否成功放置所述目标物件。
[0139]
执行模块302调整所述第二位置坐标,并控制所述机械手臂基于调整后的所述第二位置坐标放置所述目标物件。
[0140]
在一个实施例中,所述执行模块302可以根据用户操作信号来调整所述第二位置坐标。即根据用户的输入来调整所述第二位置坐标。
[0141]
综上所述,本发明实施例中所述的控制系统30,通过获取深度摄像机所拍摄的多组图像,每组图像包括一张rgb图像和一张深度图像,由此所述多组图像包括多张rgb图像和多张深度图像;将每组图像所包括的rgb图像与深度图像建立关联;利用预设的图像处理算法处理所述多张rgb图像;将经过处理的所述多张rgb图像与所述多张深度图像作深度信息融合,从而获得多张融合图像;基于所述多张融合图像构建三维地图;及控制所述机械手臂基于所述三维地图夹取和放置物件,可使用立体视觉,让机械手臂认知到自己所在的三度空间位置,以及各种对象的相关位置,经由此方式,简化机械手臂的定位问题且配合相关对象辨识,可以让机械手臂在空间中抓取各种不同的对象。
[0142]
参阅图4所示,为本发明较佳实施例提供的计算机装置和机械手臂的结构示意图。在本发明较佳实施例中,计算机装置3包括存储器31、至少一个处理器32、至少一条通信总线33。机械手臂4包括,但不限于,深度摄像机41和力传感器42。在一个实施例中,所述计算机装置3和机械手臂4可以通过无线通讯方式或者有线通讯方式建立通讯连接。
[0143]
本领域技术人员应该了解,图4示出的计算机装置和机械手臂4的结构并不构成本发明实施例的限定。所述计算机装置3和机械手臂4还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。例如,所述计算机装置还可以包括通讯设备如wifi模块、蓝牙模块等。机械手臂4还可以包括夹具等。
[0144]
在一些实施例中,所述计算机装置3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。
[0145]
需要说明的是,所述计算机装置3仅为举例,其他现有的或今后可能出现的如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
[0146]
在一些实施例中,所述存储器31用于存储计算机程序代码和各种数据,例如安装在所述计算机装置3中的控制系统30,并在计算机装置3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-only memory,rom)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子擦除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者任何其他能够用于携带或存储数据的计算机可读的存储介质。
[0147]
在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述计算机装置3的控制
核心(control unit),利用各种接口和线路连接整个计算机装置3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行计算机装置3的各种功能和处理数据,例如为所述机械手臂4构建三维地图,以及控制机械手臂夹取和放置物件的的功能。
[0148]
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
[0149]
尽管未示出,所述计算机装置3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0150]
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机装置或处理器(processor)执行本发明各个实施例所述方法的部分。
[0151]
在进一步的实施例中,结合图3,所述至少一个处理器32可执行所述计算机装置3的操作装置以及安装的各类应用程序(如所述的控制系统30)、计算机程序代码等,例如,上述的各个模块。
[0152]
所述存储器31中存储有计算机程序代码,且所述至少一个处理器32可调用所述存储器31中存储的计算机程序代码以执行相关的功能。例如,图3中所述的各个模块是存储在所述存储器31中的计算机程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以为机械手臂构建三维地图及控制机械手臂夹取和放置物件的目的。
[0153]
在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以为机械手臂构建三维地图并控制机械手臂夹取和放置物件。
[0154]
具体请参图1-2所示,于此不再赘述。
[0155]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0156]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0157]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0158]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此
外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
[0159]
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1