CN113219900B - 基于相机生成的图像信息执行运动规划的方法和计算系统 - Google Patents

基于相机生成的图像信息执行运动规划的方法和计算系统 Download PDF

Info

Publication number
CN113219900B
CN113219900B CN202110305783.4A CN202110305783A CN113219900B CN 113219900 B CN113219900 B CN 113219900B CN 202110305783 A CN202110305783 A CN 202110305783A CN 113219900 B CN113219900 B CN 113219900B
Authority
CN
China
Prior art keywords
camera
estimate
image information
computing system
object structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110305783.4A
Other languages
English (en)
Other versions
CN113219900A (zh
Inventor
叶旭涛
魏璇有
魯仙·出杏光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Technology
Original Assignee
Mujin Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mujin Technology filed Critical Mujin Technology
Priority claimed from CN202080004033.7A external-priority patent/CN113272106A/zh
Publication of CN113219900A publication Critical patent/CN113219900A/zh
Application granted granted Critical
Publication of CN113219900B publication Critical patent/CN113219900B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/695Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35349Display part, programmed locus and tool path, traject, dynamic locus

Abstract

公开了基于由相机生成的图像信息执行运动规划的方法和计算系统。提出了一种用于运动规划的系统和方法。该系统被配置为当物体处于或已经处于相机的相机视野时,接收当相机具有第一相机姿势时生成的第一图像信息。该系统还被配置为基于第一图像信息确定对物体结构的第一估计,以及基于对物体结构的第一估计或基于第一图像信息标识物体角。该系统还被配置使末端执行器装置将相机移动到第二相机姿势,以及接收用于表示物体结构的第二图像信息。该系统被配置为基于第二图像信息确定对物体结构的第二估计,以及至少基于第二估计来生成运动规划。

Description

基于相机生成的图像信息执行运动规划的方法和计算系统
本申请是申请日为2020年10月29日、题为“基于由相机生成的图像信息执行运动规划的方法和计算系统”的发明专利申请202080004033.7的分案申请。
对相关申请的交叉引用
本申请要求2019年12月12日提交的题为“ROBOTIC SYSTEM WITH GRIPPINGMECHANISM”的第62/946,973号美国临时申请的权益,该美国临时申请的全部内容通过引用并入本文中。
技术领域
本公开涉及一种基于由相机生成的图像信息来执行运动规划的方法和计算系统。
背景技术
随着自动化变得更加普遍,机器人正在更多环境中使用,诸如在仓储和零售环境中。例如,机器人可以被用于与仓库中的商品或其他物体进行交互。机器人的移动可以是固定的,也可以基于输入,诸如由仓库中的传感器生成的信息。
发明内容
本公开的一个方面涉及一种用于促进运动规划和/或用于估计物体的结构的计算系统、方法和非暂时性计算机可读介质。在实施例中,方法可以由计算系统执行,诸如通过执行非暂时性计算机可读介质上的指令。计算系统包括通信接口和至少一个处理电路。通信接口被配置为与以下进行通信:(i)具有末端执行器装置(end effector apparatus)的机器人;以及(ii)安装在该末端执行器装置上并具有相机视野的相机。至少一个处理电路被配置为当物体处于或已经处于相机视野时:接收用于表示与物体相关联的物体结构的至少第一外表面的第一图像信息,其中第一图像信息是在相机具有第一相机姿势时由相机生成的,在该第一相机姿势中相机被指向第一外表面,使得相机视野包含第一外表面;基于第一图像信息确定对物体结构的第一估计;基于对物体结构的第一估计或基于第一图像信息,标识物体结构的角;确定第二相机姿势,当该第二相机姿势被相机采用时,使相机被指向物体结构的该角,使得相机视野包含该角和物体结构的第二外表面的至少一部分;输出一个或多个相机放置移动命令,当该一个或多个相机放置移动命令由机器人执行时,使末端执行器装置将相机移动到第二相机姿势;接收用于表示物体结构的第二图像信息,其中该第二图像信息是在相机具有第二相机姿势时由相机生成的;基于第二图像信息确定对物体结构的第二估计;至少基于对物体结构的第二估计来生成运动规划,其中,该运动规划用于引起机器人与物体之间的机器人交互;以及输出用于引起该机器人交互的一个或多个物体交互移动命令,其中该一个或多个物体交互移动命令是基于该运动规划生成的。
附图说明
图1A至图1D示出了根据本文的实施例的用于处理图像信息的系统。
图2A至图2D提供了示出根据本文的实施例的被配置用于接收和处理图像信息和/或执行运动规划的计算系统的框图。
图3A和图3B示出了根据本文的实施例的具有用于执行运动规划的机器人臂和末端执行器装置的环境。
图4A至图4D示出了根据本文的实施例的各种末端执行器装置。
图5示出了示出根据本文的实施例的用于生成运动规划的示例方法的流程图。
图6A至图6C示出了根据本文的实施例的生成用于表示物体或物体的堆叠(stack)的图像信息的各个方面。
图7A至图7D示出了根据本文的实施例的生成用于表示物体或物体的堆叠的图像信息的各个方面。
图8A至图8I示出了根据本文的实施例的在运动规划的各个点处的末端执行器装置。
图9A至图9C示出了根据本文的实施例的对表示物体的堆叠的堆叠结构的估计进行更新的各个方面。
图10提供了示出根据本文的实施例的用于控制机器人以接合(engage)物体并将物体移动到目的地位置的示例方法的流程图。
具体实施方式
本公开的一个方面涉及使用表示多个视图或视点的多组图像信息来执行运动规划。运动规划可以涉及例如确定布置在机器人的机器人臂的一端处的末端执行器装置(例如,机器人抓持器或机器人手)要遵循的轨迹。该轨迹可以是机器人臂与物体(诸如在仓库或零售空间中持有商品的盒子或板条箱)之间的机器人交互的一部分。例如,机器人交互可以执行机器人臂拾取物体并将物体移动到期望的目的地位置的操作。在一些情况下,物体可能是布置在托盘上的物体的堆叠的一部分,并且机器人臂可以被用于将所有物体从托盘移动到另一个位置。
在实施例中,多个视点可以指被配置为生成描述相机和/或机器人的环境的2D或3D图像信息的相机的视点。在一些情况下,相机可以被安装在末端执行器装置上或以其他方式附接到末端执行器装置。在这样的情况下,计算系统可以经由末端执行器装置的移动而引起相机的移动。更具体地,计算系统可以经由端部执行器装置而使相机被移动到不同的相机姿势。在第一相机姿势中,相机可以例如被放置在物体正上方,并且可以生成表示物体的顶视图的第一图像信息。在这样的示例中,第一图像信息可以表示物体的顶表面(也被称为顶面)。在一些情况下,计算系统可以使用第一图像信息来确定对物体的结构(也被称为物体结构)的第一估计和/或生成用于引起机器人和物体之间的交互的初始运动规划。
在实施例中,计算系统可以基于表示物体的另一视图的第二图像信息来生成更新后的运动规划。更具体地,基于第一图像信息生成的对物体结构的第一估计或初始运动规划可能缺乏高水平的准确性或置信度。例如,如果第一图像信息表示物体的顶视图,则该顶视图可以提供关于物体尺寸(诸如物体长度或物体宽度)的一些信息,但是可能不提供关于物体尺寸(诸如物体高度)的信息或提供关于物体尺寸(诸如物体高度)的有限的信息。因此,仅使用第一图像信息来执行运动规划可能导致不可靠的结果。因此,计算系统可以使相机生成可以表示物体的另一视图的第二图像信息。
在实施例中,计算系统可以通过使用第一图像信息来标识物体的角(也被称为物体角)来使相机生成第二图像信息。在此实施例中,计算系统可以输出移动命令以用于经由末端执行器装置使相机被移动到第二相机姿势,在该第二相机姿势中相机被指向物体角。第二图像信息可以在相机具有第二相机姿势时由相机生成。在一种情况下,第二图像信息可以表示物体的透视图,在该透视图中,物体的一个或多个外部的侧表面(也被称为侧面)由第二图像信息表示。因此,第二图像信息可以提供关于物体的结构的附加信息,诸如可以被用于估计其物体高度的信息。在一些情况下,计算系统可以使用第二图像信息(单独地或与第一图像信息结合)来确定对物体结构的第二估计,和/或来确定更新后的运动规划。结果,相对于仅基于第一图像信息生成的第一估计或初始运动规划,对物体结构的第二估计和/或更新后的运动规划可以具有更高度的可靠性或置信度。
在实施例中,计算系统可以被配置为估计物体已经被移除之后的堆叠的结构。更具体地,计算系统可以使用物体结构的估计来确定对堆叠的结构的估计。例如,计算系统可以使用被移除的物体的结构的估计尺寸来确定对堆叠的结构的估计中的哪一部分与被移除的物体相对应,并且从对堆叠的结构的估计中移除(例如屏蔽掉)该部分。结果,计算系统可以生成对堆叠的结构的更新后的估计。该更新后的估计可以表示物体已经被移除之后的堆叠。在一些情况下,计算系统可以使用对堆叠的结构的更新后的估计来标识堆叠的剩余物体角(例如,凸角),这些角可以对应于堆叠中剩余物体的物体角(例如,凸角)。计算系统可以选择可能属于剩余物体之一的物体角之一,并且进一步使相机被移动到其中相机被指向所选择的物体角的相机姿势。当相机处于该相机姿势时,该相机可以生成图像信息,并且该图像信息可以被计算系统用来生成用于移动该剩余物体的运动规划。
图1A示出了用于基于图像信息执行运动规划的系统1000。更具体地,系统1000可以包括计算系统1100和相机1200。在此示例中,相机1200可以被配置为生成图像信息,该图像信息描述或以其他方式表示相机1200所处的环境,或更具体地表示相机1200的视野(也被称为相机视野)中的环境。该环境可以是例如仓库、制造工厂、零售空间或一些其他场所。在这样的情况下,图像信息可以表示位于这样的场所的物体,诸如持有商品或其他物品的容器(例如,盒子)。系统1100可以被配置为接收和处理图像信息,诸如通过基于图像信息执行运动规划,如下面更详细地讨论的。运动规划可以被用于例如控制机器人以促进机器人与容器或其他物体之间的机器人交互。计算系统1100和相机1200可以位于相同的场所,或者可以彼此远离。例如,计算系统1100可以是被托管在远离仓库或零售空间的数据中心中的云计算平台的一部分,并且可以经由网络连接与相机1200通信。
在实施例中,相机1200可以是被配置为生成关于相机的视野中的环境的空间结构信息的3D相机(也被称为空间结构感测相机或空间结构感测设备),和/或可以是被配置为生成描述相机的视野中环境的视觉外观的2D图像的2D相机。空间结构信息可以包括深度信息,该深度信息描述各种位置(诸如相机1200的视野中各种物体的表面上的位置)相对于相机1200的相应深度值。在此示例中,深度信息可以被用于估计物体如何被空间地布置在三维(3D)空间中。在一些情况下,空间结构信息可以包括描述相机的视野中的物体的一个或多个表面上的位置的点云。更具体地,空间结构信息可以描述物体的结构(也被称为物体结构)上的各种位置。
在实施例中,系统1000可以是用于与相机1200的环境中的各种物体进行交互的机器人操作系统。例如,图1B示出了机器人操作系统1000A,其可以是图1A的系统1000的实施例。机器人操作系统1000A可以包括计算系统1100、相机1200和机器人1300。在实施例中,机器人1300可以被用于与相机1200的环境中的一个或多个物体(诸如与盒子、板条箱、箱子或仓库中持有商品的其他容器)交互。例如,机器人1300可以被配置为从一个位置拾取容器并将它们移动到另一位置。在一些情况下,机器人1300可以被用于执行将一堆容器卸载并移动到例如传送带的卸垛操作,或者将容器堆叠到托盘上以准备将它们进行运输的堆垛操作。
在实施例中,相机1200可以是机器人1300的一部分或以其他方式附接到机器人1300,如图1B所示。在一些情况下,相机1200可以被附接到机器人1300的可移动部分,这可以为机器人1300提供经由该可移动部分来移动相机1200的能力。例如,图1C描绘了机器人1300包括机器人臂1400和形成机器人臂1400的一端或被附接到机器人臂1400的一端的末端执行器装置1500的示例。末端执行器装置1500可经由机器人臂1400的运动而移动。在图1C的示例中,相机1200可以被安装在末端执行器装置1500上或以其他方式附接到末端执行器装置1500。如果末端执行器装置1500是机器人手(例如,抓持器装置),则相机1200可以被称为手上式(on-hand)相机。通过将相机1200附接到末端执行器装置1500,机器人1300可以能够经由机器人臂1400和/或末端执行器装置1500的运动将相机1300移动到不同的姿势(也被称为相机姿势)。例如,如下面更详细地讨论的,末端执行器装置1500可以将相机1200移动到对于感测关于相机1200的环境或机器人1300的环境中的物体的信息最佳或特别有效的相机姿势。在另一实施例中,如图1D所示,相机1200可以与机器人1200分开。例如,在这样的实施例中,相机1200可以是被安装在天花板或仓库或其他场所处的一些其他位置的固定的相机。
在实施例中,图1A-1D的计算系统1100可以形成机器人控制系统(也被称为机器人控制器)或是其一部分,该机器人控制系统是机器人操作系统1000A的一部分。机器人控制系统可以是被配置为例如为机器人1300生成移动命令或其他命令的系统。在这样的实施例中,计算系统1100可以被配置为基于例如由相机1200生成的空间结构信息来生成这样的命令。在实施例中,计算系统1100可以形成视觉系统或是视觉系统的一部分。视觉系统可以是生成例如视觉信息的系统,该视觉信息描述机器人1300所处的环境,或更具体地描述相机1200所处的环境。视觉信息可以包括以上讨论的3D图像或2D图像,或一些其他图像信息。在一些情况下,如果计算系统1100形成视觉系统,则视觉系统可以是以上讨论的机器人控制系统的一部分,或者可以与机器人控制系统分开。如果视觉系统与机器人控制系统是分开的,则视觉系统可以被配置为输出描述机器人1300所处的环境的信息。该信息可以被输出到机器人控制系统,该机器人控制系统可以从视觉系统接收这样的信息并且基于该信息来控制机器人1300的移动。
在实施例中,如果计算系统1100被配置为生成一个或多个移动命令,则移动命令可以包括例如相机放置移动命令、物体交互移动命令和/或抓持器构件放置命令。在此实施例中,相机放置移动命令可以是用于控制相机1200的放置的移动命令,并且更具体地,用于使机器人1300将相机1200移动到特定的相机姿势的移动命令,该特定的相机姿势可以包括特定的相机位置和特定的相机朝向的组合。物体交互移动命令可以被用于控制机器人1300与一个或多个物体(诸如,仓库中的容器的堆叠)之间的交互。例如,物体交互移动命令可以使机器人1300的机器人臂1400移动末端执行器装置1500以接近容器之一,使机器人臂1400的一端处的末端执行器装置1500拾取容器,然后使机器人臂1400将容器移动到期望的目的地位置(例如,传送带)。如果末端执行器装置1500具有至少一个抓持器构件,则抓持器构件放置命令可以引起抓持器构件相对于末端执行器装置的剩余部分的移动,以便将抓持器构件放置或以其他方式定位在抓持器构件将抓住容器的一部分的位置处。
在实施例中,计算系统1100可以经由直接连接(诸如,经由专用有线通信接口(诸如,RS-232接口、通用串行总线(USB)接口)和/或经由本地计算机总线(诸如外围组件互连(PCI)总线)提供的连接)与相机1200和/或机器人1300进行通信。在实施例中,计算系统1100可以经由网络与相机1200和/或与机器人1300通信。网络可以是任何类型和/或形式的网络,诸如个人局域网(PAN)、局域网(LAN)(例如内联网)、城域网(MAN)、广域网(WAN))或因特网。网络可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(TCP/IP)、ATM(异步传输模式)技术、SONET(同步光网络)协议或SDH(同步数字体系)协议。
在实施例中,计算系统1100可以与相机1200和/或与机器人1300直接通信信息,或者可以经由中间存储设备或更一般地经由中间非暂时性计算机可读介质进行通信。这样的中间非暂时性计算机可读介质可以在计算系统1100的外部,并且可以充当外部缓冲器或存储库(repository),用于存储例如由相机1200生成的图像信息,存储由机器人1300生成的传感器信息,和/或存储由计算系统1100生成的命令。例如,如果中间非暂时性计算机可读介质被用于存储由相机1200生成的图像信息,则计算系统1100可以检索或以其他方式接收来自中间非暂时性计算机可读介质的图像信息。非暂时性计算机可读介质的示例包括电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合。非暂时性计算机可读介质可以形成例如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SDD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)和/或记忆棒。
如上所述,相机1200可以是3D相机和/或2D相机。2D相机可以被配置为生成2D图像,诸如彩色图像或灰度图像。3D相机可以是例如深度感应相机,诸如飞行时间(TOF)相机或结构光相机,或任何其他类型的3D相机。在一些情况下,3D相机可以包括图像传感器,诸如电荷耦合器件(CCD)传感器和/或互补金属氧化物半导体(CMOS)传感器。在实施例中,3D相机可以包括激光器、激光雷达设备、红外设备、明/暗传感器、运动传感器、微波检测器、超声波检测器、雷达检测器,或被配置为捕获空间结构信息的任何其他设备。
如上所述,图像信息可以由计算系统1100处理。在实施例中,计算系统1100可以包括或被配置为服务器(例如,具有一个或多个服务器刀片,处理器等)、个人计算机(例如,台式计算机,膝上型计算机等)、智能手机、平板计算设备和/或其他任何其他计算系统。在实施例中,计算系统1100的任何或所有功能可以被执行为云计算平台的一部分。计算系统1100可以是单个计算设备(例如,台式计算机),或者可以包括多个计算设备。
图2A提供了示出计算系统1100的实施例的框图。计算系统1100包括至少一个处理电路1110和(一个或多个)非暂时性计算机可读介质1120。在实施例中,处理电路1110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“PLC”)、专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”),其任何组合或任何其他处理电路。在实施例中,作为计算系统1100的一部分的非暂时性计算机可读介质1120可以是以上讨论的中间非暂时性计算机可读介质的替代或附加。非暂时性计算机可读介质1120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SSD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、其任何组合或任何其他存储设备。在一些情况下,非暂时性计算机可读介质1120可以包括多个存储设备。在某些情况下,非暂时性计算机可读介质1120被配置为存储由相机1200生成的图像信息。非暂时性计算机可读介质1120可以替代地或附加地存储计算机可读程序指令,在由处理电路1110执行时,该指令使处理电路1110执行这里描述的一种或多种方法,例如诸如关于图5描述的操作。
图2B描绘了计算系统1100A,其是计算系统1100的实施例并且包括通信接口1130。通信接口1130可以被配置为例如接收由图1A-1D的相机1200生成的图像信息。可以经由以上讨论的中间非暂时性计算机可读介质或网络,或者经由相机1200与计算系统1100/1100A之间的更直接的连接来接收图像信息。在实施例中,通信接口1130可以被配置为与图1B-1D的机器人1300通信。如果计算系统1100不是机器人控制系统的一部分,则计算系统1100的通信接口1130可以被配置为与机器人控制系统通信。通信接口1130可以包括例如被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括RS-232端口控制器、USB控制器、以太网控制器、
Figure BDA0002983375930000101
控制器、PCI总线控制器、任何其他通信电路或其组合。
在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令来编程。例如,图2C示出了计算系统1100B,其是计算系统1100/1100A的实施例,其中处理电路1110由一个或多个模块编程,该模块包括运动规划模块1122和抓持控制模块1124,将在下面更详细地讨论。
在实施例中,运动规划模块1122可以被配置为确定用于与容器交互的机器人运动,诸如用于卸垛操作的机器人运动,其中运动规划模块1122生成用于控制图1C或图1D的机器人臂1400和/或末端执行器装置1500从托盘拾取容器并将容器移动到期望的目的地位置的交互运动命令。在一些情况下,运动规划模块1122可以被配置为为机器人1300或更具体地为机器人臂1400和/或末端执行器装置1500生成运动规划,以完成卸垛操作或其他交互。在一些情况下,运动规划可以包括末端执行器装置1500要遵循的轨迹。该轨迹可以使末端执行器装置1500接近容器或其他物体,与容器(例如,通过拾取该容器)接合(engage),并且将容器移动到期望的目的地位置。
在实施例中,如果图1C和1D的末端执行器装置1500具有一个或多个抓持器,则图2C的计算系统1100B可以被配置为执行抓持控制模块1124以控制一个或多个抓持器。如下面更详细地讨论的,一个或多个抓持器可以能够移动到不同的位置,并且可以从打开状态转换到闭合状态以拾取或以其他方式与物体接合,并且可以从关闭状态转换到打开状态以释放物体。在此实施例中,抓持控制模块1124可以被配置为控制一个或多个抓持器向不同位置的运动,和/或控制一个或多个抓持器处于打开状态还是闭合状态。将理解的是,本文所讨论的模块的功能是代表性的而非限制性的。
在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”广义上是指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件组件正在执行模块或计算机可读指令时,模块和计算机可读指令可以被描述为执行各种操作或任务。
在实施例中,非暂时性计算机可读介质1120可以存储或以其他方式包括一个或多个物体模板1126(例如,容器模板),这些物体模板被用于描述物体或物体类型(也被称为物体的类别)的特定的视觉设计、物理设计或的物体设计的其他方面。例如,如果物体是容器,则物体模板1126可以各自描述特定的容器设计,其可以包括容器或容器类型(也被称为容器的类别)的视觉设计和/或容器或容器类型的物理设计。在一些实现中,物体模板1126中的每一个可以包括描述视觉设计的物体外观描述(也被称为视觉描述信息),和/或可以包括描述物理设计的物体结构描述(也被称为结构描述信息)。在一些情况下,物体外观描述可以包括一个或多个视觉描述符,其表示形成视觉设计的图案或其他视觉细节(例如,徽标或图片)。在一些情况下,物体结构描述可以包括描述物体或物体类型的大小或与物体或物体类型相关联的大小(例如,描述诸如长度或宽度的尺寸)的值,或描述物体或物体类型的形状或与物体或物体类型相关联的形状的值,和/或可能包括描述物体或物体类型的结构的计算机辅助设计(CAD)文件。在一些情况下,物体模板1126可以被用于执行物体识别,这可以涉及确定图1A-1D的相机1200和/或机器人1300的环境中的物体是否与物体模板1126中的任意一个匹配,其中匹配可以指示该物体与由匹配模板描述的物体类型相关联。物体模板1126可以例如已经作为物体注册过程的一部分被生成,和/或可以已经被从诸如服务器的源接收(例如下载)。第16/991,466号美国专利申请(Atty Dkt.No.MJ0054-US/0077-0012US1)和第16/991,510号美国专利申请(Atty Dkt.No.MJ0051-US/0077-0011US1)中更详细地讨论了模板,这些美国申请的全部内容通过引用并入本文中。
图3A和3B示出了可以执行用于机器人交互的运动规划的示例环境。更具体地,环境包括计算系统1100、相机3200(其可以是图1A-1D的相机1200的实施例)和机器人3300(其可以是机器人1300的实施例)。在此实施例中,机器人3300可以包括机器人臂3400和末端执行器装置3500。在实施例中,末端执行器装置3500可以形成机器人臂3400的一端,或者被附接到机器人臂3400的一端。
在图3A的示例中,机器人3300可以经由机器人臂3400操作,以将末端执行器装置3500移向一个或多个物体(诸如托盘上的板条箱或其他容器的堆叠)以与一个或多个物体接合,以及将该一个或多个物体从托盘移动到另一位置(例如,作为卸垛操作的一部分)。更具体地,图3A和图3B描绘了具有物体堆叠3710(或更具体地,板条箱或其他容器的堆叠)的环境。在一些情况下,如图3B所示,这些容器中的一些或所有容器可以在容器中持有较小的物体(也可以被称为容器中的物品)。图3A和3B中的堆叠3710可以至少包括物体3711-3719和3731-3733,而末端执行器装置3500可以被用于拾取堆叠3710中的物体之一,诸如物体3711(例如,拾取堆叠中的容器),并且将物体从堆叠3710移到目的地位置,诸如传送器3800上的位置。为拾取物体3711,可以移动和倾斜末端执行器装置3500以与物体3711对准。末端执行器装置3500的移动可以涉及机器人臂3400的移动,诸如在其中机器人臂3400的一个或多个连杆相对于彼此旋转的移动。在图3A和3B所示的环境中,托盘上的物体可以在其外侧表面中的至少一个外侧表面上具有3D图案。例如,3D图案可以是从外侧表面突出的脊的图案(也被称为脊图案)。作为示例,图3A描绘了物体3711的外侧表面上的脊图案3711A。在一些情况下,托盘上的物体可具有视觉细节,该视觉细节在物体的外侧表面上形成2D图案,诸如徽标或其他视觉图案。
图4A和图4B描绘了末端执行器装置3500A,其可以是末端执行器装置3500的实施例。在此实施例中,末端执行器装置3500A包括安装结构3502、相机3200、第一抓持器构件3510(也被称为第一抓持构件)、第二抓持器构件3520和第三抓持器构件3530。图4C示出了末端执行器装置3500B,其类似于末端执行器装置3500A,但是不具有第三抓持器构件3530。图4A至图4C中的相机3200可以被安装在安装结构3502(例如,安装板)的第一表面3503(例如,顶表面)上或以其他方式附接到该表面,而抓持器构件3510-3530可以被安装在安装结构3502(例如,安装板)的第二且相对的表面3504(例如,底表面)上或以其他方式附接到该表面。在一些情况下,末端执行器装置3500/3500A可以在安装结构3502的第一表面(例如,顶表面)处安装在机器人臂3400上或以其他方式耦合到机器人臂3400。例如,第一表面3503可以具有布置在其上的安装支架,其中该安装支架可以操作为末端执行器装置和机器人臂1400/3400之间的耦合点。在这些情况下,末端执行器装置的第二表面(例如,底表面)可以被定向为面向机器人3300的环境中的一个或多个板条箱或其他容器。
在实施例中,第一抓持器构件3510、第二抓持器构件3520和第三抓持器构件3530中的一些或全部可以各自包括抓持器主体,该抓持器主体由相应的抓持器手指组件形成或被附接到相应的抓持器手指组件。例如,图4D描绘了抓持器构件3530A,其可以是抓持器构件3530的实施例,其包括抓持器手指组件3531,该抓持器手指组件3531是抓持器主体3533的一部分或被附接到抓持器主体3533。抓持器手指组件3531可以被用于通过夹持或夹住物体的一部分(诸如形成容器3701的外边缘的唇缘3701A的角)来抓持物体(例如,容器)。在图4D的示例中,抓持器手指组件3531可以包括两个部件,也可称为抓持器手指3531A、3531B,它们可以相对彼此是可移动的(例如,抓持器手指3531A和3531B两者都可以彼此朝着或远离对方移动,或者抓持器手指3531A/3531B之一可以保持静止,而另一个抓持器手指3531B/3531A移动)。例如,两个抓持器手指3531A、3531B可形成卡盘或夹具,其中两个抓持器手指可彼此朝着对方移动以抓住物体的一部分或收紧对物体的抓持,并且其中两个抓持器手指3531A、3531B可彼此远离对方移动以松开抓持或释放物体。在一些情况下,两个抓持器手指之一(例如3531A)可以是上抓持器手指,而两个抓持器手指中的另一个(例如3531B)可以是下抓持器手指。在图4D的示例中,抓持器构件3530A还可以包括背板3532,其中抓持器主体3533可以是相对于背板3532可移动的。该相对移动可以沿着朝向图4A和图4B的安装结构3502的中心的向内方向,或者沿向远离安装结构3502的中心的向外方向。抓持器构件3530A还可以包括传感器3517,传感器3517被配置为检测抓持器手指组件3531和抓持器主体3533的向内运动。在实施例中,第一抓持器构件3510和第二抓持器构件3520可以各自具有与图4D所描绘的相同或相似的抓持器手指组件。这样的抓持器手指组件可以各自至少包括用于夹持物体的一部分的一对抓持器手指。当末端执行器装置3500正被用于抓住物体的一部分(诸如容器唇缘的一部分)时,抓持器构件(例如3510)的一对抓持器手指中的至少一个可在一个方向上(例如,向上方向)朝向另一抓持器手指移动,使得两个抓持器手指与物体的该部分接触,并且更具体地,夹住物体的该部分。当末端执行器装置3500要释放容器时,该至少一个抓持器手指可沿相反的方向(例如,向下方向)远离另一抓持器手指移动,使得该对抓持器手指释放物体的该部分。
在图4A和图4B的实施例中,第一抓持器构件3510和第二抓持器构件3520各自可以是可移动的抓持器构件,而第三抓持器构件3530可以是固定抓持器构件。更具体地,第一抓持器构件3510可以沿着安装结构3502的第一边缘3501A是可移动的(例如,可滑动的),而第二抓持器构件3520可以沿着安装结构3502的垂直于第一边缘3501A的第二边缘3501B是可移动的。更具体地,第一抓持器构件3510可以沿着第一轴(诸如图4B中的Y'轴)是可移动的,该轴可以是第一导轨3540的纵轴。第二抓持器3520可以沿着第二轴(诸如图4B中的X'轴)是可移动的,该轴可以是第二导轨3542的纵轴。第一轴可以与第一边缘3501A平行,而第二轴可以与第二边缘3501B平行,使得第一导轨3540可以垂直于第二导轨3542。在此示例中,第三抓持器构件3530可以被布置在安装结构3502的角处,其中该角可以在图4B中的第一轴与第二轴相交的位置处或附近。抓持器构件3510-3530可以各自能够抓住或以其他方式与物体的相应部分(或更具体地,其物体结构的相应部分)接合,如下面更详细地讨论。在一些情况下,第一抓持器构件3510操作以接合物体的一侧(例如,左侧),而第二抓持器构件3520操作以接合物体的另一侧(例如,前侧),并且第三抓持器构件3530操作以接合物体的角。例如,第一抓持器构件3510和第二抓持器构件3520可分别与物体的两个垂直侧接合,而第三抓持器构件3530可以与位于这两个垂直侧之间的物体的角接合。
如上所述,第一抓持器构件3510可以经由第一导轨3540相对于安装结构3502的第二表面(例如,底表面)是可移动的,而第二抓持器构件3520可以经由第二导轨3542相对于安装结构3502的第二表面是可移动的。第一导轨3540可以沿着Y'轴延伸,而第二导轨3542可以沿着垂直于Y'轴的X'轴延伸。在一些情况下,第一导轨3540可以从靠近安装结构3502的第一角(例如,第三抓持器构件3530所位于的角)的位置延伸到靠近安装结构3502的第二角的另一位置。此外,在这样的情况下,第二导轨3542可以从靠近安装结构3502的第一角的位置延伸到靠近安装结构3502的第三角的位置。第一导轨3540和第二导轨3542可以允许末端执行器装置3500A适配一定范围的不同物体大小。例如,沿着第一导轨3540滑动第一抓持器构件3510并且沿着第二导轨3542滑动第二抓持器构件3520可以改变第一抓持器构件3510和第二抓持器构件3520抓住物体的位置(即,改变末端执行器装置3500A抓住物体的抓持点)。
更具体地,滑动第一抓持器构件3510允许末端执行器装置3500A适配各种物体的第一尺寸(例如,宽度尺寸)的不同值,而沿着第二导轨3550滑动第二抓持器构件3520可以允许末端执行器装置3500A适配各种物体的第二尺寸(例如,长度尺寸)的不同值。例如,末端执行器装置3500A可以具有可变的抓持大小(也被称为可变跨度),其可以描述由第一抓持器构件3510和第二抓持器构件3520所处的位置限定的区域的大小。该区域可以表示抓持器构件3510、3520的范围或覆盖范围(reach or coverage)。更具体地,该区域可以具有在第一抓持器构件3510的位置处的第一角,在第三抓持器构件3520的位置处的第二角,以及在第一轴(例如,Y'轴)与第二轴(例如,X'轴)相交的位置(也被称为相交位置)处的第三角。增加该区域的大小并且从而增加末端执行器装置3500A的抓持大小,可以增加末端执行器装置3500A能够抓住的物体大小。抓持大小可以随着第一抓持器构件3510或第二抓持器构件3510移动远离相交位置而增加。更具体地,末端执行器装置3500A的抓持大小可以至少由第一尺寸和第二尺寸限定。抓持大小的第一尺寸可以由从相交位置到第一抓持器构件的位置的距离来限定,而抓持大小的第二尺寸可以由从相交位置到第二抓持器构件的位置的距离来限定。在此示例中,当第一抓持器构件3510沿着第一导轨3540移动远离相交位置时,抓持大小的第一尺寸的值增加,而当第二抓持器构件沿着第二导轨3542移动远离相交位置时,抓持大小的第二尺寸的值增加。
在实施例中,第一导轨3540和第二导轨3542可以具有相同的大小。在另一实施例中,第一导轨3540和第二导轨3542可以具有不同的大小。例如,如图4B所示,第二导轨3542可以比第一导轨3540更长。如上所述,末端执行器装置3500A的抓持大小可以具有由第一抓持器构件3510和X′轴与Y′轴相交处的交点之间的距离限定的第一尺寸,并且可以具有由第二抓持器构件3520与该交点之间的距离限定的第二尺寸。在此实施例中,第二导轨3542的较长大小可以允许第二抓持器构件3520与交点之间的最大距离大于第一抓持器构件3510与交点之间的最大距离。即,第二抓持器构件3520与交点之间的最大距离基于第二导轨3542的大小,而第一抓持器构件3510与交点之间的最大距离基于第一导轨3540的大小。因此,第二导轨3542的较长大小可使末端执行器装置3500A的抓持器大小的第二尺寸的最大值大于抓持器大小的第一尺寸的最大值。这样的实施例可以允许末端执行器装置3500A适配具有与第二尺寸(例如,长度尺寸)的值不同的第一尺寸(例如,宽度尺寸)的物体。例如,如果末端执行器装置3500A被用于抓住具有第一边并且具有比第一边长的第二边的矩形物体,则末端执行器装置3500A可以被定向为使得第二导轨3542与矩形物体的第二边对准。这是因为第二导轨3542比第一导轨3540长,使得第二抓持器构件3520(相对于以上讨论的交点)能够滑动的最大距离大于第一抓持器构件3510(相对于该交点)能够滑动的最大距离。结果,第二导轨3542和第二抓持器构件3520可以更好地适配矩形物体的较长的第二边,而第一导轨3540和第一抓持器构件3510可以被用于适配矩形的较短的第一边。
在实施例中,计算系统1100和/或机器人1300/3300可以被配置为控制第一抓持器构件3510沿着第一导轨3540移动的量和/或第二抓持器构件3520沿着第二导轨3542移动的量。例如,如下面更详细地讨论的,计算系统1100和/或机器人1300/3300可以被配置为控制用于引起第一抓持器构件3510的移动和第二抓持器构件3520的移动一个或多个致动器和/或控制用于停止该移动的制动机构。可以经由例如一个或多个抓持器构件放置命令来控制一个或多个致动器,计算系统1100可以被配置为生成该命令并(例如,经由通信接口)将该命令输出到机器人1300/3300。在一些情况下,计算系统1100和/或机器人1300/3300可以基于要由末端执行器装置3500A抓住的物体的物体大小(例如,基于长度尺寸和宽度尺寸的相应值)来控制第一抓持器构件3510和第二抓持器构件3520的各自的移动量。例如,可以控制第一抓持器构件3510沿着第一导轨3540的移动量,使得末端执行器装置3500A的抓持大小的第一尺寸具有至少为物体的第一尺寸的值的预定义百分比的值(例如,抓持大小的第一尺寸至少是物体的宽度尺寸的值的50%,或者等于该宽度尺寸的值)。类似地,可以以使得末端执行器装置3500A的抓持大小的第二尺寸具有至少为物体的第二尺寸的值的预定义百分比的值(例如,抓持大小的第二尺寸至少是物体的长度尺寸的值的50%,或者等于该长度尺寸的值)的方式来控制第二抓持器构件3520沿着第二导轨3542的移动量。在这样的示例中,安装结构3502的角(例如,第三抓持器构件3530所位于的角)可以与物体的角对准。在此示例中,物体的角可以被第三抓持器构件3530抓住,而第一抓持器构件3510和第二抓持器构件3520的放置可以使抓持器构件3510、3520抓住物体的抓持点距该物体的角(在该角处处物体由第三抓持器构件3530抓持)足够远,使得抓持器构件3510、3520和/或3530对物体的整体抓持是平衡且稳定的。
在一些情况下,第一抓持器构件3510和第二抓持器构件3520可以被配置为通过一个或多个致动器(诸如,气动致动器、电磁致动器、机电致动器,任何其他致动器或其组合)分别沿着第一导轨3540和第二导轨3542移动。该一个或多个致动器可以是末端执行器装置3500A的一部分,或者更一般地可以是机器人1300/3300或图1A的系统1000的一部分。该一个或多个致动器可以被配置为生成第一力,该第一力在沿着Y′轴的第一方向上或在沿着Y′轴的相反的第二方向上致动第一抓持器构件3510,以引起第一抓持器构件3510在沿着Y′轴的第一方向或第二方向上的移动。沿着Y′轴的第一方向可以使第一抓持器构件3510朝向第三抓持器构件3530移动,而沿着Y′轴的第二方向可以使第一抓持器构件3510远离第三抓持器构件3530移动。该一个或多个致动器可以被配置为生成第二力,该第二力在沿着X'轴的第一方向上或在沿着X'轴的相反的第二方向上致动第二抓持器构件3520,以引起第二抓持器构件3520在沿着X′轴的第一方向上的运动或者第二抓持器构件3520在沿着X′轴的第二方向上的运动。沿着X'轴的第一方向可以使第二抓持器构件3520朝向第三抓持器构件3530移动,而沿着X'轴的第二方向可以使第二抓持器构件3520远离第三抓持器构件3530移动。
如上所述,在实施例中,一个或多个致动器可以包括任何类型的致动器,诸如气动致动器、电磁致动器或机电致动器。该一个或多个致动器可以是末端执行器装置3500的一部分,或者可以被认为与末端执行器装置3500分开。例如,一个或多个致动器可以包括被安装在安装结构3502上并且是末端执行器装置3500的一部分的多个电磁致动器(例如,电动机或螺线管)。在另一示例中,一个或多个致动器可以包括被配置为在气动或液压管内部生成气压或液压的气动致动器(例如,泵),并且末端执行器装置3500可以包括被配置为耦合到或以其他方式接收气动或液压管的端口。该端口可以将由气动致动器生成的气压或液压引导至第一抓持器构件3510和/或第二抓持器构件3520。气动或液压可以推动第一抓持器构件3510的抓持器主体以引起其沿着第一导轨3540的移动,和/或可以推动第二抓持器构件3530的抓持器主体以引起其沿着第二导轨3542的移动。
在实施例中,一个或多个致动器可以被配置为引起末端执行器装置3500A中的其他移动。例如,一个或多个致动器可以被配置为引起以上讨论的每个抓持器手指组件内的相对移动,或更具体地,引起抓持器手指组件的第一抓持器手指和第二抓持器手指之间的相对移动。
在一些情况下,一个或多个致动器可以被配置为使第一抓持器构件3510的抓持器手指组件和/或抓持器主体(例如,包括第一抓持器构件3510的抓持器手指的抓持器主体的一部分)沿着垂直于第一导轨3540的轴延伸。该移动可以相对于安装板3502在向内或向外的方向上进行,并且可以与安装板3502的上表面或底表面平行。类似地,一个或多个致动器可以被配置为使第二抓持器构件3520的抓持器手指组件和/或抓持器主体(例如,包括第二抓持器构件3520的抓持器手指的抓持器主体的一部分)沿着垂直于第二导轨3542的轴延伸。该移动也可以相对于安装板3502在向内方向或向外方向上进行,并且可以与安装板3502的上表面或底表面平行。例如,如果末端执行器装置3500A被用于抓住具有形成或围绕容器的边缘的容器唇缘的容器,则以上讨论的移动可能发生在第一抓持器构件3510已经沿着第一导轨3540被定位在特定位置之后,并且可能使第一抓持器构件3510的抓持器手指组件朝向容器唇缘的第一部分被移动得更近,使得容器唇缘的第一部分位于抓持器手指组件的一对抓持器手指之间。这样的移动允许抓持器手指夹持容器唇缘的第一部分。以上讨论的移动还可以允许第二抓持器构件3520的抓持器手指组件朝向容器唇缘的第二部分被移动得更近,使得其抓持器手指可以夹持容器唇缘的第二部分。另外,一个或多个致动器可以被配置为引起第三抓持器构件3530的抓持器指组件3531A朝向容器唇缘的角的移动,如图4D所示。该移动可以沿着相对于图4B的X’轴和Y’轴倾斜的轴线(例如,相对于X’轴成45度)。
在实施例中,末端执行器装置3500A可以被配置为与不同的相应大小的物体接合并移动这些物体。为了实现这一点,可以通过计算系统1100和/或通过机器人3300来控制第一抓持器构件3510沿着第一导轨3540的移动和第二抓持器构件3520沿着第二导轨3542的移动。例如,第一抓持器构件3510可以能够在图4B中所示的末端位置E1y’和E2y’之间移动,并且第二抓持器构件3520可以能够在末端位置E1x’和E2x’之间移动。第一抓持器构件3510还可以能够移动到两个末端位置E1y’和E2y’之间的中间位置(例如,E3y’)。类似地,第二抓持器构件3510还可以能够移动到末端位置E1x’和E2x’之间的中间位置(例如,E3x’)。因此,第一抓持器构件3510和第二抓持器构件3520可以被移动到不同的位置配置,从而使得末端执行器装置3500能够与具有不同大小的物体接合。
在实施例中,计算系统1100和/或机器人1300/3300可以被配置为通过控制一个或多个致动器或停止机构(例如,制动机构)来控制第一抓持器构件3510沿着第一导轨3540的移动以及第二抓持器构件3520沿着第二导轨3542的移动。例如,计算系统1100和/或机器人1300/3300可以被配置为控制一个或多个致动器是否被激活,一个或多个致动器中的哪一个致动器被激活,一个或多个致动器被激活的水平(例如,功率水平)和/或一个或多个致动器被激活的持续时间。例如,如果计算系统1100和/或机器人1300/3300已经确定第一抓持器构件3510或第二抓持器构件3520将被定位的位置(例如,E3x’或E3y’),则计算系统1100和/或机器人1300/3300可以激活致动器以使第一抓持器构件3510或第二抓持器构件3520朝向所确定的位置移动,并且用使第一抓持器构件或第二抓持器构件3520在所确定位置停止的定时来停用致动器。在一些情况下,如果末端执行器装置3500A包括停止机构,则计算系统1100和/或机器人1300/3300可以被配置为在第一抓持器构件或第二抓持器构件3520接近确定的位置时激活停止机构,以使第一抓持器构件或第二抓持器构件3520在所确定的位置停止。
在实施例中,末端执行器装置3500A可以包括一个或多个传感器,该一个或多个传感器用于测量抓持器构件3510、3520的移动和/或检测要通过末端执行器装置3500A被接合(例如,抓住)的容器或其他物体的存在(例如,接近度)。例如,一个或多个传感器可以包括被配置为测量或以其他方式确定第一抓持器构件3510沿着第一导轨3540的位置的第一抓持器主体传感器(例如,光学传感器、机械传感器、机电传感器),以及被配置为测量或以其他方式确定第二抓持器构件3520沿着第二导轨3542的位置的第二抓持器主体传感器。
在一些情况下,一个或多个传感器可以包括第一抓持器构件接近度传感器3570、第二抓持器构件接近度传感器3572和第三抓持器构件接近度传感器3574,如图4B所示。第一抓持器构件接近度传感器3570可以被布置在第一抓持器构件3510处和/或是其一部分,而第二抓持器构件接近度传感器3572可以被布置在第二抓持器构件3520处和/或是其一部分,并且第三抓持器构件接近度传感器3574可以布置在第三抓持器构件3530处和/或是其一部分。抓持器构件接近度传感器3570、3572、3574操作以检测要由末端执行器装置3500A抓住或以其他方式接合的容器或其他物体的接近度。例如,为了与诸如图3A的物体3711的物体接合并拾取该物体,计算系统1100和/或机器人3300可以经由机器人臂3400使末端执行器装置3500朝向物体3711移动。抓持器主体接近度传感器3570、3572、3574操作以检测抓持器构件3510、3520和3530何时在距物体3711的限定的(例如,预定的)阈值距离内,和/或抓持器构件3510、3520和3530何时与物体3711对准。在一些情况下,如果末端执行器装置3500A通过朝着物体3711被降下而接近物体3711,则抓持器构件接近度传感器3570、3572、3574可以检测到末端执行器装置3500A的抓持器构件3510、3520、3530何时已经被充分降下,使得它们与要被抓住的物体3711的一部分(例如,容器唇缘)处于相同的高度。抓持器构件接近度传感器3570、3572和3574可以各自包括机械传感器、机电传感器、光学传感器或被配置为检测传感器与物体之间的接近度的任何其他类型的传感器。
在一些情况下,一个或多个传感器可以包括第一抓持器手指传感器、第二抓持器手指传感器和第三抓持器手指传感器。在这些情况下,第一抓持器构件3510、第二抓持器构件3520和第三抓持器构件3530中的每一个可以包括具有至少一对抓持器手指的相应的抓持器手指组件。第一抓持器手指传感器、第二抓持器手指传感器和第三抓持器手指传感器可以各自被配置为测量或以其他方式确定相应的抓持器手指组件的相应的抓持器手指对的相对位置,和/或检测在相应的抓持器手指对之间是否存在物体或其一部分。抓持器手指传感器可以各自被用于控制相应的抓持器手指对之间的相对移动。例如,如果特定的抓持器手指传感器指示容器唇缘被布置在正由抓持器手指传感器监视的相应的抓持器手指对之间,则计算系统1100和/或机器人1300/3300可以控制以上讨论的一个或多个致动器以使该对抓持器手指朝向彼此移动,以夹持物体的一部分。
如上所述,本申请的一个方面涉及执行运动规划,该运动规划可以被用于促进机器人交互,诸如机器人将物体从当前位置移动到目的地位置的交互。图5描绘了用于执行运动规划的示例性方法5000的流程图。方法5000可以由例如图2A-2D或图3A的计算系统1100执行,或更具体地由计算系统1100的至少一个处理电路1110执行。在一些情况下,至少一个处理电路1100可以通过执行存储在非暂时性计算机可读介质(诸如非暂时性计算机可读介质1120)上的指令来执行方法5000。例如,指令可以使处理电路1110执行运动规划模块1122,这可以执行方法5000。在实施例中,可以在计算系统1100与机器人和相机(诸如图3A和图3B中的机器人3300和相机3200)或与本公开中讨论的任何其他机器人通信的环境中执行方法5000。在一些情况下,相机(例如3200)可以被安装在机器人(例如3300)的末端执行器装置(例如3500)上。在其他情况下,相机可以被安装在其他地方,和/或可以是固定的。
在实施例中,方法5000可以从步骤5002开始,或者以其他方式包括步骤5002,在该步骤中,计算系统1100接收用于表示处于或者已经处于相机的视野(也被称为相机视野)中的物体的结构(也被称为物体结构)的第一图像信息。例如,图6A描绘其中物体3721-3726的堆叠3720被布置在相机3200的相机视野3202内的情况。物体3721-3726中的每一个可以是例如盒子、板条箱或其他容器。在图6A的示例中,物体3721-3726可以被布置在托盘3728上。在实施例中,托盘3728可以被用于堆叠可以具有多种多样的大小(例如多种长度、宽度和高度值)的容器或其他物体,并且可以具有多种多样的堆叠配置。
在实施例中,由计算系统1100接收的第一图像信息可以是在相机具有第一相机姿势(诸如,图3A所示的相机姿势或图6A所示的相机姿势)时由相机(例如3200)生成的。相机姿势可以是指相机(例如3200)的位置和朝向。在一些情况下,相机姿势可能影响相机(例如3200)的视角或视点。例如,图6A中描绘的第一相机姿势可以涉及相机3200具有在堆叠3720正上方的位置,并且具有相机3200被指向堆叠3720的顶部(或者更具体地被指向构成堆叠3720顶部的物体3721、3722)的朝向。在一些情况下,可以执行方法5000的步骤以促进机器人与堆叠3720的各个物体(诸如物体3722)的交互。在这样的情况下,作为机器人的交互目标的特定物体可以被称为目标物体。在一些情况下,方法5000的步骤可以被执行多次或多次迭代,以便促进机器人与多个目标物体的交互。
在一些情况下,第一图像信息可以表示堆叠3720的特定视图,或更具体地,形成堆叠3720的一个或多个物体的特定视图。在图6A的示例中,第一图像信息可以表示堆叠3720的顶视图,或者更具体地,物体3721、3722的顶视图,因为第一图像信息可以是在相机3200具有图6A中所示的第一相机姿势时被生成的,在该第一相机姿势中,相机3200在物体3721、3722上方并且被指向物体3721、3722的顶端。在图6A的示例中,物体3721、3722可以各自是具有包围容器的底部内表面的一个或多个壁的板条箱或其他顶部敞开的容器。该一个或多个壁可以在容器的顶端处形成边框(rim)。在这样的示例中,物体3721/3722的顶视图可以包括物体3721/3722的边框的表面(也被称为边框表面)的视图,并且包括物体3721/3722的底部内表面的视图。在另一示例中,物体3721/3722的底部内表面不由第一图像信息表示,或者仅部分地由第一图像信息表示。当例如物体3721/3722是部分或完全填充有被布置或堆叠在物体3721/3722的底部内表面上的物品的容器时,这样的示例可能发生,诸如图3B中的一些容器所示的情况。在这样的情况下,第一图像信息可以描述或以其他方式表示布置在容器内的物品,而这些物品可能部分或完全遮挡或遮盖容器底部内表面的视图。在另一示例中,完全封闭的盒子(诸如,带盖的容器)或其他容器可能在相机3200的相机视野(例如3202)中。在此示例中,完全封闭的容器的顶视图可以包括容器的外表面(例如,顶部外表面,也被称为顶面)的视图。
在实施例中,第一图像信息可以描述堆叠3720的外观,或更具体地,形成堆叠3720的一个或多个物体(例如3721和3722)的外观。例如,图6B提供了其中第一图像信息包括或形成2D图像6082(例如灰度或彩色图像)的示例,该2D图像6082包括描述物体3721外观的图像部分6021(例如像素区域)、描述物体3722外观的图像部分6022以及描述托盘3728外观的图像部分6028。更具体地,从图6A的相机3200的视点来看,图像6082可以描述物体3721、3722和托盘3728的外观,并且更具体地可以表示物体3721、3722的顶视图。如上所述,图像6082可以是当相机3200具有图6A中描绘的第一相机姿势时被生成的。更具体地,2D图像6082可以表示物体3721的一个或多个表面以及物体3722的一个或多个表面。例如,2D图像6082的图像部分6021可以更具体地包括表示物体3721的第一表面(例如,边框表面)的图像部分6021A和表示物体3721的第二表面(例如,底部内表面)的图像部分6021B。类似地,图像部分6022可以包括表示物体3722的第一表面(例如,边框表面)的图像部分6022A和表示物体6022的第二表面(例如,底部内表面)的图像部分6022B。在另一示例中,如果第一物体3722是填充有物品的容器,如以上讨论的,则图像部分6022或更具体地图像部分6022B可以描述布置在容器内的物品的外观。
在实施例中,第一图像信息可以描述堆叠的结构(也被称为堆叠结构)或堆叠结构的至少一部分,其中,堆叠结构可以由形成堆叠的物体3721-3726的结构来限定。更具体地,第一图像信息可以描述形成堆叠的物体的结构(也被称为物体结构),或者物体结构的至少一部分。在这样的实施例中,生成第一图像信息的相机(例如3200)可以是3D相机(也被称为空间结构感测设备)。如上所述,在步骤5002中接收的第一图像信息可以表示当第一图像信息被生成时相机的特定视点,诸如堆叠结构的顶视图。在一些情况下,第一图像信息可以包括空间结构信息,该空间结构信息也可以被称为三维(3D)信息,其描述物体如何被布置在3D空间中。例如,空间结构信息可以包括深度信息,该深度信息描述了当相机生成第一图像信息时物体或其物体结构的一个或多个部分相对于参考点(诸如相机(例如3200)所处的点)的深度。
在一些情况下,空间结构信息可以描述物体结构的一个或多个表面上的多个位置(也被称为多个点)的相应深度值。例如,图6C描绘了具有3D图像信息6084的第一图像信息,该3D图像信息6084描述了相机(例如3200)的相机视野(例如3202)中物体的表面(也被称为物体表面)(诸如图6A的物体3721、物体3722和托盘3728的物体表面)上各种位置的相应深度值。在图6C的示例中,由空间结构信息标识或以其他方式描述的各种位置可以包括在托盘3728的顶表面上的位置37281至3728n(被描绘为白色圆圈),在物体3721的第一表面(例如,边框表面)上的位置3721A1至3721An,在第一物体3721的第二表面(例如,底部内表面)上的位置3721B1至3721Bn,在物体3722的第一表面(例如,边框表面)上的位置3722A1至3722An以及在物体3722的第二表面(例如,底部内表面)上的位置3722B1至3722Bn。在另一示例中,如果物体3721/3722是填充有物品的容器,如以上讨论的,则位置3721B1至3721Bn和/或位置3722B1至3722Bn可以是在容器内的一个或多个表面上的位置。在一些情况下,第一图像信息可以用可以包括像素阵列的深度图来描述相应深度值,该像素阵列对应于例如相机视野(例如3202)中一个或多个物体表面上的位置的网格。在这样的情况下,一些或所有像素可以各自包括对应于像素的相应位置的相应深度值,其中相应位置在一个或多个物体表面上。在一些情况下,第一图像信息可以通过多个3D坐标来描述相应深度值,该多个3D坐标可以描述一个或多个物体表面上的各种位置。例如,3D坐标可以描述图6C中的位置37281至3728n、位置3721A1至3721An、位置3721B1至3721Bn、位置3722A1至3722An以及位置3722B1至3722Bn。多个3D坐标可以例如形成描述物体结构的至少一部分(诸如物体3721的物体结构的顶部和/或物体3722的物体结构的顶部)的点云或点云的一部分。3D坐标可以以相机坐标系或某些其他坐标系表达。在一些情况下,特定位置的深度值可以由用于该位置的3D坐标的分量或基于该位置的3D坐标的分量表示。作为示例,如果位置的3D坐标是[XY Z]坐标,则该位置的深度值可以等于或基于该3D坐标的Z分量。
返回图5,在实施例中方法5000可以包括步骤5004,在该步骤中,计算系统1100可以基于第一图像信息来确定对相机视野(例如3202)中的物体的物体结构(诸如图6A的物体3721的物体结构或物体3722的物体结构)的第一估计。在一些情况下,对物体结构的第一估计可以包括对一个或多个物体尺寸的估计,诸如对应物体(例如3721或3722)的长度的估计值和/或对应物体的宽度的估计值。在一些情况下,对物体结构的第一估计可以包括对应物体的形状(也被称为物体形状)的估计。例如,对物体结构的第一估计可以指示物体结构具有矩形形状。在一些情况下,对物体结构的第一估计可以包括点云,该点云描述形成物体结构的第一外表面(例如,顶部外表面),或更具体地描述第一外表面上的位置。在一些实现中,点云稍后可以被更新以合并表示不同视点的物体结构的图像信息(诸如第一图像信息和第二图像信息)的不同集合,这在下面关于步骤5012和5014更详细地讨论。在这样的实现中,点云可以被称为全局点云。在一些情况下,点云可以具体表示目标物体(诸如物体3722)的物体结构。在一些情况下,如果目标物体是堆叠(诸如堆叠3720)的一部分,则点云可以表示该堆叠的堆叠结构。在这样的情况下,点云的一部分可以具体表示目标物体(例如3722)的物体结构。
在一些情况下,可以直接基于第一图像信息来确定对物体结构的第一估计(例如,物体尺寸或物体形状的估计值)。例如,如果第一图像信息包括图6C中的物体3722的边框表面上的位置3722A1至3722An的3D坐标,则计算系统1100可以通过使用这些3D坐标来确定对物体结构的第一估计。更具体地,如果对物体结构的第一估计是点云或包括点云,则计算系统1100可以通过将这些3D坐标包括在点云中来确定对物体结构的第一估计。例如,计算系统1100可以将3D坐标插入或添加到点云中,或更具体地说,插入或添加到表示点云的文件或其他数据结构中。来自第一图像信息的3D坐标可以例如形成表示物体结构的一部分(例如,形成物体结构的顶部的边框表面)或特定视点的物体结构(例如,顶视图)的部分点云。在此示例中,计算系统1100可以在步骤5014中将来自该部分点云的信息合并到全局点云中。在步骤5004中,全局点云可以仅包括或主要包括来自以上讨论的部分点云的信息,该信息表示与第一相机姿势相关联的视点。如下面所讨论的,全局点云最终可以合并表示一个或多个附加视点(例如,透视视点)的附加图像信息,相对于与第一相机姿势相关联的部分点云,这可以允许全局点云变为对物体(例如3722)的物体结构的更完整表示。在一些实现中,计算系统1100可以确定部分点云中的3D坐标是否使用与全局点云的3D坐标所使用的坐标系不同的坐标系。如果是这样,则计算系统1100可以变换部分点云中的3D坐标,使得它们相对于全局点云的坐标系被表达,并且可以将变换后的坐标添加到全局点云。
在一些情况下,如果第一图像信息包括以上讨论的3D坐标,并且如果对物体结构的第一估计包括物体结构的物体长度的估计值和物体宽度的估计值,则计算系统1100可以被配置为直接基于一些3D坐标之间的差来确定估计值。例如,计算系统1100可以基于图6C中的位置3721A1的3D坐标[X3721A1 Y3721A1 Z3721A1]和位置3721An的3D坐标[X3721An Y3721AnZ3721An]之间的差来确定估计值。更具体地,计算系统1100可以确定物体3721的物体长度的估计值等于或基于Y3721An-Y3721A1(其中,Y轴可以对应于长度尺寸)的绝对值,并且可以确定物体宽度的估计值等于或基于X3721An-X3721A1(其中,X轴可以对应于宽度尺寸)。类似地,计算系统1100可以确定物体3722的物体长度的估计值等于或基于Y3722An-Y3722A1,并且可以确定物体3722的物体宽度的估计值等于或基于X3722An-X3722A1
在实施例中,第一图像信息可以在相机具有第一相机姿势时由相机(例如3200)生成,在该第一相机姿势中,相机被直接指向物体结构(诸如物体3721/3722的物体结构)的第一外表面。第一外表面(例如,顶部外表面)因此可以被包含在相机(例如,3200)的相机视野(例如,图6A的3202)内,这可以是指相机具有至第一外表面或其至少一部分的视线。因此,第一图像信息可以描述物体结构的第一外表面(例如,顶部外表面)。在一些情况下,当相机处于第一相机姿势时,它可能缺少到物体结构的其他外表面(诸如物体3721/3722的物体结构的所有外部侧表面和底部外表面)中的一些或所有外表面的视线。在这样的情况下,第一图像信息可能没有关于这样的外表面(例如,外部侧表面和底部外表面,也被称为侧面和底面)的描述。例如,在图6B和6C中示出的第一图像信息可以描述物体3721/3722的物体结构的顶部外表面,但是可能几乎没有关于物体3721/3722的物体结构的外部侧表面的描述。作为另一示例,如果对物体结构的第一估计包括一个或多个物体尺寸(诸如物体长度和物体宽度)的估计值,则第一估计可以省略一个或多个物体尺寸(诸如物体高度)的估计值。在此示例中,物体高度可能从对物体结构的第一估计中被省略,因为第一估计所基于的第一图像信息可以表示物体结构(例如物体3721、3722的物体结构)的顶视图。在这样的示例中,顶视图可能缺少允许计算系统1100直接确定物体高度的信息。如果在步骤5004中对物体结构的第一估计包括点云(或更具体地以上讨论的全局点云),则在步骤5004中全局点云可以包括表示物体(例如3721/3722)的物体结构的顶部的3D坐标,但可能缺少表示物体结构底部和/或侧部的3D坐标,这是因为当相机生成第一图像信息时物体结构的这些部分可能不在相机(例如3200)的视线内。
在一些情况下,计算系统1100可以基于物体结构的属性(诸如物体高度或其他物体尺寸)的限定的最大值来确定对物体结构的第一估计。在此示例中,计算系统1100可以使用所限定的最大值来对可能不由第一图像信息完全描述或表示的物体尺寸或其他属性(如果其被描述的话)进行初始估计。例如,如果第一图像信息基于物体结构的顶视图并且未描述物体结构的物体高度,则计算系统1100可以确定物体高度的初始估计等于或基于该限定的最大物体高度。计算系统1100可以将对物体高度或其他属性的初始估计用作对物体结构的第一估计或第一估计的一部分。限定的最大物体高度或某个其他限定的最大值可以例如被手动提供给计算系统1100以指示计算系统1100或机器人(例如3300)可能遇到的最大物体尺寸,和/或可以通过物体注册过程被确定,在该过程中计算系统1100确定并存储了描述先前遇到的物体的物体结构的信息。
在一些情况下,确定对物体的物体结构的第一估计可以涉及确定对应于由第一图像信息表示的物体(例如3722)的物体类型。物体类型可以是指物体(例如3722)或一类物体的特定物体设计,诸如视觉设计和/或物理设计。例如,如果以上讨论的物体是容器,则物体类型可以是指容器类型,并且可以是指特定的容器设计,其可以包括容器或一类容器的特定视觉设计和/或物理设计。所确定的物体类型可以与特定的物体结构相关联,并且因此可以被用于确定该对物体结构的第一估计。更具体地,在一些实现中,计算系统1100可以存储或以其他方式访问描述各种相应物体类型的模板(例如1126)。如以上讨论的,模板可以包括描述物体类型(或更具体地,描述与该物体类型相关联的物体设计)的视觉描述信息和/或物体结构描述。模板中的视觉描述信息可以描述定义与物体类型相关联的外观的视觉设计,并且模板中的物体结构描述可以描述定义与物体类型相关联的结构的物理设计。在一些情况下,物体结构描述可以描述与物体类型相关联的物理设计的3D结构。例如,物体结构描述可以分别描述用于物理设计的物体长度、物体宽度和物体高度的值的组合,和/或可以包括描述轮廓、形状和/或物理设计的任何其他方面的CAD模型。
在一些实例中,计算系统1100可以通过将第一图像信息与以上讨论的各种模板进行比较以确定第一图像信息是否与各种模板中的任一个匹配,从而确定对应于物体的物体类型。如果第一图像信息包括或形成表示物体(例如3722)的外观的2D图像,则计算系统1100可以将该2D图像或其一部分(例如,图6B中的图像部分6021/6022)与模板的视觉描述信息进行比较。在一些情况下,如果第一图像信息包括描述物体结构(例如,描述物体长度和物体宽度)的一部分的3D图像信息,则计算系统1100可以将该3D图像信息或其他描述与模板的物体结构描述(也被称为结构描述信息)进行比较。
在一些情况下,如果步骤5004涉及确定由第一图像信息或其一部分表示的物体的物体类型,则在此步骤中确定的物体类型可以是对物体类型的初始估计。更具体地,如果第一图像信息缺少对物体结构的某些部分(诸如其外部侧表面)的描述,则使用第一图像信息来执行模板匹配可能导致仅具有中等或低水平的置信度的结果。在一些情况下,第一图像信息可能匹配多个模板,特别是如果那些模板具有共享其相应的物理设计的特定部分(例如,顶部)的相似性的视觉描述信息或物体结构描述。如下面关于步骤5012和5014更详细地讨论的,计算系统1100可以使用第二图像信息来执行另一模板匹配操作,这可以更成功和/或导致具有更高水平的置信度的结果。
在实施例中,计算系统1100可以被配置为基于对物体结构的第一估计来确定运动规划。在一些情况下,运动规划可以是在步骤5004之后立即或不久确定的初始运动规划。在这样的情况下,计算系统1100还可以在步骤5016中生成作为更新后的运动规划的运动规划,如下面更详细地讨论的。在一些情况下,方法5000可以省略基于对物体结构的第一估计对初始运动规划的确定。然而,如果这样的初始运动规划被生成,则它可能包括用于机器人(例如3300)或其一部分(例如机器人臂3400和/或末端执行器装置3500)的规划的运动,或更具体地,一组一个或多个移动。规划的运动可以被用于引起机器人(例如3300)和与在步骤5004中确定的物体结构对应的物体(例如3722)之间的交互。在这样的示例中,移动命令可以被称为物体交互移动命令。交互可以包括例如机器人(例如3300)的末端执行器装置(例如3500)拾取物体并将物体移动到目的地位置。在一些情况下,规划的运动可以描述末端执行器装置(例如3500)的期望运动。例如,规划的运动可以描述末端执行器装置(例如3500)要遵循的轨迹。在一些实现中,规划的运动可以更具体地描述机器人臂(例如3400)的各种组件的运动,诸如连接机器人臂的连杆的各种关节的运动,或者被配置为致动这些连杆的各种电动机或其他致动器的运动。
在一些情况下,如果运动规划包括末端执行器装置(例如3500)或其他部件要遵循的轨迹,则计算系统1100可以确定该轨迹的终点。终点可以指定例如在其处机器人(例如3500)或其部件(例如末端执行器装置3500)停止移动并结束其与特定物体(例如3722)的交互的位置(或更具体地,姿势)。结束交互可以涉及,例如,从末端执行器装置(例如3500)的抓持中释放物体。在一些实现中,计算系统1100可以基于物体的物体高度来确定轨迹的终点,其中物体高度可以已经从对物体结构的第一估计中确定。
更具体地,计算系统1100可以基于物体高度的估计值来确定最终末端执行器高度,并且基于最终末端执行器高度(也被称为所确定的最终末端执行器高度或规划的最终末端执行器高度)来确定轨迹的终点。所确定的最终末端执行器高度可以是指当末端执行器装置释放或以其他方式停止与物体(例如3722)的交互时末端执行器装置(例如3500)的高度。在一些情况下,可以相对于目的地位置来表达所确定的最终末端执行器高度。如果目的地位置是用于接收物体的目的地结构的一部分,则目的地位置可以是指目的地结构的位置或区域,在该位置或区域将发生物体与目的地结构之间的最早或初始接触。例如,如果目的地结构是具有一组滚轴的滚轴传送器,则目的地位置可能是一个或多个滚轴上的最高位置,因为此位置将是末端执行器装置(例如3500)将物体朝向滚轴传送器降下的轨迹期间中最先接触物体的位置。如果目的地结构是例如具有上表面或底板的传送带,则目的地位置可以是上表面或底板上的位置。最终末端执行器高度可以表示例如当物体的底部(例如底部外表面)与目的地位置接触时末端执行器装置(例如3500)被规划或可能具有的高度。更具体地,最终末端执行器高度可以表示当末端执行器装置的运动结束时末端执行器装置(例如3500)应具有的高度。因此,计算系统1100可以基于最终末端执行器高度来确定轨迹的终点。在一些情况下,计算系统1100可以确定最终末端执行器高度等于或基于物体高度的估计值,该估计值可以来自对特定物体(例如3722)的物体结构的第一估计。然而,如上所述,来自对物体结构的第一估计的物体高度的估计值可能缺乏准确性。结果,对物体结构的第一估计可能影响由计算系统1100确定的最终末端执行器高度和轨迹的可靠性。如下面更详细地讨论的,计算系统1100可以在步骤5014中确定对物体的第二估计。第二估计可以提供更大的准确性,并且可以被用于在步骤5016中确定更可靠的运动规划。
返回图5,在实施例中,方法5000可以包括步骤5006,其中计算系统1100可以标识物体结构的角,或更具体地,物体结构的外角或凸角。在一些情况下,可以基于对物体结构的第一估计或基于第一图像信息来确定物体结构的角(也称为物体角)。在一些情况下,确定物体角可能涉及确定物体角的准确或近似位置。例如,计算系统1100可以将图6C中的具有3D坐标[X3722A1 Y3722A1 Z3722A1]的位置3722A1标识为物体3722的物体角。在一些情况下,标识角可能涉及从点云中标识顶点(也被称为轮廓点),并基于顶点标识凸角。在第16/578,900号美国专利申请(MJ0037-US/0077-0006US1)中更详细地讨论了标识凸角,该美国申请的全部内容通过引用整体并入本文中。
在实施例中,如果对物体结构的第一估计描述多个物体角,则在步骤5006中计算系统1100可以从多个物体角之中进行选择。例如,可以基于图6B和图6C中描绘的第一图像信息的、对图6A的物体3722的物体结构的第一估计可以描述对应于例如位置3722A1、3722A4、3722A5和3722An的多个角。在一些实现中,计算系统1100可以基于以下各项中的至少一项来进行选择:(i)多个物体角经历的相应的遮挡量,或者(ii)末端执行器装置(例如3500)对多个物体角的可访问性的相应水平。例如,计算系统1100可以被配置为在多个物体角中选择物体结构的经历最小遮挡和/或具有最高水平的末端执行器装置可访问性的物体角作为在步骤5006中标识的角。
再次参考图5,在实施例中,方法5000可以包括步骤5008,在步骤5008中,计算系统1100可以确定第二相机姿势,诸如图7A中的相机姿势。第二相机姿势可以包括相机(例如3200)的特定位置和朝向的组合,当由相机(例如3200)采用时,该特定位置和朝向的组合使相机(例如3200)被指向在步骤5006中确定的物体结构的角。例如,图7A中描绘的第二相机姿势可以使相机3200被指向图6A的物体3722的角,其中该物体角可以对应于图6C中的位置3722A1。第二相机姿势可能使相机也被指向先前当相机处于第一相机姿势中时不在相机(例如3200)视线之内的外表面(诸如外部侧表面)。换句话说,当相机(例如3200)具有第一相机姿势时,其可以具有包含物体结构的第一外表面(例如,顶部外表面)而不包含第二外表面(例如,侧外表面)的相机视野(例如3202)。当相机移动到第二相机姿势时,相机视野可以替代地或附加地包含第二外表面。在实施例中,第二相机姿势可以为相机3200提供相对于第一相机姿势的视点或视角不同的视角或视点。更具体地,第二相机姿势可以向相机3200提供物体3722的物体结构的透视图,如下面更详细地讨论的。
返回图5,在实施例中,方法5000可以包括步骤5010,在该步骤中,计算系统1100使相机(例如3200)移动到第二相机姿势。例如,计算系统1100可以被配置为生成使机器人臂(例如3400)和/或相机(例如3200)被安装在其上的末端执行器装置(例如3500)将相机移动到第二相机姿势的一个或多个移动命令(诸如一个或多个电动机命令)。计算系统1100可以经由计算系统1100的通信接口(例如图2B的1130)向机器人(例如3300)输出可以被称为相机放置移动命令的该一个或多个移动命令。机器人(例如3300)可以被配置为在接收到该一个或多个相机放置移动命令时执行它们以使相机(例如3200)被移动到第二相机姿势。
返回图5,在实施例中,方法5000可以包括步骤5012,在该步骤中,计算系统1100可以接收第二图像信息。在此示例中,第二图像信息的至少一部分表示与步骤5006和5008的物体(诸如图7A中的物体3722)和物体角对应的物体结构。第二图像信息可以是在相机(例如3200)具有图7A所示的第二相机姿势时由相机(例如3200)生成的。第二图像信息可以包括描述物体(例如3722)的外观的2D图像,和/或描述物体的物体结构的3D图像信息。在一些情况下,第二图像信息可以描述由物体结构形成的堆叠结构。在这样的情况下,物体结构可以由第二图像信息的一部分来表示。例如,图7B示出了第二图像信息包括2D图像7082的实施例,该2D图像7082描述物体3722的外观,或更一般地,描述包括物体3722的堆叠3720的外观。另外,图7C描绘了第二图像信息包括3D图像信息7084的实施例,该3D图像信息7084描述物体3722的物体结构,并且更一般地,描述堆叠3720的堆叠结构的物理结构。
更具体地,图7B中的2D图像7082可以表示图7A和6A的堆叠3720的各种物体3721-3726的透视图。如图7B所描绘的,图像7082可以包括用于表示在其上放置了堆叠3720的图7A的托盘3728的外观的图像部分7028(例如,像素区域),并且可以包括从透视视角来看分别表示物体3721至3726的相应外观的图像部分7021至7026。尽管图6B所示的第一图像信息可以包括表示物体的第一外表面的图像部分(例如6022),但是图7B所示的第二图像信息可以包括表示在第一图像中不可见或更一般地未表示的一个或多个附加外表面的图像部分(例如7022)。例如,第一图像信息可以表示物体3722的结构的边框表面,或更一般地顶表面(也被称为顶面),而第二图像信息可以表示未由第一图像信息表示的物体3722的结构的第一外部侧表面和第二外部侧表面(也被称为第一侧面和第二侧面)。在某些情况下,堆叠3720中的一个或多个物体,诸如物体3722,可能在外部侧表面上具有2D图案或3D图案。该2D图案可以包括例如出现在外部侧表面上的视觉图案或其他视觉细节(例如徽标或图片),而该3D图案可以包括例如从外部侧表面突出的脊或突起的图案(也被统称为脊图案),诸如图3A和3B中描绘的脊图案。2D图案或3D图案可以部分或完全在第一图像信息中被隐藏或从第一图像信息中省略,但是可以在第二图像信息中更完整地表示。在图7B的示例中,第二图像信息也可以表示顶部外表面。在一些情况下,第二图像信息中表示的一个或多个附加表面可以垂直于第一外表面,与第一外表面倾斜,或更一般地与第一外表面不平行。
在实施例中,如果第二图像信息包括3D图像信息,则该3D信息可以包括描述相机视野(例如,图7A的3202)中的一个或多个物体表面上的各种位置的多个3D坐标。例如,图7C描绘了3D图像信息7084,其包括托盘3728的表面(例如,顶表面)上的位置37281至3728n的3D坐标,以及物体3721至3726的一个或多个物体表面上的各种位置的3D坐标。该一个或多个表面可以包括例如顶部外表面(例如,边框表面)、一个或多个内部侧表面、底部内表面和/或一个或多个外部侧表面。作为示例,图7D描绘了3D信息7084的一部分,其中该部分包括物体3722的各种表面上的位置的3D坐标,包括物体3722的边框表面上的位置3722A1至3722An、物体3722的底部内表面上的位置3722B1至3722B2,物体3722的第一外部侧表面(也被称为物体外部侧表面)上的位置3722C1至位置3722Cn以及物体3722的第二外部侧表面上的位置3722D1至3722Dn。每个3D坐标可以是例如当相机处于第二相机姿势时相机(例如3200)的坐标系中的[X Y Z]坐标,或在一些其他坐标系中的坐标。在一些情况下,第二图像信息可以包括描述以上讨论的位置的相应深度值的深度图,并且计算系统1100可以被配置为基于相应深度值来确定这些位置的3D坐标。
返回图5,在实施例中,方法5000可以包括步骤5014,在该步骤中计算系统1100基于第二图像信息确定对(例如,物体3722的)物体结构的第二估计。对物体结构的第二估计可以包括例如描述物体结构的点云、(一个或多个)物体尺寸的(一个或多个)估计值和/或对物体形状的估计。如果对物体结构的第二估计包括点云,则步骤5014可以包括将3D坐标插入或添加到点云中,其中这些3D坐标可以被包括在第二图像信息中或被基于第二图像信息来确定。在一些情况下,确定对物体结构的第二估计可以涉及生成或更新全局点云。如以上关于步骤5004所讨论的,全局点云在一些情况下可能已经包括被包括在第一图像信息中或基于第一图像信息确定的3D坐标。如图6C所示,这些3D坐标可以表示例如在物体结构的第一外表面上的位置,诸如物体3722的边框表面上的位置3722A1至3722An。在一些情况下,3D坐标也可以表示内表面上的位置,诸如物体3722底部内表面上的位置3722B1至3722Bn。在这样的示例中,在步骤5014中计算系统1100可以将表示物体结构上的其他表面和/或其他位置的3D坐标插入或添加到全局点云中。例如,如图7D所示,用于更新全局点云的3D坐标可以表示物体3722的第一外部侧表面上的位置3722C1至位置3722Cn和物体3722的第二外部侧表面上的位置3722D1至3722Dn。在一些情况下,如果步骤5004涉及了基于第一图像信息生成初始全局点云,则来自步骤5012和5014的第二图像信息的添加或插入的3D坐标可以表示未由步骤5004的初始全局点云描述的一个或多个表面(例如,外表面)。在这样的示例中,步骤5012可以更新初始全局点云以生成更新后的全局点云。如上所述,如果物体3722在其外部侧表面上具有3D图案(例如,脊图案),则第一图像信息可能缺少关于该3D图案的信息,使得初始全局点云可能省略对该3D图案的描述。第二图像信息可以捕获或以其他方式表示该3D图案,使得更新后的全局点云表示物体3722的外部侧表面上的3D图案。如果第二图像信息中包括的3D坐标使用与初始全局点云使用的坐标系不同的坐标系,则计算系统1100可以被配置为变换这些3D坐标,使得它们在初始全局点云的坐标系中被表达,并通过将变换后的3D坐标添加或插入到初始全局点云中来更新初始全局点云。
在一些情况下,如果对物体结构的第二估计包括物体尺寸的估计值,则估计的物体尺寸可以是未由对物体结构的第一估计描述的尺寸。例如,在步骤5004中确定的对物体结构的第一估计可以包括第一物体尺寸(例如,物体长度)的估计值和第二物体尺寸(例如,物体宽度)的估计值,但是可能缺少第三物体尺寸(例如,物体高度)的估计值。在此示例中,对物体结构的第二估计可以包括第三物体尺寸(例如,物体高度)的估计值。在一些情况下,在步骤5004中确定的对物体结构的第一估计可能已经包括第三物体尺寸的估计值,但是此估计值可能潜在地不准确。如以上讨论的,由于步骤5004可能基于物体结构的顶视图,因此可能出现此不准确性。如果步骤5004涉及基于物体结构的顶视图来确定物体高度的估计值,则这样的估计值可能缺乏高度的准确性或置信度。在这样的示例中,步骤5014可以被用于生成该物体尺寸的更新后的估计值,如下面更详细地讨论的。更新后的估计值可以具有更高度的准确性或置信度。
在实施例中,计算系统1100可以被配置为基于3D坐标来确定诸如物体高度的物体尺寸的估计值。这些3D坐标可以在全局点云中,并且可以包括被包括在第二图像信息中或基于第二图像信息被确定的3D坐标。作为示例,计算系统1100可以基于两个3D坐标(诸如3D坐标[X3722An Y3722An Z3722An]和[X3722Dn Y3722Dn Z3722Dn])之间的差,来确定物体3722的结构的物体高度的估计值。更具体地,在此示例中,计算系统1100可以确定物体高度的估计值等于或基于Z3722An-Z3722Dn。在此示例中,3D坐标[X3722An Y3722An Z3722An]可以表示物体3722的边框表面或其他顶部外表面上的位置,该边框表面或其他顶部外表面可以形成物体3722的顶部,而3D坐标[X3722Dn Y3722Dn Z3722Dn]可以描述是物体3722的底部的一部分的位置。更具体地,3D坐标[X3722Dn Y3722Dn Z3722Dn]可以表示位于物体3722外部侧表面上并且靠近物体3722底部外部侧表面的位置。在一些情况下,如果对物体结构的第一估计已经包括物体尺寸(例如,物体长度或物体宽度)的估计值,诸如基于第一图像信息的估计值,则步骤5014可以涉及确定该物体尺寸的更新后的估计值,其中更新后的估计值是基于第二图像信息的。
在实施例中,在步骤5014中确定对物体结构的第二估计可以涉及确定与物体结构对应的物体(诸如物体3722)的物体类型。如以上讨论的,计算系统1100可以存储或以其他方式访问描述各种相应物体类型的模板。模板可以包括视觉描述信息和/或物体结构描述,诸如CAD模型或各种物体尺寸的相应值。模板中的物体结构描述在一些情况下可能包括比第一图像信息和/或第二图像信息所提供的对物体结构的更完整的描述,并且可以被用作对物体结构的第二估计。例如,第二图像信息可以具有足够水平的细节,以用于在步骤5014中与各种模板进行比较以确定第二图像信息是否与模板中的任一个匹配。如果模板之一与第二图像信息匹配,则该匹配的模板可能具有相对于第二图像信息具有更高水平的细节的物体结构描述。在一些情况下,可能已经在步骤5004中基于第一图像信息确定了物体类型,但是这样的确定可能旨在作为对物体类型的初始估计。如以上讨论的,使用第一图像信息执行模板匹配可能会导致缺少高度准确性或置信度的结果,尤其如果第一图像信息缺乏物体结构的某些部分(诸如其外部侧表面)的描述。如以上讨论的,第一图像信息可能缺少对物体结构的外部侧表面上的2D图案或3D图案的描述。另一方面,第二图像信息可以捕获或以其他方式表示物体结构的侧表面上的2D图案、3D图案或其他视觉细节或结构细节。如果步骤5014也涉及执行模板匹配,则此步骤可能导致具有更高水平的准确性或置信度的结果,因为步骤5014使用第二图像信息,该第二图像信息可以通过描述未包括在第一图像信息中或从第一图像信息中省略的物体结构的某些部分来增强第一图像信息。在一些情况下,第二图像信息可以表示物体结构的一部分,诸如物体结构的多个外部侧表面,这对于模板匹配可能尤其有用。更具体地,第二图像信息可以描述物体结构的一个或多个侧表面上的视觉细节(例如,视觉图案)或结构细节(例如,脊图案)。由第二图像信息描述的此视觉细节或结构细节可以提高模板匹配的准确性或有效性,尤其当用于接收机器人交互的许多不同类型的容器或其他物体具有相似的大小时。在这样的情况下,物体的大小可能与许多模板的相应物体结构描述匹配,每个模板可能与不同的物体类型相关联。然而,如第二图像信息所表示的,物体侧表面上的视觉细节或结构细节(例如,脊图案)可以仅匹配一个模板或几个模板的视觉描述信息或物体结构描述,因此缩小了该物体(例如3722)可能属于哪种物体类型(一个或多个)的范围。因此,与第一图像信息相比可以提供对物体的侧表面的更好的描述的第二图像信息中的视觉细节或结构细节可以提高模板匹配的准确性或有效性,以及提高确定哪种物体类型与由第二图像信息表示的物体相关联的准确性和有效性。
如上所述,在实施例中,托盘3728可以被用来堆叠可能具有多种多样大小的容器或其他物体。多种多样的物体大小可能导致多种多样的堆叠配置。换句话说,不同的托盘对于它们的容器或其他物体的被如何布置可以具有相当不同的堆叠配置。因此,如果计算系统1100正在确定从托盘移除物体的运动规划,则物体的位置(例如,物体的角或边缘的位置)可能具有大范围的可能值。因此,第二图像信息可能尤其有用,因为计算系统1100可以利用它来执行对物体的位置和/或物体的某些其他属性(例如,大小)的精细/精确检测。
在实施例中,计算系统1100可以使用第二图像信息来标识抓持点,抓持点可以是要由机器人1300/3300或更具体地要由图3A/6A的末端执行器装置3500抓住的物体(例如3722)上的位置或部分。这些抓持点可以被标识为在步骤5016期间确定的运动规划的一部分,这将在下面更详细地讨论。如上所述,末端执行器装置3500在一些情况下可以包括夹持或夹住物体的一部分(诸如容器边框的一部分)的抓持器手指。在一些情况下,可能需要以高度的准确性和可靠性来确定抓持点。例如,抓持点的确定可能需要考虑物体的任何部分(例如,物体3722上的容器边框上的任何部分)是否受损、无法接近或以其他方式难以抓持,使得没有任何抓持点被放置或以其他方式定位位于物体的该部分或靠近物体的该部分,因为让抓持点位于或靠近物体受损部分可能导致抓持困难或不稳定。第二图像信息为计算系统1100提供足够的准确性以标识物体的受损部分,这可以允许以足够高水平的可靠性和准确性来确定抓持点。第二图像信息还可以被用于消除不可访问的抓持点,诸如由于将阻止末端执行器装置3500访问抓持点的相邻物体的存在或定位。
在一些实现中,如果第二图像信息包括或形成表示物体(例如3722)的2D图像,则计算系统1100可以将2D图像或其一部分(例如,图7B中的图像部分7022)与以上讨论的模板的视觉描述信息进行比较。这样的比较可以被用于确定由2D图像或其一部分表示的物体外观是否与模板之一的视觉描述信息匹配。在一些情况下,如果第二图像信息包括3D图像信息(例如,图7C中的7084),则可以基于将3D图像信息或3D图像信息中表示物体结构的一部分(例如,图7D中的部分)与每个模板的物体结构描述进行比较来执行模板匹配。在一个示例中,模板匹配可以涉及将模板的物体结构描述与以上讨论的全局点云进行比较,这可以基于第二图像信息和第一图像信息。
返回图5,在实施例中,方法5000可以包括步骤5016,在该步骤中计算系统1100至少基于对物体结构的第二估计来生成运动规划。在步骤5016中生成的运动规划可以被用于引起机器人与关联于所估计的物体结构的物体(例如3722)之间的机器人交互。该交互可以涉及例如末端执行器装置(例如3500)接近物体(也被称为目标物体)、拾取目标物体并将目标物体移动到目的地位置。在一些情况下,如以上讨论的,在步骤5016中生成的运动规划可以是更新后的运动规划,该更新后的运动规划对基于对物体结构的第一估计的初始运动规划进行更新。在一些情况下,在步骤5016之前生成初始运动规划可以促进更及时地执行机器人交互。例如,生成初始运动规划可以涉及执行计算或确定在更新后的运动规划被确定时可重复使用的信息。如果这样的计算或确定全部都在步骤5016期间进行,则可能存在相机(例如3200)生成第二图像信息的时间与基于第二图像信息生成运动规划的时间之间存在过度滞后的情况。这样的滞后可能会延迟执行机器人交互。在这样的情况下,这些计算或确定中的至少一些可以被执行为基于第一图像信息确定初始运动规划的一部分。这些计算可以在步骤5016之前进行,并且因此可以减少在步骤5016中生成更新后的运动规划所需的时间量。然而,在一些实施例中,方法5000可以省略基于对物体结构的第一估计的对初始运动规划的确定。
在实施例中,在步骤5016中确定的运动规划可以包括机器人(例如3300)的末端执行器装置(例如3500)要遵循的轨迹。例如,图8A描绘了示例轨迹8010,当其由末端执行器装置3500遵循时,使末端执行器装置3500接近物体3722、接合物体3722(例如,拾取物体3722)并将物体移动到目的地位置8004。如以上讨论的,在一些情况下,步骤5016可以包括确定末端执行器装置3500抓住或以其他方式接合物体的抓持点。抓持点可以基于对物体结构的第二估计。例如,可以基于由对物体结构的第二估计指示的物体尺寸来确定抓持点。作为示例,如果物体结构包括至少四个共面角(例如,其具有矩形形状),则第一抓持点可以沿着物体结构的第一边缘定位,并且可以在至少四个共面角的第一角和第二角之间,而第二抓持点可以沿着物体结构的第二边缘定位,并且可以在至少四个共面角的第一角和第三角之间。第一抓持点可以比第一抓持点靠近第一角更靠近第二角,而第二抓持点可以比第二抓持点靠近第一角更靠近第三角。即,第一抓持点距离第一角可以具有至少是物体的第一尺寸的值的预定百分比的距离(例如,从第一抓持点到第一角的距离至少是物体宽度尺寸值的50%),而第二抓持点距离第一角可以具有至少是物体的第二尺寸的值的预定百分比的距离(例如,从第二抓持点到第一角的距离至少是物体长度尺寸值的50%)。在这样的示例中,抓持点可以促进对物体的平衡抓持或以其他方式稳定抓持。在实施例中,如上面关于图3A和3B所讨论的,抓持点的位置可以限定或以其他方式对应于末端执行器装置(例如3500A)的抓持大小。
作为以上讨论的运动规划的示例,图8B-图8F描绘了机器人3300的机器人臂3400上的末端执行器装置3500遵循图8A的轨迹8010以拾取物体3722。如上所述,如果目的地位置8004是用于接收物体(例如3722)的目的地结构的一部分,则该目的地位置可以是指将在物体与目的地结构之间发生最早接触的位置。例如,如果目的地结构是传送带或地板,则目的地位置8004可以是传送带或地板的上表面上的位置。如果目的地结构是具有一组滚轴的滚轴传送器,则目的地位置8004可以是一个或多个滚轴上的最高位置,如图8F所示。
在一些情况下,确定轨迹(例如8010)可能涉及验证轨迹将不导致接收机器人交互的物体(例如3722)与物体(例如3722)和/或机器人(例如3300)的环境中的物理元素或物品之间的碰撞。物理元素的示例包括墙壁、支撑梁、电源线等。验证不存在碰撞可以基于例如对物体(例如3722)的物体结构的估计,该估计可以从步骤5014确定。例如,计算系统1100可以确定轨迹(例如8010)是否将使物体结构占据也被以上讨论的物理元素中的任一项所占据的空间。在此示例中,物体结构占据的空间可以由上述全局点云、物体结构的估计形状和/或物体结构的各种尺寸(例如,长度、宽度、高度)的估计值来限定。
在实施例中,如果末端执行器装置(例如3500)至少包括第一抓持器构件、第二抓持器构件和第三抓持器构件,诸如图4A和图4B所示的抓持器构件,则计算系统1100可以将抓持器构件的移动确定为运动规划的一部分。例如,计算系统1100可以通过确定移动来生成运动规划,该移动用于使第一抓持器构件(例如3510)接合物体结构的第一边缘或第二边缘中的一个,并且用于使第二抓持器构件(例如,例如3520)接合物体结构的第一边缘或第二边缘中的另一个。第一边缘和第二边缘可以例如彼此垂直。所确定的移动还可以使第三抓持器构件(例如3530)接合与第二相机姿势相关联的物体角,例如由图6C中的位置3722A1表示的角,或可以使第三抓持器构件接合物体结构的另一个物体角。
在一些情况下,如果第一抓持器构件(例如3510)可沿着末端执行器装置(例如3500A)的第一导轨(例如3540)滑动,并且第二抓持器构件(例如3520)可沿着末端执行器装置的比第一导轨长的第二导轨(例如3542)滑动,如图4A和4B所描绘的,则计算系统1100可以被配置为通过确定移动来生成运动规划,该移动用于使第一抓持器构件接合物体结构的第一边缘或第二边缘中较短的一个,并且用于使第二抓持器构件接合物体结构的第一边缘或第二边缘中的较长的一个。计算系统1100还可以被配置为控制一个或多个如上所述的致动器或停止机构,以使第一抓持器构件(例如3510)沿着第一导轨(例如3540)滑动到其能够抓住运动规划描述的第一抓持点的位置,并使第二抓持器构件(例如3520)沿着第二导轨(例如3542)滑动到其能够抓住运动规划描述的第二抓持点的位置。
在实施例中,步骤5016可以涉及确定轨迹的终点,诸如图8A和8F中描绘的轨迹8010的终点8012。终点可以指定例如机器人(例如3500)或其部件(例如末端执行器装置3500)停止移动并结束其与特定物体(例如3722)的交互的位置(或更具体地,姿势)。结束交互可以涉及,例如,从末端执行器装置(例如3500)的抓持器中释放物体。在一些实现中,计算系统1100可以基于在步骤5014中确定的对物体结构的第二估计来确定轨迹的终点,诸如基于物体结构的物体高度,诸如物体3722的物体高度的估计值h3722,如图8A所示。如果在步骤5016中确定的运动规划是更新后的运动规划,并且如果计算系统1100已经确定具有第一终点的初始运动规划(例如,基于第一图像信息),则在步骤5016中确定的终点可以是更新后的终点。在一些情况下,对于执行机器人交互而言,更新后的终点可能比第一终点更可靠,因为更新后的终点可以基于对物体结构的第二估计,该第二估计可以比对物体结构的第一估计具有更好的准确性。
在图8A和8F的示例中,计算系统1100可以基于末端执行器装置3500的确定或规划的最终末端执行器高度来确定轨迹8010的终点8012。如以上关于确定初始运动规划所讨论的,最终末端执行器高度可以是指当末端执行器装置释放或以其他方式停止与物体(例如3722)交互时末端执行器装置3500的高度,和/或当末端执行器装置3500的运动结束时末端执行器装置3500的高度。在一些情况下,可以相对于以上讨论目的地位置(例如8004)来表达最终末端执行器高度。在实施例中,计算系统1100可以基于物体的物体高度的估计值来确定最终末端执行器高度,其中该估计值可以基于第二图像信息在步骤5014中被确定。在一些情况下,图8A中的计算系统1100可以将最终末端执行器高度确定为在目的地位置8004上方等于或基于物体3722的物体高度的估计值h3722的量的高度,其中估计值h3722是在步骤5014中确定的物体3722的对物体结构的第二估计的一部分或基于该第二估计。更一般地,图8A中的计算系统1100可以将终点8012确定为与目的地位置8004之间分开等于或基于估计值h3722的距离的位置。通过基于最终末端执行器的高度生成轨迹,计算系统1100可以控制末端执行器装置3500在与末端执行器装置3500正在承载的物体(例如3722)的底部被定位(例如放置)在目标位置8004上或以其他方式与目标位置8004接触的时间大致相同的时间停止末端执行器装置3500的运动。这样的轨迹可以因此尤其适于末端执行器装置3500停止其运动并释放物体。
在实施例中,计算系统1100可以被配置为检测物体(例如3722)到达目的地位置。例如,如图8G、8H和8I所示,滚轴传送器3800可以包括一个或多个传感器3810,诸如第一线传感器(line sensor)3811和第二线传感器3812。第一线传感器3811可以相对于滚轴传送器3800以第一距离(例如,第一高度)布置,而第二线传感器3812可相对于滚轴传送器3800以第二距离(例如,第二高度)布置。计算系统1100可生成并输出使机器人将末端执行器装置3500朝向滚轴传送器3800移动的控制信号。如图8H中所示,第一线传感器3811可以向计算系统1100输出第一传感器信号,该第一传感器信号指示在距滚轴传送器3800的第一距离内检测到物体3722和/或末端执行器装置3500的接近。当接收到第一传感器信号时,计算系统1100可以(例如,经由通信接口)输出用于使机器人臂3400和末端执行器装置3500朝向滚轴传送器3800的移动减速或以其他方式减慢的一个或多个移动命令。如图8I所示,第二线传感器3812可以向计算系统1100输出第二传感器信号,该第二传感器信号指示在距滚轴传送器3800的第二距离内检测到物体3722和/或末端执行器装置3500的接近。当接收到第二传感器信号时,计算系统1100可以输出用于使末端执行器装置3500的运动停止和/或用于使末端执行器装置3500释放或以其他方式与物体3722脱离的一个或多个移动命令。
返回图5,在实施例中,方法5000可以包括如下步骤,在该步骤中计算系统1100可以使机器人(例如3300)或更具体地机器人臂(例如3400)和/或末端执行器装置(例如3500)通过遵循在步骤5016中确定的运动规划来执行机器人交互。在一些情况下,计算系统1100可以基于运动规划生成一个或多个移动命令,并可以经由例如图2B的通信接口1130向机器人(例如3300)输出该一个或多个移动命令。当由机器人(例如3300)接收并执行时,该一个或多个移动命令(也被称为一个或多个物体交互移动命令)可以使机器人(例如3300)遵循运动规划并执行与以上讨论的物体(例如3722)的机器人交互。
在实施例中,作为来自步骤5016的运动规划的结果,接收或作为机器人交互的目标的物体可以是多个物体之一,诸如板条箱或其他容器的堆叠3720,如图6A和7A-7C所描绘的。在该示例中,根据步骤5016的运动规划被移动的物体3722可以是从堆叠3720移动到目的地位置8004的第一物体,如图8A-图8F所示。在这样的示例中,在步骤5002和5012中接收到的第一图像信息和第二图像信息可以表示堆叠3720的外观和/或描述堆叠的结构(也被称为堆叠结构)。此外,计算系统1100可以使用第一图像信息和/或第二图像信息来确定对堆叠结构的估计。例如,如果步骤5004中的第一估计和步骤5014中的第二估计包括全局点云,则此全局点云可以更具体地描述堆叠3720的堆叠结构,其中全局点云的不同部分可以描述形成堆叠3720的不同相应物体3721-3726。以上示例中的全局点云可以表示在移除以上讨论的第一物体3722之前的堆叠3720。在实施例中,方法5000可以涉及与堆叠上的附加物体(诸如物体3721和3723-3726中的一个或多个)交互。交互可以涉及,例如,作为卸垛操作的一部分,拾取物体3721、3723-3726中的每一个并将它们移动到目的地位置(例如,传送带)。
在实施例中,与附加物体(例如3721)交互可以涉及确定更新后的堆叠结构,该更新后的堆叠结构反映根据步骤5016的运动规划而移动的第一物体(例如3722)的移除或其他移动。尽管可以基于在第一物体(例如3722)已被从堆叠(例如3720)移动之后使用相机(例如3200)生成附加图像信息来确定对堆叠结构的此更新后的估计,但是计算系统1100可以替代地或附加地使用对第一物体(例如3722)的物体结构的第二估计来确定对堆叠3720的堆叠结构的更新后的估计。
例如,图9A示出了其中计算系统1100已经在移除第一物体(例如3722)之前确定了对堆叠3720的堆叠结构的估计的实施例。对堆叠结构的估计可以是例如表示堆叠3720的轮廓或形状的全局点云,并且可以与图7C的3D图像信息7084相同或相似。在此示例中,计算系统1100可能已经确定了对第一物体(例如3722)的物体结构的估计。此估计可以是例如在步骤5016中确定的对物体结构的第二估计。此外,对物体结构的此估计可以是例如堆叠结构的全局点云的一部分。因为对第一物体(例如3722)的物体结构的估计已经被确定,所以计算系统1100可以通过移除与第一物体对应的估计的一部分来直接确定对堆叠结构的更新后的估计。作为示例,对第一物体(例如3722)的物体结构的估计可以标识第一物体的各个表面上的3D坐标。计算系统1100可以被配置为从表示堆叠结构的全局点云的估计中移除这些3D坐标,诸如通过从全局点云中屏蔽掉这些3D坐标,如图9B和9C所示。更具体地,图9B用白色圆圈描绘了已经被从堆叠3720的全局点云中删除或以其他方式移除的3D坐标。图9C描绘了所得到的全局点云,其表示对在移除第一物体3722之后的堆叠3720的更新后的估计。如图9C所示,更新后的估计不再表示第一物体3722,而是可以表示在第一物体3722从堆叠3720移除之前先前被第一物体3722占据的空白空间。
在实施例中,如果方法5000涉及在移除第一物体(例如3722)之后与堆叠(例如3720)上的第二物体(例如3721)交互,则方法5000可以涉及生成第二运动规划。第二运动规划可以基于对堆叠结构的更新后的估计来生成,并且可以引起机器人与第二物体的交互,诸如末端执行器装置(例如3500)接近第二物体、与第二物体接合、并将第二物体移动到目的地位置(例如8004)的交互。在一些情况下,生成第二运动规划可以涉及基于对堆叠结构的更新后的估计来确定通过移除第一物体(例如3722)而暴露的堆叠结构的新角。例如,该新角(诸如由图9B中的位置3722An表示的角)可以与第二物体(例如3721)相关联。因此,计算系统1100可以基于对堆叠结构的更新后的估计来标识新的物体角。
在以上示例中,尽管计算系统1100可以使相机(例如3200)返回到第一相机姿势并生成表示例如在第一物体(例如3722)已经被移除已经之后的堆叠(例如3720)的顶视图的附加图像信息,但是这样做可能是不必要的,因为计算系统1100已经在步骤5016中确定了对第一物体的物体结构的估计。换句话说,在第一物体(例如3722)被从堆叠(例如3720)移除之后,计算系统1100可以通过确定所估计的堆叠结构的哪一部分对应于第一物体,以及屏蔽掉或以其他方式移除该部分,来确定对堆叠的堆叠结构的更新后的估计。在一些情况下,计算系统1100可以使用第一物体的物体尺寸的估计值,和/或使用表示第一物体的点云来确定估计的堆叠结构的哪一部分对应于第一物体。在生成对堆叠结构的更新后的估计之后,计算系统1100可以使用对堆叠结构的更新后的估计来标识剩余物体的物体角。在实施例中,计算系统1100可以具体地标识剩余物体的凸角(例如,外角)。这样的角也可以是例如堆叠的凸角。在一些情况下,在移除第一物体(例如3722)之后,剩余物体之一的角(诸如图9C中的位置3721An处的角)可能变成凸角。更具体地,该角可能原本紧邻第一物体(例如3722),并且可能由于第一物体的移除而被暴露。计算系统1100可以从剩余物体的凸角中选择以上讨论的该新的物体角。
在实施例中,新的物体角可以被用于获得图像信息,该图像信息表示要从堆叠(例如3720)移除的第二物体(例如3721)的透视图。例如,计算系统1100可以确定相机(例如3200)被指向新的物体角的附加相机姿势。计算系统1100可以重复步骤5006-5016以使相机移动到该附加相机姿势,并且可以接收由相机(例如3200)在相机具有附加相机姿势时生成的附加图像信息。在此示例中,计算系统1100可以以与步骤5014和5016相同或相似的方式,使用附加图像信息来生成用于引起机器人与第二物体(例如3721)的交互的第二运动规划。
如上所述,本申请的一个方面涉及其中机器人将物体从当前位置移动到目的地位置的交互。图10描绘了用于移动物体(例如,图8A和8B中的3722)的示例方法10000的流程图。方法10000可以由例如图2A-2D的计算系统1100执行。在实施例中,方法10000可以以步骤10002开始或以其他方式包括步骤10002,在步骤10002中,计算系统选择要移动的物体。例如,计算系统1100可以选择要被移动的容器或其他物体,并且确定用于使机器人与物体接合并将物体移动到目的地位置的运动规划。运动规划可以包括轨迹,在该轨迹中末端执行器装置(例如3500)被机器人(例如3300)降下以接近物体、与物体的边缘或角对准并抓住物体。
在实施例中,方法10000可以包括步骤10004,在步骤10004中,计算系统1100可以输出用于使机器人将末端执行器装置(例如3500)放置或或以其它方式定位在物体正上方的一个或多个移动命令。在实施例中,计算系统1100可以在与物体接合时使用由图8A中的相机3200生成的图像信息来确定或验证物体(例如物体3722)的位置。一旦物体的位置被确定,计算系统1100就可以生成并输出使机器人3300将末端执行器装置3500放置在物体3722正上方的一个或多个移动命令,如图8B所示。在实施例中,计算系统1100可以使机器人3300将末端执行器装置3500进行定向,使得末端执行器装置3500的底表面面向物体3722。
在步骤10006中,计算系统1100可以使机器人(例如3300)的末端执行器装置(例如3500)抓住或以其他方式与物体接合。在实施例中,步骤10006可以涉及生成一个或多个移动命令,该一个或多个移动命令用于使末端执行器装置3500被朝向物体或更一般地沿负Z方向降下,如图8C所示。在实施例中,计算系统1100可以被配置为引起第一抓持器构件(例如3510)和第二抓持器构件(例如3520)分别沿着第一导轨(例如3540)和第二导轨(例如3542)的移动,以便基于物体(例如3722)的大小来调整末端执行器装置(例如3500)的抓持大小,如以上讨论的。更具体地,计算系统1100可以使由末端执行器装置的抓持大小限定的区域具有基本上匹配物体3701的大小或以其他方式基于物体3701的大小的大小。在更具体的示例中,计算系统1100可以确定物体3701上的抓持点,并控制第一抓持器构件和第二抓持器构件的移动,使得它们能够在所确定的抓持点处抓持物体3701。如图8D所示,计算系统1100还可以使末端执行器装置3500与物体3722接合。
在步骤10008中,计算系统1100可以使机器人将物体移动到目的地位置。例如,计算系统100可以生成并输出一个或多个移动命令,该一个或多个移动命令用于使机器人3300将末端执行器装置3500移动到目的地位置,诸如传送器3800上的位置,如图8E-8G所示。在实施例中,该一个或多个移动命令可以基于以上讨论的运动规划来生成。
在步骤10010中,计算系统1100可以检测物体到达目的地位置。在实施例中,计算系统1100可以使用位于目的地位置处的一个或多个传感器(诸如以上关于图8G至图8I所讨论的线传感器)来检测物体到达目的地位置。在步骤10012中,计算系统1100可以生成用于使机器人3300的末端执行器装置3500在目的地位置释放物体3722的一个或多个移动命令。
各种实施例的附加讨论:
实施例1涉及一种包括通信接口和至少一个处理电路的计算系统。所述通信接口被配置为与以下各项进行通信:(i)具有末端执行器装置的机器人;以及(ii)安装在所述末端执行器装置上并具有相机视野的相机。所述至少一个处理电路被配置为当物体处于或已经处于所述相机视野时:接收用于表示与所述物体相关联的物体结构的至少第一外表面的第一图像信息,其中所述第一图像信息是在所述相机具有第一相机姿势时由所述相机生成的,在所述第一相机姿势中所述相机被指向所述第一外表面,使得所述相机视野包含所述第一外表面;基于所述第一图像信息确定对所述物体结构的第一估计;基于对所述物体结构的第一估计或基于所述第一图像信息,标识所述物体结构的角;确定第二相机姿势,当所述第二相机姿势被所述相机采用时,使所述相机被指向所述物体结构的所述角,使得所述相机视野包含所述角和所述物体结构的第二外表面的至少一部分;输出一个或多个相机放置移动命令,当所述一个或多个相机放置移动命令由所述机器人执行时,使所述末端执行器装置将所述相机移动到所述第二相机姿势;接收用于表示所述物体结构的第二图像信息,其中所述第二图像信息是在所述相机具有所述第二相机姿势时由所述相机生成的;基于所述第二图像信息确定对所述物体结构的第二估计;至少基于对所述物体结构的第二估计来生成运动规划,其中所述运动规划用于引起所述机器人与所述物体之间的机器人交互;以及输出用于引起所述机器人交互的一个或多个物体交互移动命令,其中所述一个或多个物体交互移动命令是基于所述运动规划生成的。
实施例2包括实施例1的计算系统,其中对所述物体结构的第一估计至少包括所述物体结构的第一物体尺寸的估计值和所述物体结构的第二物体尺寸的估计值,并且其中对所述物体结构的第二估计至少包括所述物体结构的第三物体尺寸的估计值。
实施例3包括实施例2的计算系统,其中所述第一物体尺寸是物体长度,所述第二物体尺寸是物体宽度,并且所述第三物体尺寸是物体高度。
实施例4包括实施例2或3的计算系统,其中对所述物体结构的第二估计包括所述第一物体尺寸的更新后的估计值和所述第二物体尺寸的更新后的估计值。
实施例5包括实施例1-4中任一项的计算系统,其中对所述物体结构的第二估计包括所述物体结构的估计形状。
实施例6包括实施例1-5中任一项的计算系统,其中对所述物体结构的第一估计包括点云,所述点云标识所述物体结构的所述第一外表面上的位置而不标识所述物体结构的所述第二外表面上的位置,并且其中对所述物体结构的第二估计包括更新后的点云,所述更新后的点云标识所述物体结构的所述第一外表面上的位置和所述第二外表面上的位置。
实施例7包括实施例1-6中任一项的计算系统,其中所述至少一个处理电路被配置为通过以下操作确定对所述物体结构的第二估计:基于所述第二图像信息,确定对应于所述物体的物体类型;确定与所述物体类型相关联的已限定的物体结构描述,其中所述物体结构描述描述与所述物体类型相关联的结构;基于所述物体结构描述确定对所述物体结构的第二估计。
实施例8包括实施例7的计算系统,其中所述至少一个处理电路被配置为通过将所述第二图像信息与包括一个或多个相应物体结构描述的一个或多个模板进行比较来确定所述物体类型。
实施例9包括实施例1-8中任一项的计算系统,其中所述运动规划包括轨迹,当所述轨迹由所述末端执行器装置遵循时,所述轨迹使所述末端执行器装置接近所述物体、接合所述物体并且将所述物体移动到目的地位置。
实施例10包括实施例9的计算系统,其中所述运动规划是更新后的运动规划,其中所述至少一个处理电路被配置为基于对所述物体结构的第一估计来生成初始运动规划,并且基于所述初始运动规划以及基于对所述物体结构的第二估计生成所述更新后的运动规划。
实施例11包括实施例9或10的计算系统,其中对所述物体结构的第二估计包括物体高度的估计值,其中所述至少一个处理电路被配置为:基于所述物体高度的所述估计值确定相对于目的地位置的最终末端执行器高度,并且基于所述最终末端执行器高度确定所述轨迹的终点。
实施例12包括实施例1-11中任一项的计算系统,其中,当所述末端执行器装置至少包括第一抓持器构件、第二抓持器构件和第三抓持器构件时,所述至少一个处理电路被配置为通过确定移动来生成所述运动规划,所述移动用于使所述第一抓持器构件接合所述物体结构的第一边缘或第二边缘中的一个、用于使所述第二抓持器构件接合所述物体结构的第一边缘或第二边缘中的另一个以及用于使所述第三抓持器构件接合与所述第二相机姿势相关联的所述角或接合所述物体结构的另一角。
实施例13包括实施例1-12中任一项的计算系统,其中,当对所述物体结构的第一估计描述多个角时,所述至少一个处理电路被配置为从所述多个角中选择所述角,其中所述选择基于以下至少一项:(i)所述多个角经历的相应的遮挡量,或(ii)所述末端执行器装置对所述多个角的可访问性的相应水平。
实施例14包括实施例1-13中任一项的计算系统,其中,当所述物体是多个物体的堆叠中的第一物体并且所述运动规划是用于从所述堆叠中移除所述第一物体的第一运动规划时,所述至少一个处理电路被配置为执行以下操作:基于所述第一图像信息或所述第二图像信息来确定对堆叠结构的估计,其中对所述堆叠结构的所述估计用于表示移除所述第一物体之前的所述堆叠;基于对所述物体结构的第二估计确定对所述堆叠结构的更新后的估计,其中对所述堆叠结构的所述更新后的估计用于表示移除所述第一物体之后的所述堆叠;以及基于对所述堆叠结构的所述更新后的估计生成第二运动规划,其中所述第二运动规划用于引起机器人与所述堆叠的第二物体的交互。
实施例15包括实施例14的计算系统,其中所述至少一个处理电路被配置为通过以下操作生成所述第二运动规划:基于对所述堆叠结构的所述更新后的估计,确定通过移除所述第一物体而暴露的所述堆叠结构的新角,其中所述新角与所述第二物体相关联,确定所述相机被指向所述新角的附加相机姿势;以及接收在所述相机具有所述附加相机姿势时由所述相机生成的附加图像信息,其中所述第二运动规划是基于所述附加图像信息生成的。
实施例16包括实施例15的计算系统,其中,对所述堆叠结构的所述估计包括用于描述所述堆叠上的位置的点云,并且其中所述至少一个处理电路被配置为通过更新所述点云以移除所述堆叠上也属于所述物体结构的位置来确定对所述堆叠结构的所述更新后的估计,其中所述堆叠上也属于所述物体结构的所述位置是通过对所述物体结构的第二估计来标识的。
对于相关领域的普通技术人员将清楚的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和调整。上述实施例是说明性示例,并且不应被解释为将本发明限于这些特定实施例。应该理解的是,本文公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来组合。还应该理解,根据示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。另外,尽管为了清楚起见,本文的实施例的某些特征被描述为由单个组件、模块或单元执行,但是应当理解,本文描述的特征和功能可以由组件、单元、模块的任何组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以进行各种改变和修改。

Claims (20)

1.一种计算系统,包括:
通信接口,所述通信接口被配置为与以下各项进行通信:(i)具有末端执行器装置的机器人;以及(ii)安装在所述末端执行器装置上并具有相机视野的相机;
至少一个处理电路,所述至少一个处理电路被配置为当物体处于或已经处于所述相机视野时:
接收用于表示与所述物体相关联的物体结构的至少第一外表面的第一图像信息,其中所述第一图像信息是在所述相机具有第一相机姿势时由所述相机生成的,在所述第一相机姿势中所述相机被指向所述第一外表面,使得所述相机视野包含所述第一外表面;
基于所述第一图像信息确定对所述物体结构的第一估计;
基于对所述物体结构的第一估计或基于所述第一图像信息,标识所述物体结构的角;
基于对所述物体结构的第一估计和基于所述第一图像信息确定第二相机姿势,当所述第二相机姿势被所述相机采用时,使所述相机被指向所述物体结构的所述角,使得所述相机视野包含所述角和所述物体结构的第二外表面的至少一部分;
输出一个或多个相机放置移动命令,所述一个或多个相机放置移动命令当由所述机器人执行时,使所述末端执行器装置将所述相机移动到所述第二相机姿势;
接收用于表示所述物体结构的第二图像信息,其中所述第二图像信息是在所述相机具有所述第二相机姿势时由所述相机生成的;
基于所述第二图像信息确定对所述物体结构的第二估计;
至少基于对所述物体结构的第二估计来生成运动规划,其中所述运动规划用于引起所述机器人与所述物体之间的机器人交互;以及
输出用于引起所述机器人交互的一个或多个物体交互移动命令,其中所述一个或多个物体交互移动命令是基于所述运动规划生成的。
2.如权利要求1所述的计算系统,其中,对所述物体结构的第一估计至少包括所述物体结构的第一物体尺寸的估计值和所述物体结构的第二物体尺寸的估计值,并且
其中对所述物体结构的第二估计至少包括所述物体结构的第三物体尺寸的估计值。
3.如权利要求2所述的计算系统,其中,所述第一物体尺寸是物体长度,所述第二物体尺寸是物体宽度,并且所述第三物体尺寸是物体高度。
4.如权利要求2所述的计算系统,其中,对所述物体结构的第二估计包括所述第一物体尺寸的更新后的估计值和所述第二物体尺寸的更新后的估计值。
5.如权利要求1所述的计算系统,其中,对所述物体结构的第二估计包括所述物体结构的估计形状。
6.如权利要求1所述的计算系统,其中,对所述物体结构的第一估计包括点云,所述点云标识所述物体结构的所述第一外表面上的位置而不标识所述物体结构的所述第二外表面上的位置,并且其中对所述物体结构的第二估计包括更新后的点云,所述更新后的点云标识所述物体结构的所述第一外表面上的位置和所述第二外表面上的位置。
7.如权利要求1所述的计算系统,其中,所述至少一个处理电路被配置为通过以下操作确定对所述物体结构的第二估计:
基于所述第二图像信息,确定对应于所述物体的物体类型;
确定与所述物体类型相关联的已限定的物体结构描述,其中所述物体结构描述描述与所述物体类型相关联的结构;以及
基于所述物体结构描述确定对所述物体结构的第二估计。
8.如权利要求7所述的计算系统,其中,所述至少一个处理电路被配置为通过将所述第二图像信息与包括一个或多个相应物体结构描述的一个或多个模板进行比较来确定所述物体类型。
9.如权利要求1所述的计算系统,其中,所述运动规划包括轨迹,当所述轨迹由所述末端执行器装置遵循时,使所述末端执行器装置接近所述物体、接合所述物体并且将所述物体移动到目的地位置。
10.如权利要求9所述的计算系统,其中,所述运动规划是更新后的运动规划,
其中,所述至少一个处理电路被配置为基于对所述物体结构的第一估计来生成初始运动规划,并且基于所述初始运动规划以及基于对所述物体结构的第二估计生成所述更新后的运动规划。
11.如权利要求9所述的计算系统,其中,对所述物体结构的第二估计包括物体高度的估计值,
其中,所述至少一个处理电路被配置为:
基于所述物体高度的所述估计值确定相对于目的地位置的最终末端执行器高度,并且
基于所述最终末端执行器高度确定所述轨迹的终点。
12.如权利要求1所述的计算系统,其中,当所述末端执行器装置至少包括第一抓持器构件、第二抓持器构件和第三抓持器构件时,所述至少一个处理电路被配置为通过确定移动来生成所述运动规划,所述移动用于使所述第一抓持器构件接合所述物体结构的第一边缘或第二边缘中的一个、用于使所述第二抓持器构件接合所述物体结构的第一边缘或第二边缘中的另一个以及用于使所述第三抓持器构件接合与所述第二相机姿势相关联的所述角或接合所述物体结构的另一角。
13.如权利要求1所述的计算系统,其中,当对所述物体结构的第一估计描述多个角时,所述至少一个处理电路被配置为从所述多个角中选择所述角,其中所述选择基于以下各项中的至少一项:(i)所述多个角经历的相应的遮挡量,或(ii)所述末端执行器装置对所述多个角的可访问性的相应水平。
14.如权利要求1所述的计算系统,其中,当所述物体是多个物体的堆叠中的第一物体并且所述运动规划是用于从所述堆叠中移除所述第一物体的第一运动规划时,所述至少一个处理电路被配置为执行以下操作:
基于所述第一图像信息或所述第二图像信息来确定对堆叠结构的估计,其中对所述堆叠结构的所述估计用于表示移除所述第一物体之前的所述堆叠;
基于对所述物体结构的第二估计确定对所述堆叠结构的更新后的估计,其中对所述堆叠结构的所述更新后的估计用于表示移除所述第一物体之后的所述堆叠;以及
基于对所述堆叠结构的所述更新后的估计生成第二运动规划,其中所述第二运动规划用于引起与所述堆叠中的第二物体的机器人交互。
15.如权利要求14所述的计算系统,其中,所述至少一个处理电路被配置为通过以下操作生成所述第二运动规划:
基于对所述堆叠结构的所述更新后的估计,确定通过移除所述第一物体而暴露的所述堆叠结构的新角,其中所述新角与所述第二物体相关联,
确定所述相机被指向所述新角的附加相机姿势;以及
接收在所述相机具有所述附加相机姿势时由所述相机生成的附加图像信息,其中所述第二运动规划是基于所述附加图像信息生成的。
16.如权利要求15所述的计算系统,其中,对所述堆叠结构的所述估计包括用于描述所述堆叠上的位置的点云,并且其中所述至少一个处理电路被配置为通过更新所述点云以移除所述堆叠上也属于所述物体结构的位置来确定对所述堆叠结构的所述更新后的估计,其中所述堆叠上也属于所述物体结构的位置是通过对所述物体结构的第二估计而标识的。
17.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质具有指令,所述指令当由计算系统的至少一个处理电路执行时,使所述至少一个处理电路:
在所述计算系统处接收第一图像信息,其中所述计算系统被配置为与以下各项进行通信:(i)具有末端执行器装置的机器人;以及(ii)安装在所述末端执行器装置上并具有相机视野的相机,其中所述第一图像信息用于表示与处于或已经处于所述相机视野的物体相关联的物体结构的至少第一表面,并且其中所述第一图像信息是在所述相机具有第一相机姿势时由所述相机生成的,在所述第一相机姿势中所述相机被指向所述第一表面,使得所述相机视野包含所述第一表面;
基于所述第一图像信息确定对所述物体结构的第一估计;
基于对所述物体结构的第一估计标识所述物体结构的角;
基于对所述物体结构的第一估计和基于所述第一图像信息确定第二相机姿势,当所述第二相机姿势被所述相机采用时,使所述相机被指向所述物体结构的所述角,使得所述相机视野包含所述角和所述物体结构的第二表面的至少一部分;
输出一个或多个相机放置移动命令,当所述一个或多个相机放置移动命令由所述机器人执行时,使所述末端执行器装置将所述相机移动到所述第二相机姿势;
接收用于表示所述物体结构的第二图像信息,其中所述第二图像信息是在所述相机具有所述第二相机姿势时由所述相机生成的;
基于所述第二图像信息确定对所述物体结构的第二估计;
至少基于对所述物体结构的第二估计来生成运动规划,其中所述运动规划用于引起所述机器人与所述物体之间的机器人交互;以及
输出用于引起所述机器人交互的一个或多个物体交互移动命令,其中所述一个或多个物体交互移动命令是基于所述运动规划生成的。
18.如权利要求17所述的非暂时性计算机可读介质,其中,对所述物体结构的第一估计至少包括所述物体结构的第一物体尺寸的估计值和所述物体结构的第二物体尺寸的估计值,并且
其中,对所述物体结构的第二估计至少包括所述物体结构的第三物体尺寸的估计值。
19.一种由计算系统执行的方法,所述方法包括:
在所述计算系统处接收第一图像信息,其中所述计算系统被配置为与以下各项进行通信:(i)具有末端执行器装置的机器人;以及(ii)安装在所述末端执行器装置上并具有相机视野的相机,其中所述第一图像信息用于表示与处于或已经处于所述相机视野的物体相关联的物体结构的至少第一表面,并且其中所述第一图像信息是在所述相机具有第一相机姿势时由所述相机生成的,在所述第一相机姿势中所述相机被指向所述第一表面,使得所述相机视野包含所述第一表面;
基于所述第一图像信息确定对所述物体结构的第一估计;
基于对所述物体结构的第一估计标识所述物体结构的角;
基于对所述物体结构的第一估计和基于所述第一图像信息确定第二相机姿势,当所述第二相机姿势被所述相机采用时,使所述相机被指向所述物体结构的所述角,使得所述相机视野包含所述角和所述物体结构的第二表面的至少一部分;
输出一个或多个相机放置移动命令,当所述一个或多个相机放置移动命令由所述机器人执行时,使所述末端执行器装置将所述相机移动到所述第二相机姿势;
接收用于表示所述物体结构的第二图像信息,其中所述第二图像信息是在所述相机具有所述第二相机姿势时由所述相机生成的;
基于所述第二图像信息确定对所述物体结构的第二估计;
至少基于对所述物体结构的第二估计来生成运动规划,其中所述运动规划用于引起所述机器人与所述物体之间的机器人交互;以及
输出用于引起所述机器人交互的一个或多个物体交互移动命令,其中所述一个或多个物体交互移动命令是基于所述运动规划生成的。
20.如权利要求19所述的方法,其中,对所述物体结构的第一估计至少包括所述物体结构的第一物体尺寸的估计值和所述物体结构的第二物体尺寸的估计值,并且
其中,对所述物体结构的第二估计至少包括所述物体结构的第三物体尺寸的估计值。
CN202110305783.4A 2019-12-12 2020-10-29 基于相机生成的图像信息执行运动规划的方法和计算系统 Active CN113219900B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962946973P 2019-12-12 2019-12-12
US62/946,973 2019-12-12
CN202080004033.7A CN113272106A (zh) 2019-12-12 2020-10-29 基于由相机生成的图像信息执行运动规划的方法和计算系统
PCT/US2020/058008 WO2021118702A1 (en) 2019-12-12 2020-10-29 Method and computing system for performing motion planning based on image information generated by a camera

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080004033.7A Division CN113272106A (zh) 2019-12-12 2020-10-29 基于由相机生成的图像信息执行运动规划的方法和计算系统

Publications (2)

Publication Number Publication Date
CN113219900A CN113219900A (zh) 2021-08-06
CN113219900B true CN113219900B (zh) 2022-03-29

Family

ID=77087926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110305783.4A Active CN113219900B (zh) 2019-12-12 2020-10-29 基于相机生成的图像信息执行运动规划的方法和计算系统

Country Status (1)

Country Link
CN (1) CN113219900B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170031252A (ko) * 2014-08-29 2017-03-20 엑스 디벨롭먼트 엘엘씨 스테레오와 구조화된 광 처리의 결합
WO2019097004A1 (en) * 2017-11-17 2019-05-23 Ocado Innovation Limited Control device and method for a robot system for locating objects and calculating appropriate grasp points for each object

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102016551B1 (ko) * 2014-01-24 2019-09-02 한화디펜스 주식회사 위치 추정 장치 및 방법
US10625419B2 (en) * 2018-03-21 2020-04-21 The Boeing Company Robotic system and method for operating on a workpiece
US10456915B1 (en) * 2019-01-25 2019-10-29 Mujin, Inc. Robotic system with enhanced scanning mechanism
US10510155B1 (en) * 2019-06-11 2019-12-17 Mujin, Inc. Method and processing system for updating a first image generated by a first camera based on a second image generated by a second camera
US10565737B1 (en) * 2019-07-09 2020-02-18 Mujin, Inc. Method and system for performing automatic camera calibration for a scanning system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170031252A (ko) * 2014-08-29 2017-03-20 엑스 디벨롭먼트 엘엘씨 스테레오와 구조화된 광 처리의 결합
WO2019097004A1 (en) * 2017-11-17 2019-05-23 Ocado Innovation Limited Control device and method for a robot system for locating objects and calculating appropriate grasp points for each object

Also Published As

Publication number Publication date
CN113219900A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
US11103998B2 (en) Method and computing system for performing motion planning based on image information generated by a camera
JP6805465B2 (ja) センサ誘導式ロボットを用いたボックスの位置特定、分離、およびピッキング
US9630316B2 (en) Real-time determination of object metrics for trajectory planning
US11130237B1 (en) Method and computing system for performing container detection and object detection
CN113219900B (zh) 基于相机生成的图像信息执行运动规划的方法和计算系统
CN113043282B (zh) 用于物体检测或机器人交互规划的方法和系统
US20220355474A1 (en) Method and computing system for performing robot motion planning and repository detection
JP6945209B1 (ja) 物体検出のために安全ボリュームリストを生成するための方法および計算システム
JP7398662B2 (ja) ロボット多面グリッパアセンブリ及びその操作方法
CN113361651B (zh) 生成用于物体检测的安全空间列表的方法和计算系统
US11958202B2 (en) Method and computing system for performing container detection and object detection
JP7286524B2 (ja) ピッキングロボット、ピッキング方法及びプログラム
US20230286140A1 (en) Systems and methods for robotic system with object handling
CN115703238A (zh) 用于机器人物体放置的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant