CN112589791B - 具有基于壁的打包机制的机器人系统及其操作方法 - Google Patents
具有基于壁的打包机制的机器人系统及其操作方法 Download PDFInfo
- Publication number
- CN112589791B CN112589791B CN202011167199.9A CN202011167199A CN112589791B CN 112589791 B CN112589791 B CN 112589791B CN 202011167199 A CN202011167199 A CN 202011167199A CN 112589791 B CN112589791 B CN 112589791B
- Authority
- CN
- China
- Prior art keywords
- robotic system
- model
- container
- placement
- location
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1687—Assembly, peg and hole, palletising, straight line, weaving pattern movement
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J15/00—Gripping heads and other end effectors
- B25J15/06—Gripping heads and other end effectors with vacuum or magnetic holding means
- B25J15/0616—Gripping heads and other end effectors with vacuum or magnetic holding means with vacuum
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65B—MACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
- B65B35/00—Supplying, feeding, arranging or orientating articles to be packaged
- B65B35/30—Arranging and feeding articles in groups
- B65B35/50—Stacking one article, or group of articles, upon another before packaging
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G1/00—Storing articles, individually or in orderly arrangement, in warehouses or magazines
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G1/00—Storing articles, individually or in orderly arrangement, in warehouses or magazines
- B65G1/02—Storage devices
- B65G1/04—Storage devices mechanical
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G47/00—Article or material-handling devices associated with conveyors; Methods employing such devices
- B65G47/74—Feeding, transfer, or discharging devices of particular kinds or types
- B65G47/90—Devices for picking-up and depositing articles or materials
- B65G47/905—Control arrangements
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G47/00—Article or material-handling devices associated with conveyors; Methods employing such devices
- B65G47/74—Feeding, transfer, or discharging devices of particular kinds or types
- B65G47/90—Devices for picking-up and depositing articles or materials
- B65G47/91—Devices for picking-up and depositing articles or materials incorporating pneumatic, e.g. suction, grippers
- B65G47/917—Devices for picking-up and depositing articles or materials incorporating pneumatic, e.g. suction, grippers control arrangements
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G57/00—Stacking of articles
- B65G57/02—Stacking of articles by adding to the top of the stack
- B65G57/03—Stacking of articles by adding to the top of the stack from above
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G57/00—Stacking of articles
- B65G57/02—Stacking of articles by adding to the top of the stack
- B65G57/16—Stacking of articles of particular shape
- B65G57/20—Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical
- B65G57/22—Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical in layers each of predetermined arrangement
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G61/00—Use of pick-up or transfer devices or of manipulators for stacking or de-stacking articles not otherwise provided for
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G2203/00—Indexing code relating to control or detection of the articles or the load carriers during conveying
- B65G2203/04—Detection means
- B65G2203/041—Camera
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G2814/00—Indexing codes relating to loading or unloading articles or bulk materials
- B65G2814/03—Loading or unloading means
- B65G2814/0301—General arrangements
- B65G2814/0304—Stacking devices
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39101—Cooperation with one or more rotating workpiece holders, manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40006—Placing, palletize, un palletize, paper roll placing, box stacking
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40067—Stack irregular packages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Manufacturing & Machinery (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Artificial Intelligence (AREA)
- Geometry (AREA)
- Manipulator (AREA)
- Stacking Of Articles And Auxiliary Devices (AREA)
- Loading Or Unloading Of Vehicles (AREA)
- Image Analysis (AREA)
Abstract
公开了一种用于操作机器人系统以将物体放置到具有支撑壁的容器中的系统和方法。所述机器人系统可以导出用于将物体堆叠在彼此的顶部上的打包计划。所述机器人系统可以导出悬垂在一个或多个下方支撑物体之上的一个或多个物体的放置位置。所导出放置位置可以基于利用所述支撑壁中的一者或多者来固定所放置物体。
Description
本申请是中国申请CN202010900791.9的分案申请,该申请日期为2020年8月31日,发明名称为“具有基于壁的打包机制的机器人系统及其操作方法”。
相关申请的交叉引用
本申请要求于2019年11月19日申请的第62/931,161号的美国临时专利申请案的权益,所述临时专利申请案的内容以引用方式全部并入本文中。
技术领域
本技术总体上涉及机器人系统,并且更具体地涉及用于将物体打包在容器内的系统、过程和技术。
背景技术
随着性能的不断增强和成本的降低,许多机器人(例如,被配置为自动地/自主地执行物理动作的机器)现在广泛用于许多领域。例如,机器人可用于在制造和/组装、打包和/或包装、运输和/或装运等中执行多种任务(例如,跨空间操纵或搬运物体)。在执行任务时,机器人可复制人类动作,从而替代或减少执行危险或重复性任务原本所需的人类参与。
然而,尽管技术不断进步,但是机器人往往缺乏复制执行更错综复杂任务所需的人类敏感性和/或适应性所必需的复杂程度。例如,机器人通常在所执行动作中缺乏控制的粒度和灵活性,从而无法充分利用可用资源。另外,机器人通常无法解决由多种真实世界因素引起的偏差或不确定性。因此,仍然需要用于控制和管理机器人的多个方面以不管多种真实世界因素如何都完成任务的改进的技术和系统。
附图说明
图1是具有基于壁的打包机制的机器人系统可在其中操作的示例性环境的图示。
图2是示出根据本技术的一个或多个实施方案的机器人系统的框图。
图3是根据本技术的一个或多个实施方案的机器人系统的图示。
图4A至图4D是根据本技术的一个或多个实施方案的示例性物体容器的图示。
图5A至图5C是根据本技术的一个或多个实施方案的示例性端部执行器的图示。
图6是根据本技术的一个或多个实施方案的打包组成部分的示例性离散化模型的图示。
图7A是根据本技术的一个或多个实施方案的示例性打包计划的图示。
图7B是根据本技术的一个或多个实施方案的放置计划过程的图示。
图7C是根据本技术的一个或多个实施方案的放置规则的图示。
图8A和图8B是根据本技术的一个或多个实施方案的支撑计算的多方面的图示。
图9A至图9C是根据本技术的一个或多个实施方案的示例性运动计划计算的所示方面。
图10示出了根据本技术的一个或多个实施方案的示例性实时传感器数据。
图11是根据本技术的一个或多个实施方案的用于操作图1的机器人系统的第一示例性方法的流程图。
图12是根据本技术的一个或多个实施方案的用于操作图1的机器人系统的第二示例性方法的流程图。
具体实施方式
本文描述用于具有基于壁的打包机制的机器人系统的系统和方法。根据一些实施方案配置的机器人系统(例如,执行一个或多个指定任务的装置的集成系统)通过相对于容器壁打包物体(例如,包装、盒、箱等)提供增强控制、可用性和灵活性。例如,机器人系统可以将物体分层堆叠,其中在基础层上方的一个或多个物体(1)接触或倚靠一个或多个容器壁和/或(2)悬垂在最接近容器壁的一个或多个基础层物体之上(例如,横向突出超出所述一个或多个基础层物体的一个或多个外围边缘)。
机器人系统可以基于将多个包装组成部分离散化而相对于容器壁(例如,推车、笼、仓、盒等的竖直取向的壁或分隔物)打包物体。打包组成部分的一些示例可以包括物体(例如,已登记或预期的物体和/或无法辨识的物体)、被配置为接收物体的容器或打包平台,和/或机器人操纵器(例如,端部执行器、机器人臂、其一部分,或它们的组合)。机器人系统可以生成打包组成部分的离散化模型。
使用离散化模型,机器人系统可以导出打包计划,所述打包计划标识物体在容器中的放置位置。打包计划可以包括将物体堆叠在彼此的顶部上(例如,分层堆叠)的放置位置。机器人系统可以计算/估计物体之间和/或物体与容器壁之间的间隔距离、悬垂距离或部分、其他物体间测量值和/或其他物体到容器测量值。基于所述计算,机器人系统可以导出具有放置位置的打包计划,在所述放置位置中,所放置物体接触/倚靠容器壁和/或悬垂在一个或多个下方物体之上。在一些实施方案中,机器人系统可以导出并利用物体的质心(CoM)位置、旋转点、质量/重量、尺寸和/或物体的其他物理特性来导出打包计划。
在一些实施方案中,机器人系统可以导出与打包计划相对应的运动计划。每个运动计划可以对应于物体并且包括用于物体和/或机器人单元(例如,机器人臂和/或端部执行器)的运动路径或一组对应命令/设置。运动计划可以对应于机器人单元在其起始位置处接近物体、用端部执行器夹持物体、将物体提起并搬运到其放置位置以及在放置位置处释放/放置物体的操作。
机器人系统可以诸如通过将运动计划和/或对应的命令/设置中的一者或多者传达到目标机器人单元来实施打包计划。机器人系统可以通过在目标机器人单元处执行命令/设置来进一步实施打包计划。因此,机器人系统可以操作机器人单元以根据打包计划将物体从起始位置搬运到相应的放置位置。
机器人系统可以被配置为动态地调整打包计划,诸如考虑非预期条件(例如,容器异常)。例如,容器(例如,双壁推车和/或三壁笼)可以包括竖直取向的壁,所述竖直取向的壁可变形,弯曲,错位,部分闭合和/或在物理上与预期条件不同。此类非预期条件可能影响容器内的放置区域和/或进入放置区域的接近路径。机器人系统可以检测到此类非预期条件并动态地调整打包计划。如下面详细描述的,机器人系统可以使用离散化模型来确定轴对准边界框(AABB)、将AABB偏移和/或验证偏移AABB。另外,基于动态调整,机器人系统可以更新运动计划以考虑非预期条件。在一些实施方案中,机器人系统可以从调整后物体放置位置开始并逐渐地向后移动到起始位置以确定运动计划。机器人系统可以沿反向轨迹路径放置端部执行器的离散化模型以更新和/或验证运动计划。
在以下描述中,阐述众多具体细节以提供对当前公开技术的彻底理解。在其他实施方案中,此处所引入的技术可在没有这些具体细节的情况下实践。在其他情况下,不详细描述诸如具体函数或例程的公知特征,以便避免不必要地使本公开晦涩难懂。此说明中对“实施方案”或“一个实施方案”或类似用语的引用意指所描述的特定特征、结构、材料或特性包括在本公开的至少一个实施方案中。因此,本说明书中此类短语的出现不一定都指代同一实施方案。另一方面,此类引用也不一定相互排斥。此外,特定特征、结构、材料或特性可以任何合适的方式在一个或多个实施方案中加以组合。应当理解,图中所示的多种实施方案仅是说明性代表并且不一定按比例绘制。
出于简洁的目的,在以下描述中年未阐述描述公知且往往与机器人系统和子系统相关联并且可能不必要地使所公开技术的一些重要方面晦涩难懂的结构或过程的若干细节。此外,尽管以下公开内容阐述本技术的不同方面的若干实施方案,但若干其他实施方案可具有不同于此章节中所述的那些的配置或组成部分。因此,所公开的技术可具有带有附加元件或没有下文所述元件中的若干的其他实施方案。
下文所述的本公开的许多实施方案或方面可呈计算机或处理器可执行指令(包括由可编程计算机或处理器执行的例程)的形式。相关领域技术人员应当理解,所公开的技术可在下文所示和所述的那些之外的计算机或处理器系统上实践。本文所述的技术可在专门编程、配置或构造为执行下文所述的计算机可执行指令中的一者或多者的专用计算机或数据处理器中体现。因此,如本文一般所用的术语“计算机”和“处理器”指代任何数据处理器并且可以包括互联网用具和手持式装置(包括掌上计算机、可穿戴计算机、蜂窝或移动电话、多处理器系统、基于处理器的或可编程消费者电子器件、网络计算机、迷你计算机等)。由这些计算机和处理器处理的信息可在任何合适的显示介质(包括液晶显示器(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可包括用于将物体从笼车或货盘搬运到输送机或其他货盘上的去码垛单元、用于将物体从一个容器搬运到另一个的容器交换单元、用于包裹物体的包装单元、用于根据物体的一个或多个特性对它们进行分组的分类单元、用于根据物体的一个或多个特性以不同方式对物体进行操纵(例如,分类、分组和/或搬运)的拾件单元,或它们的组合。
机器人系统100可以包括和/或耦接到在关节处连接以用于运动(例如,旋转和/或平移移位)的物理或结构构件(例如,机器人操纵器臂)。结构构件和关节可形成被配置为操纵端部执行器(例如,夹持器)的动力链,所述端部执行器被配置为根据机器人系统100的用途/操作来执行一个或多个任务(例如,夹持、自旋、焊接等)。机器人系统100可以包括致动装置(例如,马达、致动器、线材、人工肌肉、电活性聚合物等),所述致动装置被配置为围绕对应关节或在对应关节处驱动或操纵(例如,移位和/或重新取向)结构构件。在一些实施方案中,机器人系统100可以包括被配置为到处运输对应单元/底架的运输马达。
机器人系统100可以包括被配置为获得用于实施任务(诸如操纵结构构件和/或运输机器人单元)的信息的传感器。传感器可以包括被配置为检测或测量机器人系统100的一个或多个物理特性(例如,其一个或多个结构构件/关节的状态、条件和/或位置)和/或周围环境的一个或多个物理特性的装置。传感器的一些示例可以包括加速度计、陀螺仪、力传感器、应变计、触觉传感器、扭矩传感器、位置编码器等。
例如,在一些实施方案中,传感器可以包括被配置为检测周围环境的一个或多个成像装置(例如,视觉和/或红外摄像头、2D和/或3D成像摄像头、距离测量装置,诸如激光雷达或雷达等)。成像装置可以生成所检测环境的代表,诸如数字图像和/或点云,所述代表可以经由机器/计算机视觉来处理(例如,用于自动检查、机器人导引或其他机器人应用)。如下面进一步详细描述的,机器人系统100可以处理数字图像和/或点云以标识目标物体112、起始位置114、任务位置116、目标物体112的姿势、关于起始位置114和/或姿势的置信量度,或它们的组合。
为了操纵目标物体112,机器人系统100可以捕获并分析指定区域(例如,诸如卡车内部或输送带上的拾取位置)的图像,以标识目标物体112和其起始位置114。类似地,机器人系统100可捕获并分析另一个指定区域(例如,用于将物体放置在输送机上的投放位置、用于将物体放置在容器内部的位置,或货盘上用于堆叠目的的位置)的图像,以标识任务位置116。例如,成像装置可以包括被配置为生成拾取区域的图像的一个或多个摄像头和/或被配置为生成任务区域(例如,投放区域)的图像的一个或多个摄像头。如下文所述,基于所捕获图像,机器人系统100可确定起始位置114、任务位置116、相关联姿势、打包/放置计划、搬运/打包顺序和/或其他处理结果。
在一些实施方案中,例如,传感器可以包括位置传感器(例如,位置编码器、电位计等),所述位置传感器被配置为检测结构构件(例如,机器人臂和/或端部执行器)和/或机器人系统100的对应关节的位置。机器人系统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可以包括用于每个这样的物体的登记数据254。登记数据254预期由机器人系统100操纵的物体的尺寸、形状(例如,潜在姿势的模板和/或用于识别呈不同姿势的物体的计算机生成的模型)、颜色方案、图像、标识信息(例如,条形码、快速响应(QR)码、标志等和/或其预期位置)、预期重量、其他物理/视觉特性,或它们的组合。在一些实施方案中,主数据252可以包括关于物体的操纵相关信息,诸如物体中的每一者上的质心(CoM)位置或其估计值、对应于一个或多个动作/操作的预期传感器测量值(例如,针对力、扭矩、压力和/或接触测量),或它们的组合。
通信装置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来在任务的执行期间跟踪结构构件和/或关节的位置和/或取向。
示例性物体搬运和打包
图3是根据本技术的一个或多个实施方案的图1的机器人系统100的图示。机器人系统100可以包括或可通信地耦接到机器人臂302,所述机器人臂包括端部执行器304(例如,夹持器)。机器人臂302可以是图1所示的机器人单元中的一者或其部分(例如,图1的搬运单元104的实例(instance))。例如,机器人臂302可以包括在工业应用(包括包装搬运应用)中采用的工业机器人系统。机器人臂302可沿或围绕多个轴铰接,诸如用于六轴工业机器人臂结构。
机器人臂302可以被配置为在图1的起始位置114与图1的任务位置116之间搬运目标物体112。如图3所示,起始位置114可以对应于输送机306(例如,图1的运输单元106的实例)上的位置(例如,终点/入口)。机器人臂302的任务位置116可以是放置平台308(例如,诸如推车或笼的容器)或其中的位置。例如,机器人臂302可以被配置为从输送机306拾取物体112并将它们放置在放置平台308中/上面以用于运输到另一个目的地/任务。
端部执行器304可以包括耦接到机器人臂302的远端的任何一个或多个组成部分。端部执行器304可以被配置为与一个或多个物体交互。在一些实施方案中,端部执行器304可以包括力-扭矩(F-T)传感器(未示出)、臂接口、夹持器系统和/或夹持器接口。出于说明性目的,端部执行器304被示出具有多排吸盘,但是应当理解,端部执行器304可以具有不同的配置。例如,端部执行器304可具有带集成抽吸通道的抽吸垫、钳式夹持装置或用于抓握物体的任何其他类型的夹持系统。
机器人系统100可以在利用机器人臂302执行搬运操作时使用图2的传感器216中的一者或多者。机器人系统100可以在起始位置114和/或任务位置116处或周围包括或耦接到一组传感器(例如,2D和/或3D传感器,诸如摄像头和/或深度传感器)。在一些实施方案中,机器人系统100可以包括或耦接在任务位置116上方并指向任务位置的俯视传感器310,和/或在任务位置116附近并横向地指向任务位置的侧视传感器312。机器人系统100可以类似地包括指向起始位置114的一个或多个源传感器314。传感器可以被配置为对多个对应位置进行成像和/或分析。例如,俯视传感器310可以生成和/或处理图像数据,所述图像数据描绘放置平台308和/或其上的物体的俯视图。另外,侧视传感器312可以生成和/或处理图像数据,所述图像数据描绘放置平台308和/或其上的物体的侧视图。
机器人系统100可以使用来自传感器216的图像数据来执行任务,诸如用于将物体从起始位置114搬运到任务位置116。因此,机器人系统100可以使用图像数据来导出并实施一个或多个打包计划和/或运动计划以执行任务。如下面进一步详细描述的,机器人系统100可以导出和/或动态地调整打包计划和对应的运动计划以将物体放置在放置平台308上或放置平台内。所述计划可以对应于将一个或多个物体放置(例如,堆叠)在其他物体的顶部上。机器人系统100可以导出和/或调整多种计划,使得堆叠的物体(例如,被放置在下部物体的顶部上的物体)被放置成使得物体的一个或多个外围部分横向延伸超出下部物体的一个或多个外围部分。在一些情况下,机器人系统100可以导出和/或调整所述计划,使得突出的堆叠的物体接触和/或倚靠放置平台308的竖直取向的壁或分隔物。因此,机器人系统100可以导出打包计划和运动计划,以有效地增大放置平台308内的放置区并使用竖直取向的壁或分隔物支撑其中的物体。
另外在下面详细描述,机器人系统100可以基于检测与放置平台308相关联的异常来动态地调整打包计划和/或运动计划。例如,当在机器人系统100的操作期间放置实际放置平台(例如,推车和/或笼)时,机器人系统100可以获得所述实际放置平台的实时图像。机器人系统100可以分析实时图像以检测放置平台中的异常,诸如由于部分打开、错位和/或竖直壁翘曲引起的放置区减小(例如,与预定或预期的空间相比)。基于实时检测到异常,(例如,在部署现场和/或紧接在实施/触发最初导出的计划之前)机器人系统100可以动态地更新计划。在一些实施方案中,机器人系统100可以测试和验证多种移位的放置位置。机器人系统100可以根据实时条件进一步测试与放置位置相对应的更新后运动计划。
机器人系统100可以类似地使用传感器216中的一者或多者来定位和跟踪机器人臂302、端部执行器304和/或目标物体112。在一些实施方案中,机器人系统100可以基于来自位置传感器的读数来跟踪位置(在图3中被示出为坐标集(x,y,z))。另外,机器人系统100可以基于所传达或所执行的命令/设置来计算和跟踪位置。机器人系统可以根据预定坐标系或网格来确定和跟踪位置。
示例性放置平台
图4A至图4D是根据本技术的一个或多个实施方案的示例性物体容器(例如,图3的放置平台308)的图示。图4A是示例性推车410的侧视图,并且图4B是推车410的俯视图。推车410可以是具有推车底座412和一对相对推车侧壁414的物体容器。例如,推车底座412可以具有带矩形形状的占位面积(footprint)(例如,从俯视图或仰视图看,周边形状或廓型)。推车侧壁414可附接到推车底座412的一对相对外围边缘/附接到其上方或与其成一体。推车底座412的其余外围边缘上方的空间可以保持开放或畅通。
图4C是示例性笼420的侧视图,并且图4D是笼420的俯视图。笼420可以是具有笼底座422和三个竖直取向的壁(例如,一对相对笼侧壁424和笼后壁426)的物体容器。例如,笼底座422可以具有带矩形形状的占位面积。笼侧壁424可附接到笼底座422的一对相对外围边缘/附接到其上方或与其成一体。笼后壁426可附接到笼底座422的其余外围边缘中的一者/附接到其上方或与其成一体。与笼后壁426相对的空间可以保持开放或畅通。
每个放置平台308可以包括预期放置区430,所述预期放置区可被所承载/所装载物体占用。换句话说,预期放置区430可代表对应放置平台308的预期或预定载货空间。一起参考图4A至图4D,用于推车410和笼420的预期放置区430可以延伸直到竖直取向的壁(例如,推车侧壁414、笼侧壁424和/或笼后壁426)和/或由其界定。因此,机器人系统100可以导出、实施和/或执行用于将物体放置在推车410和/或笼420内的计划,使得物体接触竖直取向的壁和/或由其支撑。放置区430可横向地延伸(例如,沿y轴)直到或经过推车底座412和/或笼底座422的开放/畅通边缘(例如,在所述边缘之前或与所述边缘共面/重合)。类似地,放置区430可以竖直地延伸(例如,沿z轴)直到竖直取向的壁的顶边缘或延伸到其上方。换句话说,在一些情况下,机器人系统100可以导出、实施和/或执行用于放置物体的计划,使得所放置物体的至少一部分在对应放置平台308的竖直取向的壁的顶部边缘上方。
示例性端部执行器
图5A至图5C是根据本技术的一个或多个实施方案的示例性端部执行器(例如,图3的端部执行器304)的图示。图5A和图5B分别是示例性夹持器总成502和机器人臂302的一部分的侧视图和俯视图。在一些实施方案中,夹持器总成502可以对应于基于真空的夹持器,所述基于真空的夹持器被配置为在夹持器总成502与物体之间形成真空,由此相对于夹持器总成502固定物体(例如,夹持物体)。
夹持器总成502可以包括结构构件512(例如,旋转接头、延伸臂等),所述结构构件将机器人臂302在结构上耦接到夹持器514。夹持器514可以包括被配置为操作夹持器接口516以相对于夹持器514接触并固定一个或多个目标物体的电路、马达和/或其他机械组成部分。在一些实施方案中,夹持接口516可以包括由夹持器514中的致动器和/或其他机械组成部分控制的吸盘。夹持器514可以被配置为在由吸盘和所接触表面中的每一者界定的空间内形成并控制真空,由此固定并夹持目标物体。
夹持器总成502可以包括其他组成部分。在一些实施方案中,夹持器总成502可以包括校准板518,所述校准板被配置为提供用于确定夹持器总成502和/或其一个或多个部分的位置的功能性。校准板518可以用作所获得图像中的参考和/或提供用于校准过程的详细位置信息。校准板518可以附接到夹持器514的外围边缘或与其成一体,并且远离所述外围边缘延伸。在一些实施方案中,校准板518可以远离夹持器514的顶表面竖直地延伸。校准板518还可以朝向或远离结构构件512和/或夹持器514的中心部分横向地延伸。
夹持器总成502可以具有由机器人系统100预定或已知的尺寸。例如,夹持器总成502可以具有总成高度522、底座长度524和/或底座宽度526。总成高度522可对应于结构构件的最外部(例如,顶部部分或连接到机器人臂302的一部分)与夹持接口516的与最外部相对的一部分之间的距离(例如,沿z轴的距离)。底座长度524和底座宽度526可以对应于沿正交方向(例如,x轴和y轴)测量的夹持器514的横向尺寸。所述尺寸可以对应于与接合或夹持目标物体相关联的夹持器总成502的预定姿势/布置。
在一些实施方案中,夹持器总成502的一个或多个尺寸可以在夹持物体时改变。图5C是根据本技术的一个或多个实施方案的在夹持并提起目标物体112之后夹持器总成502的说明性侧视图。对于基于真空的夹持器,所延伸的接口高度532可以对应于吸盘处于其初始状态和未接合状态时的高度。在接触吸盘、在吸盘内形成并保持真空时,吸盘的形状可能变形和/或压缩。因此,当夹持器514接合并夹持目标物体112时,夹持接口516可以对应于接合的接口高度534,所述接合的接口高度小于延伸的接口高度532。因此,当接合/夹持目标物体112时,总成高度522可以减小。机器人系统100可以确定或标识高度的变化(例如,接合的接口高度534),以准确地确定和跟踪夹持器514、目标物体112和/或其部分的位置。在一些实施方案中,机器人系统100可以具有预定的并存储在图2的存储装置204中的接合的接口高度534。在一些实施方案中,机器人系统100可以基于在夹持目标物体112并将夹持器514提起预定高度之后捕获和分析来自图3的侧视传感器312的图像数据来实时地(例如,在部署/操作期间)确定接合的接口高度534。
示例性离散化模型
图6是根据本技术的一个或多个实施方案的打包组成部分的示例性离散化模型600的图示。离散化模型600可以包括打包组成部分(诸如被操纵/打包物体(例如,已登记物体)、机器人单元或其部分和/或物体容器(例如,图3的放置平台308))的像素化代表。例如,离散化模型600可以根据离散化单元602(即,对应于预定尺寸的一个离散区域/空间)描述打包组成部分的物理大小/形状。换句话说,离散化单元602可以对应于单位像素,诸如具有与离散化长度相对应的一个或多个尺寸的多边形(例如,正方形或立方体)。
离散化单元602的尺寸可以包括由系统操作员、系统设计者、预定输入/设置或它们的组合预设的长度。在一些实施方案中,可以在机器人系统100的操作期间动态地调整离散化单元602的尺寸。在一些实施方案中,离散化单元602(例如,离散化单元)的大小可以根据物体的尺寸和/或装载平台的尺寸而改变。离散化单元602(像素)的大小还可进行调整(经由例如预设规则/方程和/或操作员选择),以平衡所需资源(例如,计算时间、所需存储器等)与打包准确性。当大小减小时,基于所得增加的数据,计算时间和打包准确性可能会增加。因此,使用可调离散化单元602的打包任务(例如,目标包裹、端部执行器总成和打包平台)的离散化提高了码垛包裹的灵活性。机器人系统100可根据独特情境、样式和/或环境来控制计算资源/时间与打包准确性之间的平衡。
机器人系统100可以经由已知的或预定的单元描述或代表图3的机器人臂302、图3的端部执行器304、图1的目标物体112、放置平台308(例如,图4A的推车410和/或图4B的笼420)、已经放置的物体和/或其部分。因此,机器人系统100可将连续的真实世界空间/区域变换成计算机可读数字信息。此外,离散化数据可以降低描述由打包组成部分占用的空间以及比较多个包裹放置位置方面的计算复杂性。例如,包裹尺寸可以对应于整数的而不是真实世界的小数的离散化单元,由此降低了相关数学计算的复杂性。
机器人系统100可以利用由离散化机制(例如,过程、电路、函数和/或例程)生成的离散化模型600。在一些情况下,离散化模型600可以由外部来源(例如,制造商、分销商、客户等)提供。另外,机器人系统100可以基于代表打包组成部分的分割目标数据(例如,图像数据、形状模板和/或其他数字化物理代表)来生成离散化模型600。机器人系统100可以诸如使用边缘检测机制(例如,索贝尔滤波器)来标识分割目标数据中的实际特征606(例如,边缘和/或角落)。基于所标识实际特征606(使用实线示出),机器人系统100可以确定分割目标数据中的参考点/边缘604(例如,角落、中心部分、中央部分、视觉标记和/或定位装置)。机器人系统100可以将参考位置604用作起点,并相应地使用与离散化单元602相对应的预定尺寸和/或方向(使用虚线示出)来划分分割目标数据。所得段可以是所成像组成部分的离散化/像素化单位。因此,机器人系统100(经由例如图2的处理器202)可将真实世界物体(例如,包裹、机器人臂、夹持器、其一个或多个部分和/或与任务相关联的其他物体)的连续表面/边缘映射到离散对应物(例如,单位长度和/或单位面积)中。
在一些情况下,实际特征606可能与离散化单元602不重合。换句话说,打包组成部分的尺寸可以具有带离散化单元的小数/分数组成部分的尺寸(例如1.2个单元或3/4个单元)。机器人系统100可以根据情境基于向上或向下取整来生成离散化模型600。例如,离散化模型600可以是或包括模型物体(例如,图1的目标物体112)、图3的放置平台308、图3的机器人臂302和/或图3的端部执行器304。对于进入物体容器中的组成部分(例如,机器人臂302、端部执行器304和/或物体),机器人系统100可以通过将尺寸向上取整为离散化单元602的数量来生成对应的离散化模型600。换句话说,机器人系统100可以生成离散化模型600,其中模型边界608(使用虚线示出)超出进入图4的推车410和/或图4的笼420的模型化组成部分的实际特征606。对于物体容器(例如,放置平台308,诸如推车410和/或笼420),机器人系统100可以通过将尺寸向下取整为离散化单元602的数量来生成对应的离散化模型600。换句话说,机器人系统100可以在模型化组成部分的实际特征606之前或之间生成离散化模型600。
机器人系统100可以生成离散化模型600,其中模型边界608超出实际特征606(例如,与实际特征分开)间隔距离610。例如,间隔距离610可以对应于所添加的缓冲器,使得机器人系统100模型化或考虑比实际组成部分更大的空间,诸如用于端部执行器304的空间。因此,机器人系统100可以确保模型化组成部分在操作期间(例如,在移动所述组成部分时)不与其他物体/结构接触或碰撞。因此,机器人系统100可以使用根据间隔距离610生成的离散化模型600来降低碰撞率。另外,在一些实施方案中,机器人系统100可以生成具有矩形横截面形状的离散化模型600,其中模型边界608与模型化组成部分的最外部重合或基于模型化组成部分的最外部。因此,机器人系统100可以提供不太复杂或更简单的处理(即,与考虑所有边缘/角落/特征相比),以测试模型化组成部分的位置/运动。
在一些实施方案中,离散化模型600可以是预定的或离线生成的(例如,独立于对应操作/实现方式并且在其之前)并且被存储在主数据252中以在机器人系统100的部署或操作期间进行访问。在其他实施方案中,可以基于获得代表起始位置114和/或任务位置116的图像数据来实时地(例如,在操作期间)生成离散化模型600。
离散化模型600可以代表2D和/或3D的打包组成部分的形状、尺寸等。例如,离散化模型600可以包括针对每个实例或类型的已登记或成像物体的物体模型(例如,物体占位面积模型612和/或物体轮廓模型614)。另外,离散化模型600可以包括针对每个实例或类型的放置平台308的容器模型(例如,容器占位面积模型622和/或容器轮廓模型624)。容器模型622和624可以代表根据离散化单元602的放置表面(例如,具有如图4A至图4D所示的横向外壳的物体容器的内底表面)。容器模型622和624可以基于已知的或标准大小的物体容器。此外,离散化模型600可以包括夹持器占位面积模型632和/或夹持器轮廓模型634,所述持器占位面积模型和/或夹持器轮廓模型代表用于执行与将物体(例如,目标物体112)放置在放置平台308上面/放置平台中相关联的任务的机器人单元的部分。例如,夹持器模型632和/或634可以代表端部执行器304、机器人臂302和/或其部分。
占位面积模型可以对应于沿横向平面(例如,x-y平面)的模型化组成部分的周边。轮廓模型可以对应于沿竖直平面(例如,x-z/y-z平面)的模型化组成部分的周边。在一些实施方案中,离散化模型600可以包括3D模型。
示例性放置计算
图7A是根据本技术的一个或多个实施方案的示例性打包计划700的图示。机器人系统100可以使用图6的离散化模型600来导出打包计划700,所述打包计划包括针对图3的放置平台308(例如,容器)内或上面的一组物体的所导出放置位置。打包计划700可以代表2D和/或3D的放置位置和/或所放置物体。在一些实施方案中,打包计划700可以是3D模型。打包计划700可以对应于俯视图702和/或侧视图704,所述俯视图和/或侧视图代表被放置在图4A的预期放置区430内的物体的横向和/或竖直占用率。
对于图7A所示的示例,目标物体可以包括被指定打包到推车410的实例中的第一类型、第二类型和第三类型的物体。因此,机器人系统100可以使用分别与第一物体类型、第二物体类型和第三物体类型相对应的第一物体模型706、第二物体模型708和第三物体模型710以及容器模型(例如,容器占位面积模型622和/或容器轮廓模型624)来导出打包计划700。机器人系统100可以基于导出、测试和评估被叠加在容器模型上的物体模型的多个位置来导出打包计划700。根据以下详细描述的规则和/或条件,机器人系统100可以导出将第一类型和第二类型的物体放置在下层712(例如,与图4A的推车底座412接触的最下层)并将第三类型的物体放置在堆叠层722中的打包计划700。
机器人系统100可以导出用于将目标物体放置/打包在指定/指派的放置平台308中的打包计划700。机器人系统100可以基于将目标物体的物体模型(例如,图6的物体占位面积模型612和/或图6的物体轮廓模型614的实例)叠加在指定的放置平台308的容器模型(例如,图6的容器占位面积模型622和/或图6的容器轮廓模型624)上来导出打包计划700。机器人系统100可以根据一组预定规则和/或条件来导出和/或测试对应的放置位置。机器人系统100可以迭代地导出目标物体的放置位置以导出打包计划700。机器人系统100还可以基于将资源支出(例如,操纵次数、对应持续时间等)最小化、将所打包物体的数量最大化和/或将误差/失败(例如,丢件、碰撞等)最小化来导出打包计划700和/或一组对应的运动计划。
此外,机器人系统100可以导出用于将物体堆叠在彼此的顶部上(诸如分层堆叠(例如,下层712和堆叠层722))的打包计划700。另外,机器人系统100可以导出打包计划700,其中物体接触和/或倚靠容器的竖直取向的壁(例如,图4A的推车侧壁414和/或图4C的笼侧壁424)。例如,下层712可以包括最接近支撑壁725(例如,容器的竖直取向结构,其限定预期放置区430或在所述预期放置区中,所述预期放置区可以用于/指定用于接触和/或支撑物体)并且分开物体-壁间隔726(例如,支撑壁725与对应的直接相邻物体的最接近的外围边缘/点之间的距离和/或像素数量)的下部最外侧物体714。当没有其他物体占用对应的一对物体之间(诸如沿横向方向)的空间时,物体/壁可以直接相邻。上部堆叠层722可以包括堆叠的物体724,所述堆叠的物体至少部分地放置在下部最外侧物体714上并由其支撑。堆叠的物体724的外围部分可以横向地突出超过下部最外侧物体714的外围边缘。堆叠的物体724的外围边缘/表面(例如,竖直取向的表面/边缘和/或顶部角落/边缘)可以更接近或接触支撑壁725。机器人系统100可以基于物体-壁间隔726来导出具有用于堆叠的物体724的放置位置(例如,悬垂/突出经过下部最外侧物体714和/或接触支撑壁725)的打包计划700。在一些实施方案中,当最接近的物体的边缘/表面不与支撑壁725平行时,机器人系统100可以将物体-壁间隔726计算为对应距离的平均值。机器人系统100还可以根据目标物体的目标参考位置728(诸如CoM位置和/或中心部分)来导出打包计划700。下面描述关于导出的细节。
在一些实施方案中,机器人系统100可以针对被指定用于放置在容器中的一组物体导出并利用轴对准边界框(AABB)730。换句话说,AABB 730可以是根据所导出放置计划包围物体的最外部和/或与其重合的指定平面形状(例如,矩形)。对于图7A所示的示例,AABB730可以是根据与打包计划700中的物体的最外点重合的一组预定轴(例如,x、y和z轴)对准的一组矩形。AABB 730可以代表打包计划700的整体大小(例如,包裹大小)。机器人系统100可以导出并使用AABB730来调整打包计划700,并考虑到非预期的真实世界条件(例如,部分打开的容器和/或翘曲的容器壁)。如下文详细描述的,机器人系统100可以导出并使用AABB730来对物体的放置或位置(例如,打包计划700)进行更改或移位。在一些实施方案中,使用AABB 730,机器人系统100可以将打包计划700的整个物体堆叠视为单个物体。可以根据如上所述的离散化单元来导出AABB 730。
图7B是根据本技术的一个或多个实施方案的放置计划过程的图示。图1的机器人系统100(经由例如图2的一个或多个处理器202)可为一组可用包裹742导出图7A的打包计划700。可用包裹742可对应于需要被打包或目标是要打包以便出口装运和/或存储的物体。例如,可用包裹742可对应于经由入口装运接收的传入物体和/或已排序用于出口装运的所存储物体。在一些实施方案中,机器人系统100可使用装运清单、订购列表等来实时地(诸如直接响应于接收到清单、列表(即,在从接收到清单、列表的阈值持续时间内)等)标识可用包裹742。因此,机器人系统100可使用所标识可用包裹742来实时地导出打包计划700。这样,代替利用包裹的假设数量/设置/组合来导出无论实时条件如何都要应用的计划的离线打包模拟器,机器人系统100可使用实时条件、可用性和/或需求来导出打包计划700。在一些实施方案中,机器人系统100可使用位于接收、存储和/或发送物体的位置(诸如装运枢纽和/或仓库)处的装置(例如,处理器202中的一者或多者)。在其他实施方案中,机器人系统100可以使用预期条件来离线实施打包导出。
在导出打包计划时,机器人系统100可将可用包裹742分组和/或定序。机器人系统100可使用一组有序可用包裹742来导出打包计划700。机器人系统100可确定并评估可用包裹742的独特放置位置/组合,以导出打包计划700。换句话说,机器人系统100可确定一组潜在放置组合744并根据一组预定要求、条件、重量、成本、后续影响或它们的组合来对所述潜在放置组合进行评估(例如,评分)。基于评估,机器人系统100可选择放置组合以导出打包计划700。
在至少一个实施方案中,机器人系统100可使用迭代地评估定序包裹的放置的算法来导出打包计划700。如图7B所示,例如,机器人系统100可通过确定可用包裹742中的第一包裹的初始放置来开始导出。因此,机器人系统100可以将对应的离散化物体模型(例如,如图7A所示的第一物体模型706、第二物体模型708和/或第三物体模型710)重叠在离散化平台模型(图6的容器模型622和/或624)上方的初始位置(例如,角落、中间位置和/或另一个预设位置)处。机器人系统100可以基于从可用包裹742移除所放置包裹(例如,第一包裹)来跟踪其余包裹752。
基于初始放置,机器人系统100可确定可用包裹742中的第二包裹的一组可能放置。机器人系统100可根据预定规则、样式或它们的组合来确定所述一组可能的放置。例如,机器人系统100可根据相对于一个或多个先前放置的包裹(例如,相对于一个或多个先前放置的包裹)的位置样式来确定放置位置。另外,机器人系统100可以基于包裹中的一者或多者之间所需的最小/最大间隔距离或其缺乏来确定放置位置。此外,机器人系统100可以基于根据预定量(诸如90度)旋转包裹(即,对应的离散化物体模型)来确定放置位置。在一些实施方案中,机器人系统100可根据预定阈值和/或样式来限制放置可能性。此外,机器人系统100可以相应地更新其余包裹752。
机器人系统100可重复上述过程并且迭代地处理可用包裹742,直到达到停止条件为止。停止条件的一些示例可代表已放置所有包裹(即,其余包裹752为空)、无法改进放置(例如,评估分数与前一层级/迭代相同)、无法在离散化平台模型之上再放置更多包裹,或它们的组合。
在一些实施方案中,机器人系统100可使用搜索树754来跟踪可能的放置和对应的潜在放置组合744。搜索树754的根可对应于初始放置,并且每个级别或层级可以包括可用包裹742中后续包裹的潜在放置。不同的层级可连接在一起,以形成与一组包裹的独特放置组合相对应的分支。
对于每个包裹的潜在放置,机器人系统100可标识并消除(例如,由图7B中的‘X’代表)冗余占位面积。例如,在搜索树754的每个层级处,机器人系统100可比较(叠加)潜在放置位置/组合的所得占位面积。基于所述比较,机器人系统100可消除所得占位面积的复制品。在一些实施方案中,机器人系统100可进一步比较所得占位面积的转置、旋转和/或镜像版本,以消除相关复制品。例如,机器人系统100可旋转一个占位面积达±90度和/或跨一条或多条镜像线(例如,跨相对角落延伸的对角线、沿x和/或y方向延伸的一条或多条平分线,或它们的组合)转置所述占位面积,并将其与其他占位面积进行比较。
另外,对于每个包裹的潜在放置,机器人系统100可标识并消除违反一个或多个要求/约束的放置。要求/约束的一个示例可以基于碰撞概率。机器人系统100可根据预先存在的占位面积、包裹的一个或多个尺寸、搬运机器人的位置、先前事件或历史或它们的组合来计算每个放置位置的接近路径和对应碰撞概率。机器人系统100可消除碰撞概率超过预定阈值的放置。要求/约束的另一个示例可以是用于堆叠包裹(即,直接放置在一个或多个支撑包裹上/上方)的被支撑重量。对于位于放置位置下方的包裹中的一者或多者,机器人系统100可以基于所放置包裹的重量来计算支撑重量(即,包裹或其正上方的部分的组合重量)。机器人系统100可消除支撑重量违反放置位置下方的包裹中的一者或多者的易碎性要求(例如,最大可支撑重量)(例如,超过易碎性要求或在与其相距阈值范围以内)的放置。
在一些实施方案中,机器人系统100可使用优先级队列756(例如,堆结构等)来跟踪和/或评估放置组合744。优先级队列756可根据一系列偏好对放置组合744进行排序。机器人系统100可根据一个或多个预定标准对放置组合744中的每一者进行评估或评分。所述标准可以包括与已经放置的物品相关联的一种或多种成本和/或与当前放置如何影响未来放置或可能性相关联的一个或多个启发式分数。
所述标准的一个示例可以包括占位面积密度的最大化。机器人系统100可计算包裹分组的外周边762的占位面积密度。在一些实施方案中,外周边762可以基于包裹分组的暴露/外周边边缘来确定。机器人系统100可通过延伸两个或更多个边缘并找到相交点和/或通过绘制连接占位面积的一个或多个角落的线来进一步包围周围/相关区域。机器人系统100可将占位面积密度计算为实际占用区域764(例如,图6的离散化单元602或与阴影区域相对应的像素的数量)与空白区域766(例如,与被包围/相关区域相对应的离散化单元602的数量)之间的比。机器人系统100可以被配置为(例如,通过指派更高/更低分数)偏好将空白区域766最小化的放置计划。
图7C是根据本技术的一个或多个实施方案的示例性放置规则的图示。机器人系统100可以使用放置规则来导出物体在指定容器内的放置位置。例如,机器人系统100可以丢弃不满足一个或多个放置规则的潜在放置位置或取消其资格。
所述放置规则的一些实例可为用于将物体放置在彼此的顶部上,诸如用于将一个或多个包裹层堆叠/放置在一个或多个其他包裹层上方。机器人系统100可使用放置规则来改进/确保堆叠的物体的稳定性并防止任何物体在容器的移动期间滑落和/或倾翻。出于说明性目的,图7C示出在一个或多个支撑包裹774正上方并由其支撑(例如,直接接触所述一个或多个支撑包裹)的顶部包裹772的多个情境。
机器人系统100可以使用水平偏移规则776来导出3D放置位置(例如,图7A的3D打包计划700)。水平偏移规则776可以包括用于控制所堆叠物品之间的竖直边缘/表面的水平偏移的规章、要求或它们的组合。例如,水平偏移规则776可以基于重叠要求778、悬垂要求780或它们的组合。重叠要求778可以包括所堆叠包裹之间的重叠的最小量(例如,长度、宽度和/或表面积的百分比或比)。在一些实施方案中,重叠要求778可要求顶部包裹772的最小量的水平尺寸/表面积与支撑包裹774的水平尺寸/表面积重叠和/或接触。悬垂要求780可以包括最大量(例如,长度、宽度和/或表面积的百分比或比)的悬垂(诸如顶部包裹772的水平地延伸经过支撑包裹774的周边边缘/表面的一部分)。
在一些实施方案中,水平偏移规则776可以基于重量、尺寸和/或质心(CoM)位置782。例如,重叠要求778和/或悬垂要求780可以基于CoM位置782,诸如用于相对于支撑包裹774的顶部CoM位置与水平边缘/表面之间的距离来评估顶部包裹772和支撑包裹774的CoM位置782之间的距离。另外,重叠要求778和/或悬垂要求780可对应于相对于悬垂距离(例如,沿顶部包裹772的延伸经过支撑包裹774的一个或多个周边边缘的一部分的水平方向的量度)来评估顶部包裹772和支撑包裹774的CoM位置782之间的距离。在一些实施方案中,水平偏移规则776可以基于要求顶部包裹772和支撑包裹774的CoM位置782在CoM支撑阈值内的CoM偏移要求784。CoM支撑阈值可以包括预定距离、CoM位置782之间的偏移距离相对于水平尺寸的比的阈值极限、悬垂距离、重叠距离或它们的组合。
机器人系统100还可使用支撑间隔规则786来导出3D放置位置。支撑间隔规则786可以包括用于控制支撑包裹774之间的横向间隔距离788的规章、要求或它们的组合。横向间隔距离788可对应于直接相邻支撑包裹774的外围表面/边缘之间的水平距离。在一些实施方案中,支撑间隔规则786可进一步基于顶部包裹772与支撑包裹774之间的重叠表面的位置和/或量。例如,支撑间隔规则786可要求横向间隔距离788比任何悬垂距离大预定百分比。另外,支撑间隔规则786可要求横向间隔距离788延伸到顶部包裹772的CoM位置782下方。在一些实施方案中,当顶部包裹772的放置位置满足支撑间隔规则786时,机器人系统100可以将顶部包裹772的在支撑包裹774之间的部分(例如,在横向间隔距离788上方的部分)视为被底层中的物体支撑和/或接触。
机器人系统100还可使用竖直偏移规则790来导出3D放置位置。竖直偏移规则790可以包括用于控制支撑包裹774的竖直位置之间的支撑高度差792的规章、要求或它们的组合。支撑高度差792可对应于对应的支撑包裹774的顶部部分(诸如将可能接触放置在对应的支撑包裹774上方的顶部包裹772的部分)之间的竖直距离。在一些实施方案中,竖直偏移规则790可要求支撑高度差792遵循用于将一个或多个包裹堆叠在支撑包裹774顶部上的预定阈值要求。
在一些实施方案中,竖直偏移规则790可以基于层高度而有所不同。例如,当顶部包裹772(例如,被支撑包裹)是最顶层的一部分时,支撑高度差792的极限可大于下层的极限。在一些实施方案中,竖直偏移规则790可以基于与指定容器的竖直取向的壁/分隔物的接近度而有所不同。例如,当具有较低高度的支撑包裹774最接近竖直壁(例如,在支撑包裹774与壁之间没有其他物体)时,由于顶部包裹772可被竖直壁支撑,因此对支撑高度差792的极限可以更大,即使支撑失败和/或顶部包裹772移位也是如此。
机器人系统100可以导出/估计与顶部包裹772的取向(例如,在横向/水平参考平面下方倾斜)相关联的枢轴位置793。枢轴位置793可以是较高的支撑包裹的顶部部分(即,最高的支撑位置)。机器人系统100可以将枢轴位置793导出为支撑包裹的最接近较短的支撑包裹的外围边缘和/或最高部分。机器人系统100还可以基于CoM位置782、顶部包裹772的横向尺寸和/或顶部包裹772的重量来导出枢轴位置793。类似地,机器人系统100可以估计顶部包裹772围绕枢轴位置793的旋转。机器人系统100可以根据物体参考位置728(例如,CoM位置782)、顶部包裹772的横向尺寸和/或顶部包裹772的重量来估计旋转。
机器人系统100可根据放置规则来生成打包计划(例如,多个2D放置计划/位置的3D组合)。例如,机器人系统100可根据高度要求(例如,用于使物体分组的高度保持在阈值距离内)生成2D放置计划(例如,沿横向层/平面的放置位置)。随后,机器人系统100可以基于使2D放置计划竖直地重叠(堆叠)来生成堆叠计划。
机器人系统100还可以根据用于将物体倚靠支撑壁725的放置规则来生成打包计划。在一些实施方案中,放置规则可以包括壁支撑规则794、倾斜支撑规则796和/或多重悬垂规则798。壁支撑规则794可以包括用于控制物体抵靠/接触竖直取向的容器结构的放置的规章、要求或它们的组合。在一个或多个实施方案中,当建议的/分析的放置位置满足壁支撑规则794时,可以首先分析壁支撑规则794,并且可以分析或检查其他规则(例如,倾斜支撑规则796和/或多重悬垂规则798)。
壁支撑规则794可以基于有效支撑795,所述有效支撑对应于顶部包裹772的一部分(例如,其底表面的一部分),当顶部包裹772放置在支撑包裹774上时,所述部分将与支撑包裹774接触和/或被其支撑。换句话说,有效支撑795可以对应于支撑包裹774与顶部包裹772之间的重叠部分和/或顶部包裹772的从其悬垂部分中排除/保留的一部分。在一些实施方案中,壁支撑规则794可以需要最小量(例如,最小百分比阈值,诸如51%或更大)的有效支撑795。换句话说,壁支撑规则794可以要求悬垂距离比有效支撑795小规定量。在一个或多个实施方案中,壁支撑规则794可以要求最少数量的角落(例如,盒型结构中的8个角落中的4至6个角落)位于支撑包裹774上方/被支撑包裹774支撑。
壁支撑规则794还可以基于在支撑壁725与支撑包裹774之间测量的物体-壁间隔726、顶部包裹772的一个或多个尺寸和/或顶部包裹772的CoM位置782。例如,壁支撑规则794可以要求CoM位置782在有效支撑795的外围边缘上方或内部,使得CoM位置782在支撑包裹774上方和/或由支撑包裹774支撑。另外,壁支撑规则794可以要求物体-壁间隔726小于有效支撑795的横向尺寸(例如,顶部包裹772的其余/重叠部分)。壁支撑规则794可以考虑与水平偏移规则776类似但是基于与顶部包裹772的支撑壁725的接触和/或由支撑壁725提供的支撑而降低支撑要求的方面。换句话说,机器人系统100可以导出、分析和/或验证违反水平偏移规则776但是满足壁支撑规则794的潜在放置位置。例如,壁支撑规则794可以导出并验证潜在放置位置,所述潜在放置位置沿横向方向比水平偏移规则776所允许的进一步悬垂。由于被放置在放置位置处的物体将与支撑壁725接触并从容器中导出结构支撑/稳定性,因此可以将物体放置在原本会违反水平偏移规则776的位置处。
倾斜支撑规则796可以包括用于根据顶部包裹772相对于顶部包裹772与支撑壁725之间的接触的倾斜或姿势变化来控制物体放置的规章、要求或它们的组合。在一些实施方案中,当顶部包裹772与支撑壁725相邻而不接触(例如,沿顶部包裹772的最外边缘与支撑壁725之间的横向方向具有非零间隔距离)时,可以应用/测试倾斜支撑规则796。倾斜支撑规则796可用于考虑在运输期间可能发生的顶部包裹772的移位和/或旋转以及对容器内其他物体的由此产生的影响。
在一些实施方案中,倾斜支撑规则796可以对与顶部包裹772相关联的倾斜角797施加极限(例如,最大阈值)。倾斜角797可以是在顶部包裹772的处于预期姿势中或候选放置位置处以及处于旋转姿势中的参考表面(例如,顶表面)之间的角度。机器人系统100可以基于使顶部包裹772的对应离散化模型围绕枢轴位置793(例如,支撑包裹774的最接近支撑壁725的外围边缘)旋转来计算倾斜角797。倾斜角797可以对应于顶部包裹772的与支撑壁725接触的外围部分(例如,最接近支撑壁725的顶部部分)。因此,倾斜支撑规则796可用于验证将导致顶部包裹772接触支撑壁725和/或被支撑壁725支撑而不会导致顶部包裹772过度旋转的放置位置(即,将导致支撑包裹774的位置移位和/或导致顶部包裹772倾倒/落入物体-壁间隔726的量)。机器人系统100可以使用倾斜支撑规则796来导出、分析和/或验证可能违反其他规则(诸如水平偏移规则776和/或壁支撑规则794)的潜在放置位置。换句话说,基于倾斜支撑规则796,机器人系统100可以验证其中由于即使在运输期间物体移位的情况下也将保持支撑/固定物体因此物体将比水平偏移规则776所允许的进一步延伸/悬垂的位置。
在一个或多个实施方案中,倾斜支撑规则796可以进一步基于顶部包裹772的重量和/或顶部包裹772相对于枢轴位置793的CoM位置782。例如,机器人系统100可以基于顶部包裹772的重量来计算顶部包裹772的物体移位可能性(例如,在搬运期间横向移位的可能性)。另外,机器人系统100可以基于顶部包裹772的重量和相对于枢轴位置793的CoM位置782来计算顶部包裹772的物体旋转可能性。机器人系统100可以根据一个或多个预定方程/过程来计算多种可能性,所述方程/过程考虑了物体在搬运期间遇到的力、所放置物体和/或容器之间的摩擦力和/或其他相关联的物理参数。机器人系统100可以包括多种可能性的一个或多个合格阈值。换句话说,当所计算移位/旋转可能性低于考虑或不考虑倾斜角797时的合格阈值时,机器人系统100可以推断目标放置位置满足倾斜支撑规则796。
多重悬垂规则798可以包括用于控制多个/连续悬垂物体的放置的规章、要求或它们的组合。换句话说,多重悬垂规则798可用于评估在支撑包裹774上方并被支撑包裹支撑的中间物体799上方并由中间物体799支撑的候选放置位置。当候选放置位置在中间物体799上方(所述中间物体悬垂于一个或多个下方物体之上)而中间物体799的外围部分横向地延伸经过一个或多个下方物体的外围部分时,机器人系统100可以考虑多重悬垂规则798。在其他情况下(例如,当中间物体799的外围部分横向地延伸直到但不超出下方物体的外围部分时),机器人系统100可以诸如通过将中间物体799视为支撑物体来考虑相对于中间物体799的候选放置位置。
在处理多重悬垂规则798时,机器人系统100可以导出顶部包裹772相对于中间悬垂物体799下方的一个或多个包裹的有效支撑795。例如,机器人系统100可以基于顶部包裹772与最底部包裹和/或距支撑壁725横向最远的包裹之间的重叠来导出有效支撑795。换句话说,机器人系统100可以将最底部物体或距支撑壁725横向最远的物体指定为包括顶部包裹772的上方物体的支撑包裹774。在一些实施方案中,作为对多重悬垂规则798的处理的一部分,机器人系统100可以使用用于顶部包裹772的所得有效支撑795来测试水平偏移量规则776和/或壁支撑规则794。当顶部包裹772的调整后有效支撑795满足如上所述的水平偏移规则776和/或壁支撑规则794时,机器人系统100可以验证候选放置位置并确定满足多重悬垂规则798。
替代地或另外,机器人系统100可以导出具有针对所指定支撑包裹774(例如,最底部物体和/或候选放置位置下方并且距支撑壁725横向最远的物体)上方的物体的组合参考位置734(包括顶部包裹772的候选放置位置)的组合物体估计732。机器人系统100可以将组合物体估计732导出为指定平面形状(例如,矩形),所述指定平面形状包围组合物体(例如,在所指定支撑包裹774上方和/或由其支撑的物体)的最外部分和/或与所述最外部分重合。换句话说,机器人系统100可以导出类似于AABB 730但针对组合物体的组合物体估计732。机器人系统100可以基于组合物体的参考位置(例如,CoM位置)来导出组合参考位置734。例如,机器人系统100可以基于(例如,经由空间平均化)将CoM位置782与对应的包裹重量组合为CoM位置782的参数权重来导出组合参考位置734。因此,机器人系统100可以估计并处理用于组合物体组的CoM位置。
为了测试是否符合多重悬垂规则798,机器人系统100可以处理/测试组合物体估计732和/或组合参考位置734,而非顶部包裹772和/或对应的CoM位置782。例如,当对应的组合物体估计732和/或组合参考位置734满足水平偏移规则776、壁支撑规则794、倾斜支撑规则796和/或其他任何放置规则时,机器人系统100可以验证候选放置位置。
在一些实施方案中,机器人系统100可以将物体-壁间隔726与代表对支撑顶部包裹772的极限的支撑阈值距离进行比较。支撑阈值距离可以基于顶部包裹772的一个或多个物理方面(例如,包裹高度)。例如,支撑阈值距离可以用于确定物体-壁间隔726是否足够大到顶部包裹772横向移位并落入在支撑壁725与支撑包裹774之间。因此,水平偏移规则776、壁支撑规则794、倾斜支撑规则796和/或其他放置规则可以要求物体-壁间隔726低于支撑阈值距离(例如,顶部包裹的尺寸的分数)。在一或多个实施方案中,机器人系统100可以基于物体-壁间隔726与支撑阈值距离之间的关系来调整对有效支撑795的阈值要求。例如,当物体-壁间隔726大于支撑阈值距离时,机器人系统100可以提高对有效支撑795的阈值要求(例如,从51%至60%之间提高至75%或更大)。
在一些实施方案中,机器人系统100可以考虑并验证其中顶部包裹772在支撑壁725的顶部边缘上方延伸的候选放置位置。机器人系统100可以基于例如以下各项来验证此类放置位置:(1)支撑壁725与顶部包裹772之间的重叠量,(2)顶部包裹772的部分在顶部边缘上方突出的突出量,(3)(1)与(2)之间的比,(4)顶部包裹772的CoM位置782(例如,CoM相对于壁边缘的竖直位置),(5)顶部包裹772与支撑壁725之间的横向距离,(6)枢轴位置,(7)所放置物体的估计的或预定的摩擦系数,(8)物体的重量,(9)与物体移位/倾倒相关联的最大加速度/力阈值物体和/或其他类似的物理参数。
机器人系统100可以根据一个或多个预定顺序和/或交互样式来处理多种放置规则。例如,机器人系统100可以根据与放置规则相关联的预定顺序和/或流程(例如,“如果-则”类型的处理)来测试候选放置位置。另外,机器人系统100可以处理与每个放置规则相对应的分数,对所得分数加总,并将总分数与放置分数阈值进行比较以验证候选放置位置。
示例性3D计算
图8A和图8B是根据本技术的一个或多个实施方案的支撑计算的多方面的图示。如上所述,图1的机器人系统100可以基于导出和测试图1的目标物体112的候选放置位置来导出图7A的打包计划700。候选放置位置可以代表图7B的搜索树754中的节点。图8A和图8B可以示出用于计算物体(例如,堆叠物体)的3D放置的示例性机制,所述机制可以至少部分地离线(使用例如预期的或已知的参数)和/或至少部分地实时(基于例如实时传感器数据)执行。
在一些实施方案中,机器人系统100可以将目标物体的离散化模型(例如,图6的物体占位面积模型612)迭代地移动跨过指定放置容器的离散化模型(例如,图6的容器占位面积模型622)以生成候选位置。例如,机器人系统100可以通过根据离散化平台模型的预定初始位置(例如,角落)处的一个或多个取向放置对应的离散化物体模型来生成候选位置801的初始实例。对于候选位置801的下一实例,机器人系统100可以根据预定方向/样式将离散化物体模型移动预定距离(例如,一个或多个单位像素)。
当候选位置801与在所计划位置处的一个或多个物体或现有物体/结构(诸如用于实时放置计算)重叠时,机器人系统100可以计算和评估由已经放置的物体提供的支撑(例如,图7C有效支撑795)的量度。为了计算和评估支撑的量度,机器人系统100可以确定和跟踪放置区域的高度/等高线。例如,机器人系统100可以根据所处理物体(例如,具有最终确定的或已验证的放置位置的物体)的已知的/预期的高度来更新每单位面积(例如,图6的离散化单元602)的高度量度802。为了实时处理,机器人系统100可以使用来自图2的指向图1的任务位置116的成像装置222中的一者或多者的深度测量值(例如,点云值)。由于地面和/或平台表面的竖直位置是已知的(例如,推车/笼底座高出设施地表面的高度),因此机器人系统100可以使用深度量度来计算平台、所放置物体或它们的组合的一个或多个已暴露顶表面的高度/等高线。
机器人系统100可以在迭代放置导出期间更新离散化平台模型以便包括高度量度802。机器人系统100可以根据离散化平台模型中的离散化像素中的每一者来确定高度量度802。例如,机器人系统100可以将高度量度802确定为容器底座和/或所放置/所处理物体的表面部分在对应的单位像素内的最大高度。
对于与已经放置的物体中的一者或多者重叠的候选位置801中的每一者,机器人系统100可以基于高度量度802来评估放置可能性。在一些实施方案中,机器人系统100可以基于标识重叠在候选位置801中的每一者中的高度量度802的最大值来评估放置可能性。机器人系统100还可以标识位于候选位置801中的每一者中的其他高度量度802,其中高度量度802在相对于高度量度802的最高量度的差异阈值的极限内。合格单元/像素可以代表可以为堆叠的物体提供支撑使得堆叠的物体基本上平放/水平搁置(即,平行于容器底座的放置表面)的位置。
如图8A所示,对于候选位置801中的第一候选位置(例如,容器占位面积模型622的左上角),最高的高度量度可以是0.3(即,300毫米(mm)高)。对于预定为0.02(代表例如20mm)的差异阈值,机器人系统100可以将顶部四个离散化单元/像素标识为满足差异阈值。机器人系统100可以使用标识的/合格的单元/像素来评估/代表支撑程度。
图8B示出了支撑计算的另一实例。图8B示出了候选位置801中的一者,其中容器占位面积模型622(使用较粗实心轮廓线示出)叠加在候选位置801的左上角。机器人系统100可以计算/利用多个支撑参数804,所述多个支撑参数是用于评估候选位置801的参数。例如,支撑参数804可以包括离散化尺寸806、重叠面积808、高度差阈值810、支撑阈值812、最大高度814、高度下限816、合格计数818、一组支撑区域轮廓线820、支撑区域大小822、支撑比824、CoM位置782或它们的组合。
离散化尺寸806可以根据图6的离散化单元602描述图1的目标物体112的物理尺寸(例如,长度、宽度、高度、圆周等)。例如,离散化尺寸806可以包括形成离散化物体模型612/614的外围边缘的离散化单元602的数量。重叠面积808可以描述由目标物体112占用的面积(例如,沿水平面的占位面积大小),所述面积可以类似地根据离散化单元602来代表。换句话说,重叠面积808可以对应于离散化物体模型内的离散化单元602的数量。对于图8B所示的示例,目标物体112可以具有六个像素乘以七个像素的离散化尺寸806,所述离散化尺寸对应于42个像素的重叠面积808。
高度差阈值810和支撑阈值812可以对应于用于处理和/或验证候选位置801的极限。可以由操作员和/或次序预定和/或调整的高度差阈值810可以代表与用于接触和/或支撑放置在顶部的包裹的另一个参考高度(例如,与由离散化物体模型重叠的区域中的高度量度802的最高实例相对应的最大高度814)的允许偏差。换句话说,高度差阈值810可以用于限定可以接触和/或支撑放置在其上的包裹的表面高度的范围。这样,相对于最大高度814,下限高度816可以对应于可以为堆叠的包裹提供支撑的重叠面积808内的高度的下限。对于图8B所示的示例,高度差阈值810可以是0.02。当最大高度814为0.2时,高度下限816可以为0.18。因此,在将目标物体112放置在候选位置801处时,机器人系统100可以估计高度大于0.18的表面/像素将会接触目标物体112和/或为目标物体112提供支撑。
因此,在一个或多个实施方案中,机器人系统100可以根据高度差阈值810对重叠面积808内的离散化单元602进行分类。例如,机器人系统100可以将高度满足高度差阈值810(即,值大于或等于下限高度816)的离散化单元602分类为支撑位置828(例如,离散化单元602的分组,其代表能够在堆叠在其上的物体的表面(诸如在图4B中经由阴影像素代表))。机器人系统100可以将其他离散化单元602分类为不合格位置830(例如,高度低于高度下限816的像素)。
支撑阈值812可以代表用于基于支撑位置828的充分性来评估候选位置801的极限。例如,支撑阈值812可以用于评估与支撑位置828相关联的量、比、面积、位置或它们的组合。在一些实施方案中,支撑阈值812可以用于确定候选位置801的合格计数818(例如,支撑位置828的数量)是否足以支撑目标物体112。
在一个或多个实施方案中,支撑阈值812可以用于评估与支撑位置828相关联的被支撑区域(例如,离散化单元602,所述离散化单元可以为堆叠在其上的物体提供支撑,如可以由高度阈值确定的)。例如,机器人系统100可以基于在不合格位置830上或周围延伸以连接支撑位置828的最外实例/周边实例的角落的延伸边缘和/或确定线来确定支撑区域轮廓线820。因此,支撑区域轮廓线820可以排除不合格位置830。因此,支撑区域轮廓线820可以基于支撑位置828的周边实例来限定被支撑区域的周边。由于支撑区域轮廓线820可以延伸跨过和/或包括不合格位置830,因此支撑区域大小822(例如,被支撑区域内的离散化单元602的数量)可以大于合格计数818。这样,支撑区域大小822有效地代表在其中提供支撑的最外边缘/角落之间的间隔。因为较宽支撑是优选的(例如,其中支撑区域轮廓线820的部分大于物体的重叠面积808以减少悬垂和/或提高稳定性),所以支撑阈值812可以对应于被支撑区域中的离散化单元的最小数量602(例如,用于评估支撑区域轮廓线820),由此有效地评估在其中提供支撑的最外边缘/角落之间的间隔。
在一些实施方案中,支撑阈值812可以用于评估支撑比824,所述支撑比可以基于将合格计数818和/或支撑区域大小822与重叠面积808进行比较来计算。例如,支撑比824可以包括在合格计数818与重叠面积808之间的用于代表水平稳定性、被支撑重量浓度或它们的组合的比。另外,支撑比824可以包括支撑区域大小822与重叠面积808之间的用于代表目标物体112下方的支撑边缘/角落之间的相对宽度的比。
此外,机器人系统100还可以基于目标物体112的CoM位置782来评估候选位置801。在一些实施方案中,机器人系统100可以从图2的主数据252访问目标物体112的CoM位置782和/或基于夹持和/或提起目标物体112来动态地估计CoM位置782。一旦被访问/估计,机器人系统100就可以将CoM位置782与支撑区域轮廓线820进行比较。机器人系统100可以要求候选位置801在支撑区域轮廓线820内包括CoM位置782,并且消除不满足这种要求的候选位置801/取消其资格。在一个或多个实施方案中,机器人系统100可以基于CoM位置782与支撑区域轮廓线820之间的间隔距离(例如,沿x和/或y轴)来计算和评估放置分数。
机器人系统100可以使用支撑参数804来评估约束/要求。例如,机器人系统100可以消除不满足支撑阈值812、CoM位置阈值(例如,用于将CoM位置782包括在支撑区域轮廓线820内的要求)和/或其他堆叠规则的候选位置/取消其资格。另外,机器人系统100可以使用支撑参数804来根据预定权重和/或方程来计算候选位置801(例如,满足约束的位置)的放置分数。如下面详细描述的,机器人系统100可以使用所计算的放置分数来根据预定偏好(例如,如由权重/方程反映的)对候选位置801进行排名。
在一些实施方案中,机器人系统100可以确定图3的端部执行器304是否可以被定位成放置目标物体112。例如,机器人系统100可以根据所导出候选位置801将离散化端部执行器(例如,图6的夹持器占位面积模型632和/或图6的夹持器轮廓模型634)在图1的任务位置116处重叠在离散化平台模型(例如,容器占位面积模型622和/或容器轮廓模型624)上方。当离散化端部执行器模型在图7C的支撑壁725或对应的离散化部分之间(例如,不重叠)时,机器人系统100可以验证候选位置801。
作为说明性示例,机器人系统100可以对于候选位置801中的一者或多者(例如,每一者)验证端部执行器304的一组可用夹持配置(例如,在中心部分上方,与外围边缘对准,相对于物体旋转1至359度等)。对于每一种夹持配置,机器人系统100可以根据夹持配置调整离散化端部执行器模型,并且将调整后模型叠加在离散化平台模型上方。使用叠加的模型,机器人系统100可以计算端部执行器304在目标物体112的放置位置处(即,目标物体112搁置在候选位置801中的放置表面上)的深度值。可以将候选位置801中的目标物体112的顶表面的一个或多个深度值计算为根据离散化平台模型的放置表面的深度值、被放置或被计划放置在容器底板与候选位置801之间的一个或多个物体的高度和/或目标物体112的高度之和。可以将端部执行器的一个或多个对应深度值计算为候选位置801处的目标物体的顶表面的所计算深度值和与离散化端部执行器模型相对应的一个或多个深度值之和。
对于每一种夹持配置,机器人系统100可以将离散化端部执行器模型的深度值与候选位置801中的目标物体112周围的深度值(例如,其他物体和/或支撑壁725的高度)进行比较。当离散化平台和/或其上的物体的深度值指示离散化端部执行器模型的2D网格将会与容器的部分(例如,支撑壁725)或堆叠在其中的物体碰撞时,机器人系统100可以拒绝所述夹持配置。当深度值相同或在离散化平台模型与离散化端部执行器模型之间的阈值范围内时,机器人系统100可检测到可能的碰撞。当深度值指示离散化端部执行器低于离散化平台模型的对应/重叠部分时,机器人系统100也可检测到可能的碰撞。类似地,当代表端部执行器和机器人臂的附接部分的2D网格接触或延伸超出离散化平台模型的边界时,机器人系统100可以确定潜在碰撞。
机器人系统100可以接受或验证通过碰撞分析的夹持配置。换句话说,机器人系统100可以验证不与任何潜在碰撞相对应的其余夹持配置。机器人系统100可以基于验证夹持配置来进一步验证对应的候选位置801。因此,机器人系统100可以在导出目标物体112的放置时考虑端部执行器304。当实时更新放置计划以针对非预期条件(例如,支撑壁725的非预期位置和/或形状)进行调整时,机器人系统100还可以使用上述过程来考虑端部执行器304。
示例性运动计划
图9A至图9C是根据本技术的一个或多个实施方案的示例性运动计划计算的所示方面。图9A和图9B是示出用于放置图1的目标物体112的示例性方法的轮廓视图。图9A和图9B各自示出了用于将目标物体112在图8A的对应候选位置801处放置在容器中的一个或多个先前物体508(例如,已经放置或被计划用于较早放置的物体)上方的接近路径901。
图1的机器人系统100可以基于接近增量903导出接近路径901,所述接近增量被示出为F-1至F-5的虚线框。接近增量903可以代表与目标物体112、图3的机器人臂302(或其一部分)、图3的端部执行器304或它们的组合在3D空间中沿对应的接近路径901的顺序位置相对应的采样增量。在一些实施方案中,接近增量903可以匹配图6中用于模型的离散化单元602的一个或多个尺寸。接近路径901可以包括与直线段/方向相对应的路径段904。路径段904可以包括用于将目标物体112放置在图8A的对应候选位置801处的最终段906。在一些实施方案中,最终段906可以包括竖直(例如,向下)方向或移动。在其他实施方案中,最终段906可以包括在竖直向下接近增量之后进入候选位置801的成角度向下轨迹,诸如以将物体放置在悬垂物下方和/或横向地延伸到悬垂物中。
为了导出接近路径901,机器人系统100可以标识在将目标物体112放置在候选位置801处时可能潜在地成为目标物体112、机器人臂302和/或端部执行器304的障碍物的先前物体902和/或支撑壁725中的任一者。在一个或多个实施方案中,机器人系统100可以将一个或多个潜在障碍物910标识为在在起始位置114上方的位置与对应的候选位置801之间延伸的水平线(例如,沿x-y平面的直线)和/或2D平面上方重叠的先前物体902的一个或多个实例。机器人系统100还可以诸如基于导出围绕水平线导出的通道912(如图9C所示)平行于水平线并与水平线重叠并且具有基于目标物体112的一个或多个尺寸(例如,宽度、长度和/或高度)的宽度来将一个或多个潜在障碍物910标识为与通道912重叠的先前物体902的一个或多个实例。如图9A和图9B所示,起始位置114可以在候选位置801的右侧。类似地,机器人系统100还可以将一个或多个潜在障碍物910标识为容器的支撑壁725。
在一些实施方案中,机器人系统100可以基于上述深度量度来验证潜在障碍物910。例如,机器人系统100可以验证/标识顶表面深度量度中的一者或多者大于或等于候选位置801的那些顶表面深度量度的潜在障碍物910。机器人系统100可以从潜在障碍物910中消除顶表面深度量度小于候选位置801的那些顶表面深度量度的先前物体902。在一个或多个实施方案中,机器人系统100可以基于与候选位置801的高度和/或潜在障碍物910的高度相关联的歧义来标识/消除潜在障碍物910。
在一些实施方案中,机器人系统100可以相反次序(诸如从候选位置801开始并在起始位置114处结束)导出接近路径901。因此,机器人系统100可以首先(例如,在其他段之前)导出最终段906以避开潜在障碍物910。例如,机器人系统100可以根据物体和端部执行器(例如,根据图5C的接合的接口高度534的夹持器模型和物体模型的组合)的尺寸确定一组通道912。在一些实施方案中,这组通道可以包括与目标物体的高度和/或宽度相对应的一个或多个横向延伸通道。这组通道还可以包括与目标物体的长度和/或宽度相对应的一个或多个竖直延伸通道。
机器人系统100首先可以导出从候选位置801向上延伸的竖直延伸通道。机器人系统100可以评估竖直延伸通道是否与任何先前物体902和/或支撑壁725重叠/接触。机器人系统100可以基于检测到重叠/接触来取消候选位置801的资格和/或评估横向移动。当竖直延伸通道不与任何潜在障碍物910(例如,先前物体902和/或支撑壁725)重叠/接触时,机器人系统100可以导出从竖直延伸通道到起始位置114上方的位置的横向延伸通道。机器人系统100可以预定最小高度(例如,最小/最大投放高度和/或容器壁高度)导出横向延伸通道。
机器人系统100可以类似地评估横向延伸通道是否与任何潜在障碍物910重叠/接触。机器人系统100可以基于对潜在障碍物的检测来迭代地增大横向延伸通道的高度(例如,增大一个或多个接近增量903)。机器人系统100因此可以增大的高度评估横向通道,直到确定了畅通接近通道和/或达到最大评估高度为止。当在没有畅通通道的情况下达到最大评估高度时,机器人系统100可以忽略候选位置801。否则,机器人系统100可以验证横向延伸通道。
机器人系统100可以根据已验证的竖直通道(例如,对应于最终段906)和已验证的横向通道(例如,对应于路径段904)导出接近路径901。在一些实施方案中,机器人系统100可以类似地针对接近路径901评估对角线延伸通道(例如,以一定角度向上延伸跨过的通道)和/或多个通道段(例如,迭代地上升然后移动跨过以遵循阶梯样式)。
作为说明性示例,机器人系统100可以继续增大横向延伸通道的高度,直到底表面/通道边缘在潜在障碍物910上方和/或避开最接近的潜在障碍物达间隙阈值914(例如,为了避免目标物体112与潜在障碍物910之间的接触或碰撞,要求目标物体112在潜在障碍物910的最高点上方达最小竖直间隔)。当通道满足间隙阈值914时,机器人系统100可以沿水平方向(例如,朝向起始位置114)将对应的接近增量调整预定距离。因此,机器人系统100可以基于候选位置801和接近路径901来导出最终段906和/或后续路径段904。
一旦被导出,机器人系统100就可以使用接近路径901来评估对应的候选位置801。在一些实施方案中,机器人系统100可以根据接近路径901来计算放置分数。例如,机器人系统100可以根据对最终段/竖直段的较短长度/距离的偏好(例如,根据与预定放置偏好相对应的一个或多个权重)来计算放置分数。在一个或多个实施方案中,机器人系统100可以包括与用于消除候选位置801或取消其资格的接近路径901(例如,对于最终段/竖直段906)相关联的约束,诸如最大极限。
在一些实施方案中,机器人系统100可以进一步根据其他碰撞/障碍物相关参数来评估对应的候选位置801。例如,机器人系统100可以根据候选位置360与先前物体902中的一者或多者之间的水平间隔916来评估候选位置801。水平间隔916中的每一者可以是沿水平方向(例如,x-y平面)的介于对应的候选位置360与先前物体902的相邻实例之间的距离(例如,最短距离)。类似于上面对接近路径901的描述,机器人系统100可以基于水平间隔916计算候选位置360的放置分数。另外,诸如当水平间隔916未达到最小要求时,机器人系统100可以基于水平间隔916消除候选位置360或取消其资格。由于最终段906对于物体放置而言通常是最困难的,因此从最终段906开始验证接近路径901减少了用于验证接近路径901的处理时间。
非预期条件的示例性调整
图10示出了根据本技术的一个或多个实施方案的示例性实时传感器数据(例如,传感器输出1000)。图1的机器人系统100可以经由对应的传感器获得传感器输出1000。例如,传感器输出1000可以包括来自图3的俯视传感器310的俯视图图像1052和/或来自图3的侧视传感器312的侧视图图像1054。俯视图图像1052和/或侧视图图像1054可以描绘图1的任务位置116处的容器(例如,图4A的推车410和/或图4C的笼420)和/或容器中的物体。
图1的机器人系统100可以针对与容器相关联的非预期特征1002来分析传感器输出1000。例如,机器人系统100可以基于检测到实际特征606(经由例如边缘检测机制,诸如索贝尔滤波器)并将它们与容器的预定的/预期的特征(例如,边缘)进行比较来分析传感器输出1000。当传感器输出1000中描绘的实际特征606针对预定错误条件偏离容器的预期特征(例如,由对应模板代表)和/或模板样式时,机器人系统100可以检测到非预期特征1002。非预期特征1002的一些示例可以对应于图7C的支撑壁725的错误条件,诸如部分打开的推车壁(经由左壁示出)和/或翘曲壁(经由右壁示出)。
非预期特征1002可以对应于偏离预期放置表面的放置表面。例如,部分打开的推车壁和/或翘曲壁可暴露容器底表面的缩小部分。这样,基于预期条件导出的图7A的打包计划700对于具有非预期特征1002的实际容器可能不适用(例如,在不进行调整的情况下可能不被纳入)。另外,非预期特征1002可能对与打包计划700相关联的运动计划(例如,图9A的接近路径901)呈现非预期障碍物/阻塞。
因此,响应于检测到非预期特征1002,机器人系统100可以动态地调整打包计划700以考虑非预期特征1002。换句话说,机器人系统100可以动态地(例如,在打包/装载操作期间)生成或更新打包计划700,以便尽管有非预期特征1002但仍将所计划物体放置在容器中或根据非预期特征1002将所计划物体放置在容器中。在动态地调整打包计划700时,机器人系统100可以使用传感器输出1000来动态地生成包括或代表非预期特征1002的一个或多个实际容器模型。例如,机器人系统100可以基于俯视图图像1052来动态地生成调整后占位面积模型1022和/或基于侧视图图像1054来动态地生成调整后轮廓模型1024。机器人系统100可以基于根据图6的离散化单元602和/或图9A的接近增量903对传感器输出1000进行像素化和/或离散化来生成调整后模型。例如,机器人系统100可以基于与深度、颜色、形状和/或其他参数相关联的预定样式来标识与支撑壁725(例如,其一个或多个内部顶部边缘)和/或容器底座相对应的检测到的边缘。机器人系统100可以选择所标识边缘的一个或多个预定实例作为起始/参考边缘(例如,模型边界608的一部分)。机器人系统100可以使用选定边缘并开始在支撑壁725之间为像素化过程划分区域/空间。机器人系统100可以对区域/空间进行像素化而不超过或延伸经过与支撑壁725和/或相关联的位置/高度相对应的边缘。因此,机器人系统100可以确定模型边界608的其余部分。因此,机器人系统100可以动态地生成代表可以在其中存储物体的调整后放置区1026的调整后模型。
如上所述,机器人系统100可以动态地确定可能与图4A的预期放置区430不同的调整后放置区1026。当检测到非预期特征1002时,机器人系统100可以将调整后放置区1026与预期放置区430和/或打包计划700进行比较,以将物体放置在容器中。例如,机器人系统100可以将容器模型和/或打包计划700叠加在调整后模型上方。因此,机器人系统100可以确定预期放置区430是否与调整后放置区1026不同和/或打包计划700是否延伸经过调整后放置区1026。
当预期放置区430不同于调整后放置区1026时和/或当打包计划700或其一部分延伸超出调整后放置区1026时,机器人系统100可以发起包裹重新定位。机器人系统100可以基于在调整后放置区1026内移动打包计划700来实施包裹重新定位。例如,机器人系统100可以首先将图7A的AABB 730与调整后放置区1026的预定角落/边缘对准,并评估AABB 730是否包含在调整后放置区1026内。当AABB 730的初始对准未包含在调整后放置区1026的边界内时,机器人系统100可以根据预定样式将AABB 730在调整后放置区1026内迭代地移位,并评估AABB 730是否包含在调整后放置区1026内。因此,机器人系统100可以将打包计划700内的所有物体的放置位置作为组/单元进行调整。
当AABB 730的放置纳入调整后放置区1026内时,机器人系统100可以验证打包计划700的调整后位置。在一些实施方案中,机器人系统100可以基于评估图9A的接近路径901对于在打包计划700的移位后或调整后实例中的一个或多个物体而言是否与检测到的容器边缘重叠来验证打包计划700的调整后位置。例如,机器人系统100可以更新第一物体、第一层、AABB 730的外围位置上的物体和/或其他物体的接近路径901以考虑所述调整放置位置。移位后接近路径901可以被叠加在传感器输出1000上方并与其进行比较,以确定移位后接近路径901是否与容器壁和/或先前物体重叠/碰撞。当所评估的接近路径针对非预期特征而避开图9A的潜在障碍物910时,机器人系统100可以根据移位后位置来验证并实施打包计划700。因此,机器人系统100可以根据非预期特征1002来实施打包计划700,诸如无需重新导出打包计划700和/或接近路径901。当机器人系统100未能确定其中所有物体都包含在调整后放置区1026内的AABB 730的替代位置时,机器人系统100可以重新导出打包计划700和/或发起/实施容器的替换。下面描述关于针对非预期特征1002的动态调整的细节。
图11是根据本技术的一个或多个实施方案的用于操作图1的机器人系统100的第一示例性方法1100的流程图。方法1100可以用于导出图7A的打包计划700以将物体(例如,包裹、箱和/或盒)放置到容器(例如,图4A的推车410和/或图4C的笼420)中。方法1100可以基于利用图2的处理器202中的一个或多个执行存储在图2的存储装置204中的一个或多个存储装置上的指令来实施。处理器202可以根据打包计划700(诸如通过将图1的目标物体112从图1的起始位置114搬运到图1的任务位置116处的容器)控制图3的机器人臂302和/或图3的端部执行器304。例如,处理器202可以控制机器人单元以沿图9A的接近路径901操纵组成部分/物体并将它们放置在容器中的对应放置位置处。
在框1102处,机器人系统100可以标识被指定用于放置在任务位置116处的容器内的一组物体(例如,将被确定为图7B的堆叠的物体724、图7C的顶部包裹772、图7C的支撑包裹774、图7C的中间物体799等的物体)。例如,机器人系统100可标识可用于打包、在入站装运中、到达指定位置、位于源处、被指定用于放置和/或列在订单/请求/清单中的物体(例如,图7B的这组可用包裹742)。
另外,在框1102处,机器人系统100可以标识可用于接收所标识物体的容器。例如,机器人系统100可以标识推车410和/或笼420,所述推车410和/或笼420具有空白或部分填充状态和/或可供使用(例如,当前未使用或未被阻塞)。另外,机器人系统100可以诸如从队列中标识变得可用的容器。机器人系统100可以进一步确定所标识容器的特性/性状(例如,类别、尺寸、标识符等)。机器人系统100可以与另一种系统(例如,运输机器人系统)对接,访问来自图2的主数据252的信息和/或(例如经由预定位置处的传感器)从容器获得实时信息以标识容器和/或其特性。
在框1104处,机器人系统100可以获得(例如,通过实时生成和/或从主数据252访问)一个或多个离散化模型。例如,机器人系统100可以获得代表所标识物体的离散化模型,诸如图7A的物体模型706至710、图6的对应的占位面积模型612和/或图6的对应轮廓模型614。另外,机器人系统100可以获得代表所标识容器的离散化模型,诸如图6的容器占位面积模型622和/或图6的容器轮廓模型624。
在一些实施方案中,机器人系统100可以基于根据图6的离散化单元602(例如,具有设置尺寸的像素)对物体/容器的物理尺寸或图像进行像素化或划分来实时地(例如,诸如在接收到订单之后和/或在开始打包操作之前或离线地)生成离散化模型。离散化单元602的尺寸可以由制造商、订购客户和/或操作员预定或动态地设置。例如,离散化单元602可以为1毫米(mm)或1/16英寸(in)或更大(例如,5mm或20mm)。在一些实施方案中,离散化单元602可以基于物体和/或容器中的一者或多者的尺寸或大小(例如,百分比或分数)。
在一些实施方案中,机器人系统100可访问存储在存储装置204和/或另一装置(例如,经由图2的通信装置206访问的存储装置、数据库、用于控制运输机器人的系统和/或包裹供应者的服务器)中的离散化模型。机器人系统100可访问代表所标识物体和/或所标识容器的预定离散化模型。例如,机器人系统100可通过在主数据252(例如,预定表或查找表)中搜索可用物体及其对应模型来访问与所标识物体相对应的离散化物体模型。类似地,机器人系统100可以访问代表任务位置116(诸如可用物体将被放置在其中的所标识推车或笼)的离散化容器模型。
在框1106处,机器人系统100可确定物体分组(例如,所标识物体的子组)。机器人系统100可根据所标识物体的一个或多个特性中的相似性和/或样式来确定物体分组。在一些实施方案中,机器人系统100可以根据预定分组条件/要求(诸如物体优先级(例如,如由一个或多个客户所指定)、易碎性评级(例如,物体可支撑的最大重量)、重量、尺寸(例如,高度)、类型或它们的组合)来确定物体分组。在将物体分组时,机器人系统100可在主数据252中搜索匹配分组条件/要求的所标识物体的多种特性。
在框1108处,机器人系统100可以导出所标识物体和/或物体分组的处理次序(例如,考虑/导出放置位置的顺序)。在一些实施方案中,机器人系统100可根据一个或多个定序条件/要求来导出处理次序。例如,机器人系统100可根据分组中的每一者内的物体数量优先考虑物体分组的处理,诸如以便在放置计划中更早地处理具有更多数量的物体的分组。在一些实施方案中,定序条件可与分组条件重叠,诸如针对重量范围、易碎性评级等。例如,机器人系统100可优先考虑处理更重和/或更不易碎的物体以便更早地处理和/或放置在下层中。
在一些实施方案中,机器人系统100可根据组合水平面积来优先考虑放置计划。机器人系统100可使用主数据252中指定的信息来计算(例如,经由例如将对应宽度和长度相乘)或访问分组中的物体的顶表面的表面积。在计算组合水平面积时,机器人系统100可将在阈值范围内具有相同类型和/或高度的物体的表面积相加。在一些实施方案中,机器人系统100可优先考虑将具有更大组合水平面积的分组的放置计划以便更早地处理和/或放置在下层中。
对于一个或多个实施方案,机器人系统100可用所标识物体的标识符和/或数量加载缓冲器(例如,存储装置204)。机器人系统100可根据分组对缓冲器中的标识符进行定序。此外,机器人系统100可根据处理次序对缓冲器中的标识符进行定序。因此,缓冲器中的定序值可对应于图7B所示的可用包裹742和/或其余包裹752。
诸如在将物体中的任一者放置在平台上之前,机器人系统100可以离线导出一组初始的可用包裹742的处理次序。在一些实施方案中,机器人系统100可在发起实施对应打包计划700之后或与此同时动态地导出一组其余的可用包裹752或其余包裹的处理次序。例如,如来自框1116的反馈回路所示,机器人系统100可根据一个或多个触发条件来计算其余组(例如,可用或其余包裹752中尚未被搬运到平台和/或保持处于源位置的部分)的处理次序。示例性触发条件可以包括堆叠错误(例如,物体丢失或掉落)、碰撞事件、预定重新触发定时、容器异常(例如,检测到图10的非预期特征1004)或它们的组合。
机器人系统100可以基于根据一个或多个放置规则迭代地导出和评估候选位置801和/或它们的组合来导出打包计划700。机器人系统100可以基于将物体模型叠加在离散化容器模型上方的候选位置801处来导出打包计划700。机器人系统100可以估计与叠加在候选位置801处的物体模型相关联的一个或多个属性(例如,物体的物理布置、所得重量、碰撞概率、稳定性等)。
在一些实施方案中,机器人系统100可以根据层导出候选位置801,由此导出和评估2D计划。例如,机器人系统100可以导出物体放置位置(例如,验证候选位置801的实例),所述物体放置位置形成所放置物体在其中直接接触容器底座(即,放置表面)的最下层。在导出层和/或用于后续评估时,机器人系统100可以向放置位置添加图8A的高度量度802并处理3D位置。一旦导出/验证了最下层,机器人系统100就可以导出用于将物体放置在被计划放置于最下层中的物体的顶部上(例如,直接接触所述物体的顶表面)的候选位置801。因此,机器人系统100可以导出包括堆叠在彼此的顶部上的多个2D层的打包计划700。此外,在导出打包计划700时,机器人系统100可以导出并验证堆叠物体在其中各自悬垂在位于堆叠的物体下方的一个或多个物体之上并利用支撑壁725进行支撑的位置。下面描述关于打包计划700的导出的细节。
在框1110处,机器人系统100可以导出2D计划(例如层,诸如在图7A中所示的下层712和/或堆叠层722)以沿对应的水平面放置可用包裹742。例如,机器人系统100可以导出可用包裹742的子组沿水平面的放置位置的2D映射。机器人系统100可以基于离散化模型(诸如通过将离散化物体模型叠加到离散化容器模型上/将离散化物体模型与离散化容器模型进行比较)来导出放置计划。因此,机器人系统100可以分析离散化物体模型的不同布置(例如,图8A的候选位置801),并验证在离散化平台模型的边界内的布置。机器人系统100可将无法放置在离散化平台模型的边界内的物体指定用于另一层。因此,机器人系统100可迭代地导出打包计划700的2D层的放置位置,直到包裹组中的包裹中的每一者已被指派位置为止。
在一些实施方案中,机器人系统100可以基于物体分组来生成打包计划700和/或其中的层。例如,机器人系统100可确定一个分组内的物体的布置,之后才考虑另一个分组中的物体的放置。当物体分组内的物体铺满一层(即,无法纳入离散化平台模型的一个层或一个实例中)时和/或在放置一个分组的所有包裹之后,机器人系统100可将下一分组中的物体的位置指派到离散化容器模型中的任何其余/未占用区域。机器人系统100可迭代地重复所述指派,直到没有任何未指派的物体可纳入离散化容器模型的其余空间上方为止。
类似地,机器人系统100可以基于处理次序(例如,基于根据处理次序的物体分组)来生成计划层。例如,机器人系统100可以基于根据处理次序指派物体和/或分组来确定测试布置。机器人系统100可向最早定序的物体/分组指派用于测试布置的初始放置,然后根据处理次序测试/指派后续物体/分组。在一些实施方案中,机器人系统100可跨层(例如,跨放置计划350的实例)保持物体/分组的处理次序。在一些实施方案中,机器人系统100可在每个层填满之后重新导出并更新处理次序(在图6中使用短划反馈线示出)。在一些实施方案中,作为上文所述过程的说明性示例,机器人系统100可通过标识物体分组和/或包裹组中的每一者内的不同/独特的类型来生成2D计划。
机器人系统100可(例如,迭代地)导出可用包裹742中的每一者的放置位置。机器人系统100可根据处理次序按顺序首先确定独特物体的初始放置位置(例如,候选位置801)。机器人系统100可根据预定样式(例如,取向/位置的预定顺序)来确定初始放置位置,如上文所述。在一些实施方案中,机器人系统100可计算每个独特包裹的初始放置。所得初始放置各自可诸如通过跨迭代跟踪放置位置的组合来发展成独特放置组合(例如,图7B的搜索树754的实例)。机器人系统100可以导出并跟踪根据处理次序的后续物体和/或如上文所述的其余包裹的候选放置位置。因此,机器人系统100可迭代地导出图7B的放置组合744。
在导出放置组合744(例如,一组候选位置801)时,机器人系统100可以迭代地导出和评估候选堆叠情境(例如,将物体潜在地放置在物体的顶部上的所导出候选位置801处)。例如,机器人系统100可以根据所得顶表面面积、稳定性估计值、支撑估计值和/或其他标准来评估层中的这组候选位置801。所评估标准可以要求/偏好离散化物体模型完全纳入放置区的水平边界内。另外,诸如出于相邻放置或间隔要求,放置标准可以要求离散化物体模型的放置位于相对于初始放置位置(例如,诸如沿水平方向)和/或先前放置位置的阈值距离以内。放置标准的其他示例可以包括对相邻地放置在一个或多个包裹尺寸(例如,高度)、易碎性评级、包裹重量范围或它们的组合方面具有一种或多种最小差异的包裹的偏好。在一些实施方案中,放置标准可以包括可与先前指派在层中的包裹相对于参考位置(例如,码垛机器人的位置)的位置和/或特性(例如,高度)相对应的碰撞概率。因此,机器人系统100可生成包裹放置位置的多个独特放置组合(即,每一层的候选放置计划和/或各自包括多个层的候选堆叠情境)。在一些实施方案中,机器人系统100可以基于跨放置迭代生成并更新搜索树754来跟踪组合的放置。
在最终确定2D层的放置位置时,机器人系统100可计算/更新每个组合/包裹放置的放置分数。机器人系统100可根据放置条件/偏好(例如,包裹尺寸、碰撞可能性、易碎性评级、包裹重量范围、间隔要求、包裹量条件)中的一者或多者来计算放置分数。例如,机器人系统100可使用偏好因子(例如,乘数权重)和/或方程来描述对以下各项的偏好:包裹之间的间隔距离、相邻包裹的包裹尺寸/易碎性评级/包裹重量的差异、碰撞可能性、同一高度处的连续/相邻表面、其统计学结果(例如,平均值、最大值、最小值、标准差等),或它们的组合。每个组合可根据可由系统制造商、订单和/或系统操作员预限定的偏好因子和/或方程来评分。在一些实施方案中,机器人系统100可在总放置迭代结束时计算放置分数。
在一些实施方案中,机器人系统100可在每次放置迭代之后更新图7B的放置组合744在优先级队列756中的顺序。机器人系统100可以基于放置分数来更新顺序。
机器人系统100可以基于确定空源状态、全层状态或不变分数状态来停止放置迭代(例如,一个候选放置计划完成)。空源状态可代表已放置所有可用物体。全层状态可代表没有其他物体可放置在所考虑离散化容器模型的其余区域中。不变分数状态可代表组合的放置分数跨一个或多个连续放置迭代保持恒定。在一些实施方案中,机器人系统100可使用不同的初始放置位置和/或不同的处理次序(例如,用于对具有与定序条件相关联的相同定序值/分数的群组进行重新排序)来重复放置迭代,以导出候选堆叠情境的其他实例。换句话说,机器人系统100可生成多个2D放置计划,其中每个2D放置计划可代表3D堆叠内的层(例如,候选堆叠情境的实例)。在其他实施方案中,机器人系统100可在导出2D放置计划时迭代地考虑3D效应并且在2D放置计划变完整时作为下一迭代开始导出下一层。
在框1112处,机器人系统100可以计算2D计划的堆叠情境。在此情况下,机器人系统100可将放置组合744和/或2D放置计划中的每一者转换成3D状态,如在框1152处所示。例如,机器人系统100可将物体的高度值指派到放置组合744。机器人系统100可以基于根据放置组合744中的对应物体的高度计算容器模型(例如,容器占位面积模型622)的离散化单元602/像素中的每一者的高度量度802来生成等高线图(深度图的估计值)。对于多层,机器人系统100可以计算高度量度802,所述高度量度组合被计划放置/堆叠在像素化位置处的物体的高度。
利用3D状态,机器人系统100可根据一个或多个堆叠规则(例如,图7C的水平偏移规则776、图7C的支撑间隔规则786和/或图7C的竖直偏移规则790)来评估放置组合744。作为说明性示例,机器人系统100可以计算放置组合744或其违反图7C的重叠要求778、图7C的悬垂要求780、竖直偏移规则790、图7C的CoM偏移要求784或它们的上述组合的标志位置的减小分数。在一个或多个实施方案中,机器人系统100可以诸如通过估计所重叠包裹处的被支撑重量并将它们与被计划用于下层的物体的对应易碎性评级进行比较来计算一个或多个物体的易碎性评级。
在框1154处,机器人系统100可以根据3D得分/更新来选择组合。换句话说,机器人系统100可以计算3D放置分数或更新放置分数并相应地选择组合。机器人系统100可使用与3D放置的放置成本和/或启发式值相关联的预定偏好(例如,权重和/或方程)。预定3D偏好可类似于2D偏好、分组偏好、定序条件,或它们的组合。例如,3D偏好可被配置来基于3D状态计算碰撞可能性并且计算偏向于具有较低碰撞可能性的放置组合的分数。另外,机器人系统100可基于其余包裹752、具有共同高度的支撑区域的大小、处于3D状态的所打包物品的数目、所处理包裹的高度之间的差或它们的组合来计算分数。在一些实施方案中,机器人系统100可根据分数来更新放置组合744在优先级队列756中的顺序。
在已处理3D状态之后,诸如在框1110处,机器人系统100可通过导出其余包裹752中的下一包裹的放置来更新2D计划。机器人系统100可重复上述过程,直到停止条件(诸如当已处理所有可用包裹742(即,其余包裹752的空值/组)和/或当无法改进放置组合744(也称为无改进组合))为止。无改进组合的一些示例可包括当前处理的放置由于一个或多个违规而消除优先级队列756中的放置组合744中的最后一个的情况和/或放置分数跨阈值数目的迭代对于优选组合保持恒定的情况。
当检测到停止条件时,机器人系统100可根据放置分数(例如,2D和/或3D相关分数)选择所导出放置组合744中的一者。因此,机器人系统100可指定选定放置组合作为打包计划700。
作为说明性示例,机器人系统100可以不同方式实施框1110和1112的功能。例如,在框1110处,机器人系统100可生成底部层的2D计划(例如,放置计划350的实例),如上文所述。在此情况下,机器人系统100可被配置为在考虑放置和/或处理次序时对匹配包裹重量、更重包裹重量和/或包裹的更大可支撑重量施加更重偏好(例如,更大的参数权重)。机器人系统100可导出基础层的第一2D计划,诸如上文针对框1110所述。
一旦第一2D层如上文所述地完成/填满,由此形成基础层,机器人系统100就可将放置计划转换成3D状态,如针对框1112所述。使用3D信息,机器人系统100可标识基础层的一个或多个平面部分/区域,如上所述。使用平面部分,机器人系统100可迭代地/递归地导出基础层上方的下一层的包裹放置。机器人系统100可有效地将平面部分中的每一者视为离散化平台的新实例,并且测试/评估不同放置,如上文针对框1110所述。在一些实施方案中,机器人系统100可使用放置表面导出2D放置,但跨整个放置区域/空间计算分数。因此,机器人系统100可以被配置为遵循对后续层的更大放置区域的偏好,而不限于前述放置区域。
一旦针对第二层停止迭代放置过程,机器人系统100就可计算所导出层的平面部分(例如,具有在阈值范围内的高度的顶表面),以生成下一上方层的其余包裹/分组的2D放置。迭代分层过程可继续进行,直到已满足停止条件为止,如上文所述。
在导出用于第二层和更高层的2D计划时,机器人系统100可以导出用于所计划放置的物体在其中悬垂在一个或多个下方物体(即,下层的2D放置计划中的物体)之上的物体放置位置。例如,机器人系统100可以导出下层/第一层的2D计划,其中第一物体(例如,图7C的支撑包裹774)支撑壁725直接相邻并且分开物体-壁间隔726。在导出更高层/堆叠层的2D计划时,机器人系统100可以导出第二物体(例如,堆叠的物体724)的候选位置801,所述第二物体将被堆叠/放置在第一物体的顶部上,其中第二物体的一部分横向地突出超出第一物体的外围边缘并朝向支撑壁725。机器人系统100可以导出并验证候选位置801以利用支撑壁725来支撑第二物体放置。
在框1122处,作为说明性示例,机器人系统100可以在导出2D放置计划时导出与壁支撑相关联的候选位置801。换句话说,机器人系统100可以导出第二物体(例如,堆叠的物体724)的位置,在所述位置中,一旦放置了第二物体,物体直接接触支撑壁725并由支撑壁725支撑。机器人系统100可以进一步导出第二物体的位置,所述第二物体与支撑壁725分开小于阈值距离,使得在容器运输期间物体移位的情况下,所述物体可接触支撑壁725并由支撑壁725支撑。候选位置801可在用于放置第二物体的离散化容器模型内。候选位置801还可以使得第二物体将横向突出超出第一物体的一个或多个外围边缘(例如,悬垂在第一物体之上)并且朝向支撑壁725横向突出。
在框1124处,机器人系统100可以估计候选位置801的一个或多个属性。换句话说,机器人系统100可以计算将第二物体放置在候选位置801处的可能物理结果。机器人系统100可以基于将第一物体模型放置在第一放置位置处并将第二物体模型放置在候选位置处来估计一个或多个属性。
在框1132处,机器人系统100可以针对多重悬垂情境导出图7的组合物体估计732。多重悬垂情境可以包括图7C的中间物体799悬垂在下部物体之上,并且候选位置801悬垂在中间物体799或其上方的物体之上。在一些实施方案中,机器人系统100可以跟踪悬垂在下方的所计划物体之上的放置位置。使用所跟踪状态,机器人系统100可以确定候选位置801何时悬垂在下方的所计划物体之上而下方的一个或多个所计划位置也悬垂其他物体之上。
当候选位置801对应于多重悬垂情境时,机器人系统100可以基于候选位置801和最低的估计悬垂位置来导出组合物体估计732。机器人系统100可以导出用于估计与候选位置801相关联的一个或多个属性的组合物体估计732。机器人系统100可以基于将所堆叠/处理物体(例如,顶部包裹772)的物体模型放置在候选位置801处和被计划放置在候选位置801下方的物体模型(包括中间物体799的物体模型)来导出组合物体估计732。在一些实施方案中,机器人系统100可以基于导出与这组所放置物体模型的最外表面/边缘对准或包括其的轮廓线来导出组合物体估计732。因此,机器人系统100可以导出代表作为一个物体的这组悬垂的堆叠物体的模型或估计值。
在框1134处,机器人系统100可以计算有效支撑和/或悬垂量度。例如,机器人系统100可以基于对在所计划位置处在堆叠物体的物体模型(诸如顶部包裹772和支撑包裹774的模型)之间重叠的离散化单元602的数量进行计数来计算图7C的有效支撑795。对于多重悬垂情境,机器人系统100可以基于在候选位置801处的顶部包裹772的物体模型与被计划放置在候选位置801下方的物体的模型之间的重叠来计算有效支撑795。在一些实施方案中,机器人系统100可以将有效支撑795计算为候选位置801处的模型与下方模型(诸如最远离支撑壁725的支撑物体的模型)之间的最小重叠量。在其他实施方案中,机器人系统100可以将有效支撑795计算为顶部物体与最底部物体之间的重叠。在其他实施方案中,机器人系统100可以将有效支撑795计算为组合物体估计732与一个或多个下方物体之间的重叠。
另外,机器人系统100可以基于对顶部物体模型的延伸超出底部物体模型的外围边缘并且朝向支撑壁725的离散化单元602的数量进行计数来计算悬垂量度。在一些实施方案中,机器人系统100可以基于顶部物体模型的保持与有效支撑795分开的部分(例如,离散化单元602的数量)来计算悬垂量度。
在框1136处,机器人系统100可以估计候选位置处的顶部物体模型的CoM位置782。在一些实施方案中,机器人系统100可以基于访问物体模型中和/或来自主数据252的预定信息来估计CoM位置782。另外,在一些实施方案中,机器人系统100可以将CoM位置估计为物体模型的中间部分。
机器人系统100可以进一步导出CoM位置782与下方物体之间的关系。例如,机器人系统100可以确定顶部包裹772相对于支撑包裹774的外围边缘的CoM位置482。
对于多重悬垂情境,机器人系统100可以针对组合物体估计732导出图7C的组合参考位置734。机器人系统100可以基于跨组合物体估计732的横向区域/尺寸组合这组堆叠物体的CoM位置782来导出组合参考位置734。机器人系统100可以基于根据物体的重量和跨横向区域/尺寸的对应CoM位置782计算加权平均值或重量分布来组合CoM位置782。
在框1138处,机器人系统100可以估计候选位置801的枢轴位置793。机器人系统100可以根据堆叠情境将枢轴位置793估计为支撑包裹774的具有最高高度的部分。当支撑包裹774的多个部分具有相同的高度值或3D状态时,机器人系统100可以将枢轴位置793估计为最接近支撑壁725的一个或多个部分。因此,机器人系统100可以将枢轴位置估计为支撑包裹774的外围边缘。
在框1140处,机器人系统100可以基于候选位置801来导出移位姿势。例如,当候选位置801具有与支撑壁725分开(即,不直接接触)的顶部包裹772时,机器人系统100可以基于将顶部物体模型从候选位置801朝向支撑壁725移位而导出移位姿势。机器人系统100可以将顶部物体模型横向地移位直到所述模型接触支撑壁725为止。另外,机器人系统100可以基于顶部物体模型围绕枢轴位置旋转来导出移位姿势。当CoM位置782在支撑包裹774上方时,机器人系统100可以忽视或忽略已旋转姿势。当CoM位置782在支撑包裹774的外围边缘与支撑壁725之间时,机器人系统100可以保持已旋转姿势。移位姿势可以代表顶部包裹772诸如在容器的运输期间从候选位置801移位,和/或搁置在支撑壁725上。
在框1126处,机器人系统100可以导出图9A的接近路径901以将顶部包裹772放置在候选位置801处。机器人系统100可以基于导出顶部物体模型和夹持器模型的组合来导出接近路径901。在一些实施方案中,机器人系统100可以基于针对图5C的接合的接口高度534的调整来导出模型的组合。机器人系统100可以基于将组合模型放置在候选位置801处来导出接近路径901。因此,机器人系统100可以将组合模型叠加在容器模型和/或其他物体模型上方。
在一些实施方案中,机器人系统100可以基于标识图9C的横向延伸通道912来导出接近路径901。如上所述,机器人系统100可以基于将横向线从组合模型的外围边缘/点朝向机器人单元的所计划位置延伸来标识横向延伸通道912。在一些实施方案中,机器人系统100可以根据预定间隙距离来加宽通道912。
使用横向延伸通道912,机器人系统100可以标识一个或多个潜在障碍物。例如,机器人系统100可以将潜在障碍物标识为图9A的先前物体902(例如,被计划在顶部包裹772之前进行放置的物体)和/或与通道912重叠的支撑壁725。换句话说,机器人系统100可以确定在所评估高度处,横向延伸通道912是否与一个或多个潜在障碍物重叠。
作为说明性示例,如在框1142处所示,机器人系统100可以通过递增地标识不同高度处的通道912来导出接近路径901,并且如在框1144处所示,迭代地标识通道的潜在障碍物。换句话说,当通道912与至少一个潜在障碍物重叠时,机器人系统100可以根据接近增量903迭代地增大横向延伸通道912的高度。因此,机器人系统100可以标识横向延伸通道912避开所有潜在障碍物所处的高度。机器人系统100可以基于所标识高度来导出图9A的路径段904和/或图9A的最终段906。因此,机器人系统100可以反向地导出接近路径(例如,从候选位置801开始到起始点)以模拟顶部包裹772的搬运。横向延伸通道912可以对应于在横向移动到候选位置801期间由端部执行器304和顶部包裹772占用的空间。
在框1128处,机器人系统100可以验证用于物体放置的候选位置801。机器人系统100可以在导出打包计划700的放置位置时验证候选位置801。机器人系统100可以基于根据对应规则/阈值评估所估计属性来验证候选位置801。在一些实施方案中,机器人系统100可以标识与支撑壁直接相邻或与支撑壁接触的候选位置801(例如,在候选位置801处的物体模型的一个或多个外围边界与容器/壁的一个或多个边界重叠)。对于所标识候选位置801,机器人系统100可以根据对应规则进行验证。例如,当所估计属性满足图7C的壁支撑规则794和/或代表根据与竖直取向的容器部分的预定关系放置物体的一个或多个要求的其他相关联规则(例如,图7C的倾斜支撑规则796和/或图7C的多重悬垂规则798)时,机器人系统100可以验证候选位置801。
例如,机器人系统100可以基于确定有效支撑795(例如,重叠像素的数量)针对与容器壁直接相邻放置的物体满足图7的重叠要求778和/或针对与容器壁接触放置的物体满足壁支撑规则794来验证候选位置801。另外,机器人系统100可以基于确定悬垂量度针对与容器壁直接相邻放置的物体满足图7C的悬垂要求780和/或针对与容器壁接触放置的物体满足壁支撑规则794来验证候选位置801。此外,诸如当CoM位置782在用于一个或多个支撑包裹774的模型的外围边缘内、在距此类外围边缘的阈值距离内和/或在距一个或多个支撑包裹774的CoM位置的阈值距离内时(例如,当计划将支撑包裹堆叠在其他下部物体的顶部上时),机器人系统100可以基于确定CoM位置782满足CoM偏移要求784来验证候选位置801。为了验证与容器壁直接相邻放置的物体的候选位置801,当一个或多个移位姿势(例如,图7的倾斜角797)满足倾斜支撑规则796时,机器人系统100可以另外或替代地验证候选位置801。
在一些实施方案中,如上文(例如,关于框1132)所论述的,机器人系统100可以标识与候选位置801相关联或由其引起的多种悬垂条件。为了验证与多种悬垂条件相关联的候选位置801,机器人系统100可以根据多重悬垂规则798来评估候选位置801(例如,相对于最底部支撑物体、偏移最远的支撑物体和/或其他合格的下方支撑物体的相关联有效支撑795)。替代地或另外,机器人系统100可以基于根据水平偏移规则776、壁支撑规则794和/或上述一个或多个其他规则评估组合物体估计732来进行验证。因此,当一个或多个所计算属性满足对应规则和要求时,机器人系统100可以验证与多种悬垂条件相关联的候选位置801。
机器人系统100还可以基于对应的接近路径901来验证候选位置801。机器人系统100可以验证与如上所述的畅通的接近路径901相对应的候选位置801。在一些实施方案中,机器人系统100在未能成功地导出自候选位置801起/到达候选位置801的避开所有潜在障碍物910的接近路径901时取消候选位置801的资格。如上所述,机器人系统100可以利用夹持器模型和对应物体模型的组合以及与任何夹持相关调整(例如,通过考虑接合的接口高度534和所延伸的接口高度532之间的差异)来关于接近路径901进行导出/验证。
在一些实施方案中,机器人系统100可以迭代地分析目标物体112的一组潜在放置位置。结果,机器人系统100可以为同一目标物体112生成多个已验证位置。对于此类情境,机器人系统100可以被配置为选择一个已验证位置作为物体的放置位置。例如,机器人系统100可以在验证过程期间计算对应位置的放置分数,并选择具有最高分数的位置。作为说明性示例,机器人系统100可以针对与更大的有效支撑795相对应的位置计算更高的放置得分。另外,作为说明性示例,机器人系统100可以针对与较短的接近路径相关联的位置计算较高的放置分数。
作为进一步的说明性示例,当所放置包裹堆叠在一个或多个先前处理的包裹上/上方时,机器人系统100可消除违反上文所述的重叠要求778、悬垂要求780、竖直偏移规则790、CoM偏移要求784或它们的组合的放置组合744中的任一者。在一个或多个实施方案中,机器人系统100可诸如通过估计重叠包裹处的被支撑重量并将它们与对应易碎性评级进行比较来消除违反所处理包裹下方的一个或多个包裹的易碎性评级的放置组合744中的任一者。机器人系统100可以基于其余组合来选择放置位置。
在一些实施方案中,诸如当接收到订单和装运清单时以及在这组目标物体变得可用于实时处理/放置之前,机器人系统100可以离线地实施方法1100或其一部分。替代地或另外,机器人系统100可以实时地实施方法1100或其一部分。例如,当容器具有图10的非预期特征1002中的一者或多者时,机器人系统100可以实施方法1100的一部分以重新导出打包计划。机器人系统100可以获得代表任务位置116处的容器的图像数据(例如,与俯视图图像1052和/或侧视图图像1054相对应的传感器输出1000,全部在图10中示出)。机器人系统100可以诸如基于检测和分析其中描绘的边缘来分析所获得图像数据,以检测或确定非预期特征1002存在与否。如以下详细描述的,机器人系统100可以针对非预期特征1002评估现有打包计划700,并调整/验证现有打包计划700。
当对现有打包计划700的调整不可用或无法通过验证时,机器人系统100可以实施方法1100的一部分。例如,机器人系统100可以针对与现有打包计划700相关联的物体重新确定包裹分组(框1106)和/或处理次序(框1108)。在一些实施方案中,机器人系统100可以访问包裹分组和/或处理次序的先前确定的实例。利用所得信息,机器人系统100可以使用一个或多个所获得图像而不是一个或多个容器模型来重新导出新的2D计划。因此,机器人系统100可以考虑到非预期特征1002,并导出替换现有打包计划700的打包计划的新实例。
在框1116处,机器人系统100可以实施打包计划700(由实时处理或离线处理产生),以将可用包裹742放置在一个或多个容器中。机器人系统100可以基于根据打包计划700将一个或多个运动计划、致动器命令/设置或它们的组合传达给对应装置/单元(例如,图1的搬运单元104、图2的致动装置212、图2的传感器216等)来实施打包计划700。机器人系统100可以基于在装置/单元处执行所传达信息以将可用包裹742从源位置搬运到目的地容器来进一步实施打包计划700。因此,机器人系统100可以根据打包计划700中的对应3D放置位置来放置可用包裹742。
图12是根据本技术的一个或多个实施方案的用于操作图1的机器人系统100的第二示例性方法1200的流程图。在一些实施方案中,方法1200可以被实施为与图11的框1116相对应的过程的子例程。例如,在用于将图7B的可用包裹742放置到容器中的实时操作的过程期间或开始时,机器人系统100可以获得一个或多个预先计算的打包计划(例如,图7A的打包计划700),如在框1201处所示。机器人系统100可以(例如,经由离线计算)获得在发起实时打包操作之前导出的打包计划700。机器人系统100可以在存储装置(例如,图2的存储装置204和/或另一种计算机可读介质)中存储打包计划700。机器人系统100可以通过从存储装置读取来获得或访问现有的打包计划700。
在框1202处,机器人系统100可以获得描绘容器的一个或多个图像(例如,俯视图图像1052和/或侧视图图像1054,均在图11中示出),如框1202所示。如上所述,机器人系统100可以经由与图1的任务位置116相关联的传感器216(例如,图3所示的俯视传感器310和/或侧视传感器312)中的一者或多者实时获取图像。因此,机器人系统100可以获得被指定为接收可用包裹742或其子组的容器(例如,图4A至图4D中所示的推车410或笼420)的一个或多个实时图像。机器人系统100可以在实时操作期间或开始时获得一个或多个图像,以将可用包裹742放置到位于任务位置116处的容器中。换句话说,机器人系统100可以在将任何物体放置在容器中之前或在放置一个或多个物体之后获得描绘容器的图像。
在判定框1204处,机器人系统100可以基于一个或多个实时图像来确定容器的一个或多个物理属性是否如所期望的那样。机器人系统100可以分析所获得实时图像数据以标识所描绘容器的一个或多个物理属性。例如,机器人系统100可以实施边缘检测机制(例如,索贝尔滤波器)以检测图像数据中所描绘的2D和/或3D边缘。机器人系统100可以进一步标识连接两个或更多个边缘段的角落和/或接合部。基于边缘和角落/接合部,机器人系统100可以将由边缘界定的区域标识为与诸如容器和/或其一部分之类的结构相对应。机器人系统100还可以基于与任务位置116处的指定容器姿势(例如,位置和/或取向)相对应的预定阈值和/或模板、容器的预期大小、容器的预期尺寸、一组公差量度和/或容器的其他已知的或预期的物理特性来验证容器和/或其一部分的估计值。
在估计或辨识在图像数据中所描绘的容器时,机器人系统100可以确定容器的一个或多个物理属性是否如预期的那样。例如,机器人系统100可以确定容器壁(例如,侧壁和/或后壁)的位置、形状和/或取向是否如预期的那样。机器人系统100可以基于将所估计容器或其一部分与模板进行比较来确定容器的状态。另外或替代地,机器人系统100可以计算与容器和/或其一部分的估计值相关联的置信度分数。当对应部分在由模板限定的阈值范围内和/或当对应置信度分数满足预期阈值时,机器人系统100可以检测一个或多个物理属性(例如,一个或多个容器壁的状态)是否如预期的那样。当对应部分超出由模板限定的阈值范围时和/或当对应置信度分数未能满足预期阈值时,机器人系统100可以检测到非预期条件(例如,与容器或其一个或多个支撑壁相关联的错误条件)。对非预期条件的检测可以代表对图10的非预期特征1002的检测。
在框1206处,机器人系统100可以实施打包计划的当前/有效实例。例如,当任务位置116处的容器对应于预期条件时,机器人系统100可以实施打包计划700的现有实例(即,在初始/离线计算之后未调整)。另外,如下文详细描述的,机器人系统100可以实施打包计划的调整后实例。机器人系统100可以基于根据打包计划700控制机器人单元(例如,经由向机器人单元发送命令/设置并在机器人单元处执行命令/设置)来实施打包计划。因此,机器人系统100可以根据打包计划700将可用包裹742放置在容器内的对应放置位置处。
当在任务位置116处的容器对应于非预期条件时,诸如在框1208处所示,机器人系统100可以动态地生成实际容器模型。换句话说,机器人系统100可以动态地生成考虑了实际容器的实时状态(例如,非预期特征1002)的容器模型。对于后续处理/分析,机器人系统100可以使用实际容器模型来代替代表容器的期望条件的容器模型(例如,图6的容器占位面积模型622和/或图6的容器轮廓模型624)。
机器人系统100可以基于实时图像数据动态地生成实际容器模型。例如,机器人系统100可以基于根据图6的离散化单元602划分俯视图图像1052和/或侧视图图像1054而动态地生成实际容器模型。机器人系统100可以针对在实时图像中检测到的容器来标识或估计图6的参考位置604(例如,中心部分和/或预定角落)。机器人系统100可以对准或重新取向图像,使得与所估计参考位置604具有预定关系的一个或多个所检测边缘(例如,与参考位置重合的边缘)与系统和对应空间的预定参考方向/轴对准。基于参考位置和轴对准,机器人系统100可以基于离散化单元602的尺寸来标识划分,由此对一个或多个实时图像进行像素化。
在框1210处,机器人系统100可以计算在任务位置116处的容器内的实际打包区域/空间。机器人系统100可以估计所估计容器壁之间的放置区。例如,机器人系统100可以基于容器壁的一个或多个预定物理特性(例如,大小、位置、取向、形状、颜色等)将图像数据内的部分标识或估计为壁。机器人系统100可以将壁之间的图像数据内的部分标识为实际容器的放置区。在一些实施方案中,机器人系统100可以将放置区标识为矩形区域,所述矩形区域与系统轴中的一者或多者对准并且与最接近容器的中心部分的容器壁/容器底座的边缘重合。换句话说,机器人系统100可以将放置区标识为容器壁之间的区域/空间的轴对准边界框的实例。
机器人系统100可以进一步分析放置区以计算实际打包区域/空间。例如,机器人系统100可以计算放置区的大小和/或一组尺寸。在一些实施方案中,机器人系统100可以基于离散化单元602来计算大小和/或这组尺寸。因此,机器人系统100可以将实际打包区域/空间代表为放置区内的离散化单元602的总量和/或沿系统轴的长度(例如,离散化单元602的数量)。在计算大小/尺寸时,机器人系统100可以对延伸超出放置区的离散化单元602(即,与容器壁或容器底座外部的区域重叠或部分地包括容器壁或容器底座外部的区域的离散化单元602)向下取整或忽视所述离散化单元。
在判定框1212处,机器人系统100可以确定所计算区域/空间是否大于对打包区域/空间的一个或多个最小阈值要求。例如,机器人系统100可以将放置区的大小/尺寸与通常适用于所有容器的最小阈值进行比较。另外或替代地,机器人系统100可以将大小与现有打包计划700的大小进行比较。
当可用放置区/空间未能满足一个或多个所比较阈值时,诸如框1214所示,机器人系统100可以重新装载或替换任务位置116处的容器。例如,当任务位置116处的容器的所计算放置区/空间不大于最小阈值时,机器人系统100可以与运输单元/机器人和/或对应系统通信以(1)移除任务位置116处的容器和/或(2)在任务位置116处放置新的/不同的容器。当在任务位置116处放置新的容器时,机器人系统100可以获得容器图像,如在框1202处所示并且如上所述。
当可用放置区/空间满足最小阈值时,诸如在框1216处,机器人系统100可以计算包裹轮廓线。例如,机器人系统100可以基于现有的打包计划700来导出AABB 730。机器人系统100可以导出AABB 730作为被计划放置的这组物体的一个或多个物理属性的代表。机器人系统100可以根据指定平面形状(例如,矩形)导出AABB 730。机器人系统100可以将指定平面形状与打包计划700的系统轴和外围点(例如,最外部中的一者)对准。机器人系统100随后可以延伸/移动指定平面形状的其他/未对准边缘以与打包计划700的其他外围点重合。在一些实施方案中,例如,机器人系统100可以计算代表沿系统轴的打包计划700的整体尺寸的矩形。因此,机器人系统10可以计算与现有的打包计划700的最外点重合的AABB730。
在框1218处,机器人系统100可以导出候选包裹放置位置。机器人系统100可以导出候选包裹位置以调整容器内现有打包计划的放置。在一些实施方案中,机器人系统100可以导出候选包裹位置作为实际容器模型的角落(例如,容器的放置区)。机器人系统100可以导出候选包裹位置,使得AABB 730的角落与实际容器模型的角落对准。例如,机器人系统100可以根据预定样式/顺序选择角落。基于选定角落,机器人系统100可以计算AABB 730和/或实际容器模型的参考点的坐标/偏移,使得AABB 730和实际容器模型的对应角落对准或重合。
因此,机器人系统100可以根据候选包裹位置将AABB 730叠加在实际容器模型上,使得对应角落对准。在判定框1220处,机器人系统100可以确定叠加在候选包裹放置位置处的包裹轮廓线是否纳入可用放置区/空间内。机器人系统100可以根据AABB 730是否与实际容器模型的至少一个外围边缘重叠和/或延伸超出实际容器模型的至少一个外围边缘来确定纳入状态。在一些实施方案中,机器人系统100可以基于计算AABB 730的尺寸(例如,沿系统轴的离散化单元602的数量)并将所计算尺寸与放置区的尺寸进行比较来确定纳入状态。
当在候选包裹放置位置处的包裹轮廓线未纳入可用放置区/空间内时,诸如在判定框1222处所示,机器人系统100可以确定是否已经达到结束条件。例如,机器人系统100可以确定是否已经分析/处理了所有可能的候选包裹放置位置(例如,与实际容器模型相关联的所有角落和/或其他可用位置)。当机器人系统100确定尚未达到结束条件时,在框1218处,机器人系统100可以导出另一个候选包裹放置位置。因此,机器人系统100可以迭代地处理和分析潜在的候选包裹放置位置,直到纳入状态指示AABB 730纳入实际容器模型内或达到结束条件为止。
当在候选包裹放置位置处的包裹轮廓线纳入可用放置区/空间内时,诸如在判定框1224处所示,机器人系统100可以分析调整后包裹放置。机器人系统100可以分析调整后包裹放置(例如,根据所纳入的候选包裹放置位置移位的打包计划700)作为验证过程的一部分。例如,机器人系统100可以基于一个或多个所得接近路径和/或对一个或多个物体的支撑要求来分析调整后包裹放置。
在一些实施方案中,机器人系统100可以确定现有的打包计划700是否包括用于放置被指定为由容器的竖直壁(例如,图7A的支撑壁725)支撑的对应物体的一个或多个放置位置。例如,机器人系统100可以在打包计划700的初始导出期间表示受壁支撑的位置。因此,机器人系统100可以随后基于访问打包计划700和预定表示来确定现有的打包计划700是否包括一个或多个受壁支撑的放置位置。替代地或另外,机器人系统100可以将现有的打包计划700叠加在预期的容器模型(例如,不考虑非预期特征1002的容器占位面积模型622和/或容器轮廓模型624)上方。当现有的打包计划700的一部分与预期容器模型的容器壁部分重合或与所述容器壁部分相距预定距离以内时,机器人系统100可以确定现有的打包计划700包括一个或多个受壁支撑的放置位置。
机器人系统100可以为现有的打包计划700中标识的受壁支撑的放置位置确定更新后放置位置。例如,机器人系统100可以计算平移参数(例如,沿一个或多个系统轴的线性位移和/或围绕一个或多个系统轴的旋转),所述平移参数代表现有的打包计划700与所纳入的候选包裹放置位置之间的差异。机器人系统100可以将平移参数应用于所标识的受壁支撑的放置位置以确定更新后放置位置。如下面进一步描述的,机器人系统100可以分析用于受壁支撑的更新后放置位置以用于验证目的。
在一些实施方案中,机器人系统100可以导出图9A的接近路径901的一个或多个更新后实例,所述更新后实例对应于打包计划700和/或其中的放置位置的一个或多个潜在调整后位置。接近路径901的更新后实例可以代表与将对应物体放置在调整后位置处相关联的运动计划,所述放置对应于将现有的打包计划700移位到所纳入的候选包裹位置。机器人系统100可以选择一个或多个物体放置位置用于验证分析。例如,机器人系统100可以根据现有的打包计划700来选择第一放置物体的放置位置以进行验证分析。另外或替代地,机器人系统100可以选择形成现有的打包计划700的一个或多个外围边缘或角落的一个或多个放置位置来进行验证分析。对于一个或多个选定的放置位置,机器人系统100可以如上(例如,关于图11的框1126)所述导出对应的接近路径。
在判定框1226处,机器人系统100可以确定调整后包裹放置是否有效。机器人系统100可以基于纳入状态来验证候选包裹放置位置。换句话说,机器人系统100可以使用纳入状态用于初步验证/鉴定。因此,机器人系统100可以消除导致AABB 730纳入实际容器模型内的任何候选包裹放置位置。机器人系统100可以进一步基于例如对应的更新后接近路径和/或更新后壁支撑位置来验证纳入的候选包裹放置位置。
在一些实施方案中,机器人系统100可以基于根据被配置为分析来自竖直取向的结构的支撑的一个或多个规则(例如,壁支撑规则794、倾斜支撑规则796、多重悬垂规则798和/或图7C中所示的其他规则/要求)来验证纳入的候选包裹位置。机器人系统100可以根据如上文(例如,关于图11的框1110和/或框1128)描述的规则进行验证。当一个或多个或所有更新后的受壁支撑的放置位置满足一个或多个壁支撑相关规则时,机器人系统100可以验证纳入的候选包裹位置。另外或替代地,机器人系统100可以基于成功导出更新后的接近路径来验证纳入的候选包裹位置。换句话说,机器人系统100可以基于针对避开图9A的潜在障碍物910的一个或多个选定的参考位置成功地导出接近路径901的一个或多个或所有更新后实例来验证纳入的候选包裹位置。
当机器人系统100验证候选包裹放置位置时,诸如在框1228处所示,机器人系统100可以调整现有的打包计划700。机器人系统100可以根据已验证的候选包裹放置位置来调整现有的打包计划700的物体放置位置和/或对应的接近路径901(例如,运动计划)。例如,如上所述,机器人系统100可以计算现有的打包计划700与纳入的候选包裹放置位置之间的差异和代表所述差异的对应平移参数。机器人系统100可以将平移参数应用于现有的打包计划700的物体放置位置,以导出与已验证的包裹放置位置相关联的调整后/更新后放置位置。换句话说,机器人系统100可以根据候选包裹放置位置来将现有的打包计划700和对应的放置位置移位。因此,机器人系统100可以直接基于对初始放置位置的调整/移位来导出更新后放置位置,诸如不重复用于导出上文(例如,关于图11的框1110)描述的放置位置的初始过程。
替代地或另外,机器人系统100可以针对参考放置位置计算接近路径901的初始实例与更新后实例之间的差异。例如,机器人系统100可以计算调整接近路径901的初始实例以产生其与已验证的包裹放置位置相对应的更新后实例所必需的差异矢量或参数。机器人系统100可以诸如通过向其他物体放置的其余接近路径/运动计划应用差异矢量/参数来调整所述其余接近路径/运动计划。因此,机器人系统100可以直接基于差异矢量/参数来导出更新后的接近路径/运动计划,诸如不重复用于导出用于打包计划700的接近路径901的初始过程。
机器人系统100可以实施调整后的打包计划。例如,处理流程可以转向框1206,并且机器人系统100可以实施打包计划的当前/有效实例,诸如打包计划700的调整后实例。因此,机器人系统100可以实施调整后打包计划以将这组物体放置在容器中。
当机器人系统100未能验证候选包裹放置位置时,机器人系统100可以确定是否已经达到结束条件,诸如在判定框1222处所示。如上所述,机器人系统100可以迭代地考虑多个候选包裹放置位置。在达到结束条件时,诸如当没有可用的/已分析的候选包裹放置位置提供纳入实际打包区域/空间内的AABB 730时,机器人系统可以执行解决方案,如在框1230处所示。在一些实施方案中,执行解决方案可以包括如上文关于框1214所描述地那样在任务位置116处重新装载容器。
在一些实施方案中,执行解决方案可以包括动态打包计划过程。换句话说,机器人系统100可以动态地重新导出新的打包计划以替换现有的打包计划。例如,机器人系统100可以实施图11的方法1100或其一部分,以导出与非预期特征相关联的容器的新打包计划。为了动态重新导出,机器人系统100可以标识最初被指定用于放置在容器内的一组物体以及代表此类物体的模型,如在框1232处所示。机器人系统100可以标识最初打算放置在任务位置116处的实际容器内的物体的唯一类型/类别。机器人系统100还可以获得代表所标识的唯一物体类型/类别的物体模型(例如,图6所示的物体占位面积模型612和/或物体轮廓模型614)。
在框1234处,机器人系统100可以获得物体分组和/或次序。在一些实施方案中,机器人系统100可以存储在打包计划的初始导出期间计算的物体分组/次序。机器人系统100可以通过访问所存储信息来获得物体分组和/或次序。替代地或另外,机器人系统100可以如上上文(例如,关于图11的框1106和/或1108)描述的那样重新处理分组/次序。
机器人系统100可以处理所得信息以导出2D计划的新实例,诸如上文针对图11的框1110所描述的。为了进行导出,机器人系统100可以使用实际容器模型来代替不考虑非预期特征1002的预期容器模型。
例如,机器人系统100可以确定用于放置所标识的一组物体的候选位置。机器人系统100可以根据所确定的候选位置将物体模型叠加在实际容器模型上方。机器人系统100可以基于如上所述的一个或多个放置规则来分析所叠加的模型并验证候选位置。
总结
所公开技术的示例的上文具体实施方式并不意图是详尽的或将所公开技术限于所公开的确切形式。虽然出于说明性目的描述了所公开技术的具体示例,但如相关领域技术人员应认识到,在所公开技术的范围内多种等效修改也是可能的。例如,虽然过程或框是以给定次序呈现的,但替代实现方式可以不同次序执行具有步骤的例程或采用具有框的系统,并且可删除、移动、添加、细分、组合和/或修改一些过程或框来提供替代方案或子组合。这些过程或框中的每一个可以多种不同方式来实施。另外,虽然过程或框有时被示出为串行执行,但这些过程或框可替代地并行执行或实现,或者可在不同时间执行。此外,本文所指出的任何具体数目仅是示例;替代实现方式可采用不同的值或范围。
根据上文具体实施方式,可对所公开技术进行这些和其他改变。虽然具体实施方式描述了所公开技术的某些示例以及所设想的最佳模式,但所公开技术可以许多方式来实践,而无论文中上文描述呈现的如何详细。系统的细节可在其具体实现方式中相差甚大,但仍由本文所公开的技术涵盖。如上文所指出,在描述所公开技术的某些特征或方面时所用的特定术语不应被视为暗示本文中将术语重新定义为限于所公开技术的与所述技术相关联的任何具体特性、特征或方面。因此,除所附权利要求之外,本发明不受限制。一般来说,以下权利要求中所用的术语不应被视为将所公开技术限于说明书中所公开的具体实例,除非上文具体实施方式章节明确地限定了此类术语。
虽然本发明的某些方面在下文是以某些权利要求的形式呈现的,但本申请人设想了呈任何数目的权利要求形式的本发明的多个方面。因此,本申请人保留在提交本申请之后追加附加权利要求以在本申请中或在接续申请中追加此类附加权利要求形式的权利。
Claims (20)
1.一种用于操作机器人系统的方法,所述方法包括:
获得第一物体模型和第二物体模型,其中根据离散化单元,所述第一物体模型和所述第二物体模型分别是第一物体和第二物体的物理尺寸,形状,或它们的组合的离散化代表,所述第一物体模型和所述第二物体模型分别代表被指定用于放置在任务位置处的一个或多个容器中的所述第一物体和所述第二物体;
访问代表容器的容器模型,所述容器具有在容器底座上方延伸的支撑壁,其中根据所述离散化单元,所述容器模型是所述容器的离散化代表;
基于将所述第一物体模型和所述第二物体模型叠加在所述容器模型上方来导出打包计划,所述打包计划包括用于放置所述第一物体的第一放置位置和用于放置所述第二物体的第二放置位置,其中:
所述第一放置位置代表所述容器内与所述支撑壁直接相邻的位置,
所述第二放置位置代表所述第一放置位置上方并且在所述容器内的位置,在所述位置中,所述第二物体的一部分朝向所述支撑壁横向地突出超出所述第一物体的外围边缘,并且
所述第二放置位置用于利用所述支撑壁支撑被放置在所述第一物体上方的所述第二物体;以及
实施所述打包计划以使用机器人臂和端部执行器将所述第一物体和所述第二物体放置在所述容器中。
2.如权利要求1所述的方法,其中:
所述第一放置位置用于将所述第一物体放置在与所述支撑壁分开达物体-壁间隔距离的位置处;以及
所述第二放置位置用于将所述第二物体放置成悬垂在所述第一物体之上。
3.如权利要求1所述的方法,其中导出所述打包计划包括:
导出所述容器模型内用于放置所述第二物体的候选位置;
基于将所述第一物体模型放置在所述第一放置位置处并将所述第二物体模型放置在所述候选位置处,估计与所述候选位置相关联的一个或多个属性;以及
当所估计属性满足壁支撑规则时,将所述候选位置验证为所述第二放置位置,所述壁支撑规则代表用于将物体放置成抵靠竖直取向的容器部分并直接接触所述竖直取向的容器部分的一个或多个要求。
4. 如权利要求3所述的方法,其中:
估计所述一个或多个属性包括基于所述第二物体模型的一部分与所述第一物体模型重叠来计算有效支撑;并且
验证所述候选位置包括确定所述有效支撑满足重叠要求。
5. 如权利要求3所述的方法,其中:
估计所述一个或多个属性包括估计所述第二物体模型的一部分悬垂在所述第一物体模型之上的悬垂量度;并且
验证所述候选位置包括确定所述悬垂量度满足悬垂要求。
6. 如权利要求3所述的方法,其中:
估计所述一个或多个属性包括估计与所述第二物体的质心相对应的质心位置;并且
验证所述候选位置包括确定所述质心位置满足质心偏移要求。
7.如权利要求1所述的方法,其中导出所述打包计划包括:
导出所述容器模型内用于将所述第二物体与所述支撑壁分开放置的候选位置;
基于将所述第一物体模型放置在所述第一放置位置处并将所述第二物体模型放置在所述候选位置处,估计与所述候选位置相关联的枢轴位置,其中所述枢轴位置代表所述第一物体的外围边缘或最高部分;
基于将所述第二物体模型朝向所述支撑壁移位和/或将所述第二物体模型围绕所述枢轴位置旋转来导出一个或多个移位姿势,其中所述一个或多个移位姿势代表所述第二物体从所述候选位置移位并直接接触所述支撑壁;以及
当所述一个或多个移位姿势满足倾斜支撑规则时,将所述候选位置验证为所述第二放置位置,所述倾斜支撑规则代表用于将物体与竖直取向的容器部分横向分开放置的一个或多个要求。
8.如权利要求1所述的方法,其中导出所述打包计划包括:
导出所述容器模型内用于将所述第二物体悬垂在中间物体之上的候选位置,所述中间物体悬垂在所述第一物体之上;
基于将所述第一物体模型放置在所述第一放置位置处并将所述第二物体模型放置在高于所述中间物体的位置的所述候选位置处,估计与所述候选位置相关联的一个或多个属性;以及
当所估计属性满足多重悬垂规则时,将所述候选位置验证为所述第二放置位置,所述多重悬垂规则代表用于将多个物体放置成悬垂在底部支撑物体之上的一个或多个要求。
9. 如权利要求8所述的方法,其中:
估计所述一个或多个属性包括基于所述第二物体模型的一部分与所述第一物体模型重叠来计算有效支撑;并且
验证所述候选位置包括确定所述有效支撑满足重叠要求。
10.如权利要求8所述的方法,其中:
估计所述一个或多个属性包括:
将代表所述第二物体和所述中间物体的组合物体估计导出作为一个物体;以及
估计所述组合物体估计的所述一个或多个属性;并且
验证所述候选位置包括确定所述一个或多个属性满足壁支撑规则或倾斜支撑规则。
11.如权利要求1所述的方法,所述方法还包括:
确定被指定用于放置在所述任务位置处的容器内的物体的物体分组;
导出所述物体分组的处理次序;并且
其中:
导出所述打包计划包括基于所述处理次序和所述物体分组来导出所述打包计划。
12.如权利要求1所述的方法,其中在打包操作期间或紧接在打包操作之前动态地导出所述打包计划。
13.如权利要求12所述的方法,所述方法还包括:
获得代表所述任务位置处的所述容器的图像数据;
基于分析所述图像数据来检测非预期特征,所述非预期特征代表所述支撑壁的偏离预期条件的实际物理特性;并且
其中:
导出所述打包计划包括基于所述非预期特征动态地导出所述打包计划,其中所述打包计划用于替换用于根据所述预期条件将所述第一物体和所述第二物体放置在所述容器中的先前计划。
14.如权利要求1所述的方法,所述方法还包括:
获得代表所述端部执行器的夹持器模型;
标识用于放置所述第二物体的一个或多个潜在障碍物,其中所述一个或多个潜在障碍物包括所述容器的竖直取向部分;
其中导出所述打包计划包括:
导出所述容器模型内用于放置所述第二物体的候选位置;以及
基于将所述夹持器模型和所述第二物体模型的组合叠加在所述容器模型上来导出接近路径,所述接近路径代表用于使所述端部执行器将所述第二物体从起始位置搬运到所述候选位置的一系列位置;以及
当所述夹持器模型和所述第二物体模型的所述组合沿所述接近路径避开所述一个或多个潜在障碍物时,将所述候选位置验证为所述第二放置位置。
15.如权利要求14所述的方法,其中导出所述接近路径包括:
根据代表所述端部执行器夹持所述第二物体的接合的接口高度,调整所述夹持器模型和所述第二物体模型的所述组合;
标识初始高度处的横向延伸通道,其中所述横向延伸通道对应于横向地移动所述夹持器模型和所述第二物体模型的调整后组合;
确定所述横向延伸通道是否与包括先前物体和/或竖直取向部分的所述一个或多个潜在障碍物重叠;以及
根据接近增量迭代地增大所述横向延伸通道的高度,直到所述横向延伸通道避开所述一个或多个潜在障碍物为止,以模拟所述第二物体以相反次序沿接近路径的搬运。
16. 一种机器人系统,所述机器人系统包括:
通信装置,所述通信装置被配置为通过电路传达数据;以及
耦接到所述通信装置的至少一个处理器,所述至少一处理器用于:
至少部分地基于所传达数据,获得第一物体模型和第二物体模型,其中根据离散化单元,所述第一物体模型和所述第二物体模型分别是第一物体和第二物体的物理尺寸,形状,或它们的组合的离散化代表,所述第一物体模型和所述第二物体模型分别代表被指定用于放置在任务位置处的一个或多个容器中的所述第一物体和所述第二物体;
访问代表容器的容器模型,所述容器具有在容器底座上方延伸的支撑壁,其中根据所述离散化单元,所述容器模型是所述容器的离散化代表;
基于将所述第一物体模型和所述第二物体模型叠加在所述容器模型上来导出打包计划,所述打包计划包括用于放置所述第一物体的第一放置位置和用于放置所述第二物体的第二放置位置,其中:
所述第一放置位置代表所述容器内与所述支撑壁直接相邻的位置,
所述第二放置位置代表所述第一放置位置上方并且在所述容器内的位置,在所述位置中,所述第二物体的一部分朝向所述支撑壁横向地突出超出所述第一物体的外围边缘,并且
所述第二放置位置用于利用所述支撑壁支撑被放置在所述第一物体上方的所述第二物体;以及
实施所述打包计划以使用机器人臂和端部执行器将所述第一物体和所述第二物体放置在所述容器中。
17.一种在其上存储有处理器指令的有形非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行一种方法,所述方法包括:
获得第一物体模型和第二物体模型,其中根据离散化单元,所述第一物体模型和所述第二物体模型分别是第一物体和第二物体的物理尺寸,形状,或它们的组合的离散化代表,所述第一物体模型和所述第二物体模型分别代表被指定用于放置在任务位置处的一个或多个容器中的所述第一物体和所述第二物体;
访问代表容器的容器模型,所述容器具有在容器底座上方延伸的支撑壁,其中根据所述离散化单元,所述容器模型是所述容器的离散化代表;
基于将所述第一物体模型和所述第二物体模型叠加在所述容器模型上方来导出打包计划,所述打包计划包括用于放置所述第一物体的第一放置位置和用于放置所述第二物体的第二放置位置,其中:
所述第一放置位置代表所述容器内与所述支撑壁直接相邻的位置,
所述第二放置位置代表所述第一放置位置上方并且在所述容器内的位置,在所述位置中,所述第二物体的一部分朝向所述支撑壁横向地突出超出所述第一物体的外围边缘,并且
所述第二放置位置用于利用所述支撑壁支撑被放置在所述第一物体上方的所述第二物体;以及
实施所述打包计划以使用机器人臂和端部执行器将所述第一物体和所述第二物体放置在所述容器中。
18.如权利要求17所述的有形非暂时性计算机可读介质,其中导出所述打包计划包括:
导出所述容器模型内用于放置所述第二物体的候选位置;
基于将所述第一物体模型放置在所述第一放置位置处并将所述第二物体模型放置在所述候选位置处,估计与所述候选位置相关联的一个或多个属性;以及
当所估计属性满足壁支撑规则时,将所述候选位置验证为所述第二放置位置,所述壁支撑规则代表用于将物体放置成抵靠竖直取向的容器部分并直接接触所述竖直取向的容器部分的一个或多个要求。
19.如权利要求17所述的有形非暂时性计算机可读介质,其中导出所述打包计划包括:
导出所述容器模型内用于将所述第二物体与所述支撑壁分开放置的候选位置;
基于将所述第一物体模型放置在所述第一放置位置处并将所述第二物体模型放置在所述候选位置处,估计与所述候选位置相关联的枢轴位置,其中所述枢轴位置代表所述第一物体的外围边缘或最高部分;
基于将所述第二物体模型朝向所述支撑壁移位和/或将所述第二物体模型围绕所述枢轴位置旋转来导出一个或多个移位姿势,其中所述一个或多个移位姿势代表所述第二物体从所述候选位置移位并直接接触所述支撑壁;以及
当所述一个或多个移位姿势满足倾斜支撑规则时,将所述候选位置验证为所述第二放置位置,所述倾斜支撑规则代表用于将物体与竖直取向的容器部分横向分开放置的一个或多个要求。
20.如权利要求17所述的有形非暂时性计算机可读介质,其中导出所述打包计划包括:
导出所述容器模型内用于将所述第二物体悬垂在中间物体之上的候选位置,所述中间物体悬垂在所述第一物体之上;
基于将所述第一物体模型放置在所述第一放置位置处并将所述第二物体模型放置在高于所述中间物体的位置的所述候选位置处,估计与所述候选位置相关联的一个或多个属性;以及
当所估计属性满足多重悬垂规则时,将所述候选位置验证为所述第二放置位置,所述多重悬垂规则代表用于将多个物体放置成悬垂在底部支撑物体之上的一个或多个要求。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962931161P | 2019-11-05 | 2019-11-05 | |
US62/931,161 | 2019-11-05 | ||
US16/905,837 US11020854B2 (en) | 2019-11-05 | 2020-06-18 | Robotic system with wall-based packing mechanism and methods of operating same |
US16/905,837 | 2020-06-18 | ||
CN202010900791.9A CN112775960A (zh) | 2019-11-05 | 2020-08-31 | 具有基于壁的打包机制的机器人系统及其操作方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010900791.9A Division CN112775960A (zh) | 2019-11-05 | 2020-08-31 | 具有基于壁的打包机制的机器人系统及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112589791A CN112589791A (zh) | 2021-04-02 |
CN112589791B true CN112589791B (zh) | 2022-02-08 |
Family
ID=75686827
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011167199.9A Active CN112589791B (zh) | 2019-11-05 | 2020-08-31 | 具有基于壁的打包机制的机器人系统及其操作方法 |
CN202010900791.9A Pending CN112775960A (zh) | 2019-11-05 | 2020-08-31 | 具有基于壁的打包机制的机器人系统及其操作方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010900791.9A Pending CN112775960A (zh) | 2019-11-05 | 2020-08-31 | 具有基于壁的打包机制的机器人系统及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11020854B2 (zh) |
JP (2) | JP6771799B1 (zh) |
KR (1) | KR20210054448A (zh) |
CN (2) | CN112589791B (zh) |
DE (1) | DE102020127473A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020091846A1 (en) * | 2018-10-30 | 2020-05-07 | Mujin, Inc. | Automated package registration systems, devices, and methods |
US10369701B1 (en) | 2018-10-30 | 2019-08-06 | Mujin, Inc. | Automated package registration systems, devices, and methods |
US11216014B1 (en) * | 2019-08-01 | 2022-01-04 | Amazon Technologies, Inc. | Combined semantic configuration spaces |
US11020854B2 (en) * | 2019-11-05 | 2021-06-01 | Mujin, Inc. | Robotic system with wall-based packing mechanism and methods of operating same |
EP3862939A1 (en) * | 2020-02-05 | 2021-08-11 | Tata Consultancy Services Limited | System and method for autonomous multi-bin parcel loading system |
EP3866079A1 (en) * | 2020-02-12 | 2021-08-18 | Tata Consultancy Services Limited | Method and system for automated object packing |
US11443449B2 (en) * | 2020-02-26 | 2022-09-13 | Zebra Technologies Corporation | Three-dimensional (3D) imaging systems and methods for virtual grading of package walls in commercial trailer loading |
US11772833B1 (en) * | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Systems and methods for automated custom shipping containers |
US11511417B1 (en) * | 2020-05-18 | 2022-11-29 | Amazon Technologies, Inc. | Conveyance modulation based on fragility ratings |
US11334085B2 (en) * | 2020-05-22 | 2022-05-17 | The Regents Of The University Of California | Method to optimize robot motion planning using deep learning |
US20220016779A1 (en) * | 2020-07-15 | 2022-01-20 | The Board Of Trustees Of The University Of Illinois | Autonomous Robot Packaging of Arbitrary Objects |
JP7395451B2 (ja) * | 2020-09-16 | 2023-12-11 | 株式会社東芝 | ハンドリング装置、処理装置、コントローラ及びプログラム |
US11905115B2 (en) * | 2021-04-30 | 2024-02-20 | Dexterity, Inc. | Robotic system for identifying items |
US20220402708A1 (en) * | 2021-06-16 | 2022-12-22 | Dexterity, Inc. | Collision avoidance based on vision data, geometric data and physics engine evaluation |
US20220402710A1 (en) * | 2021-06-16 | 2022-12-22 | Dexterity, Inc. | Simulated box placement for algorithm evaluation and refinement |
JP2024525277A (ja) * | 2021-06-16 | 2024-07-12 | デクステリティ・インコーポレーテッド | 将来のシーケンスの限られた知識でパレット上に箱をプレースするための木検索ベースアプローチを用いるためのワークフロー |
DE102021213568A1 (de) | 2021-11-30 | 2023-06-01 | Gebhardt Fördertechnik GmbH | Lager- und Entnahmesystem sowie Verfahren zum Betreiben eines Lager- und Entnahmesystems |
CN114275211B (zh) * | 2022-01-10 | 2023-03-03 | 季华实验室 | 一种防止物体挤压的自动化堆放方法及装置 |
US20230245036A1 (en) * | 2022-01-31 | 2023-08-03 | Dexterity, Inc. | Optimization of package weight distribution |
CN114803570B (zh) * | 2022-04-20 | 2023-06-09 | 北京汇力智能科技有限公司 | 物料抓取策略的确定方法、装置、存储介质以及电子设备 |
CN117733833A (zh) * | 2022-09-15 | 2024-03-22 | 罗伯特·博世有限公司 | 用于确定对象的放置方案的方法、装置和计算机可读存储介质 |
CN117961877A (zh) * | 2022-10-25 | 2024-05-03 | 罗伯特·博世有限公司 | 用于确定放置对象的路径的方法、装置和计算机可读存储介质 |
CN115457088B (zh) * | 2022-10-31 | 2023-03-24 | 成都盛锴科技有限公司 | 一种列车定轴方法及系统 |
EP4410497A1 (en) | 2023-02-01 | 2024-08-07 | Siemens Aktiengesellschaft | Robotic packing of unknown objects |
CN117067204A (zh) | 2023-08-18 | 2023-11-17 | 浙江恒逸石化有限公司 | 控制方法、装置、设备以及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5908283A (en) | 1996-11-26 | 1999-06-01 | United Parcel Service Of Americia, Inc. | Method and apparatus for palletizing packages of random size and weight |
JP3969334B2 (ja) | 2003-04-04 | 2007-09-05 | 株式会社ダイフク | 物品の積付方法 |
CA2988122A1 (en) * | 2015-06-02 | 2016-12-08 | Alert Corporation | Storage and retrieval system |
US9600798B2 (en) * | 2015-08-12 | 2017-03-21 | Amazon Technologies, Inc. | Automated materials handling facility |
JP6737087B2 (ja) | 2016-09-07 | 2020-08-05 | 株式会社ダイフク | 物品積載設備 |
DE102017000524A1 (de) * | 2017-01-20 | 2018-07-26 | Liebherr-Verzahntechnik Gmbh | Vorrichtung zum automatisierten Entnehmen von in einem Behälter angeordneten Werkstücken |
US10766149B2 (en) * | 2018-03-23 | 2020-09-08 | Amazon Technologies, Inc. | Optimization-based spring lattice deformation model for soft materials |
US10335947B1 (en) * | 2019-01-18 | 2019-07-02 | Mujin, Inc. | Robotic system with piece-loss management mechanism |
US10456915B1 (en) * | 2019-01-25 | 2019-10-29 | Mujin, Inc. | Robotic system with enhanced scanning mechanism |
US10576630B1 (en) * | 2019-05-31 | 2020-03-03 | Mujin, Inc. | Robotic system with a robot arm suction control mechanism and method of operation thereof |
US10618172B1 (en) * | 2019-05-31 | 2020-04-14 | Mujin, Inc. | Robotic system with error detection and dynamic packing mechanism |
CN112405570A (zh) * | 2019-08-21 | 2021-02-26 | 牧今科技 | 用于夹持和保持物体的机器人多夹持器组件和方法 |
US11020854B2 (en) * | 2019-11-05 | 2021-06-01 | Mujin, Inc. | Robotic system with wall-based packing mechanism and methods of operating same |
-
2020
- 2020-06-18 US US16/905,837 patent/US11020854B2/en active Active
- 2020-07-31 JP JP2020130375A patent/JP6771799B1/ja active Active
- 2020-08-26 US US17/003,774 patent/US11491654B2/en active Active
- 2020-08-31 CN CN202011167199.9A patent/CN112589791B/zh active Active
- 2020-08-31 CN CN202010900791.9A patent/CN112775960A/zh active Pending
- 2020-09-23 JP JP2020158291A patent/JP2021075395A/ja active Pending
- 2020-10-05 KR KR1020200128392A patent/KR20210054448A/ko unknown
- 2020-10-19 DE DE102020127473.4A patent/DE102020127473A1/de active Pending
-
2022
- 2022-11-07 US US17/982,466 patent/US20230150134A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2021075395A (ja) | 2021-05-20 |
KR20210054448A (ko) | 2021-05-13 |
US11020854B2 (en) | 2021-06-01 |
US20210129333A1 (en) | 2021-05-06 |
US20230150134A1 (en) | 2023-05-18 |
JP6771799B1 (ja) | 2020-10-21 |
US11491654B2 (en) | 2022-11-08 |
CN112589791A (zh) | 2021-04-02 |
JP2021074867A (ja) | 2021-05-20 |
US20210129334A1 (en) | 2021-05-06 |
CN112775960A (zh) | 2021-05-11 |
DE102020127473A1 (de) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112589791B (zh) | 具有基于壁的打包机制的机器人系统及其操作方法 | |
JP6729953B1 (ja) | エラー検出および動的パッキング機構を有するロボットシステム | |
US12065318B2 (en) | Robotic system with packing mechanism | |
KR102424718B1 (ko) | 동적 패킹 메커니즘을 구비한 로봇 시스템 | |
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 |