发明内容
本发明涉及一种方法,该方法包括:从至少一个第一传感器接收第一传感器数据;从第一传感器数据确定目标位置,所述目标位置包括与机器人臂关联的夹持器的取向和在空间中的位置中的至少一个;开始向机器人臂和夹持器中的至少一个发布至少一个第一指令以便把夹持器移动到目标位置;从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器和所述至少一个第一传感器中的至少一个接收力反馈传感器数据以确定在实行至少一个指令中的失败;从至少一个第一传感器接收第二传感器数据;从第二传感器数据确定对象的成功夹持;响应于确定成功夹持,从至少一个第二传感器接收验证传感器数据;以及向机器人臂发布至少一个第二指令以便把臂移动到预定位置从而释放夹持器的夹持。
本发明涉及一种设备,该设备包括:用于从至少一个第一传感器接收第一传感器数据的装置;用于从第一传感器数据确定目标位置的装置,所述目标位置包括与机器人臂关联的夹持器的取向和在空间中的位置中的至少一个;用于开始向机器人臂和夹持器中的至少一个发布至少一个第一指令以便把夹持器移动到目标位置的装置;用于从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器和所述至少一个第一传感器中的至少一个接收力反馈传感器数据以确定在实行至少一个指令中的失败的装置;用于从至少一个第一传感器接收第二传感器数据的装置;用于从第二传感器数据确定对象的成功夹持的装置;用于响应于确定成功夹持而从至少一个第二传感器接收验证传感器数据的装置;以及用于向机器人臂发布至少一个第二指令以便把臂移动到预定位置从而释放夹持器的夹持的装置。
本发明涉及一种体现在计算机可读介质上的计算机程序,所述计算机程序包括用于控制处理器以执行包括以下步骤的方法的代码:从至少一个第一传感器接收第一传感器数据;从第一传感器数据确定目标位置,所述目标位置包括与机器人臂关联的夹持器的取向和在空间中的位置中的至少一个;开始向机器人臂和夹持器中的至少一个发布至少一个第一指令以便把夹持器移动到目标位置;从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器和所述至少一个第一传感器中的至少一个接收力反馈传感器数据以确定在实行至少一个指令中的失败;从至少一个第一传感器接收第二传感器数据;从第二传感器数据确定对象的成功夹持;响应于确定成功夹持,从至少一个第二传感器接收验证传感器数据;以及向机器人臂发布至少一个第二指令以便把臂移动到预定位置从而释放夹持器的夹持。
本发明还涉及一种方法,该方法包括:从至少一个第一传感器接收第一传感器数据;从第一传感器数据确定目标位置,所述目标位置包括与机器人臂关联的夹持器的取向和在空间中的位置中的至少一个;开始向机器人臂和夹持器中的至少一个发布至少一个第一指令以便把夹持器移动到目标位置;从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器或所述至少一个第一传感器接收力反馈传感器数据以确定在实行至少一个指令中的失败;从至少一个第一传感器接收第二传感器数据;从第二传感器数据确定对象的成功夹持;响应于确定成功夹持,从至少一个第二传感器接收验证传感器数据;以及向机器人臂发布至少一个第二指令以便把臂移动到预定位置从而释放夹持器的夹持。
本发明还涉及一种设备,该设备包括:用于从至少一个第一传感器接收第一传感器数据的装置;用于从第一传感器数据确定目标位置的装置,所述目标位置包括与机器人臂关联的夹持器的取向和在空间中的位置中的至少一个;用于开始向机器人臂和夹持器中的至少一个发布至少一个第一指令以便把夹持器移动到目标位置的装置;用于从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器或所述至少一个第一传感器接收力反馈传感器数据以确定在实行至少一个指令中的失败的装置;用于从至少一个第一传感器接收第二传感器数据的装置;用于从第二传感器数据确定对象的成功夹持的装置;用于响应于确定成功夹持而从至少一个第二传感器接收验证传感器数据的装置;以及用于向机器人臂发布至少一个第二指令以便把臂移动到预定位置从而释放夹持器的夹持的装置。
本发明还涉及一种体现在计算机可读介质上的计算机程序,所述计算机程序包括用于控制处理器以执行包括以下步骤的方法的代码:从至少一个第一传感器接收第一传感器数据;从第一传感器数据确定目标位置,所述目标位置包括与机器人臂关联的夹持器的取向和在空间中的位置中的至少一个;开始向机器人臂和夹持器中的至少一个发布至少一个第一指令以便把夹持器移动到目标位置;从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器或所述至少一个第一传感器接收力反馈传感器数据以确定在实行至少一个指令中的失败;从至少一个第一传感器接收第二传感器数据;从第二传感器数据确定对象的成功夹持;响应于确定成功夹持,从至少一个第二传感器接收验证传感器数据;以及向机器人臂发布至少一个第二指令以便把臂移动到预定位置从而释放夹持器的夹持。
本发明还涉及一种设备,该设备包括存储器和至少一个处理器,所述处理器被配置成:从至少一个第一传感器接收第一传感器数据;从第一传感器数据确定目标位置,所述目标位置包括与机器人臂关联的夹持器的取向和在空间中的位置中的至少一个;开始向机器人臂和夹持器中的至少一个发布至少一个第一指令以便把夹持器移动到目标位置;从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器和所述至少一个第一传感器中的至少一个接收力反馈传感器数据以便确定在实行至少一个指令中的失败;从至少一个第一传感器接收第二传感器数据;从第二传感器数据确定对象的成功夹持;响应于确定成功夹持,从至少一个第二传感器接收验证传感器数据;以及向机器人臂发布至少一个第二指令以便把臂移动到预定位置从而释放夹持器的夹持。
在本发明的一个实施例中,至少一个指令包括指示机器人臂和/或夹持器的至少一个移动的信号。在本发明的一个实施例中,至少一个指令是为控制旋转、升高和夹持中的至少一个而施加的简单驱动电压。
在本发明的一个实施例中,设备内的第一学习实体登记成功夹持和第一传感器数据。
在本发明的一个实施例中,设备内的第一学习实体响应于在实行所述至少一个指令中的至少一个中的确定失败而登记未成功夹持和第一传感器数据。
在本发明的一个实施例中,设备内的臂移动控制实体或第一学习实体使用在第一学习实体中登记的信息从第一传感器数据预测成功夹持的可能性。臂移动控制实体响应于所述可能性,向机器人臂发布至少一个第一指令。
在本发明的一个实施例中,臂移动控制实体向机器人臂发布至少一个第三指令以把夹持器移动到验证位置。
在本发明的一个实施例中,所述验证位置对应于验证环境,在该验证环境中所述至少一个第二传感器提供能够施加到所述对象而无干扰对象。在本发明的一个实施例中,所述验证环境具有恒定的背景。
在本发明的一个实施例中,设备被配置成从来自至少一个第二传感器的验证传感器数据确定所述对象的类型。
在本发明的一个实施例中,开始向机器人臂发布至少一个第一指令的步骤或者该方法一般进一步包括:向机器人臂提供第一坐标;从至少一个第一传感器接收第一中间传感器数据;以及使用所述第一中间传感器数据来确定所述夹持器在传感器坐标系中的实际位置。这些步骤可以由设备内的臂移动控制实体实行。
在本发明的一个实施例中,开始向机器人臂发布至少一个第一指令的步骤或者该方法一般进一步包括:确定夹持器的实际位置与第一坐标之间的误差;向机器人臂提供第二坐标;从至少一个第一传感器接收第二中间传感器数据;使用所述第二中间传感器数据来确定所述夹持器在传感器坐标系中的第二实际位置;以及检验所述误差是否小于预定阈值。如果误差大于阈值,则方法可以继续以如下步骤:再次确定误差,提供第二坐标,接收第二中间传感器数据以及确定第二实际位置。
在本发明的一个实施例中,开始向机器人臂发布至少一个第一指令的步骤或者该方法一般进一步包括:在第二学习实体中登记在传感器坐标系中确定的夹持器的位置与机器人臂的坐标之间的关联。
在本发明的一个实施例中,开始向机器人臂发布至少一个第一指令的步骤或者该方法一般进一步包括:使用登记的所述关联,构造传感器坐标系中的坐标与机器人臂的坐标之间的转换函数。
在本发明的一个实施例中,从第一传感器数据确定目标位置的步骤进一步包括:在传感器坐标系中确定初始目标位置;以及使用所述转换函数从所述初始目标位置计算所述目标位置。
在本发明的一个实施例中,转换函数是转换矩阵,该转换矩阵是至少使用在传感器坐标系中确定的夹持器的位置与机器人臂的坐标之间的登记的关联来计算的。类似地,其它类似的关联可以用来计算转换矩阵。
在本发明的一个实施例中,感兴趣的对象位于非结构化场地中,所述非结构化场地就是说环境或者一般地为三维空间,其在一个或若干其特性(诸如背景颜色或几何结构)方面不是预定的并且除了感兴趣的对象之外还可以包括未知特性的其它对象。例如,一堆垃圾可以构成非结构化场地,就是说机器人的操作空间。非结构化场地还可以随着时间流逝而改变。例如,在从该堆移除多块垃圾时,所述多块垃圾可以搅乱、移动或倒塌。新的垃圾也可以被添加到该堆。
在本发明的一个实施例中,本发明包括机器人臂,其由控制单元控制且被安装成使得它可以到达驻留在非结构化场地中的对象。
在本发明的一个实施例中,系统进一步包括夹持器,该夹持器附着到机器人臂并且由控制单元控制。夹持器可以例如是以像手或爪的方式通过包围对象来夹持它们的装置。
在本发明的一个实施例中,系统进一步包括至少一个传感器装置,其可以用来产生关于非结构化场地的感知数据。一种这样的传感器装置可以例如是取向成查看非结构化场地的数字照相机。
在本发明的一个实施例中,夹持器包括传感器,所述传感器可以用来测量例如当移动夹持器且夹持器碰撞到对象时或者当夹持对象时夹持器是否与非结构化场地中的对象接触。
在本发明的一个实施例中,系统进一步包括针对机器人臂的预定验证位置,其被以这样的方式定位和取向:夹持对象的机器人臂可以以使得至少一个传感器于是可以对照这个场地查看对象的这样的方式被移动和取向。这种场地可以例如包括已知且恒定颜色的平坦表面,使得夹持的对象可以在这种背景中由机器人放置并且因而被传感器更准确地查看,或者它可以由适合于所使用的传感器对对象类型进行验证的任何种类的设置组成。
在本发明的一个实施例中,系统包括第一学习系统,其被配置成从传感器接收数据并且把非结构化场地中的成功夹持操作的可能性适当为高的位置输出到控制器单元。
在本发明的一个实施例中,系统包括第二学习系统,其被配置成从传感器接收数据并且输出在这个位置执行的夹持操作将导致夹持所期望类型的对象的可能性。
在本发明的一个实施例中,控制器单元被配置成:移动机器人臂,使得夹持器被定位在非结构化场地中的先前确定的位置中;然后在这个位置夹持对象。
在本发明的一个实施例中,夹持操作的成功然后使用来自传感器的数据来确定。如果夹持不成功,则把机器人臂移动到用于另一尝试的不同位置。在成功的夹持操作时,控制器单元被配置成然后把对象移动到预定验证位置,并且对象的类型通过执行验证操作来确定。验证操作接收传感器数据作为它的输入并且输出所确定的对象类型。
在本发明的一个实施例中,系统进一步通过利用可以在设备中运行的学习系统来改进。
在本发明的一个实施例中,存在可以称为第一学习系统或第一学习实体的学习系统。对于每个夹持尝试,在臂移动之前的传感器数据和夹持操作的评估结果被施加到第一学习系统。第一学习系统被配置成计算非结构化场地中的其中成功夹持操作是可能的位置,因而在进行在夹持对象处的新尝试时改进系统的操作。
在本发明的一个实施例中,存在可以称为第二学习系统或第二学习实体的学习系统。在臂移动之前的传感器数据以及机器人臂的在移动机器人臂之前和之后的位置和取向也被施加到第二学习系统,该第二学习系统被配置成计算高效的把机器人臂移动到所确定目标位置的方式,因而在进行机器人臂的新移动时加快机器人系统的操作。
在本发明的一个实施例中,计算机程序存储在计算机可读介质上。计算机可读介质可以是可拆卸存储器卡、可拆卸存储器模块、磁盘、光盘、全息存储器或磁带。可拆卸存储器模块可以例如是USB存储棒、PCMCIA卡或智能存储器卡。
前文中描述的本发明的实施例可以彼此任何组合地使用。若干实施例可以被组合在一起以形成本发明的进一步实施例。本发明所涉及的方法、系统、设备、计算机程序或者计算机程序产品可以包括前文中描述的本发明的至少一个实施例。
本发明的益处与在从机器人的操作空间选择对象方面的改进质量有关。
具体实施方式
现在详细地参照本发明的实施例,所述实施例的示例在附图中被图解说明。
图1是在本发明的一个实施例中图解说明用于选择物理对象的机器人系统的框图。在图1中,数据处理设备100(简称设备)包括中央处理单元(CP)110和存储器150。本发明的一些实施例采用多个处理器CP1到CPn加上用于在多个处理器之间分布负载的负载分布单元。一个或多个处理器控制通过执行存储在一个或多个存储器150中的程序152来控制机器人臂。在执行期间,程序152设置和更新存储器150中的各种参数和变量154。一些参数可以例如表示为表格、数组、列表、稀疏或密集矩阵或者其它数据结构。
另外,数据处理设备100包括或者利用外部输入输出电路120,其构成数据处理设备的用户接口。输入输出电路120包括输入电路122和输出电路124。键盘接口和显示器接口是这种输入电路122和输出电路124的说明性而非限制性示例。
为了与外部装置通信,数据处理设备100典型地包括或者利用外部接收/传输电路130,其包括传输电路(TXn”)132、接收电路(RXn”)134和内部或外部天线136。关于TXn和RXn的后缀“n”指示数据处理设备可以利用若干不同的用于与物理世界通信的接口技术,所述物理世界在本示例中包括机器人臂以及可选地单独的验证环境。
无线局域网(WLAN)和短程无线接口诸如红外、无线电或蓝牙是这种无线接收/传输电路的说明性而非限制性示例。替代这种无线通信技术或者除此之外,数据处理设备可以利用有线连接138,诸如USB(通用串行总线)、任何并行或串行接口或者其它类型的工业标准接口或专有接口。在前面的概括水平下,所有元件110到138可以如在相关领域中使用的那样是常规的。
除了常规部分之外,数据处理设备100的存储器150包含用于实施创造性用户输入方法的程序152的汇集。程序152利用共同地由附图标记154表示的各种数据结构、变量和参数。
附图标记160一般表示机器人系统,数据处理设备100控制来自该机器人系统的至少一些部分。机器人系统160包括由附图标记170表示的至少一个机器人,但是它可以包括附近的机器人、一个或多个输送机诸如输送带、静态传感器、照明装置、分析器等等。在本示例中,以示意图示出了像具有旋转构件的臂的机器人170,但是其它类型的实施方式同样是可能的。如图1中所示,机器人臂170包括夹持器171,该夹持器171有点类似于手或爪。机器人臂170能够在操作区域172内移动夹持器171。机器人臂170和夹持器171的各种移动由共同地由附图标记173表示的致动器实现。举例来说,致动器可以是电动、气动或者液压的或者这些的任何组合。致动器可以移动或旋转机器人臂170的各个元件,如在图1中由笔直和弯曲双头箭头指示的。
机器人的操作区域172包括称为非结构化场地180的部分。非结构化场地180包括共同地由附图标记181表示的各个对象。在说明性而非限制性示例中,非结构化场地180是输送带或者输送带的与机器人的操作区域172相交的部分。数据处理设备具有关于非结构化场地180内的对象181的少量先验信息或者没有该先验信息,该先验信息诸如感兴趣的对象的尺寸、形状和/或颜色。在本发明的一些实施例中,数据处理设备100可以具有关于感兴趣的对象的某一先验信息,或者它可以通过学习已经获得了关于该对象的信息,但是至少感兴趣的对象的背景(其它对象)、位置和取向典型地是先验未知的。就是说,对象181可能在非结构化场地180中处于随机的位置和取向,并且对象181可能彼此重叠。因此,有益的是将机器人的操作区域172的一部分专用于结构化场地182,其中可以在相对恒定的条件下且对照已知的背景来观测夹持器171和由它夹持的任何对象。如本文中使用的术语相对恒定的条件和背景意指结构化场地182中的任何变化发生得如此慢以致它们可以通过进行和存储对其的周期性观测而得到补偿。
在本发明的一个实施例中,结构化场地182也可以使用传感器176当中的至少一个第二传感器或者使用至少一个第二单独的传感器装置176d来检查,这尤其适用于结构化场地182中。结构化场地可以简单地是机器人臂170和/夹持器171的特定位置,该特定位置使得能够使用至少一个第二传感器而不干扰非结构化场地181的元件。单独的验证可以涉及检查或分析具有附加装备(就是说,至少一个第二传感器176d)的夹持器的内容物。这种附加装备的说明性而非穷举性列表包括:1)附加的成像装置,其从不同的方向和/或在不同的波长下和/或在比所并置的照相机进行的更高分辨率下观测夹持器内容器;2)附加的照明设备,其在与非结构化场地中存在的那些不同的波长和/或能量水平下照亮或照射夹持器的内容物;3)气体分析器;以及4)激光扫描器。
一组电驱动器把数据处理信号(换言之,来自数据处理设备100的指令)转换成用于控制致动器的适当的电压和功率电平。响应于来自数据处理设备100的控制信号175,致动器执行各种机械功能,包括但不必限于:在操作区域172内把夹持器171定位在特定位置上方;下降或提升夹持器;以及关闭和打开夹持器。在一些实施例中,致动器包括用于倾斜夹持器171和并置照相机176c使得照相机对照已知的背景监视夹持器的致动器。因而在此实施例中,结构化场地182可以通过倾斜夹持器171和照相机176c来实施,并且不需要移动到不同的位置。
数据处理设备100可以经由接口136利用无线连接和/或经由接口138利用有线连接以便与机器人系统160通信。
一般地机器人系统160且特别地机器人包括共同地由附图标记176表示的各种传感器。举例来说,传感器176包括各种位置传感器176a,其指示机器人臂170和夹持器171的位置以及夹持器171的打开/关闭状态。夹持器的打开/关闭状态不限于简单的是/否位。在本发明的一个实施例中,夹持器171可以指示关于其棘爪的多位打开/关闭状态,由此可以获得夹持器中的一个或多个对象的尺寸和/或形状的指示。
除了位置传感器之外,这组传感器可以包括也称为应变计或力反馈传感器的应变传感器176a,其指示由机器人臂170和夹持器171的各种元件经受的应变。在说明性而非限制性实施方式示例中,应变传感器包括可变电阻,其电阻值根据施加到它们的压缩张力而变化。因为电阻的变化与电阻的绝对值相比为小,所以可变电阻典型地以惠斯通电桥配置进行测量。
在本发明的一个实施例中,应变传感器176a充当指示夹持操作的可能失败的力反馈传感器。失败可以由以下指示:施加到夹持器171的外侧上的力,其揭示夹持器可能未在臂的所指示目标位置上打开至全开位置;或者超过预设阈值的在任何侧的力。
而且,这组传感器可以包括至少一个与机器人臂并置的图像传感器或照相机176c。在本上下文中,并置照相机176c意指照相机176c恒定地监视夹持器171下方的区域。
来自各种传感器176的位置数据信号被共同地由附图标记177表示的驱动器转换成适当的电平和格式。所转换的数据信号被传输到数据处理设备100作为输入信号178。
数据处理系统100的存储器150内的程序152集合或软件包括各种程序。如本文中使用的“程序”意指一组计算机程序指令,其由一个或多个处理器CP1...CPn的执行具有如下效果:数据处理系统100指令机器人系统160执行定义明确的高级操作。高级操作的示例是把机器人臂移动到指定的位置。对应的程序可以利用各种软件驱动器、例程或动态链接库来把高级操作转换成一系列低级操作,诸如经由电驱动器174把适当的输出信号175序列输出到机器人系统160的致动器173。可替换地或另外,一些或者所有的程序152可以从机器人系统160接收传感器数据178并且对传感器数据执行一个或多个分析。
最低限度,程序152集合包括由附图标记AM表示的用于臂移动的程序,其指令机器人臂170移动到指定的位置并且可选地使夹持器171倾斜使得可以对照已知的背景观测其内容物。程序152集合还包括夹持序列控制程序GSC和夹持序列评估程序GSE。夹持序列控制程序GSC的执行造成数据处理设备100指令机器人臂170和夹持器171尝试夹持操作,其包括由夹持器171接近包括要夹持的候选对象的位置以及关闭夹持器171。本发明的部分目标是提供能够确定所尝试的夹持操作是否成功地方法、数据处理系统和程序产品。这种确定通过夹持序列评估程序GSE形成。
在一个特定实施方式中,夹持序列评估程序GSE利用夹持器171的位置传感器176a和/或应变传感器176b来确定夹持器171是否实际上夹持了某物。换言之,该确定可以基于感测夹持器当被指令全关闭时是否变得如此或者夹持器是否抓持了防止夹持器变成全关闭的某物。夹持序列控制程序GSC可以利用应变传感器176b来对施加的夹持力设定上限,以便不损坏所夹持的物体和/或夹持器本身。
在另一个实施方式中,夹持序列评估程序GSE可以可替换地或另外利用并置照相机176c来监视照相机的视野是否包括连同夹持器一起移动并因此即使夹持器的移动改变照相机176c视图的背景也保持基本恒定的某物。例如,臂移动程序AM可以移动和/或倾斜夹持器171、夹持器的内容物和并置照相机176c至结构化场地182。并置照相机可以形成夹持器及其内容物的图像。夹持器及其内容物的这一当前图像然后与已知的先前存储的夹持器图像进行比较。在比较中,当前和预先存储的图像之间的任何差异可能由夹持器的内容物、夹持器中的污物或者背景或照明的变化造成。为了确保当前和预先存储的图像之间的任何差异反映夹持器的实际内容物,可能有益的是当夹持器已知为空时周期性地更新夹持器的预先存储的图像,由此可以补偿任何污物或者背景或照明的变化。
替代机械地感测夹持器是否变成全关闭或者在视觉上对此检查,或者除了这种技术之外,机器人臂可以包括被配置成称量夹持器171及其内容物的应变计。通过从夹持器的当前重量减去已知的夹持器净重量,可以获得夹持器内容物的重量。这一信息独立地或者与其它两条信息组合地可以促成关于夹持操作是否成功的确定。所有这种技术可以总结为:可以通过比较来自夹持器的当前状态信息与来自夹持器的已知状态信息来确定夹持操作的成功。术语“已知状态信息”意指夹持器已知为空或者当获得已知状态信息时已知其内容物。
在本发明的一个实施例中,程序AM、OR、GSC、GSE、VO、L1和L2可以实施为单独的软件实体,诸如例如子例程、过程、线程、模块和程序代码序列。
图2是图解说明在机器人系统中选择物理对象的方法的流程图。机器人系统包括控制设备。
在步骤200,从至少一个第一传感器向设备接收第一传感器数据。
在步骤202,设备从第一传感器数据确定目标位置。
在步骤204,设备开始向机器人臂发布至少一个第一指令以便把机器人臂内的夹持器移动到目标位置。至少一个第一指令可以与步骤206并行地发布,在步骤206中设备接收力反馈传感器数据。
在步骤206,设备从与机器人臂和夹持器中的至少一个关联的至少一个力反馈传感器接收力反馈传感器数据以便确定在实行至少一个指令中的失败。
在步骤208,设备从至少一个第一传感器接收第二传感器数据。
在步骤210,设备从第二传感器数据确定对象的成功夹持。
在步骤212,设备响应于确定成功夹持而从至少一个第二传感器接收验证传感器数据。
在步骤214,设备向机器人臂发布至少一个第二指令以便把该臂移动到预定位置从而释放夹持器的夹持。于是,方法结束。
在本发明的一个实施例中,数据处理设备诸如图1中图解说明的数据处理设备100从传感器至少一个传感器例如并置照相机接收输入数据。数据处理设备提取传感器数据的子集以供对象识别程序进行对象识别。对象识别程序用于从传感器数据提取与感兴趣的对象对应的特征,所述特征然后形成用作学习系统的输入的数据集。本发明允许使用实际上任何种类的对象识别系统,并且这种系统因此可以与非结构化场地的条件和本发明的具体应用良好地匹配。为了帮助更好地理解本发明,现在描述被配置用于通过利用并置照相机来识别红色对象的对象识别系统的示例。
在本发明的一个实施例中,从并置照相机接收的输入数据是由二维像素阵列组成的数字图像,每个像素具有针对红色、绿色和蓝色分量的数值(在下文中分别指定为R值、G值和B值)。就本示例而言,我们现在假设由照相机产生的图像包括感兴趣的恰好一个对象。
数据中的像素数目对应于照相机的分辨率。为了降低计算量,从照相机接收的图像数据被下采样至被确定适合于分析的分辨率。适合的下采样分辨率可以被经验地确定。
所得到的下采样图像然后被归一化以顾及闪电条件的变化。该归一化可以针对下采样的图像中的每个像素单独地完成。在归一化后,从图像计算特征集合,诸如感兴趣的对象的位置和取向,并且这些特征被用作第一学习系统的输入。为简洁起见,仅仅感兴趣的对象的位置(x,y)的计算现在被考虑作为这种特征的示例,其中x和y是图像坐标系中的坐标值,尽管本发明不限于仅仅这种特征并且可以通过使若干不同的特征可用于用作学习系统L1的输入而获得益处。
在本发明的一个实施例中,感兴趣的对象的位置(x,y)的计算用以下方式进行。首先,确定在下采样的归一化图像中与感兴趣的对象对应的像素。从文献中已知用于这种任务的许多适当的算法。在本示例中,基于颜色值来识别与对象对应的像素,就是说,对象被假定为红色,意味着图像中的红色像素对应于图像中感兴趣的对象。一旦因而确定了与感兴趣的对象对应的像素,就可以通过计算所确定像素所位于的区域的质心来确定对象的位置(x,y)。许多适当的算法的良好且免费的实施方式是可用的,并且它例如通过如下步骤而容易地获得:使用OpenCV库中的cvFindContours()函数来确定形成包围像素的曲线的点(xi,yi)集;以及然后计算曲线点坐标的平均值,这对应于图像中的对象质心的坐标。
在本发明的一个实施例中,当对象识别程序确定了数据集(在本示例中为感兴趣的对象的位置(x,y))时,数据处理设备的臂移动程序指令机器人臂移动到世界坐标中的与所识别对象在图像坐标中的位置(x,y)对应的位置。为了促进这种臂移动程序执行从图像坐标系到世界坐标系的转换,其已知方法是将坐标矢量(x,y)乘以2x2转换矩阵M,M被选择成使得其以可接受的准确度执行这种转换并且这种选择取决于照相机设置。当机器人臂移动到所确定的位置时,夹持序列控制程序执行夹持尝试,所述夹持尝试包括指令机器人臂下降夹持器至所识别的对象并且关闭夹持器。
在本发明的一个实施例中,在夹持尝试期间,来自机器人臂特别地来自夹持器的传感器数据由数据处理设备接收。在本发明的一个实施例中,传感器数据可以指示夹持器与对象碰撞。更特别地,传感器数据可以指示:机器人臂或夹持器未能响应于移动指令而移动;或者该移动指令造成机器人系统的一些元件中的异常应变水平,如应变计所测量的。在这种情况下,中止夹持尝试。中止的夹持尝试将被认为后续评估步骤中的失败。
在本发明的一个实施例中,在执行了夹持尝试后,夹持序列评估程序提取传感器数据,特别地反映夹持器的内容物的传感器数据。从这一提取的数据确定夹持尝试的成功。如结合图1所述的,可以基于以下中的任一个来确定夹持尝试的成功:1)夹持器围住了最小尺寸的对象的指示;2)比较夹持器加上内容物的当前图像与带有已知内容物的夹持器的预先存储图像;以及3)夹持器加上当前内容物的重量与夹持器加上已知内容物的重量之间的差异。
在本发明的一个实施例中,如果碰撞检测或者夹持器内容物的任何分析组合指示夹持尝试导致失败,则执行涉及移动机器人臂的另一夹持尝试。
在本发明的一个实施例中,在成功夹持尝试的确定之后,数据处理设备指令机器人臂对夹持的对象执行一组预定操作。例如如果该系统用于把不同种类的对象分类到不同的箱子中,这种操作可以被选择成取决于对象的类型。因为基于传感器数据确定了对象的位置,所以对象的类型此时是已知的或者被认为已知,并且已知的类型可以用于选择要对对象执行的操作集合。例如,在垃圾分类应用中,各种对应类型可以对应于回收渠道:可再用瓶子,可回收塑料,金属,可燃物质,可降解物质,危险废物等等。
然而,在这个阶段,可能错误地确定对象的类型。创造性方法的一些更宏大实施例包括用于对夹持器中的一个或多个对象的类型的附加验证的单独验证。如果夹持尝试被视为成功,则验证操作程序调用臂移动程序,使得机器人臂且特别地夹持器被指令移动到预定验证位置。在这个验证位置中执行单独的验证。在一些实施方式中,单独的验证涉及检查结构化场地中的夹持器的内容。在其它实施方式中,单独的验证可以涉及用附加的装备来检查或分析夹持器的内容物。这种附加的装置的说明性而非穷举性列表包括:1)附加的成像装置,其从不同的方向和/或在不同的波长下和/或在比所并置的照相机进行的更高分辨率下观测夹持器内容器;2)附加的照明设备,其在与非结构化场地中存在的那些不同的波长和/或能量水平下照亮或照射夹持器的内容物;3)气体分析器。
单独的验证的益处在于,以改进的置信水平已知对象的类型,这增加了对夹持的对象选择适当的操作的可能性。
在本发明的一个实施例中,上面描述的示例性实施例由本发明通过在不同的操作步骤利用至少一个机器学习系统而得到进一步改进。
在本发明的一个实施例中,系统的操作断定两个学习问题,其涉及从传感器数据计算各个参数。这可以使用预定计算集合来实现,但是这种系统将是不灵活的且特定于操作条件集合,因此可能对于非结构化场地中的操作而言不是最优的,所述操作的条件按照定义在将定义预定计算时可能不是已知的。
在本发明的一个实施例中,第一学习问题涉及从接收自系统的数据集确定用于要尝试的夹持操作的参数集。
在本发明的一个实施例中,第二学习问题涉及确定用于移动机器人臂以夹持感兴趣的对象的参数。
前文中关于图2描述的本发明的实施例可以彼此任何组合地使用。若干实施例可以被组合在一起以形成本发明的进一步实施例。本发明所涉及的方法、系统、设备、计算机程序或者计算机程序产品可以包括前文中描述的本发明的至少一个实施例。
图3是在本发明的一个实施例中图解说明包括两个学习系统的计算机的框图。在图3中,示出了计算机300,其包括随机存取存储器、至少一个处理器和辅助存储器(未示出)。计算机300内的内部功能用方框302来图解说明。计算机300执行第一学习实体314、第二学习实体312、验证器实体310、臂移动控制实体320、夹持序列控制实体318和对象识别器322。第一学习实体314和第二学习实体312二者是学习系统的示例。应当理解,尽管图3中的系统被图解说明为包括标为310、312、314、316、318、320和322的单独部分,但是这种划分成这些部分用作本发明的解释,并且部分的数目可以根据实施的方法而不同。不同的部分可以实施为在单个计算机系统上执行的计算机程序的部分。在这一描述中,控制单元被取为包括图3中的部分。在本发明的一个实施例中,计算机300对应于图1中图解说明的数据处理设备100。
第一学习实体314把从传感器数据提取的特征看作输入,所述传感器数据从多个传感器诸如传感器304和传感器306获得。这些特征由对象识别实体322从用箭头342图解说明的传感器数据中提取。第一学习实体314使用待用于执行夹持操作的用箭头330图解说明的特征来为臂移动控制实体320计算参数332集合,目标是使用这些参数的成功夹持操作的可能性是相对高的。这种参数可以包括例如在尝试夹持操作之前夹持器的取向或者目标对象的位置。现在给出使用第一学习实体314来计算感兴趣的对象在非结构化场地中的可能位置的示例作为第一学习实体314的操作的示例。为简洁起见,该示例仅呈现可能位置(x,y)的计算并且本发明不限于此。
由第一学习实体314从对象识别器实体322接收的坐标(x,y)对应于所识别的对象在照相机坐标系中的位置。照相机优选地固定到机器人臂,因此在任何时刻的照相机图像对应于机器人臂的位置和取向。为了夹持对象,机器人臂需要移动到如下位置和取向:在此处夹持器处于良好位置以夹持对象,所述位置可能取决于对象、夹持器和在机器人臂操作所处的场地中的其它对象的属性以及其它可能的因素。第一学习实体314用来基于先前的夹持尝试来计算图像坐标系中的位置,从所述位置进行成功夹持操作是最可能的。
第一学习实体314把包括来自成功评估器实体316的先前尝试参数的数据项目338看作输入,所述成功评估器实体316确定从夹持序列控制实体318获得夹持序列信息340的成功。在这个示例中,数据项目338由与在所识别对象的质心处于(x,y)时的夹持尝试对应的坐标(x,y)以及在(x,y)的夹持尝试关于它是成功还是失败的对应评估组成。这些数据项目然后用来计算第一学习实体314的输出332。从第一学习实体314到臂移动控制实体320的输出332优选地不是单点而是相反地为点分布。适合于计算该分布的许多回归或分类算法从文献中已知,例如最大似然法或支持向量机可以用来实现这一点。在这个示例中,输出332可以例如是由中心(x0,y0)和标准差σx(它们是使用众所周知的最大似然法计算的,σx用于两个坐标x和y)参数化的二元正态分布。
与简单地使用对象识别系统来确定对象的位置相比,在学习实体314中使用所描述的学习系统提供了若干益处。由于输出不是仅仅一个点而是一个分布,所以在操作期间有可能:使用最优点,该最优点在这个示例中将为该分布的中心(x0,y0);或者根据它们的似然性从该分布选择不同的点。这允许系统通过把新的夹持尝试的数据施加到学习系统而连续地学习并因此适配于非结构化场地的条件。即使在安装系统之前收集到操作环境的不充分数据,系统也可以在处于操作时学习并且新的数据可以进一步改进结果。另一益处在于,如果条件变化,例如碰撞使夹持器变形或使照相机架移动,并且结果,相对于对象在照相机图像中的位置的最优夹持位置变化,则系统学习补偿这些变化。
臂移动控制实体320然后把机器人臂移动到所确定的夹持位置。为了使机器人臂朝向对象移动,计算由对象识别器实体322确定的对象位置与由第一学习实体314确定的最可能成功的夹持位置的位置之间的差异。这一差异然后被转换成用来控制机器人臂的物理世界坐标中的差异。该转换不能假设为完美,因此算法必须在该接近期间实时地对其补偿。在每一个步骤,对象在图像中的位置被如上所述地计算并且与最可能成功的夹持位置比较。两者之间的差异-其是照相机坐标系中的坐标矢量-通过把该坐标矢量乘以转换矩阵M而转换成世界坐标,并且相应地移动机器人臂。另外,在转换阶段中优选地应用轻微低通滤波器以使该移动更加平滑。这个算法的效果是:即使对于仅与坐标系之间的大致正确的变换对应的转换矩阵M,每个步骤也使机器人臂移动更加靠近预期位置。方向可能不是精确地朝向对象,并且因此在下一步骤,当由对象识别器实体322从与新的夹持器位置对应的照相机图像中提取的新的对象位置可用时,移动的方向被改变。这导致用于接近路径的螺旋形状,其最终将汇聚使得照相机所看到的对象位置与最可能的夹持位置重合。
第二学习实体312用来确定更高效的移动机器人臂到所确定的夹持位置的方式。第二学习实体312从机器人臂308接收关于机器人臂和/或夹持器的位置的信息,如用箭头344图解说明的。第二学习实体312还把关于过去夹持序列的数据看作它的输入。为了图解说明第二学习系统的操作,现在给出仅具有坐标(x,y)的简单示例,这对应于先前的示例。在这个示例中,向第二学习系统施加的数据包括在夹持序列开始时对象位置与最可能的夹持位置之间的照相机坐标中的差异(xc,yc)以及机器人臂在夹持序列开始时与在夹持序列终止后的世界坐标之间的差异(xd,yd)。
作为其向夹持序列控制实体318的输出334,第二学习实体312计算转换矩阵ML使得当ML乘以矢量(xc,yc,1)时,获得对应差异(xd,yd)的良好近似。ML可以使用例如在文献中称为岭回归的方法从过去夹持尝试数据来计算,但是其它适当的方法在本发明的范围内同样是可能的。还应当指出,尽管本示例中的计算仅仅涉及二维空间中的坐标,但是所描述的方法同样可应用于更复杂的机器人臂移动,例如包括空间中的第三维度或者机器人臂的不同部分的旋转的移动。
使用第二学习实体312是有益的,因为输出矩阵ML可以用来缩减机器人臂的移动算法,这是通过将它用作矩阵M来计算一种移动中机器人臂移动的目标并且此后用先前描述的移动算法来校正剩余误差而实现的。
在移动了机器人臂后,执行夹持操作,并且执行评估步骤以确定夹持是否成功。如果评估结果指示夹持未成功,则执行返回到把臂移动到另一位置。如果结果指示成功,则验证器实体310验证对象的类型,如用箭头336图解说明的。
当至少一个处理器执行与本发明关联的功能实体时,存储器包括实体诸如成功评估器实体316、学习系统实体314、学习系统实体312、验证器实体310、臂移动控制实体320和夹持序列控制318。在图3中图解说明的计算机300内的功能实体可以用各种方式实施。它们可以实施为在网络节点的本地操作系统下执行的过程。这些实体可以实施为单独的过程或线程或者使得许多不同的实体借助于一个过程或线程来实施。过程或线程可以是包括许多例程(就是说例如规程和功能)的程序块的实例。功能实体可以实施为单独的计算机程序或者为包括若干实施实体的例程或功能的单个计算机程序。程序块被存储在至少一个计算机可读介质诸如例如存储器电路、存储器卡、磁盘或光盘上。一些功能实体可以实施为与另一功能实体链接的程序模块。图3中的功能实体也可以存储在单独的存储器中并且由单独的处理器执行,所述处理器例如经由网络节点内的消息总线或内部网络进行通信。这种消息总线的示例是外围部件互连(PCI)总线。
本发明的示例性实施例可以包含在任何适当的装置中,所述装置例如包括任何适当的服务器、工作站、PC、膝上型计算机、PDA、因特网器具、手持装置、蜂窝电话、无线装置、其它装置等等,其能够执行示例性实施例的过程并且可以经由一个或多个接口机构进行通信,所述接口机构包括例如因特网访问、任何适当形式的电信(例如语音、调制解调器等等)、无线通信介质、一个或多个无线通信网络、蜂窝通信网络、3G通信网络、4G通信网络、公共交换电话网络(PSTN)、分组数据网络(PDN)、因特网、内联网、它们的组合等等。
要理解,示例性实施例是用于示例性目的,因为用来实施示例性实施例的特定软件的许多变化是可能的,如硬件领域中的技术人员将明白的。例如,示例性实施例的一个或多个部件的功能可以经由一个或多个硬件装置来实施。
示例性实施例可以存储涉及本文中描述的各个过程的信息。该信息可以存储在一个或多个存储器诸如硬盘、光盘、磁光盘、RAM等等中。一个或多个数据库可以存储用来实施本发明的示例性实施例的信息。数据库可以使用在本文中列举的一个或多个存储器或者储存装置中包括的数据结构(例如,记录、表格、数组、字段、图表、树、列表等等)来组织。关于示例性实施例描述的过程可以包括用于存储一个或多个数据库中的示例性实施例的子系统和装置的过程生成和/或收集的数据的适当的数据结构。
所有或部分的示例性实施例可以通过制备专用集成电路或者通过互连适当的常规部件电路网络来实施,如电气领域中的技术人员将明白的。
如上所述,示例性实施例的部件可以包括根据本发明的教导且用于保持数据结构、表格、记录和/或本文中描述的其它数据的计算机可读介质或存储器。计算机可读介质可以包括任何适当的参与向处理器提供指令用于执行的介质。这种介质可以采取许多形式,包括但不限于非易失性介质、易失性介质、传输介质等等。非易失性介质可以包括例如光盘或磁盘、磁光盘等等。易失性介质可以包括动态存储器等等。传输介质可以包括同轴电缆、铜线、光纤等等。传输介质还可以采取声、光、电磁波等等的形式,诸如在射频(RF)通信、红外(IR)数据通信等等期间生成的那些。计算机可读介质的普通形式可以包括例如软盘、柔性盘、硬盘、磁带、任何其它适当的磁介质,CD-ROM,CDRW,DVD、任何其它适当的光学介质、穿孔卡、纸带、光标示表单、任何其它适当的具有孔洞或其它光学上可识别标记的图案的物理介质、RAM、PROM、EPROM、闪速EPROM、任何其它适当的存储器芯片或盒、载波或者任何其它适当的计算机可以从中读取的介质。
虽然已经结合许多示例性实施例和实施方式描述了本发明,但是本发明不限于此,而是相反地覆盖落入预期权利要求的范围内的各种修改和等效布置。
对于本领域的技术人员显而易见的是,随着技术的进展,本发明的基本思想可以用各种方式实施。本发明及其实施例因而不限于上面描述的示例;相反,它们可以在权利要求的范围内改变。