用于执行抓持区域检测的方法和计算系统转让专利

申请号 : CN202110775316.8

文献号 : CN113459101B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何塞·赫罗尼莫·莫雷拉·罗德里格斯魯仙·出杏光余錦澤A·阿布勒拉金本芳树

申请人 : 牧今科技

摘要 :

本申请涉及用于执行抓持区域检测的方法和计算系统。提出了一种由计算系统执行的方法。该方法可以包括:计算系统接收表示与柔性物体相关联的物体表面的图像信息,以及将满足定义的平滑度条件并且具有大于或等于定义的区域大小阈值的区域大小的物体表面的表面区域识别为抓持区域,其中抓持区域基于图像信息被识别。该方法还包括将三维(3D)区域识别为安全区域,该三维区域在一个或多个水平维度上围绕抓持区域,并且从抓持区域沿着垂直于该一个或多个水平维度的垂直维度延伸。该方法还包括基于抓持区域和安全区域执行机器人运动计划。

权利要求 :

1.一种计算系统,包括:

通信接口,被配置为与具有末端执行器装置的机器人以及具有相机视野的相机进行通信;

至少一个处理电路,被配置为当柔性物体在所述相机视野中时:

接收表示与所述柔性物体相关联的物体表面的图像信息,其中所述图像信息由所述相机生成;

将满足定义的平滑度条件并且具有大于或等于定义的区域大小阈值的区域大小的所述物体表面的表面区域识别为抓持区域,其中所述抓持区域基于所述图像信息被识别,并且其中满足定义的平滑度条件提供表面区域足够平滑以使得能够在表面区域与末端执行器装置之间形成密封以及使得所述密封对于末端执行器装置在所述表面区域处抓持所述柔性物体足够紧密的指示;

将三维3D区域识别为安全区域,所述三维3D区域在一个或多个水平维度上围绕所述抓持区域,并且从所述抓持区域沿着垂直于所述一个或多个水平维度的垂直维度延伸;以及基于所述抓持区域和所述安全区域执行机器人运动计划,其中所述机器人运动计划用于通过所述末端执行器装置在所述抓持区域处抓持所述柔性物体。

2.如权利要求1所述的计算系统,其中所述定义的区域大小阈值是与所述末端执行器装置和所述柔性物体之间的接触相关联的定义的接触区域大小,使得所述抓持区域足够大以适配具有所述定义的接触区域大小的接触区域。

3.如权利要求2所述的计算系统,其中所述定义的区域大小阈值是与末端执行器吸盘相关联的定义的吸盘大小。

4.如权利要求1所述的计算系统,其中所述定义的区域大小阈值是与所述柔性物体相关联的定义的物体大小。

5.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,当所述柔性物体具有厚度维度和垂直于所述厚度维度的横向维度时,基于与所述柔性物体的所述横向维度相关联的定义的横向维度大小来确定所述安全区域的边缘。

6.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,当所述柔性物体是在所述相机视野中并且具有不同的相应横向维度大小的一组柔性物体中的一个时,基于所述不同的相应横向维度大小中的最大横向维度大小来确定所述安全区域的边缘。

7.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,当所述柔性物体是在被提起时下垂的物体时,基于与所述柔性物体相关联的定义的横向维度大小来确定安全区域高度。

8.如权利要求7所述的计算系统,其中所述至少一个处理电路被配置为,当所述柔性物体被放置在容器内时,通过以下操作来执行所述机器人运动计划:生成所述末端执行器装置将沿着其来移动所述物体表面的所述抓持区域的轨迹;

当使得所述抓持区域跟随所述轨迹时,确定所述轨迹是否导致所述安全区域与所述容器的一部分重叠;以及响应于确定所述轨迹导致所述安全区域与所述容器的一部分重叠,生成调整的轨迹,当使得所述抓持区域跟随所述调整的轨迹时,所述调整的轨迹使所述安全区域避免与所述容器重叠。

9.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,当所述图像信息包括描述容器内一个或多个表面上的位置的深度信息的点云时,将所述安全区域识别为在所述一个或多个水平维度上延伸至以下至少一项的区域:(i)与容器壁相关联的位置,或(ii)从所述抓持区域沿所述一个或多个水平维度中的水平维度延伸定义的横向维度大小的位置。

10.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,当所述图像信息描述所述相机视野中的多个位置的深度信息时,通过以下操作来识别所述抓持区域:确定近似所述多个位置的相应子集的多个二维2D片,其中所述多个二维2D片表示所述物体表面;以及从所述多个二维2D片中识别满足定义的方向相似性标准和定义的深度相似性标准的一组连续二维2D片,所述定义的方向相似性标准指示所述一组连续二维2D片的方向上的相似性,以及所述定义的深度相似性标准指示所述一组连续二维2D片的深度维度上的相似性,其中被识别为所述抓持区域的所述表面区域由所述一组连续二维2D片形成或在所述一组连续二维2D片内适配,并且其中满足所述表面区域的所述定义的平滑度条件包括对于所述一组连续二维2D片满足所述定义的方向相似性标准和所述定义的深度相似性标准。

11.权利要求10所述的计算系统,其中所述抓持区域具有定义的区域形状并且在所述一组连续二维2D片内适配。

12.如权利要求10所述的计算系统,其中所述至少一个处理电路被配置为通过以下操作来识别所述一组连续二维2D片:识别一个或多个二维2D片的初始组;以及

将一个或多个二维2D片的所述初始组扩展为所述一组连续二维2D片。

13.如权利要求12所述的计算系统,其中所述一个或多个二维2D片的初始组包括所述多个二维2D片中的第一二维2D片,并且其中所述至少一个处理电路被配置为通过以下操作将所述一个或多个二维2D片的初始组扩展为所述一组连续二维2D片:确定第一法向量,所述第一法向量是垂直于所述第一二维2D片的向量;

从所述多个二维2D片中识别第二二维2D片,所述第二二维2D片与第一二维2D片相连并且不在一个或多个二维2D片的所述初始组中;

确定第二法向量,所述第二法向量是垂直于所述第二二维2D片的向量;

确定以下至少一项:(i)沿着与第一法向量平行的轴从第一二维2D片到第二二维2D片的第一距离,或者(ii)沿着与第二法向量平行的轴从第二二维2D片到第一二维2D片的第二距离;

确定第一法向量和第二法向量是否满足所述定义的方向相似性标准;

确定第一距离或第二距离中的至少一个是否满足所述定义的深度相似性标准;

响应于确定第一法向量和第二法向量满足所述定义的方向相似性标准,以及确定第一距离或第二距离中的至少一个满足所述定义的深度相似性标准,将第二二维2D片添加到所述初始组以生成二维2D片的扩展组,其中所述扩展组形成所述一组连续二维2D片或形成所述一组连续二维2D片的一部分。

14.如权利要求13所述的计算系统,其中所述至少一个处理电路还被配置为:

在作为所述多个二维2D片的一部分并且当前不在二维2D片的所述扩展组中的二维2D片中,搜索一个或多个剩余二维2D片,所述一个或多个剩余二维2D片:(i)与当前在所述扩展组中的二维2D片相连,并且(ii)关于所述扩展组中的所述二维2D片满足所述定义的方向相似性标准和定义的深度相似性标准;以及通过向所述扩展组添加所述一个或多个剩余二维2D片来更新所述扩展组。

15.如权利要求12所述的计算系统,其中所述至少一个处理电路被配置为在一个或多个二维2D片的所述初始组中,包括所述多个二维2D片中的表示由所述图像信息表示的所述多个位置中的最平滑的位置或位置组的二维2D片。

16.如权利要求15所述的计算系统,其中所述至少一个处理电路被配置为确定多个平滑度分数,所述平滑度分数指示在由所述图像信息表示的相应位置处的一个或多个物体表面上的相应平滑度程度,其中包括在一个或多个二维2D片的所述初始组中的所述二维2D片表示具有所述多个平滑度分数中的最高平滑度分数的位置。

17.一种具有指令的非暂时性计算机可读介质,所述指令当由计算系统的处理电路执行时,使所述处理电路:由所述计算系统的至少一个处理电路接收图像信息,其中所述计算系统被配置为与以下进行通信:(i)具有末端执行器装置的机器人,以及(ii)具有相机视野的相机,其中所述图像信息用于表示与所述相机视野中的柔性物体相关联的物体表面并且由所述相机生成;

将满足定义的平滑度条件并且具有大于或等于定义的区域大小阈值的区域大小的所述物体表面的表面区域识别为抓持区域,其中所述抓持区域基于所述图像信息被识别,并且其中满足定义的平滑度条件提供表面区域足够平滑以使得能够在表面区域与末端执行器装置之间形成密封以及使得所述密封对于末端执行器装置在所述表面区域处抓持所述柔性物体足够紧密的指示;

将三维3D区域识别为安全区域,所述三维3D区域在一个或多个水平维度上围绕所述抓持区域,并且从所述抓持区域沿着垂直于所述一个或多个水平维度的垂直维度延伸;以及基于所述抓持区域和所述安全区域执行机器人运动计划,其中所述机器人运动计划用于通过所述末端执行器装置在所述抓持区域处抓持所述柔性物体。

18.如权利要求17所述的非暂时性计算机可读介质,其中所述定义的区域大小阈值是与所述末端执行器装置和所述柔性物体之间的接触相关联的定义的接触区域大小,使得所述抓持区域足够大以适配具有所述定义的接触区域大小的接触区域。

19.如权利要求17所述的非暂时性计算机可读介质,其中所述指令在由所述处理电路执行时以及当所述柔性物体是在被提起时下垂的物体时,使所述处理电路基于与所述柔性物体相关联的定义的横向维度大小来确定安全区域高度。

20.一种由计算系统执行的方法,所述方法包括:

由所述计算系统接收图像信息,其中所述计算系统被配置为与以下进行通信:(i)具有末端执行器装置的机器人,以及(ii)具有相机视野的相机,其中所述图像信息用于表示与所述相机视野中的柔性物体相关联的物体表面并且由所述相机生成;

将满足定义的平滑度条件并且具有大于或等于定义的区域大小阈值的区域大小的所述物体表面的表面区域识别为抓持区域,其中所述抓持区域基于所述图像信息被识别,并且其中满足定义的平滑度条件提供表面区域足够平滑以使得能够在表面区域与末端执行器装置之间形成密封以及使得所述密封对于末端执行器装置在所述表面区域处抓持所述柔性物体足够紧密的指示;

将三维3D区域识别为安全区域,所述三维3D区域在一个或多个水平维度上围绕所述抓持区域,并且从所述抓持区域沿着垂直于所述一个或多个水平维度的垂直维度延伸;以及基于所述抓持区域和所述安全区域执行机器人运动计划,其中所述机器人运动计划用于通过所述末端执行器装置在所述抓持区域处抓持所述柔性物体。

说明书 :

用于执行抓持区域检测的方法和计算系统

[0001] 本申请是申请日为2021年6月9日、申请号为202110640097.2、发明名称为“用于执行抓持区域检测的方法和计算系统”的发明专利申请的分案申请。

技术领域

[0002] 本公开涉及用于执行诸如针对柔性物体的抓持区域检测的计算系统和方法。

背景技术

[0003] 随着自动化变得更加普遍,机器人正在更多环境中使用,诸如在仓储和零售环境中。例如,机器人可用于与仓库中的物体进行交互。机器人的移动可以是固定的,或者可以基于输入,诸如由仓库中的传感器生成的信息。

发明内容

[0004] 本公开的一个方面涉及一种计算系统、一种方法和一种具有由该计算系统执行以执行该方法的指令的非暂时性计算机可读介质。系统可以包括通信接口和至少一个处理电路。通信接口被配置为与具有末端执行器装置的机器人以及具有相机视野的相机进行通信。该至少一个处理电路被配置为当柔性物体在相机视野中时执行方法。该方法可以包括接收表示与柔性物体相关联的物体表面的图像信息,其中图像信息由相机生成。该方法还可以包括将满足定义的平滑度条件并且具有大于或等于定义的区域大小阈值的区域大小的物体表面的表面区域识别为抓持区域,其中抓持区域基于图像信息被识别。该方法还可以包括将三维(3D)区域识别为安全区域,该三维区域在一个或多个水平维度上围绕抓持区域,并且该三维区域从抓持区域沿着垂直于该一个或多个水平维度的垂直维度延伸。该方法还可以包括基于抓持区域和安全区域执行机器人运动计划,其中机器人运动计划用于通过末端执行器装置在抓持区域处抓持柔性物体。

附图说明

[0005] 图1A至图1D示出了根据本文的实施例的用于执行抓持区域检测的系统。
[0006] 图2A至图2C提供了示出根据本文的实施例的被配置为执行抓持区域检测的计算系统的框图。
[0007] 图3A至图3C示出了根据本文的实施例的其中可以执行抓持区域检测的环境。
[0008] 图4提供了示出本文的实施例的识别抓持区域和安全区域的方法的流程图。
[0009] 图5A和图5B示出了根据本文的实施例的抓持区域和/或安全区域可以被从中识别出的示例图像信息。
[0010] 图6示出了根据本文的实施例的可以被识别为抓持区域的表面区域。
[0011] 图7A和图7B示出了根据本文的实施例的可以被识别为抓持区域的表面区域。
[0012] 图8A至图8G示出了根据本文的实施例的识别抓持区域的各种方面。
[0013] 图9A和图9B示出了根据本文的实施例的识别抓持区域的各种方面。
[0014] 图10示出了根据本文的实施例的被识别为安全区域的3D区域。
[0015] 图11A和图11B示出了根据本文的实施例的识别安全区域的各种方面。
[0016] 图12A和图12B示出了根据本文的实施例的识别安全区域或基于安全区域的运动计划的各种方面。

具体实施方式

[0017] 本公开的一个方面涉及识别用于抓持物体的抓持区域和/或安全区域。抓持区域,其也可以被称为可拾取区域,可以用于便于机器人拾取或以其他方式抓持物体。安全区域,其也可以被称为安全空间(safety volume),可以用于确定具有减少的碰撞风险的物体的轨迹。在一个示例中,物体可以是仓库或零售空间中的包裹,并且抓持区域和/或安全区域可以被识别以便于控制机器人抓持物体并将物体移动到目的地位置的过程。
[0018] 在实施例中,识别用于拾取物体的抓持区域可以涉及将物体表面上足够平滑且足够大的表面区域识别为抓持区域。抓持区域可以是被从由相机生成的图像信息识别出的表面区域,其中该图像信息可以表示包括要被抓持的物体的场景。此实施例中的表面区域可以为机器人的末端执行器装置提供合适的候选区域以进行接合和抓持。在一些情况下,机器人可以包括末端执行器装置,该末端执行器装置具有例如被配置为被压在物体的表面上或以其他方式与物体的表面接触的一个或多个吸盘。如果物体的表面和一个或多个吸盘之间有足够的接触,则该一个或多个吸盘可以能够与物体的表面产生粘附力。在一些情况下,要被抓持的物体可以是柔性物体,诸如一包服装。更具体地,包裹可以包括裹在一片塑料或其他包装材料中的一件服装。这样的柔性物体可以足够柔软或以其他方式可变形,这可以由于该柔性物体如何被物理地布置在其环境中而允许该柔性物体的一个或多个部分暂时形成一个或多个非平滑部分。非平滑部分可以包括例如隆起、皱起、脊、凹陷或其他物理特征,这些特征将不平滑度引入柔性物体的表面的相应局部部分。物体表面的非平滑部分可减少末端执行器装置与物体的表面的该部分之间可能的接触量,这可能干扰末端执行器装置在其自身与物体的表面的该部分之间产生粘附力的能力。因此,本文的实施例的计算系统可以尝试将足够平滑的表面区域识别为抓持区域,使得末端执行器装置能够更可靠地在其自身和抓持区域之间产生粘附力。所识别的抓持区域可以大于定义的区域大小阈值,以便足够大以适合用于与物体的表面接触的末端执行器装置(例如,吸盘)的组件。
[0019] 在实施例中,计算系统可以通过搜索满足定义的平滑度条件的表面区域来尝试找到足够平滑的表面区域。这样的条件可能涉及表面区域的具有足够相似的方向和足够相似的深度的部分。例如,计算系统可以将一个或多个物体表面划分为多个二维(2D)片(也被称为2D平面),并且搜索满足定义的方向相似性标准和/或定义的深度相似性标准的连续2D片,如下面更详细地讨论的。
[0020] 在实施例中,计算系统可以尝试将抓持区域识别为表面区域,该表面区域由满足定义的平滑度条件的一组连续2D片形成或在该一组连续2D片内适配。在一些实现中,计算系统可以识别由相机生成的图像信息表示的场景中的最平滑的位置或位置群集的2D片。计算系统可以将2D片用作种子或初始2D片,并且可以尝试将初始2D片扩展为一组连续2D片。扩展操作可以涉及搜索附加的2D片,这些附加的2D片定义包括初始2D片并满足定义的平滑度条件的局部区域。在一些情况下,计算系统可以搜索可以从这样的扩展操作形成的同时仍然满足定义的平滑度条件的最大局部区域。在一些实现中,抓持区域可以是由一组连续
2D片形成的局部区域。在一些实现中,抓持区域可以是在这样的局部区域内适配的较小区域。
[0021] 在实施例中,计算系统可以将在一个或多个水平维度上围绕抓持区域的三维(3D)区域确定为安全区域。在一些情况下,安全区域可以在垂直维度上围绕抓持区域。安全区域可以定义抓持区域周围的安全裕度,该安全裕度可由运动计划操作考虑,以减少被机器人抓持的物体与机器人的环境中的其它物体或结构之间的碰撞风险。在一些情况下,安全区域可以足够大,使得当安全区域在一个或多个水平维度上围绕安全区域时,它也可能围绕与抓持区域相关联的物体。例如,安全区域可以具有边缘,该边缘基于与一个物体或具有相同大小的一组物体相关联的定义的横向维度大小,或者基于与具有不同大小的一组物体相关联的最大横向维度大小来确定。
[0022] 在实施例中,计算系统可以确定安全区域具有基于物体的横向维度大小的高度。在这样的实施例中,物体可以是足够柔软的柔性物体,以使得当物体由机器人提起时其在自重作用下下垂。在这样的实施例中,安全区域的高度可以解释(account for)柔性物体的下垂问题,该高度可以被运动计划用来减少柔性物体的下垂部分与机器人环境中其他结构或物体之间的碰撞风险。
[0023] 图1A示出了用于基于图像信息执行抓持区域检测或更具体地生成识别抓持区域的检测结果的系统1000。更特别地,系统1000可以包括计算系统1100和相机1200。在此示例中,相机1200可以被配置为生成图像信息,该图像信息描述或以其他方式表示相机1200所处的环境,或更具体地表示相机1200的视野(也被称为相机视野)中的环境。该环境可以是例如仓库、零售空间或一些其他场所。在这样的情况下,图像信息可以表示在这样的场所处被存储和/或处理的物体,例如服装包裹或其他柔性物体。系统1100可以被配置为诸如通过基于图像信息执行机器人运动计划来生成、接收和/或处理图像信息,如下面更详细地讨论的。机器人运动计划可以用于例如控制场所处的机器人以便于机器人与物体之间的机器人交互,诸如其中机器人从初始位置拾取或以其他方式抓持物体中的一个物体并将该物体移动到目的地位置的机器人交互。计算系统1100和相机1200可以位于相同的场所,或者可以彼此远离。例如,计算系统1100可以是托管在远离仓库或零售空间的数据中心中的云计算平台的一部分,并且可以经由网络连接与相机1200通信。
[0024] 在实施例中,相机1200可以是2D相机和/或3D相机(在本公开中术语“和/或”和“或”可互换使用)。例如,图1B示出了系统1000A(其可以是系统1000的实施例),该系统1000A包括计算系统1100以及相机1200A和相机1200B,相机1200A和相机1200B两者都可以是相机1200的实施例。在此示例中,相机1200A可以是被配置为生成2D图像信息的2D相机,该2D图像信息包括或形成描述相机的视野中的环境的视觉外观的2D图像。相机1200B可以是被配置为生成3D图像信息的3D相机(也被称为空间结构感测相机或空间结构感测设备),该3D图像信息包括或形成关于相机的视野中的环境的空间结构信息。空间结构信息可以包括深度信息,该深度信息描述了相对于相机1200的各种位置的相应深度值,诸如相机1200的视野中各种物体的表面上的位置。在此示例中,深度信息可以用于估计物体如何被空间地布置在三维(3D)空间中。在一些情况下,空间结构信息可以包括或可以用于生成深度图或点云,该深度图或点云描述了相机1200B的视野中一个或多个物体的表面(也被称为一个或多个物体表面)上的位置。在一些情况下,空间结构信息可以描述物体的结构(也被称为物体结构)上的各种位置。
[0025] 在实施例中,系统1000可以是用于便于机器人与相机1200的环境中的各种物体之间的交互的机器人操作系统。例如,图1C示出了机器人操作系统1000B,其可以是图1A和图1B的系统1000/1000A的实施例。机器人操作系统1000B可以包括计算系统1100、相机1200和机器人1300。如上所述,机器人1300可以用于与相机1200的环境中的一个或多个物体(诸如与放置在箱子中的服装包裹)交互。例如,机器人1300可以被配置为拾取或以其他方式抓持具有一件服装的包裹,将该包裹从箱子向上提起,并且将该包裹移动到另一个位置,诸如传送带上的位置。在一些实现中,相机1200可以被附接到机器人1300,诸如被附接到机器人
1300的机器人臂。这样的实现可以允许相机1200经由机器人臂被移动到不同的位置和/或方向。在一些实现中,相机1200可以与机器人1300分开。例如,相机1200可以被安装到天花板或仓库内的其他结构,并且可以相对于该结构保持固定。
[0026] 在实施例中,图1A‑1C的计算系统1100可以形成机器人控制系统(也被称为机器人控制器)或是其一部分,该机器人控制系统是机器人操作系统1000B的一部分。机器人控制系统可以是被配置为例如为机器人1300生成移动命令或其他命令的系统。在这样的实施例中,计算系统1100可以被配置为基于例如由相机1200/1200A/1200B生成的图像信息来生成这样的命令。例如,计算系统1100可以被配置为基于图像信息确定运动计划,并生成一个或多个移动命令以执行运动计划。运动计划可以是例如机器人运动计划,其可以是机器人执行以移动一个或多个物体的计划。例如,运动计划可以涉及机器人1300的末端执行器装置接近物体,然后拾取或以其他方式抓持物体(例如,经由末端执行器装置的吸盘或其他组件),并且将物体移动到目的地位置。
[0027] 在实施例中,计算系统1100可以形成视觉系统或是视觉系统的一部分。视觉系统可以是生成例如视觉信息的系统,该视觉信息描述机器人1300所处的环境,或更具体地描述相机1200所处的环境。视觉信息可以包括上面讨论的3D图像信息或2D图像信息,或一些其他图像信息。在一些情况下,如果计算系统1100形成视觉系统,则视觉系统可以是上面讨论的机器人控制系统的一部分,或者可以与机器人控制系统分开。如果视觉系统与机器人控制系统是分开的,则视觉系统可以被配置为输出描述机器人1300所处的环境的信息。该信息可以被输出到机器人控制系统,该机器人控制系统可以从视觉系统接收这样的信息并且基于该信息来控制机器人1300的移动,或更具体地执行机器人运动计划。
[0028] 在实施例中,计算系统1100可以经由直接连接(诸如,经由专用有线通信接口(诸如,RS‑232接口、通用串行总线(USB)接口)和/或经由本地计算机总线(诸如外围组件互连(PCI)总线)提供的连接)与相机1200和/或机器人1300进行通信。在实施例中,计算系统1100可以经由网络与相机1200和/或与机器人1300通信。网络可以是任何类型和/或形式的网络,诸如个人局域网(PAN)、局域网(LAN)(例如内联网)、城域网(MAN)、广域网(WAN))或互联网。网络可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(TCP/IP)、ATM(异步传输模式)技术、SONET(同步光网络)协议或SDH(同步数字体系)协议。
[0029] 在实施例中,计算系统1100可以与相机1200和/或与机器人1300直接通信信息,或者可以经由中间存储设备或更一般地经由中间非暂时性计算机可读介质进行通信。例如,图1D示出了可以是系统1000/1000A/1000B的实施例的系统1000C,该系统1000C包括非暂时性计算机可读介质1400,该非暂时性计算机可读介质1400可以在计算系统1100的外部,并且可以充当外部缓冲器或存储库(repository),用于存储例如由相机1200生成的图像信息。在这样的示例中,计算系统1100可以检索或以其他方式接收来自非暂时性计算机可读介质1400的图像信息。非暂时性计算机可读介质1400的示例包括电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合。非暂时性计算机可读介质可以形成例如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SDD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD‑ROM)、数字多功能磁盘(DVD)和/或记忆棒。
[0030] 如上所述,相机1200可以是3D相机和/或2D相机。2D相机可以被配置为生成2D图像,诸如彩色图像或灰度图像。3D相机可以是例如深度感测相机,诸如飞行时间(TOF)相机、结构光相机、立体相机或相机系统(其可以包括共同提供立体视觉的多个相机)或任何其他类型的3D相机。在一些情况下,2D相机和/或3D相机可以包括图像传感器,诸如电荷耦合器件(CCD)传感器和/或互补金属氧化物半导体(CMOS)传感器。在实施例中,3D相机可以包括激光器、激光雷达设备、红外设备、明/暗传感器、运动传感器、微波检测器、超声波检测器、雷达检测器,或被配置为捕获空间结构信息的任何其他设备。
[0031] 如上所述,图像信息可以由计算系统1100处理。在实施例中,计算系统1100可以包括或被配置为服务器(例如,具有一个或多个服务器刀片、处理器等)、个人计算机(例如,台式计算机、膝上型计算机等)、智能手机、平板计算设备和/或其他任何其他计算系统。在实施例中,计算系统1100的任何或所有功能可以被执行为云计算平台的一部分。计算系统1100可以是单个计算设备(例如,台式计算机),或者可以包括多个计算设备。
[0032] 图2A提供了示出计算系统1100的实施例的框图。计算系统1100包括至少一个处理电路1110和非暂时性计算机可读介质(或多个介质)1120。在实施例中,处理电路1110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“PLC”)、专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”),其任何组合或任何其他处理电路。
[0033] 在实施例中,作为计算系统1100的一部分的非暂时性计算机可读介质1120可以是以上讨论的中间非暂时性计算机可读介质1400的替代或附加。非暂时性计算机可读介质1120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SDD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD‑ROM)、数字多功能磁盘(DVD)、记忆棒、其任何组合或任何其他存储设备。在一些情况下,非暂时性计算机可读介质1120可以包括多个存储设备。在某些实现中,非暂时性计算机可读介质1120被配置为存储由相机
1200生成并且由计算系统1100接收的图像信息。非暂时性计算机可读介质1120可以替代地或附加地存储计算机可读程序指令,在由处理电路1110执行时,该指令使处理电路1110执行这里描述的一种或多种方法,诸如关于图4描述的操作。
[0034] 图2B描绘了计算系统1100A,其是计算系统1100的实施例并且包括通信接口1130。通信接口1130可以被配置为例如接收由图1A‑1D的相机1200生成的图像信息。可以经由以上讨论的中间非暂时性计算机可读介质1400或网络,或者经由相机1200与计算系统1100/
1100A之间的更直接的连接来接收图像信息。在实施例中,通信接口1130可以被配置为与图
1C的机器人1300通信。如果计算系统1100在机器人控制系统外部,则计算系统1100的通信接口1130可以被配置为与机器人控制系统通信。通信接口1130也可以被成为通信组件或通信电路,并且可以包括例如被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括RS‑232端口控制器、USB控制器、以太网控制器、 控制器、
PCI总线控制器、任何其他通信电路或其组合。
[0035] 在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令来编程。例如,图2C示出了计算系统1100B,其是计算系统1100/1100A的实施例,其中处理电路1110由一个或多个模块编程,该模块包括抓持区域检测模块
1127和/或运动计划模块1129。
[0036] 在实施例中,抓持区域检测模块1127可以被配置为执行抓持区域检测操作,其可以涉及执行例如方法4000的步骤4002至4006,这将在下面更详细地讨论。抓持区域检测操作可以用于便于机器人抓持物体,诸如具有一件服装的包裹。更特别地,抓持区域检测操作可以识别抓持区域,该抓持区域可以是物体的表面上的合适区域(也被称为合适的表面区域),在该区域处物体可以被机器人拾取或以其他方式抓持。在一些实现中,抓持区域检测操作可以将物体的表面上足够平滑且足够大以可靠地使机器人能够在该表面区域处抓持物体的表面区域识别为抓持区域。例如,如果机器人使用一个或多个吸盘粘附到物体的表面(也被称为物体表面),则模块1127所识别的抓持区域(也被称为可抓持区域或可拾取区域)可以是足够平滑且足够大以接合该一个或多个吸盘并且能够在该表面区域和该一个或多个吸盘之间可靠地产生粘附的表面区域。模块1127可以通过例如确定表面区域是否满足定义的平滑度条件来确定表面区域是否足够平滑,这将在下面更详细地讨论。在实施例中,抓持区域检测模块1127可以被配置为检测围绕抓持区域的安全区域,如下面更详细地讨论的。在一些情况下,抓持区域检测模块1127可以被配置为分析或以其他方式处理表示相机视野中的场景的图像信息,并基于该图像信息识别或生成抓持区域和/或安全区域。在这样的情况下,抓持区域和/或安全区域可以是抓持区域检测模块1127的输出。
[0037] 在实施例中,运动计划模块1129可以被配置为基于抓持区域检测模块1127的输出或更一般地基于表示相机视野中的场景的图像信息来执行运动计划,或更具体地,机器人运动计划。更特别地,运动计划可以涉及确定要由机器人(例如,1300)或其组件执行的运动。例如,运动计划可以涉及确定机器人1300或更具体地其末端执行器装置的轨迹,以抓持相机视野中的物体并将物体移动到目的地位置。作为示例,轨迹可使末端执行器装置的吸盘或其他组件与物体的表面上的抓持区域接合或以其他方式接触,其中抓持区域可由模块1127识别,以便抓持物体。轨迹还可以使末端执行器装置提起物体并将物体移动到目的地位置。在一些情况下,运动计划模块1129可以基于安全区域来确定轨迹,该安全区域也可以由模块1127识别。安全区域可以由模块1129用来减少被抓持的物体与机器人环境中的另一个物体或结构之间的碰撞风险,如下面更详细地讨论的。
[0038] 在实施例中,非暂时性计算机可读介质1120可以存储由模块1127/1129使用的信息和/或模块1127/1129的输出。例如,如果抓持区域检测模块1127使用一个或多个阈值,诸如区域大小阈值,则该一个或多个阈值可被存储在非暂时性计算机可读介质1120中。一个或多个阈值可以已由计算系统1100动态地定义或可以已被手动地预定义,并且因此可以被称为一个或多个定义的阈值。
[0039] 在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”广义上是指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件组件正在执行模块或计算机可读指令时,模块和计算机可读指令可以被描述为执行各种操作或任务。
[0040] 图3A‑图3C示出了其中可以执行抓持区域检测操作和/或运动计划操作的示例环境。更具体地,图3A描绘了系统3000(其可以是图1A‑图1D的系统1000/1000A/1000B/1000C的实施例),其包括计算系统1100、机器人3300和相机3200。相机3200可以是相机1200的实施例,并且可以被配置为生成图像信息,该图像信息表示相机3200的相机视野3210中的场景,或更具体地表示相机视野3210中的物体或其结构,诸如物体35201至3520n,其可以包括例如物体35201、35202、35203、35204、35205...3520n。在图3A‑图3C的实施例中,机器人3300可以被配置为操纵物体35201‑3520n中的一个或多个中的每个或以其他方式与之交互,诸如通过拾取或以其他方式抓持物体35201‑3520n中的一个,从物体的当前位置提起物体,并将物体移动到目的地位置。
[0041] 在一些情况下,物体35201至3520n中的一些或全部可以是柔性物体。例如,物体35201至3520n中的每个可以是具有一件服装(例如,一件衬衫或一条裤子)或其他纺织品或织物的包裹,其中该件服装或其他纺织品可以被裹在一片包装材料(诸如一片塑料)中。在一些情况下,该片塑料或其他包装材料通常可以是空气或其他流体不可渗透的。在图3A的示例中,物体35201至3520n可以被放置在容器3510中,诸如用于将35201至3520n容纳(hold)在设施(诸如与服装制造商或零售商相关联的仓库)中的箱子或盒子。
[0042] 在一些情况下,本文的实施例的柔性物体(例如,35201)可以具有足够高的柔性水平,以允许柔性物体在被机器人3300移动或以其他方式操纵时变形。足够高的柔性水平可以与足够低的硬度或刚度水平相对应,以防止物体在被机器人3300移动或以其他方式操纵时维持其形状。在一些情况下,柔性物体可以具有足够高的柔性水平以当柔性物体被机器人3300提起时,允许柔性物体的重量引起其自身形状的变形。该变形可涉及例如柔性物体在被机器人3300提起时在其自重作用下弯曲,或更具体地下垂。柔性物体的柔性可以由例如柔性物体的尺寸(dimension)和/或柔性物体的材料产生。在一个示例中,柔性物体可以具有薄外形(profile),这可以将柔性(也被称为柔韧性)引入到柔性物体中。更具体地,柔性物体可以具有大小相对于横向维度(例如,长度维度或宽度维度)的大小要小得多的厚度维度。在一个示例中,柔性物体可以由足够柔软以将柔性引入柔性物体的材料制成。在一些情况下,柔性物体的材料可能足够柔软,以便当物体在被机器人3300提起在该材料的自重作用下下垂。例如,如果柔性物体是具有一件服装的包裹,则其可以由诸如棉织物或羊毛织物的材料形成,该材料缺乏足够的硬度以防止当被机器人3300提起时该材料在其自重作用下下垂。
[0043] 在实施例中,机器人3300(其可以是机器人1300的实施例)可以包括机器人臂3320,该机器人臂具有附接到机器人基座3310的一端,并且具有附接到末端执行器装置
3330或由末端执行器装置3330形成的另一端。机器人基座3310可用于安装机器人臂3320的一端,而机器人臂3320的另一端,或更具体地,末端执行器装置3330,可用于与机器人3300的环境中的一个或多个物体(例如,35201、35202等)交互。交互可以包括例如抓持和提起一个或多个物体,和/或将一个或多个物体从当前位置移动到目的地位置。
[0044] 在实施例中,末端执行器装置3330可包括用于拾取或以其他方式提起物体(诸如物体35201‑3520n中的一个)的一个或多个吸盘33321‑3332n。在一些实现中,吸盘33321‑3332n(也被称为末端执行器吸盘)中的每一个可以是机械设备,其被配置为当被压成与物体(例如,35201)的表面接触时减小吸盘和物体的表面(也被称为物体表面)之间的空间中的流体压力(例如,气压)。在一个示例中,物体表面可以由通常对流体不可渗透(或更通常地是无孔的)的材料(诸如用于裹住一件服装的一片塑料包装材料)形成。降低的流体压力,诸如部分或完全真空,可导致空间外的流体压力与空间内的流体压力之间的压力差。更具体地,空间内的流体压力可以低于空间外的流体压力,这可以产生负流体压力,该负流体压力使较高的流体压力施加将吸盘贴附到物体表面的净力。净力可以用作使吸盘能够粘附到物体表面的粘附力,以便抓持物体表面。在实施例中,吸盘(例如,33321或3332n)中的每一个可以具有各种形状(例如,圆形)和大小,并且可以具有各种材料,诸如塑料、硅树脂、腈、氟橡胶、乙烯基、氨基甲酸酯、橡胶或一些其他柔性材料。题为“Robotic system with a robot arm suction control mechanism and method of operation thereof(具有机器人臂吸盘控制机制的机器人系统及其操作方法)”第10,576,630号美国专利中更详细地讨论了吸盘,该美国申请的全部内容通过引用并入本文中。在实施例中,吸盘与物体表面之间的粘附力的强度可以取决于吸盘能够密封其自身与物体表面之间的空间的紧密程度。例如,紧密的密封可维持压力差,并因此维持粘附力,而松弛的密封可阻止压力差被维持,并因此可干扰吸盘抓持物体表面的能力。在实施例中,吸盘形成紧密密封的能力可以取决于吸盘在其处尝试抓持物体表面的物体表面区域(也被称为表面区域)处的平滑度。因此,如下面更详细地讨论的,计算系统1100可以被配置为识别或搜索足够平滑的表面区域以用作抓持区域,在该表面区域处吸盘可以可靠地粘附在并因此抓持物体表面。
[0045] 在实施例中,相机3200可以被配置为生成表示物体35201‑3520n和容器3510或者相机视野3210中的任何其他(一个或多个)物体的图像信息。相机3200可以是被配置为生成3D图像信息的3D相机和/或被配置为生成2D图像信息的2D相机。在实施例中,3D图像信息可以表示物体的物体(35201)表面,或更具体地描述物体表面的物理结构。例如,3D图像信息可以包括深度图,或更一般地包括深度信息,其可以描述相机视野3210中的各种位置相对于相机3200或相对于某个其他参考点的相应深度值。对应于相应深度值的位置可以是相机视野3210中的各种表面上的位置,诸如物体35201至3520n的相应物体表面上的位置。在一些情况下,3D图像信息可以包括点云,其可以包括多个3D坐标,该3D坐标描述了相机视野3210中的物体35201至3520n的相应物体表面上的各种位置。
[0046] 在实施例中,物体(例如,35201)的物体表面可以指物体的外表面(例如,顶表面)。在这样的实施例中,3D图像信息可以表示外表面,或更具体地,可以描述外表面的物理结构。例如,如果相机3200通过感测从外表面反射的光(例如,激光或结构光)或其他信号来生成3D图像信息,则3D信息可以表示例如外表面的表面轮廓。如果外表面由透明材料(诸如用作包装材料的柔性塑料薄片)形成,则3D信息仍可以表示物体的外表面。更特别地,在这样的情况下,相机3200可以感测已经从非透明材料(诸如一件服装织物)反射的光或其他信号,该非透明材料在透明材料下方或以其他方式被透明材料覆盖。反射的光或信号可以穿过透明材料,并且可以被相机3200检测以生成3D信息。在此情况下,透明材料(例如,塑料片)可以足够薄,使得外表面和非透明材料的表面之间的距离可以被视为是可忽略的。因此,在实施例中,3D信息可以被视为描述物体的外表面上的各种位置的深度信息。附加地,如果透明材料形成外表面,则透明材料可以足够柔性,使得透明材料的全部或许多部分采用下面的非透明材料的表面轮廓。因此,在此情况下,3D图像信息可以被视为描述物体的外表面,或更具体地,外表面的物理结构或表面轮廓。
[0047] 在实施例中,2D图像信息可以包括例如表示相机视野3210中的一个或多个物体的外观的彩色图像或灰度图像。例如,如果物体表面具有视觉标记(例如,徽标)或印在其上的其他视觉细节,则2D图像信息可以描述或以其他方式表示视觉细节。如上所述,物体表面可以是物体的外表面,在一些情况下其可以由透明材料形成。在这样的情况下,2D图像信息可以表示已从下面的非透明材料(例如,衬衫)的表面反射并穿过形成外表面的透明材料的光(例如,可见光)或其他信号。因为在这样的情况下2D图像信息基于穿过外表面的光或其他信号,所以2D图像信息仍可以被视为表示外表面。此外,形成外表面的透明材料在一些情况下可以足够薄并且足够透明以对物体的外观几乎没有影响或可以具有可忽略的影响,从而物体或物体的外表面的外观可以被视为是指下面的非透明材料(例如,服装材料)的外观。
[0048] 在实施例中,系统3000可以包括多个相机。例如,图3B示出了系统3000A(其可以是系统3000的实施例),该系统3000A包括具有相机视野3210A的相机3200A,并且包括具有相机视野3210B的相机3200B。相机3200A(其可以是相机1200A的实施例)可以是例如被配置为生成2D图像或其他2D图像信息的2D相机,而相机3200B(其可以是相机1200B的实施例)可以是例如被配置为生成3D图像信息的3D相机。
[0049] 在实施例中,相机3200/3200A/3200B可以相对于参考点(诸如容器3510被放置在其上的地板)或相对于机器人基座3310是固定的。例如,图3A中的相机3200可以被安装在天花板上,诸如仓库的天花板上,或者被安装在相对于地板、相对于机器人基座3310或某个其他参考点保持固定的安装架上。在实施例中,相机3200可以被安装在机器人臂3320上。例如,图3C描绘了系统3000B(其可以是系统1000的一个实施例),其中相机3200被附接到或以其他方式被安装在形成机器人臂3200的远端的末端执行器装置3330上。这样的实施例可以向机器人3300提供经由机器人臂3320的移动将相机3200移动到不同姿势的能力。
[0050] 图4描绘了用于执行抓持区域检测的示例方法4000的流程图。方法4000可以由例如图2A‑图2C或图3A‑图3C的计算系统1100执行,或更具体地由计算系统1100的至少一个处理电路1110执行。在一些情况下,至少一个处理电路1100可以通过执行存储在非暂时性计算机可读介质(例如,1120)上的指令来执行方法4000。例如,指令可以使处理电路1110执行图2C中所示的可以执行方法4000的一个或多个模块。作为示例,下面讨论的步骤4002‑4006可以由抓持区域检测模块1127执行,而步骤4008可以由运动计划模块1129执行。在实施例中,可以在计算系统1100与机器人和相机(诸如机器人3300和图3A‑图3B中的相机3200/3200A/3200B)或本公开中讨论的任何其他相机或机器人通信的环境中执行方法4000。
[0051] 在实施例中,当物体,或更具体地是柔性物体(例如,35201、35202等)在相机(例如,3200/3200A/3200B)的相机视野(例如,3210/3210A/3210B)中时,可以执行方法4000的一个或多个步骤。例如,在物体在相机视野(例如,3210/3210A/3210B)中之后,或者更一般地,在物体在相机视野中时,可以立即执行方法4000的一个或多个步骤。在一些情况下,当物体在或已经在相机视野中时,可以执行方法4000的一个或多个步骤。例如,当物体在相机视野(例如,3210/3210A/3210B)中时,相机(例如,3200/3200A/3200B)可以生成表示物体或更具体地表示物体的表面(也被称为物体表面)的图像信息,并且可以将图像信息传达给计算系统(例如,1100)。当物体仍在相机视野中时,或者甚至当物体不再在相机视野中时,计算系统可以基于图像信息执行方法4000的一个或多个步骤。
[0052] 在实施例中,方法4000可以以步骤4002开始或以其他方式包括步骤4002,其中计算系统1100接收表示相机(例如,3200/3200A/3200B)的相机视野(例如,3210/3210A/3210B)中的物体(诸如柔性物体)的物体表面的图像信息。在实施例中,当物体在(或已经在)相机视野中时,图像信息可以由相机(例如,3200)生成,并且可以包括例如3D图像信息和/或2D图像信息。
[0053] 作为示例,图5A描绘了其中步骤4002中的图像信息包括3D图像信息5700的示例。更特别地,3D图像信息5700可以包括例如指示相机视野(例如,3200/3200A)中的各种位置(诸如位置57001、57002...5700n)的相应深度值的深度图或其他深度信息,该各种位置可以是按行和列组织的位置的网格。在一些实现中,深度图可以包括指示位置57001‑5700n的相应深度值的像素。在实施例中,位置57001‑5700n中的至少一些是一个或多个物体表面(诸如物体35201‑3520n的物体表面)上的位置。例如,3D图像信息5700可以包括图像部分57201、
57202、57203、57204、57205...5720n‑3、5720n‑2、5720n‑1、5720n,其中图像部分中的每一个可包括相应物体(例如35201、35202、35203...或3520n)的物体表面上的相应一组位置的深度信息。在一些情况下,3D图像信息可以包括点云,其可以包括分别描述位置57001‑5700n的一组坐标。坐标可以是3D坐标,诸如[X Y Z]笛卡尔坐标,并且可以具有相对于相机坐标系或某个其他坐标系的值。在此示例中,特定位置(例如,57001)的[X Y Z]坐标可以具有等于或基于该位置的深度值的Z分量。深度值可以相对于生成3D图像信息的相机(例如,3200/
3200A),或者可以相对于某个其他参考点。
[0054] 在实施例中,3D图像信息可以描述物体表面的表面轮廓。例如,图5A中的3D图像信息5700可以至少具有描述物体表面35201的物体表面的表面轮廓的图像部分57201。物体表面的表面轮廓可以描述物体表面的物理结构。在一些情况下,物体表面的物理结构可以是完全或基本平滑的。在一些情况下,物体表面的物理结构可以包括物理特征,诸如皱起、隆起、脊、折痕或凹陷,这些特征可以形成物体表面的一个或多个非平滑部分。
[0055] 如上所述,物体表面可以是物体的外表面(例如,顶表面),并且可以由透明材料、非透明材料(例如,半透明或不透明材料)或其组合形成。还如上所述,如果外表面由覆盖下面的非透明材料的透明材料形成,则该透明材料可以足够薄并且柔性以被视为对物体的物理结构或表面轮廓具有可忽略的影响。在这样的情况下,表示下面的非透明材料的物理结构或表面轮廓的3D图像信息可以被视为也表示物体的外表面的物理结构或表面轮廓。此外,如果透明材料足够薄,则其厚度可以被相机(例如,3200)视为对深度测量具有可忽略的影响。在这样的情况下,具有在3D图像信息中表示的深度值的各种位置(诸如图像部分57201的位置)可以被视为对应物体(例如,35201)的外表面上的位置。
[0056] 图5B描绘了由相机3200/3200B生成的并且表示图3A和图3C的物体35201‑3520n和容器3510的2D图像信息,或更具体地2D图像5600。更具体地,2D图像5600可以描述物体35201‑3520n和物体35201‑3520n被放置在其中的容器3510的外观。更具体地,2D图像5600可以包括分别表示物体35201、35202、35203...或3520n的视觉细节的图像部分56201、56202、
56203、56204、56205...5620n‑3、5620n‑2、5620n‑1、5620n(例如,像素区域)。在实施例中,2D图像信息可以表示物体(例如,35201)的物体表面。如上所述,物体表面可以是物体的外表面(例如,顶表面),并且可以由透明材料、非透明材料(例如,半透明或不透明材料)或其组合形成。还如上所述,如果外表面由覆盖下面的非透明材料的透明材料形成,则透明材料可以足够薄并且透明以被视为对物体的外观具有可忽略的影响。在这样的情况下,下面的非透明材料的外观也可以被视为物体的外表面的外观,使得2D图像信息被视为表示物体的外表面的外观。
[0057] 在实施例中,计算系统1100可以被配置为确定所接收的图像信息是否具有其中像素值不可用或者具有高于某个误差阈值的量误差(amount error)的任何间隙。例如,计算系统1100可以确定图像信息是否具有突出显示区域,该突出显示区域可以是被从相机视野中的场景反射的光或其他信号过饱和的像素区域。例如,突出显示区域可以表示来自物体表面的一部分的眩光,其中该眩光是由具有太大强度的反射光引起的。眩光可引入使图像信息的所得像素具有不准确的值的噪声,使得所得像素可在图像信息中形成间隙。在这样的实施例中,计算系统1100可以被配置为用估计的像素值来填充图像信息中的间隙。可以基于例如从间隙周围的相邻像素的像素值进行内插来确定估计值。
[0058] 返回图4,在实施例中,方法4000可以包括步骤4004,其中计算系统1100可以基于在步骤4002中接收到的图像信息来识别抓持区域。更具体地,计算系统1100可以将物体表面的满足定义的平滑度条件并且具有大于或等于定义的区域大小阈值的区域大小的表面区域识别为抓持区域。在实施例中,抓持区域(也被称为可拾取区域)可以是物体(例如,35201)的表面区域,该表面区域被计算系统1100识别为适合于要由机器人拾取或以其他方式抓持或接收某个其他机器人交互的物体。例如,图6提供了一个示例,其中计算系统将表面区域6810识别为抓持区域,通过该抓持区域,物体35201可由末端执行器装置3330或更具体地由末端执行器装置3330的一个或多个吸盘33321‑3332n抓持。下面讨论的图9B示出了抓持区域6812的另一示例。计算系统1100可以确定表面区域6810满足定义的平滑度条件。在实施例中,定义的平滑度条件可以是例如在非暂时性计算机可读介质1120中预定义的,或者可以由计算系统1100动态地定义的。例如,如果定义的平滑度条件是由可能涉及满足一个或多个阈值的一个或多个标准形成的,则描述该一个或多个标准或者该一个或多个阈值的规则或其他信息可以被预定义并存储在非暂时性计算机可读介质1120中。
[0059] 在一些情况下,定义的表面区域(例如,6810)的平滑度条件可以与对于预期目的(诸如由末端执行器装置拾取或以其他方式抓持)足够平滑的表面区域相关联。由末端执行器装置抓持可涉及例如末端执行器装置与表面区域(例如,6810)接触的吸盘或其他组件。如上所述,在一些情况下,末端执行器装置可将吸盘压成与表面区域接触,以尝试产生具有负流体压力的密封空间,这在吸盘与表面区域之间产生粘附。在这样的示例中,满足平滑度条件可以涉及足够平滑的表面区域,以便在其自身与吸盘或末端执行器装置的其他组件之间提供足够量的接触。例如,平滑度条件可以涉及足够平滑的表面区域(例如,6810),使得吸盘在被压在该表面区域时将可靠地在吸盘和该表面区域之间的空间周围形成密封,以便在该空间中维持负流体压力,并在吸盘和表面区域之间产生足够水平的粘附。在这样的情况下,计算系统1100可以确定表面区域(例如,6810)适合用作抓持区域。
[0060] 在一些实现中,表面区域或表面的平滑度可涉及缺乏物理特征,例如从表面区域或表面突出或沉入其中的皱起、隆起、脊、折痕或凹痕。更特别地,这样的物理特征的存在可减小可在末端执行器装置与表面区域之间形成的最大可能的接触面积,或更具体地可干扰吸盘或末端执行器装置的其他组件在吸盘和表面区域之间的空间周围形成密封的能力。因此,满足平滑度条件的表面区域(例如,6810)通常可以没有或基本上没有这样的物理特征。
[0061] 在实施例中,定义的平滑度条件可以由一个或多个标准(诸如方向相似性标准和/或深度相似性标准)来定义,这将在下面更详细地讨论。方向相似性标准可以涉及形成具有足够相似方向的表面区域的较小片,而深度相似性标准可以涉及沿着深度维度或者更具体地沿着与片之一的法向量平行的轴彼此足够接近的较小片。如上所述,描述方向相似性标准和/或深度相似性标准的规则或其他信息可以被预定义或动态定义,并且可以被存储在非暂时性计算机可读介质1120中。
[0062] 在一些实现中,平滑且平坦的表面区域以及通过平滑且具有一定量的曲率的表面区域可满足定义的平滑度条件。例如,如果计算系统1100将表面区域划分成较小的片,则方向上具有小的差异的片可满足这样的实现中的方向相似性标准。这样的小的差异可以解释(account for)具有平缓曲率的表面区域。这样的实现可反映一种评估,即平滑但具有平缓曲率的表面区域可能仍然能够允许其自身与吸盘或末端执行器装置(例如,3330)的某个其他组件之间的大量接触,并且因此,仍然能够允许在表面区域和吸盘之间可靠地形成牢固量的粘附(a robust amount of adhesion)。
[0063] 在一些实现中,满足定义的平滑度条件的表面区域可能必须既平滑又平坦或基本平坦。例如,在这样的实现中的方向相似性标准可能比上面讨论的涉及具有平缓曲率的平滑表面的示例中的方向相似性标准更严格。在这些实现中,片可能必须在方向上更加相似以满足定义的方向相似性标准。结果,由片形成的表面区域可以具有小得多的曲率水平,或者没有曲率。这样的实现可以反映一种评估,即表面区域需要既平滑又平坦或基本平坦,以允许在其自身与吸盘或末端执行器装置(例如,3330)的某个其他组件之间可靠地形成牢固量的粘附。因此,方向相似性标准的严格水平可以用于控制被识别为抓持区域的表面区域的平坦程度。
[0064] 在实施例中,作为将表面区域(例如,图6和图9B的6810/6812)识别为抓持区域的先决条件,计算系统1100可以确定表面区域(例如,6810)是否大于或等于定义的区域大小阈值。这样的先决条件可以确保表面区域(例如,6810/6812)不仅足够平滑,而且还足够大以被机器人(例如,3300)抓持或接收来自机器人(例如,3300)的某个其他交互。在一些情况下,定义的区域大小阈值可以是或可以指示表面积阈值,使得计算系统1100确定被识别为抓持区域的表面区域(例如,6810/6812)的总表面积是否大于或等于表面积阈值。定义的区域大小阈值可以是例如预定义的或动态定义的,并且可以被存储在非暂时性计算机可读介质1120中。在一些情况下,定义的区域大小阈值可以指示一个或多个相应维度(诸如半径、长度和/或宽度)的一个或多个值。更具体地,定义的区域大小阈值可以定义用于物体表面和机器人之间的交互的接触区域或其他交互区域。接触区域可具有一个或多个相应维度的一个或多个值。在这样的情况下,计算系统1100可以确定这样的接触区域是否将在表面区域(例如,6810)内适配。
[0065] 更具体地,在一些情况下,定义的区域大小阈值可以是与末端执行器装置(例如,3330)与物体(或更具体地为柔性物体)之间的接触相关联的定义的接触区域大小。例如,如果图6的表面区域6810是图3A‑图3C的物体35201的一部分,则定义的区域大小阈值可以是与末端执行器装置的一个或多个组件(例如,吸盘33321‑3332n)和物体35201之间的接触相关联的定义的接触区域大小。定义的接触区域大小可以是要被压在物体(例如,35201)上或以其他方式与物体(例如,35201)接触的一个或多个组件的接触区域的大小。作为示例,图
7A描绘了其中一个或多个吸盘中的一个吸盘(例如,3332n)接触物体35201的表面区域6810的接触区域7334。在这样的示例中,定义的接触区域大小可以是与吸盘(诸如吸盘3332n)相关联的定义的盘大小,使得定义的区域大小阈值可以是定义的吸盘大小(例如,吸盘的半径)。图7B描绘了其中多个吸盘(例如,33321和3332n)与物体35201的表面区域6810接触的另一个接触区域7335。在图7B的示例中,定义的区域大小阈值可以是接触区域7335的大小。如果多个吸盘形成吸盘阵列,则定义的区域大小阈值可以是定义的阵列的大小(也被称为定义的阵列大小)。计算系统1100可以将表面区域(例如,6810)的大小与定义的区域大小阈值进行比较,以更好地确保如果表面区域被识别为抓持区域,则抓持区域足够大以适配具有定义的接触区域大小的接触区域(例如,7334、7335)。换句话说,满足定义的区域大小阈值的表面区域(例如,6810)可能足够大以接收接触,或更一般地由用于在表面区域抓持物体(例如,35201)的末端执行器装置(例如,3330)的一个或多个组件接合。上面讨论的定义的大小可以是例如预定义的或动态定义的,并且可以被存储在非暂时性计算机可读介质1120中。
[0066] 在一些情况下,定义的区域大小阈值可以是与物体(例如,35201)相关联的定义的物体大小。在这样的情况下,定义的物体大小可以例如描述物体的边界或边缘。然后,计算系统1100可以确定满足定义的平滑度条件的表面区域是否还足够大以适配具有这样的边界或边缘的物体或区域。这样的定义的区域大小阈值的使用可以允许计算系统1100更严格地检查表面区域(例如,6810)是否属于要由机器人(例如,3330)抓持和移动的物体(例如,35201)或与之相关联。
[0067] 在实施例中,计算系统1100可以通过将物体表面划分为多个二维(2D)片并确定该多个2D片是否包括形成足够平滑的表面区域的一组连续2D片来识别平滑表面区域,或更具体地,满足定义的平滑度条件的表面区域。例如,图8A描绘了将由3D图像信息表示的表面划分为多个2D片87401至8740n(其不一定按比例绘制)的示例。多个2D片中的每个2D片可以是由在步骤4002中接收的图像信息所表示的多个位置的一部分的一组位置形成的虚拟2D片,也被称为虚拟2D平面。更具体地,图像信息可以描述相机视野中的多个位置的深度信息,诸如关于图5A讨论的多个位置57001至5700n。图像信息可以包括例如具有像素的网格(也被称为像素的阵列)的深度图或点云。在此示例中,计算系统1100可以通过确定多个2D片87401‑8740n并从满足定义的平滑度条件的多个2D片中识别出一组连续2D片来识别抓持区域。更具体地,多个2D片87401至8740n可以表示相机视野(例如,3210)中的物体的物体表面,诸如物体35201‑3520n。例如,3D图像信息5700可以包括表示物体35201的物体表面的图像部分
57201,并且多个片87401至8740n可以包括也表示物体35201的物体表面的一部分片。图8B描绘了可以基于图像部分57201形成的该部分片,即片8740q‑8740r。因此,该部分片8740q‑
8740r可以表示物体35201的物体表面。
[0068] 在实施例中,多个2D片87401‑8740n可以是尝试适配或以其他方式近似于多个位置57001‑5700n的相应子集的2D平面。即,每个2D片可以适配或以其他方式近似于位置的相应子集,其中位置的相应子集是多个位置57001‑5700n的一部分。作为示例,图8B示出了计算系统1100如何确定或识别2D片8740p至8740p+5,该2D片8740p至8740p+5可以是多个2D片87401‑
8740n的一部分,或更具体地是部分片8740q‑8740r的一部分。在此示例中,可以基于在步骤
4002中接收的图像信息描述的位置(诸如图8B中的位置5700k‑5700k+116,其可以是位置
57001‑5700n的一部分)来确定或识别2D片。
[0069] 如上所述,多个位置57001‑5700n(包括位置5700k‑5700k+116)可以被组织成具有行和列的位置的网格。例如,图8C示出了被组织为位置5700[kx,ky]至5700[kx+12,ky+8]的网格的位置5700k‑5700k+116。在这样的示例中,位置5700[kx,ky]至5700[kx+12,ky+8]的网格可以由对应像素的网格(诸如13x9像素的网格)来表示,对应像素的网格可以是在步骤4002中接收到的图像信息的一部分。例如,图像信息可以是包括描述位置5700[kx,ky]至5700[kx+12,ky+8]的相应深度值的像素的深度图或点云。更特别地,图像信息可以包括点云,该点云包括位置5700[kx,ky]至5700[kx+12,ky+8]的每个位置的相应的[X Y Z]坐标。在这样的示例中,部分2D片
8740p至8740p+5每个可适配或以其他方式近似于位置5700[kx,ky]至5700[kx+12,ky+8]的相应子集,其中子集可包括例如,对应于图像信息的5x5像素的5x5位置的网格。在此示例中,每个像素可以包括由该像素表示的对应位置的[X Y Z]坐标。
[0070] 作为示例,计算系统1100可以将2D片8740p确定或识别为适配遍及(fits through)包括位置5700[kx,ky]至5700[kx+4,ky+4]的子集(或更具体地遍及由角位置5700[kx,ky]、
5700[kx+4,ky]、5700[kx,ky+4]和5700[kx+4,ky+4]界定的位置的5x5网格)的虚拟2D平面。位置的5×5网格可以对应于可以描述位置的网格的相应坐标(例如,[X Y Z]坐标)的图像信息的相应像素的5×5的网格。在这样的示例中,计算系统1100可以通过执行平面拟合(fitting)操作以确定适配遍及相应坐标的虚拟2D平面来确定2D片8740p。平面拟合操作可以涉及识别虚拟2D平面,该虚拟2D平面与相应坐标具有足够低的偏差量,诸如低于定义的偏差阈值的偏差量。在一些情况下,对于2D片8740p的平面拟合操作可以涉及识别最适配遍及上述相应坐标的虚拟2D平面。
[0071] 在实施例中,多个2D片(例如,57001至5700n)可以便于计算系统1100以牢固或耐噪声的方式评估物体表面的平滑度的能力。更具体地,在一些情况下,在步骤4002中接收的图像信息可以包括针对图像信息的每个单独像素的方向信息。像素处的方向可以描述与像素所表示的位置相关联的方向。尽管计算系统1100可以尝试使用与单独像素相关联的方向信息来评估物体表面的平滑度,但是这样的方向信息可以包括由成像噪声或一些其他误差源引起的误差。为了补偿这样的误差源,计算系统1100可以确定每个都基于多个像素或更具体地基于像素的网格(例如,像素的5×5或10×10网格)的2D片,并使用与相应2D片相关联的方向来评估物体表面的平滑度。因为2D片中的每一个都基于多个像素,所以像素中任何一个中的误差可以被其他像素中的信息平均或以其他方式减轻。因此,从2D片导出的方向信息可以提供评估物体表面上的平滑度的更准确或可靠的方式。
[0072] 在实施例中,多个2D片(例如,57001至5700n)每个可以具有足够小的大小,以允许多个2D片以高度的粒度或细节来表示一个或多个物体表面。这样程度的粒度可以允许计算系统1100使用多个2D片来检测将不平滑度引入物体表面的甚微小的物理特征。例如,2D片中的每个可以具有5x5像素的大小。换句话说,2D片中的每个可以覆盖由图像信息的像素的5×5网格表示的区域。在此示例中,计算系统1100可以能够使用多个2D片来检测皱起、隆起、折痕、凹痕或减小表面平滑度的其他物理特征,即使这样的物理特征相对小。例如,多个
2D片可以能够以数十个像素的量级的分辨率检测皱起或其他物理特征。
[0073] 如上所述,在实施例中,计算系统1100可以通过从多个2D片(例如,87401至8740n)中识别出满足定义的方向相似性标准和定义的深度相似性标准的一组连续2D片,来识别满足定义的平滑度条件的表面区域。在这样的实施例中,定义的方向相似性标准和/或定义的深度相似性标准可以是定义的平滑度条件的一部分,使得满足定义的平滑度条件包括满足定义的方向相似性标准和/或定义的深度相似性标准。更特别地,如果一组连续2D片满足定义的方向相似性标准和深度相似性标准,则该一组连续2D片可以满足定义的平滑度条件。作为示例,图8D示出了满足方向相似性标准和定义的深度相似性标准的连续2D片组8745。
图8D中的连续2D片组8745可以例如包围图8C的2D片8740p至8740p+5。如下面更详细地讨论的,该连续2D片组(例如,8745)可用于形成或定义满足定义的平滑度条件的表面区域(例如,6810),并且因此可用于形成以上讨论的抓持区域。
[0074] 在实施例中,一组2D片可以定义在空间上连续的局部区域,其中局部区域的任何部分都不与该局部区域的任何其他部分完全隔离。如果该2D片组中的每个2D片直接或间接连接到该2D片组中的每个其他2D片,则该2D片组可以是连续的。在此实施例中,如果第一2D片和第二2D片共享共同边界,具有一些重叠或紧邻,则该第一2D片和第二2D片可以直接连接并且彼此相连。更具体地,如果第一2D片和第二2D片共享用于执行平面拟合以确定2D片的位置,则该第一2D片和第二2D片可以直接连接并且彼此相连。例如,图8C中的2D片8740p和2D片8740p+1共享用于确定2D片8740p和2D片8740p+1两者的五个共同位置。换句话说,在用于确定2D片8740p的位置和在用于确定2D片8740p+1的位置中存在重叠。结果,2D片8740p和2D片8740p+1可以被视为直接连接并且彼此相连。
[0075] 此外,如果在连接第一2D片和第二2D片的2D片组中存在一个或多个中间片,则该第一2D片和第二2D片可被视为是间接连接的。例如,图8C中的2D片8740p+1可以是间接连接2D片8740p和2D片8740p+2的中间片。作为另一示例,2D片8740p+3和8740p+4可以是间接连接2D片8740p和2D片8740p+5的中间片。在一个示例中,中间片本身可以是连续的,并且可以例如与第一2D片共享一个边界,并且与第二2D片共享另一边界。更特别地,中间片中的一个可以直接连接到第一2D片,并且中间片中的另一个可以直接连接到第二2D片。
[0076] 在实施例中,一组2D片的方向可以由那些2D片的相应法向量来定义,并且方向相似性标准可以涉及法向量彼此足够相似。例如,图8E分别描绘了2D片8740p至8740p+5的法向量8750p至8750p+5,其中每个法向量可以是垂直于相应的2D片的向量。在这样的实施例中,对于第一2D片(例如,8740p)和第二2D片(例如,8740p+1)的方向相似性标准可以涉及它们的法向量彼此足够相似。例如,计算系统可以确定作为垂直于第一2D片(例如,8740p)的向量的第一法向量(例如,8750p),并且可以确定可以作为垂直于第二2D片(例如,8740p+1)的向量的第二法向量(例如,8750p+1)。在此示例中,计算系统1100可以通过确定第一法向量(例如,8750p)和第二法向量(例如,8750p+1)是否满足定义的方向相似性标准,来确定第一2D片(例如,8740p)和第二2D片(例如,8740p+1)是否满足定义的方向相似性标准。当例如第一法向量和第二法向量之间的角度低于定义的角度阈值时,和/或当第一法向量和第二法向量之间的点积高于定义的点积值阈值时,第一法向量和第二法向量可以满足定义的方向相似性标准。在图8D的示例中,计算系统1100还可以确定对于较大的一组2D片(诸如,2D片8740p至8740p+5),定义的方向相似性标准是否被满足。例如,如果对于2D片中的每个2D片,2D片的法向量相对于紧邻的相邻片的法向量在定义的角度阈值之内,则计算系统1100可以确定对于2D片8740p至8740p+5,定义的方向相似性标准被满足。
[0077] 在实施例中,定义的深度相似性标准可以涉及2D片之间的一个或多个距离(沿着深度维度测量)是否足够小。例如,计算系统1100可以通过确定第一2D片(例如,图8F和图8G中的2D片8740p)和第二2D片(例如,8740p+1)之间的第一距离是否满足定义的深度相似性标准和/或它们之间的第二距离是否满足定义的深度相似性标准,来确定对于该第一2D片和第二2D片定义的深度相似性标准是否被满足。更具体地,如果第一距离和/或第二距离低于定义的距离阈值,则计算系统1100可以确定对于第一2D片和第二2D片,深度相似性标准被满足。第一距离(诸如图8F中的距离d1)可以是沿着垂直于第一法向量(例如,8750p)的轴A从第一2D片(例如,8740p)到第二2D片(例如,8740p+1)的距离,该第一法向量可以是垂直于第一2D片(例如,8740p)的向量。第二距离(诸如图8F中的距离d2)可以是沿着垂直于第二法向量(例如,8750p+1)的轴B从第一2D片(例如,8740p)到第二2D片(例如,8740p+1)的距离,该第二法向量可以是垂直于第二2D片(例如,8740p+1)的向量。在实施例中,如果对于2D片中的每个2D片,2D片和紧邻的2D片之间的一个或多个距离小于定义的距离阈值,则计算系统1100可以确定一组2D片(诸如2D片8740p至8740p+5),满足定义的深度相似性标准。在此实施例中,一个或多个距离可以包括上面讨论的沿着两个片的相应法向量测量的第一距离和第二距离。
[0078] 如上所述,在一些实现中,计算系统可以确定满足定义的方向相似性标准和定义的深度相似性标准的一组连续2D片,以便确定满足定义的平滑度条件的表面区域(例如,图6和图9A的6810或图9B的6812)。更特别地,表面区域可以用作抓持区域,并且可以由该一组连续2D片定义的局部区域形成或可以在该局部区域内适配。
[0079] 在实施例中,计算系统1100可以通过识别一个或多个2D片的初始组,并将一个或多个2D片的初始组扩展为连续2D组,来识别该连续2D片组(例如,8745)。作为示例,计算系统1100可以使用图8B、8C和8E的2D片8740p来形成单个2D片的初始组。在此示例中,单个2D片8740p可以用作种子,该种子被扩展成图8D的连续片组8745。
[0080] 在实施例中,计算系统1100可以被配置为在一个或多个2D片的初始组中包括被计算系统1100视为在或表示特定区域上的最平滑位置或位置组的2D片(例如8740p)。在一个示例中,特定区域可以是包围2D片的局部区域,诸如由步骤4002的图像信息表示的场景的特定象限。在一个示例中,特定区域可以是图像信息表示的场景的整体。在此示例中,包括在一个或多个2D片的初始组中的2D片可以表示由图像信息表示的多个位置(例如,57001‑5700n)中的最平滑的位置或位置组。在此示例中,位置组可以是位置的集群,诸如由图8C中的角位置5700[kx,ky]、5700[kx+4,ky]、5700[kx,ky+4]和5700[kx+4,ky+4]界定的位置的5x5网格。
[0081] 在实施例中,计算系统1100可以确定指示由图像信息表示的一个或多个表面上的相应平滑度程度的多个平滑度分数,其中该一个或多个表面可以包括一个或多个物体表面(例如,物体35201、35202等的相应物体表面)。更特别地,多个平滑度分数可以指示在由图像信息表示的多个位置(例如,57001‑5700n)处的相应平滑度程度。如上所述,计算系统1100可以在一个或多个2D片的初始组中包括2D片,该2D片表示局部区域或由图像信息表示的整个场景上的最平滑的位置或位置组。在此实施例中,此2D片可以表示具有多个平滑度分数中的最高平滑度分数的位置。在一些情况下,多个平滑度分数可以形成测量在由图像信息表示的场景上的平滑度的平滑度图。在这样的情况下,包括在初始组中的2D片可以在整个平滑度图上或在平滑度图的局部区域(例如,平滑度图的局部象限)上具有最高的平滑度分数。
[0082] 如上所述,计算系统1100可以尝试将一个或多个2D片的初始组扩展为一组连续2D片。初始组可以包括例如单个2D片(例如,8740p)或彼此相连的多个2D片(例如8740p和8740p+1),并且可以充当被扩展为该一组连续2D片的种子。更具体地,初始组可以是该一组连续2D片的初始版本。计算系统1100可以将一个或多个2D片添加到该一组连续2D片的始版本以生成更新版本。在图8D的示例中,连续片组8745可以是例如一组连续2D片的最终版本。
最终版本可以是例如计算系统1100能够识别满足定义的平滑度条件或更具体地定义的方向相似性标准和定义的深度相似性标准并且从一个或多个2D片的初始组扩展(例如,从
8740p1扩展)的连续2D片的最大可能组。在此示例中,当计算系统1100无法识别多个2D片(例如,87401‑8740n)中的任何附加2D片时,计算系统1100可以停止尝试扩展一组连续2D片,该任何附加2D片既与组中现有的2D片相连,又关于现有的2D片满足方向相似性标准和深度相似性标准。
[0083] 作为扩展的示例,计算系统1100可以搜索以下的2D片:(i)当前不在一组连续2D片中,或更具体地不在一组连续2D片的当前版本中,(ii)与一组连续2D片的当前版本中的至少一个2D片相连,并且(iii)对于至少一个2D片满足定义的方向相似性标准和定义的深度相似性标准。如果计算系统1100能够识别满足上述标准的这样的2D片,则其可以将2D片添加到一组连续2D片的当前版本中以生成该组的更新版本。例如,如果一个或多个2D片的初始组包括上面讨论的多个片(例如,87401至8740n)中的第一2D片(例如,图8C的8740p),则计算系统1100可以使用初始组作为该一组连续2D片的初始版本。计算系统1100可以通过从多个2D片中识别与第一2D片相连并且当前不在初始组中的第二2D片(例如,8740p+1或8740p+3)来扩展此初始版本。计算系统还可以确定第一2D片(例如,8740p)和第二2D片(例如,8740p+1或8740p+3)是否满足定义的方向相似性标准和定义的深度相似性标准。计算系统1100可以响应于确定以上标准被满足,来将第二2D片添加到初始组以生成2D片的扩展组。扩展组可以是一组连续2D片的更新版本。在一些情况下,扩展组可以形成一组连续2D片的最终版本,诸如图8D的连续2D片组8745。在一些情况下,扩展组可以是一组连续2D片的中间版本,其中中间版本可以形成一组连续2D片的最终版本的一部分。
[0084] 在实施例中,确定第一2D片(例如,8740p)和第二2D片(例如,8740p+1)是否满足定义的方向相似性标准可涉及比较第一2D片的法向量(例如,8750p)和第二2D片的法向量(例如,8750p+1),并确定该两个法向量是否满足定义的方向相似性标准,如上面关于图8E所讨论的。在实施例中,确定第一2D片(例如,8740p)和第二2D片(例如,8740p+1)是否满足定义的深度相似性标准可涉及确定2D片之间的一个或多个距离是否满足定义的深度相似性标准。一个或多个距离可以包括沿着与第一2D片的法向量平行的轴测量的第一距离(例如,d1)和沿着与第二2D片的法向量平行的轴测量的第二距离(例如,d2),如上面关于图8F和图8G所讨论的。如果例如第一距离或第二距离中的至少一个满足定义的深度相似性标准,则计算系统1100可以确定第一2D片和第二2D片满足定义的深度相似性标准。
[0085] 在实施例中,如果上面讨论的扩展组是一组连续2D片的中间版本,则计算系统1100可以尝试更新扩展组。可以通过搜索与当前在扩展组中的至少一个2D片(例如,
8740p+1)相连并且关于所述至少一个2D片满足定义的方向相似性标准和定义的深度相似性标准的一个或多个剩余2D片(例如,8740p+2)来执行扩展。可以从上面讨论的多个2D片(例如,87401‑8740n)中进行搜索。计算系统1100可以通过将一个或多个剩余的2D片添加到扩展组来更新扩展组。
[0086] 在实施例中,计算系统1100可以使用一组连续2D片来形成或识别可以用作抓持区域的表面区域。换句话说,被识别为抓持区域的表面区域可以由一组连续2D片形成和/或在该一组连续2D片内适配。更特别地,该一组连续2D片可以满足定义的平滑度条件,因为组中的2D片可以满足定义的方向相似性标准和定义的深度相似性标准。计算系统1100可以将抓持区域定义为在该一组连续2D片的边界内适配的表面区域。在一些情况下,此表面区域可以具有与该一组连续2D片相同的形状。在一些情况下,此表面区域可以具有在该一组连续2D片内适配的定义的区域形状(例如,矩形、圆形或椭圆形)。作为示例,图9A描绘了一种实现,其中计算系统1100将抓持区域识别为在连续2D片组8745内适配的表面区域6810。在此示例中,计算系统1100可以将表面区域6810定义为具有与由连续2D片组8745形成的边界
8746相同或基本相同的边界。图9B描绘了一个示例,其中计算系统1100将抓持区域识别为具有定义的形状的表面区域6812。更特别地,表面区域6812可以是在连续2D片组8745的边界8746内适配的矩形区域。
[0087] 如上所述,表面区域6810或表面区域6812可以被识别为抓持区域,其可以是由抓持区域检测操作或更具体地由图2C的抓持区域检测模块1127输出的检测结果。检测结果可以被提供作为例如运动计划操作的输入,该运动计划操作可以由例如运动计划模块1129执行。
[0088] 返回图4,在实施例中,方法4000可以包括步骤4006,其中计算系统1100可以识别安全区域(也被称为安全空间),该安全区域可以是在一个或多个水平维度上围绕抓持区域的三维(3D)区域。一个或多个水平维度(例如,X维度和/或Y维度)可以平行于地面,和/或垂直于深度维度,其中,深度维度可以是例如平行于重力轴的垂直维度。例如,图10、图11A和图11B示出了计算系统可以将其识别为安全区域的3D区域6820。3D区域6820可以在例如X维度和Y维度中延伸。如图11A所示,3D区域6820或其他安全区域可以在两个水平维度中围绕抓持区域,诸如表面区域6810。在一些实现中,安全区域可以沿着垂直于一个或多个水平维度的垂直维度延伸。例如,形成安全区域的3D区域6820可以是矩形区域,其从表面区域6810以向下的方向沿着垂直维度(例如,Z维度)延伸,如图12A和图12B所示(其还示出物体3520n‑5和3520n‑4)。在一些情况下,安全区域可以被定义为完全包围表面区域6810,使得表面区域6810的任何部分都没有延伸超过Z维度中的安全区域的顶表面或任何其他表面。在一些情况下,表面区域6810可具有突出超过安全区域的表面的一个或多个部分。
[0089] 如下面更详细地讨论的,安全区域(也可以是抓持区域检测操作的输出)可以在运动计划或更具体地机器人运动计划期间被用于抓持与抓持区域相关联的物体(例如,35201)。更特别地,安全区域的使用可以减少物体与机器人环境中的另一个物体或结构之间的碰撞机会。在一些情况下,安全区域可以在物体周围提供安全裕度,使得计算系统1100在计划用于抓持和移动物体(例如35201)的移动时考虑安全裕度。例如,运动计划可以涉及确定末端执行器装置(例如,3330)在其已经在抓持区域处抓持物体之后要跟随的移动路径,其中,末端执行器装置使抓持区域和物体基本上跟随相同的移动路径。围绕抓持区域的安全区域在此示例中可以足够大以在一个或多个水平维度上也围绕物体,以便提供安全裕度。计算系统1100可以确定移动路径,以便避免安全区域(其围绕抓持区域)与机器人环境中的结构(诸如容器壁、电线和其他物体)之间的碰撞。这样的运动计划形式可以例如使末端执行器装置以更保守的方式(诸如通过在物体与可能落在物体的移动路径附近的其他物体或结构之间保持较大的距离)移动,以进一步减少物体与其他物体或结构之间的碰撞机会。
[0090] 如上所述,在实施例中,围绕抓持区域的安全区域可以足够大以在一个或多个水平维度上还围绕与抓持区域相关联的物体。更特别地,安全区域可以足够大,使得其从抓持区域延伸超过物体的边界,使得物体的边界在一个或多个水平维度上被安全区域的边界包围。在实施例中,安全区域的边界可以包括一个或多个边缘,并且计算系统1100可以基于定义的横向维度大小来确定安全区域的至少一个边缘。定义的横向维度大小可以是物体的横向维度(也被称为物体横向维度)的定义的大小。物体的横向维度可以是垂直于物体的厚度维度的维度。例如,矩形形状的物体可以具有包括长度维度和宽度维度的横向维度,而盘形物体可以具有作为径向维度的横向维度。作为示例,图11B描绘了第一定义的横向维度大小,长度3520,其可以是物体(例如,35201)或物体组的长度维度的定义的大小。图11B还描绘了第二定义的横向维度大小,宽度3520,其可以是物体或物体组的宽度维度的定义的大小。定义的大小可以是例如预定义的,并且存储在非暂时性计算机可读介质1120中。
[0091] 如上所述,定义的横向维度大小可以与物体或物体组相关联。更具体地,在实施例中,计算系统1100可以在其中机器人(例如,3300)被期望抓持和移动具有相同大小或基本相同大小的物体(例如,35201‑3520n)或被期望仅抓持单个物体(例如,35201)的场景中操作。例如,可以期望机器人从仅容纳一组相同的服装包裹的箱子中提起一包服装。包裹组可以例如与相同的库存单位(SKU)号相关联。
[0092] 在以上实施例中,计算系统1100可以使用与包裹组或更一般地与物体组相关联的定义的横向维度大小(诸如定义的物体长度或定义的物体宽度)来确定安全区域的边缘。更具体地,物体组可以共享一个或多个定义的横向维度大小(诸如图11B中的长度3520和宽度3520)。计算系统1100可以期望与抓持区域(例如,表面区域6810/6812)相关联的物体(诸如物体35201),将具有从抓持区域延伸不超过定义的横向维度大小的边缘。更特别地,与图11B中的表面区域6810相关联的物体35201可以具有从表面区域6810或其他抓持区域延伸的物体表面,其沿着第一维度(例如,长度维度)延伸小于或等于长度3520的距离,沿着第二维度(例如,宽度维度)延伸小于或等于宽度3520的距离。如果计算系统将安全区域6820的至少一个边缘(例如,6821)设置为位于超过表面区域6810等于长度3520的距离,并将安全区域
6820的至少另一边缘(例如,6822/6823)设置为位于超过表面区域6810等于宽度3520的距离,这样的安全区域6820更有可能围绕与表面区域6810(其在此示例中为抓持区域)相关联的物体(例如35201)。因此,在此示例中,计算系统可以基于与物体的横向维度相关联的定义的横向维度大小来确定安全区域的边缘。
[0093] 在实施例中,可以基于一组物体的最大横向维度大小来确定安全区域的边缘。这样的实施例可能涉及其中机器人被期望抓持并移动具有不同的相应横向维度大小的一组物体的情况。例如,可以期望机器人从箱子中提起一包服装,该箱子可以包含与不同的SKU编号以及不同的物体长度和/或不同的物体宽度相关联的一组包裹。在这样的实施例中,计算系统1100可以使用最大横向维度大小(诸如该物体组中的定义的最大物体长度或定义的最大物体宽度)来确定安全区域的边缘。例如,计算系统可以确定安全区域具有位于超过抓持区域距离等于第一定义的最大横向维度大小(例如,定义的最大物体长度)的一个边缘或一对边缘,并且可以确定安全区域具有位于超过抓持区域距离等于第二定义的最大横向维度大小(例如,定义的最大物体宽度)的另一个边缘或另一对边缘。
[0094] 在实施例中,计算系统1100可以确定安全区域的边缘位于物体被放置在其中的容器的容器壁处。例如,图11A中的图像信息5700(例如,点云)可以描述容器(诸如图3A‑图3C的容器3510)内的一个或多个表面上的位置的深度信息。在这样的情况下,计算系统1100可以期望放置在容器中的物体(例如,35201)不会延伸超过可以形成容器的边缘的容器壁。因此,安全区域可能不需要延伸越过容器壁而仍然围绕容器(例如,3510)中的物体(例如,35201)。因此,如图11B所示,计算系统1100可以确定3D区域6820(在此示例中其为安全区域)的边缘6824处于与容器3510的容器壁相关联的位置。如图11B所示,边缘6824的位置可以具有距抓持区域(例如,表面区域6810)小于定义的横向维度大小(例如,长度3520)的距离。在此示例中,计算系统1100可以通过检测例如图像信息5700中的深度的急剧变化或检测图像信息5700的末端(end)来检测容器壁。因此,在图11B的实施例中,计算系统可以将安全区域(例如,3D区域6820)识别为在一个或多个水平维度上延伸至以下至少一项的区域:
(i)与容器壁相关联的位置,诸如定义边缘6824的位置,或(ii)沿着水平维度(例如,长度维度或宽度维度)从抓持区域延伸定义的横向维度大小(例如,长度3520或宽度3520)的位置,诸如定义边缘6821/6822/6823的位置。
[0095] 在实施例中,计算系统1100可以确定安全区域的高度,诸如图12A中的高度6820。安全区域的高度(也被称为安全区域高度)可以基于与物体相关联的定义的横向维度大小(例如,长度3520),或者与一组物体相关联的最大横向维度大小。作为示例,计算系统1100可以将高度6820设置或以其他方式确定为等于或基本等于长度3520。在这样的实施例中,与定义的横向维度大小相关联的物体(例如,35201)可以是在被提起时下垂的柔性物体。例如,图12B示出了当物体35201(诸如一包服装)由末端执行器装置3330或更具体地由其吸盘3332n提起时下垂。如果将安全区域用于运动计划,则以这样的方式确定安全区域的高度可使运动计划考虑到物体在被提起时在其自重作用下垂的趋势。结果,运动计划可以减少物体与另一物体或结构之间的碰撞可能性。
[0096] 返回图4,在实施例中,方法4000可以包括步骤4008,其中计算系统1100基于抓持区域(例如,表面区域6810/6812)和安全区域(例如,3D区域6820)执行机器人运动计划。机器人运动计划可以用于通过末端执行器装置(例如,3330)在抓持区域处抓持物体(例如35201)。如上所述,在一些情况下,物体可以是柔性物体。在实施例中,机器人运动计划可以涉及生成或以其他方式确定将由末端执行器装置沿着其移动抓持区域的轨迹。例如,计算系统1100可以确定其中末端执行器装置(例如,35201)接近抓持区域并与抓持区域接触的轨迹,以接合抓持区域。接合抓持区域可使末端执行器装置在抓持区域处抓持物体(例如,
35201)。轨迹还可以包括末端执行器装置提起物体,并将物体移动到目的地位置。机器人运动计划可以以在末端执行器装置的环境中避免安全区域与其他物体或结构接触的方式执行,以减少被抓持的物体与末端执行器装置的环境中的其他物体或结构之间的碰撞风险。
[0097] 作为示例,如果物体(例如,35201)被放置在容器(例如,3510)内,则机器人运动计划可以设法避免物体(例如,35201)与诸如容器壁的结构之间的碰撞。在此示例中,当安全区域沿着轨迹跟随抓持区域(例如,表面区域6810)时,计算系统1100可以确定以上讨论的轨迹是否使安全区域(诸如围绕物体35201的3D区域6820)与容器3510的一部分重叠。如上所述,在一些情况下,物体在被提起时可下垂,如图12B所示。如果末端执行器装置3330在将物体提升到足够的高度之前尝试侧向移动这样的物体,则物体的下垂部分可与容器壁碰撞。安全区域可用于考虑这样的碰撞的可能性。更具体地,如上所述,安全区域可以具有基于定义的横向维度大小的高度(例如,h6820)。在这样的示例中,将导致物体的下垂部分与容器壁碰撞的轨迹也可能导致安全区域与诸如容器壁的容器的一部分重叠。因此,如果计算系统1100确定轨迹导致安全区域(例如,6820)与容器的一部分重叠,则计算系统1100可以生成调整的轨迹,当使得抓持区域跟随调整的轨迹时,该调整的轨迹使安全区域避开容器(例如,3510)。结果,安全区域的使用可以减少被抓持的物体(例如,35201)与容器(例如,3510)之间的碰撞可能性。
[0098] 在实施例中,可以重复上述步骤中的一个或多个。例如,计算系统1100可以执行步骤4002‑4008以识别第一抓持区域和第一安全区域,以便于将第一物体(例如,35201)从箱子中提起并将第一物体传递到目的地位置的机器人移动。在此实施例中,计算系统1100可以重复步骤4004‑4008以识别第二抓持区域和第二安全区域,以便于将另一个物体(例如,35202)从箱子中提起并将该另一个物体传递到目的地位置的机器人移动。在实施例中,可以省略一个或多个步骤。例如,计算系统1100可以在不执行步骤4008的情况下执行步骤
4002‑4006,或者在不执行步骤4006的情况下执行步骤4002和4004。
[0099] 各种实施例的附加讨论:
[0100] 实施例1涉及一种计算系统,以及诸如当该计算系统执行非暂时性计算机可读介质上的指令时由该计算系统执行的方法。计算系统可以包括通信接口和至少一个处理电路。通信接口被配置为与具有末端执行器装置的机器人以及具有相机视野的相机进行通信。至少一个处理电路被配置为当柔性物体在相机视野中时:接收表示与柔性物体相关联的物体表面的图像信息,其中图像信息由相机生成。至少一个处理电路还被配置为将满足定义的平滑度条件并且具有大于或等于定义的区域大小阈值的区域大小的物体表面的表面区域识别为抓持区域,其中抓持区域基于图像信息被识别;将三维(3D)区域识别为安全区域,该三维区域在一个或多个水平维度上围绕抓持区域,并且该三维区域从抓持区域沿着垂直于该一个或多个水平维度的垂直维度延伸;以及基于抓持区域和安全区域执行机器人运动计划,其中机器人运动计划用于通过末端执行器装置在抓持区域处抓持柔性物体。
[0101] 实施例2包括实施例1的计算系统。在此实施例中,定义的区域大小阈值是与末端执行器装置和柔性物体之间的接触相关联的定义的接触区域大小,使得抓持区域足够大以适配具有定义的接触区域大小的接触区域。
[0102] 实施例3包括实施例2的计算系统。在此实施例中,定义的区域大小阈值是与末端执行器吸盘相关联的定义的吸盘大小。
[0103] 实施例4包括实施例1的计算系统。在此实施例中,定义的区域大小阈值是与柔性物体相关联的定义的物体大小。
[0104] 实施例5包括实施例1‑4中任一项的计算系统。在此实施例中,至少一个处理电路被配置为,当柔性物体具有厚度维度和垂直于厚度维度的横向维度时,基于与柔性物体的横向维度相关联的定义的横向维度大小来确定安全区域的边缘。
[0105] 实施例6包括实施例1‑5中任一项的计算系统。在此实施例中,至少一个处理电路被配置为,当柔性物体是在相机视野中并且具有不同的相应横向维度大小的一组柔性物体中的一个时,基于不同的相应横向维度大小中的最大横向维度大小来确定安全区域的边缘。
[0106] 实施例7包括实施例1‑6中任一项的计算系统。在此实施例中,至少一个处理电路被配置为,当柔性物体是在被提起时下垂的物体时,基于与柔性物体相关联的定义的横向维度大小来确定安全区域高度。
[0107] 实施例8包括实施例7的计算系统。在此实施例中,至少一个处理电路被配置为,当柔性物体被放置在容器内时,通过以下方式来执行机器人运动计划:生成末端执行器装置将沿着其来移动物体表面的抓持区域的轨迹;当使得抓持区域跟随轨迹时,确定轨迹是否导致安全区域与容器的一部分重叠;以及响应于确定该轨迹导致安全区域与容器的一部分重叠,生成调整的轨迹,当使得抓持区域跟随调整的轨迹时,该调整的轨迹使安全区域避免与容器重叠。
[0108] 实施例9包括实施例1‑8中任一项的计算系统。在此实施例中,至少一个处理电路被配置为:当图像信息包括描述容器内一个或多个表面上的位置的深度信息的点云时,将安全区域识别为在一个或多个水平维度上延伸至以下至少一项的区域:(i)与容器壁相关联的位置,或(ii)从抓持区域沿一个或多个水平维度中的水平维度延伸定义的横向维度大小的位置。
[0109] 实施例10包括实施例1‑9中任一项的计算系统。在此实施例中,至少一个处理电路被配置为:当图像信息描述相机视野中的多个位置的深度信息时,通过以下操作来识别抓持区域:确定近似多个位置的相应子集的多个二维(2D)片,其中该多个2D片表示物体表面;以及从该多个2D片中识别满足定义的方向相似性标准和定义的深度相似性标准的一组连续2D片,其中被识别为抓持区域的表面区域由该一组连续2D片形成或在该一组连续2D片内适配,并且其中满足表面区域的定义的平滑度条件包括对于该一组连续2D片满足定义的方向相似性标准和定义的深度相似性标准。
[0110] 实施例11包括实施例10的计算系统。在此实施例中,抓持区域具有定义的区域形状并且在该一组连续2D片内适配。
[0111] 实施例12包括实施例10或11的计算系统。在此实施例中,至少一个处理电路被配置为通过以下操作来识别该一组连续2D片:识别一个或多个2D片的初始组;以及将一个或多个2D片的初始组扩展为该一组连续2D片。
[0112] 实施例13包括实施例12的计算系统。在此实施例中,一个或多个2D片的初始组包括多个2D片中的第一2D片,并且其中至少一个处理电路被配置为通过以下操作将一个或多个2D片的初始组扩展为该一组连续2D片:确定第一法向量,该第一法向量是垂直于第一2D片的向量;从多个2D片中识别第二2D片,该第二2D片与第一2D片相连并且不在一个或多个2D片的初始组中;确定第二法向量,该第二法向量是垂直于第二2D片的向量;确定以下至少一项:(i)沿着与第一法向量平行的轴从第一2D片到第二2D片的第一距离,或者(ii)沿着与第二法向量平行的轴从第二2D片到第一2D片的第二距离;确定第一法向量和第二法向量是否满足定义的方向相似性标准;确定第一距离或第二距离中的至少一个是否满足定义的深度相似性标准;响应于确定第一法向量和第二法向量满足定义的方向相似性标准,以及确定第一距离或第二距离中的至少一个满足定义的深度相似性标准,将第二2D片添加到初始组以生成2D片的扩展组,其中扩展组形成该一组连续2D片或形成该一组连续2D片的一部分。
[0113] 实施例14包括实施例13的计算系统。在此实施例中,至少一个处理电路还被配置为:在作为所述多个2D片的一部分并且当前不在2D片的扩展组中的2D片中,搜索一个或多个剩余2D片,该一个或多个剩余2D片:(i)与当前在扩展组中的2D片相连,并且(ii)关于扩展组中的2D片满足定义的方向相似性标准和定义的深度相似性标准;以及通过向该扩展组添加一个或多个剩余2D片来更新扩展组。
[0114] 实施例15包括实施例12‑14中任一项的计算系统。在此实施例中,至少一个处理电路被配置为在一个或多个2D片的初始组中,包括多个2D片中的表示由图像信息表示的多个位置中的最平滑的位置或位置组的2D片。
[0115] 实施例16包括实施例15的计算系统。在此实施例中,至少一个处理电路被配置为确定多个平滑度分数,该平滑度分数指示在由图像信息表示的相应位置处的一个或多个物体表面上的相应平滑度程度,其中包括在一个或多个2D片的初始组中的2D片表示具有多个平滑度分数中的最高平滑度分数的位置。
[0116] 对于相关领域的普通技术人员将显而易见的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和调整。上述实施例是说明性示例,并且不应被解释为将本发明限于这些特定实施例。应该理解的是,本文公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来组合。还应该理解,根据示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。另外,尽管为了清楚起见,本文的实施例的某些特征被描述为由单个组件、模块或单元执行,但是应当理解,本文描述的特征和功能可以由组件、单元、模块的任何组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以进行各种改变和修改。