机器人臂/传感器/工作区系统的自动现场配准和校准的制作方法

文档序号:12286730阅读:216来源:国知局
机器人臂/传感器/工作区系统的自动现场配准和校准的制作方法与工艺

对象的操纵可以是一大类机器人系统(例如,操纵系统)的功能。例如,典型的闭环操纵系统可以包括感知并解释现实世界场景的至少一个光学传感器(例如,深度传感器)和可以进入场景并实现改变(例如,拾取并移动物理对象)的物理操纵器(例如,致动器、机器人臂等)。用物理对象执行有用任务的能力可以取决于机器人臂针对该任务以充分的准确度操纵对象的能力。该准确度可以取决于深度传感器的坐标系与机器人臂的坐标系之间的映射。例如,可以在从由深度传感器生成的深度图像提取的坐标与机器人臂在工作区中的笛卡尔位置之间创建映射。坐标系之间的此类映射还可以称为配准。深度传感器与机器人臂之间的精确且准确的映射是机器人中长期存在的挑战,并且与具有一个或多个深度传感器的基本上任何机器人系统相关。映射中的误差可以导致整体操纵系统的不准确。

配准误差的若干独立源每个都可对整体系统不准确产生贡献。在典型的自然设置中,笛卡尔坐标系常常被选择来表示现实世界,并且机器人臂和深度传感器在该系统中的坐标是通过测量而确定的。线性函数(例如,一般地表示为变换矩阵)然后可以将如深度传感器看到的对象的坐标变换成世界的坐标(或机器人臂的坐标)。此类典型模型可以具有许多潜在误差源。

根据示例,误差可以由测量深度传感器和机器人臂在公共坐标系中的精确放置(其可能最好地说也是困难的)而引起的。此外,整体系统可易于由于系统内的各部分的机械移动而落在校准之外。根据另一示例,虽然可自动地确定坐标原点,但机器人臂、深度传感器和世界的参考系之间的线性映射常常可能是不准确的。例如,深度传感器可具有随着距离或者跨传感器区域而非线性地改变的偏置。根据又另一示例,机器人臂可能具有不那么理想的实现此类机器人臂的末端执行器在期望的笛卡尔坐标处的精确放置的能力。此外,深度传感器或机器人臂(甚至来自同一供应商的那些)可能具有略有不同的偏置,这可以进一步使用于配准的典型方法复杂化。



技术实现要素:

在本文中描述了关于深度传感器和机器人臂的自动现场校准和配准的各种技术,其中,深度传感器和机器人臂在工作区中操作。机器人臂可以包括末端执行器。可以实现用于深度传感器与机器人臂之间的配准的非参数技术。该配准技术可以利用工作区的稀疏采样(例如,在校准和再校准期间收集的)。 可在校准点上形成点云,并且可以在点云内执行内插以将传感器坐标系中的坐标映射到臂坐标系中的坐标。此类技术可以自动地将固有传感器参数结合到深度传感器与机器人臂之间的变换中。因此,不需要利用深度传感器的固有性质或偏置的明确模型。

根据各种实施例,可以控制深度传感器和机器人臂(例如,在配准期间、由控制系统等)。例如,可以接收来自深度传感器的输入点。该输入点可以包括指示在传感器坐标系中的位置的坐标,其中,该位置在工作区中。可以识别在输入点的附近区域内的传感器校准点。传感器校准点可以包括末端执行器在传感器坐标系中的第一坐标,其中,第一坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准(例如,再校准)期间收集的。此外,可以识别分别地对应于传感器校准点的臂校准点。对应于传感器校准点的臂校准点可以包括末端执行器在臂坐标系中的第二坐标,其中,该第二坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准(例如,再校准)期间收集的。此外,可以采用处理器来计算映射到输入点的估计点。该估计点可以包括指示臂坐标系中的位置的坐标。可以基于已识别的传感器校准点和臂校准点来计算估计点。根据各种实施例,可设想本文所述的技术可以类似地使得能够实现计算映射到输入点(其包括臂坐标系中的坐标)的估计点(其包括传感器坐标系中的坐标)。

根据各种实施例,可以执行深度传感器和机器人臂的校准(例如,再校准)。在校准(例如,再校准)期间,可以促使末端执行器基于一定的图案而非连续地穿过工作区,其中,末端执行器根据该图案而在工作区内的位置处停止。在来自末端执行器在该处停止的工作区内的各位置中的每个位置处,可以收集用于由深度传感器检测到的末端执行器在工作区内的位置的传感器校准点,并且可以收集用于由机器人臂检测到的末端执行器在工作区内的位置的臂校准点。可以例如响应于深度传感器在工作区中的移动、机器人臂在工作区中的移动、工作区中超过阈值温度值的温度变化、超过阈值误差值的检测到的映射误差等而对深度传感器和机器人臂进行再校准。

上述发明内容提出了简化的概要以便提供本文所讨论的系统和/或方法的某些方面的基本理解。本发明内容并不是本文所讨论的系统和/或方法的全面概述。并不意图识别关键/要紧的元素或描述此类系统和/或方法的范围。其唯一目的是以简化形式提出某些改变作为稍后提出的更详细描述的前序。

附图说明

图1图示出控制在工作区中操作的深度传感器和机器人臂的示例性系统的功能框图。

图2图示出图1的工作区的示例。

图3图示出指定图2的工作区内的位置的被用于校准(例如,再校准)的示例性图案。

图4图示出包括在校准和配准期间控制深度传感器和机器人臂的控制系统的示例性系统的功能框图。

图5图示出可以使用对工作区中的传感器校准点的Delaunay三角测量来形成的四面体的示例。

图6图示出其中最接近于输入点的预置数目的传感器校准点被识别并用来形成包括输入点的四面体的示例。

图7图示出包括在校准和配准期间控制深度传感器和机器人臂的控制系统的另一示例性系统的功能框图。

图8是图示出控制在工作区中操作的深度传感器和机器人臂的示例性方法的流程图。

图9是图示出控制在工作区中操作的深度传感器和机器人臂的示例性方法的流程图。

图10图示出示例性计算设备。

具体实施方式

现在参考附图来描述关于深度传感器和机器人臂的自动现场校准和配准的各种技术,其中,深度传感器和机器人臂在工作区中操作,在所述附图中自始至终使用相同的参考标号来指代相同元件。在以下描述中,出于说明的目的,阐述了许多特定细节以便提供一个或多个方面的透彻理解。然而,可显而易见的是可在没有这些特定细节的情况下实施此类(多个)方面。在其它实例中,以框图形式示出了众所周知的结构和设备以便促进描述一个或多个方面。此外,应理解的是被描述为由某些系统组件执行的功能可由多个组件执行。类似地,例如,组件可被配置成执行被描述为由多个组件执行的功能。

此外,术语“或”意图意指包括性“或”而不是排他性“或”。也就是说,除非另外指定,或者从上下文显而易见,短语“X采用A或B”意图意指任何自然包括性替换。亦即,以下实例中的任何一个满足短语“X采用A或B”:X采用A;X采用B;或者X采用A和B两者。另外,如在本申请和所附权利要求中使用的冠词“一”和“一个”一般地应被解释成意指“一个或多个”,除非另外指定或者从上下文显而易见的是针对单数形式。

如本文所阐述的,可以实现用于深度传感器与机器人臂之间的配准的非参数技术。该配准技术可以利用工作区的稀疏采样(例如,用放置在机器人臂的末端执行器上的标记)。可在校准点上形成点云,并且可以在点云内执行内插以将传感器坐标系中的坐标映射到臂坐标系中的坐标。此类技术可以自动地将固有传感器参数结合到深度传感器与机器人臂之间的变换中。因此,不需要利用深度传感器的固有性质或偏置的明确模型。本文所述的配准的结果可以用来生成机器人臂朝向由深度传感器感测的目标的到达运动。例如,结果产生的从深度传感器的坐标到机器人臂的坐标的变换中的欧几里德误差可以为亚毫米或毫米的数量级;然而,要求保护的主题不受此限制。

在本文中阐述的技术可以自动地生成用于在传感器坐标系与臂坐标系之间映射坐标的坐标系变换函数。该变换函数可以是可以虑及深度传感器和/或机器人臂的非线性特性的非线性函数。例如,该变换函数可以是封闭型函数、封闭型函数的集合、使用查找表或神经网络来描述等。

现在参考附图,图1图示出控制在工作区106中操作的深度传感器102和机器人臂104的系统100。机器人臂104可以包括末端执行器。此外,系统100包括控制系统108。控制系统108可以控制深度传感器102和机器人臂104;更特别地,控制系统108可以自动地控制工作区106中的深度传感器102和机器人臂104的现场校准和配准。

控制系统108可以创建从由深度传感器102生成的深度图像提取的坐标与机器人臂104在工作区106中的相应笛卡尔位置(例如,机器人臂104的末端执行器的位置)之间的映射。在本文中可以将从由深度传感器102生成的深度图像提取的坐标称为传感器坐标系中的坐标(例如,传感器坐标系中的传感器坐标)。此外,在本文中可以将机器人臂104在工作区106中的笛卡尔位置称为臂坐标系中的坐标(例如,臂坐标系中的臂坐标)。

控制系统108可以在同时地补偿深度传感器102的深度场中的畸变的同时计算来自深度传感器102的传感器坐标系中的传感器坐标与来自机器人臂104的臂坐标系中的臂坐标之间的变换。传感器坐标系中的坐标到臂坐标系中的坐标的变换允许生成用于机器人臂104执行朝着由深度传感器102在深度图像中识别的目标的到达运动的笛卡尔坐标目标。此外,可设想可以由控制系统108将臂坐标系中的坐标变换成传感器坐标系中的坐标。因此,控制系统108同时地校准深度传感器102(例如,补偿深度场中的畸变),并且计算来自深度传感器102的传感器坐标与来自机器人臂104的臂坐标之间的变换。变换的此类同时校准和计算使得能够在执行后续任务时实现深度传感器102与机器人臂104之间的准确协调。

根据各种实施例,控制系统108可以通过网络(或多个网络)向和从深度传感器102和机器人臂104发送数据和接收数据。例如,深度传感器102、机器人臂104以及控制系统108每个可以连接到本地网络(通过该本地网络可以发送数据)。根据另一示例,可设想控制系统108可以由一个或多个服务器计算设备的一个或多个处理器执行(例如,一个或多个数据中心可以包括控制系统108等)。根据又另一示例,将认识到的是控制系统108可以是深度传感器102和/或机器人臂104的一部分。

控制系统108可以使得能够自动地发现补偿深度传感器102和机器人臂104的非线性偏置的坐标变换函数。可以在没有深度传感器102的单独预先校准的情况下由控制系统108发现此类坐标变换函数。坐标变换函数可以虑及机器人臂104的非线性偏置(例如,当末端执行器由于机器人臂104的机械变形而被置于工作区106中的不同位置处时,机器人臂104的特性可以随时间而改变等)。

深度传感器102可以是基本上任何类型的深度传感器。例如,深度传感器102可以是结构光三维(3D)扫描仪、飞行时间扫描仪、已调制光3D扫描仪等。

根据示例,如果由深度传感器102(例如,飞行时间扫描仪)捕捉的场景缺少高度红外(IR)反射性、光亮的或能吸收的表面,则由深度传感器102提供的特定像素处的平均深度读数在时间方面可以是稳定的,显示出小的变化。因此,假如采样在足够的帧范围内发生,则来自深度传感器102的深度读数在许多读数范围内可以是稳定的,并且可以在大部分场景范围内具有高精度。以另一示例的方式,针对深度传感器102可以存在深度场的系统畸变。低频率偏置图案可以在深度图像的侧面达到几厘米且在深度图像的中间达到几毫米。偏置和放置误差一般地针对给定设备是可重复的,并且因此可以潜在地用非均匀映射函数来使其最小化。该畸变可以在不同的距离处改变形状,这意味着相对复杂的非线性偏置模型。控制系统108可以虑及该畸变以实现毫米或亚毫米级的准确度。控制系统108自动地补偿传感器坐标系与臂坐标系之间的坐标变换期间的畸变,而不是尝试单独地对畸变进行建模。

控制系统108可以包括数据储存库110。数据储存库110可以包括传感器校准点112和臂校准点114。传感器校准点112可以包括传感器校准点1、...、以及传感器校准点n,其中,n可以是基本上任何整数。此外,臂校准点114可以包括臂校准点1、...、以及臂校准点n。臂校准点114分别地对应于传感器校准点112。如下面更详细地描述的,控制系统108可以包括校准组件112,其可以收集并存储(例如,在数据储存库110中)传感器校准点112和臂校准点114。

传感器校准点(例如,来自传感器校准点112)包括机器人臂104的末端执行器在传感器坐标系中的第一坐标。第一坐标是先前在末端执行器处于工作区106内的给定位置处的情况下在校准期间收集的(例如,由校准组件122)。此外,对应于传感器校准点的臂校准点(例如,来自臂校准点114)包括机器人臂104的末端执行器在臂坐标系中的第二坐标。第二坐标是先前在末端执行器处于工作区106内的给定位置处的情况下在校准期间收集的(例如,由校准组件122)。因此,针对遍及工作区106的多个位置收集传感器校准点112和相应臂校准点114。所述位置遍及工作区106的数目和放置可以被预定确定(例如,基于预定放置网格)或被主动识别(例如,基于在哪里测量到或预期较大的映射误差)。

控制系统108可以包括接口组件116。接口组件116例如可以从深度传感器102接收到输入点。输入点可以包括指示传感器坐标系中的位置的坐标,其中,所述位置在工作区106中。下面继续对其中接口组件116从深度传感器102接收输入点且此类输入点被映射到臂坐标系中的估计点的示例进行参考。然而,可设想的是接口组件116可以另外或替换地从机器人臂104接收输入点。因此,来自机器人臂104的输入点可以包括指示臂坐标系中的位置的坐标,其中,此类位置在工作区106中。因此,可以将大部分下面的讨论扩展至其中接口组件116从机器人臂104接收输入点的示例,其中,此类输入点可以被映射到传感器坐标系中的估计点。

控制系统108还可以包括样本选择组件118。样本选择组件118可以从数据储存库110中识别在输入点的附近区域内的传感器校准点。因此,样本选择组件118可以将来自数据储存库110的传感器校准点112的子集(小于n)识别为在输入点的附近区域内。此外,样本选择组件118可以从数据储存库110中识别分别地对应于在输入点的附近区域内的传感器校准点的臂校准点。因此,样本选择组件118可以从数据储存库110中识别分别地与在输入点的附近区域内的传感器校准点相对应的臂校准点114的子集(小于n)。

此外,控制系统108可以包括计算映射到输入点的估计点的内插组件120。该估计点可以包括指示臂坐标系中的位置的坐标。因此,由接口组件116接收到的输入点可以包括指示传感器坐标系中的位置的坐标,并且由内插组件120计算的估计点可以包括指示臂坐标系中的位置的坐标,其中,所述位置在工作区106中。估计点可以是由内插组件120基于输入点的附近区域内的传感器校准点和分别地与输入点附近区域内的传感器校准点相对应的臂校准点而计算的。

如上所述,控制系统108可以包括执行深度传感器102和机器人臂104的校准的校准组件122。校准组件122可以执行工作区106中的深度传感器102和机器人臂104的现场校准或再校准。校准组件122可以促使机器人臂104的末端执行器基于一定图案非连续地穿过工作区106。末端执行器可以根据该图案在工作区106内的各位置处停止。

在来自末端执行器在该处停止的工作区106内的各位置中的每个位置处,校准组件122可以收集用于由深度传感器102检测到的末端执行器在工作区106内的位置的传感器校准点和用于由机器人臂104检测到的末端执行器在工作区106内的位置的臂校准点。用于该位置的传感器校准点可以包括工作区106内该位置处的末端执行器在传感器坐标系中的坐标。根据示例,被包括作为传感器校准点的一部分的末端执行器的坐标可以是(例如,末端执行器的给定部分的、被机械地附着到末端执行器的对象等的)质心的坐标,其中,可以基于来自深度传感器102的标准偏差图像的图像矩来计算质心。此外,用于该位置的臂校准点可以包括工作区106内该位置处的末端执行器在臂坐标系中的坐标。此外,校准组件122可以将用于所述位置的传感器校准点和臂校准点存储在数据储存库110中(例如,分别地作为传感器校准点112和臂校准点114的一部分)。

转到图2,图示出工作区106的示例。深度传感器102和机器人臂104在工作区106中操作。机器人臂104可以包括末端执行器202。

在深度传感器102和机器人臂104的校准(例如,再校准)期间,可以促使末端执行器202基于一定图案而非连续地穿过工作区106,其中,末端执行器202根据该图案在工作区106内的各位置处停止。例如,机器人臂104的末端执行器202可以被置于工作区106中的规则间隔处。然而,其它图案意图落在所附权利要求的范围内(例如,间隔尺寸可以是针对工作区106中的给定体积的测量映射误差的函数,可以针对给定类型的深度传感器在图案中设定不同的预置间隔等)。此外,深度传感器102可以检测工作区106中的末端执行器202(例如,末端执行器202上的校准目标)的位置在传感器坐标系中的坐标,而机器人臂104可以检测工作区106中的末端执行器202(例如,校准目标)的该位置在臂坐标系中的坐标。因此,当对深度传感器102和机器人臂104进行校准(例如,再校准)时,可以捕捉传感器坐标系和臂坐标系中的成对的对应点。

图3示出了指定工作区106内的位置的被用于校准(例如,再校准)的示例性图案。可以基于该图案而促使机器人臂104的末端执行器202穿过工作区106,在图3中所示的位置302-316处停止。末端执行器202可以当穿过工作区106时遵循由该图案指定的位置302-316之间的基本上任何路径。

如所描绘的,可以促使机器人104使机器人臂104的末端执行器202在工作区106的体积中的八个位置302-316处停止;然而,可设想的是要求保护的主题不限于所描绘的示例,因为所示的图案是出于举例说明的目的而提供的。例如,机器人臂104的末端执行器202可以在工作区106的体积内的基本上任何数目的位置处停止,工作区106的体积内的位置不需要是等间距的等。

位置302-316的数目和放置可以被预先确定(例如,基于预定放置网格)或被主动识别(例如,基于在哪里测量到或预期较大的映射误差)。例如,可以对具有(或预期将具有)较低映射误差的工作区106内的体积稀疏地采样,同时可以对具有(或预期将具有)较高映射误差的工作区106内的体积更稠密地采样。前述内容可以减少用于执行校准的时间量,同时增强结果得到的变换函数的准确度。

深度传感器102(用圆圈318表示)和机器人臂104(用圆圈320表示)可以检测机器人臂104的末端执行器202在位置302-316中的每一个处的各自坐标。例如,当末端执行器202在位置314处停止时,深度传感器102可以检测用于末端执行器202在工作区106内的位置314的传感器校准点,并且机器人臂104可以检测用于末端执行器202在工作区106内的位置314的臂校准点。用于位置314的传感器校准点包括末端执行器202在传感器坐标系中的第一坐标,并且用于位置314的臂校准点包括末端执行器202在臂坐标系中的第二坐标。

再次地,对图1进行参考。校准组件122可以促使机器人臂104的末端执行器位于由所述图案指定的位置处。在工作区106中的每个位置处,可以收集传感器坐标系和臂坐标系中的一对相应点(例如,传感器校准点和臂校准点)。令n为所收集的点对的数目,并且和分别地是在传感器坐标系和臂坐标系中收集的坐标集合(例如,Pc可以是传感器校准点112且Pa可以是臂校准点114)。

为了收集校准数据(Pc,Pa),可以将深度传感器102置于固定位置上,工作区106的相关部分(例如,机器人臂104在其中进行操作的部分)在视界中。深度传感器102可以具有在深度传感器102的范围内的工作区106的无障碍视界。应认识到的是不需要采用关于深度传感器102的放置的其它限制,但可以将末端执行器上的标记定向于深度传感器102的大体方向上。机器人臂104可以装配有被附着到末端执行器的校准标记,其允许末端执行器在深度传感器102的3D空间中的精确定位。此外,可设想的是深度传感器102可以使用基本上任何技术来估计末端执行器在传感器坐标系中的坐标,只要此类技术提供足够精确的结果即可。下面描述提供亚毫米精度的被深度传感器102用来估计末端执行器在传感器坐标系中的坐标的此类技术的示例;然而,可设想的是要求保护的主题不受此限制,因为可以另外或替换地利用其它技术。

根据示例,可以将多个标记附着到机器人臂104的末端执行器。遵循本示例,可以在工作区106中的每个位置处收集若干校准点对。以举例说明的方式,可附着到机器人臂104的末端执行器的叉状物可以包括空间分隔开的齿,并且每个齿的末端可以包括或被机械附着到标记。所述多个标记可以以行、矩形或基本上任何图案定向,只要图案的参数是已知的即可。使用多个标记可以减少用于对工作区106的体积采样的时间量。

在校准期间,校准组件122可以促使机器人臂104使末端执行器以规则的图案移动穿过工作区106,在由该图案指定的每个位置处停止一段持续时间以允许深度传感器102收集深度样本(例如,传感器校准点112)。在每个点i处,可以基于传感器坐标系中的末端执行器尖端的分段来计算pci,并且可以基于机器人臂104的前向运动模型来计算pai

根据示例,为了构造(Pc,Pa),可以在Pa的凸包内包含机器人臂104的期望工作区(例如,工作区106)。一般地,较稠密的点集可以提供更加准确的变换。然而,给定固定体积,穿过样本点(例如,由图案指定的位置)所花费的时间量与点之间的距离的立方成反比。根据示例,可以在相对于工作区106的不同体积而言具有较大映射误差的工作区106的体积中收集(例如,在校准或再校准期间)较大数目的样本点;然而,要求保护的主题不受此限制。一旦已经由校准组件122捕捉了校准数据,则可以将目标从末端执行器去除(如果用了的话)并用任务适当工具替换。

控制系统108还可以包括初始化组件124,其可以通过采用全局Procrustes分析对深度传感器102和机器人臂104进行初始化。初始化组件124可以利用Procrustes分析来匹配不同坐标系(可能具有不同的标度)中的两个形状。初始化组件124可以利用两个点集XY作为用于Procrustes分析的输入。此外,初始化组件124可以确定在被应用于Y中的点时使到X中的点的距离平方的和最小化的平移、缩放以及旋转操作。

初始化组件124通过使用整个集合PcPa来执行Procrustes分析而使得能够实现传感器坐标系与臂坐标系之间的映射。一旦计算了变换,则初始化组件124可以针对传感器坐标空间中的任何3D点而估计臂坐标空间中的坐标,或者反之亦然。这种技术实现起来可以是简单的,并且一旦计算了变换,则可以将其应用于Pc中的任何点。然而,此类方法可能未虑及深度场中的局部畸变。

初始化组件124可以提供用于深度传感器102和机器人臂104的配准配置的粗略近似。以示例的方式,当深度传感器102和机器人臂104在工作区106中被初始化时,初始化组件124可以生成配准配置的粗略近似。遵循本示例,校准组件122然后可以引起如本文所述的工作区106的附加采样(例如,可以在工作区106的附加采样的至少一部分期间使用配准配置的粗略近似);然而,要求保护的主题不受此限制。

控制系统108还可以包括监视组件126,其监视深度传感器102、机器人臂104以及工作区106的条件。校准组件122可以基于由监视组件126检测到的条件而选择性地发起再校准。可以由监视组件126监视的条件的示例包括深度传感器102在工作区106中的移动、机器人臂104在工作区106中的移动、超过阈值温度值的工作区106中的温度变化、超过阈值误差值的映射误差、其组合等。例如,响应于监视组件126检测到深度传感器102在工作区106中的移动、机器人臂104在工作区106中的移动、超过阈值温度值的工作区106中的温度变化、超过阈值误差值的映射误差等,校准组件122可以对深度传感器102和机器人臂104进行再校准。可设想的是监视组件126可以监视上述条件的子集和/或可以由监视组件126监视其它条件。

以举例说明的方式,部署在工作区106中的视觉引导操纵系统(例如,深度传感器102和机器人臂104)可由于许多因素(例如,设备的故意和非故意移动、温度变化等)而落在初始校准之外。监视组件126和再校准组件122允许在需要时且现场执行再校准。此外,监视组件126可以验证校准(例如,周期性地、在将由深度传感器102和机器人臂104执行的任务之前等)。可以通过用机器人臂104将已知对象放置在工作区106中的几个已知位置处并用深度传感器102来观察已知对象而执行验证。如果监视组件126检测到在阈值误差值以上的映射误差,则监视组件126可以促使校准组件122进行再校准(例如,直至映射误差在阈值误差值以下为止等)。

例如,由校准组件122执行的再校准可以包括促使末端执行器基于一定图案而非连续地穿过工作区106,其中,末端执行器根据该图案而在工作区106内的各位置处停止。将认识到的是被用于再校准的图案可以基本上类似于或不同于先前所使用的图案(例如,被用于校准的图案、被用于在先再校准的图案等)。根据示例,被用于再校准的图案可以允许对工作区106的一部分进行采样,而先前所使用的图案允许跨工作区106采样。以另一示例的方式,被用于再校准的图案可以允许对工作区106的给定体积更稠密地采样。与上述类似,在工作区106内的末端执行器在该处停止的每个位置处,可以收集用于由深度传感器102检测到的位置的传感器校准点,并且可以收集用于由机器人臂104检测到的位置的臂校准点。

可设想的是校准组件122可以在计算被映射到输入点的估计点之后对深度传感器102和机器人臂104进行再校准。根据图示,监视组件126可以从机器人臂104接收测量点。该测量点可以包括指示由机器人臂104检测到的臂坐标系中的位置(例如,由输入点的坐标和估计点的坐标指定的位置)的坐标。监视组件126可以至少部分地基于测量点和由内插组件120计算的估计点来计算映射误差。此外,监视组件126可以将映射误差与阈值误差值相比较。响应于映射误差大于阈值误差值,监视组件126可以促使校准组件122对深度传感器102和机器人臂104进行再校准。例如,校准组件122可以响应于映射误差超过阈值误差值而促使包括所述位置的工作区106的体积被重新采样或更稠密地采样。另外或替换地,校准组件122可以响应于映射误差超过阈值误差值而促使整个工作区106被重新采样。

根据示例,由图案指定的工作区106的给定体积内的位置的数目可以是针对给定体积的映射误差的函数。因此,具有较大映射误差(例如,较大相对偏置)的体积可以具有与具有较低映射误差(例如,较小的相对偏置)的体积相比更多的位置,在所述位置处图案促使末端执行器停止以便收集传感器校准点和相应的臂校准点;然而,要求保护的主题不限于此。

为了将输入点wc从传感器坐标系映射到臂坐标系中的估计点,样本选择组件118可以用来自包括wcPc的顶点对四面体τ进行定位。所述顶点可以进一步连同Pa中的已知对应关系一起被内插组件120用来生成估计点。如下面更详细地描述的,内插组件120可以使用τ中的wc的重心坐标使用局部Procrustes分析或线性内插来生成估计点。

转到图4,图示出包括在校准和配准期间控制深度传感器102和机器人臂104的控制系统108的另一系统400。控制系统108可以包括如本文所述的接口组件116、样本选择组件118、内插组件120、校准组件122、初始化组件124、监视组件126以及数据储存库110。此外,控制系统108可以包括分段组件402,其对遍及工作区106的传感器校准点112使用Delaunay三角测量来形成四面体。因此,分段组件402可以找到用以形成四面体404的Pc的Delaunay三角测量。可以将四面体404保持在数据储存库110中。

图5图示出可以对工作区106中的传感器校准点506-514(例如,传感器校准点112)使用Delaunay三角测量来形成的四面体502-506的示例。四面体502可以包括传感器校准点508、传感器校准点510、传感器校准点512以及传感器校准点514作为顶点。四面体504可以包括传感器校准点506、传感器校准点508、传感器校准点510以及传感器校准点512作为顶点。

如下面更详细地描述的,样本选择组件118可以通过识别包括输入点516的特定四面体来识别在输入点516的附近区域内的传感器校准点。因此,如所描绘的,样本选择组件118可以识别到输入点516在四面体502内。此外,可以将四面体502的顶点识别为是输入点516的附近区域内的传感器校准点。

再次地,对图4进行参考。根据各种实施例,控制系统108可以采用局部Procrustes分析来计算映射到由接口组件116接收到的输入点的估计点。可以通过使用来自将在传感器空间中进行变换的输入点周围的邻域的数据执行Procrustes分析来缓解深度场中的局部畸变。

如上所述,分段组件402可以找到Pc的Delaunay三角测量。响应于接口组件116从深度传感器102接收到输入点,样本选择组件118可以从由分段组件402形成的四面体404中识别特定四面体。由样本选择组件118识别的特定四面体包括输入点。因此,在由样本选择组件118识别的输入点的附近区域内的传感器校准点是特定四面体的顶点。此外,样本选择组件118可以识别分别地对应于特定四面体的顶点的臂校准点。内插组件120可以基于特定四面体的顶点和分别地对应于特定四面体的顶点的臂校准点而使用Procrustes分析来计算变换。该变换可以由内插组件120响应于例如输入点的接收而计算;然而,根据其它示例,可设想的是可以在输入点的接收之前(例如,响应于由分段组件402创建四面体404等)计算变换。内插组件120可以进一步对输入点应用变换以计算估计点。因此,为了导出用于臂坐标系中的点wc的估计,可以由样本选择组件118找到包括wc的四面体,并且内插组件120可以使用τ的顶点以及Pa中的相应点来执行Procrustes分析。

可以通过对中的特定四面体进行定位且然后利用此类四面体的顶点来执行Procrustes分析而执行局部Procrustes分析。局部Procrustes分析与全局Procrustes分析相比可以更好地处理深度场中的局部畸变。此外,此类方法与全局Procrustes分析相比一般地可以提供从传感器坐标系到臂坐标系的更准确的变换。

根据其它实施例,控制系统108可以采用Delaunay重心技术来计算映射到由接口组件116接收到的输入点的估计点。再次地,如上文所阐述的,分段组件402可以找到Pc的Delaunay三角测量。响应于接口组件116从深度传感器102接收到输入点,样本选择组件118可以从由分段组件402形成的四面体404中识别特定四面体。由样本选择组件118识别的特定四面体包括输入点。此外,在由样本选择组件118识别的输入点的附近区域内的传感器校准点是特定四面体的顶点。此外,样本选择组件118可以识别分别地对应于特定四面体的顶点的臂校准点。内插组件120可以计算输入点相对于特定四面体的顶点的重心坐标。此外,内插组件120可以基于所述重心坐标和分别地对应于特定四面体的顶点的臂校准点来对估计点进行内插。

再次地,对图1进行参考。根据其它实施例,可以由控制系统108采用组合重心内插技术。根据此类实施例,响应于接口组件116从深度传感器102接收到输入点,样本选择组件118可以识别最接近于输入点的预置数目的传感器校准点112。此外,内插组件120可以通过形成包括输入点的一个或多个四面体来计算映射到输入点的估计点。可以在顶点来自最接近于输入点的预置数目的传感器校准点的情况下创建四面体。针对每个四面体,内插组件120可以计算输入点相对于四面体的顶点的重心坐标。内插组件120可以进一步基于所述重心坐标和分别地对应于四面体的顶点的臂校准点对来自四面体的估计点的值进行内插。此外,内插组件120可以组合来自一个或多个四面体的估计点的值以计算映射到输入点的估计点。

图6示出了其中识别最接近于输入点的预置数目的传感器校准点并用来形成包括输入点的四面体的示例。如所图示的,由样本选择组件118识别最接近于输入点614的六个传感器校准点602-612。内插组件120可以形成四面体616和四面体618。四面体616和四面体618每个可以包括输入点614。针对四面体616,内插组件120可以计算输入点614相对于四面体616的顶点(例如,传感器校准点604、传感器校准点608、传感器校准点610以及传感器校准点612)的重心坐标。内插组件120可以进一步基于所述重心坐标和分别地对应于四面体616的顶点的臂校准点对来自四面体616的估计点的值进行内插。内插组件120可以类似地计算来自四面体618(和由包括输入点614的k个最接近传感器校准点602-612形成的任何不同四面体)的估计点的值。此外,内插组件120可以组合来自一个或多个四面体(例如,四面体616、四面体618、任何不同四面体等)的估计点的值以计算映射到输入点614的估计点。

再次地,对图1进行参考。重心坐标可以相对于单形体(例如,三角形、四面体等)的顶点对该单形体的内部上的点进行定位。可以对同构重心坐标进行归一化,使得单形体内部的坐标总和为1,并且如果函数的值在顶点处是已知的,则可以将所述同构重心坐标用来对用于单形体内部的点的函数值进行内插。

如本文所采用的,可以使用同构重心坐标来近似遍及被采样体积的凸包的臂坐标。具体地,给定传感器坐标系中的四面体,可以使用以下公式相对于顶点τ1、τ2、τ3和τ4找到wc的重心坐标:

在前文中,将D定义为以下矩阵的行列式:

如果全部四个重心坐标都是正的,则wc被包括在τ内,并且使用与τ的顶点相关联的臂坐标值wa,内插组件120可以根据下式在臂坐标系中进行内插:

在前文中,是对应于校准数据中的的臂坐标系中的坐标。

为了补偿训练集Pa中的可能噪声,可以使用多个四面体。具体地,给定传感器坐标系中的点wc,可以构造Ω,其为Pc中的wc的一组k个最近邻。这产生与Pa中的相应点配对的来自Pc的一组候选顶点:

此外,可以生成,其可以包括唯一四面体,该唯一四面体的顶点是Ω的成员且包括wc。令为通过使用的第i个成员的重心内插而获得的臂坐标系中的wc的估计。可以使用下式在臂坐标系中计算wc的最终估计为:

在上文中,m是中的成员的数目。可以将前述内容称为组合重心内插。

此外,如上文结合Delaunay重心技术所述,还可以利用使用Pa的Delaunay三角测量获得的单个四面体内部的重心内插。

一般地,重心内插技术可以使得能够基于到相邻点的相对接近度来调整计算的变换,而局部Procrustes技术可以产生用于相机空间中的给定四面体中的任何位置的公共变换。重心技术可以计算三维位置;然而,此类技术可能未提供传感器和臂坐标系之间的旋转的估计。然而,可设想的是可以由控制系统108同时地实现重心内插和Procrustes分析。

转到图7,图示出包括在校准和配准期间控制深度传感器102和机器人臂104的控制系统108的另一系统700。控制系统108还可以包括外推组件702,其可以针对给定输入点使用由初始化组件124生成的变换,其中,初始化组件124采用全局Procrustes分析来生成变换。更特别地,该给定输入点可以包括指示在传感器校准点112的凸包外面的传感器坐标系中的位置的坐标。因此,如果第一输入点在传感器校准点112的凸包外面,则外推组件702可以使用从全局Procrustes分析生成的变换对映射到第一输入点的第一估计点进行外推,而如果第二输入点在传感器校准点112的凸包内,则内插组件120可以使用本文所述的技术中的一个或多个对映射到第二输入点的第二估计点进行内插。

更一般地,下面是可以被深度传感器102用来估计机器人臂104的末端执行器在传感器坐标系中的坐标的技术的示例。如下所述,可以基于来自深度传感器102的标准偏差图像的图像矩来计算质心。此外,末端执行器的坐标可以是质心的坐标。然而,应认识到的是要求保护的主题不限于示例性技术,并且其它技术可以另外或替换地由深度传感器102使用。此外,应认识到的是被描述为由深度传感器102执行的以下技术的至少一部分可以由校准组件122(或者一般地控制系统108)执行。

深度传感器102可以采用标记分段。为了将用机器人臂104来校准深度传感器102的过程自动化,可以向机器人臂104的工具法兰安装标记。该标记可以允许精确且准确地进行末端执行器尖端的分段。为了确保尖端的笛卡尔坐标是精确的,可以在做分段之前由深度传感器102累积许多帧(frame)。此外,由于对象的边缘处的深度读数通常是有噪声的,所以可以执行图像分段,并且可以由深度传感器102在标准偏差图像(与深度帧相反)中计算质心的欧几里德坐标。标准偏差图像可以是与深度图像相同尺寸(例如,512×424像素等)的二维(2D)阵列:

Sij是在N个样本范围内计算的用于像素(i,j)的传感器深度读数的标准偏差估计。

一旦生成了标准偏差图像,深度传感器102可以滤出落在感兴趣工作包线外面(例如,1.2 m等)的深度值。此外,可以清除场景中的可能混淆标记的对象。深度传感器102可以自上而下、从左至右扫描图像,寻找场景上的第一稳定像素(例如,基于预置标准偏差阈值、1.5-2 mm等)。一旦发现此类像素,深度传感器102可以开始扫描其邻域,并且如果看到足够的稳定的像素,则可以假设标记已被发现。因此,深度传感器102可以使用图像矩来计算质心:

在前文中,Mij是标准偏差帧上的第一阶图像矩:

如上文所阐述的,T(例如,在2 mm与5 mm之间等)是用于单独像素的标准偏差的截止阈值;在截止阈值以上,在计算图像矩时不包括像素。对标准偏差的值求反可以具有向具有稳定深度读数的像素分配较高权值的效果。因此,可以计算用于标记的质心的XY坐标。

为了计算Z坐标(深度),深度传感器102可以对XY周围的像素区域(例如,3×3或5×5)求平均值并记录平均深度。因此,可以计算用于末端执行器的尖端的估计3D坐标。

此外,由于标记尺寸可以是已知的,所以可以基于其运动模型来获得臂坐标系中的公共点的笛卡尔坐标:

可以将两个坐标集合记录为数据储存库110中的链接对。将此过程重复n次,可以收集n个匹配的3D点的两个集合并保持在数据储存库110中(一个来自深度传感器102且一个来自机器人臂104)。

用于校准光学传感器(例如,深度传感器)的常规方法经常包括校准固有参数(诸如图像平面轴的标度和倾斜以及透镜畸变)以及非固有参数(诸如坐标系之间的空间变换)两者。可以通过分解固有性质和非固有性质的估计来执行传统方法,或者可将各校准组合。相反地,本文所阐述的技术使得能够在没有深度传感器的单独预先校准的情况下自动地发现传感器坐标系与臂坐标系之间的转换函数。

图8-9图示出关于控制在工作区中操作的深度传感器和机器人臂的示例性方法。虽然示出了方法并描述为按序列执行的一系列动作,但应理解并认识到的是本方法不受序列的顺序限制。例如,某些动作可以按照与本文所述不同的顺序发生。另外,一个动作可以与另一动作同时地发生。此外,在某些实例中,可能并不需要所有动作以实现本文所述的方法。

此外,本文所述的动作可以是可以由一个或多个处理器实现和/或存储在计算机可读介质/多个介质上的计算机可执行指令。计算机可执行指令可以包括例程、子例程、程序、执行线程等。此外,可以将方法的动作的结果存储在计算机可读介质中、在显示设备上显示等。

图8图示出控制在工作区中操作的深度传感器和机器人臂的方法800。机器人臂可以包括末端执行器。在802处,可以从深度传感器接收输入点。该输入点包括指示在传感器坐标系中的位置的坐标,其中,该位置在工作区中。在804处,可以识别输入点的附近区域内的传感器校准点。传感器校准点包括末端执行器在传感器坐标系中的第一坐标,其中,第一坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准(例如,再校准)期间收集的。在806处,可以识别分别地对应于传感器校准点的臂校准点。对应于传感器校准点的臂校准点包括末端执行器在臂坐标系中的第二坐标。此外,第二坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间(例如,再校准)期间收集的。在808处,可以采用处理器来计算映射到输入点的估计点。该估计点可以包括指示臂坐标系中的位置的坐标。可以基于传感器校准点(例如,在输入点的附近区域内的传感器校准点)和臂校准点(例如,分别地对应于在输入点的附近区域内的传感器校准点的臂校准点)来计算估计点。

参考图9,图示出控制在工作区中操作的深度传感器和机器人臂的另一方法900。再次地,机器人臂可以包括末端执行器。在902处,可以从机器人臂接收输入点。该输入点可以包括指示在臂坐标系中的位置的坐标,其中,该位置在工作区中。在904处,可以识别输入点的附近区域内的臂校准点。臂校准点可以包括末端执行器在臂坐标系中的第一坐标。第一坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间(例如,再校准)期间收集的。在906处,可以识别分别地对应于臂校准点的传感器校准点。对应于臂校准点的传感器校准点可以包括末端执行器在传感器坐标系中的第二坐标,第二坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间(例如,再校准)期间收集的。在908处,可以采用处理器来计算映射到输入点的估计点。该估计点可以包括指示传感器坐标系中的位置的坐标。可以基于臂校准点(例如,在输入点的附近区域内的臂校准点)和传感器校准点(例如,分别地对应于在输入点的附近区域内的臂校准点的传感器校准点)来计算估计点。

现在阐述各种示例。

示例1: 一种控制在工作区中操作的深度传感器和机器人臂的方法,所述机器人臂包括末端执行器,所述方法包括:从深度传感器接收输入点,该输入点包括指示传感器坐标系中的位置的坐标,该位置在工作区中; 识别输入点的附近区域内的传感器校准点,传感器校准点包括末端执行器在传感器坐标系中的第一坐标,第一坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;识别分别地对应于传感器校准点的臂校准点,对应于传感器校准点的臂校准点包括末端执行器在臂坐标系中的第二坐标,第二坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;以及采用处理器来计算映射到输入点的估计点,该估计点包括指示臂坐标系中的位置的坐标,该估计点是基于以下各项计算的:传感器校准点;以及臂校准点。

示例2:根据示例1所述的方法,还包括执行校准,校准的执行包括:促使末端执行器基于一定图案而非连续地穿过工作区,其中,所述末端执行器根据该图案而在工作区内的各位置处停止;以及在来自工作区内的末端执行器在该处停止的各位置中的每个位置处:收集用于由深度传感器检测到的末端执行器在工作区内的位置的传感器校准点,用于位置的传感器校准点包括工作区内的该位置处的末端执行器在传感器坐标系中的坐标;以及收集用于由机器人臂检测到的末端执行器在工作区内的位置的臂校准点,用于位置的臂校准点包括工作区内的该位置处的末端执行器在臂坐标系中的坐标。

示例3:根据示例2所述的方法,还包括基于来自深度传感器的标准偏差图像的图像矩来计算质心,传感器校准点的坐标是质心的坐标。

示例4:根据示例1-3中的任一项所述的方法,还包括在计算映射到输入点的估计点之后对深度传感器和机器人臂进行再校准,再校准还包括:促使末端执行器基于一定图案而非连续地穿过工作区,其中,所述末端执行器根据该图案而在工作区内的各位置处停止;以及在来自工作区内的末端执行器在该处停止的各位置中的每个位置处:收集用于由深度传感器检测到的末端执行器在工作区内的位置的传感器校准点,用于位置的传感器校准点包括工作区内的该位置处的末端执行器在传感器坐标系中的坐标;以及收集用于由机器人臂检测到的末端执行器在工作区内的位置的臂校准点,用于位置的臂校准点包括工作区内的该位置处的末端执行器在臂坐标系中的坐标。

示例5:根据示例4所述的方法,还包括:从机器人臂接收测量点,该测量点包括指示由机器人臂检测到的臂坐标系中的位置的坐标;至少部分地基于测量点和估计点来计算映射误差;将映射误差与阈值误差值相比较;以及响应于映射误差大于阈值误差值,对深度传感器和机器人臂进行再校准。

示例6:根据示例4所述的方法,其中,由图案指定的工作区内的给定体积内的位置的数目是针对该给定体积的映射误差的函数。

示例7:根据示例1-6中的任一项所述的方法,还包括:对遍及工作区收集的传感器校准点使用Delaunay三角测量来创建四面体,遍及工作区收集的传感器校准点包括:输入点的附近区域内的传感器校准点;以及在输入点的附近区域外面的至少一个不同传感器校准点。

示例8:根据示例1-7中的任一项所述的方法,其中,识别输入点的附近区域内的传感器校准点还包括:从四面体中识别特定四面体,该特定四面体包括输入点,输入点的附近区域内的传感器校准点是该特定四面体的顶点。

示例9:根据示例1-8中的任一项所述的方法,其中,计算映射到输入点的估计点还包括:基于以下各项使用Procrustes分析来计算变换:所述特定四面体的顶点;以及臂校准点,其中,所述臂校准点分别地对应于所述特定四面体的顶点;以及对输入点应用变换以计算估计点。

示例10:根据示例1-8中的任一项所述的方法,其中,计算映射到输入点的估计点还包括:计算输入点相对于所述特定四面体的顶点的重心坐标;以及基于重心坐标和臂校准点对估计点进行内插,其中,所述臂校准点分别地对应于所述特定四面体的顶点。

示例11:根据示例1-10中的任一项所述的方法,其中:识别输入点的附近区域内的传感器校准点还包括:识别最接近于输入点的预置数目的传感器校准点;以及计算映射到输入点的估计点还包括:创建包括输入点的一个或多个四面体,所述四面体是在顶点来自最接近于输入点的预置数目的传感器校准点的情况下创建的;针对一个或多个四面体中的每个四面体:计算输入点相对于四面体的顶点的重心坐标;以及基于重心坐标和分别地对应于四面体的顶点的臂校准点对来自四面体的估计点的值进行内插;以及组合来自一个或多个四面体的估计点的值以计算映射到输入点的估计点。

示例12:根据示例1-11中的任一项所述的方法,还包括:从机器人臂接收不同的输入点,该不同输入点包括指示臂坐标系中的不同位置的坐标,该不同位置在工作区中;识别在该不同输入点的附近区域内的不同臂校准点;识别分别地对应于不同臂校准点的不同传感器校准点;以及采用处理器来计算映射到该不同输入点的不同估计点,该不同估计点包括指示传感器坐标系中的该不同位置的坐标,该不同估计点是基于以下各项计算的:不同的臂校准点;以及不同的传感器校准点。

示例13:一种控制在工作区中操作的深度传感器和机器人臂的系统,所述机器人臂包括末端执行器,所述系统包括:数据储存库,该数据储存库保持:遍及工作区的传感器校准点,传感器校准点包括末端执行器在传感器坐标系中的第一坐标,第一坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;以及遍及工作区的臂校准点, 该臂校准点分别地对应于传感器校准点,对应于传感器校准点的臂校准点包括末端执行器在臂坐标系中的第二坐标,第二坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;接口组件,其从深度传感器接收输入点,该输入点包括指示传感器坐标系中的位置的坐标,该位置在工作区中;样本选择组件,其:从数据储存库中识别在输入点的附近区域内的传感器校准点;以及从数据储存库中识别分别地对应于在输入点的附近区域内的传感器校准点的臂校准点;以及内插组件,其计算映射到输入点的估计点,该估计点包括指示臂坐标系中的位置的坐标,该估计点是基于以下各项计算的:输入点的附近区域内的传感器校准点;以及分别地对应于在输入点的附近区域内的传感器校准点的臂校准点。

示例14:根据示例13所述的系统,还包括执行校准的校准组件,该校准组件:促使末端执行器基于一定图案而非连续地穿过工作区,其中,所述末端执行器根据该图案而在工作区内的各位置处停止;以及在来自工作区内的末端执行器在该处停止的各位置中的每个位置处:收集用于由深度传感器检测到的末端执行器在工作区内的位置的传感器校准点,用于位置的传感器校准点包括工作区内的该位置处的末端执行器在传感器坐标系中的坐标;将用于该位置的传感器校准点存储在数据储存库中;收集用于由机器人臂检测到的末端执行器在工作区内的位置的臂校准点,用于位置的臂校准点包括工作区内的该位置处的末端执行器在臂坐标系中的坐标;以及将用于该位置的臂校准点存储在数据储存库中。

示例15:根据示例14所述的系统,还包括监视组件,其监视所述深度传感器、所述机器人臂以及所述工作区的条件,其中,所述校准组件基于所述条件而选择性地发起再校准。

示例16:根据13-15中的任一项所述的系统,还包括分段组件,其对遍及工作区的传感器校准点使用Delaunay三角测量来形成四面体。

示例17:根据示例16所述的系统,其中:所述样本选择组件:从由分段组件形成的四面体中识别特定四面体,该特定四面体包括输入点,在输入点的附近区域内的传感器校准点是该特定四面体的顶点;以及识别分别地对应于该特定四面体的顶点的臂校准点;以及所述内插组件:基于以下各项使用Procrustes分析来计算变换:所述特定四面体的顶点;以及分别地对应于所述特定四面体的顶点的臂校准点;以及对输入点应用变换以计算估计点。

示例18:根据示例16所述的系统,其中:所述样本选择组件:从由分段组件形成的四面体中识别特定四面体,该特定四面体包括输入点,输入点的附近区域内的传感器校准点是该特定四面体的顶点;以及识别分别地对应于该特定四面体的顶点的臂校准点;并且所述内插组件:计算输入点相对于所述特定四面体的顶点的重心坐标;以及基于重心坐标和分别地对应于所述特定四面体的顶点的臂校准点对估计点进行内插。

示例19:根据13-18中的任一项所述的系统,其中:所述样本选择组件识别最接近于输入点的预置数目的传感器校准点;以及所述内插组件:形成包括输入点的一个或多个四面体,所述四面体是在顶点来自最接近于输入点的预置数目的传感器校准点的情况下创建的;针对一个或多个四面体中的每个四面体:计算输入点相对于四面体的顶点的重心坐标;以及基于重心坐标和分别地对应于该四面体的顶点的臂校准点对来自该四面体的估计点的值进行内插;以及组合来自一个或多个四面体的估计点的值以计算映射到输入点的估计点。

示例20:一种控制在工作区中操作的深度传感器和机器人臂的方法,所述机器人臂包括末端执行器,所述方法包括:从机器人臂接收输入点,该输入点包括指示臂坐标系中的位置的坐标,该位置在工作区中;识别输入点的附近区域内的臂校准点,臂校准点包括末端执行器在臂坐标系中的第一坐标,第一坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;识别分别地对应于臂校准点的传感器校准点,对应于臂校准点的传感器校准点包括末端执行器在传感器坐标系中的第二坐标,第二坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;以及采用处理器来计算映射到输入点的估计点,该估计点包括指示传感器坐标系中的位置的坐标,该估计点是基于以下各项计算的:臂校准点;以及传感器校准点。

示例21:一种控制在工作区中操作的深度传感器和机器人臂的系统,所述机器人臂包括末端执行器,所述系统包括:用于从深度传感器接收输入点的装置,该输入点包括指示传感器坐标系中的位置的坐标,该位置在工作区中;用于识别输入点的附近区域内的传感器校准点的装置,传感器校准点包括末端执行器在传感器坐标系中的第一坐标,第一坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;用于识别分别地对应于传感器校准点的臂校准点的装置,对应于传感器校准点的臂校准点包括末端执行器在臂坐标系中的第二坐标,第二坐标是先前在末端执行器处于工作区内的给定位置处的情况下在校准期间收集的;以及用于计算映射到输入点的估计点的装置,该估计点包括指示臂坐标系中的位置的坐标,该估计点是基于以下各项计算的:传感器校准点;以及臂校准点。

现在参考图10,图示出根据本文公开的系统和方法可以使用的示例性计算设备1000的高层级图示。例如,计算设备1000可以在控制在工作区中操作的深度传感器和机器人臂的校准和/或配准的系统中使用。计算设备1000包括执行存储在存储器1004中的指令的至少一个处理器1002。所述指令可以是例如用于实现被描述为由上文所讨论的一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器1002可经由系统总线1006访问存储器1004。除存储可执行指令之外,存储器1004还可存储传感器校准点、臂校准点、变换函数、四面体等。

计算设备1000另外包括可被处理器1002经由系统总线1006访问的数据贮存器1008。数据贮存器1008可包括可执行指令、传感器校准点、臂校准点、变换函数、四面体等。计算设备1000还包括允许外部设备与计算设备1000通信的输入接口1010。例如,输入接口1010可用来从外部计算机设备、从用户等接收指令。计算设备1000还包括使计算设备1000与一个或多个外部设备接合的输出接口1012。例如,计算设备1000可经由输出接口1012来显示文本、图像等。

可设想的是经由输入接口1010和输出接口1012与计算设备1000通信的外部设备可以被包括在提供用户可以与之相交互的基本上任何类型的用户接口的环境中。用户接口类型的示例包括图形用户接口、自然用户接口等。例如,图形用户接口可接受来自采用诸如键盘、鼠标、遥控器等(多个)输入设备的用户的输入并在诸如显示器之类的输出设备上提供输出。此外,自然用户接口可以使得用户能够以免于由诸如键盘、鼠标、遥控器等输入设备施加的约束的方式与计算设备1000相交互。相反地,自然用户接口可以依赖于语音识别、触摸和触笔识别、在屏幕上和邻近于屏幕两者的手势识别、空中手势、头和眼睛跟踪、话音和语音、视觉、触摸、手势、机器智能等。

另外,虽然被图示为单个系统,但应理解的是计算设备1000可以是分布式系统。因此,例如,若干设备可以经由网络连接进行通信,并且可共同地执行被描述为由计算设备1000执行的任务。

如本文所使用的术语“组件”和“系统”意图涵盖配置有在被处理器执行时促使某些功能被执行的计算机可执行指令的计算机可读数据储存器。计算机可执行指令可包括例程、函数等。还应理解的是组件或系统可以位于单个设备上或者跨若干设备分布。

此外,如本文所使用的术语“示例性”意图意指“充当某个东西的图示或示例”。

本文所述的各种功能可被实现在硬件、软件或其任何组合中。如果被实现在软件中,则可以将功能存储在计算机可读介质上或者作为一个或多个指令或代码通过计算机可读介质传输。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可以被计算机访问的任何可用存储介质。以示例而非限制的方式,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘储存器、磁盘储存器或其它磁存储器件或者可以用来以指令或数据结构的形式承载或存储期望程序代码且可以被计算机访问的任何其它介质。如本文所使用的磁碟和磁盘包括紧凑盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘(BD),其中,磁碟通常磁性地再现数据,而磁盘通常用激光以光学方式再现数据。此外,传播信号未包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,其包括促进计算机程序从一地到另一地的传输的任何介质。例如,连接可以是通信介质。例如,如果使用同轴线缆、光纤线缆、扭绞线对、数字订户线(DSL)或者诸如红外、无线电以及微波之类的无线技术从网站、服务器或其它远程源发送软件,则该同轴线缆、光纤线缆、扭绞线对、DSL或者诸如红外、无线电以及微波之类的无线技术被包括在通信介质的定义中。以上的组合也应被包括在计算机可读介质的范围内。

替换地或另外,本文所述功能可以至少部分地由一个或多个硬件逻辑组件执行。例如,并且不作为限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、程序特定集成电路(ASIC)、程序特定标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)等。

上文已描述的内容包括一个或多个实施例的示例。当然,不可能出于描述上述方面的目的而描述上述设备和方法的每个可设想修改和变更,但是本领域的技术人员可以认识到各种方面的许多进一步修改和替换是可能的。因此,所描述方面意图涵盖落在所附权利要求的精神和范围内的所有此类变更、修改以及变型。此外,就在细节描述或权利要求中使用术语“包括”而言,此类术语意图以类似于术语“包含”的方式是包括性的,如当在权利要求中作为过渡词语而采用时解释“包含”一样。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1