用于使用实时放置模拟来码垛包裹的机器人系统的制作方法

文档序号:23145653发布日期:2020-12-01 13:25阅读:99来源:国知局
用于使用实时放置模拟来码垛包裹的机器人系统的制作方法

相关申请的交叉引用

本申请包含与rosenn.diankov和denyskanunikov的标题为“aroboticsystemwithpackingmechanism”的同时提交的美国专利申请有关的主题,所述美国专利申请被转让给mujin公司,由代理人案卷号131837-8005.us01标识,并且以引用的方式整体并入本文。

本申请包含与rosenn.diankov和denyskanunikov的标题为“aroboticsystemwithdynamicpackingmechanism”的同时提交的美国专利申请有关的主题,所述美国专利申请被转让给mujin公司,由代理人案卷号131837-8006.us01标识,并且以引用的方式整体并入本文。

本申请包含与rosenn.diankov和denyskanunikov的标题为“aroboticsystemwitherrordetectionanddynamicpackingmechanism”的同时提交的美国专利申请有关的主题,所述美国专利申请被转让给mujin公司,由代理人案卷号131837-8007.us01标识,并且以引用的方式整体并入本文。

本申请包含与rosenn.diankov和denyskanunikov的标题为“roboticsystemforprocessingpackagesarrivingoutofsequence”的同时提交的美国专利申请有关的主题,所述美国专利申请被转让给mujin公司,由代理人案卷号131837-8008.us01标识,并且以引用的方式整体并入本文。

本技术总体涉及机器人系统,并且更具体地,涉及用于对物体进行打包的系统、过程和技术。



背景技术:

随着性能的不断增强和成本的降低,许多机器人(例如,被配置来自动地/自主地执行物理动作的机器)现在广泛用于许多领域。例如,机器人可用于在制造和/组装、打包和/或包装、运输和/或装运等中执行多种任务(例如,跨空间操纵或搬运物体)。在执行任务时,机器人可复制人类动作,从而替代或减少执行危险或重复性任务原本所需的人类参与。

然而,尽管技术不断进步,但机器人往往缺乏复制执行更复杂任务所需的人类敏感性和/或适应性所必需的复杂程度。例如,机器人往往缺乏在所执行动作中考虑可能由多种真实世界因素造成的偏差或不确定性的控制粒度和灵活性。因此,仍然需要用于控制和管理机器人的多方面以不管多种真实世界因素如何都完成任务的改进的技术和系统。

在包装行业中,传统系统使用离线打包模拟器来预定打包顺序/布置。传统打包模拟器处理物体信息(例如,箱形状/大小)以生成打包计划。打包计划可规定和/或要求物体(例如,货盘、仓、笼、盒等)在目的地处的具体放置位置/姿势、放置的预限定顺序和/或预定运动计划。根据所生成的打包计划,传统打包模拟器导出匹配或实现打包计划的源要求(例如,物体的顺序和/或放置)。因为在传统系统中打包计划是离线研发的,因此计划是独立于实际打包操作/条件、物体到达和/或其他系统实现方式的。因此,总体操作/实现方式将需要所接收包裹(例如,在起始/拾取位置处)遵循匹配预定打包计划的固定顺序。这样,传统系统无法适应所接收包裹的偏差(例如,不同顺序、位置和/或取向)、未预料到的错误(例如,碰撞和/或丢件)、实时打包要求(例如,所接收订单)和/或其他实时因素。

传统系统可根据严格的预定计划来对物体进行分组和打包。例如,传统系统根据预定运动计划将物体(例如,盒或箱)搬运并放置到货盘上。在此情况下,传统系统需要源位置处的所有物体具有相同尺寸/类型和/或根据已知顺序被接近。例如,传统系统将需要物体(通过例如输送机)根据固定顺序到达拾取位置。另外,例如,传统系统将需要将拾取位置处的物体根据预定姿势放置在指定位置处。这样,传统系统需要(例如,在打包操作之前)根据预定顺序/布置来对源处的物体进行排序或放置的一个或多个操作。按具体顺序将包裹提供给机器人对于人类来说是一项艰巨的任务。存在在将包裹传递给机器人以进行进一步布置之前对它们进行定序的一些机器(例如穿梭定序缓冲器)。然而,这些机器可能非常昂贵,需要维修,并且消耗大量资源(诸如空间和电力)。

附图说明

图1是具有3维打包机制的机器人系统可在其中操作的示例性环境的图示。

图2是示出根据本技术的一个或多个实施方案的机器人系统的框图。

图3a是根据本技术的一个或多个实施方案的离散化物体的图示。

图3b是根据本技术的一个或多个实施方案的离散化打包平台的图示。

图3c是示出根据本技术的一个或多个实施方案的放置计划过程的图示。

图4a至图4c是根据本技术的一个或多个实施方案的堆叠规则的图示。

图5a是根据本技术的一个或多个实施方案的示例性堆叠计划的图示。

图5b是根据本技术的一个或多个实施方案的堆叠顺序的图示。

图6是根据本技术的一个或多个实施方案的用于操作图1的机器人系统的流程图。

图7是机器人系统可在其中操作以使用模拟堆叠计划来处理包裹以便放置在平台上的示例性环境。

图8是示出根据多种实施方案的将可用包裹放置在任务位置上时的多种阶段的示例的框图。

图9是根据多种实施方案的用于使用暂时存储区域将可用包裹放置在任务位置上的过程的流程图。

图10是根据多种实施方案的用于将包裹从暂时存储区域放置在任务位置上的过程的流程图。

具体实施方式

本文描述用于具有3维(3d)打包机制的机器人系统的系统和方法。根据一些实施方案配置的机器人系统(例如,执行一个或多个指定任务的装置的集成系统)通过导出物体(包裹)的最佳存储位置并将它们分别堆叠来提供提高的打包和存储效率。在一个示例中,机器人系统可基于堆叠计划来在目的地(例如,货盘、仓、笼、盒等)处组织包裹,而不管将包裹提供给机器人的次序如何。堆叠计划通常包括将包裹放置在货盘上的堆叠顺序或次序,以及其他细节,诸如包裹在货盘上的具体放置位置/姿势和/或预定运动计划,这些在下文描述。机器人系统可实施用于将包裹放置在货盘上的堆叠计划,而无需按堆叠顺序将包裹提供给机器人系统。

当包裹(例如,在输送带上逐个地)到达机器人系统的起始位置处时,机器人系统处理包裹中的每一个以便放置在平台上。在一些实施方案中,处理包裹可包括:标识包裹的属性(诸如形状、大小、高度、宽度、长度和其他物理尺寸),以及将包裹存储在存储区域中(例如,存储在多个存储架中的一个上),以便稍后放置在货盘上。在将包裹存储在存储区域中时,机器人系统可执行模拟功能,以确定用于将包裹放置在货盘上的堆叠计划。在一些实施方案中,模拟功能与处理包裹并行地执行,并且可例如在处理新包裹的时候连续地更新。当码垛触发项已发生时,机器人系统根据堆叠计划从存储区域取出包裹并将它们放置在货盘上。码垛触发项可以是时限触发项、均匀层触发项、存储容量触发项或接收到放置启动命令中的一者。

通过使用暂时存储区域来存储包裹、实时地标识包裹、并且实时地(例如,在包裹到达起始位置时)生成包裹的堆叠计划,机器人系统可消除将包裹进行以下各项的需要:(a)在提供给机器人系统之前通过标识属性(例如使用条码)进行标记;以及(b)按堆叠顺序进行接收,这也消除了对定序机的需要。因此,通过使资源消耗最小化并且改进打包机制,所公开的实施方案产生改进的机器人系统。

本文所述的机器人系统可在系统操作期间生成打包计划。机器人系统可在系统操作期间基于多种实时条件生成实时和/或动态打包计划。实时条件可包括当前存在或持续的条件(诸如物体的实际源顺序/位置/姿势)、物体条件和/或要求、放置要求和/或其他实时因素。机器人系统可根据打包计划处理时的当前/持续的条件和因素实时地(诸如响应于触发事件(例如,所接收订单/请求、装运计划表和/或操作员输入))生成打包计划。在一些实施方案中,可诸如响应于对应事件(例如,重新评估定时、打包/操纵错误(诸如碰撞或丢件)和/或发生其他动态条件)动态地(例如,在初始地开始一个或多个操作(诸如实际打包操作)之后)生成和/或调整打包计划。

与传统系统不同,本文所述的机器人系统可根据当前/现场条件(例如,物体的源顺序/位置/姿势、物体条件和/或要求等)实时地生成放置计划。在一些实施方案中,机器人系统可基于离散化机制(例如,过程、电路、函数和/或例程)来生成打包计划。例如,机器人系统可使用离散化机制根据离散化单元(即,一个离散区域/空间)来描述物体的物理大小/形状和/或目标位置。机器人系统可生成使用离散化单元来描述预期物体的离散化物体廓线和/或描述目标位置(例如,货盘顶部上的表面和/或仓/箱/盒内部的空间/底表面)的离散化目的地廓线。因此,机器人系统可将连续的真实世界空间/区域变换成计算机可读数字信息。此外,离散化数据可允许降低用于描述包裹占位面积和用于比较多种包裹放置的计算复杂性。例如,代替真实世界的小数,包裹尺寸可对应于整数个离散化单元,这使得数学计算更容易。

机器人系统可生成并评估2维(2d)放置计划。机器人系统可选择满足一个或多个条件/规则的2d放置计划并将所选2d放置计划转化成三维(3d)映射结果。3d映射结果可诸如根据包括在2d放置计划中的物体的高度测量值及其在层内的相对位置来描述2d放置计划的高度。机器人系统可按竖直次序/顺序评估3d映射结果,以生成包括2d放置计划的竖直顺序的3d放置计划。在一些实施方案中,机器人系统可针对处于初始状态的物体(例如,在将任何物体放置在目的地区之前)和/或针对保持处于非打包状态的物体(例如,在已将一个或多个物体放置在目的地区之后)生成2d/3d放置计划。下文描述关于物体分组和放置计划的细节。

下文所述的机器人系统可将简化且流线型处理架构/顺序用于实时实现方式。例如,机器人系统(通过例如消费者计算装置,诸如台式计算机、服务器等)可基于实时需要(例如,所接收订单)和/或实时可用性(例如,传入物体和/或当前可接近物体的装运清单(manifesto))来生成打包计划,而无需利用传统定序器和模拟器。在离线环境下利用时,诸如为替换传统定序器和模拟器,机器人系统可使用更简单且更便宜的解决方案来提供离线打包计划。

因此,机器人系统可基于适应实时条件来提高对物体进行打包的效率、速度和准确性。例如,本文所述的系统可生成匹配/解决当前需要(例如,所接收订单)、包裹的当前状态(例如,位置、取向和/或量/可用性)和/或先前堆叠/放置的包裹的实时状态的放置计划。这样,机器人系统可对处于多种不同/预料之外的量、位置、取向和/或顺序的包裹进行接收和打包。

此外,机器人系统可通过消除一个或多个操作、机器(例如,顺序缓冲器)和/或人工辅助(而这些在传统系统中原本是对源处的物体进行排序或放置和/或打包操作(例如,错误处理)所必需的)来降低总成本。

在以下描述中,阐述许多具体细节来提供对当前所公开技术的透彻理解。在其他实施方案中,此处所引入的技术可在没有这些具体细节的情况下实践。在其他情况下,不详细描述诸如具体函数或例程的公知特征,以便避免不必要地使本公开晦涩难懂。此说明中对“实施方案”或“一个实施方案”或类似用语的引用意指所描述的特定特征、结构、材料或特性包括在本公开的至少一个实施方案中。因此,本说明书中此类短语的出现不一定都指代同一实施方案。另一方面,此类引用也不一定相互排斥。此外,特定特征、结构、材料或特性可以任何合适的方式在一个或多个实施方案中加以组合。应理解,图中所示的多种实施方案仅是说明性代表并且不一定按比例绘制。

出于简洁的目的,在以下描述中年未阐述描述公知且往往与机器人系统和子系统相关联并且可能不必要地使所公开技术的一些重要方面晦涩难懂的结构或过程的若干细节。此外,虽然以下公开内容阐述本技术的不同方面的若干实施方案,但若干其他实施方案可具有不同于此章节中所述的那些的配置或组成部分。因此,所公开的技术可具有带有附加元件或没有下文所述元件中的若干的其他实施方案。

下文所述的本公开的许多实施方案或方面可呈计算机或处理器可执行指令(包括由可编程计算机或处理器执行的例程)的形式。相关领域技术人员应理解,所公开的技术可在下文所示和所述的那些之外的计算机或处理器系统上实践。本文所述的技术可在专门编程、配置或构造为执行下文所述的计算机可执行指令中的一者或多者的专用计算机或数据处理器中体现。因此,如本文一般所用的术语“计算机”和“处理器”指代任何数据处理器并且可包括互联网用具和手持式装置(包括掌上计算机、可穿戴计算机、蜂窝或移动电话、多处理器系统、基于处理器的或可编程消费者电子器件、网络计算机、迷你计算机等)。由这些计算机和处理器处理的信息可在任何合适的显示介质(包括液晶显示器(lcd))处呈现。用于执行计算机或处理器可执行任务的指令可存储在任何合适的计算机可读介质(包括硬件、固件,或硬件和固件的组合)中或上。指令可包含在任何合适的存储器装置(包括例如闪存驱动器和/或其他合适的介质)中。

术语“耦接”和“连接”以及它们的派生词可在本文中用来描述组成部分之间的结构关系。应理解,这些术语并不意图作为彼此的同义词。而是,在特定实施方案中,“连接”可用于表示两个或更多个元件彼此直接接触。除非在上下文中另外阐明,否则术语“耦接”可用于表示两个或更多个元件彼此直接或间接(在其间具有其他干预元件)接触,或者两个或更多个元件彼此配合或交互(例如,如呈因果关系,诸如用于信号传输/接收或用于函数调用),或两者。

合适的环境

图1是具有打包机制的机器人系统100可在其中操作的示例性环境的图示。机器人系统100可包括被配置来执行一个或多个任务的一个或多个单元(例如,机器人)和/或与所述一个或多个单元通信。打包机制的多方面可由多种单元来实践或实现。

对于图1所示的示例,机器人系统100可包括位于仓库或分配/装运枢纽中的卸载单元102、搬运单元104(例如,码垛机器人和/或拾件机器人)、运输单元106、装载单元108,或它们的组合。机器人系统100中的单元中的每一个可被配置来执行一个或多个任务。任务可按顺序组合以执行实现目标(诸如从卡车或货车卸载物体并将它们存储在仓库中,或者从存储位置卸载物体并将它们准备用于装运)的操作。再如,任务可包括将物体放置在目标位置上(例如,放置在货盘顶部上和/或仓/笼/盒/箱内部)。如下文所述,机器人系统可导出用于放置和/或堆叠物体的计划(例如,放置位置/取向、用于搬运物体的顺序和/或对应运动计划)。单元中的每一个被配置来执行一系列动作(例如,操作其中的一个或多个组成部分)以执行任务。

在一些实施方案中,任务可包括将目标物体112(例如,对应于正在执行的任务的包裹、盒、箱、笼、货盘等中的一者)从起始位置114操纵(例如,移动和/或重新定向)到任务位置116。例如,卸载单元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)协议(例如,无线保真(wifi))、对等或装置间通信协议(例如,蓝牙、近场通信(nfc)等)、物联网(iot)协议(例如,nb-iot、lte-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的处理器202)可将真实世界物体(例如,包裹、货盘和/或与任务相关联的其他物体)的连续表面/边缘映射到离散对应物(例如,单位长度和/或单位面积)中。另外,机器人系统100可包括预期物体的存储在图2的主数据252中的离散化模型/代表。

在一些实施方案中,如图3a所示,机器人系统100可使用离散化物体模型302来计划/导出物体的堆叠放置。离散化物体模型302(使用点划线示出)可根据离散化单元(例如,单位长度)代表已知和/或预期物体(例如,包裹、盒、箱等)的外部物理尺寸、形状、边缘、表面,或它们的组合。在一些实施方案中,如图3b所示,机器人系统100可使用一个或多个离散化平台模型304来计划/导出物体的堆叠放置。离散化平台模型304可根据离散化单元代表放置表面(例如,货盘的顶表面)。在一些实施方案中,离散化单元可包括由系统操作员、系统设计者、预定输入/设定或它们的组合预设的长度。

在一些实施方案中,离散化平台模型304可包括一个或多个标准大小货盘(例如,1.1m乘1.1m货盘)的俯视图。因此,离散化平台模型304可对应于沿着根据机器人系统100所利用的网格系统的水平平面(例如,x-y平面)的货盘顶表面的像素化2d代表。在一些实施方案中,离散化物体模型302可包括由机器人系统100预期/已知的物体的俯视图(例如,x-y平面,如图3a左侧所示)和/或水平/剖视图(例如,x-y平面,如右侧所示)。因此,离散化物体模型302可对应于物体的像素化2d/3d代表。

作为说明性实例,机器人系统100可使用单位像素310(例如,具有根据离散化单元的一个或多个尺寸的多边形,诸如正方形)来描述目标物体(通过例如离散化物体模型302)和装载平台(通过例如离散化平台模型304)的面积/表面。因此,机器人系统100可沿着x-y轴将物体和装载平台像素化。在一些实施方案中,单位像素310(例如,离散化单元)的大小可根据物体的尺寸和/或装载平台的尺寸而改变。单位像素310的大小还可进行调整(通过例如预设规则/方程和/或操作员选择),以平衡所需资源(例如,计算时间、所需存储器等)与打包准确性。例如,当大小减小时,计算时间和打包准确性可增加。因此,使用可调整单位像素310的打包任务(例如,目标包裹和打包平台)的离散化提供码垛包裹的增加的灵活性。机器人系统100可根据独特情境、图案和/或环境来控制计算资源/时间与打包准确性之间的平衡。

对于图3a和图3b所示的实例,机器人系统100可预期/处理对应于第一包裹类型321、第二包裹类型322、第三包裹类型323、第四包裹类型324和/或第五包裹类型325的物体。机器人系统100可计划并将包裹放置/堆叠在对应于图1的任务位置116的放置货盘340上。对于放置计划,机器人系统100可使用单位像素310生成和/或利用包括分别代表对应包裹的第一物体模型331、第二物体模型332、第三物体模型333、第四物体模型334和/或第五物体模型335的离散化物体模型302。类似地,机器人系统100可使用单位像素310生成和/或利用放置货盘340的离散化平台模型304。

在一些实施方案中,机器人系统100可对(例如,针对离散化物体模型302,诸如针对第三物体模型333和/或第四物体模型334)物体的实际尺寸进行上舍入,使得单位像素310延伸超过物体的实际周边边缘。在一些实施方案中,机器人系统100可对(例如,针对离散化平台模型304)平台表面的实际尺寸进行下舍入,使得单位像素310重叠和/或包含在物体的实际周边边缘内。

基于离散化数据/代表,机器人系统100可生成用于将包裹放置/打包到放置货盘340上的放置计划350。放置计划350可包括放置货盘340上的用于目标包裹的计划位置。机器人系统100可生成用于放置被指定用于装载/码垛的可用包裹中的一者或多者的放置计划350。例如,机器人系统100可生成用于堆叠来自可用包裹的一组包裹(例如,所接收包裹和/或传出的有序包裹)的放置计划350。

机器人系统100可根据一组放置规则、放置条件、参数、要求等生成放置计划350。在一些实施方案中,机器人系统100可基于根据设定(诸如根据包裹类型(例如,包裹类型321-325)、包裹高度、客户指定优先级、易碎性(例如,诸如对堆叠在其上的包裹的最大支撑重量)、重量范围,或它们的组合)分组的包裹来生成放置计划350。在一些实施方案中,机器人系统100可根据堆叠条件(诸如像进一步背离码垛单元堆叠较高包裹)来生成放置计划350。放置规则、条件、参数、要求等的其他实例可包括包裹尺寸、无碰撞要求、堆叠稳定性、分组条件(例如,包裹类型、包裹高度、优先级等)、包裹间隔要求或没有包裹间隔、总装载包裹的最大化,或它们的组合。下文描述关于放置计划的细节。

对于图3b所示的实例,机器人系统100可生成对应于包裹类型321-325的一组包裹的2d放置计划(例如,放置计划350)。机器人系统100可生成放置第一包裹类型321的三个包裹、第二包裹类型322的四个包裹、第三包裹类型323的四个包裹、第四包裹类型324的五个包裹和第五包裹类型325的四个包裹的放置计划350。放置计划350可将包裹分组,以使具有类似高度(例如,彼此相等或在彼此阈值限值内)的相邻包裹分组最大化。因此,机器人系统100可对以2×2布置位于放置货盘340的左下角处的四个第二包裹类型322分组。第二包裹分组(例如,第一包裹类型321、第四包裹类型324和第五包裹类型325的包裹)可放置在初始放置的群组周围。因此,第一分组的连续表面积(例如,处于四个单位像素310的高度)和第二分组的表面积(处于两个单位像素310的高度)可得以最大化。另外,机器人系统100可基于一个或多个要求(诸如易碎性(例如,限制所支撑物品的数目)和/或间隔要求)来分隔第三包裹类型323的包裹。类似地,机器人系统100可根据边界要求(例如,距放置货盘340的边缘的一个或多个单位像素310)生成2d放置计划。

在一些实施方案中,机器人系统100可基于2d计划(例如,x-y占位面积,诸如俯视图)和/或3d计划(例如,x-z或y-z占位面积,诸如剖视图)来生成放置计划350。例如,机器人系统100可基于迭代地导出沿着x-y平面的潜在2d放置,根据放置规则、条件等测试潜在放置,计算放置分数,或它们的组合来生成放置计划350。机器人系统100可基于选择使放置分数最佳化(最高或最低)的2d放置计划来生成放置计划350。在一些实施方案中,机器人系统100可使用2d放置计划来进一步生成3d计划(例如,堆叠计划;图3b未示出)。例如,机器人系统100可基于使用2d放置计划作为堆叠内的层来生成3d放置计划。换句话说,机器人系统100可将所生成2d放置放置在一个或多个层(例如,其他2d放置计划)之上/顶部和/或一个或多个其他层之下/下方。

作为说明性实例,机器人系统100可在导出2d计划时估计和考虑所放置物体的高度。例如,机器人系统100可将物体高度像素化(例如,存储在主数据中),如图3a所示。另外,机器人系统100可将所放置物体的预定高度数据映射到由物体占据的单位像素中的每一个。在高度映射到像素中的每一个的情况下,机器人系统100导出所得2d放置计划350的放置表面。放置表面可各自对应于导出表面/平面,所述导出表面/平面诸如由于形成导出表面的物体的相同或类似高度而可具有并支撑放置在其上的物体。

机器人系统100可基于标识具有在彼此阈值范围内的高度值的单位像素分组来导出放置表面。在一些实施方案中,机器人系统100可基于标识放置计划350的最大高度来导出放置表面。基于最大高度,机器人系统100可标识放置计划350中具有匹配最大高度或与最大高度在阈值范围内的高度的单位像素。机器人系统100可基于具有合格高度的最外部/周边单位像素的连接角和/或扩边来导出轮廓,从而导出放置表面。机器人系统100可针对放置区域之外的区域使用较低高度重复所述过程。对于图3b所示的实例,机器人系统100可导出第一放置表面352、第二放置表面354和第三放置表面356。第一放置表面352可对应于放置计划350的左下角所示的具有四个单位像素的最大高度的矩形区域。第二放置表面354可对应于具有两个单位像素的高度的周围区域(使用短划线示出)。第三放置表面356可对应于位于放置计划350的右侧的具有一个单位像素的高度的单独区域。下文关于2d和3d放置计划的细节。

图3c是示出根据本技术的一个或多个实施方案的放置计划过程的图示。机器人系统100(通过例如图2的一个或多个处理器202)可为一组可用包裹362导出图3b的放置计划350。可用包裹362可对应于需要打包以便出口装运和/或存储的物体。例如,可用包裹362可对应于通过入口装运接收的传入物体和/或已排序用于出口装运的所存储物体。在一些实施方案中,机器人系统100可使用装运清单、订购列表等来实时地(诸如直接响应于接收到清单、列表(即,在其阈值持续时间内)等)标识可用包裹362。因此,机器人系统100可使用所标识可用包裹362来实时地导出放置计划350。这样,代替利用包裹的假设数目/设定/组合来导出无论实时条件如何都应用的计划的离线打包模拟器,机器人系统100可使用实时条件、可用性和/或需求来导出放置计划350。在一些实施方案中,机器人系统100可使用位于接收、存储和/或发送物体的位置(诸如装运枢纽和/或仓库)处的装置(例如,处理器202中的一者或多者)。

在一些实施方案中,如下文详细论述,机器人系统100可将可用包裹362分组和/或定序。机器人系统100可使用一组有序可用包裹362来导出放置计划350。机器人系统100可确定并评估可用包裹362的独特放置位置/组合,以导出放置计划350。换句话说,机器人系统100可确定一组潜在放置组合364并根据一组预定要求、条件、重量、成本、后续暗示或它们的组合来对所述组合364进行评估。基于评估,机器人系统100可选择放置组合以导出放置计划350。

在至少一个实施方案中,机器人系统100可使用迭代地评估定序包裹的放置的算法来导出放置计划350。如图3c所示,机器人系统100可通过确定可用包裹362中的第一包裹的初始放置来开始导出。因此,机器人系统100可在初始位置(例如,角落、中间位置和/或另一预设位置)处将图3a的对应离散化物体模型302重叠在图3b的离散化平台模型304之上。机器人系统100可基于从可用包裹362移除所放置包裹(例如,第一包裹)来跟踪剩余包裹372。

基于初始放置,机器人系统100可确定可用包裹362中的第二包裹的一组可能放置。机器人系统100可根据预定规则、图案或它们的组合来确定一组可能的放置。例如,机器人系统100可根据相对于一个或多个先前放置的包裹(例如,相对于一个或多个先前放置的包裹)的位置图案来确定放置位置。另外,机器人系统100可基于包裹中的一者或多者之间所需的最小/最大间隔距离或其缺乏来确定放置位置。此外,机器人系统100可基于根据预定量(诸如90度)旋转包裹(即,对应离散化物体模型302)来确定放置位置。在一些实施方案中,机器人系统100可根据预定阈值和/或图案来限制放置可能性。此外,机器人系统100可分别更新剩余包裹372。

机器人系统100可重复上述过程并且迭代地处理可用包裹362,直到达到停止条件为止。停止条件的一些实例可代表已放置所有包裹(即,剩余包裹372为空)、无法改进放置(例如,评估分数与前一层级/迭代相同)、无法在离散化平台模型304之上再放置更多包裹,或它们的组合。

在一些实施方案中,机器人系统100可使用搜索树374来跟踪可能的放置和对应的潜在放置组合364。搜索树374的根可对应于初始放置,并且每个级别或层级可包括可用包裹362中后续包裹的潜在放置。不同的层级可连接在一起,以形成对应于所述一组包裹的独特放置组合的分支。

对于每个包裹的潜在放置,机器人系统100可标识并消除(例如,由图3c中的‘x’代表)冗余占位面积。例如,在搜索树374的每个层级处,机器人系统100可比较(叠加)潜在放置位置/组合的所得占位面积。基于所述比较,机器人系统100可消除所得占位面积的复制品。在一些实施方案中,机器人系统100可进一步比较所得占位面积的转置、旋转和/或镜像版本,以消除相关复制品。例如,机器人系统100可旋转一个占位面积达90度和/或跨一个或多个镜像线(例如,跨相对角落延伸的对角线、沿着x和/或y方向延伸的一条或多条平分线,或它们的组合)转置所述占位面积,并将其与其他占位面积进行比较。

另外,对于每个包裹的潜在放置,机器人系统100可标识并消除违反一个或多个要求/约束的放置。要求/约束的一个实例可基于碰撞可能性。机器人系统100可根据预先存在的占位面积、包裹的一个或多个尺寸、搬运机器人的位置、先前事件或历史,或它们的组合来计算每个放置位置的接近路径和对应碰撞可能性。机器人系统100可消除碰撞可能性超过预定阈值的放置。要求/约束的另一实例可以是用于堆叠(即,直接放置在一个或多个支撑包裹上/之上)包裹的支撑重量。对于位于放置位置之下的包裹中的一个或多个,机器人系统100可基于所放置包裹的重量来计算支撑重量(即,包裹或其正上方的部分的组合重量)。机器人系统100可消除支撑重量违反(例如,超过其阈值范围或在其阈值范围内)放置位置之下的包裹中的一个或多个的易碎性要求(例如,最大可支撑重量)的放置。

在一些实施方案中,机器人系统100可使用优先级队列376(例如,堆结构等)来跟踪和/或评估放置组合364。优先级队列376可根据偏好顺序对放置组合364进行排序。机器人系统100可根据一个或多个预定标准对放置组合364中的一个或多个进行评估或评分。标准可包括与已经放置的物品相关联的一种或多种成本和/或与当前放置影响未来放置的方式或可能性相关联的一个或多个启发式分数。

标准的一个实例可包括占位面积密度的最大化。机器人系统100可计算包裹分组的外周边382的占位面积密度。在一些实施方案中,外周边382可基于包裹分组的暴露/外周边边缘来确定。机器人系统100可通过扩展两个或更多个边缘并找到相交点和/或通过绘制连接占位面积的一个或多个角落的线来进一步包围周围/相关区域。机器人系统100可将占位面积密度计算为实际占位面积384(例如,对应于阴影区域的单位像素310的数目)与空区域386(例如,对应于包围/相关区域的单位像素310的数目)之间的比。机器人系统100可被配置来优选(例如,通过指派更高/更低分数)使空区域386最小化的放置计划。

堆叠规则

图4a至图4c是根据本技术的一个或多个实施方案的堆叠规则的图示。机器人系统100可使用堆叠规则来将包裹放置在彼此上方,诸如用于将一个或多个包裹层堆叠/放置在一个或多个其他包裹层上。机器人系统100可使用堆叠规则来改进所堆叠包裹的稳定性并防止任何包裹在货盘的移动期间滑落和/或倾翻。出于说明性目的,图4a至图4c示出直接在一个或多个支撑包裹454上方并由其支撑(例如,直接接触)的顶部包裹452。

图4a示出用于生成3d放置(例如,3d放置计划350)的水平偏移规则402。水平偏移规则402可包括用于控制所堆叠物品之间的竖直边缘/表面的水平偏移的规章、要求,或它们的组合。例如,水平偏移规则402可基于重叠要求422、悬垂要求424,或它们的组合。重叠要求422可包括所堆叠包裹之间的重叠的最小量(例如,长度、宽度和/或表面积的百分比或比)。在一些实施方案中,重叠要求422可要求顶部包裹452的最小量的水平尺寸/表面积与支撑包裹454的水平尺寸/表面积重叠。悬垂要求424可包括最大量(例如,长度、宽度和/或表面积的百分比或比)的悬垂(诸如顶部包裹452的水平地延伸经过支撑包裹454的周边边缘/表面的一部分)。

在一些实施方案中,水平偏移规则402可基于重量、尺寸和/或质心(com)位置412。例如,重叠要求422和/或悬垂要求424可基于com位置412,诸如用于相对于支撑包裹454的顶部com位置与水平边缘/表面之间的距离和/或悬垂距离(例如,沿着顶部包裹452的延伸经过支撑包裹454的一个或多个周边边缘的一部分的水平方向测量),评估顶部包裹452和支撑包裹454的com位置412之间的距离。在一些实施方案中,水平偏移规则402可基于要求顶部包裹452和支撑包裹454的com位置412在阈值内的com偏移要求426。阈值可包括预定距离、com位置412相对于水平尺寸、悬垂距离、重叠距离或它们的组合之间的偏移距离之间的比的阈值限值。

图4b示出用于生成3d放置(例如,堆叠计划)的支撑间隔规则404。支撑间隔规则404可包括用于控制支撑包裹454之间的水平间隔距离414的规章、要求,或它们的组合。水平间隔距离414可对应于相邻支撑包裹454的周边表面/边缘之间的水平距离。在一些实施方案中,支撑间隔规则404可进一步基于顶部包裹452与支撑包裹454之间的重叠表面的位置和/或量。例如,支撑间隔规则404可要求水平间隔距离414比任何悬垂距离大达预定百分比。另外,支撑间隔规则404可要求水平间隔距离414延伸到顶部包裹452的com位置412下方。

图4c示出用于生成3d放置(例如,3d放置计划350)的竖直偏移规则406。竖直偏移规则406可包括用于控制支撑包裹454的竖直位置之间的支撑高度差416的规章、要求,或它们的组合。支撑高度差416可对应于对应支撑包裹454的顶部部分(诸如将可能接触放置在对应支撑包裹454之上的顶部包裹452的部分)之间的竖直距离。在一些实施方案中,竖直偏移规则406可要求支撑高度差416遵循用于将一个或多个包裹堆叠在支撑包裹454顶部上的预定阈值要求。在一些实施方案中,支撑间隔规则404可基于层高度而有所不同。例如,当顶部包裹452(例如,被支撑包裹)是最顶层的一部分时,支撑高度差416的限值可相比较低层更大。

机器人系统100可根据堆叠规则生成堆叠计划(例如,多个2d放置计划的3d组合)。例如,机器人系统100可根据高度要求(例如,用于使包裹分组的高度保持在阈值距离内)生成2d放置计划(例如,图3b的放置计划350)。随后,机器人系统100可基于使2d放置计划竖直地重叠(堆叠)来生成堆叠计划。

堆叠顺序

图5a是根据本技术的一个或多个实施方案的堆叠计划502(例如,代表可用包裹的3d映射的计划和/或放置计划350对应于3d映射内的层)的示例的图示。出于说明性目的,堆叠计划502使用包裹(例如,例如,至少包裹1-1至1-4、2-1至2-2和3-1至3-3)的第一堆叠520的第一层512、第二层514和第三层516来示出。第一层512、第二层514和第三层516中的每一个可以是放置计划350的实例。第一层512可位于底部,使得其中的包裹(例如,至少包裹1-1、1-2、1-3和1-4)直接接触放置货盘340。第二层514中的包裹(例如,至少包裹2-1和2-2)可直接位于(即,直接接触)第一层512上且在第一层512上方。类似地,第三层516中的包裹(例如,至少包裹3-1和3-2)可直接位于第二层514上且接触第二层514。

如下文详细论述,机器人系统100可单独地计划层中的每一个,同时考虑竖直参数(例如,支撑高度、层高度等)。在生成堆叠计划502时,机器人系统100可根据竖直参数和/或堆叠规则对单独层进行竖直地组合和/或定序。在一些实施方案中,机器人系统100可根据包裹的竖直放置对层进行计划。例如,机器人系统100可将第一层512生成为包括直接接触放置货盘340的所有包裹,诸如包括第二堆叠522中的底部两个包裹。另外,机器人系统100可将标记‘3-3’的包裹计划为第二层514的一部分。在一些实施方案中,机器人系统100可在生成堆叠计划502时对层(例如,放置计划350)进行重新计划和/或调整。例如,机器人系统100可调整层以促进堆叠/放置顺序。如图5a所示,机器人系统100可调整层,使得将第二堆叠522视为单独堆叠(即,与第一层、第二层和第三层512-516分开)。因此,机器人系统100可与第一堆叠520的层分开地/以不同方式对第二堆叠522的包裹自由地计划和/或堆叠。

另外,在一些实施方案中,机器人系统100可将最靠近图1的搬运单元104(例如,码垛机器人)的更大包裹移动到更高层,以促进堆叠顺序。假设搬运单元104在图5a所示放置货盘340的右侧,则‘3-3’包裹可在其被放置在标记‘3-1’和‘3-2’的包裹之前的情况下成为障碍物(即,由于其高度)。因此,机器人系统100可调整层,使得‘3-3’包裹是更高层(例如,第三层516而不是第二层512)的一部分。因此,当机器人系统100根据层放置包裹时,‘3-3’包裹可放置在‘3-1’和‘3-2’包裹之后。

在其他替代实施方案中,机器人系统100可基于分析堆叠计划502单独地计算堆叠或放置顺序,而无需受限于层。出于论述目的,图5b是根据本技术的一个或多个实施方案的并不因根据层堆叠包裹而受限的堆叠顺序530(例如,对可用包裹的放置次序的标识)的图示。堆叠顺序530可用于将所堆叠包裹532放置在支撑包裹上方且水平地位于两个端部包裹之间。堆叠顺序530可使得可首先放置距搬运单元104(图5b未示出,假设位于放置货盘340的右侧)最远的包裹(标记为‘1’)并且之后将第二包裹(标记为‘2’)放置在放置货盘340上。机器人系统100可计算堆叠顺序530,使得所堆叠包裹532(标记为‘3’)放置在端部包裹534(标记为‘4’)中的一个之前(例如,第三)。如上文所述,机器人系统100可基于将端部包裹534中的一个调整为属于具有所堆叠包裹532的第二层或基于从堆叠计划502独立地计算堆叠次序来计算堆叠顺序530。

操作流程

图6是根据本技术的一个或多个实施方案的用于操作图1的机器人系统100的方法600的流程图。方法600可用于生成用于将包裹(例如,箱和/或盒)放置到平台(例如,货盘)上的2d/3d打包计划和/或用于分别放置包裹。方法600可基于利用图2的处理器202中的一个或多个执行存储在图2的存储装置204中的一个或多个上的指令来实施。

在框602处,机器人系统100可标识包裹组(例如,图3c的可用包裹362)和目的地(例如,图1的任务位置116,诸如用于接收包裹的货盘和/或容器)。例如,机器人系统100可标识包裹组以代表包括可用于打包、位于源处、指定用于放置和/或列在订单/请求/清单中的包裹的可用包裹362。另外,机器人系统100代表任务位置116的可放置包裹的区域(例如,货盘(诸如图3的放置货盘340)的顶部装载表面)的大小或尺寸。在一些实施方案中,机器人系统100可标识货盘的大小、尺寸、类型,或它们的组合。

在框604处,机器人系统100可生成和/或访问对应于代表可用包裹362的包裹组和/或任务位置116的离散化模型(图3a的离散化物体模型302和/或图3b的离散化平台模型304)。在一些实施方案中,机器人系统100可基于划分物体和/或平台区域(例如,根据图3b的单位像素310的货盘顶表面)的物理尺寸来(例如,实时地(诸如在接收到订单之后和/或在开始打包操作之前)或离线地)生成离散化模型。单位像素310可(由例如制造商、下单客户和/或操作员)预定为诸如1毫米(mm)或1/16英寸(in)或更大(例如,5mm或20mm)。在一些实施方案中,单位像素310可以是基于包裹中的一个或多个和/或平台的尺寸或大小(例如,百分比或分数)。

在一些实施方案中,机器人系统100可访问存储在存储装置204和/或另一装置(例如,通过图2的通信装置206访问的存储装置、数据库和/或包裹供应者的服务器)中的离散化模型。机器人系统100可访问代表可用包裹362和/或任务位置116的预定离散化模型。例如,机器人系统100可通过在图2的主数据252(例如,预定表或查找表)中搜索可用包裹及其对应模型来访问对应于可用包裹362的离散化物体模型302。类似地,机器人系统100可访问代表将要放置可用包裹的平台(诸如所标识货盘)的离散化平台模型304。

在框606处,机器人系统100可确定包裹分组(例如,可用包裹的子组)。机器人系统100可基于可用包裹362确定包裹分组,以用于将包裹分组放置在所标识平台(例如,放置货盘340)上。机器人系统100可根据可用包裹362的一个或多个特性中的相似性和/或图案来确定包裹分组。在一些实施方案中,如框621处所示,机器人系统100可通过根据分组条件/要求将可用包裹362分组来确定包裹分组。分组条件/要求的一些示例可包括包裹优先级(例如,如一个或多个客户所指定)、易碎性评级(例如,包裹可支撑的最大重量)、重量、包裹尺寸(例如,包裹高度)、包裹类型,或它们的组合。在将可用包裹362分组时,机器人系统100可在主数据252中搜索匹配分组条件/要求的可用包裹362的多种特性。

在框608处,机器人系统100可计算可用包裹362和/或其分组(即,包裹分组)的处理次序(例如,考虑/导出放置位置的顺序)。在一些实施方案中,如框622处所示,机器人系统100可根据一个或多个定序条件/要求计算处理次序。例如,机器人系统100可根据包裹分组中的每一个内的包裹数目将分组的放置计划进行优先级排序,诸如以便在放置计划中更早地处理具有更多数目的包裹的包裹分组。在一些实施方案中,定序条件可与分组条件重叠,诸如针对重量范围、易碎性评级等。例如,机器人系统100可优先考虑处理更重和/或更不易碎的包裹以便更早地处理和/或放置在更低层中。

在一些实施方案中,机器人系统100可根据组合水平面积来对放置计划进行优先级排序。机器人系统100可使用主数据252中指定的信息来计算(通过例如将对应宽度和长度相乘)或访问分组中的包裹的顶表面的表面积。在计算组合水平面积时,机器人系统100可将在阈值范围内具有相同类型和/或高度的包裹的表面积相加。在一些实施方案中,机器人系统100可优先考虑将具有更大组合水平面积的分组的放置计划以便更早地处理和/或放置在更低层中。

对于一个或多个实施方案,机器人系统100可用可用包裹362的标识符和/或量加载缓冲器。机器人系统100可根据分组对缓冲器中的标识符进行定序。此外,机器人系统100可根据处理次序对缓冲器中的标识符进行定序。因此,缓冲器中的定序值可对应于图3c所示的可用包裹362和/或剩余包裹372。

如框624处所示,例如,机器人系统100可在实施图5的对应堆叠计划502之前(诸如在将包裹组中的任何包裹放置在平台上之前)计算可用包裹362的初始组(例如,包裹组)的处理次序。在一些实施方案中,如框626处所示,机器人系统100可在启动实施对应堆叠计划502之后或与此同时计算可用包裹362的剩余组的处理次序。例如,如来自框616的反馈回路所示,机器人系统100可根据一个或多个触发条件来计算剩余组(例如,可用包裹362中尚未被搬运到平台和/或保持处于源位置的部分)的处理次序。示例性触发条件可包括堆叠错误(例如,丢失的或掉落的包裹)、碰撞事件、预定重新触发定时,或它们的组合。

在框610处,机器人系统100可生成用于沿着水平平面放置可用包裹362的2d计划(例如,图3b的放置计划350)。例如,机器人系统100可生成放置计划350以代表可用包裹362沿着水平平面的2d映射。机器人系统100可基于离散化模型生成两个或更多个放置计划。例如,机器人系统100可基于将离散化物体模型302与离散化平台模型304进行比较来生成放置计划350。机器人系统100可确定离散化物体模型302的不同放置/布置,将它们与离散化平台模型304进行重叠/比较,并且验证/保持在重叠时在离散化平台模型304的边界内的布置。机器人系统100可将无法放置在离散化平台模型304的边界内的包裹指定用于另一层(例如,放置计划350的另一实例)。因此,机器人系统100可迭代地导出放置计划350的代表堆叠计划502的2d层的放置位置,直到包裹组中的包裹中的每一个已被指派放置计划350中的位置为止。

在一些实施方案中,机器人系统100可基于包裹分组来生成放置计划350。例如,机器人系统100可确定一个包裹分组内的包裹的布置,之后才考虑另一分组中的包裹的放置。当包裹分组内的包裹铺满一层(即,无法纳入离散化平台模型304的一个层或一个实例中)时和/或在放置一个分组的所有包裹之后,机器人系统100可将下一分组中包裹的位置指派到离散化平台模型304中的任何剩余/未占用区域。机器人系统100可迭代地重复所述指派,直到没有任何未指派的包裹可纳入离散化平台模型304的剩余空间上为止。

类似地,机器人系统100可基于处理次序(例如,基于根据处理次序的包裹分组)来生成放置计划350。例如,机器人系统100可基于根据处理次序指派包裹和/或分组来确定测试布置。机器人系统100可向最早定序的包裹/分组指派用于测试布置的初始放置,然后根据处理次序测试/指派后续包裹/分组。在一些实施方案中,机器人系统100可跨层(例如,跨放置计划350的实例)保持包裹/分组的处理次序。在一些实施方案中,机器人系统100可在每个层填满之后重新计算并更新处理次序(在图6中使用短划反馈线示出)。

在一些实施方案中,作为上文所述过程的说明性示例,机器人系统100可通过标识包裹组内的不同包裹类型(例如,图3a的相应的第一包裹类型、第二包裹类型、第三包裹类型、第四包裹类型和/或第五包裹类型321-325)来生成2d计划。换句话说,在框632处,机器人系统100可标识包裹分组和/或包裹组中的每一个内的独特包裹(例如,如由包裹类型代表)。

在框634处,机器人系统100可导出(例如,迭代地)可用包裹362中的每一个的放置位置。在框636处,机器人系统100可确定根据处理次序按顺序为第一个的独特包裹的初始放置位置。机器人系统100可根据预定图案来确定初始放置位置,如上文所述。在一些实施方案中,机器人系统100可计算每个独特包裹的初始放置。所得初始放置各自可诸如通过跨迭代跟踪放置计划350来自发展成独特放置组合(例如,图3c的搜索树374的实例)。在框638处,机器人系统100可导出并跟踪根据处理次序的后续包裹和/或如上文所述的剩余包裹372的候选放置位置。因此,机器人系统100可迭代地导出图3c的放置组合364。

在导出放置组合364(例如,候选放置位置)时,机器人系统100可基于迭代地导出并评估候选堆叠情境(例如,可用包裹的独特放置位置的潜在组合)来测试/评估对应包裹的离散化物体模型302的位置。候选堆叠情境可各自基于根据上文所论述的顺序标识包裹的独特潜在位置(例如,根据放置位置的预定顺序/规则)来导出。候选堆叠情境和/或独特放置位置可根据一个或多个放置标准(例如,要求、约束、放置成本和/或启发式分数)来评估。例如,放置标准可要求离散化物体模型302在被放置在所选位置处时完全纳入离散化平台模型304的水平边界内。另外,放置标准可要求离散化物体模型302的放置位于相对于初始放置位置(例如,诸如沿着水平方向)和/或先前放置位置的阈值距离之内或之外,诸如为了相邻放置或间隔要求。放置标准的其他示例可包括对以相邻方式放置在一个或多个包裹尺寸(例如,高度)、易碎性评级、包裹重量范围或它们的组合上具有一种或多种最小差异的包裹的偏好。在一些实施方案中,放置标准可包括可对应于先前指派在层中的包裹相对于参考位置(例如,码垛机器人的位置)的位置和/或特性(例如,高度)的碰撞可能性。因此,机器人系统100可生成包裹放置位置的多个独特放置组合(即,每个层的候选放置计划和/或每个层包括多个层的候选堆叠情境)。在一些实施方案中,机器人系统100可基于跨放置迭代生成并更新搜索树374来跟踪组合的放置。

在框640处,机器人系统100可计算/更新每个组合/包裹放置的放置分数。机器人系统100可根据放置条件/偏好(例如,包裹尺寸、碰撞可能性、易碎性评级、包裹重量范围、间隔要求、包裹量条件)中的一者或多者来计算放置分数。例如,机器人系统100可使用偏好因子(例如,乘数权重)和/或方程来描述对以下各项的偏好:包裹之间的间隔距离、相邻包裹的包裹尺寸/易碎性评级/包裹重量的差异、碰撞可能性、同一高度处的连续/相邻表面、其统计学结果(例如,平均值、最大值、最小值、标准差等),或它们的组合。每个组合可根据可由系统制造商、订单和/或系统操作员预限定的偏好因子和/或方程来评分。在一些实施方案中,机器人系统100可在总放置迭代结束时计算放置分数。

在一些实施方案中,机器人系统100可在每次放置迭代之后更新图3c的放置组合364在优先级队列376中的顺序。机器人系统100可基于放置分数来更新顺序。

机器人系统100可基于确定空源状态、全层状态或不变分数状态、诸如当一个候选放置计划完成时停止放置迭代。空源状态可代表已替换所有可用包裹。全层状态可代表没有其他包裹可放置在所考虑离散化平台模型304的剩余区域中。不变分数状态可代表组合的放置分数跨一个或多个连续放置迭代保持恒定。在一些实施方案中,机器人系统100可使用不同的初始放置位置和/或不同的处理次序(例如,用于对具有与定序条件相关联的相同定序值/分数的群组进行重新排序)来重复放置迭代,以导出候选堆叠情境的其他实例。换句话说,机器人系统100可生成多个2d放置计划,其中每个2d放置计划可代表3d堆叠内的层(例如,候选堆叠情境的实例)。在其他实施方案中,机器人系统100可在导出2d放置计划时迭代地考虑3d效应并且在2d放置计划变完整时作为下一迭代开始导出下一层。

在框612处,机器人系统100可生成堆叠计划(例如,堆叠计划502)。在一些实施方案中,当所处理包裹的放置位置与一个或多个先前放置/处理的包裹重叠时,机器人系统100可开始生成堆叠计划502。

在生成堆叠计划502和/或访问2d计划时,机器人系统100可将放置组合364和/或放置计划中的每一者转换成3d状态,如框652处所示。例如,机器人系统100可将包裹的高度值指派到放置组合364。换句话说,机器人系统100可基于将包裹高度添加到放置组合364来生成等高线圈(对深度图的估计)。

利用3d状态,机器人系统100可根据一个或多个堆叠规则(例如,图4a的水平偏移规则402、图4b的支撑间隔规则404和/或图4c的竖直偏移规则406)来评估放置组合364。作为说明性示例,当所放置包裹堆叠在一个或多个先前处理的包裹上/之上时,机器人系统100可消除违反上文所述的图2的重叠要求422、图4a的悬垂要求424、竖直偏移规则406、图4a的com偏移要求426或其组合的任何放置组合364。在一个或多个实施方案中,机器人系统100可诸如通过估计重叠包裹处的支撑重量并将它们与对应易碎性评级进行比较来消除违反所处理包裹下方的一个或多个包裹的易碎性评级的任何放置组合364。

对于剩余放置组合364,机器人系统100可计算3d放置分数或更新放置分数,诸如框654处所示。机器人系统100可使用与3d放置的放置成本和/或启发式值相关联的预定偏好(例如,权重和/或方程)。预定3d偏好可类似于2d偏好、分组偏好、定序条件,或它们的组合。例如,3d偏好可被配置来基于3d状态计算碰撞可能性并且计算偏向于具有较低碰撞可能性的放置组合的分数。另外,机器人系统100可基于剩余包裹372、具有共同高度的支撑区域的大小、处于3d状态的所打包物品的数目、所处理包裹的高度之间的差或它们的组合来计算分数。在一些实施方案中,机器人系统100可根据分数来更新放置组合364在优先级队列376中的顺序。

在已处理3d状态之后,诸如在框610处,机器人系统100可通过导出剩余包裹372中的下一包裹的放置来更新2d计划。机器人系统100可重复上述过程,直到停止条件(诸如当已处理所有可用包裹362(即,剩余包裹372的空值/组)和/或当无法改进放置组合364(也称为无改进组合))为止。无改进组合的一些示例可包括当前处理的放置由于一个或多个违规而消除优先级队列376中的放置组合364中的最后一个的情况和/或放置分数跨阈值数目的迭代对于优选组合保持恒定的情况。

当检测到停止条件时,诸如在框656处,机器人系统100可根据放置分数(例如,2d和/或3d相关分数)选择所导出放置组合364中的一个。因此,机器人系统100可指定所选放置组合作为堆叠计划502(一组放置计划350)。

在一些实施方案中,作为说明性示例,机器人系统100可以不同方式实施框610和612的功能。例如,在框610处,机器人系统100可生成底部层的2d计划(例如,放置计划350的实例),如上文所述。在此情况下,机器人系统100可被配置来在考虑放置和/或处理次序时对匹配包裹重量、更重包裹重量和/或包裹的更大可支撑重量施加更重偏好(例如,更大的参数权重)。机器人系统100可导出基础层的第一2d计划,诸如上文针对框610所述。

一旦第一2d层如上文所述地完成/填满,从而形成基础层,机器人系统100就可将放置计划转换成3d状态,如针对框612/652所述。使用3d信息,机器人系统100可标识基础层的一个或多个平面部分/区域(例如,图3b的放置表面352-356),如上所述。使用平面部分,机器人系统100可迭代地/递归地导出基础层上方的下一层的包裹放置。机器人系统100可将平面部分中的每一个作为离散化平台模型304的新实例进行考虑,并且测试/评估不同放置,如上文针对框610所述。在一些实施方案中,机器人系统100可使用放置表面导出2d放置,但跨整个放置货盘340计算分数。因此,机器人系统100可被配置来遵循对后续层的更大放置区域的偏好,而不限于前述放置区域。

一旦针对第二层停止迭代放置过程,机器人系统100就可计算所导出层的平面部分(例如,具有在阈值范围内的高度的顶表面),以生成下一上方层的剩余包裹/分组的2d放置。迭代分层过程可继续进行,直到已满足停止条件为止,如上文所述。

在一些实施方案中,机器人系统100可在框612处单独地生成2d计划(例如,放置计划350中的两个或更多个)。机器人系统100可基于竖直地组合(例如,沿着竖直方向布置/叠置2d放置计划)2d计划来生成堆叠计划502。

在框614处,机器人系统100可基于堆叠计划502来生成打包顺序(例如,图5b的堆叠顺序530)。作为实例,打包顺序可用于标识可用包裹362的放置次序。在一些实施方案中,如框662处所示,机器人系统100可逐层地计算打包顺序。换句话说,机器人系统100可计算每个层的打包顺序,然后根据层的从底部到顶部的次序/位置连接所述顺序。在计算打包顺序时,在一些实施方案中,机器人系统100可调整放置计划,如框672处所示。例如,机器人系统100可通过以下方式来调整放置计划:通过将包裹(例如,具有增加后续操纵/搬运的碰撞可能性的高度的包裹)中的一个或多个从较低层放置计划重新指派到较高层放置计划。还可将由重新指派的包裹支撑的任何包裹重新指派到更高的层。换句话说,重新指派的包裹可保持处于同一水平放置并且与更高层相关联,使得稍后可如图5b所示地放置包裹。在框674处,机器人系统100可基于诸如通过对在被指派在更低层中之后被指派在更高层中的物体进行打包/操纵所调整的放置计划来计算打包顺序(例如,堆叠顺序530)。

在其他实施方案中,如框664处所示,机器人系统100可计算打包顺序,而不管/独立于层指派。换句话说,机器人系统100可计算打包顺序,使得可在指派到更高层的包裹之后放置指派到更低层的包裹。

在计算打包顺序时,在层内或跨层两者,机器人系统100可根据一个或多个包裹尺寸(例如,高度)、相对放置位置或它们的组合来分析堆叠计划502中的包裹的位置。例如,机器人系统100可将更远离单元/参考位置(例如,码垛机器人的位置)的盒的放置定序在更靠近指派的包裹之前。另外,机器人系统100可在更高/更重包裹的指派位置是沿着放置计划的周边且远离单元位置时将它们更早地放置。

在框616处,机器人系统100可实施用于将可用包裹362放置在平台上的堆叠计划502。机器人系统100可基于根据堆叠计划502将一个或多个运动计划、致动器命令/设定或它们的组合传达给对应装置/单元(例如,图1的搬运单元104、图2的致动装置212、图2的传感器216等)来实施堆叠计划502。机器人系统100可基于在装置/单元处执行所传达信息以将可用包裹362从源位置搬运到目的地平台来进一步实施堆叠计划502。因此,机器人系统100可根据3d映射来放置可用包裹362,其中将可用包裹362中的一个或多个放置/堆叠在其他包裹的顶部上,诸如逐层地放置可用包裹362。此外,机器人系统100可根据打包顺序操纵/搬运包裹。这样,机器人系统100可逐层地或者在不具有如上文所述的那类限制的情况下放置包裹。

上文所述的任务和2d/3d分层的离散化提供打包物体的改进的效率、速度和准确性。因此,操作员输入的减少和准确性的增加可进一步减少自动化打包过程的人力劳动。在一些环境中,如上文所述的机器人系统100可消除对可花费大约或高于100万美元的定序缓冲器的需要。

处理包裹

通过使用暂时存储区域来存储可用包裹362、实时地标识可用包裹362、并且实时地(例如,在包裹到达起始位置114时)生成可用包裹362的模拟堆叠计划,机器人系统100可消除将可用包裹362进行以下各项的需要:(a)在提供给机器人系统100之前通过标识属性(例如使用条码)进行标记;以及(b)按堆叠顺序进行接收,这也消除了对单独定序机的需要。因此,通过使资源消耗最小化并且改进打包机制,所公开的实施方案产生改进的机器人系统。

图7是机器人系统100可在其中操作以使用模拟堆叠计划来处理包裹以便放置在平台上的示例性环境,这将在下文详细论述。机器人系统100可用于处理包裹以便放置在特定目的地(例如,仓库或载具)处。图7的示例中的机器人系统100被示出为码垛来自载具的包裹并将经码垛包裹放置在仓库中。然而,机器人系统100还可被实施用于将包裹从仓库放置到载具(例如,卡车)中。

在一些实现方式中,机器人系统100的搬运单元104可从卸载单元102接收一组包裹以便放置在任务位置116(也称为货盘或平台)处。作为示例,所述一组包裹可包括可由机器人系统100接收以便放置在任务位置116处的可用包裹362的所有可能实例。在一些实施方案中,机器人系统100可具有所述一组包裹的先验知识,诸如将到达起始位置114处的可用包裹362的总数目。在其他实施方案中,机器人系统100可不具有所述一组包裹的先验知识并且可在不具有将到达起始位置114处的可用包裹362的总数目的情况下进行操作。

机器人系统100可使搬运单元104使用存储区域705(其为不同于任务位置116的区域)来暂时地存储可用包裹362中的一个或多个,直到可根据模拟堆叠计划将可用包裹362放置在任务位置116上为止。存储区域705可以许多配置中的适于搬运单元104将包裹放入其中和/或从其取出包裹的一个来设计。例如,存储区域705可被配置来包括具有架子或放置位置的一个或多个存储架710,所述架子或放置位置可以圆形剧场座椅格式或楼梯格式布置。在另一示例中,存储架710可被布置为多个行和列。

图7示出作为通过运输机制(诸如输送带110)按顺序逐个地到达起始位置114以便由机器人系统100处理的所述一组包裹的一部分的可用包裹362(例如,包裹“b”至“e”)的示例。位于起始位置114处的可用包裹362的实例可称为目标物体112。输送带110可被配置来提供基本功能,诸如开关控制和速度控制。在一些实施方案中,输送带110并不提供内置或集成智能能力,并且通常需要外部系统或操作员对操作功能的控制和/或激活/去激活。

机器人系统100可包括用于扫描可用包裹362的一个或多个三维(3d)传感器715。例如,输送带110可配备有3d传感器715中的一个或多个,以生成可由机器人系统100使用来计算与可用包裹362中的每一个相关联的一个或多个包裹属性的传感器信息(诸如3d点云信息)。基于来自3d传感器715的传感器信息计算的包裹属性的一些示例可包括包裹尺寸(即,包裹高度、包裹宽度和包裹长度)和/或包裹取向细节。下文将论述关于包裹属性的另外的细节。可预先配置3d传感器715的放置。在一些实施方案中,3d传感器715可安装在起始位置114附近。例如,3d传感器715可定位在起始位置114上方并且面朝输送带110的顶表面,以生成可用包裹362、并且更具体地目标物体112的自顶向下的视图。在可用包裹362逐个地经过3d传感器715时,3d传感器715可扫描可用包裹362以生成传感器信息。

搬运单元104可接收已由3d传感器715扫描的可用包裹362作为目标物体112并且可将目标物体112存储在存储区域705中的存储位置处。存储位置是存储区域705内用于放置和存储物体(诸如可用包裹362)的物理位置,诸如存储架710的具体实例和/或存储架710的架子上的位置。存储区域705中的可用包裹362的示例由定位在存储架710上的标记为“s”和“t”的可用包裹362示出。

在将可用包裹362放置在存储区域705中之后,机器人系统100可将可用包裹362的存储位置信息记录在例如图2的跟踪数据254中。存储位置信息可以是关于可用包裹362在存储区域705中的存储位置的信息。在一些实施方案中,机器人系统100可生成可以是存储区域705的代表的数据结构,称为“存储映射图”。存储映射图可包括存储条目,所述存储条目可以是数据结构的对应于存储区域705中的可用物体362中的每一个的数据条目。存储映射图中的存储条目可存储包裹标识(id)、存储位置信息和/或暂时地存储在存储区域705中的可用包裹362中的每一个的包裹属性(例如,物理尺寸)。包裹id可由机器人系统100生成(即,作为对应于接收可用包裹362的次序的指派值),或根据包裹(例如,根据可在包裹在输送带110上被运输时使用条形码扫描器(未示出)自动地读取的与包裹相关联的条形码)来确定。

在一些实施方案中,机器人系统可维持存储区域705的存储容量计数器。在一个实现方式中,存储容量计数器可以是代表存储区域705中的当前由可用包裹362占用的存储空间量或存储位置数目的值。在另一实现方式中,存储容量计数器可以是代表存储区域705中的当前可用于存储或未占用的存储空间量或存储位置数目的值。作为示例,机器人系统100可通过在可用包裹362的实例被添加到存储区域705或从存储区域705移除时增大或减小存储容量计数器的值来维持存储容量计数器。

在一些实施方案中,机器人系统100可生成存储在存储区域715中的可用包裹362的包裹分组。例如,机器人系统100可基于存储在存储区域715中的可用包裹362中的每一个的包裹属性(诸如包裹高度和/或包裹重量)来生成包裹分组。下文将详细论述包裹分组的生成。

机器人系统100可执行模拟功能以生成可用包裹362、并且更具体地当前存储在存储区域705中的可用包裹362的模拟堆叠计划。一般来说,机器人系统100的目的是生成模拟堆叠计划,以使用可用包裹362将可用包裹362的至少一部分放置在存储区域705中作为均匀打包层,使得均匀包裹层的顶表面具有相同高度。在一个示例中,均匀打包层可被生成为可用包裹362的单个层,使得均匀打包层中的可用包裹362中的每一个的包裹高度是相同的(即,具有相同或相似的包裹高度值)。作为具体示例,模拟功能可基于根据包裹高度分类的包裹分组来生成模拟堆叠计划。

在另一示例中,均匀打包层可被生成为组合层。在一个实施方案中,生成为组合层的均匀打包层可实现为可用包裹362的单个实例和可用包裹362中的一个或多个的包裹堆叠的组合,其中包裹的单个实例的包裹高度与包裹堆叠中的一个或多个包裹的包裹高度的和相同(即,使得组合层的顶表面具有相同高度)。作为说明,组合层可包括可用包裹362的单个实例(即,具有包裹高度“x”)和可用包裹的多个实例的包裹堆叠(即,具有组合堆叠高度的可用包裹362中的两个或更多个,所述堆叠高度是包裹堆叠中的可用包裹362中的每一个的包裹高度的和,总计“x”),使得组合层的顶表面具有相同高度(即,“x”)。在另一实施方案中,生成为组合层的均匀打包层可利用包裹堆叠的多个实例来实现,只要包裹堆叠中的每一个中的可用包裹362的包裹高度的和相同即可。下文将论述关于生成将均匀打包层实现为组合层的模拟堆叠计划的另外的细节。通过将模拟堆叠计划生成为包括均匀打包层,机器人系统100可提供用于堆叠可用包裹362的附加层的稳定基础。

用于实现均匀打包层的模拟堆叠计划的生成可包括满足堆叠表面积要求。堆叠表面积要求可以是对形成均匀包裹层的可用包裹362之间的间距和/或间隙的要求和/或对形成均匀包裹层的可用包裹362的顶表面的组合水平面积的要求。可用包裹362的顶表面的组合水平面积指代形成均匀打包层的顶表面的可用包裹362中的每一个的顶表面的表面积的和。堆叠表面积要求可包括组合面积要求和/或堆叠间距要求。

在一些实施方案中,组合面积要求的堆叠表面积要求可包括:均匀打包层的顶表面的组合水平面积大于表面积阈值。作为示例,表面积阈值可基于任务位置116的水平放置表面的百分比。作为另一示例,表面积阈值可诸如由系统用户预定。

在另一实施方案中,包裹间距要求的堆叠表面积要求可包括:要求形成均匀打包层的顶表面的可用包裹362之间的任何间隙区域和/或空的空间小于间距阈值。作为示例,间距阈值可由机器人系统100动态地设定成具有小于基于存储区域705中的可用包裹362中的任一个的包裹尺寸计算的面积的面积。这样,间隙区域和/或空的空间将不会足够大到允许任何可用包裹362落入形成均匀打包层的顶表面的可用包裹362之间。作为另一示例,间距阈值可诸如由系统用户预定。

生成实现满足堆叠表面积要求(即,组合面积要求和包裹间距要求两者)的均匀打包层的模拟堆叠计划提供使可用包裹362的另外的实例的放置最大化的稳定表面的优点。例如,然后,机器人系统100可使用均匀包裹层的顶表面作为具有最大化放置面积的离散化平台模型304的新实例,以迭代地/递归地导出下一层在均匀包裹层上方的包裹放置。

应理解,在一些情况下,当前位于存储区域705中的可用包裹362无法由模拟功能布置来生成实现均匀打包层的模拟堆叠计划。在这些情况下,机器人系统100可将模拟堆叠计划生成为剩余包裹计划。在一些实施方案中,剩余包裹计划可以是用于将当前位于存储区域705中的可用包裹362的所有剩余实例放置到任务位置116上的计划。剩余包裹计划可由模拟功能生成,以满足用于将可用包裹362放置在任务位置116上的一个或多个码垛标准。

码垛标准可以是关于任务位置116上的可用包裹362的打包密度和/或数目的要求。作为示例,码垛标准可包括用于将可用包裹361放置在任务位置116上的要求,诸如体积打包效率、货盘上的预期包裹数目、任务位置116上的可用包裹362的堆叠的最大可堆叠高度,或它们的组合。体积打包效率可以是某种关系,诸如可用包裹362的总体积与任务位置116的打包体积容量之间的比,所述打包体积容量可以是可由任务位置116承载的物体或包裹的总体积的值。作为示例,体积打包效率可以是将被放置在任务位置116上(即,诸如根据模拟堆叠计划)的所有可用包裹362的包裹体积的和与任务位置116的打包体积容量之间的比。预期包裹数目可以是预期将被放置在任务位置116上的可用包裹362的最小数目。最大堆叠高度可以是任务位置116上的所堆叠包裹的总高度(例如,当可用包裹362堆叠在彼此顶部上时可用包裹362中的每一个的包裹高度的和)的限值。

在一些实施方案中,机器人系统100可实时地(例如,诸如在可用包裹362的新实例到达起始位置或被添加到存储区域705之后)执行模拟功能。例如,机器人系统100可在可用包裹362中的第一包裹由3d传感器715扫描时执行模拟功能,并且继续在接收到可用包裹362的后续实例的时候更新模拟堆叠计划。作为具体示例,当可用包裹362中的第一包裹“s”存储在存储区域705中时,机器人系统100可基于第一包裹“s”生成模拟堆叠计划,并且当可用包裹362中的第二包裹“t”存储在存储区域705中时,机器人系统100可基于第一包裹“s”和第二包裹“t”更新模拟堆叠计划。

在一些实施方案中,更新模拟堆叠计划可包括以下中的一者或多者:更新放置信息(诸如可用包裹362的顺序标识(id))、更新可用包裹362在目标位置114上的放置位置和/或更新可用包裹364的放置取向。顺序id可表示将可用包裹362放置在任务位置116上的次序。在一些实施方案中,可用包裹362的放置信息可存储在存储映射图的存储条目中。下文将论述关于执行模拟功能以生成模拟打包计划的其他细节。

在包裹处理操作期间,机器人系统100可确定码垛触发项的发生。码垛触发项可以是可触发由机器人系统100根据模拟堆叠计划将可用包裹362中的一个或多个从存储区域705放置到任务位置116上的事件。在一些实施方案中,码垛触发项可基于机器人系统100的一个或多个单元的时限触发项、堆叠计划触发项、存储容量触发项或接收到放置启动命令。当模拟功能生成或更新实现满足堆叠表面积要求的均匀打包层的模拟堆叠计划时,堆叠计划触发项可发生。

时限触发项可基于机器人系统100的单元操作时间。在一些实现方式中,时限触发项可基于将被放置在任务位置116上的可用包裹362的装运计划表(即,满负荷货盘必须装运的时间)。在另一实现方式中,时限触发项可基于机器人系统100未花费在将可用包裹362放置在任务位置116上的时间量。作为示例,时限触发项可在单元操作时间超过操作阈值时发生。在一些实现方式中,单元操作时间可以是搬运单元104尚未将任何可用包裹362放置在任务位置116上的持续时间。在其他实现方式中,单元操作时间可以是搬运单元104已花费在任务位置116的当前实例的码垛操作上的总时间量。操作时间阈值可以是可由机器人系统100或系统用户基于闲置时间要求和/或装运计划表确定的预限定时间段。

存储容量触发项可基于存储容量计数器。例如,存储容量触发项可在存储容量计数器超过存储容量阈值时发生。存储容量阈值可表示存储区域705正接近最大存储容量。例如,存储容量阈值可以是代表存储区域705中的存储位置的百分比或数目的预限定值。

放置启动命令可以是用于开始将存储区域705中的可用包裹362放置到任务位置116上的指令或命令。放置启动命令可以是从机器人系统100接收的指令或从系统用户接收的指令。例如,从系统用户接收的放置启动命令可在系统用户按下与机器人系统100相关联的按钮时发生,以表示不再需要处理任何包裹。

在一些实施方案中,当机器人系统100确定时限触发项、存储容量触发项或接收到放置启动命令的发生时,机器人系统100可能必须将模拟堆叠计划生成为用于根据码垛标准将存储区域705中剩余的可用包裹362放置在任务位置116上的剩余包裹计划。下文将论述关于确定码垛触发项的发生的另外的细节。

在一些实施方案中,在确定模拟堆叠计划之前,机器人系统100(例如,通过用户输入)已知所述一组包裹中的可用包裹362的量。如果机器人系统100知道将被放置到任务位置116上的可用包裹362的数目,则机器人系统100可将所述一组包裹中的可用包裹362的总数目考虑在内来生成模拟堆叠计划。然而,在一些实施方案中,机器人系统100不知道可用包裹362的量。用于生成模拟堆叠计划的策略在这两种情况下可有所不同,这可取决于诸如码垛标准的因素。例如,如果机器人系统100知道将码垛36个可用包裹362,并且如果将货盘上的预期包裹数目设定为25,但将优先级设定为使体积打包效率最大化,然后假设可用包裹362中的每一个具有相同或类似包裹尺寸,则机器人系统100可生成两个货盘各自有18个包裹的模拟堆叠计划的两个实例(例如,使得在两个货盘中同样地利用体积效率),并且一旦模拟堆叠计划标识出要放置的可用包裹362中的前18个合适的包裹,就立即开始码垛。相比之下,如果机器人系统100提前未知可用包裹362的数目,则机器人系统100可将可用包裹362存储在存储区域705中,直到诸如时限触发项、均匀层触发项或存储容量触发项的码垛触发项已发生为止,以按模拟堆叠计划开始码垛以便放置作为货盘上的预期数目的包裹的25个包裹,在这种情况下,一个货盘可具有25个包裹而另一个可具有11个包裹。

图8是示出根据多种实施方案的将可用包裹362放置在任务位置116上时多种阶段的示例800的框图。在一些实施方案中,示例800可在图7的环境中实施。如上文所述,在可用包裹362前往起始位置114的途中经过3d传感器715之后,机器人系统100可确定可用包裹362的包裹属性,将可用包裹362暂时地存储在存储区域705中,执行模拟功能以基于包裹属性生成或更新模拟堆叠计划,确定码垛触发项的发生,并且继续将暂时地存储在存储区域705中的可用包裹362码垛到任务位置116上。例如,当可用包裹362中的第一包裹“p1”经过扫描器715时,机器人系统100可使用从3d传感器715接收的传感器信息来确定与第一包裹相关联的包裹属性(例如,包裹“p1”的物理尺寸),并且将第一包裹存储在存储区域705的存储架710上,如第一放置805所示。

在将包裹“p1”放置在存储区域705的存储架710上之后,机器人系统100将包裹“p1”的存储位置信息记录在存储映射图中。存储位置信息可包括包裹“p1”在存储区域705中的存储位置。机器人系统100可使用可用包裹362的存储位置信息来生成使搬运单元104从存储区域705取出可用包裹362(诸如当从存储区域705移动可用包裹362以便放置在任务位置116上时)的指令。机器人系统100还可将包裹id(如果存在的话)和包裹属性(诸如物理尺寸(例如,包裹高度、包裹长度和包裹宽度))和/或包裹重量存储在存储映射图中。存储映射图可以是跟踪数据254的一部分。机器人系统100还可执行模拟功能以确定用于将包裹“p1”放置在任务位置116(例如,货盘)上的模拟堆叠计划,如第一放置805所示。作为示例,可在处理第一包裹“p1”之后生成的模拟堆叠计划表示包裹“p1”在任务位置116上将被放置在任务位置116的指定角落中,其中包裹“p1”的最大表面与任务位置116接触。机器人系统100可确定诸如时限触发项、均匀层触发项、存储容量触发项或接收到放置启动命令的码垛触发项的发生。在第一放置805中,码垛触发项尚未发生,因此机器人系统100继续接收下一包裹“p2”。

机器人系统100可以包裹“p2”继续处理可用包裹362。例如,在包裹“p2”到达起始位置114时,机器人系统100确定与包裹“p2”相关联的包裹属性,并且将包裹存储在存储区域705中,如第二放置806所示。机器人系统100将包裹“p2”的存储位置信息和包裹属性记录在存储映射图中。模拟功能将模拟堆叠计划更新成连同包裹“p1”包括要放置在任务位置116上的包裹“p2”,如第二放置806所示。机器人系统100确定码垛触发项是否已发生。在第二放置806中,码垛触发项尚未发生,因此机器人系统100继续接收下一包裹“p3”。

机器人系统100可以包裹“p3”继续处理可用包裹362。例如,在包裹“p3”到达起始位置114时,机器人系统100确定与包裹“p3”相关联的包裹属性,并且将包裹“p3”存储在存储区域705中,如第三放置807所示。机器人系统100将包裹“p3”的存储位置信息和包裹属性记录在存储映射图中。模拟功能将模拟堆叠计划更新成连同包裹“p1”和“p2”包括要放置在任务位置116上的包裹“p3”。在一些实施方案中,模拟功能确定包裹尚不适于放置在任务位置116上(例如,因为形状和大小尚不适于包裹与目前所处理的其他包裹的高效放置),因此并不将包裹包括在堆叠计划中,如第三放置807所示。机器人系统100确定码垛触发项是否已发生。在第三放置807中,码垛触发项尚未发生,因此机器人系统100继续接收下一包裹“p4”。

机器人系统100可以包裹“p4”继续处理可用包裹362。例如,在包裹“p4”到达起始位置114时,机器人系统100确定与包裹“p4”相关联的包裹属性,并且将包裹存储在存储区域705中,如第四放置808所示。机器人系统100将包裹“p4”的存储位置信息和包裹属性记录在存储映射图中。模拟功能将模拟堆叠计划更新成连同包裹“p1”-“p3”包括要放置在任务位置116上的包裹“p4”,如第四放置808所示。第四放置808示出当模拟“p4”的放置时将模拟堆叠计划更新为重新布置包裹“p1”和“p2”的位置和取向。更具体地,由于包裹“p2”和“p4”具有相同的包裹高度值“h1”,它们可彼此相邻地放置以实现均匀打包表面,而“p1”在任务位置116上的不同位置处重新定向并重新定位。应注意,包裹“p3”仍未包括在堆叠计划中。机器人系统100确定码垛触发项是否已发生。在第四放置808中,码垛触发项尚未发生,因此机器人系统100继续接收下一包裹“p5”。

机器人系统100可以包裹“p5”继续处理可用包裹362。例如,在包裹“p5”到达起始位置114时,机器人系统确定与包裹“p5”相关联的包裹属性,并且将包裹“p5”存储在存储区域705中,如第五放置809所示。机器人系统100将包裹“p5”的存储位置信息和包裹属性记录在存储映射图中。模拟功能将模拟堆叠计划更新成连同包裹“p1”-“p4”包括要放置在任务位置116上的包裹“p5”,如第五放置809所示。应注意,包裹“p3”仍未包括在堆叠计划中。机器人系统100确定堆叠计划是否满足一个或多个码垛标准。在一些实施方案中,机器人系统100确定在第五放置809中,随着满足体积打包效率的码垛标准,预期数目的包裹(例如,5个包裹)的码垛触发项已发生。因此,机器人系统100继续将包裹“p1”、“p2”、“p4”和“p5”放置在任务位置116上,如码垛操作810所示。

在一些实施方案中,机器人系统100可具有不同值的预期数目的包裹(例如,多于5个可用包裹362),并且确定在第五放置809中,码垛触发项尚未发生。因此,机器人系统100继续接收下一包裹“p6”。例如,在包裹“p6”到达起始位置114时,机器人系统100确定与包裹“p6”相关联的包裹属性,并且将包裹“p6”存储在存储区域705中,如第六放置811所示。机器人系统100将包裹“p6”的存储位置信息和包裹属性记录在存储映射图中。模拟功能将模拟堆叠计划更新成连同包裹“p1”-“p5”包括要放置在任务位置116上的包裹“p6”,如第六放置811所示。应注意,包裹“p3”仍未包括在堆叠计划中。机器人系统100确定码垛触发项是否已发生。在一些实施方案中,机器人系统100确定均匀层触发项的码垛触发项已发生,因为模拟堆叠计划已将均匀打包层实现为组合层。更具体地,第六放置811的模拟堆叠计划实现均匀打包层,因为“p4”和“p5”的包裹堆叠和“p2”和“p6”的包裹堆叠各自具有总计为“h1”的包裹高度的和(即,“h2”和“h3”的和),所述和与包裹“p1”的包裹高度“h1”相匹配,从而提供组合层(即,形成均匀打包层的包裹的顶表面处于相同高度)。因此,机器人系统100继续将包裹“p1”、“p2”和“p4”-“p6”放置在任务位置116上,如码垛操作812所示。机器人系统100可使用存储映射图来确定包裹“p1”、“p2”和“p4”-“p6”在存储区域705中的存储位置,并且分别(即,基于包裹中的每一个的顺序id)将它们从存储区域705取出以便放置在任务位置116上。包裹“p3”仍保持在存储区域705中并且可被视为与后续处理的包裹(例如,包裹“p7”等等)一起放置在任务位置116上。

在一些实施方案中,机器人系统100可操纵输送带110(诸如停止或开始),或者改变(减小或增大)输送带110的速度。例如,当机器人系统100确定将码垛存储在存储区域705中的可用包裹362的一部分时,机器人系统100可能必须停止或减小输送带110的速度,使得可用包裹362的下一实例的处理延迟,直到将被码垛的可用包裹362放置在任务位置116上为止。机器人系统100可在码垛操作完成之后开始或增大输送带110的速度以递送下一可用包裹。

图9是根据多种实施方案的用于使用暂时存储区域将可用包裹放置在任务位置上的过程900的流程图。在一些实施方案中,过程900可在图1和图7的环境中实施。此外,在一些实施方案中,至少参考图8描述的包裹放置是过程900的说明性示例。过程900可基于利用图2的处理器202中的一个或多个执行存储在图2的存储装置204中的一个或多个上的指令来实施。

机器人系统100可在框901处启动用于放置图3的可用包裹362的过程。如框901所示,机器人系统100可确定关于图7的任务位置116(例如,用于接收/放置可用包裹362的货盘、平台、仓和/或容器)的目的地信息。例如,任务位置116的目的地信息可包括物理尺寸、打包体积容量、最大打包高度或它们的组合。在一个实施方案中,机器人系统100可将目的地信息确定成包括任务位置116的可用包裹362可放置的放置表面(例如,货盘(诸如图3的放置货盘340)的顶部装载表面)的大小或尺寸。

在另一实施方案中,机器人系统100可将目的地信息确定成包括任务位置116的打包体积容量。例如,打包体积容量可以是由计算系统100接收、存储在主数据252内或由计算系统100实时地计算(诸如通过放置表面的水平尺寸(即,x和y尺寸)乘以任务位置116的打包高度(即,z尺寸))的预定值。作为示例,任务位置116的打包高度尺寸可以是对应于任务位置116的配置(诸如仓壁的高度或与货盘上的物体的稳定堆叠相关的最大高度)的值。在另一示例中,任务位置116的打包高度尺寸可对应于任务位置116的最大堆叠高度。

在另一实施方案中,机器人系统100可将目的地信息确定成包括图3b的对应于任务位置116的离散化平台模型304。例如,机器人系统100可基于根据图3b的单位像素310划分任务位置116(例如,货盘顶表面)的物理尺寸来(例如,离线地或实时地)生成离散化平台模型304。单位像素310可以是预定值或尺寸(由例如制造商、下单客户和/或操作员),诸如1毫米(mm)或1/16英寸(in)或更大(例如,5mm或20mm)。在一些实施方案中,单位像素310可基于平台的尺寸或大小(例如,百分比或分数)。

在框902处,机器人系统100可生成和/或实施用于在图7的起始位置114处接收一组包裹(包括可用包裹362中的一个或多个)的计划。例如,用于接收所述一组包裹的计划可包括:用于在起始位置112处逐个地接收可用包裹362的指令,所述包裹可由图7的输送带110运输到起始位置114。用于接收所述一组包裹的计划可包括将当前处于起始位置114的可用包裹362的实例标识为图7的目标物体112。

在框903处,机器人系统100可生成和/或实施用于处理一系列可用包裹362中的每一个的计划。例如,用于处理可用包裹362的计划可包括:确定可用包裹362(并且更具体地,目标物体114)的包裹属性,并且将可用包裹362存储在图7的存储区域705中。在一个实现方式中,用于处理可用包裹362的计划可包括:用于确定包裹属性的框920、用于确定可用包裹362的包裹标识(id)的框922、用于将可用包裹362存储在存储区域705中的框924、用于记录可用包裹362的信息的框926、用于更新存储容量计数器的框928或它们的组合。

如框920所示,机器人系统100可确定目标物体112的包裹属性。包裹属性可包括表征以下或与以下相关的一个或多个特性:形状、大小、包裹尺寸(即,高度、宽度、长度、周长、直径)、重量、目标物体114的其他物理特性、目标物体112在起始位置114处的位置和/或定位、目标物体112与可用包裹362中的相邻实例之间的间隔,或它们的组合。

在一些实施方案中,机器人系统100可基于从图2的传感器216(例如,图1的3d传感器715)接收的传感器信息(即,3d点云信息)来将目标物体112的包裹属性确定成包括包裹尺寸。作为一个示例,机器人系统100可分析传感器信息,以基于对应于目标物体114的3d点云中的所检测边缘的测量值来确定包裹长度和/或包裹宽度(即,对应于目标物体112的关于目标物体114的自顶向下角度的顶表面的长度和宽度)的包裹属性。类似地,机器人系统100可分析传感器信息,以确定具有圆柱形状的目标物体112的包裹周长或包裹直径的包裹属性。在另一示例中,机器人系统100可分析传感器信息以基于对应于目标物体112的最靠近/面向3d传感器705的表面(即,目标物体112的顶表面)与输送带110的最靠近/面向3d传感器705的表面(即,输送带110的顶表面)的3d点云值之间的差来计算包裹高度的包裹属性。

在一些实施方案中,机器人系统100可将包裹属性确定成包括图3a的离散化物体模型302。例如,机器人系统100可基于包裹尺寸生成和/或访问对应于目标物体112的离散化物体模型302。在一些实施方案中,机器人系统100可基于划分目标物体112的物理尺寸来(例如,离线地或实时地,诸如在接收到可用包裹362之后和/或在开始打包操作之前)生成离散化物体模型302。单位像素310可以是预定值尺寸(由例如制造商、订购客户和/或操作员),诸如1mm或1/16in或更大(例如,5mm或20mm)在一些实施方案中,单位像素310可基于可用包裹362中的一个或多个的尺寸或大小(例如,百分比或分数)。在一些实施方案中,机器人系统100可访问存储在存储装置204和/或另一装置(例如,通过图2的通信装置206访问的存储装置、数据库和/或包裹供应者的服务器)中的离散化物体模型304。

如框922所示,机器人系统100可确定目标物体112的包裹id。例如,可由机器人系统100生成包裹id,诸如根据在起始位置114处接收到可用包裹362的次序的指派值。作为另一示例,包裹id可根据包裹(例如,根据可使用条形码扫描器(未示出)自动地读取的与包裹相关联的条形码)来确定。

如框924所示,机器人系统100可生成和/或实施用于将可用包裹362(即,目标物体112)存储在存储区域705中的计划。例如,机器人系统100可将用于存储目标物体112的计划生成为包括使搬运单元104将存储位置处的目标物体112抓取、运输并放置在未由可用包裹362的另一实例占用的存储区域705中。

在一些实施方案中,用于将可用包裹362存储在存储区域705中的计划可包括使搬运单元104以多种布置将可用包裹362放置在存储区域705中的指令。例如,指令可包括使搬运单元104将包裹侧向地(即,一个挨着一个)放置在存储架710中的一个上,之后将包裹移动到存储架710中另一个上。在另一示例中,用于搬运单元104的指令可以是将包裹随机地放置在存储区域705中。在又一示例中,指令可生成为用于将可用包裹362放置在存储区域705中的放置计划,诸如至少参考图3a至图3c所述的放置计划。放置计划可考虑存储架710的数目、存储架710的尺寸、存储架710的重量承载容量或用于将可用包裹362放置在存储区域705中的其他因素。无论如何,可将可用包裹362放置在存储区域705中,使得搬运单元104可充分利用存储库705中的可用存储空间以用于存储和/或取出可用包裹362中的一个或多个。

在一些实施方案中,机器人系统100可将包裹属性确定成包括目标物体112在目标物体112的运输期间的包裹重量。例如,机器人系统100可基于目标物体112的初始提升期间从搬运单元104的图2的传感器216(例如,扭矩或力传感器)接收的传感器信息来计算包裹重量。

如框926所示,机器人系统100可记录关于被搬运到存储区域705的可用包裹362的信息。例如,机器人系统100可将可用包裹362的存储位置信息记录在存储映射图中。存储位置信息可以是对应于可用包裹362在存储区域705中的存储位置的信息,其可使用2d和/或3d传感器来确定。机器人系统100可存储可用包裹362中的每一个的包裹属性、包裹id或它们的组合。例如,机器人系统100可将对应于目标物体112的作为代表目标物体112的存储条目的包裹属性和包裹id存储在主数据252中。

在框928处,机器人系统100可更新存储区域705的存储容量计数器。作为示例,机器人系统100可通过增加对应于添加到存储区域705的可用包裹362的数目的值来更新存储容量计数器。

在框904处,机器人系统100可确定当前存储在存储区域705中的可用包裹362的包裹分组(例如,可用包裹的子组)。例如,机器人系统100可根据当前位于存储区域705中的可用包裹362的包裹属性的相似性来确定包裹分组。特别地,机器人系统100可根据包裹高度来确定包装分组。换句话说,包裹分组中的一个中的可用包裹362中的每一个将与所述包裹分组内的可用包裹362的其他实例具有相同(或类似)的包裹高度值。机器人系统100可在可用包裹362被移进和移出存储区域705时更新包裹分组中的一个或多个。例如,在目标物体112的处理期间(即,在将目标物体112移动到存储区域705之前、期间或之后),机器人系统110可将目标物体112的包裹高度与包裹分组的包裹高度进行比较。如果机器人系统100确定目标物体112的包裹高度与包裹分组的包裹高度之间的匹配,则机器人系统100可将目标物体112添加到包裹分组中的特定者。否则,机器人系统100可创建包裹分组中对应于目标物体112的包裹高度的新实例,所述新实例随后以具有相同值的包裹高度的可用包裹362的另外的实例添加。

在框906处,机器人系统100可执行模拟功能以生成或更新当前存储在存储区域705中的可用包裹362的模拟堆叠计划。模拟堆叠计划包括关于可用包裹362在任务位置116上的布置的细节。模拟堆叠计划还可包括关于其中可用包裹362将被放置在任务位置116(诸如货盘或平台)上的堆叠顺序id的信息。

机器人系统100可在以下情况下迭代地生成或更新模拟堆叠计划:当可用包裹362到达起始位置114时;在将可用包裹362中的一个添加到存储区域705、分类到包裹群组中的一个中之后;或它们的组合。在一个实施方案中,机器人系统100可基于包裹高度针对包裹分组中的每一个独立地执行模拟功能,以生成实现均匀包裹层的模拟堆叠计划。例如,在将均匀打包层生成为可用包裹的单个层的情况下,机器人系统100可将模拟堆叠计划生成为用于沿着基于离散化模型的水平平面放置可用包裹362的2d计划(例如,图3b的放置计划350)。例如,机器人系统100可基于将对应于属于包裹分组中的一个的可用包裹362的离散化物体模型302与离散化平台模型304进行比较来生成放置计划350。机器人系统100可确定离散化物体模型302的不同放置/布置,将它们与离散化平台模型304进行重叠/比较,并且验证/保持在重叠时在离散化平台模型304的边界内的布置。

在另一实施方案中,在生成将均匀打包层实现为组合层的模拟堆叠计划的情况下,机器人系统100可独立于包裹分组执行模拟功能。例如,当不存在对可用包裹362的取向限制(即,可用包裹362必须放置成具体表面面朝/背对或向上面向/向下面向任务位置116的放置表面)时,机器人系统100可执行以不同取向(即,在三维上旋转包裹)考虑当前位于存储区域705中的可用包裹362中的每一个的包裹尺寸(即,包裹长度、包裹宽度、包裹高度)的模拟功能。为深化示例,机器人系统100可执行考虑可用包裹362的一个或多个包裹堆叠的包裹高度的和的模拟功能,这可将所述和与可用包裹362的其他实例的包裹尺寸进行比较,以确定是否可实现组合层(例如,如图8的放置811所示)。更具体地,模拟功能可生成以不同取向放置在任务位置116上的可用包裹362的单个实例与可用包裹362中的一个或多个的包裹堆叠组合的模拟堆叠计划,其中包裹的单个实例的包裹高度与包裹堆叠中的一个或多个包裹的包裹高度的和相同。类似地,组合层可利用包裹堆叠的多个实例来实现,只要包裹堆叠中的可用包裹362的包裹高度的和相同即可。应注意,包裹高度被确定为垂直于任务位置116的放置区域的平面的包裹尺寸,所述尺寸可不考虑基于传感器信息(即,框920处)确定的包裹高度。

因此,为确定模拟堆叠计划是否已实现均匀打包层,机器人系统100可特别是在将可用包裹362的新实例添加到存储区域705之后(例如,诸如根据离散化物体模型302)迭代地导出可用包裹362中的每一个的放置位置,直到满足堆叠表面积要求(包括组合面积要求和/或包裹间距要求)为止。作为示例,对于组合面积要求,机器人系统100可将组合水平面积计算为在将可用包裹362中的一个添加到模拟堆叠计划之后用于形成均匀打包层(其当前可处于不完整状态)的顶表面的可用包裹362中的每一个的顶表面面积的和。当用于形成均匀打包层的顶表面的可用包裹362中的每一个的顶表面面积的和超出表面积阈值时,机器人系统100可确定均匀打包层已满足组合面积要求。

作为另一示例,对于包裹间距要求,在按模拟堆叠计划进行可用包裹362的每个迭代导出的放置之后,机器人系统100可标识可用包裹362之间的间隙区域和/或开放空间中的每一个并将其与间距阈值进行比较。当间隙区域和/或开放空间中的每一个小于间距阈值时,机器人系统100可确定均匀打包层已满足包裹间距要求。

在框907处,机器人系统100可确定包括均匀层触发项、时限触发项、存储容量触发项或接收到放置启动命令的码垛触发项的发生。例如,在已将可用包裹362中的每一个存储在存储区域705中和/或已更新模拟堆叠计划之后,机器人系统100可检查码垛触发项的发生。在一个实施方案中,当机器人系统接收到放置启动命令(其可形成机器人系统100外部的源(诸如系统用户))时,机器人系统100可确定码垛触发项已发生。

在另一实施方案中,机器人系统100可基于对模拟堆叠计划的评估来确定均匀层触发项的发生。例如,机器人系统100可(例如,针对包裹分组中的一个或多个)评估模拟堆叠计划并且当模拟堆叠计划已实现满足堆叠表面积要求的均匀包裹层时确定均匀层触发项已发生。

在另一实施方案中,机器人系统100可基于单元操作时间来确定时限触发项的发生。例如,机器人系统100可监测单元操作时间,并且根据确定单元操作时间的时限(诸如搬运单元104的单元闲置时间和/或总操作时间)超过时限阈值来确定时限触发项已发生。

在又一实施方案中,机器人系统100可基于存储容量计数器来确定存储容量触发项的发生。例如,机器人系统100可监测存储容量计数器,并且根据确定存储区域507的存储容量计数器超过存储容量阈值来确定存储容量触发项已发生。

在确定框908处,如果机器人系统100将码垛触发项的发生确定为均匀层触发项,则过程可前进到框910,以根据已实现均匀包裹层的模拟堆叠计划来将可用包裹362放置在任务位置116上。在一些实施方案中,进一步深入框908处的确定,机器人系统100可延迟前进到用于放置可用包裹362的框910。

例如,在包裹分组中的一个的模拟堆叠计划已实现均匀打包层,同时打包群组的另外的实例的模拟堆叠计划正接近堆叠表面积要求(称为不完整均匀打包层)的情况下,机器人系统100可延迟放置可用包裹362。特别地,如果均匀打包层的不完整实例的模拟堆叠计划中的可用包裹362的包裹高度的和大于(或预期大于)已实现满足堆叠表面积要求的均匀打包层的包裹分组的实例的模拟堆叠计划中的高度和,则机器人系统100可延迟前进到框910。这样,机器人系统100可根据包裹重量来排定放置可用包裹362的优先级(即,放置更靠近任务位置的放置区域的更重包裹)。在一些实施方案中,机器人系统100可延迟前进到框910,直到码垛触发项的不同实例(即,时限触发项、存储容量触发项或接收到放置启动命令)已发生为止,此时,过程可前进到框910,以根据已实现满足堆叠表面积要求的均匀包装层的模拟堆叠计划来放置可用包裹362。

在机器人系统100将码垛触发项确定为时限触发项、存储容量触发项或接收到放置启动命令的情况下,过程可前进到框909。在框909处,机器人系统100可将模拟堆叠计划生成为剩余包裹计划。在一个实施方案中,机器人系统100可实施模拟功能以应用图6的方法600,从而基于当前位于存储区域705中的可用包裹362且根据码垛标准将模拟堆叠计划生成为图5的堆叠计划500。例如,可执行模拟功能,以生成二维(2d)放置计划,其中2d放置计划代表可用包裹362中的一个或多个沿着任务位置116的水平平面的2d映射。为继续示例,可执行模拟功能,以通过将2d放置计划的多个实例转换成一个或多个包裹的三维(3d)映射来生成剩余包裹计划,其中3d映射代表可用包裹362中的一个或多个在任务位置116上在多个层中的布置,其中每个层在另一层上方并且具有2d放置计划的对应实例。为深化示例,可将剩余包裹计划生成为包括基于模拟堆叠计划来确定可用包裹362的堆叠顺序id,其中堆叠顺序id用于可用包裹362在标识任务位置362上的放置次序。

例如根据码垛标准生成剩余包裹计划可包括:在观察可用包裹362的最大可堆叠高度的同时满足体积打包效率和/或预期包裹数目。在一些实施方案中,剩余包裹计划可被生成为将可用包裹362的剩余实例放置在先前放置的包裹(诸如已被放置为均匀包裹层的可用包裹362)的现有层上。

在框910处,机器人系统100可实施用于根据模拟堆叠计划(诸如(例如,通过框906)已实现满足堆叠表面积要求的均匀堆叠层的模拟堆叠计划或(例如,通过框909)生成为剩余包裹计划的模拟堆叠计划)将可用包裹362的位于存储区域705的至少一部分放置在目标位置116上的计划。例如,机器人系统100可生成使搬运单元104从存储区域705取出包裹并根据模拟堆叠计划将它们放置在任务位置116上的指令。机器人系统100可使用存储映射图来标识可用包裹362和存储区域705中的对应存储位置。在下文图10中将论述关于将可用包裹362放置在目标位置116上的细节。

在将可用包裹362放置在目标位置116上之后,在框911处,机器人系统100可更新存储映射图和存储位置计数器以反映可用包裹362从存储区域705的移除。例如,机器人系统100可更新存储映射图以移除对应于已从存储区域705移除(即,框910处)的可用包裹362的条目(例如,包裹id、存储位置信息、包裹属性、放置信息等),从而表示存储位置现在可用于存储可用包裹362的新传入实例。类似地,机器人系统100可通过将存储位置计数器的当前值减小已在将可用包裹362放置在任务位置上(即,框910处)的计划实施期间移除的可用包裹362的数目来更新存储位置计数器。

返回参考确定框907,如果机器人系统100并不确定码垛触发项的发生,则机器人系统100可前进到框902。在框902处,机器人系统100可继续处理在起始位置114处的一系列中为下一个的可用包裹362。

在确定框912处,机器人系统100确定是否存在更多的可用包裹362用于处理。如果存在待接收的更多的可用包裹362,则过程900可前进到框902,其中可处理在系列或顺序中为下一个的可用包裹362。如果不存在更多包裹待处理以便放置在平台116上,则过程结束。

在一些实施方案中,输送带110的操作可根据机器人系统100的状态来调整。例如,当机器人系统100正码垛可用包裹362时(诸如将包裹从存储区域705搬运到目标区域116(例如,框910中)),并且如果输送带110上不存在更多的可用包裹362待处理,则输送带110可能必须停止,或者必须减小其速度以允许搬运单元104将可用包裹362中的一个或多个从存储区域705移动到目标位置116。输送带110可例如在位于起始位置114处的包裹(即,目标物体112)未由搬运单元104收集到超过指定持续时间的情况下自动地停止,或者在一些实施方案中,可由机器人系统100停止或减速。在一些实施方案中,机器人系统100可实施用于通过生成控制(例如,开始、停止或调整)输送带110的速度的指令来调节输送带110的速度的计划。

图10是根据多种实施方案的用于将包裹从存储区域放置在任务位置上的过程1000的流程图。在一些实施方案中,过程1000可在图1和图7的环境中,并且作为图9的框910的一部分实施。过程1000可在图9的框907处的码垛触发项的确定发生之后开始。

在框1001处,机器人系统100可访问模拟堆叠计划以根据模拟堆叠计划确定可用包裹362的放置次序,诸如按顺序下一个用于放置在任务位置116上的可用包裹362的实例。例如,机器人系统100可根据已实现框906中所生成的均匀打包层的模拟堆叠计划或作为图9的框909中所生成的剩余包裹计划(其可包括堆叠顺序id)的模拟堆叠计划来确定可用包裹362中的每一个的放置次序。

在框1002处,机器人系统100可实施用于从存储区域705取出被标识用于放置到任务位置116(例如,平台)上的可用包裹362的实例(即,所标识包裹)的计划。例如,机器人系统100可生成使搬运单元104从存储区域705取出所标识包裹的指令。机器人系统100可使用存储映射图来确定所标识包裹在存储区域705中的存储位置,并且分别从存储区域705取出所标识包裹。

在框1003处,机器人系统100可实施用于根据模拟堆叠计划将所标识包裹放置在任务位置116上的计划。例如,机器人系统100可使搬运单元104从存储区域705取出所标识包裹并根据堆叠顺序id将所标识包裹放置在任务位置116上。

在确定框1004处,机器人系统100可确定在模拟堆叠计划中是否存在尚未被放置在任务位置116上的更多的可用包裹362。如果存在将被放置在任务位置116上的更多的可用包裹362,则过程前进到框1001,以根据模拟堆叠计划取出按顺序为下一个的可用包裹362的实例。如果不存在将被放置在任务位置116上的更多的可用包裹362,则过程结束。

结论

所公开技术的实例的上文具体实施方式并不意图是详尽的或将所公开技术限于所公开的确切形式。虽然出于说明性目的描述了所公开技术的具体实例,但如相关领域技术人员应认识到,在所公开技术的范围内多种等效修改也是可能的。例如,虽然过程或框是以给定次序呈现的,但替代实现方式可以不同次序执行具有步骤的例程或采用具有框的系统,并且可删除、移动、添加、细分、组合和/或修改一些过程或框来提供替代方案或子组合。这些过程或框中的每一个可以多种不同方式来实现。另外,虽然过程或框有时被示出为串联执行,但这些过程或框可替代地并行执行或实现,或者可在不同时间执行。此外,本文所指出的任何具体数目仅是实例;替代实现方式可采用不同的值或范围。

根据上文具体实施方式,可对所公开技术进行这些和其他改变。虽然具体实施方式描述了所公开技术的某些实例以及所设想的最佳模式,但所公开技术可以许多方式来实践,而无论文中上文描述呈现的如何详细。系统的细节可在其具体实现方式中相差甚大,但仍由本文所公开的技术涵盖。如上文所指出,在描述所公开技术的某些特征或方面时所用的特定术语不应被视为暗示本文中将术语重新定义为限于所公开技术的与所述技术相关联的任何具体特性、特征或方面。因此,除所附权利要求之外,本发明不受限制。一般来说,以下权利要求中所用的术语不应被视为将所公开技术限于说明书中所公开的具体实例,除非上文具体实施方式章节明确地限定了此类术语。

虽然本发明的某些方面在下文是以某些权利要求的形式呈现的,但本申请人可设想了呈任何数目的权利要求形式的本发明的多种方面。因此,本申请人保留在提交本申请之后追加附加权利要求以在本申请中或在接续申请中追加此类附加权利要求形式的权利。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1