CN111559544A - 具有错误检测和动态打包机制的机器人*** - Google Patents

具有错误检测和动态打包机制的机器人*** Download PDF

Info

Publication number
CN111559544A
CN111559544A CN202010221092.1A CN202010221092A CN111559544A CN 111559544 A CN111559544 A CN 111559544A CN 202010221092 A CN202010221092 A CN 202010221092A CN 111559544 A CN111559544 A CN 111559544A
Authority
CN
China
Prior art keywords
robotic system
placement
discretized
determining
sensor data
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.)
Granted
Application number
CN202010221092.1A
Other languages
English (en)
Other versions
CN111559544B (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 Inc
Original Assignee
Mujin Inc
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
Priority claimed from US16/428,809 external-priority patent/US10618172B1/en
Application filed by Mujin Inc filed Critical Mujin Inc
Publication of CN111559544A publication Critical patent/CN111559544A/zh
Application granted granted Critical
Publication of CN111559544B publication Critical patent/CN111559544B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B57/00Automatic control, checking, warning, or safety devices
    • B65B57/10Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged
    • B65B57/14Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged and operating to control, or stop, the feed of articles or material to be packaged

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

一种用于操作机器人***的方法,包括:基于源传感器数据来确定离散化物体模型;将所述离散化物体模型与打包计划或主数据进行比较;基于目的地传感器数据来确定离散化平台模型;基于所述目的地传感器数据来确定高度量度;将所述离散化平台模型和/或所述高度量度与预期平台模型和/或预期高度量度进行比较;以及通过以下来确定一个或多个错误:(i)通过标识(a)所述离散化物体模型与(b)所述打包计划或所述主数据之间的一个或多个差异来确定至少一个源匹配错误;或者(ii)通过分别标识(a)所述离散化平台模型或所述高度量度与(b)所述预期平台模型或所述预期高度量度之间的一个或多个差异来确定至少一个目的地匹配错误。

Description

具有错误检测和动态打包机制的机器人***
本申请是中国申请CN202010083653.6的分案申请,该申请日期 为2020年2月7日,发明名称为“具有错误检测和动态打包机制的 机器人***”。
相关申请的交叉引用
本申请包含与Rosen N.Diankov和Denys Kanunikov的标题为“A ROBOTIC SYSTEMWITH PACKING MECHANISM”的同时提交的 美国专利申请有关的主题,所述美国专利申请被转让给Mujin公司, 由代理人案卷号131837-8005.US01标识,并且以引用的方式整体并 入本文。
本申请包含与Rosen N.Diankov和Denys Kanunikov的标题为“A ROBOTIC SYSTEMWITH DYNAMIC PACKING MECHANISM”的 同时提交的美国专利申请有关的主题,所述美国专利申请被转让给 Mujin公司,由代理人案卷号131837-8006.US01标识,并且以引用的 方式整体并入本文。
本申请包含与Rosen N.Diankov和Denys Kanunikov的标题为 “ROBOTIC SYSTEMFOR PROCESSING PACKAGES ARRIVING OUT OF SEQUENCE”的同时提交的美国专利申请有关的主题,所述 美国专利申请被转让给Mujin公司,由代理人案卷号131837- 8008.US01标识,并且以引用的方式整体并入本文。
本申请包含与Rosen N.Diankov和Denys Kanunikov的标题为 “ROBOTIC SYSTEMFOR PALLETIZING PACKAGES USING REAL-TIME PLACEMENT SIMULATION”的同时提交的美国专利申 请有关的主题,所述美国专利申请被转让给Mujin公司,由代理人案 卷号131837-8009.US01标识,并且以引用的方式整体并入本文。
技术领域
本技术总体涉及机器人***,并且更具体地,涉及用于基于所标 识错误动态地对物体打包的***、过程和技术。
背景技术
随着性能的不断增强和成本的降低,许多机器人(例如,被配置来 自动地/自主地执行物理动作的机器)现在广泛用于许多领域。例如, 机器人可用于在制造和/组装、打包和/或包装、运输和/或装运等中执 行多种任务(例如,跨空间操纵或搬运物体)。在执行任务时,机器人 可复制人类动作,从而替代或减少执行危险或重复性任务原本所需的 人类参与。
然而,尽管技术不断进步,但机器人往往缺乏复制执行更复杂任 务所需的人类敏感性和/或适应性所必需的复杂程度。例如,机器人往 往缺乏在所执行动作中考虑可能由多种真实世界因素造成的偏差、错 误或不确定性的控制粒度和灵活性。因此,仍然需要用于控制和管理 机器人的多方面以不管多种真实世界因素如何都完成任务的改进的 技术和***。
附图说明
图1是具有动态打包机制的机器人***可在其中操作的示例性 环境的图示。
图2是示出根据本技术的一个或多个实施方案的机器人***的 框图。
图3A是根据本技术的一个或多个实施方案的离散化物体的图示。
图3B是根据本技术的一个或多个实施方案的离散化打包平台的 图示。
图4A是根据本技术的一个或多个实施方案的支撑计算的图示。
图4B是根据本技术的一个或多个实施方案的支撑指标的图示。
图5是示出由根据本公开的一个或多个实施方案的机器人*** 执行的示例性放置的俯视图。
图6A是示出根据本公开的一个或多个实施方案的第一示例性方 法的廓线图。
图6B是示出根据本公开的一个或多个实施方案的第二示例性方 法的廓线图。
图7是根据本技术的一个或多个实施方案的用于操作图1的机 器人***的流程图。
图8是根据本技术的一个或多个实施方案的用于操作图1的机 器人***的流程图。
具体实施方式
本文描述用于标识多种包装错误并动态地对物体(例如,包裹和/ 或盒)打包的***和方法。根据一些实施方案配置的机器人***(例如, 执行一个或多个指定任务的装置的集成***)通过动态地导出物体的 存储位置并将它们分别堆叠来提供提高的打包和存储效率。
传统***使用离线打包模拟器来预定打包顺序/布置。传统打包 模拟器处理预定或估计的一组箱的物体信息(例如,箱形状/大小)以生 成打包计划。一旦确定打包计划,它就规定和/或要求物体(例如,货 盘、仓、笼、盒等)在目的地处的具体放置位置/姿势、放置的预限定 顺序和/或预定运动计划。根据预定打包计划,传统打包模拟器导出匹 配或实现打包计划的源要求(例如,物体的顺序和/或放置)。
因为在传统***中打包计划是离线研发的,因此计划是独立于实 际打包操作/条件、物体到达和/或其他***实现方式的。因此,总体 操作/实现方式将需要所接收包裹(例如,在起始/拾取位置处)遵循匹 配预定打包计划的固定顺序。这样,传统***无法适应所接收包裹的 实时条件和/或偏差(例如,不同顺序、位置和/或取向)、未预料到的错 误(例如,碰撞、丢件和/或迥异的包装条件)、实时打包要求(例如,所 接收订单)和/或其他实时因素。此外,因为传统***根据严格预定计 划/顺序对物体进行分组和打包,所以它们要求源位置处的所有物体: (1)具有相同的预期尺寸/类型和/或(2)根据已知顺序到达。例如,传统 ***将需要物体(通过例如输送机)根据固定顺序到达拾取位置。另外, 例如,传统***将需要将拾取位置处的物体根据预定姿势放置在指定 位置处。这样,传统***需要(即,在打包操作之前)根据预定顺序/布 置来对源处的物体进行排序和/或放置的一个或多个操作。通常,传统 ***需要顺序缓冲器(其花费超过一百万美元)来根据预定顺序/姿势 对源处的物体进行排序和/或放置。
与传统***相比,本文所述的机器人***可(i)标识所接收包裹的 实时条件和/或偏差和/或其他未预料到的错误并且(ii)在***操作期 间动态地(例如,在一个或多个物体到达或被标识时和/或在初始地开 始一个或多个操作(诸如打包操作)之后)物体的放置位置。在一些实施 方案中,机器人***可基于触发事件发起/实施放置的动态导出,所述触发事件诸如标识出一个或多个包装/操纵错误(例如,碰撞事件或丢 件事件)、未识别的物体(例如,在源处和/或目的地处)、已经放置的包 裹的位置/取向的变化、和/或其他动态条件的发生。在动态地导出放 置位置时,机器人***可利用包括例如可用/到达物体、物体特性和/ 或要求、放置要求和/或其他实时因素的多种实时条件(例如,当前存 在或持续的条件)。
机器人***可基于离散化机制(例如,过程、电路、函数和/或例 程)来导出放置位置。例如,机器人***可使用离散化机制根据离散化 单元(即,一个离散区域/空间)来描述物体的物理大小/形状和/或目标 位置。机器人***可生成使用离散化单元来描述预期物体的离散化物 体廓线和/或描述目标位置(例如,货盘顶部上的表面和/或仓/箱/盒内 部的空间/底表面)的离散化目的地廓线。因此,机器人***可将连续 的真实世界空间/区域变换成计算机可读数字信息。此外,离散化数据 可允许降低用于描述包裹占位面积和用于比较多种包裹放置的计算 复杂性。例如,代替真实世界的小数,包裹尺寸可对应于整数个离散 化单元,这使得数学计算更容易。
在一些实施方案中,机器人***可检查放置平台的离散化单元以 确定物体放置可能性。例如,机器人***可使用放置平台上的所放置 物体的深度测量值或高度。机器人***可确定深度量度以便以/根据 离散化单元确定高度。机器人***可根据对应于将要放置的物体的离 散化单元的分组来评估深度量度。机器人***可确定分组内的最大高 度以用于评估放置可能性。换句话说,机器人***可确定所测试放置 位置是否提供足够的支撑,使得所放置物体可相对平坦地(例如,根据 预定阈值和/或条件)放置。下文描述关于动态放置导出的细节。
因此,机器人***可基于实时条件来提高动态地导出物体放置的 效率、速度和准确性。例如,本文所述的***可在真实世界条件呈现 出与预期条件相关联的不确定性和/或与预期条件的偏差时导出放置 位置。此外,机器人***可通过消除一个或多个操作、机器(例如,顺 序缓冲器)和/或人工辅助(而这些在传统***中原本是对源处的物体 进行排序或放置和/或打包操作(例如,错误处理)所必需的)来降低总 成本。通过在物体变得可用时(例如,基于物体到达和/或触发事件)动 态地导出放置位置,机器人***消除了连同相关联机器/人类操作对 包裹进行重新组织或定序的需要。
在导出物体放置之后,机器人***可根据所导出接近计划将物体 放置在所导出放置位置处。在一些实施方案中,机器人***可核实物 体在所导出放置位置处的放置是准确的和/或可动态地导出一个或多 个其他物体的放置位置(例如,基于对应放置位置处的物体的先前放 置)。
在以下描述中,阐述许多具体细节来提供对当前所公开技术的透 彻理解。在其他实施方案中,此处所引入的技术可在没有这些具体细 节的情况下实践。在其他情况下,不详细描述诸如具体函数或例程的 公知特征,以便避免不必要地使本公开晦涩难懂。此说明中对“实施 方案”、“一个实施方案”或类似用语的引用意指所描述的特定特征、 结构、材料或特性包括在本公开的至少一个实施方案中。因此,本说 明书中此类短语的出现不一定都指代同一实施方案。另一方面,此类 引用也不一定相互排斥。此外,特定特征、结构、材料或特性可以任 何合适的方式在一个或多个实施方案中加以组合。应理解,图中所示 的多种实施方案仅是说明性代表并且不一定按比例绘制。
出于简洁的目的,在以下描述中年未阐述描述公知且往往与机器 人***和子***相关联并且可能不必要地使所公开技术的一些重要 方面晦涩难懂的结构或过程的若干细节。此外,虽然以下公开内容阐 述本技术的不同方面的若干实施方案,但若干其他实施方案可具有不 同于此章节中所述的那些的配置或组成部分。因此,所公开的技术可 具有带有附加元件或没有下文所述元件中的若干的其他实施方案。
下文所述的本公开的许多实施方案或方面可呈计算机或处理器 可执行指令(包括由可编程计算机或处理器执行的例程)的形式。相关 领域技术人员应理解,所公开的技术可在下文所示和所述的那些之外 的计算机或处理器***上实践。本文所述的技术可在专门编程、配置 或构造为执行下文所述的计算机可执行指令中的一者或多者的专用 计算机或数据处理器中体现。因此,如本文一般所用的术语“计算机” 和“处理器”指代任何数据处理器并且可包括互联网用具和手持式装 置(包括掌上计算机、可穿戴计算机、蜂窝或移动电话、多处理器***、 基于处理器的或可编程消费者电子器件、网络计算机、迷你计算机等)。 由这些计算机和处理器处理的信息可在任何合适的显示介质(包括液 晶显示器(LCD))处呈现。用于执行计算机或处理器可执行任务的指令 可存储在任何合适的计算机可读介质(包括硬件、固件,或硬件和固件 的组合)中或上。指令可包含在任何合适的存储器装置(包括例如闪存 驱动器和/或其他合适的介质)中。
术语“耦接”和“连接”以及它们的派生词可在本文中用来描述 组成部分之间的结构关系。应理解,这些术语并不意图作为彼此的同 义词。而是,在特定实施方案中,“连接”可用于表示两个或更多个 元件彼此直接接触。除非在上下文中另外阐明,否则术语“耦接”可 用于表示两个或更多个元件彼此直接或间接(在其间具有其他干预元 件)接触,或者两个或更多个元件彼此配合或交互(例如,如呈因果关 系,诸如用于信号传输/接收或用于函数调用),或两者。
合适的环境
图1是具有动态打包机制的机器人***100可在其中操作的示 例性环境的图示。机器人***100可包括被配置来执行一个或多个任 务的一个或多个单元(例如,机器人)和/或与所述一个或多个单元通信。 动态打包机制的多方面可由多种单元来实践或实现。
对于图1所示的示例,机器人***100可包括位于仓库或分配/ 装运枢纽中的卸载单元102、搬运单元104(例如,码垛机器人和/或 拾件机器人)、运输单元106、装载单元108、或它们的组合。机器人 ***100中的单元中的每一个可被配置来执行一个或多个任务。任务 可按顺序组合以执行实现目标(诸如从卡车或货车卸载物体并将它们 存储在仓库中,或者从存储位置卸载物体并将它们准备用于装运)的 操作。在一些实施方案中,任务可包括将物体放置在目标位置上(例 如,放置在货盘顶部上和/或仓/笼/盒/箱内部)。如下文详细描述,机 器人***100可导出单独的放置位置/取向,计算对应运动计划或它 们的组合以用于放置和/或堆叠物体。单元中的每一个被配置来执行 一系列动作(例如,操作其中的一个或多个组成部分)以执行任务。
在一些实施方案中,任务可包括将目标物体112(例如,对应于 正在执行的任务的包裹、盒、箱、笼、货盘等中的一者)从起始/源位 置114操纵(例如,移动和/或重新定向)到任务/目的地位置116(例如, 基于由一个或多个传感器(诸如一个或多个三维(3D)视觉摄像机122) 采集的信息)。例如,卸载单元102(例如,拆箱机器人)可被配置来将 目标物体112从载具(例如,卡车)中的位置搬运到输送带上的位置。 另外,搬运单元104可被配置来将目标物体112从一个位置(例如, 输送带、货盘或仓)搬运到另一位置(例如,货盘、仓等)。再如,搬运 单元104(例如,码垛机器人)可被配置来将目标物体112从源位置(例 如,货盘、拾取区域和/或输送机)搬运到目的地货盘。在完成操作时, 运输单元106可将目标物体112从与搬运单元104相关联的区域搬 运到与装载单元108相关联的区域,并且装载单元108可将目标物体 112(通过例如移动承载目标物体112的货盘)从搬运单元104搬运到 存储位置(例如,架子上的位置)。下文描述关于任务和相关联动作的 细节。
出于说明性目的,机器人***100是在装运中心的上下文中描述 的;然而,应理解,机器人***100可被配置来在其他环境中/出于其 他目的(诸如用于制造、组装、包装、健康护理和/或其他类型的自动 化)执行任务。还应理解,机器人***100可包括图1未示出的其他 单元,诸如操纵器、服务机器人、模块化机器人等。例如,在一些实 施方案中,机器人***100可包括用于将物体从笼车或货盘搬运到输 送机或其他货盘上的去码垛单元、用于将物体从一个容器搬运到另一 个的容器交换单元、用于包裹物体的包装单元、用于根据物体的一个 或多个特性对它们进行分组的分类单元、用于根据物体的一个或多个 特性以不同方式对物体进行操纵(例如,分类、分组和/或搬运)的拾件 单元、或它们的组合。
合适的***
图2是示出根据本技术的一个或多个实施方案的机器人***100 的框图。在一些实施方案中,例如,机器人***100(例如,在上文所 述的单元和/或机器人中的一者或多者处)可包括电子/电气装置,诸如 一个或多个处理器202、一个或多个存储装置204、一个或多个通信 装置206、一个或多个输入-输出装置208、一个或多个致动装置212、 一个或多个运输马达214、一个或多个传感器216、或它们的组合。 多种装置可通过有线连接和/或无线连接彼此耦接。例如,机器人*** 100可包括总线,诸如***总线、***组成部分互连(PCI)总线或PCI 快速总线、超传输或工业标准架构(ISA)总线、小型计算机***接口 (SCSI)总线、通用串行总线(USB)、IIC(I2C)总线,或电子电器工程师 协会(IEEE)标准1394总线(也称为“火线”)。另外,例如,机器人系 统100可包括桥接器、适配器、处理器,或用于在装置之间提供有线 连接的其他信号相关的装置。无线连接可基于例如蜂窝通信协议(例 如,3G、4G、LTE、5G等)、无线局域网(LAN)协议(例如,无线保真 (Wi-Fi))、对等或装置间通信协议(例如,蓝牙、近场通信(NFC)等)、 物联网(IoT)协议(例如,NB-IoT、LET-M等)和/或其他无线通信协议。
处理器202可包括被配置来执行存储在存储装置204(例如,计 算机存储器)上的指令(例如,软件指令)的数据处理器(例如,中央处理 单元(CPU)、专用计算机和/或机载服务器)。在一些实施方案中,处理 器202可包括在可操作地耦接到图2所示的其他电子/电气装置和/或 图1所示的机器人单元的单独/独立控制器中。处理器202可实施控 制其他装置/与其交互的程序指令,从而致使机器人***100执行动 作、任务和/或操作。
存储装置204可包括其上存储有程序指令(例如,软件)的非暂时 性计算机可读介质。存储装置204的一些示例可包括易失性存储器 (例如,高速缓存和/或随机存取存储器(RAM))和/或非易失性存储器 (例如,闪速存储器和/或磁盘驱动器)。存储装置204的其他示例可包 括便携式存储器和/或云存储装置。
在一些实施方案中,存储装置204可用于进一步存储处理结果和 /或预定数据/阈值并提供对它们的访问。例如,存储装置204可存储 包括对可由机器人***100操纵的物体(例如,盒、箱和/或产品)的描 述的主数据252。在一个或多个实施方案中,主数据252可包括预期 由机器人***100操纵的物体的尺寸、形状(例如,潜在姿势的模板 和/或用于识别呈不同姿势的物体的计算机生成的模型)、颜色方案、 图像、标识信息(例如,条形码、快速响应(QR)码、标志等和/或其预 期位置)、预期重量、其他物理/视觉特性、或它们的组合。在一些实 施方案中,主数据252可包括关于物体的操纵相关的信息,诸如物体 中的每一个上的质心(CoM)位置、对应于一个或多个动作/操作的预期 传感器测量值(例如,针对力、扭矩、压力和/或接触测量)、或它们的 组合。另外,例如,存储装置204可存储物体跟踪数据254。在一些 实施方案中,物体跟踪数据254可包括所扫描或所操纵物体的记录。 在一些实施方案中,物体跟踪数据254可包括物体在一个或多个位置 (例如,指定拾取或投放位置和/或输送带)处的成像数据(例如,照片、 点云、现场视频馈送等)。在一些实施方案中,物体跟踪数据254可包 括物体在一个或多个位置处的位置和/或取向。
通信装置206可包括被配置来通过网络与外部或远程装置通信 的电路。例如,通信装置206可包括接收器、发射器、调制器/解调器 (调制解调器)、信号检测器、信号编码器/解码器、连接器端口、网卡 等。通信装置206可被配置来根据一种或多种通信协议(例如,互联 网协议(IP)、无线通信协议等)发送、接收和/或处理电信号。在一些实 施方案中,机器人***100可使用通信装置206来在机器人***100 的单元之间交换信息和/或与在机器人***100外部的***或装置交 换信息(例如,出于报告、数据采集、分析和/或故障排除目的)。
输入-输出装置208可包括被配置来将信息传达给人类操作员和/ 或从人类操作员接收信息的用户接口装置。例如,输入-输出装置208 可包括显示器210和/或用于将信息传达给人类操作员的其他输出装 置(例如,扬声器、触觉电路、或触觉反馈装置等)。另外,输入-输出 装置208可包括控制或接收装置,诸如键盘、鼠标、触摸屏、传声器、 用户接口(UI)传感器(例如,用于接收运动命令的摄像机)、可穿戴输 入装置等。在一些实施方案中,机器人***100可使用输入-输出装 置208来在执行动作、任务、操作或它们的组合时与人类操作员交互。
机器人***100可包括在关节处连接以用于运动(例如,旋转和/ 或平移位移)的物理或结构构件(例如,机器人操纵器臂)。结构构件和 关节可形成被配置来操纵端部执行器(例如,夹持器)的动力链,所述 端部执行器被配置来根据机器人***100的用途/操作来执行一个或 多个任务(例如,夹持、自旋、焊接等)。机器人***100可包括被配 置来关于对应关节或在对应关节处对结构构件进行驱动或操纵(例如, 移位和/或重新定向)的致动装置212(例如,马达、致动器、线材、人 工肌肉、电活性聚合物等)。在一些实施方案中,机器人***100可包 括被配置来到处运输对应单元/底架的运输马达214。
机器人***100可包括被配置来获得用于实施任务(诸如操纵结 构构件和/或运输机器人单元)的信息的传感器216。传感器216可包 括被配置来检测或测量机器人***100的一个或多个物理特性(例如, 其一个或多个结构构件/关节的状态、状况和/或位置)和/或周围环境的 一个或多个物理特性的装置。传感器216的一些示例可包括加速度计、陀螺仪、力传感器、应变计、触觉传感器、扭矩传感器、位置编码器 等。
在一些实施方案中,例如,传感器216可包括被配置来检测周围 环境的一个或多个成像装置222(例如,视觉和/或红外摄像机、二维 (2D)和/或3D成像摄像机、诸如激光雷达或雷达的距离测量装置等)。 成像装置222可生成所检测环境的可通过机器/计算机视觉来处理(例 如,用于自动化检查、机器人引导或其他机器人应用)的代表,诸如数 字图像和/或点云。如下文更详细描述,机器人***100(通过例如处 理器202)可处理数字图像和/或点云,以标识图1的目标物体112、图 1的起始位置114、图1的任务位置116、目标物体112的姿势、关 于起始位置114和/或姿势的置信度量度、或它们的组合。
对于操纵目标物体112,机器人***100(通过例如上文所述的多 种电路/装置)可捕获并分析指定区域(例如,拾取位置,诸如卡车内部 或输送带上)的图像数据,以标识目标物体112及其起始位置114。类 似地,机器人***100可捕获并分析另一指定区域(例如,用于将物 体放置在输送机上的投放位置、用于将物体放置在容器内部的位置, 或货盘上用于堆叠目的的位置)的图像数据,以标识任务位置116。例 如,成像装置222可包括被配置来生成拾取区域的图像数据的一个或 多个摄像机和/或被配置来生成任务区域(例如,投放区域)的图像数据 的一个或多个摄像机。如下文所述,基于图像数据,机器人***100 可确定起始位置114、任务位置116、相关联姿势、打包/放置位置和 /或其他处理结果。下文描述关于动态打包算法的细节。
在一些实施方案中,例如,传感器216可包括被配置来检测机器 人***100的结构构件(例如,机器人臂和/或端部执行器)和/或对应 关节的位置的位置传感器224。机器人***100可使用位置传感器224 来在任务的执行期间跟踪结构构件和/或关节的位置和/或取向。
离散化模型
图3A和图3B是根据本技术的一个或多个实施方案的用于对物 体进行计划和打包的离散化数据的图示。图3A示出离散化物体并且 图3B示出用于物体打包的离散化打包平台。
在一些实施方案中,图1的机器人***100可包括预期物体的存 储在图2的主数据252中的预定离散化模型/代表。在一些实施方案 中,机器人***100(通过例如图2的处理器202)可通过将真实世界 物体(例如,包裹、货盘和/或与任务相关联的其他物体)的连续表面/边 缘映射到离散对应物(例如,单位长度和/或单位面积)中动态地生成离 散化模型。例如,机器人***100可离散化由图2的一个或多个成像 装置222捕获的目标物体112和/或货盘顶表面的图像数据(例如,俯 视图图像和/或点云数据)。换句话说,机器人***100可离散化图1 的起始位置114、输送机上起始位置114之前的位置和/或图1的任务 位置116的图像数据。机器人***100可基于标识图像数据中的物体 /货盘的外周边,然后根据单位尺寸/面积划分外周边内的区域来离散 化。在一些实施方案中,可根据坐标方案和/或预定调整因子/方程, 基于物体/货盘相对于成像装置222的大小和/或位置,针对图像数据对单位尺寸/面积进行缩放或映射。
如图3A所示,机器人***100的一些实施方案可使用离散化物 体模型302来对物体(例如,目标物体112)的放置位置进行计划/导出。 离散化物体模型302(使用点划线示出)可根据离散化单元(例如,单位 长度)代表到达或传入的物体(例如,包裹、盒、箱等)的外部物理尺寸、 形状、边缘、表面、或它们的组合(使用短划线示出)。离散化物体模 型302可代表已经如上文所述地成像并离散化的预期/已知物体和/或 非预期的/未知物体。
如图3B所示,机器人***100的一些实施方案可使用一个或多 个离散化平台模型304(例如,图1的任务位置116的离散化代表)来 对物体的堆叠放置进行计划/导出。离散化平台模型304可根据离散 化单元代表放置区域340(例如,任务位置116的物理尺寸、形状或它们的组合,诸如任务位置116的顶表面、放置在其上的包裹的顶表 面、或它们的组合)。在一个或多个实施方案中,离散化平台模型304 可诸如通过实时更新来代表放置区域340的实时条件。例如,关于俯 视图,离散化平台模型304初始地可代表将要接收并直接接触物体的 货盘的顶表面、仓或盒的内部底表面等。当机器人***100放置物体 时,放置区域340可改变成包括所放置包裹的顶表面(例如,用于堆 叠包裹),并且可更新离散化平台模型304以反映所述变化。
在一些实施方案中,离散化平台模型304可以是基于一个或多个 标准大小货盘(例如,1.1m乘1.1m货盘)的俯视图的。因此,离散化 平台模型304可对应于沿着根据机器人***100所利用的网格*** 的水平平面(例如,x-y平面)的放置区域的像素化2D代表。在一些实 施方案中,离散化物体模型302可包括预期或到达的物体的俯视图 (例如,x-y平面)。因此,离散化物体模型302可对应于物体的像素化 2D代表。
用于生成离散化模型的离散化单元可包括由***操作员、***设 计者、预定输入/设定、次序或它们的组合设定的长度。在一些实施方 案中,机器人***100可使用单位像素310(例如,具有根据离散化 单元的一个或多个尺寸的多边形,诸如正方形)来描述目标物体(通过 例如离散化物体模型302)和装载平台/表面(通过例如离散化平台模型 304)的面积/表面。因此,机器人***100可沿着x-y轴将物体和装载 平台以2D像素化。在一些实施方案中,单位像素310(例如,离散化 单元)的大小可根据物体的尺寸和/或装载平台的尺寸而改变。单位像 素310的大小还可进行调整(通过例如预设规则/方程和/或操作员选择),以平衡所需资源(例如,计算时间、所需存储器等)与打包准确性。 例如,当单位像素310的大小减小时,计算时间和打包准确性可增加。 因此,使用可调整的单位像素310的打包任务(例如,目标包裹和打 包平台)的离散化提供码垛包裹的增加的灵活性。机器人***100可 根据实时需求、情境、图案和/或环境来控制计算资源/时间与打包准 确性之间的平衡。
在一些实施方案中,机器人***100针对离散化物体模型302可 包括单位像素310的与物体仅部分地重叠以使得单位像素310延伸 超出物体的实际周边边缘的实例。在其他实施方案中,机器人***100 可将单位像素310的超过平台表面的实际尺寸的部分重叠实例从离 散化平台模型304排除,使得离散化物体模型302中的单位像素310 重叠和/或包含在平台表面的实际周边边缘内。
作为说明性示例,图3A示出代表目标物体112的离散化物体模 型的第一模型取向332和第二模型取向334。在一些实施方案中,机 器人***100可将离散化模型中的一个(即,被捕获/存储为第一模型 取向332)沿着成像平面旋转预定量。如图3A所示,机器人***100 可将离散化物体模型302绕垂直轴(进出或垂直于图示的平面延伸)并 且沿着水平平面(例如,沿着x轴和y轴代表)旋转90度来得到第二 模型取向334。机器人***100可使用不同的取向来测试/评估物体的 对应放置。
基于离散化数据/代表,机器人***100可动态地导出目标物体 112的放置位置350。如图3B所示,机器人***100可动态地导出放 置位置350,即使在放置区域340上已放置一个或多个物体(例如,在 图3B中示出为具有斜纹填充的物体)之后也如此。另外,放置位置 350的动态导出可在目标物体112被卸载/下架、登记、扫描、成像或 它们的组合之后/同时发生。例如,机器人***100可在运输目标物 体112(通过例如输送机)时、在图2的成像装置222生成目标物体112 的图像数据之后、或它们的组合,动态地导出放置位置350。
动态地导出物体的放置位置350为装运/包装环境提供增加的灵 活性和减少的人力劳动。机器人***100可使用物体和货盘的离散化 实时图像/深度图(即,包括已经放置的物体)来测试和评估不同的放置 位置和/或取向。因此,当不知道物体的到达顺序/次序时和/或当发生 非预期的事件时(例如,丢件事件和/或碰撞事件),即使当物体不可识 别时(例如,对于新的/非预期的物体和/或计算机视觉错误),机器人系 统100仍可在没有任何操作员干预的情况下对物体进行打包。
出于说明性目的,放置位置350在图3B中示出为与已经放置的 物体相邻(即,与之放置在相同的水平层/高度上),诸如直接位于货盘 上/接触货盘。然而,应理解,放置位置350可位于已经放置的物体的 顶部上。换句话说,机器人***100可导出用于将目标物体112堆叠 在货盘上已经存在的一个或多个物体之上和/或顶部上的放置位置 350。如下文详细描述,机器人***100可在导出放置位置350时评 估已经放置的物体的高度,以确保当物体堆叠在已经放置的物体顶部 上时物体被充分支撑。
在一些实施方案中,机器人***100可在导出放置位置350时标 识物体边缘362。物体边缘362可包括图像数据中代表已经放置在货 盘上的物体的边缘和/或侧面的线。在一些实施方案中,物体边缘362 可对应于暴露的边缘(例如,不与另一物体/边缘直接接触/相邻),使得 它们限定放置在任务位置116上的一个或一组物体(例如,一层物体) 的周边。
如下文更详细描述,机器人***100可根据一组放置规则、条件、 参数、要求等导出放置位置350。在一些实施方案中,机器人***100 可基于评估/测试一个或多个候选位置360来导出放置位置350。候选 位置360可对应于在多种位置和/或取向下覆盖在离散化平台模型304 顶部上的离散化物体模型302。因此,候选位置360可包括可能将目 标物体112放置成与一个或多个物体边缘362相邻和/或可能将目标 物体112堆叠在已经放置的物体中的一个或多个上。机器人***100 可根据多种参数/条件(诸如支撑量度/条件、与支撑物体的易碎性评级 (例如,诸如对于堆叠在其上的包装的最大支撑重量)相比的支撑重量、空间/打包影响、或它们的组合)来评估候选位置360中的每一个。机 器人***100可使用一个或多个放置规则(诸如无碰撞要求、堆叠稳 定性、客户指定的规则/优先级、包裹间隔要求或其不存在、总装载包 裹的最大化、或它们的组合)来进一步评估候选位置360。
实时放置表面更新
图4A和图4B示出根据本技术的一个或多个实施方案的支撑计 算和支撑指标的多方面。在一些实施方案中,如图4A所示,图1的 机器人***100可基于将图1的目标物体112的图3A的离散化物体 模型302重叠在图1的任务位置116的离散化平台模型304之上来 生成图3B的候选位置360。此外,机器人***100可在生成候选位 置360时在离散化平台模型304上迭代地移动离散化物体模型302。 例如,机器人***100可通过将根据一个或多个取向(例如,图3A的 第一模型取向332和/或图3A的第二模型取向334)的对应离散化物 体模型302放置在离散化平台模型304的预定初始位置(例如,角落) 处来生成候选位置360的初始实例。对于候选位置360的下一个实 例,机器人***100可根据预定方向/模式来将对应于另一/下一个物 体的离散化物体模型302移动预定距离(例如,图3B的一个或多个单 位像素310)。
当候选位置360与已经放置在任务位置116处的一个或多个物 体重叠时,机器人***100可计算并评估由已经放置的物体提供的支 撑量度。为了计算并评估支撑量度,机器人***100可使用图2的成 像装置222中的一个或多个来实时地确定图3B的放置区域340的高 度/等高线。在一些实施方案中,机器人***100可使用来自位于任 务位置116上方的成像装置222中的一个或多个的深度量度(例如, 点云值)。因为地面和/或平台(例如,货盘)表面的竖直位置(例如,平 台表面在设施地表面上方的高度)是已知的,所以机器人***100可 使用深度量度来计算平台、所放置物体或它们的组合的所暴露顶表面 的高度/等高线。在一些实施方案中,机器人***100可对任务位置 116进行成像并且实时地(诸如在将物体运输到平台和/或将物体放置 在平台上之后)更新一个或多个暴露顶表面的高度。
在一些实施方案中,如图4A所示,机器人***100可将离散化 平台模型304更新成包括高度量度402。机器人***100可根据离散 化平台模型304中的离散像素(例如,单位像素310)中的每一个来确 定高度量度402。例如,机器人***100可将高度量度402确定为放置区域340的由对应单位像素310代表的表面部分的最大高度。
对于与已经放置的物体中的一个或多个重叠的候选位置360中 的每一个,机器人***100可基于高度量度402评估放置可能性。在 一些实施方案中,机器人***100可基于标识在候选位置360中的每 一个中重叠的高度量度402的最高值来评估放置可能性。机器人*** 100可进一步标识位于候选位置360中的每一个中的其他高度量度 402,其中高度量度402在相对于高度量度402的最高量度的差值阈 值的限度内。合格单元/像素可代表可为堆叠物体提供支撑以使得所 堆叠物体保持基本上平坦/水平的位置。
如图4A所示,对于候选位置360中的第一个(离散化平台模型 304的左上角),最高高度量度可以是0.3(即,300毫米(mm)高)。对 于预定为0.02(代表例如20mm)的差值阈值,机器人***100可将前 四个离散化单元/像素标识为满足差值阈值。机器人***100可使用所标识/合格单元/像素来评估/代表支撑程度。
图4B示出支撑计算的另一示例。图4B示出图3的候选位置360 中的一个,其中离散化物体模型302(使用实心较粗轮廓线示出)覆盖 在离散化平台模型304的左上角。机器人***100可计算/利用作为 用于评估候选位置360的参数的多种支撑参数410。例如,支撑参数 410可包括离散化尺寸412、重叠面积414、高度差阈值416、支撑阈 值418、最大高度420、高度下限422、合格计数424,一组支撑区域 轮廓线426、支撑区域大小428、支撑比430、质心(CoM)位置432、 或它们的组合。
离散化尺寸412可根据图3A的单位像素310来描述图1的目标 物体112的物理尺寸(例如,长度、宽度、高度、周长等)。例如,离 散化尺寸412可包括形成离散化物体模型302的周边边缘的单位像 素310的量。重叠面积414可描述由目标物体112占据的区域(例如, 沿着水平平面的占位面积大小),这可类似地根据单位像素310来代 表。换句话说,重叠面积414可对应于离散化物体模型302内的单位 像素310的量。对于图4B所示的示例,目标物体112可具有六个像 素乘七个像素的离散化尺寸412,这对应于42个像素的重叠面积414。
高度差阈值416和支撑阈值418可对应于用于处理和/或验证候 选位置360的限度。可由操作员和/或订单预定和/或调整的高度差阈 值416可代表与用于接触和/或支撑放置在顶部上的包裹的另一参考 高度的允许偏差(例如,对应于由离散化物体模型302重叠的区域中 的高度量度402的最高实例的最大高度420)。换句话说,可使用高度 差阈值416来限定可接触和/或支撑放置在其上的包裹的表面高度范 围。这样,相对于最大高度420,高度下限422可对应于重叠面积414 内可为所堆叠包裹提供支撑的高度的下限。对于图4B所示的示例, 高度差阈值416可以是0.02。当最大高度420是0.2时,高度下限422 可以是0.18。因此,在将目标物体112放置在候选位置360处时,机 器人***100可估计高度大于0.18的表面/像素将接触目标物体112 和/或为目标物体112提供支撑。
因此,在一个或多个实施方案中,机器人***100可根据高度差 阈值416来对重叠面积414内的单位像素310进行分类。例如,机器 人***100可将具有满足高度差阈值416的高度(即,大于或等于高 度下限422的值)的单位像素310分类为支撑位置442(例如,代表能够在其上堆叠物体的表面的单位像素310的分组,诸如图4B中通过 阴影像素代表的)。机器人***100可将其他单位像素310分类为不 合格位置444(例如,高度低于高度下限422的像素)。
支撑阈值418可代表基于支撑位置442的充分性来评估候选位 置360的限度。例如,支撑阈值418可用于评估与支撑位置442相关 联的量、比、面积、位置、或它们的组合。在一些实施方案中,可使 用支撑阈值418来确定候选位置360的合格计数424(例如,支撑位置442的量)是否足以支撑目标物体112。
在一个或多个实施方案中,可使用支撑阈值418来评估与支撑位 置442相关联的支撑区域(例如,可如可由高度阈值确定的为堆叠在 其上的物体提供支撑的单位像素310)。例如,机器人***100可基于 跨或围绕不合格位置444延伸以连接支撑位置442的最外部/周边实 例的角落的扩边和/或确定线来确定支撑区域轮廓线426。因此,支撑 区域轮廓线426可排除不合格位置444。因此,支撑区域轮廓线426 可基于支撑位置442的周边实例来限定支撑区域的周边。由于支撑区 域轮廓线426可延伸跨过和/或包括不合格位置444,因此支撑区域大 小428(例如,支撑区域内的单位像素310的量)可大于合格计数424。 这样,支撑区域大小428有效地代表提供支撑的最外边缘/角落之间 的间隔。因为较宽的支撑是优选的(例如,其中支撑区域轮廓线426的 部分大于物体的重叠面积414以减少悬垂和/或提高稳定性),支撑阈 值418可以对应于支撑区域310中单位像素的最小数目(例如,用于评估支撑区域轮廓线426),从而有效地评估提供支撑的最外边缘/角 落之间的间隔。
在一些实施方案中,支撑阈值418可用于评估可基于将合格计数 424和/或支撑区域大小428与重叠面积414进行比较来计算的支撑 比430。例如,支撑比430可包括合格计数424与重叠面积414之间 的比,用于代表水平稳定性、支撑重量浓度、或它们的组合。另外,支撑比430可包括支撑区域大小428与重叠面积414之间的比,用于 代表目标物体112下方的支撑边缘/角落之间的相对宽度。
此外,机器人***100可基于目标物体112的CoM位置432来 进一步评估候选位置360。在一些实施方案中,机器人***100可从 图2的主数据252访问目标物体112的CoM位置432和/或基于夹持 和/或提升目标物体112来动态地估计CoM位置432。一旦进行访问 /估计,机器人***100就可将CoM位置432与支撑区域轮廓线426 进行比较。机器人***100可要求候选位置360在支撑区域轮廓线 426内包括CoM位置432并且消除/取消不满足这种要求的候选位置 360的资格。在一个或多个实施方案中,机器人***100可基于CoM 位置432与支撑区域轮廓线426之间的间隔距离(例如,沿着x轴和/ 或y轴)来计算并评估放置分数。
机器人***100可使用支撑参数410来评估约束/要求。例如, 机器人***100可消除/取消不满足支持阈值418、CoM位置阈值(例 如,在支持区域轮廓线426内包括CoM位置432的要求)和/或其他 堆叠规则的候选位置的资格。另外,机器人***100可使用支撑参数410来根据预定权重和/或方程计算候选位置360(例如,满足约束的 位置)的放置分数。如下文详细描述,机器人***100可使用计算的 放置分数来根据预定偏好(例如,如权重/方程所反映)对候选位置360 进行排名。
物体放置操作
图5是示出由根据本公开的一个或多个实施方案的机器人*** 100执行的示例性放置的俯视图。在一些实施方案中,机器人***100 可包括机器人臂502(例如,图1的搬运单元104的一部分,诸如码 垛机器人)和/或与之通信,所述机器人臂502被配置来从起始位置114 搬运目标物体112并将其放置在任务位置116处的所导出放置位置 350处。例如,机器人***100可操作机器人臂502以从输送机上的 指定位置/部分夹持并拾取目标物体112,并且将目标物体112放置在 货盘上。
机器人***100可例如在目标物体112到达设施和/或起始位置 114时和/或在初始地开始一个或多个操作(诸如打包操作)之后动态地 导出放置位置350)。机器人***100可基于或考虑一个或多个不确定 性因素来动态地导出放置位置350,所述不确定性因素诸如打包计划 (例如,用于代表针对包括目标物体112的一组物体导出的在任务位 置116处的放置位置350的计划)的不存在、到达物体的错误(例如, 当物体与预期/已知物体或顺序不匹配时)、或它们的组合。机器人系 统100还可基于或考虑目的地处的一个或多个不确定性或错误来动 态地导出放置位置350,所述一个或多个不确定性或错误诸如归因于 非预期的和/或改变的放置区域340(例如,当通向任务位置116的通 路局部模糊时,诸如当笼或车厢(car track)并未完全打开时)、先前放 置的物体508(例如,货盘上的不可识别和/或非预期的包裹和/或先前 放置的物体508中的一个或多个的移位)和/或(例如,机器人臂502与 先前放置的物体508之间的)碰撞事件。
在一些实施方案中,机器人***100可基于通过图2的传感器216(例如,图2的成像装置222)中的一个或多个动态地采集的数据 (例如,图像数据和/或测量数据)来动态地导出放置位置350。例如, 机器人***100可包括位于起始位置114和/或传入路径(例如,输送机)上方的源传感器504(例如,图1的3D摄像机122中的一个)和/或 与之通信。机器人***100可使用来自源传感器504的数据来生成和 /或访问图3A的离散化物体模型302。在一个或多个实施方案中,机 器人***100可使用源传感器504对物体进行成像和/或测量物体的一个或多个尺寸。机器人***100可将图像和/或测量值与图2的主 数据252进行比较,以标识传入物体。基于标识,机器人***100可 访问与物体相关联的离散化物体模型302。在一个或多个实施方案中, 机器人***100可基于如上文所述根据单位像素310划分图像/尺寸来动态地生成离散化物体模型302。
另外,机器人***100可包括位于任务位置116上方的目的地传 感器506(例如,图1的3D摄像机122中的一个)和/或与之通信。机 器人***100可使用来自目的地传感器506的数据来确定并动态地 更新图3B的离散化平台模型304。在一个或多个实施方案中,机器人***100可对放置区域340(例如,任务位置116,诸如货盘、笼和 /或车厢)的一个或多个尺寸进行成像和/或测量。机器人***100可使 用图像和/或测量值来标识、访问和/或生成离散化平台模型304,这类 似于上文针对离散化物体模型302所述。此外,机器人***100可使 用来自目的地传感器506的数据(例如,深度图)来确定图4A的高度 量度402。因此,机器人***100可使用高度量度402来实时地更新 放置区域340和离散化平台模型304。例如,机器人***100可诸如 在将目标物体112放置在放置位置350之后根据先前放置的物体508更新高度量度402。
机器人***100可导出用于将目标物体112搬运到图3B的放置 位置350和/或候选位置360中的每一个的接近路径510。接近路径 510可对应于用于操纵目标物体112/跨空间将目标物体112从起始位 置114搬运到对应候选位置360的运动计划。接近路径510可呈跨水 平方向和/或竖直方向延伸的3D形式。
当放置目标物体112时,机器人***100可核实将目标物体112 放置在所导出放置位置处对于根据上文图3至图6所述的指标放置 目标物体112(例如,在任务位置116处的条件状态已改变的情况下) 是稳定的。在放置物体之后,机器人***100可核实并验证物体在所 导出放置位置处的放置是否正确和/或任务位置116处的条件状态是 否已改变。至少部分地基于关于验证的信息,机器人***100可继续 在任务位置116处对一个或多个其他物体(例如,目标物体112的另 外的/后续实例)进行包装(例如,通过动态地导出一个或多个其他物体 的放置位置)。
接近路径评估
图6A和图6B是示出根据本公开的一个或多个实施方案的用于 放置图1的目标物体112的示例性方法的廓线图。图6A和图6B示 出用于将目标物体112在图3B的对应候选位置360处放置在任务位 置116(例如,货盘)上的先前放置的物体508中的一个或多个之上的图5的接近路径510。
图1的机器人***100可基于被示为F-1至F-5的虚线框的接近 增量602导出接近路径510。接近增量602可包括目标物体112在3D 空间中沿着对应接近路径510的顺序位置。换句话说,接近增量602 可对应于用于跟随对应接近路径510的目标物体112的采样位置。接 近增量602可根据对应接近路径510的路径段604来对准。路径段 604可对应于接近路径510中的线性段/方向。路径段604可包括用于 将目标物体112放置在对应候选位置360处的最终段606。最终段 606可包括竖直(例如,向下)方向。
为了导出接近路径510,机器人***100可标识可能潜在地成为 障碍物610(例如,诸如当将目标物体112放置在候选位置360处时 的潜在障碍物)的先前放置的物体508中的任一者。在一个或多个实 施方案中,机器人***100可将潜在障碍物610标识为与连接起始位 置114与对应候选位置360的水平线611(例如,沿着x-y平面的直 线)重叠的先前放置的物体508的一个或多个实例。机器人***100 可进一步将一个或多个潜在障碍物610标识为与围绕水平线611导 出的通道613(诸如基于导出平行于水平线并与水平线重叠且具有基于目标物体112的一个或多个尺寸(例如,宽度、长度和/或高度)的宽 度的通道)重叠的先前放置的物体508的一个或多个实例。如图6A和 图6B所示,起始位置114可在候选位置360的右侧。因此,机器人 ***100可将在右侧的先前放置的物体标识为潜在障碍物610。
在一些实施方案中,机器人***100可基于图4A的高度量度402 来验证潜在障碍物610。例如,机器人***100可利用大于或等于候 选位置360的高度量度的高度量度402中的一个或多个作为潜在障 碍物610来验证/标识潜在障碍物610。机器人***100可消除高度量 度402小于候选位置360的高度量度的先前放置的物体508。在一个 或多个实施方案中,机器人***100可基于与候选位置360的高度和 /或潜在障碍物610的高度相关联的模糊性来标识/消除潜在障碍物 610。
在一些实施方案中,机器人***100可以相反次序(诸如从候选 位置360开始并且在图5的起始位置114处结束)导出接近路径510。 因此,机器人***100可首先(例如,在其他段之前)导出最终段606 以避开潜在障碍物610。例如,机器人***100可基于将接近增量602 的高度迭代地增加预定距离来确定接近增量602(例如,首先是‘F- 1’,然后是‘F-2’等)。对于每次迭代,机器人***100可计算并分 析所确定接近增量602(例如,其底表面/边缘)与潜在障碍物610(例 如,其顶表面/边缘)之间的矢量612。机器人***100可继续增加接 近增量602的高度,直到矢量612表示所确定接近增量602高于潜在 障碍物610和/或通过间隙阈值614(例如,对于目标物体112在潜在 障碍物610的最高点上方以避免目标物体112与潜在障碍物610之 间的接触或碰撞的最小竖直间隔的要求)清除潜在障碍物610为止。 当所确定接近增量满足间隙阈值614或者用于随后迭代时,机器人系 统100可沿着水平方向(例如,朝向起始位置114)将对应接近增量602 调整预定距离。因此,机器人***100可基于候选位置360和满足间 隙阈值614的接近增量602导出最终段606和/或后续路径段604,以 导出接近路径510。
一旦导出,机器人***100就可使用接近路径510来评估对应候 选位置360。在一些实施方案中,机器人***100可根据接近路径510 计算放置分数。例如,机器人***100可根据偏好(例如,根据对应于 预定放置偏好的一个或多个权重)针对最终/竖直段606的较短长度/距 离来计算放置分数。因此,在比较图6A与图6B的接近路径510时, 机器人***100可优选图6B所示的具有较短长度的最终/竖直段606 的路径。在一个或多个实施方案中,机器人***100可包括与用于消 除或取消候选位置360的资格的接近路径510(例如,用于最终/竖直 段606)相关联的约束,诸如最大限度。
在一些实施方案中,机器人***100可根据其他碰撞/障碍相关 参数进一步评估对应候选位置360。例如,机器人***100可根据候 选位置360与先前放置的物体508中的一个或多个之间的水平间隔 616来评估候选位置360。水平间隔616中的每一个可以是沿着水平 方向(例如,x-y平面)在对应候选位置360与先前放置的物体508的 相邻实例之间的距离(例如,最短距离)。机器人***100可基于水平 间隔616计算候选位置360的放置分数,这类似于上文针对接近路径 510所述。另外,机器人***100可基于水平间隔616(诸如当水平间 隔616未达到最小要求时)消除或取消候选位置360的资格。下文论 述关于放置分数计算和/或用于消除候选位置360的约束的细节。
操作流程
图7是根据本技术的一个或多个实施方案的用于操作图1的机 器人***100的方法700的流程图。方法700可用于生成用于将包裹(例如,箱和/或盒)放置到平台(例如,货盘)上的2D/3D打包计划和/或 用于分别放置包裹。方法700可基于利用图2的处理器202中的一个 或多个执行存储在图2的存储装置204中的一个或多个上的指令来 实施。
在框702处,机器人***100可标识包裹组(例如,可用包裹)和 目的地(例如,图1的任务位置116,诸如用于接收包裹的货盘和/或 容器)。例如,机器人***100可标识包裹组以代表包括可用于打包、 位于源处、指定用于放置和/或列在订单/请求/清单中的包裹的可用包 裹。另外,机器人***100代表任务位置116的可放置包裹的区域(例 如,货盘(诸如图3的放置货盘340)的顶部装载表面)的大小或尺寸。 在一些实施方案中,机器人***100可标识货盘的大小、尺寸、类型, 或它们的组合。
在框704处,机器人***100可生成和/或访问对应于代表可用 包裹的包裹组和/或任务位置116的离散化模型(图3A的离散化物体 模型302和/或图3B的离散化平台模型304)。在一些实施方案中,机 器人***100可基于划分物体和/或平台区域(例如,根据图3B的单 位像素310的货盘顶表面)的物理尺寸来(例如,实时地(诸如在接收到 订单之后和/或在开始打包操作之前)或离线地)生成离散化模型。单位 像素310可(由例如制造商、下单客户和/或操作员)预定为诸如1毫米 (mm)或1/16英寸(in)或更大(例如,5mm或20mm)。
在一些实施方案中,机器人***100可访问存储在存储装置204 和/或另一装置(例如,通过图2的通信装置206访问的存储装置、数 据库和/或包裹供应者的服务器)中的离散化模型。机器人***100可 访问代表可用包裹和/或任务位置116的预定离散化模型。例如,机 器人***100可通过在图2的主数据252(例如,预定表或查找表)中 搜索可用包裹及其对应模型来访问对应于可用包裹的离散化物体模 型302。类似地,机器人***100可访问代表将要放置可用包裹的平 台(诸如所标识货盘)的离散化平台模型304。
在框706处,机器人***100可确定包裹分组(例如,可用包裹 的子组)。机器人***100可基于可用包裹确定包裹分组,以用于将 包裹分组放置在所标识平台(例如,放置货盘340)上。机器人***100 可根据可用包裹的一个或多个特性中的相似性和/或图案来确定包裹 分组。在一些实施方案中,如框721处所示,机器人***100可通过 根据分组条件/要求将可用包裹分组来确定包裹分组。分组条件/要求 的一些示例可包括包裹优先级(例如,如一个或多个客户所指定)、易 碎性评级(例如,包裹可支撑的最大重量)、重量、包裹尺寸(例如,包 裹高度)、包裹类型,或它们的组合。在将可用包裹分组时,机器人系 统100可在主数据252中搜索匹配分组条件/要求的可用包裹的多种 特性。
在框708处,机器人***100可计算可用包裹和/或其分组(即, 包裹分组)的处理次序(例如,考虑/导出放置位置的顺序)。在一些实施 方案中,如框722处所示,机器人***100可根据一个或多个定序条 件/要求计算处理次序。例如,机器人***100可根据包裹分组中的 每一个内的包裹数目将分组的放置计划进行优先级排序,诸如以便在 放置计划中更早地处理具有更多数目的包裹的包裹分组。作为另一示 例,机器人***100可根据每个群组的填充速率来对包裹分组的放置 计划进行优先级排序,诸如相比具有更多数目的更小包裹的包裹分组, 在放置计划中更早地处理具有更少数目的更大包裹的包裹分组。在一些实施方案中,定序条件可与分组条件重叠,诸如针对重量范围、易 碎性评级等。例如,机器人***100可优先考虑处理更重和/或更不 易碎的包裹以便更早地处理和/或放置在更低层中。
在一些实施方案中,机器人***100可根据组合水平面积来对放 置计划进行优先级排序。机器人***100可使用主数据252中指定的 信息来计算(通过例如将对应宽度和长度相乘)或访问分组中的包裹的 顶表面的表面积。在计算组合水平面积时,机器人***100可将在阈 值范围内具有相同类型和/或高度的包裹的表面积相加。在一些实施 方案中,机器人***100可优先考虑将具有更大组合水平面积的分组 的放置计划以便更早地处理和/或放置在更低层中。
对于一个或多个实施方案,机器人***100可用可用包裹的标识 符和/或量加载缓冲器。机器人***100可根据分组对缓冲器中的标 识符进行定序。此外,机器人***100可根据处理次序对缓冲器中的 标识符进行定序。因此,缓冲器中的定序值可对应于可用包裹和/或剩 余包裹。
如框724处所示,例如,机器人***100可在实施对应堆叠计划 之前(诸如在将包裹组中的任何包裹放置在平台上之前)计算可用包裹 的初始组(例如,包裹组)的处理次序。在一些实施方案中,如框726 处所示,机器人***100可在启动实施对应堆叠计划之后或与此同时 计算可用包裹的剩余组的处理次序。例如,如来自框716的反馈回路 所示,机器人***100可根据一个或多个触发条件来计算剩余组(例 如,可用包裹中尚未被搬运到平台和/或保持处于源位置的部分)的处 理次序。示例性触发条件可包括堆叠错误(例如,丢失的或掉落的包 裹)、碰撞事件、预定重新触发定时,或它们的组合。
在框710处,机器人***100可生成用于沿着水平平面放置可用 包裹的2D计划。例如,机器人***100可生成放置计划以代表可用 包裹沿着水平平面的2D映射。机器人***100可基于离散化模型生 成两个或更多个放置计划。例如,机器人***100可基于将离散化物 体模型302与离散化平台模型304进行比较来生成放置计划。机器人 ***100可确定离散化物体模型302的不同放置/布置,将它们与离 散化平台模型304进行重叠/比较,并且验证/保持在重叠时在离散化 平台模型304的边界内的布置。机器人***100可将无法放置在离散 化平台模型304的边界内的包裹指定用于另一层(例如,放置计划的 另一实例)。因此,机器人***100可迭代地导出放置计划的代表堆 叠计划的2D层的放置位置,直到包裹组中的包裹中的每一个已被指 派放置计划中的位置为止。
在一些实施方案中,机器人***100可基于包裹分组来生成放置 计划。例如,机器人***100可确定一个包裹分组内的包裹的布置, 之后才考虑另一分组中的包裹的放置。当包裹分组内的包裹铺满一层 (即,包裹无法纳入离散化平台模型304的一个层或一个实例中)时和 /或在放置一个分组的所有包裹之后,机器人***100可将下一分组 中包裹的位置指派到离散化平台模型304中的任何剩余/未占用区域。 机器人***100可迭代地重复所述指派,直到没有任何未指派的包裹 可纳入离散化平台模型304的剩余空间上为止。
类似地,机器人***100可基于处理次序(例如,基于根据处理 次序的包裹分组)来生成放置计划。例如,机器人***100可基于根 据处理次序指派包裹和/或分组来确定测试布置。机器人***100可 向最早定序的包裹/分组指派用于测试布置的初始放置,然后根据处 理次序测试/指派后续包裹/分组。在一些实施方案中,机器人***100 可跨层(例如,跨放置计划的实例)保持包裹/分组的处理次序。在一些 实施方案中,机器人***100可在每个层填满之后重新计算并更新处 理次序(在图7中使用短划反馈线示出)。
在一些实施方案中,作为上文所述过程的说明性示例,机器人系 统100可通过标识包裹组内的不同包裹类型来生成2D计划。换句话 说,在框732处,机器人***100可标识包裹分组和/或包裹组中的 每一个内的独特包裹(例如,如由包裹类型代表)。
在框734处,机器人***100可导出(例如,迭代地)可用包裹中 的每一个的放置位置。在框736处,机器人***100可确定根据处理 次序按顺序为第一个的独特包裹的初始放置位置。机器人***100可 根据预定图案来确定初始放置位置,如上文所述。在一些实施方案中, 机器人***100可计算每个独特包裹的初始放置。所得初始放置各自 可诸如通过跨迭代跟踪放置计划350来自发展成独特放置组合(例如, 搜索树的实例)。在框738处,机器人***100可导出并跟踪根据处 理次序的后续包裹和/或如上文所述的剩余包裹的候选放置位置。因 此,机器人***100可迭代地导出放置组合。
在导出放置组合(例如,候选放置位置)时,机器人***100可基 于迭代地导出并评估候选堆叠情境(例如,可用包裹的独特放置位置 的潜在组合)来测试/评估对应包裹的离散化物体模型302的位置。候 选堆叠情境可各自基于根据上文所论述的顺序标识包裹的独特潜在 位置(例如,根据放置位置的预定顺序/规则)来导出。候选堆叠情境和 /或独特放置位置可根据一个或多个放置标准(例如,要求、约束、放 置成本和/或启发式分数)来评估。例如,放置标准可要求离散化物体 模型302在被放置在所选位置处时完全纳入离散化平台模型304的 水平边界内。另外,放置标准可要求离散化物体模型302的放置位于 相对于初始放置位置(例如,诸如沿着水平方向)和/或先前放置位置的 阈值距离之内或之外,诸如为了相邻放置或间隔要求。放置标准的其 他示例可包括对以相邻方式放置在一个或多个包裹尺寸(例如,高度)、 易碎性评级、包裹重量范围或它们的组合上具有一种或多种最小差异 的包裹的偏好。在一些实施方案中,放置标准可包括可对应于先前指 派在层中的包裹相对于参考位置(例如,码垛机器人的位置)的位置和 /或特性(例如,高度)的碰撞可能性。因此,机器人***100可生成包 裹放置位置的多个独特放置组合(即,每个层的候选放置计划和/或各 自包括多个层的候选堆叠情境)。在一些实施方案中,机器人***100可基于跨放置迭代生成并更新搜索树来跟踪组合的放置。
在框740处,机器人***100可计算/更新每个组合/包裹放置的 放置分数。机器人***100可根据放置条件/偏好(例如,包裹尺寸、 碰撞可能性、易碎性评级、包裹重量范围、间隔要求、包裹量条件)中 的一者或多者来计算放置分数。例如,机器人***100可使用偏好因 子(例如,乘数权重)和/或方程来描述对以下各项的偏好:包裹之间的 间隔距离、相邻包裹的包裹尺寸/易碎性评级/包裹重量的差异、碰撞 可能性、同一高度处的连续/相邻表面、其统计学结果(例如,平均值、 最大值、最小值、标准差等),或它们的组合。每个组合可根据可由系 统制造商、订单和/或***操作员预限定的偏好因子和/或方程来评分。 在一些实施方案中,机器人***100可在总放置迭代结束时计算放置 分数。
在一些实施方案中,机器人***100可在每次放置迭代之后更新 放置组合在优先级队列中的顺序。机器人***100可基于放置分数来 更新顺序。
机器人***100可基于确定空源状态、全层状态或不变分数状态、 诸如当一个候选放置计划完成时停止放置迭代。空源状态可代表已替 换所有可用包裹。全层状态可代表没有其他包裹可放置在所考虑离散 化平台模型304的剩余区域中。不变分数状态可代表组合的放置分数 跨一个或多个连续放置迭代保持恒定。在一些实施方案中,机器人系 统100可使用不同的初始放置位置和/或不同的处理次序(例如,用于 对具有与定序条件相关联的相同定序值/分数的群组进行重新排序)来 重复放置迭代,以导出候选堆叠情境的其他实例。换句话说,机器人 ***100可生成多个2D放置计划,其中每个2D放置计划可代表3D堆叠内的层(例如,候选堆叠情境的实例)。在其他实施方案中,机器 人***100可在导出2D放置计划时迭代地考虑3D效应并且在2D 放置计划变完整时作为下一迭代开始导出下一层。
在框712处,机器人***100可生成堆叠计划。在一些实施方案 中,当所处理包裹的放置位置与一个或多个先前放置/处理的包裹重 叠时,机器人***100可开始生成堆叠计划。
在生成堆叠计划和/或访问2D计划时,机器人***100可将放置 组合和/或放置计划中的每一者转换成3D状态,如框752处所示。例 如,机器人***100可将包裹的高度值指派到放置组合。换句话说, 机器人***100可基于将包裹高度添加到放置组合来生成等高线图 (对深度图的估计)。
利用3D状态,机器人***100可根据一个或多个堆叠规则(例 如,水平偏移规则、支撑间隔规则和/或竖直偏移规则)来评估放置组 合。作为说明性示例,当所放置包裹堆叠在一个或多个先前处理的包 裹上/之上时,机器人***100可消除违反重叠要求、悬垂要求、竖直 偏移规则、CoM偏移要求或它们的组合的任何放置组合。在一个或多 个实施方案中,机器人***100可诸如通过估计重叠包裹处的支撑重 量并将它们与对应易碎性评级进行比较来消除违反所处理包裹下方 的一个或多个包裹的易碎性评级的任何放置组合。
对于剩余放置组合,机器人***100可计算3D放置分数或更新 放置分数,诸如框754处所示。机器人***100可使用与3D放置的 放置成本和/或启发式值相关联的预定偏好(例如,权重和/或方程)。预 定3D偏好可类似于2D偏好、分组偏好、定序条件,或它们的组合。 例如,3D偏好可被配置来基于3D状态计算碰撞可能性并且计算偏 向于具有较低碰撞可能性的放置组合的分数。另外,机器人***100 可基于剩余包裹、具有共同高度的支撑区域的大小、处于3D状态的 所打包物品的数目、所处理包裹的高度之间的差或它们的组合来计算 分数。在一些实施方案中,机器人***100可根据分数来更新放置组 合在优先级队列中的顺序。
在已处理3D状态之后,诸如在框710处,机器人***100可通 过导出剩余包裹中的下一包裹的放置来更新2D计划。机器人***100 可重复上述过程,直到停止条件(诸如当已处理所有可用包裹(即,剩 余包裹的空值/组)和/或当无法改进放置组合(也称为无改进组合))为 止。无改进组合的一些示例可包括当前处理的放置由于一个或多个违 规而消除优先级队列中的放置组合中的最后一个的情况和/或放置分 数跨阈值数目的迭代对于优选组合保持恒定的情况。
当检测到停止条件时,诸如在框756处,机器人***100可根据 放置分数(例如,2D和/或3D相关分数)选择所导出放置组合中的一 个。因此,机器人***100可指定所选放置组合作为堆叠计划(一组 放置计划)。
在一些实施方案中,作为说明性示例,机器人***100可以不同 方式实施框710和712的功能。例如,在框710处,机器人***100 可生成底部层的2D计划(例如,放置计划350的实例),如上文所述。 在此情况下,机器人***100可被配置来在考虑放置和/或处理次序时对匹配包裹重量、更重包裹重量和/或包裹的更大可支撑重量施加 更重偏好(例如,更大的参数权重)。机器人***100可导出基础层的 第一2D计划,诸如上文针对框710所述。
一旦第一2D层如上文所述地完成/填满,从而形成基础层,机器 人***100就可将放置计划转换成3D状态,如针对框712/752所述。 使用3D信息,机器人***100可标识基础层的一个或多个平面部分 /区域(例如,图3B的放置表面352-356),如上所述。使用平面部分, 机器人***100可迭代地/递归地导出基础层上方的下一层的包裹放 置。机器人***100可将平面部分中的每一个作为离散化平台模型 304的新实例进行考虑,并且测试/评估不同放置,如上文针对框710 所述。在一些实施方案中,机器人***100可使用放置表面导出2D 放置,但跨整个放置货盘340计算分数。因此,机器人***100可被 配置来遵循对后续层的更大放置区域的偏好,而不限于前述放置区域。
一旦针对第二层停止迭代放置过程,机器人***100就可计算所 导出层的平面部分(例如,具有在阈值范围内的高度的顶表面),以生 成下一上方层的剩余包裹/分组的2D放置。迭代分层过程可继续进行, 直到已满足停止条件为止,如上文所述。
在一些实施方案中,机器人***100可在框712处单独地生成 2D计划(例如,放置计划中的两个或更多个)。机器人***100可基于 竖直地组合(例如,沿着竖直方向布置/叠置2D放置计划)2D计划来 生成堆叠计划。
在框714处,机器人***100可基于堆叠计划来生成打包顺序 (例如,图5的堆叠顺序530)。作为示例,打包顺序可用于标识可用 包裹的放置次序。在一些实施方案中,如框762处所示,机器人*** 100可逐层地计算打包顺序。换句话说,机器人***100可计算每个层的打包顺序,然后根据层的从底部到顶部的次序/位置连接所述顺 序。在计算打包顺序时,在一些实施方案中,机器人***100可调整 放置计划,如框772处所示。例如,机器人***100可通过以下方式 来调整放置计划:通过将包裹(例如,具有增加后续操纵/搬运的碰撞 可能性的高度的包裹)中的一个或多个从较低层放置计划重新指派到 较高层放置计划。还可将由重新指派的包裹支撑的任何包裹重新指派 到更高的层。换句话说,重新指派的包裹可保持处于同一水平放置并 且与更高层相关联,使得稍后可如图5所示地放置包裹。在框774处, 机器人***100可基于诸如通过对在被指派在更低层中之后被指派 在更高层中的物体进行打包/操纵所调整的放置计划来计算打包顺序 (例如,堆叠顺序530)。
在其他实施方案中,如框764处所示,机器人***100可计算打 包顺序,而不管/独立于层指派。换句话说,机器人***100可计算打 包顺序,使得可在指派到更高层的包裹之后放置指派到更低层的包裹。
在计算打包顺序时,在层内或跨层两者,机器人***100可根据 一个或多个包裹尺寸(例如,高度)、相对放置位置或它们的组合来分 析堆叠计划中的包裹的位置。例如,机器人***100可将更远离单元 /参考位置(例如,码垛机器人的位置)的盒的放置定序在更靠近指派的 包裹之前。另外,机器人***100可在更高/更重包裹的指派位置是 沿着放置计划的周边且远离单元位置时将它们更早地放置。
在框716处,机器人***100可实施用于将可用包裹放置在平台 上的堆叠计划。机器人***100可基于根据堆叠计划将一个或多个运 动计划、致动器命令/设定或它们的组合传达给对应装置/单元(例如, 图1的搬运单元104、图2的致动装置212、图2的传感器216等)来 实施堆叠计划。机器人***100可基于在装置/单元处执行所传达信 息以将可用包裹从源位置搬运到目的地平台来进一步实施堆叠计划。 因此,机器人***100可根据3D映射来放置可用包裹,其中将可用 包裹中的一个或多个放置/堆叠在其他包裹的顶部上,诸如逐层地放 置可用包裹。此外,机器人***100可根据打包顺序操纵/搬运包裹。 这样,机器人***100可逐层地或者在不具有如上文所述的那类限制 的情况下放置包裹。
图8是根据本技术的一个或多个实施方案的用于操作图1的机 器人***100的方法800的流程图。可使用方法800来检测错误和潜 在碰撞并且确定适当响应。例如,可使用方法800来动态地导出图3 的目标物体112在图1的任务位置116处的图3B的放置位置350,和/或由于检测到的错误而调整现有打包计划(例如,关于一组物体在 目的地处的具体放置位置/姿势、相关联顺序和/或运动计划或它们的 组合的细节)。如下文更详细描述的,可能的错误包括预期包装条件与 实时包装条件之间的偏差或差异。换句话说,错误可对应于在根据打 包计划将物体放置在任务位置116处时可能发生的非预期的事件(例 如,碰撞、掉落/丢失物体、已经放置的物体的移位和/或任务位置116 处的堵塞)。在这些和其他实施方案中,预期包装条件可至少部分地基 于在放置目标物体和/或先前放置的物体508之前、期间或之后的包 装条件(根据例如打包计划)的变化。在这些和另一些实施方案中,方 法800可通过利用图2的一个或多个处理器202执行存储在图2的 一个或多个存储装置204上的指令来实施。
如上文所论述,图7的方法700可被实施来导出和/或实施打包 计划,并且如RosenN.Kiankov和Denys Kanunikov的标题为“A ROBOTIC SYSTEM WITH PACKING MECHANISM”的同时提交的 美国专利申请中更详细地描述的那样,所述美国专利申请被转让给 Mujin公司,由代理人案卷号131837-8005.US01标识,并且以引用的 方式整体并入本文。
在已生成3D堆叠计划和/或打包顺序之后,机器人***100可开 始执行打包计划,如框801处所示。为了执行打包计划,机器人***100可操作(通过例如向之/在其处生成、发送、实施对应命令、设定、 运动计划等)机器人单元中的一个或多个,诸如图1所示的卸载单元 102、搬运单元104、运输单元106、装载单元108等。机器人***100 可操作机器人单元以将物体运输到图1的起始位置114,并且从起始 位置114操纵(通过例如搬运单元104)物体以根据3D堆叠计划将它 们放置在图1的任务位置116(例如,货盘、笼、车厢等)处/上。例如,机器人***100可根据打包顺序将物体运输(通过例如运输单元106, 诸如输送机)到起始位置114,并且根据3D打包计划将物体放置在图 3B的放置区域340上的位置处。机器人***100可在执行打包计划 时进一步跟踪用于标识打包顺序和/或3D打包计划中已被放置在所指派位置处的物体的进度。
在框802处,机器人***100可标识实时包装条件。在实施打包 计划时,机器人***100可标识起始位置114和/或任务位置116处 或周围(例如,在其预定距离内)的实时包装条件。例如,机器人*** 100可实时地接收并分析关于传入物体和/或任务位置116处的物体 中的每一个的信息(例如,来自图2的传感器216的传感器数据)。在 一些实施方案中,机器人***100可接收(例如,从图5的源传感器 504)并分析代表处于或正接近起始位置114的一个或多个物体(包括 目标物体112)的源传感器数据。在这些和其他实施方案中,机器人系 统100可接收(例如,从图5的目的地传感器506)并分析代表与任务 位置116和/或其上的图5的先前放置的物体508相关联的放置区域 (例如,放置区域340)的目的地传感器数据。
在一些实施方案中,机器人***100可分析传感器数据。在分析 传感器数据时,机器人***100可处理传感器数据(例如,来自传感 器216的图像和/或深度图)以标识/估计边缘。例如,机器人***100 可诸如使用Sobel滤波器处理传感器数据,以识别目标物体112、任 务位置116、先前放置的物体508或它们的组合的边缘。机器人*** 100可使用边缘来标识代表单独的物体和/或其尺寸的区域。在这些和 其他实施方案中,机器人***100可基于传感器数据(例如,源传感 器数据)来估计感测到的物体(例如,传入物体、目标物体112、货盘、 笼等)的一个或多个尺寸或长度。机器人***100可进一步使用所标 识区域来确定物体的姿势和/或位置。例如,机器人***100可将边 缘映射到现有网格***,以确定物体的取向和/或位置。
在框804处,机器人***100可访问和/或生成代表传入包裹(包 括例如目标物体112)和/或任务位置116(诸如货盘和/或笼)的离散化 模型(例如,图3A的离散化物体模型302和/或图3B的离散化平台模 型304)。机器人***100可基于实时传感器数据(例如,源传感器数 据和/或目的地传感器数据)确定(例如,生成和/或访问)离散化模型(例 如,离散化物体模型302和/或离散化平台模型304)。在一些实施方 案中,机器人***100可基于源传感器数据来标识目标物体112的物 体类型(例如,传入物体的标识或类别)。例如,机器人***100可使 用标识信息(例如,表面图像和/或估计的尺寸)来搜索存储在图2的存 储装置和/或另一装置(例如,通过图2的通信装置206访问的存储装 置、数据库和/或包裹供应者的服务器)中的主数据252,以找到并访 问匹配的离散化模型。
在一些实施方案中,机器人***100可实时地(诸如直接响应于 接收到源传感器数据)动态地生成目标物体的离散化模型。为了动态 地生成离散化模型,机器人***100可根据图3B的单位像素310划 分传感器数据和/或对应物理尺寸(例如,针对传入物体、货盘顶表面 等)。换句话说,机器人***100可基于根据对应传感器数据将单位 像素310叠覆在代表目标物体112和/或任务位置116的区域之上来 生成离散化模型。单位像素310可(由例如制造商、下单客户和/或操 作员)预定为诸如1mm或1/16英寸(in)或更大(例如,5mm或20mm)。 在一些实施方案中,单位像素310可以是基于包裹中的一个或多个和 /或平台的尺寸或大小(例如,百分比或分数)。
在框806处,机器人***100可检测或确定是否已发生一个或多 个错误。例如,机器人***100可通过标识预期包装条件与实时包装 条件之间的偏差或差异来确定是否已发生错误。换句话说,机器人系 统100可通过将传感器数据与起始位置114的预期状态和/或任务位 置116的预期状态进行比较来确定是否已发生错误。由机器人*** 100标识的可能的错误的示例包括源匹配错误(例如,主数据错误、非 预期的物体错误、到达顺序错误等)、目的地匹配错误(例如,放置可 接近性错误、非预期的放置错误、放置区域错误等)和/或操作状态错 误(例如,碰撞错误、运输错误、移位的物体错误等)。
在框832处,机器人***100可标识源匹配错误。为了标识源匹 配错误,机器人***100可将源传感器数据与对应于起始位置114处 的预期包装条件的数据进行比较。在一个实施方案中,机器人***100 可通过将源传感器数据与包括在机器人***100处预先登记的可能 的物体的描述(诸如特性信息)的主数据(例如,图2的主数据252)进行 比较来检测主数据错误。在这些实施方案中,机器人***100可确定 源传感器数据中捕获的目标物体112的特性(例如,物理特性,诸如 重量、宽度、长度、重量和/或其他特性)是否匹配存储在主数据252 中的物体的特性信息。在源传感器数据中捕获的目标物体112的特性 不匹配存储在主数据252中的物体的特性信息的情况下,机器人*** 100可确定已发生主数据错误。因此,机器人***100可标识与未登 记和/或未识别物体的到达相关联的源匹配错误。
在这些和其他实施方案中,机器人***100可通过将源传感器数 据与对应于打包计划和/或打包顺序的数据进行比较来检测非预期的 物体错误和/或到达顺序错误。为了继续示例,机器人***100可将 目标物体112的所导出特性(例如,物理特性)与被安排来根据打包顺 序和所跟踪进度到达起始位置114的物体的预期特性进行比较。如果 目标物体112的特性匹配主数据252中登记的物体中的一个,则机器 人***100可将匹配的物体的标识符/类型与根据打包顺序的所跟踪 进度的预期物体的标识符/类型进行比较。在目标物体112不匹配预 期物体的情况下,机器人***可确定已发生非预期的物体错误(例如, 目标物体112不是预期物体和/或未按顺序到达)。在一些实施方案中, 机器人***100可继续将目标物体112(例如,其特性和/或所匹配标 识符)与被安排来根据打包顺序(例如,在目标物体112之后和/或之前) 到达起始位置114的一个或多个其他物体进行比较。例如,机器人系 统100可将目标物体112与在打包顺序内在预期物体之前或之后的 预定数目个物体进行比较。在目标物体112的特性匹配被安排来到达 起始位置114的另一物体的预期特性的情况下,机器人***100可确 定已发生到达顺序错误(例如,目标物体112未按顺序到达起始位置 114)和/或可针对目标物体112的下一次出现存储目标物体112以执 行一个或多个实时调整(例如,将目标物体112存储在暂时保存区域 处,然后根据下一个预期次序/定时对其进行接近)。
另外或可替代地,机器人***100可在框834处标识目的地匹配 错误。为了标识目的地匹配错误,机器人***100可将目的地传感器 数据与对应于任务位置116处的预期包装条件的数据进行比较。例如, 机器人***100可基于标识已放置的物体来跟踪3D打包计划的当前 进度。机器人***100可使用一个或多个计算机模型来确定对应于所 跟踪进度的预期形状和/或预期表面等高线(例如,对应于预期放置表 面的一组高度估计值)。机器人***100可将图像、深度图和/或代表 任务位置116的当前状态的使用传感器216捕获的其他数据(例如, 任务位置116的离散化平台模型和/或当前高度量度)与预期形状和/或预期表面等高线进行比较。机器人***100可至少部分地基于任务位 置116的当前状态与任务位置116的预期状态之间的差异来确定目 的地匹配错误。
作为说明性示例,机器人***100可分析所捕获图像和/或任务 位置116的(例如,任务位置116处的放置区域340和/或先前放置的 物体508)其他数据,以确定当前特性,诸如位置/定位、姿势/取向、 物理尺寸、形状、高度测量值和/或任务位置116和/或先前放置的物 体508的其他特性。为了确定目的地匹配错误,机器人***100可将 任务位置116的当前特性中的一个或多个与任务位置116、先前放置 的物体508和/或放置区域340的一个或多个预期特性进行比较,以 标识任何不匹配或差异。使用当前特性与预期特性之间的比较,机器 人***100可确定是否已发生一个或多个错误(例如,放置可接近性 错误、非预期的放置错误和/或放置区域错误)。放置可接近性错误(例 如,放置区域340的特性与所预期的不同)的一些示例可基于放置区 域308具有预料之外的不同大小或形状,这诸如归因于任务位置116 的错误大小的货盘的放置或者任务位置116的容器(例如,笼或车厢) 的壁未完全打开。非预期的放置错误的一些示例可基于先前放置的物 体508中的一个或多个由于例如一个或多个先前放置的物体508已 移动、移位和/或掉落和/或以错误位置和/或取向放置而具有非预期的 位置/姿势。放置区域错误的一些示例可对应于放置区域340的高度测量值与所预期的不同。在这些和其他实施方案中,机器人***100 可使用目的地传感器数据来确定先前放置的物体508中的一个或多 个先前错位或丢失,和/或非预期的物***于任务位置116处。
在框836处,机器人***100可确定其他类型的错误。例如,机 器人***100可分析实时包装条件(例如,来自机器人单元的反馈数 据和/或物体源/目的地处的当前条件)来标识操作错误,诸如碰撞错误 (例如,机器人单元和/或物体已碰撞)和/或物体移动错误(例如,物体 在放置期间或之后已移位)。作为另一示例,机器人***100可诸如 在搬运单元104上的夹持器并不具有对物体的充分夹持时和/或在物 体在运输/操纵期间掉落/丢失时标识运输或操纵错误。机器人***100 可在实施打包操作(框801处所示)的同时从机器人单元获得多种反馈 数据,诸如位置、速度、状态(例如,外部接触状态和/或夹持状态)、力测量值(例如,外部施加的力、夹持力和/或夹持器处测量的重量/扭 矩),或它们的组合。机器人***100可将所获得数据与表征操作错 误以标识其发生的一个或多个预定阈值/模板进行比较。
在框838处,机器人***100可标识造成碰撞风险的包装条件。 在一些实施方案中,机器人***100可独立于确定已发生一个或多个 错误(框832-836)或响应于确定已发生一个或多个错误而标识包装条 件是否造成碰撞风险。机器人***100可分析传感器数据以标识机器 人***100继续对目标物体112进行包装/码垛的情况下机器人单元 和/或物体之间的碰撞风险。如果目标物体112是根据打包顺序的预 期物体,则机器人***100可重新计算和/或访问用于根据3D打包计 划放置目标物体112的图5的接近路径510。由于当前条件已由于所 确定错误而与预期条件偏离,机器人***100可将接近路径510与实 时条件进行比较以确定碰撞风险。在一些实施方案中,机器人***100 可分析实时传感器数据,使得机器人***100根据指定优先级(例如, 在降低碰撞风险和/或错误的幅值方面)标识实时包装条件。参考任务 位置116,例如,机器人***100可分析目的地传感器数据,使得机器人***100可按以下次序标识可阻碍接近路径510的实时包装条 件:(a)在放置可接近性错误的情境下任务位置116处的容器是否造成 碰撞风险(例如,由于容器并未完全打开);(b)在非预期的放置错误的 情境下已移动、移位和/或掉落的一个或多个先前放置的物体508是 否造成碰撞风险;(c)在放置区域错误的情境下放置在错误位置和/或 取向的一个或多个先前放置的物体508是否造成碰撞风险;和/或(d) 在放置区域错误的情境下所码垛箱高度是否造成碰撞风险(例如,由 于放置区域340的预期测量值与实际高度测量值之间的差异,如上文 所述)。
如果机器人***100在框832-838处确定尚未发生任何错误或者 未能标识造成碰撞风险的错误或包装条件,则机器人***100可返回 框801以继续执行打包计划。否则,在上文概述的任何错误和潜在碰 撞情境中,继续执行打包计划将可能导致另外的错误。例如,堆叠的 货盘可包括错误物品和/或货盘可能由于自身或其物体具有不同于打 包计划预期的特性(例如,堆叠中的一个或多个支撑物体的不同高度) 而变得不稳定。另外,机器人单元和/或物体之间的碰撞风险可由于物 ***置的差异和/或非预期的阻碍而增加。
这样,响应于确定一个或多个错误和/或标识出造成碰撞风险的 一个或多个包装条件,机器人***100(在框840)处可确定对框832- 838处所标识的错误和/或潜在碰撞的响应。适当响应的示例可包括以 下中的任何一者或多者:(a)向操作员和/或另一***警示造成碰撞风 险的错误和/或实时条件;(b)返回框804以动态地生成目标物体112 的离散化模型;(c)更新主数据252;(d)将任务位置116的主列表更新 成包括任务位置116处的非预期的物体和/或更新成排除任务位置116 处的丢失物体;(e)将目标物体112放置在任务位置116以外的位置 (例如,将目标物体112置于旁边和/或将目标物体112缓存以便稍后 运输/操纵到任务位置116);(f)重新定位一个或多个先前放置的物体 508;(g)通过动态地调整接近路径510来实施打包计划;(h)通过动态 地导出更新的放置位置来修改或调整打包计划;(i)产生新的打包计划; 和/或(j)放弃打包计划并且在物体到达时动态地导出放置位置。
在一些实施方案中,机器人***100可基于所标识错误或潜在碰 撞的类型来确定适当响应。例如,在主数据错误的情境下,机器人系 统100可能够继续实施打包计划。这样,对主数据错误的适当响应可 包括将目标物体112(即,不匹配主数据252的物体)放置在暂时位置 处、将后续物体放置在它们的指定位置或暂时位置处(诸如,例如,当 放置阻挡初始意图用于目标物体112的接近路径510时)。当预期物 体(即,与目标物体112相比)到达起始位置114时,机器人***100 可将预期物体放置在初始预期位置处。将目标物体112缓存或放置在 暂时位置处在Rosen N.Kiankov和Denys Kanunikov的标题为 “ROBOTIC SYSTEMFOR PROCESSING PACKAGES ARRIVING OUT OF SEQUENCE”的同时提交的美国专利申请中更详细地描述, 所述美国专利申请被转让给Mujin公司,由代理人案卷号131837- 8008.US01标识,并且以引用的方式整体并入本文。当预期物体(即, 与目标物体112相同的类型/标识符)的一个或多个后续实例也造成主 数据错误时,在一些实施方案中,机器人***100可将目标物体112 的尺寸和/或离散化模型与预期物体的尺寸和/或离散化模型进行比较。 如果比较的数据匹配预定阈值范围或在预定阈值范围内,则机器人系 统100可通知操作员和/或在更新主数据之后继续实施打包计划。例 如,流程可返回框804以实时地动态地生成目标物体112的离散化模 型,并且将主数据252更新成包括所生成的离散化模型。
如果尺寸和/或离散化数据不匹配或相差超出阈值范围的量度, 则机器人***100可放弃现有打包计划并根据更新的主数据和当前 条件(例如,剩余包裹和/或放置表面的初始高度)来重新导出打包计划。 因此,机器人***100可实施上文所述的方法700或者其一个或多个 部分。在一些实施方案中,例如,机器人***100可根据剩余物体重 新标识包裹组(框706)并且实施随后操作(例如,如框704及更多框处 所示)中的一个或多个。在一些实施方案中,机器人***100可接近 先前确定的包裹分组并根据当前条件(通过例如移除已经放置的物体) 对其进行调整,保持先前确定的处理次序,并且分别重新导出2D和 3D放置计划。例如,机器人***100可使用任务位置116处的当前 条件作为所更新放置表面(例如,替代离散化平台模型304)或者将当 前条件标识为计划的现有部分(诸如上文所述的先前计划迭代的结果)。 可替代地,当剩余包裹数目在阈值限度内时,机器人***100可动态 地导出放置位置,如下文详细地描述。
作为另一示例,对于任务位置116处的容器并未完全打开的情况 下的放置可接近性错误,机器人***100可向操作员和/或另一*** 警示笼或车厢并未完全打开。另外或可替代地,机器人***100可确 定打包计划被容器并未完全打开影响的程度。例如,机器人***100 可基于将3D打包计划叠覆在目的地数据(例如,图像和/或深度图)之 上并且对3D打包计划中与笼/车厢的局部闭合壁或覆盖物重叠的物 体进行标识和/或计数来确定所述程度(例如,3D打包计划内受影响物 体的数目和/或相对位置)。另外,机器人***100可通过将3D打包 中的物体中的一个或多个的接近路径510与笼/车厢的壁/边缘进行比 较并标识与所述壁/边缘相交的路径来确定所述程度。机器人***100 可基于标识(根据例如预定功能、规则、模型等)并考虑(诸如通过例如 增加受影响物体计数)由受影响物体支撑的其他从属物体来调整所述 程度。在这些实施方案中,当受影响物体的位置/图案匹配一个或多个 预定模板和/或受影响物体的量低于阈值量时,机器人***100可确 定适当响应是通过动态地修改或调整接近路径510来实施打包计划, 使得机器人***100将目标物体112放置在任务位置116处由打包 计划指定的位置处同时避免与容器和/或先前放置的物体508碰撞。
可替代地,机器人***100可诸如在受影响物体的数目超过阈值 量时确定容器完全或显著闭合,这对应于大部分任务位置116对机器 人***100不可接近。在一些实施方案中,机器人***100可确定对 放置可接近性错误的适当响应是在物体到达起始位置114时动态地 重新导出和/或调整目标物体112和/或后续到达物体的放置位置350 (如下文关于框808-816更详细地描述)。在一些实施方案中,机器人 ***100可确定对放置可接近性错误的适当响应是产生利用仍然对 机器人***100可接近的尽可能多的任务位置116的新打包计划。例 如,机器人***100可停止打包操作(框801),并且通过根据分组条 件对可用包裹(例如,目标物体112、尚未到达起始位置114但被安排 来根据先前打包计划到达的包裹、和/或先前放置的物体508)进行分 组来确定新打包计划的包裹分组。然后,机器人***100可(i)通过标 识独特物品并迭代地导出放置位置来生成2D计划并且(ii)通过将2D 计划转换成3D状态,计算3D分数,并且根据放置分数选择放置组 合来生成新打包计划。在这些和其他实施方案中,机器人***100可 (i)将目标物体112和/或到达起始位置114的一个或多个其他包裹缓 存以调整由先前打包计划限定的打包顺序和/或(ii)重新定位一个或多 个先前放置的物体508。
在一些实施方案中,机器人***100可确定对所标识错误和/或 潜在碰撞的适当响应是动态地导出目标物体112和后续物体的放置 位置350。例如,机器人***100可在所标识错误和/或潜在碰撞满足 或超过预限定条件或阈值时动态地导出放置位置350。作为具体示例, 机器人***100可响应于非预期的放置错误(例如,一个或多个先前 放置的物体508已移动、移位等)而动态地导出放置位置,如上文所 述。
为了动态地导出目标物体112的放置位置350,机器人***100 可在框808处导出一组候选位置(例如,图3B的候选位置360),以用 于将目标物体112放置在任务位置116处/之上。机器人***100可 基于将目标物体112的离散化物体模型302在任务位置116中/之上的对应位置处重叠在任务位置116的当前状态的离散化平台模型304 之上来导出候选位置360。候选位置360可对应于离散化物体模型302 沿着水平平面并且在离散化平台模型304之上/内的位置。机器人系 统100可导出与先前放置的物体508重叠和/或相邻的候选位置360。
在一些实施方案中,机器人***100可基于确定初始放置位置 (例如,候选位置360的实例的预定位置,诸如放置区域的指定角落) 来迭代地确定离散化物体模型302的位置。机器人***100可根据用 于导出下一个候选位置360的预定方向、跨迭代的候选位置360之间 的间隔要求、管理放置的规则/条件、对候选位置360的总数的限制、 其一个或多个图案或它们的组合来确定后续候选位置360。此外,机 器人***100可包括用于相对于先前放置的物体508确定候选位置 360的一组偏好和/或规则。例如,机器人***100可配置有对在离散 化物体模型302与先前放置的物体508的一个或多个边缘和/或放置 区域340的周边边界/边缘相邻或邻接的情况下确定候选位置360的 偏好(例如,比候选位置360的大多数其他类型/类别更早地执行功能)。 另外,机器人***100可配置有对在离散化物体模型302位于先前放 置的物体508之上并且纳入物体中的一个内和/或与物体的一个或多 个边缘重叠的情况下确定候选位置360的偏好。
机器人***100可根据用于放置离散化物体模型302的预定规 则、图案、限制和/或顺序来导出候选位置360。例如,机器人***100 可基于对物体边缘的偏好(诸如与先前放置的物体508的最外边缘相 邻和/或在所述最外边缘的预定距离限度内)来导出候选位置360。另 外,机器人***100可基于对放置区域340的外边缘/边界的偏好(诸 如在离散化物体模型302最靠近或邻接货盘、笼等的边界/边缘的情 况下)来导出候选位置360。此外,机器人***100可导出与先前放置 的物体508重叠的候选位置360。
在框810处,机器人***100可确定/更新图3B的放置区域340 的实时条件,诸如用于3D堆叠评估。例如,机器人***100可使用 目的地传感器数据来确定图4的高度量度402。机器人***100可使 用从任务位置116和/或传感器的目的地传感器数据和已知高度导出的深度量度来计算任务位置116处的一个或多个顶表面的高度。机器 人***100可将计算的高度与离散化平台模型304中的单位像素310 相匹配,并且将单位像素310内的最大计算高度指派为对应高度量度 402。在一些实施方案中,机器人***100可确定候选位置360中的 由离散化物体模型302重叠的单位像素310的高度量度402。
在框812处,检测***100可评估候选位置360。在一些实施方 案中,机器人***100可根据实时条件、处理结果、预定规则和/或参 数或它们的组合来评估候选位置360。例如,机器人***100可基于 计算对应放置分数、验证/批准(qualifying)候选位置360或它们的组合 来评估候选位置360。
在框842处,机器人***100可计算候选位置360中的每一个的 放置分数。机器人***100可根据一个或多个放置条件来计算放置分 数。例如,机器人***100可使用放置偏好(通过例如乘数权重)和/或 方程来描述对以下各项的偏好:包裹之间的间隔距离、水平相邻包裹 的包裹尺寸/易碎性评级/包裹重量的差异、碰撞可能性(基于例如图5 的接近路径510或它们的特性和/或图6的水平间隔616)、同一高度 处的连续/相邻表面、其统计学结果(例如,平均值、最大值、最小值、 标准差等)、或它们的组合。放置偏好的其他示例可包括所得高度、接 近度量度、边缘放置状态、最大可支撑重量、物体类型、支撑重量比、 或它们的组合。因此,在一些实施方案中,机器人***100可包括代 表对较低最大高度的偏好的处理权重/乘数,用于将目标物体112放 置在已经放置的物体的边界或放置平台的边缘附近,用于使相邻物体 的高度和/或最大可支撑重量之间的差最小化,用于减小由目标物体112重叠的物体的支撑重量与最大可支撑重量之间的比,用于匹配相 邻物体的物体类型、或它们的组合。每个放置位置可根据由***制造 商、订单和/或***操作员预限定的偏好因子和/或方程来评分。
在一些实施方案中,例如,机器人***100可基于候选位置360 的支撑量度来计算放置分数。机器人***100可至少部分地基于高度 量度402来计算候选位置360中的一个或多个的支撑量(例如,在堆 叠物体时)。作为说明性示例,机器人***100可基于针对候选位置 360中的每一个标识图4B的最大高度420来计算支撑量。基于图4B 的最大高度420和高度差阈值416,机器人***100可计算候选位置 360中的每一个的图4B的高度下限422。机器人***100可将候选 位置360的高度量度402与对应高度下限422进行比较,以标识候选 位置360中的每一个的图4B的支撑位置442。机器人***100可基 于对应支撑位置442的图4B的合格计数424来计算候选位置360中 的每一个的放置分数。
在一个或多个实施方案中,机器人***100可基于导出候选位置 360的图4B的支撑区域轮廓线426来计算放置分数。如上文所述, 机器人***100可基于在对应位置中的支撑位置442的最外/周边实 例的延伸外边缘和/或连接角来导出候选位置360中的每一个的一组 支撑区域轮廓线426。基于支撑位置442,机器人***100可确定图 4B的支撑区域大小428和/或图4B的支撑比430,以用于计算放置 分数。另外,机器人***100可计算CoM位置432与支撑区域轮廓 线426之间的最低间隔距离。机器人***100可使用支撑区域大小428、支撑比430、最低间隔距离、对应偏好权重或它们的组合来计算 对应候选位置的放置分数。
在一个或多个实施方案中,机器人***100可基于如上文所述地 导出候选位置360的接近路径510来计算放置分数。机器人***100 可根据图6的最终段606(例如,其长度)、图6的一个或多个路径段 604的数量/长度或它们的组合来计算候选位置360中的每一个的放 置分数。在一些实施方案中,机器人***100可基于候选位置360的 图6的水平间隔616来计算放置分数。
在一些实施方案中,如框844处所示,机器人***100可批准候 选位置360。机器人***100可基于根据一个或多个放置约束动态地 导出已验证的一组候选位置360来批准候选位置360。在导出已验证 组时,机器人***100可消除或取消违反或不满足至少部分地与高度 量度402相关联的放置约束中的一个或多个的候选位置360的实例 的资格。在一个或多个实施方案中,机器人***100可首先导出已验 证组,然后计算已验证组的放置分数。在一个或多个实施方案中,机 器人***100可在计算放置分数的同时导出已验证组。
在一个或多个实施方案中,放置约束可与将合格计数424、所述 一组支撑区域轮廓线426、支撑区域大小428、支撑比430、CoM位 置432、接近路径510、水平间隔616或它们的组合与阈值(例如,图 4B的支撑阈值418)或要求进行比较相关联。例如,机器人***100 可将已验证组导出成包括合格计数424、支撑区域大小428和/或支撑 比430满足/超过对应阈值的位置。另外,机器人***100可将已验 证组导出成包括具有位于支撑区域轮廓线426内/由支撑区域轮廓线 围绕的CoM位置432和/或满足与支撑区域轮廓线426的最小间隔距离的位置。另外,机器人***100可将已验证组导出成包括具有满足 最大长度阈值的接近路径510(例如,其中的最终段606)和/或具有满 足最小阈值的水平间隔616的位置。
在框814处,机器人***100可动态地导出放置位置350,以用 于将目标物体112放置在任务位置116之上/处。机器人***100可 基于根据放置分数选择已验证组中的位置或候选位置360中的一个 来动态地导出放置位置350。在一些实施方案中,机器人***100可使用堆结构来跟踪候选位置360。因此,机器人***100可在位置违 反如上文所述的约束时将位置从堆结构移除。此外,机器人***100 可根据对应放置分数对所跟踪位置进行定序或排名。在一些实施方案 中,机器人***100可在计算放置分数或所述分数的迭代更新时连续 地对跟踪位置进行定序。因此,机器人***100可在分数计算结束时 选择堆结构中的指定位置(例如,第一槽)处的位置作为放置位置350。
在框816处,机器人***100可传达用于将目标物体112放置在 所导出放置位置350处的信息。在传达用于将目标物体112放置在放 置位置350处的信息时,机器人***100的一个或多个组成部分/装 置可与其他组成部分/装置通信和/或操作其他组成部分/装置。例如, 处理器202中的一个或多个和/或独立控制器(诸如,例如仓库/装运中 心控制装置)可向其他组成部分/装置发送信息,诸如放置位置350、 对应运动计划、用于操作图2的致动装置212和/或图2的运输马达 214的一组命令和/或设定、或它们的组合。其他组成部分/装置(诸如 处理器202和/或图5的机器人臂502的其他实例、致动装置212、运 输马达214和/或其他外部装置/***)可接收信息并执行对应功能以操 纵(例如,夹持并拾取、跨空间搬运和/或重新定向、放置在目的地处 和/或释放)目标物体112并将其放置在放置位置处。
在框818处,机器人***100可核实目标物体112在所导出放置 位置处的放置。例如,机器人***100可确定机器人***100是否响 应于框816处传达的信息而将目标物体112放置在所导出放置位置 处,并且如果这样,机器人***100可通过分析目的地传感器数据来 确定目标物体112的放置相比所导出放置位置的准确性。在一些实施 方案中,机器人***100可在放置目标物体112之后更新或重新标识 实时包装条件。换句话说,在框818之后,控制流程可移动到框801 和/或802。因此,机器人***100可将下一个传入物体更新/标识为 目标物体112。机器人***100还可将放置区域340和/或其上先前放 置的物体508的信息更新成包括最近放置的物体。在其他实施方案中, 机器人***100可在放置目标物体112(框801)之后根据打包计划重 新计算或调整打包计划和/或重新开始。
上文所述的任务和2D/3D分层的离散化提供打包物体的改进的 效率、速度和准确性。因此,操作员输入的减少和准确性的增加可进 一步减少自动化打包过程的人力劳动。在一些环境中,如上文所述的 机器人***100可消除对可花费大约或高于100万美元的定序缓冲 器的需要。
此外,根据实时条件(例如,由传感器数据和其他状态/数据代表) 进行的放置位置350的动态计算提供减少的操作错误。如上文所述, 机器人***可考虑并解决由非预期的条件/事件引入的错误和/或潜在 碰撞,而无需人类干预。此外,上文所述实施方案可诸如通过在物体 到达起始位置114时动态地导出放置位置350在没有预先存在的打 包计划的情况下或当非预期的条件/事件影响预先存在的打包计划的 全部或一部分时以3D堆叠物体。与受限于2D动态打包(即,将物体 直接作为单层放置在平台上)的传统***相比,考虑高度可允许上文 所述实施方案将物体堆叠在彼此的顶部上并增加打包密度。以此方式,机器人***100能够标识错误和/或潜在碰撞,并且作为响应,确定 适当动作,无论是继续实施先前打包计划、救助先前打包计划的一部 分、生成新打包计划,和/或动态地导出目标物体112和随后被安排 来到达起始位置114的一个或多个包裹的的放置位置。
结论
所公开技术的实例的上文具体实施方式并不意图是详尽的或将 所公开技术限于所公开的确切形式。虽然出于说明性目的描述了所公 开技术的具体实例,但如相关领域技术人员应认识到,在所公开技术 的范围内多种等效修改也是可能的。例如,虽然过程或框是以给定次 序呈现的,但替代实现方式可以不同次序执行具有步骤的例程或采用 具有框的***,并且可删除、移动、添加、细分、组合和/或修改一些 过程或框来提供替代方案或子组合。这些过程或框中的每一个可以多 种不同方式来实现。另外,虽然过程或框有时被示出为串联执行,但 这些过程或框可替代地并行执行或实现,或者可在不同时间执行。此外,本文所指出的任何具体数目仅是实例;替代实现方式可采用不同 的值或范围。
根据上文具体实施方式,可对所公开技术进行这些和其他改变。 虽然具体实施方式描述了所公开技术的某些实例以及所设想的最佳 模式,但所公开技术可以许多方式来实践,而无论文中上文描述呈现 的如何详细。***的细节可在其具体实现方式中相差甚大,但仍由本 文所公开的技术涵盖。如上文所指出,在描述所公开技术的某些特征 或方面时所用的特定术语不应被视为暗示本文中将术语重新定义为 限于所公开技术的与所述技术相关联的任何具体特性、特征或方面。 因此,除所附权利要求之外,本发明不受限制。一般来说,以下权利 要求中所用的术语不应被视为将所公开技术限于说明书中所公开的 具体实例,除非上文具体实施方式章节明确地限定了此类术语。如本 文所用,“A和/或B”中的短语“和/或”指代仅A、仅B以及A和 B两者。
虽然本发明的某些方面在下文是以某些权利要求的形式呈现的, 但本申请人可设想了呈任何数目的权利要求形式的本发明的多种方 面。因此,本申请人保留在提交本申请之后追加附加权利要求以在本 申请中或在接续申请中追加此类附加权利要求形式的权利。

Claims (10)

1.一种用于操作机器人***的方法,所述方法包括:
接收代表处于或接近起始位置的目标物体的源传感器数据;
分析所述源传感器数据,其中分析所述源传感器数据包括-
至少部分地基于所述源传感器数据来确定离散化物体模型,其中所述离散化物体模型根据单位像素以二维(2D)代表所述目标物体的物理尺寸或形状中的至少一者,以及
将所述离散化物体模型与打包计划或主数据中的至少一者进行比较,其中所述打包计划是在接收所述源传感器数据之前导出的,其中所述打包计划表示物体在任务位置上的放置位置和姿势,并且另外其中所述主数据包括在所述机器人***处预先登记的可能的物体的描述;
接收代表与所述任务位置或者先前放置在所述任务位置上的一个或多个物体中的至少一者相关联的放置区域的目的地传感器数据;
分析所述目的地传感器数据,其中分析所述目的地传感器数据包括-
至少部分地基于所述目的地传感器数据来确定离散化平台模型,其中所述离散化平台模型根据另外的单位像素以2D代表所述任务位置的物理尺寸或形状中的至少一者,
至少部分地基于所述目的地传感器数据来确定高度量度,其中所述高度量度代表所述放置区域对应于所述另外的单位像素中的一组或多组的一个或多个部分内的最大高度,以及
将所述离散化平台模型或所述高度量度中的至少一者与所述放置区域的预期平台模型或预期高度量度中的至少一者进行比较;
确定一个或多个错误,其中确定所述一个或多个错误包括以下中的至少一者:
(i)通过标识(a)所述离散化物体模型与(b)所述打包计划或所述主数据中的至少一者之间的一个或多个差异来确定至少一个源匹配错误;或者
(ii)通过标识(a)所述离散化平台模型或所述高度量度中的至少一者与(b)所述预期平台模型或所述预期高度量度中的至少一者之间的一个或多个差异来确定至少一个目的地匹配错误;以及
响应于确定所述一个或多个错误,至少部分地基于所确定的一个或多个错误来调整所述目标物体和/或一个或多个其他物体的放置位置。
2.如权利要求1所述的方法,其中:
分析所述源传感器数据包括:将所述离散化物体模型与所述主数据进行比较,并且其中确定所述一个或多个错误包括:标识所述离散化物体模型与所述主数据之间的至少一个差异,并且
所述一个或多个错误包括代表所述主数据出错的主数据错误。
3.如权利要求1所述的方法,其中:
所述打包计划指定包括所述目标物体的物体将要到达所述起始位置的顺序;
分析所述源传感器数据包括:通过将所述离散化物体模型与由所述顺序指定的离散化物体模型进行比较来将所述离散化物体模型与所述打包计划进行比较;
确定所述一个或多个错误包括:标识所述离散化物体模型与由所述顺序指定的所述离散化物体模型之间的至少一个差异;并且
所述一个或多个错误包括代表所述目标物体未按由所述打包计划指定的所述顺序到达所述起始位置的到达顺序错误。
4.如权利要求1所述的方法,其中:
分析所述目的地传感器数据包括:将所述离散化平台模型与所述预期平台模型进行比较,
确定所述一个或多个错误包括:标识所述离散化平台模型与所述预期平台模型之间的至少一个差异;并且
所述一个或多个错误包括放置可接近性错误、非预期的放置错误和/或放置区域错误,所述放置区域错误代表与所述任务位置相关联的所述放置区域不同于与所述任务位置相关联的预期放置区域。
5.如权利要求4所述的方法,其中:
确定所述一个或多个错误还包括:标识造成碰撞风险的实时包装条件,
标识所述实时包装条件包括:确定代表所述任务位置处的容器、笼或车厢的壁并未完全打开、使得所述机器人***不能接近与所述任务位置相关联的所述放置区域的全部的放置可接近性错误,并且
所述碰撞风险是所述机器人***与所述容器、所述笼或所述车厢之间的碰撞风险。
6.如权利要求1所述的方法,其中:
确定所述一个或多个错误包括:分别标识(a)所述离散化平台模型和/或所述高度量度与(b)所述预期平台模型和/或所述预期高度量度之间的至少一个差异,
确定所述一个或多个错误还包括:标识造成碰撞风险的实时包装条件,
标识所述实时包装条件包括:确定代表所述任务位置上的所述先前放置的物体中的一个物体移位、掉落、产生位移或它们的组合的非预期的放置错误,并且
所述碰撞风险是所述机器人***与所述任务位置上的所述先前放置的物体中的所述物体之间的碰撞风险。
7.如权利要求1所述的方法,其中:
确定所述一个或多个错误包括:分别标识(a)所述离散化平台模型和/或所述高度量度与(b)所述预期平台模型和/或所述预期高度量度之间的至少一个差异,
确定所述一个或多个错误还包括:标识造成碰撞风险的实时包装条件,
标识所述实时包装条件包括:确定代表所述任务位置上的所述先前放置的一个物体错位的放置区域错误,并且
所述碰撞风险是所述机器人***与所述任务位置上的所述先前放置的物体中的所述物体之间的碰撞风险。
8.如权利要求1所述的方法,其中:
所述放置区域的所述预期平台模型和/或所述预期高度量度由所述打包计划指定,
确定所述一个或多个错误包括:分别标识(a)所述离散化平台模型和/或所述高度量度与(b)所述预期平台模型和/或所述预期高度量度之间的至少一个差异,
确定所述一个或多个错误还包括:标识造成碰撞风险的实时包装条件,
标识所述实时包装条件包括:确定代表未包括在所述打包计划中的物体定位在所述任务位置上的放置区域错误,并且
所述碰撞风险是所述机器人***与未包括在所述打包计划中的所述物体之间的碰撞风险。
9.一种机器人***,其包括:
至少一个传感器,所述至少一个传感器被配置来捕获代表与任务位置和/或所述任务位置上的先前放置的物体相关联的放置区域的目的地传感器数据;
至少一个处理器;以及
至少一个存储器装置,所述至少一个存储器装置连接到所述至少一个处理器并且在其上存储有指令,所述指令能够由所述处理器执行以:
分析代表处于或接近起始位置的目标物体的源传感器数据,其中分析所述源传感器数据包括-
至少部分地基于所述源传感器数据来确定离散化物体模型,其中所述离散化物体模型根据单位像素以二维(2D)代表所述目标物体的物理尺寸或形状中的至少一者,以及
将所述离散化物体模型与打包计划或主数据中的至少一者进行比较,其中所述打包计划是在接收所述源传感器数据之前导出的,其中所述打包计划表示物体在任务位置上的放置位置和姿势,并且另外其中所述主数据包括在所述机器人***处预先登记的可能的物体的描述;
分析代表与所述任务位置或者先前放置在所述任务位置上的一个或多个物体中的至少一者相关联的放置区域的目的地传感器数据,其中分析所述目的地传感器数据包括-
至少部分地基于所述目的地传感器数据来确定离散化平台模型,其中所述离散化平台模型根据另外的单位像素以2D代表所述任务位置的物理尺寸或形状中的至少一者,
至少部分地基于所述目的地传感器数据来确定高度量度,其中所述高度量度代表所述放置区域对应于所述另外的单位像素中的一组或多组的一个或多个部分内的最大高度,以及
将所述离散化平台模型或所述高度量度中的至少一者与所述放置区域的预期平台模型或预期高度量度中的至少一者进行比较;
确定一个或多个错误,其中确定一个或多个错误包括以下中的至少一者:
(i)通过标识(a)所述离散化物体模型与(b)所述打包计划和/或所述主数据之间的一个或多个差异来确定至少一个源匹配错误,或者
(ii)通过标识(a)所述离散化平台模型或所述高度量度中的至少一者与(b)所述预期平台模型或所述预期高度量度中的至少一者之间的一个或多个差异来确定至少一个目的地匹配错误;以及
至少部分地基于所确定的一个或多个错误来调整所述目标物体和/或一个或多个其他物体的放置位置。
10.一种在其上存储有处理器指令的有形非暂时性计算机可读介质,所述处理器指令在由机器人***经由其一个或多个处理器执行时致使所述机器人***执行方法,所述指令包括:
用于接收代表处于或接近起始位置的目标物体的源传感器数据的指令;
用于分析所述源传感器数据的指令,其中用于分析所述源传感器数据的所述指令包括一
用于至少部分地基于所述源传感器数据来确定离散化物体模型的指令,其中所述离散化物体模型根据单位像素以二维(2D)代表所述目标物体的物理尺寸或形状中的至少一者的指令,以及
用于将所述离散化物体模型与打包计划或主数据中的至少一者进行比较的指令,其中所述打包计划是在接收所述源传感器数据之前导出的,其中所述打包计划表示物体在任务位置上的放置位置和姿势,并且另外其中所述主数据包括在所述机器人***处预先登记的可能的物体的描述;
用于接收代表与所述任务位置或者先前放置在所述任务位置上的一个或多个物体中的至少一者相关联的放置区域的目的地传感器数据的指令;
用于分析所述目的地传感器数据的指令,其中用于分析所述目的地传感器数据的所述指令包括-
用于至少部分地基于所述目的地传感器数据来确定离散化平台模型的指令,其中所述离散化平台模型根据另外的单位像素以2D代表所述任务位置的物理尺寸或形状中的至少一者,
用于至少部分地基于所述目的地传感器数据来确定高度量度的指令,其中所述高度量度代表所述放置区域对应于所述另外的单位像素中的一组或多组的一个或多个部分内的最大高度,以及
用于将所述离散化平台模型或所述高度量度中的至少一者与所述放置区域的预期平台模型或预期高度量度中的至少一者进行比较的指令;
用于确定一个或多个错误的指令,其中用于确定所述一个或多个错误的所述指令包括以下中的至少一者:
用于(i)通过标识(a)所述离散化物体模型与(b)所述打包计划或所述主数据中的至少一者之间的一个或多个差异来确定至少一个源匹配错误的指令;或者
用于(ii)通过标识(a)所述离散化平台模型或所述高度量度中的至少一者与(b)所述预期平台模型或所述预期高度量度中的至少一者之间的一个或多个差异来确定至少一个目的地匹配错误的指令;以及
用于至少部分地基于所确定的一个或多个错误来调整所述目标物体和/或一个或多个其他物体的放置位置的指令。
CN202010221092.1A 2019-05-31 2020-02-07 具有错误检测和动态打包机制的机器人*** Active CN111559544B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/428,809 2019-05-31
US16/428,809 US10618172B1 (en) 2019-05-31 2019-05-31 Robotic system with error detection and dynamic packing mechanism
CN202010083653.6A CN112009810A (zh) 2019-05-31 2020-02-07 具有错误检测和动态打包机制的机器人***

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010083653.6A Division CN112009810A (zh) 2019-05-31 2020-02-07 具有错误检测和动态打包机制的机器人***

Publications (2)

Publication Number Publication Date
CN111559544A true CN111559544A (zh) 2020-08-21
CN111559544B CN111559544B (zh) 2021-05-11

Family

ID=72085094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010221092.1A Active CN111559544B (zh) 2019-05-31 2020-02-07 具有错误检测和动态打包机制的机器人***

Country Status (1)

Country Link
CN (1) CN111559544B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277591A (zh) * 1997-10-27 2000-12-20 株式会社安川电机 装载模式的生成方法
JP2002154616A (ja) * 2000-11-20 2002-05-28 Murata Mach Ltd デパレタイズシステム
JP2003104563A (ja) * 2001-09-28 2003-04-09 Maki Mfg Co Ltd 入荷設備
JP3586639B2 (ja) * 2000-11-20 2004-11-10 村田機械株式会社 配送センター
US20050246056A1 (en) * 2004-04-23 2005-11-03 Peter Geoffrey Marks Materials handling system
US20130282165A1 (en) * 2011-10-17 2013-10-24 Symbotic Llc Pallet building system
US20150073588A1 (en) * 2013-09-06 2015-03-12 Liquor Control Board Of Ontario Automated palletization method, system and software
US9424470B1 (en) * 2014-08-22 2016-08-23 Google Inc. Systems and methods for scale invariant 3D object detection leveraging processor architecture
WO2017018113A1 (ja) * 2015-07-29 2017-02-02 株式会社オートネットワーク技術研究所 対象物のハンドリングシミュレーション装置、対象物のハンドリングシミュレーションシステム、対象物のハンドリングをシミュレーションする方法、対象物の製造方法及び対象物のハンドリングシミュレーションプログラム
WO2018194765A1 (en) * 2017-04-21 2018-10-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
CN109353833A (zh) * 2018-11-27 2019-02-19 深圳市汇川技术股份有限公司 机器人码垛点位生成方法、设备及计算机可读存储器
JP2019025618A (ja) * 2017-08-01 2019-02-21 オムロン株式会社 ロボット制御装置、ロボット制御方法及びロボット制御プログラム
US20190143504A1 (en) * 2017-11-14 2019-05-16 Fanuc Corporation Device for calculating stowage pattern and robot controller
CN112009810A (zh) * 2019-05-31 2020-12-01 牧今科技 具有错误检测和动态打包机制的机器人***

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277591A (zh) * 1997-10-27 2000-12-20 株式会社安川电机 装载模式的生成方法
JP2002154616A (ja) * 2000-11-20 2002-05-28 Murata Mach Ltd デパレタイズシステム
JP3586639B2 (ja) * 2000-11-20 2004-11-10 村田機械株式会社 配送センター
JP2003104563A (ja) * 2001-09-28 2003-04-09 Maki Mfg Co Ltd 入荷設備
US20050246056A1 (en) * 2004-04-23 2005-11-03 Peter Geoffrey Marks Materials handling system
US20130282165A1 (en) * 2011-10-17 2013-10-24 Symbotic Llc Pallet building system
US20150073588A1 (en) * 2013-09-06 2015-03-12 Liquor Control Board Of Ontario Automated palletization method, system and software
US9424470B1 (en) * 2014-08-22 2016-08-23 Google Inc. Systems and methods for scale invariant 3D object detection leveraging processor architecture
WO2017018113A1 (ja) * 2015-07-29 2017-02-02 株式会社オートネットワーク技術研究所 対象物のハンドリングシミュレーション装置、対象物のハンドリングシミュレーションシステム、対象物のハンドリングをシミュレーションする方法、対象物の製造方法及び対象物のハンドリングシミュレーションプログラム
WO2018194765A1 (en) * 2017-04-21 2018-10-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
JP2019025618A (ja) * 2017-08-01 2019-02-21 オムロン株式会社 ロボット制御装置、ロボット制御方法及びロボット制御プログラム
US20190143504A1 (en) * 2017-11-14 2019-05-16 Fanuc Corporation Device for calculating stowage pattern and robot controller
CN109353833A (zh) * 2018-11-27 2019-02-19 深圳市汇川技术股份有限公司 机器人码垛点位生成方法、设备及计算机可读存储器
CN112009810A (zh) * 2019-05-31 2020-12-01 牧今科技 具有错误检测和动态打包机制的机器人***

Also Published As

Publication number Publication date
CN111559544B (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
US11794346B2 (en) Robotic system with error detection and dynamic packing mechanism
CN112589791B (zh) 具有基于壁的打包机制的机器人***及其操作方法
US11319166B2 (en) Robotic system with packing mechanism
JP6704157B1 (ja) 動的パッキング機構を有するロボットシステム
CN112009923A (zh) 用于使用实时放置模拟来码垛包裹的机器人***
CN112009811A (zh) 用于处理失序到达的包裹的机器人***
CN111605938B (zh) 用于使用实时放置模拟来码垛包裹的机器人***
CN111498212B (zh) 用于处理失序到达的包裹的机器人***
CN111498213B (zh) 具有动态打包机制的机器人***
CN111559544B (zh) 具有错误检测和动态打包机制的机器人***
CN111498214B (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