非刚性包装中软体产品的机器人搬运
1.对其他申请的交叉引用本技术要求2019年2月22日提交的名称为“robotic handling of soft products in non
‑
rigid packaging”的美国临时专利申请第62/809,398号的优先权,该申请出于全部目的通过引入并入本文。
背景技术:2.装运和分发中心、仓库、装运码头、航空货运站、大箱型商店和装运和接收非同质物品集合的其他活动使用诸如在箱子、板条箱、货柜、传送带和货盘等中包装和拆包相异的物品的策略。将相异的物品包装在箱子、板条箱、货盘等中使得所得的物品集合能够由诸如叉车、起重机等重型起重装备搬运,并且使得能够更高效地包装物品以供储藏(例如,在仓库中)和/或装运(例如,在卡车、货舱等中)。
3.在一些情景中,物品可能在大小、重量、密度、体积、硬度、包装强度等方面如此相异,以至于任何给定的物品或物品集合可能或可能不具有将使得那些物品能够支持可能需要被包装(例如,在箱子、货柜、货盘等中)的给定其他物品的大小、重量、重量分布等的属性。当组装货盘或其他相异物品集合时,必须仔细选择和堆叠物品,以确保码垛的堆叠不会倒塌、倾斜或以其他方式变得不稳定(例如,以至于不能够被诸如叉车等装备搬运)并避免物品损坏。
4.一些产品可能经受被压坏或以其他方式损坏和/或可能处于软包装中。例如,面包和类似面包的产品可以被包装在塑料袋或类似的包装中。机器人抓手可以轻松压坏袋子和/或里面的产品。即使是轻微压坏的产品或严重弄皱的包装也可能致使物品对消费者而言不太合期望。
5.目前,通常用手对货盘进行堆叠和/或拆包。人类工人例如基于装运发票或货单等选择要堆叠的物品,并使用人类的判断和直觉例如选择较大和较重的物品放置在底部。然而,在一些情况下,物品仅仅经由传送机或其他机构到达和/或从箱柜中按所列顺序选择,等等,导致不稳定的码垛或以其他方式包装的集合。
6.在从零售点销售的面包和其他产品的情况下,可能需要以奇数批次分发给商店,例如,以每个相应商店所订购的每种物品的特定混合和数量。面包产品通常通过手包装在可堆叠的托盘中,装载到卡车中,并且通过将托盘带入商店中并将产品装载到货架上来运送到商店中。
7.在许多环境中,机器人的使用变得更具挑战性,这是由于物品的多样性,例如在给定的货盘上要包装的物品的顺序、数量和混合的变化,以及各种类型和位置的货柜和/或进给机构,物品必须从这些货柜和/或进给机构被拾取以放置在货盘或其他货柜上。在面包和类似产品的情况下,因拾取和在软包装(诸如塑料袋)中放置任意集合的易碎产品项的需求而使机器人搬运更具挑战性。
附图说明
8.在以下详细描述和附图中公开了本发明的各种实施例。
9.图1是图示了搬运非刚性包装中的软体产品的机器人系统的实施例的框图。
10.图2是图示了控制机器人系统的系统的实施例的框图。
11.图3是图示了控制机器人系统的过程的实施例的流程图。
12.图4是图示了确定使用机器人执行工作的规划的过程的实施例的流程图。
13.图5是图示了根据规划使用机器人拾取/放置物品的过程的实施例的流程图。
14.图6a是图示了包括多个吸盘的末端执行器的实施例的示意图。
15.图6b是图示了包括多个吸盘的末端执行器的实施例的示意图。
16.图6c是图示了包括多个吸盘的末端执行器的实施例的示意图。
17.图7是图示了用机器人臂和末端执行器抓取物品的过程的实施例的流程图。
18.图8是图示了将已经被机器人臂和/或末端执行器抓取的物品安全地移动到目的地的过程的实施例的流程图。
19.图9是图示了基于吸力的末端执行器的实施例的框图。
20.图10是图示了根据需要/如果需要同时拾取/放置物品以最好地实现分配给机器人系统的目标的过程的实施例的流程图。
21.图11是图示了调整物品的最终放置的过程的实施例的流程图。
22.图12是图示了选择物品的目的地位置的过程的实施例的流程图。
23.图13是图示了检测物品误放的过程的实施例的流程图。
24.图14是图示了搬运非刚性包装中的软体产品的机器人系统的实施例的示意图。
具体实施方式
25.本发明可以以多种方式实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置为执行存储在耦合到处理器的存储器上和/或由该存储器提供的指令的处理器。在本说明书中,这些实现或者本发明可以采取的任何其他形式可以被称为技术。一般来说,在本发明的范围内,可以更改所公开的过程的步骤顺序。除非另有声明,否则被描述为被配置为执行任务的诸如处理器或存储器的组件可以被实现为被临时配置为在给定时间执行任务的通用组件或被制造为执行任务的特定组件。如本文所使用的,术语“处理器”指代被配置为处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核心。
26.下面提供了本发明的一个或多个实施例的详细描述连同说明本发明原理的附图。结合这样的实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定,并且本发明涵盖许多替代、修改和等同物。为了提供对本发明的透彻理解,在以下描述中阐述了许多具体细节。这些细节是出于示例的目的而提供的,并且本发明可以在没有这些具体细节中的一些或全部的情况下根据权利要求来实践。为了清楚的目的,没有详细描述与本发明相关的技术领域中已知的技术材料,以便不会不必要地模糊本发明。
27.公开了以编程方式使用机器人系统的技术,该机器人系统包括一个或多个机器人(例如,在操作端具有吸力和/或抓手的机器人臂),以码垛/卸垛和/或以其他方式包装和/或拆包任意非同质物品集合(例如,相异的大小、形状、重量、重量分布、硬度、易碎性等),包
括在塑料袋或类似包装中销售的面包和类似产品之类的物品。
28.在各种实施例中,3d相机、力传感器和其他传感器用于检测和确定要拾取和/或放置的物品的属性。可以使用从物品类型特定的模型导出的策略来抓取和放置其类型被确定(例如,以足够的置信度,例如由程序确定的置信度得分所指示的)的物品。无法标识的物品使用不特定于给定物品类型的策略进行拾取和放置。例如,可以使用利用大小、形状和重量信息的模型。
29.在各种实施例中,物品类型、相应属性和抓取策略的库被用来确定和实现拾取和放置每个物品的策略。在一些实施例中,该库是动态的。例如,该库可以被扩充以添加新遇到的物品和/或关于物品学习的附加属性,诸如在给定情景中起作用或不起作用的抓取策略。在一些实施例中,如果机器人系统卡住,可以调用人类干预。机器人系统可以被配置为基于人类遥控操作员如何干预来观看(例如,使用传感器)和学习(例如,更新库和/或模型),从而使用机器人臂来例如经由遥控操作拾取和放置物品。
30.在一些实施例中,如本文公开的机器人系统可以参与收集和存储(例如,添加到库中)属性和/或策略的过程,以标识和拾取/放置未知或新发现类型的物品。例如,该系统可以以各种角度和/或位置保持物品,以使得3d相机和/或其他传感器能够生成传感器数据,以扩充和/或创建表征物品类型的库条目,并存储如何标识和拾取/放置该类型的物品的模型。
31.在各种实施例中,做出在货盘或其他货柜或位置上拾取和放置物品的高级规划。例如,基于传感器信息来应用策略,以通过根据规划拾取和放置个体物品来实现该规划。可能触发与规划的偏差和/或重新规划,例如机器人系统卡住,货盘上的物品堆叠(例如,通过计算机视觉、力传感器等)被检测到已经变得不稳定)等。可以基于已知信息(例如,传送机上可见的下n个物品、发票或货单上的下n个物品等)形成部分规划,并在接收到附加信息(例如,下一个物品可见等)时进行调整。在一些情况下,该系统被配置为暂存(stage)(例如,设置在一旁,可触范围内)被确定为不太可能适合堆叠在系统当前正在构建的层或货柜(诸如货盘或货柜中的较低(或较高)层等)中的物品。一旦知道了更多关于接下来要拾取/放置的物品的信息,就生成并实现考虑到所暂存(缓冲)物品和接下来的物品的策略。
32.在塑料袋或类似包装中的面包和类似产品的情况下,在各种实施例中,如本文公开的机器人系统使用在操作端具有吸力型抓手的机器人臂。例如,在一些实施例中,使用包括两个大吸盘的抓手。在其他实施例中,可以包括单个吸盘或多于两个的吸盘。在各种实施例中,面包从传送器、箱柜、货架等处被拾取并被放置在大的可堆叠塑料托盘中以供分发。每个目的地的发票可以用于拾取和放置物品。
33.在各种实施例中,使用算法、启发法和其他编程技术来生成对面包物品进行包装的规划。例如,相同类型、大小、形状等的物品可以放置在一起,以便高效包装。在一些实施例中,规划器模块可以尝试以最小化空隙、外周(例如,不与其他产品和/或托盘一侧相邻的边缘的总和)等的方式向托盘添加物品。
34.在各种实施例中,如本文公开的拾取和放置面包和类似物品的机器人系统可以至少部分地使用在图1至14中图示和/或结合图1至14描述的一些或全部技术来实现。
35.图1是图示了搬运非刚性包装中的软体产品的机器人系统的实施例的框图。在所示的示例中,系统100包括可旋转地安装在滑架104上的机器人臂102,滑架104被配置为例
如在计算机控制下沿着轨道106平移。在该示例中,机器人臂102可移动地安装在滑架104和轨道106上,但是在各种其他实施例中,机器人臂102可以是静止的,或者可以是完全或部分移动的而不是经由沿着轨道的平移,例如安装在转盘上,在机动底盘上完全移动等。
36.在所示的示例中,机器人臂102在其操作远端(离滑架104最远)处具有末端执行器108。末端执行器108包括柔性真空(或“吸”)盘110。在各种实施例中,吸盘110包括硅树脂或另一种天然或合成材料,其耐用但也足够有柔性以在它们(首次和/或轻轻地)与机器人系统100正在尝试使用机器人臂102和末端执行器108抓取(例如经由吸力)的物品(诸如,面包或者在诸如塑料袋或外包装之类的非刚性包装中的其他软体和/或易碎物品)发生接触时,至少轻微地“让路”。
37.在该示例中,末端执行器108具有安装在末端执行器108侧面的相机112。在其他实施例中,相机112可以更中心地定位,诸如在末端执行器108的主体的面向下的面上(在图1中所示的位置和定向上)。附加的相机可以安装在机器人臂102和/或末端执行器108上的别处,例如,在包括机器人臂102的臂段上。附加地,在该示例中安装在墙上的相机114和116提供了可用于构建其中系统100所定位并被配置为操作的场景的3d视图的附加图像数据。
38.在各种实施例中,机器人臂102用于将末端执行器108的吸盘110定位在要拾取的物品上(如所示的),并且真空源提供吸力以抓取物品,将其从其源位置提起,并将其放置在目的地位置处。
39.在图1中所示的示例中,机器人臂102被配置为用于从源托盘120中拾取任意的并且在该示例中相异的物品、诸如从接收自面包店的物品托盘中拾取的面包物品,并且将它们放置在目的地托盘118上。在所示的示例中,目的地托盘118和源托盘120包括可堆叠的托盘,可堆叠的托盘被配置为堆叠在四个角处具有轮子的基座上。在一些实施例中,托盘118和/或120可以由人类工人推入位置。在一些实施例中,托盘118和/或120可以堆叠在机动和/或机器人控制的基座上,该基座被配置为用于将箱柜堆叠移动到要从其拾取和/或放置到其的位置,和/或将完成的托盘堆叠移动到要装载到运送车辆上以运送到例如零售位置的暂存和/或运输区域。在一些实施例中,图1中未示出的其他机器人可以用于将托盘118和/或120推入要装载/卸载的位置中和/或推入要运输的卡车或其他目的地等。
40.在各种实施例中,由相机112、114和116中的一个或多个生成的3d或其他图像数据可以用于生成系统100的工作区域和在该工作区域内的物品的3d视图。3d图像数据可以用于诸如通过颜色、形状或其他属性来标识要拾取/放置的物品。在各种实施例中,相机112、114和116中的一个或多个可以用于读取文本、标志、照片、绘图、图像、标记、条形码、qr码或系统100的工作区域上可见的和/或包括系统100的工作区域内的物品的其他编码和/或图形信息或内容。
41.进一步参考图1,在所示的示例中,系统100包括控制计算机122,在该示例中,控制计算机122被配置为经由无线通信(但是在各种实施例中以有线和无线通信中的一种或两种)与诸如机器人臂102、滑架104、执行器108和传感器(诸如相机112、114和116和/或重量、力和/或图1中未示出的其他传感器)的元件进行通信。在各种实施例中,控制计算机122被配置为使用来自传感器(诸如相机112、114和116和/或重量、力和/或图1中未示出的其他传感器)的输入来查看、标识和确定要装载到托盘120中和/或从托盘120卸载到托盘118的物品的一个或多个属性。在各种实施例中,控制计算机122使用存储在控制计算机122上和/或
可由控制计算机122访问的库中的物品模型数据来标识物品和/或其属性,例如基于图像和/或其他传感器数据。控制计算机122使用对应于物品的模型来确定和实现将物品连同其他物品一起堆叠在目的地(诸如托盘118)中/上的规划。在各种实施例中,物品属性和/或模型用于确定抓取、移动和在目的地位置(例如,作为将物品堆叠在托盘118中/上的规划/重新规划过程的一部分,物品被确定放置的所确定位置)中放置物品的策略。
42.在所示的示例中,控制计算机122连接到“按需”遥控操作设备124。在一些实施例中,如果控制计算机122不能以全自动化模式进行,例如,不能确定抓取、移动和放置物品的策略和/或以使得控制计算机122不具有以全自动化模式完成拾取和放置物品的策略的方式失败,则控制计算机122提示人类用户126进行干预,例如,通过使用遥控操作设备124来操作机器人臂102、滑架104和/或末端执行器108中的一个或多个来抓取、移动和放置物品。
43.图2是图示了控制机器人系统的系统的实施例的框图。在各种实施例中,图1的控制计算机122如图2中所示那样实现。在所示的示例中,控制计算机122包括通信接口202,该通信接口202被配置为发送和接收在控制计算机122与包括机器人系统的其他元件之间的无线、网络和其他通信中的一个或多个,所述其他元件诸如图1的系统100中的机器人臂102、滑架104、末端执行器108、相机112、114和116和/或机器人基座118和/或120中的一个或多个。
44.在所示的示例中,控制计算机122包括规划模块204。规划模块204接收发票、库存、空间/位置信息(例如,机器人元件、传感器、库存、空托盘/箱柜等的位置和状态)。规划模块204使用该信息来确定和/或重新计算从源位置到目的地位置拾取/放置物品的规划,例如,以履行一个或多个高级要求。例如,在机器人系统要履行将面包或其他烘焙商品运送到零售店的订单——各自根据指示每个订单/零售商店要包括的面包物品的发票或货单——的情况下,在一些实施例中,规划模块204确定操作序列,以根据每个订单从源托盘中拾取面包物品以填充目的地托盘,并且使得与每个订单或订单集相关联的托盘被装载到一个或多个运送车辆上以运输到相应的零售店。由规划模块206接收的全部或一些信息和/或由规划模块206生成的规划可以存储在订单/库存数据库206中。
45.在一些实施例中,规划模块204可以被配置为在滚动和/或周期性的基础上开发和/或重新评测规划。例如,可以接收和处理图像或其他传感器数据,以生成工作空间场景的更新的三维视图和/或更新关于哪些库存物品位于工作空间内的哪些源位置中的信息。在面包的示例中,当新的托盘或托盘堆叠例如从面包店、储藏室等到达工作空间时,物品被标识,并且规划被生成、更新和/或确认,以朝着实现高级目标(例如,高效地履行和运输所有订单)取得进展,其诸如通过从当前源位置拾取可用库存,并且将物品移动/放置在被填充的托盘中以履行相应的个体订单。
46.进一步参考图2,在所示的示例中,控制计算机122进一步包括机器人控制模块208。在各种实施例中,机器人控制模块208接收并处理来自传感器模块210的传感器数据(例如,来自相机的图像数据、力和/或扭矩传感器信号、真空/压力读数等)。传感器模块210接收来自一个或多个传感器的输入,缓冲数据,并以机器人控制模块208可用的形式向机器人控制模块208提供输入,以控制受控机器人系统(例如,图1的系统100)的可操作元件来执行与从规划模块204接收的规划的实现相关联的任务。在各种实施例中,可操作元件包括:每个传感器和/或致动器中的一个或多个,每个传感器和/或致动器包括机器人臂和/或末
端执行器,诸如图1的机器人臂102、滑架104和末端执行器108(例如,用于移动臂段的马达、用于向吸盘施加真空的阀或其他元件等);工作空间中的其他传感器,诸如图1的相机114和116;以及其他机器人和/或机器人操控或移动的元件,诸如图1的托盘堆叠118和120。
47.机器人控制模块208使用(一个或多个)机器人的机器人模型210,机器人模型210被配置为控制每个机器人的移动和其他致动。例如,图1中的机器人臂102和滑架104的模型可以用于确定高效且相对流畅的致动包括臂102的关节马达的方式,以在滑架104上旋转臂102,和/或沿着轨道106移动滑架104,从而例如根据从规划模块204接收的规划从源位置到目的地位置拾取和放置物品,而不与人类、其他机器人元件或工作空间中存在的其他障碍物碰撞。
48.在各种实施例中,机器人控制模块208维护和更新物品模型212和/或抓取策略214的集合。各种实施例中的物品模型212描述物品的属性和/或要拾取/放置的物品的类别或类型,诸如大小、形状、尺寸、重量、硬度、包装类型、包装上的标志或文字等。在一些实施例中,物品模型212可以用于例如基于图像、重量、光学代码扫描和/或其他信息来标识工作空间内的物品。
49.在各种实施例中,机器人控制模块208使用抓取策略214(例如,基于所确定的物品或物品类型、大小、形状、重量等,以及情景信息,诸如物品的位置和定向、它与什么相邻等)来确定抓取要移动(例如从源托盘到目的地托盘)的物品的策略。
50.在各种实施例中,机器人控制模块208可以随着时间更新(一个或多个)物品模型212和抓取策略214中的一个或两个。例如,在一些实施例中,机器学习或其他技术可以用于随着时间学习新的和/或更好的抓取策略。例如,频繁失败的抓取策略可能被降低评分和/或移除,并且开发和学习新的策略来取代它们。在一些实施例中,可以通过观察人类操作员如何在遥控操作下执行抓取来学习新的策略。抓取策略214可以特定于物品、物品集合和/或(一种或多种)物品类型。一些抓取策略214可以与未识别的物品的大小、形状、尺寸、重量等相关联。
51.术语“抓取”在本公开中用于指代如下任何机制:通过所述机制,末端执行器足够牢固地获得对物品的控制,从而能够移动物品,诸如在抓手型末端执行器的情况下通过抓住物品,或者通过末端执行器(诸如图1的末端执行器108)的真空/吸力。本文公开的技术可以与任何类型的末端执行器一起使用。
52.在各种实施例中,机器人控制模块208和/或传感器模块210接收和处理图像数据,以生成与由控制计算机122控制的机器人系统相关联的工作空间以及在该工作空间中存在的物品的三维视图。在各种实施例中,机器人控制模块208和/或传感器模块210可以被配置为控制传感器,诸如控制工作空间中存在的相机的位置和定向,以生成工作空间和在工作空间中的物品的更完整的视图。
53.在各种实施例中,控制计算机122可以被配置为同时地、通过分时等控制在多于一个的物理位置和/或工作空间中的多于一个机器人系统。在一些实施例中,图2中示出为包括单个物理计算机122的元件可以跨多个物理或虚拟机、货柜等分散。
54.在各种实施例中,规划模块204、机器人控制模块208和传感器模块210中的一个或多个可以包括专用硬件(例如,asic、编程fpga等)和/或通过在包括控制计算机122的硬件处理器上执行软件指令而提供的功能模块中的一个或两个。
55.图3是图示了控制机器人系统的过程的实施例的流程图。在各种实施例中,图3的过程300可以由计算机、诸如图1的控制计算机122实现。在所示的示例中,在302处,接收指示高级目标的输入数据,诸如将被包括在一个或多个个体订单中的每一个中的物品。在304处,确定和/或更新履行一个或多个订单的规划。在306处,确定根据规划抓取、移动和放置物品的策略。在308处,如果需要并且只要需要,就调用经由遥控操作的人类干预,例如以执行或完成不能以全自动化模式完成的任务。处理继续,直到已经完成了所有任务并且实现了(一个或多个)高级目标(310),此时过程300结束。
56.图4是图示了确定使用机器人执行工作的规划的过程的实施例的流程图。在各种实施例中,图3的步骤304至少部分地由图4的过程实现。在所示的示例中,在402处,执行初始化例程和/或操作,以确定每个机器人元件连同在工作空间内的物品、工具、容器、障碍物等的位置(例如,在三维空间中)和姿势/状态。在一些实施例中,402可以在一个或多个操作集合开始处执行,或者当环境已经被人类或其他机器人干预改变时执行,或者当接收到指示可能需要重新初始化的数据(例如失败的动作、意外的状态等)时执行。在404处,接收和处理图像和/或其他传感器数据,以生成工作空间或其他场景或环境的三维视图。在406处,确定源容器(诸如面包店示例中的面包托盘)的(一个或多个)位置和(一个或多个)内容。例如,图像数据、光学代码扫描、包装上的识别标志或文本等中的一个或多个可以用于确定哪些物品在哪里。在408处,确定目的地容器的位置和状态。例如,空箱柜堆叠、一个或多个部分装满的箱柜等可以使用图像数据、rf或其他电子标签、光学代码或其他传感器数据来定位。所确定的物品和容器位置信息、物品标识和其他数据(例如,哪些物品将被发送到哪个(哪些)零售点或其他销售点位置的(一个或多个)货单)等)在410处用于计算(或重新计算)在工作空间中拾取/放置物品以履行订单的规划。例如,如果一个装满小麦面包的托盘和一个装满白面包的托盘被标识并位于工作空间中,并且订单需要x块小麦面包和y块白面包,则在一些实施例中,在410处,可以确定规划来根据需要拾取和放置小麦面包和白面包块,以构建其中已经放置了所需块数的每种类型的面包的一个或多个托盘。
57.在各种实施例中,在410处确定的规划包括所需的步骤,例如从暂存或缓冲区域取回一个或多个空托盘,并根据需要将它们放置/堆叠在装载区域中,以使得物品能够放置在其中。类似地,源托盘一旦空了,可以由机器人系统移动到暂存或缓冲区域,例如以供将来使用以履行后续处理的订单。
58.在各种实施例中,在410处确定的规划包括针对要放置的每个物品确定在目的地托盘上适合该物品(例如,足够大并且具有容纳该物品的正确尺寸)的位置。在一些实施例中,在410处确定的规划考虑了确保高效利用可用托盘空间的目标,例如,在给定订单中包括的物品(或留下来被拾取/放置以履行订单的物品)的情况下,通过以使用最佳表面空间量的方式包装每个托盘上的物品。在各种实施例中,可以在410处在连续和/或周期性的基础上更新规划。更新的状态信息可以用于更新规划。例如,状态信息可以指示:对于给定的托盘,哪些物品已经被放置在托盘中,每个物品的位置和定向,托盘中可用的剩余空间,以及要被放置以履行订单的接下来(或剩余的)n个物品。
59.图4的过程304继续,直到高级操作已经完成,并且没有剩余另外的任务要规划(412)。
60.图5是图示了根据规划使用机器人拾取/放置物品的过程的实施例的流程图。在各
种实施例中,图3的步骤306至少部分地由图5的过程实现。在所示的示例中,在502处,接收与规划相关联的拾取/放置任务。例如,机器人控制模块可以将要执行的特定拾取/放置任务进行分配、放置在队列中、从队列中拉出等,以朝着完成一个或多个较高级别操作集合而取得进展。在504处,使用传感器数据、物品模型信息和抓取策略储存库信息中的一个或多个来确定抓取要移动的物品的策略。在506处,尝试根据策略来抓取物品。如果抓取成功(508),例如,图像、重量和/或其他传感器数据都指示物品已经被成功抓取,则在510处,例如根据先前确定的规划,物品被移动到它将被放置的目的地位置。如果抓取尝试不成功(508),则在512处确定是否例如使用相同或可能不同的策略重试抓取。在一些实施例中,可以尝试重试达配置或规定的次数,或者直到确定没有另外的策略可用于在全自动化控制下抓取物品,无论哪一个先发生皆如此。如果要尝试重试(512),则过程返回到步骤504,其中传感器、物品模型和抓取策略信息中的一个或多个用于在506处确定抓取物品的(下一个)策略。如果没有另外的重试要尝试(512),则(例如,通过遥控操作、手动任务执行等)在514处调用人类干预,并且人类工人/操作员执行任务至完成(510)。执行图5的过程的后续迭代,直到所有物品已经被拾取/放置(516),在此过程结束。
61.图6a是图示了包括多个吸盘的末端执行器的实施例的示意图。在所示的示例中,末端执行器602可移动地连接到机器人臂段604。在各种实施例中,臂段604包括内部暗线,以向末端执行器602提供电力和真空源。在所示的示例中,末端执行器602包括两个吸盘,这包括最左边的吸盘606。在各种中,末端执行器602包括内部致动器元件(在图6a中未示出),其被配置为独立地向左和/或右吸盘施加吸力。例如,可以仅使用一个吸盘来抓取较小的物品。或者,可以同时抓取两个物品,每个物品使用一个独立(或共同)控制的吸盘。在一些实施例中,末端执行器602包括诸如附接到吸盘安装件的力或其他传感器之类的传感器,所述传感器在各种实施例中用于检测与要被抓取的物品的初始接触,和/或确定(例如,通过重量)物品是什么和/或物品是否已经被成功抓取。在一些实施例中,末端执行器602包括一个或多个扭矩传感器,例如,附接在末端执行器602连接到臂段604之处的“腕”点。在一些实施例中,(一个或多个)扭矩传感器可以用于例如确定物品是否已经在其重心处或靠近其重心被抓取。在一些实施例中,末端执行器602包括压力传感器,以确定基于吸盘的物品抓取是否成功,其例如通过检测吸盘和物品和/或其包装之间的良好或不良密封。
62.图6b是图示了包括多个吸盘的末端执行器的实施例的示意图。在所示的示例中,末端执行器622可移动地附接到机器人臂段624,并且包括以2
×
3网格布置的六个吸盘。在各种实施例中,这六个吸盘中的每一个和/或它们中的两个或三个的相邻子组可以在如本文公开的机器人控制系统的控制下独立地被致动。
63.图6c是图示了包括多个吸盘的末端执行器的实施例的示意图。在所示的示例中,末端执行器642可移动地附接到机器人臂段644,并且包括以3
×
6网格布置的十八个吸盘。在各种实施例中,每个吸盘和/或吸盘的相邻子组可以在如本文公开的机器人控制系统的控制下独立地被致动。
64.虽然图6a、图6b和图6c中所示的示例包括所示吸盘的数量和布置,但是在各种实施例中,包括更多或更少的吸盘。在一些实施例中,包括除吸盘之外的抓取结构。
65.图7是图示了用机器人臂和末端执行器抓取物品的过程的实施例的流程图。在各种实施例中,图7的过程700可以由诸如控制计算机122之类的计算机执行,其被配置为操作
机器人臂和末端执行器,诸如图1的机器人臂102和末端执行器108。在一些实施例中,过程700由图2的机器人控制模块208执行。在所示的示例中,在702处,图像和/或其他传感器数据用于在要抓取的物品附近移动末端执行器。例如,基于图像数据确定将被吸力型末端执行器接合的包装表面在三维空间中的位置,并且计算轨迹以将抓手的吸盘的物品接合端移动到表面的规定距离内。当末端执行器移动到包装(或物品)表面附近时,图像数据继续被监视。在各种实施例中,一旦末端执行器已经移动到计算轨迹的结束位置和定向,和/或如果图像或其他传感器数据指示末端执行器在到达轨迹的末端之前到达物品的附近,则停止移动;例如,如果末端执行器中的力传感器检测到吸盘已经接触到包装/物品,则可以停止移动。一旦末端执行器已经移动到要抓取的物品附近的位置(702、704),在706处,末端执行器和臂的(例如,相对较大的距离和/或相对较高的速度的)大幅移动停止,并且尝试通过末端执行器的精细移动和末端执行器的吸力或其他物品接合机构的致动中的一个或多个来抓取物品。
66.在各种实施例中,可以执行、呈现和/或实现以下各项中的一个或多个:
·
使用吸力的抓取最小化物品周围的必要自由空间,仅需要物品顶部可触及。
·
柔性吸盘减弱接触力,以保护产品(即被抓取的物品)。
·
压力传感器,用于检测盘何时与产品表面紧密接触。在一些实施例和/或抓取中,外包装可以甚至在不接触所包含的产品的情况下被牢固地抓取。
·
力传感器,用于检测力何时施加到产品。
·
检测两种抓取状态的传感器的任何其他组合,所述两种状态为(1)末端执行器已经与产品进行了足够的接触以进行抓取,以及(2)末端执行器不能在没有损坏产品的风险的情况下移动得更近。在一些实施例中,这些传感器可以包括吸盘安装件上的接近传感器和/或限位开关。
·
闭合的控制回路,其将机器人末端执行器朝着产品移动,直到遇到来自上文的状态(1)或(2)。
67.在708处确定物品是否已经被成功抓取。例如,压力传感器可以用于确定基于吸力的抓取是否已经成功完成。例如,如果已经实现所需的真空,则可以确定物品已经被成功抓取。在一些实施例中,可以基于物品的属性(诸如重量)以及相对于末端执行器的至少最小数量的吸盘(诸如与牢固地抓取该重量的物品相关联的最小数量的吸盘)是否已经达到真空来确定物品已经被成功抓取。
68.如果/一旦抓取已经被确定为成功(708),则在710处,物品被移动到相关联的目的地位置。例如,机器人臂和末端执行器沿着由控制计算机和/或模块计算的轨迹移动,以将物品移动到目的地,并从末端执行器的抓取中释放物品。如果抓取(还)不成功(708),则在712处,评估图像和/或其他传感器数据以确定(新的/修订的)抓取策略。在一些实施例中,步骤712包括是否要尝试(进一步)重试的评估;如果没有,则发起人类干预。如果在712处确定了新的抓取策略,则在706处尝试该抓取策略,并且如果成功(708),则在710处将物品移动到其目的地。一旦物品已经被移动到其目的地(例如,在710处和/或如果自动化抓取/移动已经失败则通过人类干预),在714处确定是否存在另外的物品要被抓取和移动。如果是,则在716处,处理前进到要移动的下一个物品,并且相对于该物品执行过程700的进一步迭代。如果没有其他物品要抓取和移动(714),则过程结束。
69.图8是图示了将已经被机器人臂和/或末端执行器抓取的物品安全地移动到目的地的过程的实施例的流程图。在各种实施例中,图8的过程800可以由计算机(诸如控制计算机122)执行,其被配置为操作机器人臂和末端执行器,诸如图1的机器人臂102和末端执行器108。在一些实施例中,过程800由图2的机器人控制模块208执行。
70.在各种实施例中,机器人系统例如经由图7的过程700抓取物品,然后采用一个或多个基于传感器的检查来确保抓取正确和安全并且保持正确和安全,例如,机器人系统可以:
·
查询sku特定的或其他物品信息的数据库,例如,以确定物品重量和/或其他属性。
·
针对削弱抓取的漏气检查压力传感器读数。
·
检查力传感器读数,以确保已抓取正确的物品类型和数量。
·
相机检测抓取物品相对于末端执行器的位置,以证实来自压力和力传感器的读数。确认抓取物品的大小与sku或其他物品数据库中的大小匹配。
·
扭矩读数检查物品是否已经靠近质心被抓取。
·
一旦传感器读数之间有任何(或大于阈值的)差异或任何检查失败,机器人将抓取的对象返回到其原始位置或附近的某个“安全”区,以进行进一步的尝试/检查。然后它可以继续拾取(例如,其他)产品。
71.参考图8,在所示的示例中,当物品(例如,在使用机器人臂和末端执行器被成功抓取之后)正在被移动(802)时,在804处,来自多个传感器和/或传感器类型(例如,图像、力、压力等)的传感器数据被监视。对于每个传感器/传感器类型,在806处,评估传感器数据以确定该数据是否与对物品的(持续的)牢固抓取一致。如果所有(或阈值比例的)传感器指示抓取保持安全(808),则在810处,物品被移动(和/或继续被移动)到其目的地。如果任何(或阈值数量的)传感器和/或传感器类型提供了指示抓取不牢固或不再牢固的数据(808),则在812处,物品被移动到缓冲位置(或其原始源位置,如果机器人系统确定抓取足够牢固和/或源位置足够靠近以这样做),并且一旦在安全位置中,机器人系统就确定抓取策略并尝试重新抓取物品。对多个传感器的监视(804)和传感器数据的使用来评估抓取是否安全/是否保持安全(806,808)继续,直到物品已经成功地移动到其目的地(814),此后过程800结束。
72.图9是图示了基于吸力的末端执行器的实施例的框图。在各种实施例中,图9的机器人臂末端执行器900可以用于实现图1的末端执行器108。
73.在所示的示例中,末端执行器900包括经由可旋转联轴器附接到机器人臂904的主体或外壳902。在一些实施例中,外壳902和机器人臂904之间的连接可以包括由控制计算机(诸如图1的控制计算机118)控制的机动关节。末端执行器900进一步包括吸力或其他气动管线906,其穿过机器人臂904伸入外壳902中,以向吸力控制模块908供应真空源。在各种实施例中,控制模块908例如通过通信接口914经由无线和/或有线通信连接到末端执行器900外部的控制计算机,例如图1的控制计算机118。控制模块908包括电子和/或机电元件,其可操作以向包括末端执行器900的吸盘910、912供应吸力,例如以通过吸力将末端执行器附接到要使用末端执行器900拾取、移动和放置的物品。
74.在各种实施例中,吸力控制模块908被配置为独立地向盘910和912施加吸力,从而使得仅一个或另一个能够被用于抓取给定物品。在一些实施例中,可以同时抓取和移动两
个相邻的物品(诸如两块面包),每个物品被盘910和912中对应的一个抓取。
75.在所示的示例中,安装在外壳902侧面的相机916提供末端执行器900下方的视场的图像数据。多个力传感器918、920、922、924、926和928分别测量施加到吸盘910和912的力。在各种实施例中,力测量经由通信接口914传送到外部和/或远程控制计算机。在各种实施例中使用传感器读数,以使得机器人臂904和末端执行器900能够用于将物品紧贴到与其他物品和/或侧壁或其他结构相邻的地方,和/或检测不稳定性(例如,当物品仍处于吸力下时但在物品预期被放置和稳定的位置中被压下,具有不足的后推)。在各种实施例中,水平安装的力传感器对(例如,918和922、924和928)在x
‑
y平面中成直角放置,以使得能够在所有水平方向上确定力。
76.在一些实施例中,力传感器可以用于检测吸盘910、912和要抓取的物品之间的初始接触。在检测到初始接触时,机器人臂904停止,以避免对物品的损坏,诸如压坏一块面包或弄皱其包装。然后施加吸力来使用吸力抓取物品。
77.图10是图示了根据需要/如果需要同时拾取/放置物品以最好地实现分配给机器人系统的目标的过程的实施例的流程图。在各种实施例中,图10的过程1000可以由计算机(诸如控制计算机122)执行,其被配置为操作机器人臂和末端执行器,诸如图1的机器人臂102和末端执行器108。在一些实施例中,过程1000由图2的机器人控制模块208执行。
78.在各种实施例中,如本文公开的机器人系统可以:
·
在一次运行中拾取多个物品,以增加拾取系统的吞吐量。
·
为不同的物品组合生成不同的拾取(抓取)姿势。
·
检测拟合当前末端执行器配置的可拾取物品组合,以便牢固的紧密抓取。例如,具有两个大吸盘的抓手(末端执行器)可以同时拾取两个相同或相似大小的物品。
·
在所有可拾取的物品当中,根据客户需求的当前数量(例如,当前货单)决定是否执行多次抓取。
·
适配不同的系统条件,以安全的方式执行多次抓取。例如,如果物品位于工作区的边缘,对抓手姿态进行调整以适应可能的碰撞。标识并过滤掉潜在的危险情况。
·
适配不同的抓手配置:评估多次抓取的可行性,并基于给定的抓手配置(诸如抓手入口点之间的直径等),生成不同的抓取姿态。
·
在可能的单次和多次抓取之间执行成本评估。
·
评估所有可能的多次抓取的抓取成本,以在稳定的多次抓取中实现最低风险。
79.参考图10,在1002处所示的示例中,评估物品数据,例如物品属性数据、满足当前/下一订单所需的每个物品的数量、要移动的物品的(一个或多个)源/起始位置、源和目的地位置(例如托盘)的状态等。在1004处,评测可以作为动作集合的一部分来拾取和放置以完成订单的单个物品和支持的多物品物品组合。例如,如果需要两个或更多个相同的物品来满足订单,并且源托盘中存在相邻的物品,并且空间可用(或者,在规划中被评估的场景下,将或可能变得可用),则在单个任务中移动两个(或更多个)物品可以被认为包括在满足订单的规划中。在1006处,确定满足订单的单物品和/或多物品拾取/放置任务的最低(总体/总)成本(例如,时间、能量等)和/或最低风险(例如,掉落物品的风险可以被认为比逐个移动物品大可测量或可预测的量)混合。在一些实施例中,成本和风险中的每一个可以例如在成本函数中具有相关联的权重,并且可以确定最小化成本函数的规划。在1008处,根据在
1006处确定的规划拾取/放置物品。处理继续直到完成(1010)。
80.在各种实施例中,过程1000的一个或多个步骤可以在连续和/或周期性的基础上执行,例如,以基于在执行规划时变得可用的信息来细化在1006处确定的规划,所述信息诸如新的源托盘或其他物品源容器被移动到工作空间中、改变工作空间中任何物品和/或容器的状态的人类或其他意外干预或事件、导致托盘(例如,目的地的)实际状态不同于预期的失败拾取/放置任务等。
81.图11是图示了调整物品的最终放置的过程的实施例的流程图。在各种实施例中,图11的过程可以由计算机(诸如控制计算机122)执行,其被配置为操作机器人臂和末端执行器,诸如图1的机器人臂102和末端执行器108。在一些实施例中,图11的过程由图2的机器人控制模块208执行。在所示的示例中,当物品正在被移动时(1102),该系统检测到该物品已经被移动到紧密接近预期目的地位置的位置(1104)。例如,图像传感器、力传感器和/或其他传感器数据可以用于检测至最终位置的接近度。在一些实施例中,垂直定向的力传感器可以用于检测物品已经与托盘底部或物品将被放置在其上的其他容器表面发生接触。在1106处,响应于检测至最终目的地位置的接近度,在物品被释放之前,执行最终放置操作以确保紧贴的拟合。例如,水平或其他力传感器、扭矩传感器、接触传感器、图像传感器或其某种组合可以用于评测物品与相邻物品和/或结构(诸如容器的侧壁)的接触或靠近接触。可以操控机器人臂和/或末端执行器来增加邻近度,其诸如通过确保所放置的物品根据拾取/放置规划沿着它应该紧贴抵靠的任何边缘和/或表面与相邻物品接触。例如,如果与物品的相同水平入口和/或接触边缘或表面相关联的传感器的力传感器读数不(基本上)相同,则可以旋转末端执行器和/或移动臂,以将物品重新定位到力传感器感测到基本上相同的力的位置。
82.图12是图示了选择物品的目的地位置的过程的实施例的流程图。在各种实施例中,图12的过程可以由计算机(诸如控制计算机122)执行,其被配置为操作机器人臂和末端执行器,诸如图1的机器人臂102和末端执行器108。在一些实施例中,图12的过程由图2的机器人控制模块208执行。在所示的示例中,在1202处,评测一个或多个物品将要被移动到的目的地托盘的状态。例如,图像数据和先前执行的拾取/放置任务的数据可以用于确定可用于接收要放置在目的地托盘或其他容器上的物品的可用狭槽、空间和/或位置。在1204处,从在1202处确定的那些中选择最佳狭槽作为可用的。
83.在一些实施例中,可以根据算法和/或其他标准来选择最佳狭槽。例如,在一些实施例中,可以选择将导致目的地托盘中的物品组的最低外周长的狭槽。在一些实施例中,如果关于n个物品的信息可用,则可以同时确定下n个要放置的物品的狭槽,以确保放置位置的集合是最佳的。在一些实施例中,如果在先放置决定影响后续放置决定的可用性和/或最佳性,则先前放置的物品可以被移动到以编程方式确定的位置和/或定向,以使(更佳的)狭槽可用于接下来的(一个或多个)要放置的物品。例如,可以在该系统知道接下来要放置哪个(哪些)物品之前和/或在该系统具有关于(一个或多个)这样的物品的完整信息之前,做出放置第一物品的决定。在这样的状况下,该系统可能已经针对先前放置的物品选择了一种放置,该放置导致在给定要后续放置的物品的情况下总体不太佳的情形。在一些实施例中,该系统被配置为检测这样的情形,并且移动和/或改变先前放置的物品的放置/定向,如果这样做为接下来或稍后放置的(一个或多个)物品打开了更多/更好的可能性的话。
84.在一些实施例中,如果在1202和/或1204处确定没有狭槽可用于接收物品,并且在一些实施例中,如果没有可能逆合在托盘中的(一个或多个)较小物品可用于被拾取/放置到可用且足以接收这样的物品的空间中,则该系统确定托盘是装满的并且例如从暂存区域取回空托盘。如果托盘堆叠不太高,并且已经被填充的托盘和下一个要被填充的新托盘去往相同的位置,例如相同的运送车辆/路线,则新托盘可以被堆叠在已经被确定为装满的托盘上。
85.在1206处,一旦已经选择了合适/最佳的狭槽来放置(一个或多个)物品,(一个或多个)物品就被放置在该位置中,例如经由图7和11中的一个或多个的过程。
86.图13是图示了检测物品误放的过程的实施例的流程图。在各种实施例中,图13的过程可以由计算机(诸如控制计算机122)执行,其被配置为操作机器人臂和末端执行器,诸如图1的机器人臂102和末端执行器108。在一些实施例中,图13的过程由图2的机器人控制模块208执行。在所示的示例中,当物品被放置(1302)(例如,被移动和紧贴至最终位置中但尚未从末端执行器的抓取中释放)时,图像和/或其他传感器数据被用于评估物品的放置(1304)。例如,三维图像数据可以指示物品高度高于针对成功放置所预期的。例如,物品顶表面的高度可以预期等于托盘底部高度加上物品的预期高度。如果顶表面处于较高的高度,则这样的信息可以指示物品已经全部或部分地放置在另一个物品的顶部上,或者物品在拾取/放置操作期间可能已经被压扁或以其他方式变形,或者可能已经放置了错误的物品,等等。如果没有检测到错误(1306),则物品从抓取中释放(1308),并且臂和末端执行器被移开以执行下一个拾取/放置任务。如果检测到错误(1306),则在1310处,物品被返回到开始位置,或者在一些实施例中返回到另一个暂存或缓冲区域,并且再次尝试拾取/放置操作。在一些实施例中,导致检测到错误的拾取/放置物品的重复尝试可以触发警报和/或其他动作来发起人类干预。
87.图14是图示了搬运非刚性包装中的软体产品的机器人系统的实施例的示意图。在所示的示例中,系统1400包括机器人臂1408和1410,机器人臂1408和1410被安装成在计算机控制下分别沿着轨道1404和1406移动。机器人臂1408和1410分别终止于吸力型末端执行器1412和1414。在各种实施例中,机器人臂1408和1410以及末端执行器1412和1414由机器人控制系统控制,机器人控制系统包括控制计算机,诸如图1和2的控制计算机122。
88.在图14中所示的示例中,机器人臂1408和1410以及末端执行器1412和1414用于将物品(诸如面包块)从轮式基座1402上的源托盘移动到轮式基座1416和1418上的目的地托盘。在各种实施例中,如所示的,人类和/或机器人可以将源托盘和轮基座1402定位到轨道1404和1406之间的起始位置中。轮式基座1402可以例如如所示的,在基座1402的远端处起始的箭头方向上前进通过由轨道1404和1406形成的通道。在各种实施例中,可以如下这样使基座1402前进:使用机器人臂1408和1410中的一个或两个;通过由一个或多个人类操作员、一个或多个固定或非固定机器人等手动推动;沿着轨道1404和1406伸展和/或在轨道1404和1406之间伸展的传送带或链型机构;并入到基座1402中的机器人控制的推进和/或传送机构,诸如计算机控制的机动轮和制动;等等。
89.当轮式基座1402沿着轨道1404和1406/在轨道1404和1406之间前进时,和/或当基座1402暂时处于轨道1404和1406之间的静止位置时,在各种实施例中,机器人系统使用机器人臂1408和1410,并且末端执行器1412和1414用于根据规划将诸如面包块的物品从轮式
基座1402上的源托盘移动到轮式基座1416和1418上的目的地托盘。例如,该规划可以基于指示哪种(哪些)类型的面包在基座1402和/或工作区域中的其他基座上的源托盘中可用的库存和/或传感器数据,并且进一步基于指示哪种面包或其他物品的混合物将被放置在目的地托盘中以供运送到哪个相应的最终运送位置(诸如零售店)的货单或其他数据来计算。
90.在所示的示例中,一旦基座1416和1418上的目的地托盘已经被填充,基座1416和1418分别远离轨道1404和1406向外移动,例如移动到要装载到运送车辆上的暂存和装载区域。
91.虽然在图14中示出了在单个基座1402上的单个源托盘集合,但是在各种实施例中,取决于正在执行的高级操作,一个或多个附加基座可以位于轨道1404和1406之间和/或附近的暂存区域中,每个附加基座具有堆叠在其上的零个或多个装满物品的托盘。类似地,在一些实施例中,多个目的地托盘集合——每个集合在对应的轮式基座上——可以与轨道1404或轨道1406相邻地暂存,并且每个集合上的最上面的托盘可以例如根据货单和相关联的履行规划在同时和/或依次被填充的过程中。
92.在各种实施例中,一旦源托盘被清空,该系统可以使用机器人臂1408和/或1410来将托盘移动到暂存区域和/或目的地托盘堆叠的顶部,从而创建要被填充并发送到最终目的地的托盘供应和/或暴露下一个源托盘,从该源托盘中可以拾取物品以履行订单。
93.虽然在图14中,单个机器人臂(1408,1410)设置在每个轨道(1404,1406)上,但是在一些实施例中,可以在每个轨道上提供两个或更多个机器人臂。在一些实施例中,单个轨道上的两个机器人臂可以用于拾取和移动空托盘。例如,在各种实施例中,每个机器人臂可以用于通过接合托盘的结构或通过吸力或抓取来机械地接合托盘的相对侧,并且两个臂可以可协作地操作以维持对空托盘的控制,同时将其移动到新的位置,诸如缓冲或暂存区域或目的地托盘堆叠的顶部。在一些实施例中,一个或多个机器人臂可以用于将装满的或部分装满的托盘从堆叠的顶部移动、例如移动到暂存区域,以暴露堆叠中较低的托盘,从而诸如添加附加物品,根据新的或修订的规划重新布置物品等。
94.分别安装在末端执行器1412和1414上的相机1420和1422和/或相机1424和1426在各种实施例中用于生成图像数据,以规划和执行如本文公开的拾取/放置操作。
95.在各种实施例中,本文公开的技术使得机器人系统能够搬运非刚性包装中的软体或以其他方式易碎的产品(诸如包装在塑料袋或外包装中的面包块),而不会损坏被搬运的物品。例如,在各种实施例中,可以在最少或没有人类干预的情况下将面包标识、选择并以机器人方式从接收自面包店或储藏区域接收的源托盘移动到目的地托盘,以供运送到对应的特定位置(诸如零售店)。在各种实施例中,例如,与纯人类和/或不全自动化的操作相比,本文公开的技术增加了用于软体包装中的面包或其他易碎物品的分发系统、设施和过程的吞吐量和效率。
96.尽管为了清楚理解的目的,已经对前述实施例进行了一些详细描述,但是本发明不限于所提供的细节。存在许多实现本发明的替代方式。所公开的实施例是说明性的而非限制性的。