用于具有物体处置能力的机器人系统的系统和方法与流程
未命名
08-12
阅读:117
评论:0
用于具有物体处置能力的机器人系统的系统和方法
1.本技术是申请日为2023年3月8日、题为“用于具有物体处置能力的机器人系统的系统和方法”的发明专利申请202310238393.9的分案申请。
2.对相关申请的交叉引用
3.本技术要求于2022年3月8日提交的题为“robotic system with object detection”的第63/317,877号美国临时申请的权益,该临时申请的其全部内容通过引用并入本文。
技术领域
4.本技术一般而言针对机器人系统,并且更具体而言针对用于检测和处置物体的系统、过程和技术。更特别地,本技术可以用于标识容器中物体的可拾取区域(pickable region)。
背景技术:
5.随着机器人的不断提高的性能和降低的成本,许多机器人(例如,被配置为自动/自主地执行物理动作的机器)现在广泛用于各种不同的领域。例如,机器人可用于在制造和/或组装、包装和/或打包、运输和/或装运等中执行各种任务(例如,操纵或传送物体以穿过一空间)。在执行任务时,机器人可以复制人类动作,从而替代或减少否则在执行危险或重复性任务时所需要的人类参与。
6.然而,尽管技术有进步,机器人通常缺乏复制执行更大和/或更复杂任务所需的人类交互所需的复杂性。因此,仍然需要用于管理机器人之间的操作和/或交互的改进的技术和系统。
技术实现要素:
7.在实施例中,提供了一种计算系统。该计算系统包括:控制系统,被配置为与具有机械臂的机器人进行通信并与相机进行通信,该机械臂包括或附接到末端执行器装置;至少一个处理电路,当机器人位于包括用于传送到物体处置环境内的目的地的物体源的物体处置环境中时,该处理电路被配置为:获得物体的图像信息;通过以下操作来标识物体中的选定物体中的一个或多个选定物体的可拾取区域:根据图像信息生成表面成本图(surface cost map),分割表面成本图以获得标识与该一个或多个选定物体对应的一个或多个可拾取区域的一个或多个图像片段;以及生成至少包括该至少一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送该一个或多个选定物体的运动规划,该运动规划基于可拾取区域检测结果。
8.在实施例中,提供了一种由控制系统执行的物体传送方法,该控制系统具有至少一个处理电路并被配置为与具有机械臂的机器人进行通信并与相机进行通信,该机械臂包括或附接到末端执行器装置。该方法包括:获得物体源中所包含的一个或多个物体的图像信息;通过以下操作来标识物体中的选定物体中的一个或多个选定物体的可拾取区域:根
据图像信息生成表面成本图,分割表面成本图以获得标识与一个或多个选定物体对应的一个或多个可拾取区域的一个或多个图像片段;以及生成至少包括该一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送该一个或多个选定物体的运动规划,该运动规划基于可拾取区域检测结果。
9.在实施例中,提供了一种非暂时性计算机可读介质,配置有用于物体传送的可执行指令,该物体传送通过具有至少一个处理电路并被配置为与具有机械臂的机器人进行通信并与相机进行通信的控制系统执行,该机械臂包括或附接到末端执行器装置。指令可以被配置用于:获得物体源中所包含的一个或多个物体的图像信息;通过以下操作来标识物体中的选定物体中的一个或多个选定物体的可拾取区域:根据图像信息生成表面成本图,分割表面成本图以获得标识与一个或多个选定物体对应的一个或多个可拾取区域的一个或多个图像片段;以及生成至少包括该一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送该一个或多个选定物体的运动规划,该运动规划基于可拾取区域检测结果。
附图说明
10.图1a图示了根据本文的实施例的用于执行或促进物体的检测、标识和取得的系统。
11.图1b图示了根据本文的实施例的用于执行或促进物体的检测、标识和取得的系统的实施例。
12.图1c图示了根据本文的实施例的用于执行或促进物体的检测、标识和取得的系统的另一个实施例。
13.图1d图示了根据本文的实施例的用于执行或促进物体的检测、标识和取得的系统的又另一个实施例。
14.图2a是图示与本文的实施例一致的被配置为执行或促进物体的检测、标识和取得的计算系统的框图。
15.图2b是图示与本文的实施例一致的被配置为执行或促进物体的检测、标识和取得的计算系统的实施例的框图。
16.图2c是图示与本文的实施例一致的被配置为执行或促进物体的检测、标识和取得的计算系统的另一个实施例的框图。
17.图2d是图示与本文的实施例一致的被配置为执行或促进物体的检测、标识和取得的计算系统的又另一个实施例的框图。
18.图2e是由系统处理的图像信息的示例并且与本文的实施例一致。
19.图2f是由系统处理的图像信息的另一个示例并且与本文的实施例一致。
20.图3a图示了根据本文的实施例的用于操作机器人系统的示例性物体处置环境。
21.图3b图示了根据本文的实施例的用于操作机器人系统的示例性物体处置环境。
22.图3c图示了根据本文的实施例的用于操作机器人系统的示例性物体处置环境。
23.图4是图示用于处置检测到的物体的示例过程的流程图。
24.图5a图示了与本文的实施例一致的场景的2d图像信息的示例。
25.图5b图示了与本文的实施例一致的场景的3d图像信息的示例。
26.图6a为与本文的实施例一致的表面成本图生成方法提供了示例流程图。
27.图6b-6e提供了与本文的实施例一致的表面成本图生成方法的各方面的示例。
28.图6f提供了与本文的实施例一致的高度梯度成本图(height gradient cost map)的示例。
29.图6g提供了与本文的实施例一致的法线差异成本图(normal differences cost map)的示例。
30.图6h提供了与本文的实施例一致的表面成本图的示例。图6i提供了与本文的实施例一致的物体的示例。
31.图7a提供了与本文的实施例一致的分割方法的示例。
32.图7b-7e提供了与本文的实施例一致的分割方法的各方面的示例。
33.图8a和8b提供了与本文的实施例一致的检测掩模信息生成(detection mask information generation)的各方面的示例。
34.图9a和9b提供了与本文的实施例一致的安全体积生成(safety volume generation)的各方面的示例。
具体实施方式
35.本文描述了与物体检测、标识和取得相关的系统和方法。特别地,所公开的系统和方法可以促进物体检测、可拾取区域的标识以及物体位于容器中的情况下的物体取得。如本文所讨论的,物体可以包括盒子、袋子、包等。由于物体的不规则布置以及难以标识适合拾取(例如利用抽吸抓握设备拾取)的物体区域或部分,在此类情形下的物体处置可能是挑战性的。因此,本文描述的系统和方法被设计为从一组物体中标识物体的可拾取区域,其中各个物体可能布置在不同位置、处于不同角度等。本文讨论的系统和方法可以包括机器人系统。根据本文的实施例配置的机器人系统可以通过协调多个机器人的操作来自主地执行集成任务。如本文所述,机器人系统可以包括机器人设备、致动器、传感器、相机和计算系统的任何合适组合,这些系统被配置为控制、发布命令、从机器人设备和传感器接收信息、访问、分析和处理由机器人设备、传感器和相机生成的数据,生成可用于控制机器人系统的数据或信息,并为机器人设备、传感器和相机规划行动。如本文所用,机器人系统不需要直接访问或控制机器人致动器、传感器或其他设备。如本文所述,机器人系统可以是被配置为通过接收、分析和处理信息来提高这样的机器人致动器、传感器和其他设备的性能的计算系统。
36.本文描述的技术向被配置用于物体标识、可拾取区域标识和物体传送的机器人系统提供了技术改进。本文描述的技术改进可以提高这些任务的速度、精度和准确度,并进一步促进了检测、可拾取区域标识和从源容器或储存库向目的地传送物体。本文描述的机器人系统和计算系统解决了从容器(其中物体可能被不规则地布置)中标识、检测可拾取区域和取得物体的技术问题。通过解决此技术问题,物体标识、可拾取区域检测和物体取得的技术被改进。
37.本技术涉及系统和机器人系统。如本文所讨论的,机器人系统可以包括机器人致动器组件(例如,机械臂、机械抓手等)、各种传感器(例如,相机等),以及各种计算或控制系统。如本文所讨论的,计算系统或控制系统可以被称为“控制”各种机器人组件,诸如机械
臂、机械抓手、相机等。这样的“控制”可以指对各种致动器、传感器和机器人组件的其他功能方面的直接控制和与其的交互。例如,计算系统可以通过发出或提供所有需要的信号来控制机械臂,以使得各种电动机、致动器和传感器引起机器人移动。这样的“控制”还可以指向另一个机器人控制系统发出抽象或间接命令,然后该另一个机器人控制系统将这样的命令转换为用于引起机器人移动的必要信号。例如,计算系统可以通过发出描述机械臂应该移动到的轨迹或目的地位置的命令来控制机械臂,并且与机械臂相关联的另一个机器人控制系统可以接收和解释这样的命令,然后向机械臂的各种致动器和传感器提供必要的直接信号,以引起所需的移动。
38.特别地,本文描述的技术帮助机器人系统与容器中多个物体中的目标物体交互。本文描述的方法和系统可以从一组物体当中标识选定物体的可拾取区域。如本文所述,机器人传送机构(例如,机械臂)可以包括吸盘或抽吸抓握器,作为用于抓住、拾取或抓住物体的末端执行器装置的一部分。当应用于物体的平滑表面(例如,具有足够平滑的表面轮廓的物体部分,使吸盘可以在物体的表面和吸盘之间接合并形成密封以抬起并传送物体)时,这种基于抽吸的抓握设备的性能可以更好。足够平滑以适当地与抽吸抓握设备进行适当的接合并且足够大以容纳机器人传送系统中的一个或多个抽吸抓握设备的表面可以被称为“可拾取区域”。当物体在源储存库或容器中被松散地组织时,可以采用本文描述的系统和方法来识别物体的可拾取区域。
39.在以下中,具体细节被阐述以提供对当前公开的技术的理解。在实施例中,本文介绍的技术可被实践而不包括本文公开的每个具体细节。在其他情况下,诸如具体功能或例程的众所周知的特征未被详细描述以避免不必要地混淆本公开。本说明书中对“实施例”、“一个实施例”等的引用意味着正在被描述的特定特征、结构、材料或特性包括在本公开的至少一个实施例中。因此,本说明书中的这样的短语的出现不一定都指相同的实施例。另一方面,这样的引用也不一定是相互排斥的。此外,关于任何一个实施例描述的特定特征、结构、材料或特性可以以任何合适的方式与任何其他实施例中的那些组合,除非这样的项目是相互排斥的。应当理解,图中所示的各种实施例仅仅是说明性的表示并且不一定按比例绘制。
40.为清楚起见,描述众所周知且通常与机器人系统和子系统相关联但可能不必要地混淆所公开技术的一些重要方面的结构或过程的若干细节在以下描述中未被阐述。此外,尽管以下公开阐述了本技术的不同方面的若干实施例,但若干其他实施例可具有与本部分中描述的那些不同的配置或不同的组件。因此,所公开的技术可以具有带有附加元素或没有下面描述的元素中的若干元素的其他实施例。
41.下面描述的本公开的许多实施例或方面可以采取计算机或控制器可执行指令的形式,包括由可编程计算机或控制器执行的例程。相关领域的技术人员将理解,所公开的技术可以在除了下面所示和描述的那些之外的计算机或控制器系统上或通过其实践。本文描述的技术可以体现在专用计算机或数据处理器中,该专用计算机或数据处理器被具体编程、配置或构造为执行下述计算机可执行指令中的一个或多个。因此,如本文通常使用的术语“计算机”和“控制器”是指任何数据处理器,并且可以包括互联网工具和手持设备(包括掌上型计算机、可穿戴计算机、蜂窝或移动电话、多处理器系统、基于处理器或可编程的消费电子产品、网络计算机、小型计算机等)。这些计算机和控制器处理的信息可以在包括液
晶显示器(lcd)的任何合适的显示介质上呈现。用于执行计算机或控制器可执行任务的指令可以存储在包括硬件、固件或硬件和固件的组合的任何合适的计算机可读介质中或上。指令可以包含在包括例如闪存驱动器、usb设备和/或其他合适的介质的任何合适的存储器设备中。
42.术语“耦合”和“连接”以及它们的派生词在本文中可以用来描述组件之间的结构关系。应该理解,这些术语不旨在作为彼此的同义词。相反,在特定实施例中,“连接”可用于指示两个或更多个元素彼此直接接触。除非上下文中另有明确说明,否则术语“耦合”可用于指示两个或更多个元素直接或间接(通过它们之间的其他插入元素)彼此接触,或者两个或多个元素彼此合作或交互(例如,如在因果关系中,诸如用于信号传输/接收或功能调用),或两者兼而有之。
43.本文对通过计算系统进行的图像分析的任何参考可以根据或使用空间结构信息来执行,该空间结构信息可以包括描述相对于所选点的各种位置的相应深度值的深度信息。深度信息可用于标识物体或估计物体如何在空间上布置。在某些情况下,空间结构信息可包括或可用于生成描述物体的一个或多个表面的位置的点云。空间结构信息仅仅是可能的图像分析的一种形式,并且本领域技术人员已知的其他形式可以根据本文描述的方法使用。
44.图1a示出了用于执行物体检测或者更具体的物体识别的系统1000。更特别地,系统1000可以包括计算系统1100和相机1200。在此示例中,相机1200可以被配置为生成图像信息,该图像信息描述或以其他方式表示相机1200所处的环境,或更具体地表示相机1200的视场(也被称为相机视场)中的环境。环境可以是例如仓库、制造工厂、零售空间或其他场所。在本文描述的具体实施例中,环境可以是包括一个或多个源储存库和一个或多个目的地储存库的物体处置环境。在这样的情况下,图像信息可以表示位于这样的场所的物体(诸如盒子、袋子、包、柜子、箱子等)的图像。此类物体可以位于源储存库和目的地储存库中。系统1000可以被配置为诸如通过使用图像信息在相机视场中的个体物体之间进行区分来生成、接收和/或处理图像信息以基于图像信息执行物体标识或物体注册,和/或基于图像信息执行机器人交互规划,如下面更详细地讨论的(在本公开中术语“和/或”和“或”可互换使用)。机器人交互规划可以用于例如控制场所处的机器人以促进机器人与容器或其他物体之间的机器人交互。计算系统1100和相机1200可以位于相同的场所,或者可以彼此远离。例如,计算系统1100可以是托管在远离仓库或零售空间的数据中心中的云计算平台的一部分,并且可以经由网络连接与相机1200通信。
45.在实施例中,相机1200(其也可以被称为图像感测设备)可以是2d相机和/或3d相机。例如,图1b示出了系统1500a(其可以是系统1000的实施例),该系统1500a包括计算系统1100以及相机1200a和相机1200b,相机1200a和相机1200b两者都可以是相机1200的实施例。在此示例中,相机1200a可以是被配置为生成2d图像信息的2d相机,该2d图像信息包括或形成描述相机的视场中的环境的视觉外观的2d图像。相机1200b可以是被配置为生成3d图像信息的3d相机(也被称为空间结构感测相机或空间结构感测设备),该3d图像信息包括或形成关于相机的视场中的环境的空间结构信息。该空间结构信息可以包括深度信息(例如,深度图),该深度信息描述了相对于相机1200b的各种位置的相应深度值,诸如相机1200b的视场中各种物体的表面上的位置。相机的视场中或物体的表面上的这些位置也可
被称为物理位置。在此示例中,深度信息可以用于估计物体如何被空间地布置在三维(3d)空间中。在某些情况下,空间结构信息可以包括或可以用于生成点云(也称为3d点云),该点云描述了相机1200b的视场中物体的一个或多个表面上的位置。更具体地,空间结构信息可以描述一个或多个物体的结构(也被称为物体结构)上的各种位置。
46.在实施例中,系统1000可以是用于促进机器人与相机1200的环境中的各种物体之间的机器人交互的机器人操作系统。例如,图1c示出了机器人操作系统1500b,其可以是图1a和图1b的系统1000/1500a的实施例。机器人操作系统1500b可以包括计算系统1100、相机1200和机器人1300。如上所述,机器人1300可以用于与相机1200的环境中的一个或多个物体(诸如与盒子、袋子、包、板条箱、柜子、托盘或其他容器)交互。例如,机器人1300可以被配置为从一个位置拾取物体并将它们移动到另一位置。在某些情况下,机器人1300可以用于执行在其中一组容器或其他物体被卸载并移动到例如传送带的卸垛操作。在某些实现中,如下面讨论的,相机1200可以被附接到机器人1300或机器人3300。这也被称为掌上相机或手持相机解决方案。相机1200可以被附接到机器人1300的机械臂3320。然后,机械臂3320可以移动到各种挑选范围以生成关于那些范围的图像信息。在某些实现中,相机1200可以与机器人1300分开。例如,相机1200可以被安装到仓库的天花板或其他结构,并且可以相对于该结构保持固定。在某些实现中,可以使用多个相机1200,包括与机器人1300分开的多个相机1200和/或与掌上相机1200一起使用的与机器人1300分开的相机1200。在某些实现中,一个相机1200或多个相机1200可以安装或固定到与用于物体操纵的机器人1300分开的专用机器人系统上,诸如机械臂、门架(gantry)或被配置用于相机移动的其他自动化系统。贯穿说明书,可以讨论“控制”相机1200。对于掌上相机解决方案,对相机1200的控制还包括对相机1200被安装或附接到的机器人1300的控制。
47.在实施例中,图1a-1c的计算系统1100可以形成或集成到机器人1300,其也被称为机器人控制器。机器人控制系统可以被包括在系统1500b中,并且可以被配置为例如为机器人1300生成命令,诸如用于控制机器人1300与容器或其他物体之间的机器人交互的机器人交互移动命令。在这样的实施例中,计算系统1100可以被配置为基于例如由相机1200生成的图像信息来生成这样的命令。例如,计算系统1100可以被配置为基于图像信息确定运动规划,其中运动规划可以旨在例如抓持或以其他方式拾取物体。计算系统1100可生成一个或多个机器人交互移动命令以执行运动规划。
48.在实施例中,计算系统1100可以形成视觉系统或是视觉系统的一部分。视觉系统可以是生成例如视觉信息的系统,该视觉信息描述机器人1300所处的环境,或替代地或附加地,描述相机1200所处的环境。视觉信息可以包括上面讨论的3d图像信息和/或2d图像信息,或某些其他图像信息。在某些情况下,如果计算系统1100形成视觉系统,则视觉系统可以是上面讨论的机器人控制系统的一部分,或者可以与机器人控制系统分开。如果视觉系统与机器人控制系统是分开的,则视觉系统可以被配置为输出描述机器人1300所处的环境的信息。信息可以被输出到机器人控制系统,该机器人控制系统可以从视觉系统接收这样的信息并且基于该信息来执行运动规划和/或生成机器人交互移动命令。关于视觉系统的进一步信息在下面详细说明。
49.在实施例中,计算系统1100可以经由直接连接(诸如,经由专用有线通信接口(诸如,rs-232接口、通用串行总线(usb)接口)和/或经由本地计算机总线(诸如外围组件互连
(pci)总线)提供的连接)与相机1200和/或机器人1300进行通信。在实施例中,计算系统1100可以经由网络与相机1200和/或与机器人1300通信。网络可以是任何类型和/或形式的网络,诸如个人局域网(pan)、局域网(lan)(例如,内联网)、城域网(man)、广域网(wan)或互联网。网络可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(tcp/ip)、atm(异步传输模式)技术、sonet(同步光网络)协议或sdh(同步数字体系)协议。
50.在实施例中,计算系统1100可以与相机1200和/或与机器人1300直接通信信息,或者可以经由中间存储设备或更一般地经由中间非暂时性计算机可读介质进行通信。例如,图1d示出了可以是系统1000/1500a/1500b的实施例的系统1500c,该系统1500c包括非暂时性计算机可读介质1400,该非暂时性计算机可读介质1400可以在计算系统1100的外部,并且可以充当外部缓冲器或用于存储例如由相机1200生成的图像信息的存储库。在这样的示例中,计算系统1100可以检索或以其他方式接收来自非暂时性计算机可读介质1400的图像信息。非暂时性计算机可读介质1400的示例包括电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合。非暂时性计算机可读介质可以形成例如计算机软盘、硬盘驱动器(hdd)、固态驱动器(sdd)、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)和/或记忆棒。
51.如上所述,相机1200可以是3d相机和/或2d相机。2d相机可以被配置为生成2d图像,诸如彩色图像或灰度图像。3d相机可以是例如深度感测相机,诸如飞行时间(tof)相机或结构化光相机,或任何其他类型的3d相机。在某些情况下,2d相机和/或3d相机可以包括图像传感器,诸如电荷耦合器件(ccd)传感器和/或互补金属氧化物半导体(cmos)传感器。在实施例中,3d相机可以包括激光器、lidar设备、红外设备、明/暗传感器、运动传感器、微波检测器、超声检测器、radar检测器或被配置为捕获深度信息或其他空间结构信息的任何其他设备。
52.如上所述,图像信息可以由计算系统1100处理。在实施例中,计算系统1100可以包括或被配置为服务器(例如,具有一个或多个服务器刀片、处理器等)、个人计算机(例如,台式计算机、膝上型计算机等)、智能电话、平板计算设备和/或其他任何其他计算系统。在实施例中,计算系统1100的任何或所有功能可以作为云计算平台的一部分来执行。计算系统1100可以是单个计算设备(例如,台式计算机),或者可以包括多个计算设备。
53.图2a提供了图示计算系统1100的实施例的框图。本实施例中的计算系统1100包括至少一个处理电路1110和非暂时性计算机可读介质(或多个介质)1120。在某些情况下,处理电路1110可以包括被配置为执行存储在非暂时性计算机可读介质1120(例如,计算机存储器)上的指令(例如,软件指令)的处理器(例如,中央处理单元(cpu)、专用计算机和/或板载服务器)。在某些实施例中,处理器可以包括在可操作地耦合到其他电子/电气设备的单独/独立控制器中。处理器可以实现程序指令以控制其他设备/与其他设备接口,从而使计算系统1100执行动作、任务和/或操作。在实施例中,处理电路1110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“plc”)、专用集成电路(“asic”)、可编程门阵列(“pga”)、现场可编程门阵列(“fpga”)、其任何组合或任何其他处理电路。
54.在实施例中,作为计算系统1100的一部分的非暂时性计算机可读介质1120可以是上面讨论的中间非暂时性计算机可读介质1400的替代或附加。非暂时性计算机可读介质
1120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘驱动器(hdd)、固态驱动器(sdd)、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、其任何组合或任何其他存储设备。在某些情况下,非暂时性计算机可读介质1120可以包括多个存储设备。在某些实现中,非暂时性计算机可读介质1120被配置为存储由相机1200生成并由计算系统1100接收的图像信息。在某些情况下,非暂时性计算机可读介质1120可以存储用于执行本文讨论的方法和操作的一个或多个物体识别模板。非暂时性计算机可读介质1120可以替代地或可附加地存储计算机可读程序指令,该计算机可读程序指令在由处理电路1110执行时,使处理电路1110执行这里描述的一种或多种方法。
55.图2b描绘了计算系统1100a,其是计算系统1100的实施例并且包括通信接口1130。通信接口1130可以被配置为例如接收由图1a-1d的相机1200生成的图像信息。可以经由以上讨论的中间非暂时性计算机可读介质1400或网络,或者经由相机1200与计算系统1100/1100a之间的更直接的连接来接收图像信息。在实施例中,通信接口可以被配置为与图1c的机器人1300通信。如果计算系统1100在机器人控制系统外部,则计算系统1100的通信接口可以被配置为与机器人控制系统进行通信。通信接口也可以被称为通信组件或通信电路,并且可以包括例如被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括rs-232端口控制器、usb控制器、以太网控制器、控制器、pci总线控制器、任何其他通信电路或其组合。
56.在实施例中,如图2c中所示,非暂时性计算机可读介质1120可以包括被配置为存储本文讨论的一个或多个数据对象(data objects)的存储空间1125。例如,存储空间可以存储物体识别模板、检测假设、图像信息、物体图像信息、机械臂移动命令以及本文讨论的计算系统可能需要访问的任何附加数据对象。
57.在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令编程。例如,图2d图示了计算系统1100c,其是计算系统1100/1100a/1100b的实施例,其中处理电路1110由包括物体识别模块1121、运动规划模块1129和物体操纵规划模块1126的一个或多个模块编程。处理电路1110还可以被编程有物体注册模块1130和可拾取区域检测模块1132。以上模块中的每一个可以表示计算机可读程序指令,该计算机可读程序指令被配置为当在本文描述的处理器、处理电路、计算系统等中的一个或多个上实例化时执行某些任务。以上模块中的每一个可以相互协同操作以实现本文描述的功能。本文描述的功能的各种方面可以由上述软件模块中的一个或多个来执行,并且软件模块及其描述不应被理解为限制本文所公开的系统的计算结构。例如,虽然可以关于具体模块描述具体任务或功能,但该任务或功能也可以根据需要由不同模块执行。此外,本文描述的系统功能可以由配置有不同功能分解或分配方式的不同软件模块集来执行。
58.在实施例中,物体识别模块1121可被配置为获取和分析图像信息,如贯穿本公开所讨论的。本文关于图像信息讨论的方法、系统和技术可以使用物体识别模块1121。物体识别模块还可被配置用于与物体标识相关的物体识别任务,如本文所讨论的。
59.运动规划模块1129可以被配置为规划和执行机器人的移动。例如,运动规划模块1129可以与本文描述的其他模块交互以规划机器人3300的运动以用于物体取得操作和用
于相机放置操作。本文关于机械臂移动和轨迹讨论的方法、系统和技术可以由运动规划模块1129执行。
60.物体操纵规划模块1126可以被配置为规划和执行机械臂的物体操纵活动,例如,抓握和释放物体以及执行机械臂命令以帮助和促进这样的抓握和释放。
61.物体注册模块1130可以被配置为获取、存储、生成和以其他方式处理本文讨论的各种任务可能需要的物体注册和检测信息。物体注册模块1130可以被配置为与任何其他必要的模块交互或通信。
62.可拾取区域检测模块1132可以被配置为标识一个或多个物体的表面上的可拾取区域,例如,如关于图4所描述的那样。可拾取区域检测模块1132可以被配置为与任何其他必要的模块交互或通信。
63.参考图2e、2f、3a、3b和3c,解释了与可以被执行用于图像分析的物体识别模块1121和物体注册模块1130相关的方法。图2e和2f图示了与图像分析方法相关联的示例图像信息,而图3a-3c图示了与图像分析方法相关联的示例机器人环境。本文中与由计算系统进行的图像分析相关的参考可以根据或使用空间结构信息来执行,该空间结构信息可以包括描述相对于所选点的各种位置的相应深度值的深度信息。深度信息可用于标识物体或估计物体如何在空间上布置。在某些情况下,空间结构信息可包括或可用于生成描述物体的一个或多个表面的位置的点云。空间结构信息仅仅是可能的图像分析的一种形式,并且本领域技术人员已知的其他形式可以根据本文描述的方法使用。
64.在实施例中,计算系统1100可以获取表示相机1200的相机视场(例如,3210)中的物体的图像信息。下面描述的用于获得图像信息的步骤和技术可以是图像信息捕获操作。在某些情况下,物体可以是来自相机1200的视场3210中的源容器3510中的多个物体3520中的一个物体3520。图像信息2600、2700可以由相机(例如,1200)在物体3520在(或已经处于)在相机视场3210中时生成并且可以描述个体物体3520中的一个或多个。物体外观从相机1200的视点描述物体3520的外观。如果在相机视场中有多个物体3520,则相机可以根据需要生成表示多个物体或单个物体的图像信息(这样的与单个物体相关的图像信息可以被称为物体图像信息)。图像信息可以由相机(例如,1200)在该组物体处于(或已经处于)相机视场中时生成,并且可以包括例如2d图像信息和/或3d图像信息。
65.作为示例,图2e描绘了第一组图像信息,或更具体地,2d图像信息2600,如上所述,其由相机1200生成并且表示物体3520,诸如图3a-3c中示出的那些物体。更具体地,2d图像信息2600可以是灰度或彩色图像并且可以从相机1200的视点来描述物体3520的外观。在实施例中,2d图像信息2600可以对应于彩色图像的单个颜色通道(例如,红色、绿色或蓝色通道)。如果相机1200被布置在物体3520上方,则2d图像信息2600可以表示物体3520的相应顶表面的外观。在图2e的示例中,2d图像信息2600可以包括表示物体3520的相应表面的相应部分2000a/2000b/2000c/2000d/2550,也被称为图像部分或物体图像信息。在图2e中,2d图像信息2600的每个图像部分2000a/2000b/2000c/2000d/2550可以是图像范围,或更具体地,像素范围(如果图像由像素形成)。2d图像信息2600的像素范围中的每个像素可以被表征为具有由一组坐标[u,v]描述的位置并且可以具有相对于相机坐标系或某个其他坐标系的值,如图2e和2f所示。每个像素还可以具有强度值,诸如介于0和255或0和1023之间的值。在另外的实施例中,每个像素可以包括与各种格式的像素相关联的任何附加信息(例如,色
调、饱和度、强度、cmyk、rgb等)。
[0066]
如上所述,在某些实施例中,图像信息可以是图像的全部或部分,诸如2d图像信息2600。例如,计算系统3100可以被配置为从2d图像信息2600中提取图像部分2000a以获取仅与对应物体3520相关联的图像信息。在图像部分(诸如图像部分2000a)指向单个物体的情况下,它可以被称为物体图像信息。物体图像信息不需要仅包含关于它所指向的物体的信息。例如,它所指向的物体可能靠近、低于、高于或以其他方式位于一个或多个其他物体附近。在这样的情况下,物体图像信息可以包括关于它所指向的物体以及一个或多个相邻物体的信息。计算系统1100可以通过基于2d图像信息2600和/或图2f所示的3d图像信息2700执行图像分割或其他分析或处理操作来提取图像部分2000a。在一些实现中,分割或其他处理操作可以包括检测物体的物理边缘(例如,物体的边缘)在2d图像信息2600中出现的图像位置,并且使用这样的图像位置来标识限于表示相机视场(例如,3210)中的个体物体并且基本上排除其他物体的物体图像信息。“基本上排除”意味着图像分割或其他处理技术可以被设计和配置为从物体图像信息中排除非目标物体,但可以理解,错误可能产生,噪声可能存在,并且各种其他因素可能导致包含其他物体的部分。
[0067]
图2f描绘了其中图像信息是3d图像信息2700的示例。更特别地,3d图像信息2700可以包括例如指示物体3520的一个或多个表面(例如,顶表面或其他外表面)上的各种位置的相应深度值的深度图或点云。在某些实现中,用于提取图像信息的图像分割操作可以涉及检测物体的物理边缘(例如,盒子的边缘)在3d图像信息2700中出现的图像位置,并且使用这样的图像位置来标识限于表示相机视场中的个体物体(例如,3520)的图像部分(例如,2730)。
[0068]
相应深度值可以相对于生成3d图像信息2700的相机1200,或者可以相对于另一参考点。在某些实现中,3d图像信息2700可以包括点云(3d点云),该点云包括相机视场(例如,3210)中的物体的结构上的各种位置上的相应坐标。在图2f的示例中,点云可以包括描述物体3520的相应表面上的位置的相应坐标组。坐标可以是3d坐标,诸如[xy z]坐标,并且可以具有相对于相机坐标系或某个其他坐标系的值。例如,3d图像信息2700可以包括指示物体3520的表面上也被称为物理位置的一组位置2710
1-2710n的相应深度值的第一图像部分2710(也被称为图像部分)。此外,3d图像信息2700还可以包括第二、第三、第四和第五部分2720、2730、2740和2750。然后这些部分还可以指示可以分别由2720
1-2720n,、2730
1-2730n、2740
1-2740n和2750
1-2750n表示的一组位置的相应深度值。这些图仅仅是示例,并且可以使用具有对应的图像部分的任何数量的物体。与上述类似,获取的3d图像信息2700在某些情况下可以是由相机生成的第一组3d图像信息2700的一部分。在图2e的示例中,如果获取的3d图像信息2700表示图3a的单个物体3520,则3d图像信息2700可被缩小为仅参考图像部分2710。与2d图像信息2600的讨论类似,标识的图像部分2710可以属于个体物体并且可以被称为物体图像信息。因此,如本文所使用的,物体图像信息可以包括2d和/或3d图像信息。
[0069]
在实施例中,作为获取图像信息的一部分,可以由计算系统1100执行图像归一化操作。图像归一化操作可以涉及变换由相机1200生成的图像或图像部分,以便生成变换后的图像或变换后的图像部分。例如,如果获取的可以包括2d图像信息2600、3d图像信息2700或两者的组合的图像信息可经历图像归一化操作,以试图使图像信息在与视觉描述信息相关联的视点、物体姿势、照明条件中被改变。这样的归一化可被执行以促进图像信息和模型
(例如,模板)信息之间的更准确比较。视点可以指物体相对于相机1200的姿势,和/或当相机1200生成表示物体的图像时相机1200正在观察物体的角度。
[0070]
例如,图像信息可以在物体识别操作期间生成,其中目标物体在相机视场3210中。当目标物体具有相对于相机的具体姿势时,相机1200可以生成表示目标物体的图像信息。例如,目标物体可以具有使其顶表面垂直于相机1200的光轴的姿势。在这样的示例中,相机1200生成的图像信息可以表示具体的视点,诸如目标物体的顶视图。在某些情况下,当相机3210在物体识别操作期间生成图像信息时,图像信息可以在诸如照明强度的特定照明条件下生成。在这样的情况下,图像信息可以表示特定的照明强度、照明颜色或其他照明条件。
[0071]
在实施例中,图像归一化操作可以涉及调整由相机生成的场景的图像或图像部分,以使图像或图像部分更好地匹配与物体识别模板的信息相关联的视点和/或照明条件。调整可以涉及变换图像或图像部分以生成与和物体识别模板的视觉描述信息相关联的物体姿势或照明条件中的至少一个相匹配的变换后的图像。
[0072]
视点调整可以涉及场景的图像的处理、卷绕和/或移位,使得图像表示与可包括在物体识别模板内的视觉描述信息相同的视点。例如,处理包括改变图像的颜色、对比度或照明,场景的卷绕可包括更改图像的大小、尺寸或比例,而图像的移位可能包括更改图像的位置、朝向或旋转。在示例实施例中,处理、卷绕和/或移位可用来改变场景的图像中的物体以具有匹配或更好地对应于物体识别模板的视觉描述信息的朝向和/或大小。如果物体识别模板描述了某个物体的正面视图(head-on view)(例如,顶视图),则场景的图像可能被卷绕,以便也表示场景中物体的正面视图。
[0073]
本文中执行的物体识别方法的其他方面在2020年8月12日提交的第16/991,510号美国申请和2020年8月12日提交的第16/991,466号美国申请中被更详细地描述,这些美国申请中的每一个通过引用并入本文。
[0074]
在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”广义地指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件组件正在执行模块或计算机可读指令时,这些模块和计算机可读指令可以被描述为执行各种操作或任务。
[0075]
图3a-3c图示了示例环境,其中可以执行可拾取区域(或抓住区域)检测操作和/或运动规划操作。更具体而言,图3a描绘了系统3000(可以是图1a-1d的系统1000/1000a/1000b/1000c的实施例),该系统包括计算系统1100,机器人3300和相机1200。相机1200可以是相机1200的实施例,并且可以被配置为生成图像信息,该信息表示相机1200的相机视场3210中的场景,或者更具体地表示相机视场3210中的物体(诸如物体35201至3520n,可以包括例如物体35201、35202、35203、35204、35205,...3520n)或其结构。在图3a-3c的实施例中,机器人3300可以被配置为操纵或以其他方式与物体3520
1-3520n中的一个或多个中的每个物体进行交互,诸如通过拾取或以其他方式抓住3520
1-3520n中的一个,将物体从物体的当前位置抬起,然后将物体移至目的地位置。
[0076]
在某些情况下,物体35201至3520n中的一些或全部可以是柔性物体。例如,物体35201至3520n中的每一个可以是具有一件衣服(例如,衬衫或裤子)或其他纺织品或织物的包装,其中衣服或其他纺织品可以被包裹在包装材料片(诸如一张塑料)中。在某些情况下,
塑料或其他包装材料片一般可以不受空气或其他液体的影响。在图3a的示例中,物体35201至3520n可以被部署在容器3510中,诸如用于将35201至3520n保持在设施(诸如与服装制造商或零售商相关的仓库)中的箱子或盒子。在某些情况下,物体35201至3520n中的一些或全部可以包括诸如盒子、包、袋子和其他物品之类的物品。
[0077]
在某些情况下,本文的实施例的柔性物体(例如,35201)可以具有足够高的柔性,以允许在机器人3300移动或进行其他操纵时或者当置于容器3510中时,柔性物体的形状变形。足够高的柔性可以与足够低的刚性或刚度对应,以防止物体在被机器人3300移动或以其他方式操纵时维持其形状。在某些情况下,柔性物体可以具有足够高的柔性,以允许柔性物体的重量在机器人3300抬起柔性物体时引起物体的自身形状的变形。变形可以涉及例如柔性物体弯曲,或更具体而言,在被机器人3300抬起时,在自身的重量下下垂。柔性物体的柔性可以来自例如柔性物体的维度和/或柔性物体的材料。在一个示例中,柔性物体可以具有薄的剖面,这可以将柔性(也称为柔韧性)引入柔性物体。更具体而言,柔性物体的厚度尺寸可以相对于横向维度的尺寸(例如,长度维度或宽度维度)非常小。在一个示例中,柔性物体可以由足够柔软的材料制成,以将柔性引入柔性物体。在某些情况下,柔性物体的材料可以足够柔软,以便在机器人3300抬起物体时在材料自身的重量下下垂。例如,如果柔性物体是具有一件衣服的包装,那么它可能由诸如棉布或羊毛织物之类的材料形成,该材料缺乏足够的刚度,无法在机器人3300抬起时防止材料在其自身重量下下垂。
[0078]
在实施例中,机器人3300(其可以是机器人1300的实施例)可以包括机械臂3320,其一端附接到机器人基座3310并且另一端附接到末端执行器装置3330或由末端执行器装置3330形成。机器人基座3310可以用于安装机械臂3320的一端,而机械臂3320的另一端,或更具体地是末端执行器装置3330,可以被用于与机器人3300的环境中的一个或多个物体(例如,35201、35202等)交互。交互可以包括例如抓住并抬起一个或多个物体,和/或将一个或多个物体从当前位置移动到目的地位置。
[0079]
在实施例中,末端执行器装置3330可以包括一个或多个吸盘3332
1-3332n(本文也称为抽吸抓握器和抽吸抓握设备),用于拾取或以其他方式抬起物体,诸如物体3520
1-3520n中的一个。在一些实现中,吸盘3332
1-3332n中的每一个(也称为末端执行器吸盘)可以是机械设备,其被配置为当相对于物体(例如,35201)的表面被按压接触时,减少吸盘和物体的表面(也称为物体表面)之间的空间中的流体压力(例如,气压)。在示例中,物体表面可以由一般不渗透流体的(或者更一般地是无孔的)材料形成,诸如用来包裹一件衣服的塑料包装材料。降低的流体压力(诸如部分或完全真空)会导致空间外部的流体压力与空间内的流体压力之间的压力差。更具体而言,空间内的流体压力可以低于空间外部的流体压力,这会产生负流体压力,其导致较高的流体压力发挥净力,该净力使吸盘粘附到物体表面。净力可以充当粘合力,使吸盘能够粘附到物体表面,从而抓住物体表面。在实施例中,吸盘中的每一个(例如,33321或3332n)可以具有多种形状(例如,圆形形状)和尺寸,并且可以具有多种材料,诸如塑料、硅树脂、氮、氟橡胶(viton)、乙烯基、氨基甲酸酯、橡胶或某种其他柔性材料。在题为“robotic system with a robot arm suction control mechanism and method of operation thereof”的第10,576,630号美国专利中,更详细地讨论了吸盘,其全部内容通过引用并入本文。在实施例中,吸盘和物体表面之间的粘合力的强度可以取决于吸盘能够多紧密地密封自身和物体表面之间的空间。例如,紧密的密封可以维持压力差,从而维持
粘合力,而松散的密封会阻止维持压力差,因此会干扰吸盘抓住物体表面的能力。在实施例中,吸盘形成紧密密封的能力可以取决于吸盘试图抓住物体表面的物体表面的区域(也称为表面区域)的平滑度。因此,如下面更详细讨论的,可以将计算系统1100配置为标识或搜索如下表面区域,该区域足够平滑以至于能够被用作抓住区域,吸盘可以可靠地粘附到该区域从而抓住物体表面。
[0080]
在实施例中,可以将相机1200配置为生成表示物体3520
1-3520n和容器3510或相机视场3210中的(一个或多个)任何其他物体的图像信息。相机1200可以是被配置为生成3d图像信息的3d相机和/或被配置为生成2d图像信息的2d相机。在实施例中,3d图像信息可以表示物体3520的集体物体表面,或更具体地描述物体表面的物理结构。例如,3d图像信息可以包括深度图,或更一般地包括深度信息,这些信息可以描述相机视场3210中各个位置相对于相机1200或相对于其他参考点的深度值。与相应深度值对应的位置可以是相机视场3210中的各个表面上的位置,诸如物体35201至3520n的相应物体表面上的位置。在某些情况下,3d图像信息可以包括点云,其可以包括多个3d坐标,这些坐标描述在相机视场3210中的物体35201至3520n的相应物体表面上的位置。
[0081]
在实施例中,物体(例如,35201)的物体表面可以指物体的外表面(例如,顶表面)。在这种实施例中,3d图像信息可以包括表示该外表面的信息,或更具体而言可以描述该外表面的物理结构。例如,如果相机1200通过感测从外表面反射的光(例如,激光或结构光)或其他信号来生成3d图像信息,那么3d信息可以表示例如外表面的表面轮廓。如果外表面是由透明材料(诸如用作包装材料的柔性塑料薄片)形成的,那么3d信息仍可以表示物体的外表面。更特别地,在这种情况下,相机1200可以感测从非透明材料(诸如一件衣服织物,该材料在透明材料下面或以其他方式被透明材料覆盖)反射的光或其他信号。反射的光或信号可以穿过该透明材料,并且可以由相机1200检测以生成3d信息。在这种情况下,透明材料(例如,塑料片)可能足够薄,使得外表面与非透明材料的表面之间的距离可以被认为可忽略不计。因此,在实施例中,可以认为3d信息描述了物体的外表面上各个位置的深度信息。此外,如果透明材料形成外表面,那么透明材料可能足够柔性,因此透明材料的全部或许多部分都沿用底层非透明材料的表面轮廓。因此,在这种情况下的3d图像信息可以被视为描述物体的外表面,或者更具体而言是外表面的物理结构或表面轮廓。
[0082]
在实施例中,2d图像信息可以包括例如彩色图像或灰度图像,其表示相机视场3210中一个或多个物体的外观。例如,如果物体表面具有打印在其上的视觉标记(例如,徽标)或其他视觉细节,那么2d图像信息可以描述或以其他方式表示该视觉细节。如上所述,物体表面可以是物体的外表面,其在某些情况下可能由透明材料形成。在此类情况下,2d图像信息可以表示从底层的非透明材料(例如,衬衫)的表面反射并穿过形成外表面的透明材料的光(例如,可见光)或其他信号。因为在这种情况下2d图像信息是基于穿过外表面的光或其他信号的,所以仍然可以认为2d图像信息表示外表面。另外,在某些情况下形成外表面的透明材料可以足够薄且足够透明,以至于对物体的外观几乎没有影响或有可忽略的影响,使得可以考虑物体的外观或物体的外表面是指底层非透明材料(例如,服装材料)的外观。
[0083]
在实施例中,系统3000可以包括多个相机。例如,图3b图示了系统3000a(其可以是系统3000的实施例),其包括具有相机视场3210a的相机1200a,并包括具有相机视场3210b
的相机1200b。相机1200a(可以是相机1200a的实施例)可以是例如被配置为生成2d图像或其他2d图像信息的2d相机,而相机1200b(可以是相机1200b的实施例)可以是例如被配置为生成3d图像信息的3d相机。
[0084]
在实施例中,相机1200/1200a/1200b可以相对于参考点(诸如在其上放置容器3510的地板)或相对于机器人基座3310是固定的。例如,图3a中的相机1200可以安装到天花板(诸如仓库的天花板),或安装到相对于地板、相对于机器人基座3310或某个其他参考点保持固定的安装框架。在实施例中,可以将相机1200安装在机械臂3320上。例如,图3c描绘了系统3000b(可以是系统1000的实施例),其中相机1200附接到或以其他方式安装在形成机械臂3320的远端的末端执行器装置3330上。这种实施例可以为机器人3300提供经由机械臂3320的移动将相机1200移动到不同姿势的能力。
[0085]
计算系统1100可以被配置为生成用于源容器3510处的一个或多个物体3520的可拾取区域检测结果。例如,源容器3510可以包括具有随机的定向、姿势和位置的物体3520的容器。除可拾取区域外,可拾取区域检测结果还可以包括附加信息,诸如检测掩模信息(detection mask information)、安全体积(safety volume)或其组合,其中每个信息都在下面进行详细描述。
[0086]
机器人3300可以还包括配置为获得用于实现任务的信息的其他传感器,诸如用于操纵结构构件和/或用于运输机器人单元。这些传感器可以包括被配置为检测或测量机器人3300和/或周围环境的一个或多个物理特性(例如,其一个或多个结构构件/关节的状态、状况和/或位置)的设备。传感器的一些示例可以包括加速度计、陀螺仪、力传感器、应变计、触觉传感器、扭矩传感器、位置编码器等。
[0087]
图4提供了图示用于标识容器中的物体中一个或多个选定物体的可拾取区域的方法和操作的总体流程的流程图。可拾取区域标识方法4000可以包括本文描述的子方法和操作的特征的任何组合。该方法4000可以由本文描述的任何合适的系统和设备执行或执行。
[0088]
在操作4002中,方法4000包括获得图像信息。可以通过计算系统获得源容器中包含的一组物体或多个物体的图像信息。可以例如通过控制相机获得图像信息和/或可以从其上已存储图像信息的数据存储设备中获得图像信息。如本文所讨论的,场景中物体的图像信息可以包括3d图像信息2700。图5a和图5b提供了场景的代表性示例,其包括由2d图像信息5600表示的多个物体(图5a)和表示场景的3d图像信息5700(图5b)。
[0089]
图5a描绘了由相机1200/1200a生成并且表示图3a-3c的物体3520
1-3520n和容器3510的2d图像信息,或更具体而言是2d图像信息5600。更具体而言,2d图像信息5600可以描述物体3520
1-3520n以及其中部署有物体3520
1-3520n的容器3510的外观。更具体而言,2d图像信息5600可以包括分别表示物体35201、35202、35203、...、3520n的视觉细节的图像部分56101、56202、56203、56204、56205、...、5620
n-3
、5620
n-2
、5620
n-1
、5620n(例如,像素区域)。在实施例中,2d图像信息可以表示物体(例如,35201)的物体表面。如上所述,物体表面可以是物体的外表面(例如,顶表面),并且可以由透明材料、非透明材料(例如,半透明或不透明材料)或其组合形成。如上面进一步所述,如果外表面由覆盖底层非透明材料的透明材料形成,那么透明材料可以足够薄且透明以至于可以被认为对物体的外观具有可忽略的影响。在此类情况下,可以认为底层非透明材料的外观也是物体的外表面的外观,使得2d图像信息被认为表示物体的外表面的外观。
[0090]
图5b图示了3d图像信息5700的示例。更特别地,3d图像信息5700可以包括例如深度图或其他深度信息,该信息指示相机视场(例如,3210/3210a)中各个位置(诸如位置57001、57002、...5700n,其可以是被组织成行和列的位置网格)的相应深度值。在某些实现中,深度图可以包括指示位置5700
1-5700n的深度值的像素。在实施例中,位置5700
1-5700n中的至少有一些位置是一个或多个物体表面(诸如物体3520
1-3520n的物体表面)上的位置。例如,3d图像信息5700可以包括图像部分57201、57202、57203、57204、57205、...5720
n-3
、5720
n-2
、5720
n-1
、5720n,其中每个图像部分可以包括相应物体(例如,35201,35202,35203,...或3520n)的物体表面上的相应位置集合的深度值。在某些情况下,3d图像信息可以包括点云,其可以包括分别描述位置5700
1-5700n的坐标的集合。坐标可以是3d坐标,诸如[x y z]笛卡尔坐标,并且可以具有相对于相机坐标系或某个其他坐标系统的值。在这个示例中,特定位置(例如,57001)的[x y z]坐标可以具有z分量,该z分量等于该位置的深度值或基于该位置的深度值。深度值可以是相对于生成了该3d图像信息的相机(例如,1200/1200a)的,或者可以是相对于某个其他参考点的。
[0091]
在实施例中,3d图像信息可以描述物体表面的表面轮廓。例如,图5a中的3d图像信息5700可以至少具有图像部分57201,该图像部分描述物体35201的物体表面的表面轮廓。物体表面的表面轮廓可以描述物体表面的物理结构。在某些情况下,物体表面的物理结构可以是完全或基本平滑的。在某些情况下,物体表面的物理结构可以包括物理特征,诸如皱纹、凸起、脊、折痕或凹陷,它们可能形成物体表面的一个或多个非平滑部分。
[0092]
如上所述,物体表面可以是物体的外表面(例如,顶表面),并且可以由透明材料、不透明材料(例如,半透明或不透明的材料)或其组合形成。如上面进一步所述,如果外表面由覆盖底层不透明材料的透明材料形成,那么透明材料可以足够薄且足够柔性以便被认为对物体的物理结构或表面轮廓具有可忽略的影响。在此类情况下,表示底层不透明材料的物理结构或表面轮廓的3d图像信息可以被认为也表示物体的外表面的物理结构或表面轮廓。另外,如果透明材料足够薄,那么可以认为其厚度对相机(例如,1200)的深度测量具有可忽略的影响。在这种情况下,具有在3d图像信息中表示的深度值的各种位置(诸如图像部分57201的位置)可以被认为是对应物体(例如,35201)的外表面上的位置。
[0093]
在实施例中,获得图像信息(其可以包括物体检测和物体注册)可以通过任何合适的手段执行。在实施例中,标识或检测多个物体3520可以包括如下过程,该过程包括物体注册、模板生成、特征提取、假设生成、假设细化和假设验证,如例如由物体注册模块1130执行的那样。在2022年8月9日提交的第17/884,081号美国专利申请中详细描述了这种过程,该专利申请的全部内容通过引用整体并入本文。
[0094]
物体注册是如下过程,该过程包括获得和使用物体注册数据(例如,已知的、先前存储的与物体3520相关的信息)以生成物体识别模板,以供标识和识别物理场景中的类似物体。模板生成是如下过程,该过程包括生成用于让计算系统在标识物体3520时使用的物体识别模板的集合,以用于与物体拾取相关的进一步操作。特征提取(也称为特征生成)是如下过程,该过程包括从物体图像信息中提取或生成特征以用于在物体识别模板生成时使用。假设生成是如下过程,该过程包括生成一个或多个物体检测假设,例如基于物体图像信息与一个或多个物体识别模板之间的比较。假设细化是对物体识别模板与物体图像信息的匹配进行的过程(即使在物体识别模板与物体图像信息不完全匹配的情况下也是如此)。假
设验证是如下过程,通过该过程从多个假设中选择单个假设作为用于物体3520的最佳拟合或最佳选择。
[0095]
在操作4004中,方法4000包括生成场景中的多个物体3520的表面成本图。表面成本图可以是指示收集到的多个物体3520或物体3520的一部分的表面的平滑度的图像图。表面成本图可以是标识收集到的多个物体3520或物体3520的一部分的表面的不规则性或不连续性的图像图。表面成本图可以包括用于表示收集到的多个物体3520或其一部分的表面或顶层的每个点或像素的表面成本图值。因此,表面成本图可以为代表多个物体3520或其一部分的点云的每个点指派表面成本图值。如上面所讨论的,点云的每个点/像素可以由三个坐标(x,y,z)表示。表面成本图值代表点的集合(本文称为细分区域(kernel)或单元格(cell))与相邻的细分区域之间的差异。因此,指派给任何点或细分区域的表面成本图值可以代表该点或该细分区域与相邻的点或细分区域之间的差异。
[0096]
根据图像信息5700生成的表面成本图可以表示细分区域或单元格与相邻的细分区域或单元格之间的高度和角度的差异。表面成本图可以包括高度梯度图和法线差异图,或者可以根据高度梯度图和法线差异图的组合来计算。可以根据各种手段来计算或确定表面成本图,以表示代表场景中多个物体的3d图像信息5700的相邻部分之间的高度和角度差异。在实施例中,参考图6a-6i,可以如下执行表面成本图的计算。
[0097]
图6a提供了表面成本图生成方法6000的示例流程图。方法6000可以由本文描述的任何合适的处理器或计算设备执行。图6a的步骤仅通过示例提供。图6a的步骤可以按任何合适的次序或组合执行,并且可以根据需要结合附加步骤。另外,可以采用生成表面成本图的替代方法,而不偏离本公开的范围。
[0098]
可以从3d图像信息5700生成表面成本图,以包括或提供基于若干个成本图参数的高度梯度图和法线差异图的组合。下面更详细地解释的此类成本图参数可以包括细分区域、步幅(stride)、距离阈值、法线阈值和法线权重因子。如下进一步所述,可以手动确定或自动确定成本图参数。
[0099]
在表面成本图生成方法6000的操作6002中,3d图像信息5700可以用单元格6101的网格6100覆盖。图6b和图6c图示了表面成本图生成方法的网格操作。单元格6101可以是矩形或正方形,并且可以根据细分区域来确定尺寸。细分区域可以以3d图像信息5700表示的点云的点或像素为单位来表示每个单元格6101的尺寸(如维度6105所示),诸如2
×
2、4
×
4、6
×
6、8
×
8、10
×
10、15
×
15、20
×
20或任何其他合适的尺寸。单元格6101形成网格,可以在该网格上执行表面成本图计算。在实施例中,3d图像信息5700可以用单元格6101的单个非重叠集合进行网格化,如图6b中所示。单元格中心6102各自彼此隔开一步幅,从而产生非重叠的网格,该步幅的长度(维度6106)等于细分区域尺寸。
[0100]
在进一步的实施例中,覆盖3d图像信息5700的网格6100可以包括重叠的单元格6101的集合。每个单元格6101可以与多个其他单元格6101重叠,单元格中心6102按照小于细分区域尺寸的步幅隔开。因此,例如,如图6c中所示,单元格6101可以使单元格中心6102被细分区域尺寸一半的步幅尺寸隔开。在图6c中,网格6100包括单元格中心6102(每个单元格中心隔开一步幅尺寸)以及宽度和长度维度等于该步幅尺寸的两倍的单元格6101。在图6c中,由阴影区域图示单个单元格6101的尺寸。每个单元格6101与其他四个单元格6101重叠。
[0101]
在以下对表面成本图计算的讨论中,表面成本图值被指派给单元格中心6102,并且在执行计算时,将每个单元格6101与其非重叠的相邻单元格进行比较。因而,出于清楚的目的,将参考图6b的非重叠布置。
[0102]
在操作6004中,表面成本图生成方法6000可以包括将平面拟合到每个单元格6101的步骤。图6d图示了与网格6100对应的一组平面6220。对于每个单元格6101,平面6201可以根据3d图像信息5700中由该单元格6101涵盖的点的x、y和z坐标来确定。因此,对于20
×
20的细分区域尺寸,3d图像信息5700的400个点可以被用于确定该平面6201。可以根据任何合适的方法确定平面6201,包括例如最小二乘法。在另一个示例中,可以根据3d图像信息5700中每个单元格6101内每个点处的法线向量的平均值来确定平面6201。每个平面6201包括质心6202和法线6203。质心6202位于平面6201的几何中心处,并且法线6203正交于平面6201从质心6202延伸。每个平面6201的高度可以被定义为其质心6202的高度。
[0103]
在操作6006中,表面成本图生成方法6000可以包括计算或确定每个平面6201相对于其相邻平面6201的高度梯度。图6f图示了在包含物体3520的源容器3510的表示上所覆盖的高度梯度6200。每个平面6201的高度梯度可以是平面6201与其八个相邻平面6201之间的各个高度梯度的数学组合。每个平面6201的高度梯度可以以几种不同方式确定。如图6f中所示,空心圆圈图示了低高度梯度的部分,实心圆圈图示了较高高度梯度的部分,并且十字图示了例如由于不可靠的检测或检测到源容器3510而不能被标识为物体的部分。为了说明的目的,这些值被示为高和低,而实际上这些值可以跨一定范围的可能值。可以看出,物体3520的边界处的高度梯度大于跨物体3520的中心部分的高度梯度。
[0104]
在实施例中,可以如下参考图6e确定平面6201与相邻平面6201之间的成本图高度梯度。首先,可以确定两个平面(6201a与6201b)之间的高度差。在实施例中,相邻平面的高度差可以基于一个平面6201b在另一个平面6201a上的延伸(例如,延伸的平面6201ba)。例如,可以将高度差确定为第一延伸的平面6201ba与第二平面6201a的质心6202a之间的高度差,其根据任一平面的法线向量的长度或者根据在3d点云的z方向上的向量的长度计算。例如,可以将高度差确定为第一延伸的平面6201ba与第二平面6201a上的对应点之间的平均高度差,其中所述对应点与3d图像信息5700的点云中的网格点对应。在实施例中,两个平面6201a与6201b之间的高度差可以被确定为以下两者之间的最大或平均高度差:通过在平面6201a之上(或之下)延伸平面6201b而确定的高度差,以及通过在平面6201b之上(或之下)延伸平面6201a而确定的高度差。这种高度差确定方法可以导致相同的高度差,而不管两个平面中的哪个平面被选择为“第一”平面,哪个平面被选择为“第二”平面。
[0105]
两个平面6201之间的高度差可以被直接指派给与两个平面6201对应的单元格6101之间的位置。例如,可以将与单元格6101d和6101e对应的平面6201之间的高度差(参见图6b)指派给点de处的位置。因此,因为与单元格6101d和6101e对应的平面6201之间的高度差不与对应于单元格6101e的平面6201的质心相对应,所以可以应用校正来确定高度差,以指派给与与单元格6101e和6101d对应的平面6201之间的高度差对应的单元格6101e。在实施例中,可以通过对指派给点de的高度差和指派给点ef的高度差求平均来应用此校正(例如,指派给点ef的高度差基于与单元格6101e和6101f对应的平面6201之间的高度差)。每个单元格6101的总高度梯度可以被确定为与相邻单元格的八个高度差的平均值。每个单元格6101的总高度梯度可以被指派作为与高度梯度成本图6200中该单元格的中心处的点相关
联的值。
[0106]
在进一步的实施例中,可以根据不同的方法确定高度差。高度差可以基于例如平面6201a/6201b的质心6202a/6202b之间的高度差或基于沿着与平面6201对应的单元格6101的边界的平面图之间的高度差(或平均高度差)。可以使用其他高度差计算和定义,而不偏离本公开的范围。
[0107]
关于图6b的网格6100,上述讨论表示网格6100中每个单元格6101的中心点处的高度梯度的计算。因为步幅尺寸可以小于细分区域尺寸,所以为其计算高度梯度的点的数量可以大于(甚至显著大于)能够拟合到网格6100的细分区域的数量。例如,对于步幅尺寸1,3d点云中的任何特定点可以具有相关联的高度梯度,每个梯度是基于细分区域尺寸的单元格6101的网格确定的,其中该特定点是细分区域尺寸的单元格6101之一的中心。对于步幅尺寸2,每隔一个点将具有相关联的高度梯度。
[0108]
因此,高度梯度成本图6200可以包括一系列值,这些值表示3d点云中的点(在一些实施例,所有点)相对于3d点云中的相邻点的高度梯度。如上面所讨论的,高度梯度成本图6200中的点可以是3d点云图像信息5700中被一步幅隔开的那些点。对于高度梯度成本图6200中的指派有值的每个点,该值是基于平面6201(其2d投影具有细分区域尺寸)以及该平面与相邻平面6201的关系而计算的。
[0109]
在实施例中,可以通过重用两个平面6201之间的高度差值来简化或优化高度梯度成本图6200的计算。例如,在一些实施例中,如上面所讨论的,从第一平面6201到第二平面6201的高度差的计算会导致与第二平面6201与第一平面6201之间的高度差的计算完全相同的值。因此,可以只需要单次计算两个平面6201之间的高度差,从而允许高度梯度计算的总数将减少约50%。
[0110]
在实施例中,可以在确定高度差时使用距离阈值参数。距离阈值参数可以是如下阈值,超出该阈值的任何高度差都被指派最大值。如果两个平面之间的高度差超过距离阈值,那么可以将该高度差设置为预定值(例如,在一些实施例中,为该距离阈值)。在计算总高度梯度时,使用距离阈值可以减少两个平面之间的大高度差的权重。在实施例中,距离阈值参数也可以被用于对指派给单元格6101的高度梯度设置阈值。在对与相邻单元格的各高度差求平均之后,如果所确定的高度梯度超过距离阈值的话,则可以应用距离阈值将所确定的高度梯度更改为预定值。
[0111]
在表面成本图生成方法6000的操作6008中,可以计算法线差异。图6g图示了在包含物体3520的源容器3510的表示上所覆盖的法线差异成本图6300。现在参考图6d,可以确定每个平面6201与其相邻平面6201的法线6203之间的差。法线差异可以被确定为一个平面6201的法线6203与相邻平面6201的法线6203的点积。因此,每个平面6201可以具有八个不同的计算出的法线差异。可以取得这些法线差异的均值并指派给与平面6201相关联的单元格6101(例如,在单元格6101的中心处的点)。以这种方式,可以生成法线差异成本图6300,其中表面成本图内的每个点被指派有法线差异,该法线差异指示以该点为中心的平面6201与相邻平面6201之间的角度差。如图6g中所示,空心圆圈图示了低法线差异的部分,实心圆圈图示了较大法线差异的部分,并且十字图示了例如由于不可靠的检测或检测到源容器3510而不能被标识为物体的部分。为了说明的目的,这些值被示为高和低,而实际上这些值可以跨一定范围的可能值。可以看出,物体3520的边界处的法线差异大于跨物体3520的中
心部分的法线差异。
[0112]
在实施例中,可以在确定法线差异时使用法线阈值参数。法线阈值参数可以是如下阈值,超出该阈值的任何高度差都被指派最大值。如果两个平面之间的法线差异超过法线阈值,那么可以将法线差异设置为预定值(例如,在一些实施例中,为该法线阈值)。在计算平均法线差异时,使用法线阈值可以减少两个平面之间的大法线差异的权重。
[0113]
在表面成本图生成方法6000的操作6010中,可以生成表面成本图。图6h图示了在包含物体3520的源容器3510的表示上所覆盖的表面成本图6400。表面成本图6400可以作为高度梯度成本图6200和法线差异成本图6300的数学组合而生成。在实施例中,计算机系统可以根据滤波操作(诸如平均滤波器或sobel滤波器)来组合高度差值与法线差异值。在实施例中,高度梯度成本图6200和法线差异成本图6300中的值可以被归一化并组合。在实施例中,可以将加权因子应用于高度差值或者法线差异值以控制表面成本图对相应差值的依赖性的强烈程度。加权因子可以是法线权重因子,例如,乘以经归一化的法线差异以确定最终表面成本图6400应当由法线差异确定的强度或最终表面成本图6400应当由高度差确定的强度的因子。如下面所讨论的,可以根据预期的物体类型执行法线权重因子的选择。如图6h中所示,空心圆圈图示了低表面成本图值的部分,实心圆圈图示了较大表面成本图值的部分,并且十字图示了例如由于不可靠的检测或检测到源容器3510而不能被标识为物体的部分。为了说明的目的,值被示为高和低,而实际上这些值可以跨一定范围的可能值。可以看出,物体3520的边界处的表面成本图值大于跨物体3520的中心部分的表面成本图值。
[0114]
如上面所讨论的,可以基于一个或多个参数(包括细分区域尺寸、步幅尺寸、距离阈值、法线阈值和法线权重)来执行表面成本图生成。
[0115]
可以根据各种因素来选择或确定细分区域尺寸和步幅尺寸以实现各种结果。在实施例中,可以选择较小的细分区域尺寸以提供对3d点云的细小改变更为敏感的结果,但是较小的细分区域尺寸也会对噪声更为敏感。在实施例中,可以选择较大的细分区域尺寸以对3d点云中的较小变化进行平滑,无论这些变化是由于噪声还是由于被成像的实际物体的变化引起的。在实施例中,可以选择小步幅尺寸来提供高分辨率、详细的表面成本图,虽然这种小步幅尺寸可能要求增加的计算能力和/或增加的处理时间。在实施例中,较大的步幅尺寸会导致3d点云的降采样,这可以提供更快的结果和/或较低的计算资源使用,但要付出一些细节作为代价。在实施例中,选择小于细分区域尺寸的0.5、小于其0.4和/或小于其0.3的步幅尺寸可以提供适当量的细节,同时仍然提供较快的结果。在实施例中,步幅尺寸为细分区域尺寸的一半或大约一半可以在降低分辨率、速度和细节水平之间提供平衡。可以理解,选择细分区域和步幅尺寸会受到处理或计算能力的可用性的影响。增加的计算资源可以允许生成更详细的表面成本图,而不会不利地增加处理时间。
[0116]
在实施例中,物体源中物体的组成会影响细分区域尺寸和步幅尺寸的最优值。例如,具有小而尖锐的不连续性的物体的集合可以受益于较小的步幅尺寸以便捕获更精细的细节。在另一个示例中,具有粗糙但可变形的物体的集合可以受益于较大的细分区域尺寸以提供更大的平滑。在另一个示例中,如果与物体尺寸相比,细分区域尺寸较大(例如,物体尺寸仅为细分区域尺寸的2、3或4倍),那么表面成本图可能包括很少的平滑区域,因为覆盖物体的细分区域中有许多细分区域也将与存在不连续性的物体的边缘重叠。在另一个示例中,如果细分区域尺寸和步幅尺寸太大,那么具有小半径的平滑弯曲表面的物体会导致不
正确的高成本。
[0117]
在实施例中,物体源中物体的组成也会影响用于距离阈值、法线阈值和法线权重因子的最优值。例如,现在参考图6i,可以考虑像盒子的物体6500和像袋子的物体6501(它们是物体3520的示例)。物体6500/6501的中心部分具有描述物体6500/6501的整体或主体平滑度的平滑度特性,而物体6500/6501的边缘描述物体6500/6501之间的过渡。因此,选择可以利用这一点的参数是有利的。
[0118]
例如,可以根据物体尺寸来选择距离阈值。任何检测到的等于或大于距离阈值的高度差都会被设置为高度差的最大值。因此,物体6500/6501的边缘处的高度差可能对表面成本图6400具有相同的影响,而不管物体是在几个物体的堆叠的顶部还是只有一个物体。物体6500/6501的边缘处的更大高度下降(例如,因为物体6500/6501堆叠在其他物体6500/6501上)没有提供任何用于标识物体过渡的附加信息。
[0119]
在另一个示例中,可以根据物体形状来选择法线阈值。例如,对于像盒子的物体6500,预期法线将具有低变化。在这种情况下,法线阈值可以被选择为大于由噪声引起的预期变化的值。因此,在法线差异成本图中,被标识为大于由噪声差异引起的任何法线差异的任何法线差异都被设置为最大值。在像盒子的物体6500中,因为所有物体表面都很可能是平面,所以可以被标识为真实(因为它超过噪声值)的法线的任何变化都可以表示物体6500之间的不连续性。对于此类物体6500,还可以选择法线权重因子以便对法线差异和高度差提供大致相等的权重。在另一个示例中,像袋子的物体(诸如物体6501)可以具有角度显著改变的部分,而不表示物体不连续性。在这种情况下,可以选择法线权重因子以对高度差提供更大的权重,因为法线的差异提供较少的关于物体不连续性的信息。在还有另一个示例中,可变形的袋子可被预期在法线上有大的变化,于是法线权重因子可以被选择为对高度差提供更大的权重,因为法线的差异提供非常少的关于物体不连续性的信息。
[0120]
如上面所讨论的,根据源容器中的物体类型和物体尺寸,不同参数可以在表面成本图生成中提供更好或更糟的结果。在实施例中,可以手动选择表面成本图生成参数,例如根据源容器中物体的预期类型和尺寸。在进一步的实施例中,参数选择可以被自动化,并且可以基于例如所获得的2d图像信息2600和/或所获得的3d图像信息5700来执行。如上面所讨论的,可以在所获得的2d图像信息2600和/或所获得的3d图像信息5700上执行物体检测(包括例如物体注册),以标识源容器中物体的尺寸、形状和/或类型。根据物体检测(例如,物体注册),可以自动地选择表面成本图生成参数,包括细分区域尺寸、步幅尺寸、距离阈值、法线阈值和法线权重因子。
[0121]
在包括具有多种不同类型的物体的源容器的实施例中,距离阈值、法线阈值和法线权重因子可以针对与不同类型的注册物体相关联的区域在表面成本图内进行调整。
[0122]
现在返回到图4,在操作4006中,方法4000包括图像信息(例如,2d图像信息2600和/或3d图像信息5700)的分割。可以根据通过上述方法或通过任何合适的方法所生成的表面成本图6400进行分割。分割图像信息可以提供多个图像片段,这些图像片段使用表面成本图6400的值来标识场景中的各个物体。关于图7a-图7e描述了根据实施例的图像分割过程。
[0123]
在图像分割方法7000的操作7002中,可以包括应用成本阈值来执行表面成本图的初始分割。应用成本阈值生成在经阈值化的掩模(thresholded mask)7100中的各物体部分
7101之间的阈值边界7102,如图7b中所示。阈值边界7102表示具有超过该阈值的表面成本图值的区域,而物体部分7101表示具有不超过该阈值的表面成本图值的区域。因此,阈值边界7102可以由经阈值化的掩模7100中的“假(false)”值表示,而物体部分7101则表示为“真(true)”值。“假”和“真”值的指派仅仅是约定的,并且任何合适的区分方式都可以被应用。物体部分7101表示对物体表面的第一估计,而阈值边界7102表示对物体边界或不连续性的第一估计。物体边界7103表示实际物体边界,并且被提供用于比较目的。
[0124]
在图像分割方法7000的操作7004中,可以在掩模定义操作中进一步定义经阈值化的掩模7100。掩模定义操作可以包括连接分量分析(connected component analysis)和掩模腐蚀(mask erosion)中的一个或多个,如关于图7c所解释的。经阈值化的掩模7100可以被进一步定义以生成经定义的掩模7200。
[0125]
生成经定义的掩模7200可以包括对经阈值化的掩模7100执行的掩模腐蚀。掩模腐蚀是根据结构化元素来减少或腐蚀掩模的边界的操作。结构化元素可以表示例如具有输出像素/点的n
×
n组像素或点,该输出像素/点可以位于结构化元素的中心。当放置在掩模上时,如果掩模中与结构化元素中的点重合的每个点都为真,那么被腐蚀的掩模中结构化元素的输出点被设置为真。因此,为了使被腐蚀的掩模中的点为真,原始掩模中大到结构化元素的尺寸的每个周围点也必须为真。因此,腐蚀具有消除掩模边缘处的一层或多层点并平滑掩模中的任何不规则性的效果。在示例中,可以使用最小可拾取区域尺寸(例如,可以由机械臂抓住的最小区域尺寸,例如,它可以是抽吸抓握器实现牢固抓握所需的尺寸)的一半的结构化元素对经阈值化的掩模7100执行掩模腐蚀。这种腐蚀操作因此可以被用于使小于最小可拾取区域尺寸的掩模的任何部分断开(disconnect)。
[0126]
在图像分割方法7000的操作7006中,可以在经定义的成本掩模7200内标识物体区域。仍然参考图7c,可以对经定义的成本掩模7200执行连接分量分析以标识位于经定义的成本掩模7200内的物体区域7201。物体区域7201可以表示比先前讨论的物体部分7101更精细的对物体位置和边界的估计。
[0127]
在图像分割方法7000的操作7008中,可以选择并进一步定义来自物体区域7201中的图像片段7301。现在参考图7c和图7d,图像片段7301可以被选择为具有位于其中的种子7204的物体区域7201。种子7204可以是表面成本图中的具有最低成本的点(例如,最平滑点,其最不可能表示边界或不连续性)。可以通过移除不包括种子的所有物体区域7201来生成包含图像片段7301的片段图7300(图7d)。然后可以用与最小可拾取区域尺寸的一半对应的结构化元素来对图像片段7301进行膨胀(dilate)。膨胀是与腐蚀相反的操作。在膨胀期间,结构化元素的输出像素/点成为输入点。当覆盖在片段图7300上时,如果片段图7300上与结构化元素的输入点对应的点为真,那么片段图7300中与结构化元素对应的所有点都被设置为真。膨胀具有将图像片段7301的边界延伸与结构化元素的尺寸对应的量的效果。
[0128]
在图像分割方法7000的操作7010中,可以验证图像片段7301。可以执行对图像片段7301的验证以确定标识出的图像片段7301是否表示多个物体中的可行物体。边界框7305(例如,正方形或矩形方框)可以绕标识出的图像片段7301进行拟合。然后可以将边界框7305与最大物体候选尺寸和最小物体候选尺寸进行比较。最大候选物体尺寸和最小候选物体尺寸表示在物体检测过程期间确定的最大和最小可能物体尺寸。如果边界框大于最大候选物体尺寸或小于最小候选物体尺寸,那么图像片段7301可以被确定为无效,这要求操作
7002、7004、7006和7008的迭代。如果边界框大于最大候选物体尺寸,那么可以用降低的成本阈值来执行迭代。如果边界框小于最小候选物体尺寸,那么可以使用增加的成本阈值来执行迭代。
[0129]
在实施例中,还可以将边界框与期望的最小可拾取区域尺寸进行比较。最小可拾取区域尺寸可以与能够拾取的最小可能区域尺寸对应,例如与机械臂的单个抽吸抓握器的尺寸对应。在实施例中,机械臂可以采用多于一个抽吸抓握器,例如2个或4个。期望的最小可拾取区域尺寸可以是与实现所选择或期望的抓握所必需的区域(例如,使得2或4个抽吸抓握器能够实现抓握所必需的区域)的尺寸对应的参数。如果边界框小于期望的最小可拾取区域尺寸,那么可以使用增加的阈值来对操作7002、7004、7006和7008进行迭代。
[0130]
在图像片段7301已经被验证之后,它可以作为可拾取区域被存储用于进一步分析。然后可以从表面成本图6400中移除图像片段7301,并且可以重复操作7002-7010以标识附加的图像片段7301。在实施例中,在重复操作7002-7010之前,可以增加成本阈值。可以重复方法7000并且可以增加成本阈值,直到没有检测到或标识出另外的片段。图7e图示了从表面成本图6400标识出的图像片段7301的集合。在实施例中,标识出的图像片段7301可以被指定为可拾取区域。在实施例中,标识出的图像片段7301可以被进一步分析以确定其中的可拾取区域。
[0131]
在操作4008中,方法4000包括生成检测掩模。检测掩模可以被生成以细化或进一步定义与从图像分割操作4006中所确定的图像片段7301相对应的物体的潜在可拾取区域。
[0132]
例如,如图8a中所示,因为操作7010的边界框是二维构造,所以它可能不会准确地与物体上的点的实际高度对应。在图8a中,边界框8021已经被拟合到物体8022。但是,由于物体8022的可变形性质,物体8022的表面上的实际点8023并不都落在边界框8021内。因此,在操作4008中,可以生成检测掩模信息以标识该物体的在边界框内的或多或少适合于物体拾取的部分。
[0133]
图8b图示了检测掩模信息8300。检测掩模信息8300可以包括关于边界框8021(例如,在操作7010期间生成的用于图像片段7301的边界框)内的物体的信息。检测掩模信息8300包括标识出的区域8024和8027以及未标识出的区域8026。标识出的区域8024和8027可以包括检测到的区域8024(该检测到的区域8024包括检测到且未遮挡的区域)以及被遮挡的区域8027。对于物体拾取,被遮挡的区域8027可能是不安全或无用的,而检测到的区域8024对于拾取可以是安全的。未标识出的区域8026可以包括对于遮挡或拾取都未被标识并且一般不被用于检测或不被依赖于进行检测的区域。图8b中还图示了最小可拾取区域8025。如图所示,可以看出标记为“b”的检测到的区域8024不够大以至于不能容纳最小可拾取区域8025。因此,检测掩模信息8300可以结合上述图像分割技术来使用以标识物体的可拾取区域。
[0134]
在操作4010中,方法4000可以包括确定在运动规划操作中使用的安全体积。安全体积可以表示被选择用于拾取的物体可能占据的体积。安全体积被选择为降低选定物体一旦被拾取后与物体处置环境中的其他物体发生碰撞的可能性。
[0135]
现在参考图9a,在被指定为物体3520的可拾取区域的可拾取区域9201周围提供安全体积9100。安全体积可以被确定为具有所指定的供拾取的可拾取区域9201与预期的物体尺寸之间的差异的两倍的尺寸。这个安全体积尺寸因此在可拾取区域9201周围创建了如下
体积,其可以提供物体的潜在维度的误差边际,例如,如果可拾取区域9201没有位于要拾取的物体3520的中心的话。然后可以如下修改安全体积9100的尺寸。
[0136]
首先,将安全体积9100与3d点云进行比较。如果3d点云不支持该安全体积9100尺寸(例如,安全体积9100太大并且会延伸超过3d点云的边界,3d点云的边界与源容器3510的边界对应),那么安全体积9100的尺寸可以减小到被3d点云支持的尺寸。然后安全体积9100可以与3d点云的边缘对齐。图9b图示了安全体积9100被减小为安全体积9101的情况,这是因为安全体积9100的边界会延伸到与源容器3511相关联的3d点云之外。
[0137]
如果安全体积9100/9101大于目的地容器指定的最大允许尺寸,那么可以进一步减小安全体积9100/9101。例如,如果目的地容器小于源容器,那么安全体积9100/9101对于目的地容器而言有可能太大。安全体积9100/9101因此可以相应地减小或调整。在实施例中,在安全体积9100/9101大于目的地容器并且不能调整到小于目的地容器的尺寸的情况下,如果已知物体3520能够适配到目标容器中,那么可以生成考虑到这种不确定性的运动规划。
[0138]
如果操作7010的检测边界框伸出安全体积9100/9101,那么可以进一步调整安全体积9100/9101。这可能会发生,这例如是由于如上所述的对安全体积进行收缩或重新对齐,或者如果边界框相对于形成安全体积9100/9101的基础的可拾取区域9201以不方便的方式布置。在实施例中,为了解决这个问题,安全体积9100/9101可以被移动以包括边界框,或者边界框可以被移动并对齐到安全体积9100/9101。
[0139]
在操作4012中,方法4000包括输出可拾取区域检测结果。可拾取区域检测结果可以包括在操作4002-4010中生成的任何或所有信息,包括例如标识出的图像片段7301、它们相关联的边界框7305、标识出的可拾取区域9201和安全体积9100/9101。可拾取区域检测结果可以包括关于源容器3510内的任何或所有检测到的物体3520的可拾取区域检测结果信息。
[0140]
在操作4014中,方法4000可以包括根据可拾取区域检测结果生成和/或输出运动规划。运动规划可以包括用于以下的机器人指令:遵循轨迹、通过标识出的可拾取区域9201来抓住或拾取物体3520、以及将物体3520传送到目的地容器,同时基于所确定的物体3520的安全体积9100/9101来考虑潜在碰撞。
[0141]
对于相关领域的普通技术人员来说清楚的是,在不脱离任何实施例的范围的情况下,可以对本文描述的方法和应用进行其他适当的修改和改编。上述实施例是说明性示例并且不应当将本公开解释为限于这些特定实施例。应当理解的是,本文公开的各种实施例可以以与在说明书和附图中具体呈现的组合不同的组合来组合。还应当理解的是,根据示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以添加、合并或完全省略(例如,所有描述的动作或事件可能不是执行方法或过程所必需的)。此外,虽然出于清楚的目的将本文的实施例的某些特征描述为由单个组件、模块或单元执行,但应当理解的是,本文描述的特征和功能可以由组件、单元或模块的任何组合执行。因此,在不脱离所附权利要求所限定的本发明的精神或范围的情况下,本领域技术人员可以做出各种改变和修改。
[0142]
进一步的实施例可以包括:
[0143]
实施例1是一种计算系统,包括:控制系统,被配置为与具有机械臂的机器人进行
通信并与相机进行通信,所述机械臂包括或附接到末端执行器装置;至少一个处理电路,被配置为当所述机器人位于包括用于传送到物体处置环境内的目的地的物体源的所述物体处置环境中时执行以下操作:获得所述物体的图像信息;通过以下操作来标识所述物体中的选定物体中的一个或多个选定物体的可拾取区域:根据所述图像信息生成表面成本图,分割所述表面成本图以获得一个或多个图像片段,所述一个或多个图像片段标识与所述一个或多个选定物体对应的一个或多个可拾取区域;以及生成至少包括所述一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送所述一个或多个选定物体的运动规划,所述运动规划基于所述可拾取区域检测结果。
[0144]
实施例2是实施例1的系统,其中,所述表面成本图代表所述一个或多个选定物体的平滑度。
[0145]
实施例3是实施例1或2的系统,其中,所述图像信息包括三维信息,并且所述处理电路进一步被配置用于根据所述图像信息中的经定义的单元格之间的高度梯度和法线差异来生成所述表面成本图。
[0146]
实施例4是实施例1至3中的任一项的系统,其中,所述至少一个处理电路进一步被配置用于根据表面成本图参数生成所述表面成本图。
[0147]
实施例5是实施例1至4中的任一项的系统,其中,所述至少一个处理电路进一步被配置用于:基于所述图像信息注册所述一个或多个物体以创建物体注册信息;以及根据所述物体注册信息确定所述表面成本图参数。
[0148]
实施例6是实施例1至5中的任一项的系统,其中,所述至少一个处理电路进一步被配置用于生成指示图像片段的所述一个或多个可拾取区域的检测掩模信息,所述检测掩模信息包括所述一个或多个图像片段内检测到的区域和被遮挡的区域。
[0149]
实施例7是实施例1至6中的任一项的系统,其中,分割所述表面成本图包括:将成本阈值应用于所述表面成本图以生成经阈值化的掩模;腐蚀所述经阈值化的掩模以生成被腐蚀的掩模;以及将连接分量分析应用于所述被腐蚀的掩模以标识第一图像片段。
[0150]
实施例8是实施例1至7中的任一项的系统,其中,分割所述表面成本图还包括:从表面成本图中移除所述第一图像片段;将第二成本阈值应用于所述表面成本图的剩余部分以生成第二经阈值化的掩模;腐蚀第二经阈值化的掩模以生成第二被腐蚀的掩模;以及将连接分量分析应用于所述第二被腐蚀的掩模以标识第二图像片段。
[0151]
实施例9是实施例1至8中的任一项的系统,其中,生成所述可拾取区域检测结果还包括:生成围绕所述一个或多个可拾取区域的安全体积,所述安全体积指示所述一个或多个选定物体的所估计的剩余部分。
[0152]
实施例10是一种由控制系统执行的物体传送方法,所述控制系统具有至少一个处理电路并被配置为与具有机械臂的机器人进行通信并与相机进行通信,所述机械臂包括或附接到末端执行器装置,所述方法包括:获得物体源中包含的一个或多个物体的图像信息;通过以下操作来标识所述物体中的选定物体中的一个或多个选定物体的可拾取区域:根据所述图像信息生成表面成本图,分割所述表面成本图以获得一个或多个图像片段,所述一个或多个图像片段标识与所述一个或多个选定物体对应的一个或多个可拾取区域;以及生成至少包括所述一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送所述一个或多个选定物体的运动规划,所述运动规划基于所述可拾取区域检测结
果。
[0153]
实施例11是实施例10的方法,其中,所述表面成本图代表所述一个或多个选定物体的平滑度。
[0154]
实施例12是实施例10或11的方法,其中,所述图像信息包括三维信息,所述方法还包括根据所述图像信息中的经定义的单元格之间的高度梯度和法线差异来生成所述表面成本图。
[0155]
实施例13是实施例10至12中的任一项的方法,还包括根据表面成本图参数生成所述表面成本图。
[0156]
实施例14是实施例10至13中的任一项的方法,还包括:基于所述图像信息注册所述一个或多个物体以创建物体注册信息;以及根据所述物体注册信息确定所述表面成本图参数。
[0157]
实施例15是实施例10至14中的任一项的方法,还包括生成指示所述图像片段的所述一个或多个可拾取区域的检测掩模信息,所述检测掩模信息包括所述一个或多个图像片段内的检测到的区域和被遮挡的区域。
[0158]
实施例16是实施例10至15中的任一项的方法,其中,分割所述表面成本图包括:将成本阈值应用于所述表面成本图以生成经阈值化的掩模;腐蚀所述经阈值化的掩模以生成被腐蚀的掩模;以及将连接分量分析应用于所述被腐蚀的掩模以标识第一图像片段。
[0159]
实施例17是实施例10至16中的任一项的方法,其中,分割所述表面成本图还包括:从所述表面成本图中移除所述第一图像片段;将第二成本阈值应用于所述表面成本图的剩余部分以生成第二经阈值化的掩模;腐蚀所述第二经阈值化的掩模以生成第二被腐蚀的掩模;以及将连接分量分析应用于所述第二被腐蚀的掩模以标识第二图像片段。
[0160]
实施例18是实施例10至17中的任一项的方法,其中,生成所述可拾取区域检测结果还包括:生成围绕所述一个或多个可拾取区域的安全体积,所述安全体积指示所述一个或多个选定物体的所估计的剩余部分。
[0161]
实施例19是一种非暂时性计算机可读介质,配置有用于物体传送的可执行指令,所述物体传送由控制系统执行,所述控制系统具有至少一个处理电路并被配置为与具有机械臂的机器人进行通信并与相机进行通信,所述机械臂包括或附接到末端执行器装置,所述指令被配置用于:获得物体源中包含的一个或多个物体的图像信息;通过以下操作来标识所述物体中的选定物体中的一个或多个选定物体的可拾取区域:根据所述图像信息生成表面成本图,分割所述表面成本图以获得一个或多个图像片段,所述一个或多个图像片段标识与所述一个或多个选定物体对应的一个或多个可拾取区域;以及生成至少包括所述一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送所述一个或多个选定物体的运动规划,所述运动规划基于所述可拾取区域检测结果。
[0162]
实施例20是实施例19的非暂时性计算机可读介质,其中,所述图像信息包括三维信息,所述指令进一步被配置用于根据所述图像信息中的经定义的单元格之间的高度梯度和法线差异来生成所述表面成本图。
技术特征:
1.一种计算系统,包括:控制系统,被配置为与具有机械臂的机器人进行通信并与相机进行通信,所述机械臂包括或附接到末端执行器装置;至少一个处理电路,被配置为当所述机器人位于包括用于传送到物体处置环境内的目的地的物体源的所述物体处置环境中时执行以下操作:获得所述物体的图像信息;通过以下操作来标识所述物体中的选定物体中的一个或多个选定物体的可拾取区域:根据所述图像信息生成表面成本图,分割所述表面成本图以获得一个或多个图像片段,所述一个或多个图像片段标识与所述一个或多个选定物体对应的一个或多个可拾取区域;以及生成至少包括所述一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送所述一个或多个选定物体的运动规划,所述运动规划基于所述可拾取区域检测结果。2.如权利要求1所述的系统,其中,所述表面成本图代表所述一个或多个选定物体的平滑度。3.如权利要求1所述的系统,其中,所述图像信息包括三维信息,并且所述处理电路进一步被配置用于根据所述图像信息中的经定义的单元格之间的高度梯度和法线差异来生成所述表面成本图。4.如权利要求3所述的系统,其中,所述至少一个处理电路进一步被配置用于根据表面成本图参数生成所述表面成本图。5.如权利要求4所述的系统,其中,所述至少一个处理电路进一步被配置用于:基于所述图像信息注册所述一个或多个物体以创建物体注册信息;以及根据所述物体注册信息确定所述表面成本图参数。6.如权利要求1所述的系统,其中,所述至少一个处理电路进一步被配置用于生成指示图像片段的所述一个或多个可拾取区域的检测掩模信息,所述检测掩模信息包括所述一个或多个图像片段内检测到的区域和被遮挡的区域。7.如权利要求1所述的系统,其中,分割所述表面成本图包括:将成本阈值应用于所述表面成本图以生成经阈值化的掩模;腐蚀所述经阈值化的掩模以生成被腐蚀的掩模;以及将连接分量分析应用于所述被腐蚀的掩模以标识第一图像片段。8.如权利要求7所述的系统,其中,分割所述表面成本图还包括:从表面成本图中移除所述第一图像片段;将第二成本阈值应用于所述表面成本图的剩余部分以生成第二经阈值化的掩模;腐蚀第二经阈值化的掩模以生成第二被腐蚀的掩模;以及将连接分量分析应用于所述第二被腐蚀的掩模以标识第二图像片段。9.如权利要求1所述的系统,其中,生成所述可拾取区域检测结果还包括:生成围绕所述一个或多个可拾取区域的安全体积,所述安全体积指示所述一个或多个选定物体的所估计的剩余部分。10.一种由控制系统执行的物体传送方法,所述控制系统具有至少一个处理电路并被
配置为与具有机械臂的机器人进行通信并与相机进行通信,所述机械臂包括或附接到末端执行器装置,所述方法包括:获得物体源中包含的一个或多个物体的图像信息;通过以下操作来标识所述物体中的选定物体中的一个或多个选定物体的可拾取区域:根据所述图像信息生成表面成本图,分割所述表面成本图以获得一个或多个图像片段,所述一个或多个图像片段标识与所述一个或多个选定物体对应的一个或多个可拾取区域;以及生成至少包括所述一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送所述一个或多个选定物体的运动规划,所述运动规划基于所述可拾取区域检测结果。11.如权利要求10所述的方法,其中,所述表面成本图代表所述一个或多个选定物体的平滑度。12.如权利要求10所述的方法,其中,所述图像信息包括三维信息,所述方法还包括根据所述图像信息中的经定义的单元格之间的高度梯度和法线差异来生成所述表面成本图。13.如权利要求12所述的方法,还包括根据表面成本图参数生成所述表面成本图。14.如权利要求13所述的方法,还包括:基于所述图像信息注册所述一个或多个物体以创建物体注册信息;以及根据所述物体注册信息确定所述表面成本图参数。15.如权利要求10所述的方法,还包括生成指示所述图像片段的所述一个或多个可拾取区域的检测掩模信息,所述检测掩模信息包括所述一个或多个图像片段内的检测到的区域和被遮挡的区域。16.如权利要求10所述的方法,其中,分割所述表面成本图包括:将成本阈值应用于所述表面成本图以生成经阈值化的掩模;腐蚀所述经阈值化的掩模以生成被腐蚀的掩模;以及将连接分量分析应用于所述被腐蚀的掩模以标识第一图像片段。17.如权利要求16所述的方法,其中,分割所述表面成本图还包括:从所述表面成本图中移除所述第一图像片段;将第二成本阈值应用于所述表面成本图的剩余部分以生成第二经阈值化的掩模;腐蚀所述第二经阈值化的掩模以生成第二被腐蚀的掩模;以及将连接分量分析应用于所述第二被腐蚀的掩模以标识第二图像片段。18.如权利要求10所述的方法,其中,生成所述可拾取区域检测结果还包括:生成围绕所述一个或多个可拾取区域的安全体积,所述安全体积指示所述一个或多个选定物体的所估计的剩余部分。19.一种非暂时性计算机可读介质,配置有用于物体传送的可执行指令,所述物体传送由控制系统执行,所述控制系统具有至少一个处理电路并被配置为与具有机械臂的机器人进行通信并与相机进行通信,所述机械臂包括或附接到末端执行器装置,所述指令被配置用于:获得物体源中包含的一个或多个物体的图像信息;通过以下操作来标识所述物体中的选定物体中的一个或多个选定物体的可拾取区域:
根据所述图像信息生成表面成本图,分割所述表面成本图以获得一个或多个图像片段,所述一个或多个图像片段标识与所述一个或多个选定物体对应的一个或多个可拾取区域;以及生成至少包括所述一个或多个可拾取区域的可拾取区域检测结果;以及为机器人系统生成用于传送所述一个或多个选定物体的运动规划,所述运动规划基于所述可拾取区域检测结果。20.如权利要求19所述的非暂时性计算机可读介质,其中,所述图像信息包括三维信息,所述指令进一步被配置用于根据所述图像信息中的经定义的单元格之间的高度梯度和法线差异来生成所述表面成本图。
技术总结
公开了用于具有物体处置能力的机器人系统的系统和方法。提供了一种被配置用于物体传送的计算系统。该计算系统至少包括一个处理电路,其被配置为根据物体的图像信息标识物体的可拾取区域。可拾取区域可以根据指示图像信息的各区域的平滑度的表面成本图来确定,表面成本图是根据高度差和法线差异来确定的。可拾取区域的标识可以被用在用于传送物体的运动规划操作中。划操作中。划操作中。
技术研发人员:F
受保护的技术使用者:牧今科技
技术研发日:2023.03.08
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/