技术领域
[0001] 本
发明涉及具有三维(3D)箱体定位功能(three-dimensional box location functionality)的机器人系统。
背景技术
[0002] 机器人是能以自动方式执行复杂或重复任务的机电装置。典型的机器人响应于任务指令和传感反馈在多个轴线上运动。例如,机器人可以使用各种近程
传感器、触觉传感器、
开关、测压元件(load cell)、换能器等,以评估给定工作任务执行过程中其周围的环境。机器人可以经由一个或多个
末端执行器作用于位于其环境中的物体,
[0003] 材料处理机器人具体说被程控为在自动工作环境下对物体进行定位、选择和移动。例如,在典型的制造设施中,这样的机器人可以用于执行重复的配装操作(kitting operations),在该操作中部件被
包装在箱体中。因此,在配装操作中机器人必须首先定位目标箱体,识别位于箱体中的零件或部件,且随后执行末端执行器控制工序,以给定的方式操作识别的部件。
发明内容
[0004] 公开本文的机器人系统包括机器人,例如具有末端执行器的材料操作机器人。机器人系统还包括一个或多个三维(3D)点
云摄像机,也称为红、绿、蓝加深度(RGB-D)摄像机,且
控制器与机器人和摄像机(一个或多个)通信。每一个摄像机经由收集的3D点云深度信息和二维(2D)红、绿、蓝(RGB)
颜色数据而对目标物体成像,且输出具有2D颜色数据和3D深度数据的自动同步数据文件。控制器可以实施为具有处理器和实体的非瞬时
存储器的计算机装置,该控制器被程控或以其他方式配置为自动地将来自摄像机的2D和3D信息融合,且其后在各种图像深度处将融合信息中的平面和线分段,以便在机器人的
工作空间中定位可能的/候选的箱体且识别其
位置和取向。如果候选箱体匹配目标箱体的已知参数,即具有已知尺寸和/或颜色特点的箱体,则控制器针对目标箱体执行控
制动作。示例性的控制动作可以包括,经由传递到机器人的控制命令而命令机器人的末端执行器抓持和/或移动目标箱体和/或位于其中的部件。
[0005] 在具体
实施例中,机器人系统包括具有末端执行器的机器人、三维(3D)点云摄像机和控制器。摄像机可操作为收集和输出具有二维(2D)颜色数据和3D点云深度数据的数据文件。与3D点云摄像机和机器人通信的控制器包括记录了用于定位目标箱体的指令的存储器和处理器。通过处理器执行指令使得控制器从3D点云摄像机接收数据文件,且还接收一组输入标准。控制器在接收的数据文件中检测多个2D线段和多个3D线段,且产生一组3D线,包括将至少一些2D线段向回投射到多个3D线段中的至少一些上。控制器还将产生的一组3D线分组为相交线组,在相交线组上执行法向量分组(NVG)功能,以由此识别可能/候选平面,且从该一组候选平面中识别相交平面组。随后从相交平面组识别可能/候选箱体,且控制器经由接收的输入标准在识别的候选箱体中定位目标箱体。控制器还配置为做出通过机器人的末端执行器在目标箱体上执行控制动作的命令。
[0006] 一种用于机器人系统的方法,包括经由机器人系统的控制器接收一组输入标准,且经由控制器接收来自机器人系统的点云摄像机的图像数据文件。图像数据文件包括2D颜色数据,通常描述为红、绿、蓝(RGB)数据和3D深度数据。方法还包括在接收的数据文件中检测多个2D线段和多个3D线段,产生一组3D线,包括将至少一些2D线段向回投射到至少一些3D线段上,且将产生的一组3D线分组为相交线组。另外,方法对相交线组执行NVG功能,以识别一组候选平面,从该一组候选平面识别相交平面组,且从相交平面组识别候选箱体。其后,方法经由输入标准从识别的候选箱体中定位目标箱体,且包括经由控制器命令机器人系统的机器人的末端执行器在目标箱体上执行控制动作。
[0007] 在另一实施例中,机器人系统包括具有多指抓持器形式的末端执行器的材料操作机器人、可操作为收集和输出具有RGB颜色图像数据形式的2D数据和3D点云深度数据的数据文件的3D点云摄像机、和与点云摄像机和机器人通信的控制器。控制器包括录了用于定位目标箱体的指令的存储器和处理器。执行指令使得控制器从3D点云摄像机接收数据文件、接收一组输入标准(包括目标箱体的长度、宽度、高度和/或颜色),且在接收的数据文件中检测多个2D线段和多个3D线段。在该实施例中控制器还经由低通
过滤器处理接收的图像数据文件,以在检测2D和3D线段之前从数据文件除去
信号噪声,且产生一组3D线,包括经由最佳拟合统计处理将至少一些2D线段向回投射到至少一些3D线段上。
[0008] 在该实施例中的控制器还配置为将产生的一组3D线分组为相交线组,在相交线组上执行NVG功能以识别一组候选平面,从候选平面组识别一组相交平面,且从相交平面组识别候选箱体。其后,控制器经由输入标准在识别候选箱体中定位目标箱体且命令通过机器人抓持器抓持被定位的目标箱体。
[0009] 在下文结合
附图进行的对实施本发明的较佳模式做出的详尽描述中能容易地理解上述的本发明的特征和优点以及其他的特征和优点。
附图说明
[0010] 图1是机器人系统的示例性实施例的示意图,具有本文所述的三维(3D)箱体定位功能。
[0011] 图2是描述了经由图1所示的机器人系统定位和识别目标箱体的方法的
流程图。
[0012] 图3是3D线融合任务的示意图,其作为图2所示的方法的一部分将2D和3D线段融合或关联。
[0013] 图4是图2的方法的线分组任务示意图。
[0014] 图5是图2所示的方法的不足的平面分组任务的示意图。
[0015] 图6是图1所示的控制器的可能的箱体构造确定过程的示意图。
具体实施方式
[0016] 参考附图,其中几幅图中相同的附图标记表示相同或相似的部件,且从图1开始,机器人系统10被显示为具有一个或多个三维(3D)点云摄像机12(也称为红、绿、蓝加深度(RGB-D)摄像机)、具有关节15和末端执行器16的机器人14、和控制器(C)20。控制器20与机器人14和摄像机(一个或多个)12通信,控制器被程控为经由执行实施方法100的指令而自动地定位和识别箱体18形式的目标物体,方法的例子在下文通过参考图2描述。机器人系统10因其被分配工作任务的执行情况而可以使用各种其他传感器。尽管出于简单的目的从图
1省略,但是示例性传感器可以包括限位开关、近程传感器、
力或
载荷传感器、触觉传感器等。
[0017] 在本发明的范围内,图1的箱体18可以是任何类型的矩形箱体,用于保持作为库存的部件或零件,或在制造或仓储设施中运送这样的部件。即箱体18在其长度(L)、宽度(W)和高度(H)维度每个中通过直线边缘21限定。这种常规的箱体18可以堆叠、聚集、组合,或它们可以在给定设施中单独定位。为了使得机器人14能对箱体18执行期望的控制动作,例如经由末端执行器16抓持和/或移动箱体18和/或其任何内容物,机器人14必须首先能从典型的工厂的工人、机械和设备造成的潜在信号噪声中定位和识别箱体18。
[0018] 典型的视觉系统和高
分辨率成像装置可以用于在设施中定位物体。然而,这样的方法不令人满意,原因是相对高的
硬件成本、
图像处理复杂且需要通过大训练图像库来明确地训练视觉系统。本发明目的是通过简单地
指定要被机器人14定位的目标箱体的尺寸和/或颜色而避免明确视觉系统训练(explicit vision system training)。通过将从3D点云摄像机12而来的2D和3D信息融合,可以以实时应用的方式鲁棒地定位目标箱体。本方法的优点是如下所述的相对有优势的两种类型的图像。为了进一步减少成本,3D点云摄像机12可以被实施为相对不贵的本领域已知的游戏摄像机(gaming camera),且由此相对于现有的
机器学习技术,例如神经网络、
支持向量机等,执行本方法的成本可以是有吸引力的。
[0019] 图1的机器人的可以实施为材料操作机器人,其具有作为末端执行器16的可促动抓持器,其适用于在箱体18已经定位且被正确地识别为目标箱体时抓持或拾取箱体18。通过例子的方式,机器人14可以构造为典型的6轴
工业机器人,其对从控制器20而来的一组输入命令(箭头11)作出响应。输入命令(箭头11)可以实施为力、阻抗、和/或位置命令、或任何其他合适命令,其最终操作末端执行器16以接近和
接触箱体18。虽然出于简单的目的作了省略,但是机器人14的每一个关节15可以通过一个或多个关节促动器驱动,例如滚珠
丝杠关节
电动机、直线促动器、旋转促动器等,如本领域理解的。
[0020] 图1的控制器20可以实施为一个或多个计算机装置,其具有处理器(P)22和实体的非瞬时存储器(M)24,在其上记录了用于执行方法100的指令。存储器24可以包括
磁性或光学存储器、电可擦写可编程
只读存储器(EEPROM),等。额外瞬时存储器可以按照需要包括例如随机
访问存储器(RAM)、用于内部信号缓冲的存储器等。控制器20的其他硬件可以包括高速时钟、模拟-数字(A/D)和数字-模拟(D/A)
电路和任何所需的输入/输出(I/O)电路和装置以及信号调制和缓冲电路。位于控制器20中或易于被控制器20访问的各控制
算法可以存储在存储器24和/或其他合适的存储器中,且经由处理器22自动地执行,以提供所需的控制功能。
[0021] 仍然参见图1,3D点云摄像机12可操作为,每当箱体18定位在摄像机12的
视野17中时就对箱体18成像,且将收集的箱体18的云数据传递(箭头19)回到控制器20,用于根据方法100进行处理。如本领域已知的,3D点云是3D
坐标系(例如X、Y、Z笛卡尔坐标系)中的一组数据点。这种摄像机能捕获描述目标物体表面轮廓的任何数量的数据点,且将收集的点云数据作为具有同步的颜色数据的深度数据文件输出(箭头19)。控制器20可以接收限定要被机器人14定位的具体目标箱体的已知尺寸、形状、颜色和/或其他描述性参数的预定目标信息(箭头13)。
[0022] 由此,在处理从3D点云摄像机(一个或多个)12而来的收集点云数据(箭头19)之前,图1所示的控制器20得知应要被定位的目标箱体的尺寸、颜色和/或其他识别特征。尽管出于简单的目的在图1中显示了两个3D点云摄像机12,但是本方法100可以用于仅一个3D点云摄像机12,或任何其他数量的3D点云摄像机12。非限制性的示例性3D点云摄像机12可以具有示例性的高达30
帧每秒的640×480
像素的2D分辨率,或高达12帧每秒的1280×960的分辨率。3D点云摄像机12可以具有从距目标物体1m的距离处
感知约0.3mm的分辨率的示例性3D点准确性和深度,且可以定位为距被成像目标物体约0.5到1.5m。其他摄像机构造可以使用而不脱离本发明的范围,只要收集点云数据(箭头19)包括2D颜色图像和3D深度数据且是自动同步的即可。如本领域已知的,术语“自动同步”是指同一被收集点云数据(图1的箭头19)中的被收集的2D数据与3D数据的时间同步。
[0023] 参见图2,方法100的示例性实施例从步骤102开始,其中被收集的点云数据(图1的的箭头19)被接收且被预处理。点云数据含有2D颜色(RGB)数据以及3D位置数据,例如点云中的每一个数据点具有X、Y和Z坐标。点云摄像机12被自动同步,其如本领域已知的是指在同一被收集的点云数据(图1的箭头19)中的被收集的2D数据与3D数据的时间同步。术语“预处理”是指已知的图像处理技术,例如图像平滑和边缘增强。平滑和增强可以抑制被收集图像中的高频和/或低频噪声,例如通过使用带通过滤器等过滤掉具体的频带。
[0024] 在步骤104,控制器20接下从步骤102的预处理图像执行2D/3D线检测过程。用于检测图像中直线特征的各种方法是本领域已知的。这种方法通常用于
计算机视觉、
图像分割和模型识别。非限制性的示例性线检测处理包括
霍夫变换或快速霍夫变换。
[0025] 在步骤106,图1的控制器20将之前在步骤104检测的2D和3D线融合。如上所述,用于图1的点云摄像机12的摄像机类型是3D点云摄像机,其是这样的装置,其将作为RGB图像的2D数据和描述自由空间中XYZ或其他3D位置的相应3D点输出。2D数据相对于3D数据更精确,但是通过2D数据无法准确地知道收集的2D数据点在自由空间中位于何处。另一方面,3D数据提供了丢失的位置信息,但是该额外信息相对于2D数据不太精确。步骤106因此包括将用于同一目标的这些不同数据段融合。
[0026] 简要地参见图3,从步骤104输出的一组示例性的线40包括2D线段42和3D线段44,所述2D线段代表检测的2D线,且所述3D线段代表从来自图1的3D点云摄像机12的同一自动同步图像数据文件而来的3D点云数据。图2的步骤106可以包括将2D数据向回投射到3D空间,如箭头A示出的。相对于2D数据,3D数据通常有噪声且不太精确,且由此是不连续的。即在步骤104发生线检测之后,3D数据中仍然可以存在间隙,如分开的3D线段44之间的间距所示。从2D线段42而来的数据可以通过图1的控制器20向回投射到3D空间,以填充3D线段44中的间隙,例如使用最佳拟合统计方法。步骤106产生一组新的3D线,其可以之前的分段的3D线段连接,所述分段的3D线段与一个或多个2D线段关联。在此发生之后,从步骤104而来的2D线信息可以被抛弃。方法100随后前进到步骤108。
[0027] 图2的步骤108可以经由图1的控制器20执行线分组(line grouping)功能,以便确定来自步骤106的新的3D线如何或是否相交。如果线在点P处相交,则线被分组为潜在候选线组,即LG=(L1,L2,P),其中LG代表给定的候选线组,L1代表候选组中的一条线,L2是同一组中相交的线,且P是线L1和L2的3D空间中的交叉点。
[0028] 简要地参见图4,为了执行步骤108,图1的控制器20可以计算用于每一个相交线对(L1,L2,P)的法向量(n)。其他候选线被表示为LC。所有线段可以按照需要延长以便找出交叉点P。法向量(n)可以被计算为线L1和L2的向量积(cross product),即n=L1×L2,如本领域已知的。由此,步骤108的输出是一组法向量(n)。
[0029] 图2的步骤110包括执行法向量分组(Normal Vector Grouping:NVG)处理。已知的NVG处理是基于位于共同平面上的3D点具有相似的法向量(n)这一事实做出的。NVG由此使用IJK空间,其在本领域是已知的,是垂直于XYZ空间的另一种3D坐标空间,以确定来自步骤108的哪个法向量(n)指向同一方向。越是法向量的集合越是集中,则越可能的是向量是从受关注的同一平坦或平面表面发出的。
[0030] 这种表面可以是图1的机器人14正试图定位(作为方法100的一部分)的目标箱体的矩形表面。由此,步骤110通过将k个相交对的一组矢量Ni进行分类而输出一组候选平面,即Ni={(L1,L2,P)k}。一旦已经确定一组候选平面则方法100前进到步骤112。
[0031] 在步骤112,参见图5,控制器接下来将来自步骤110的候选平面的平面分组为平面分组(PG)或不足平面分组(deficient plane grouping:DPG)。在平面分组中,组被描述为PG=(L1,L2,L3,L4,n)。如果通过同一法向量(n)和同一
相位识别了两个
正交组,则其描述了一个平面。在不足平面分组中,组可以被描述为DPG=(L4,L5,L6,n),即对于可能的面(F)存在少于四条的线。由此描述了与完全平面有差距的事物,在该具体情况下是通过让线段(L5,L6)和线段L4相交,所有这些线段实际上可能在或可能不在同一平面中。然而,这样的可能/候选平面仍然可以是有用的和有效的,且因此可以被图1的控制器20认为是有助于识别给定目标箱体的补充信息。
[0032] 步骤114包括用在步骤112确定的候选平面构造箱体。控制器20可以从步骤112的平面分组(PG)确定图6所示的三个平面(P1,P2,P3)是否已经被识别为彼此成直
角地布置,即是典型的矩形箱体的形式。步骤114可以包括将平面分组为具有三个平面、两个平面和一个平面的不同候选箱体。一旦如此分组,则方法100前进到步骤116。
[0033] 在图2的步骤116,图1的控制器20接下来做出有关步骤114的箱体的决定。具有三个平面(P1,P2,P3)的候选箱体(BC)在图6示出。这种候选箱体(BC)很可能是真实的矩形箱体。即使仅两个平面以直角布置,例如平面P1和P2,该信息也仍然可以表示最可能的候选箱体,因为一些额外的尺寸数据以深度的形式提供。如果仅一个平面(P1,P2,或P3)被识别,则这相对于具有两个或三个平面的候选箱体而言给出不佳的候选箱体,因为经由单个平面无法提供深度信息。然而,单个平面识别仍然可以是对图1的控制器20来说有用的,例如通过将
顶点之间的已知距离与用于被定位的具体目标箱体的预定尺寸标准进行匹配。
[0034] 作为步骤116的一部分,图1的控制器20可以经由输入标准从识别的候选箱体中定位目标箱体,所述输入标准例如是预定目标信息(图1的箭头13)。例如,如果预定目标信息是每个边为0.5m的尺寸的箱体,则控制器20可将候选箱体(BC)的尺寸与该信息比较,以确定尺寸是否充分匹配。颜色是另一可能的比较标准。
[0035] 在检测到匹配时,控制器20可以命令通过图1所示的机器人14的末端执行器16而在目标箱体上执行控制动作,例如的箱体18。示例性控制动作可以包括经由将输入命令传送(图1的箭头11)到同一图中所示的关节15的促动器而命令机器人14将末端执行器16夹持到箱体18上。以这种方式,一旦使用如上所述的方法100将箱体18正确地识别为目标箱体,则其可被机器人14作用。
[0036] 尽管已经对执行本发明的较佳模式进行了详尽的描述,但是本领域技术人员可得知在所附的
权利要求的范围内的用来实施本发明的许多替换设计和实施例。