CN115697645A - 用于执行机器人运动规划和储存库检测的方法和计算系统 - Google Patents

用于执行机器人运动规划和储存库检测的方法和计算系统 Download PDF

Info

Publication number
CN115697645A
CN115697645A CN202280004888.9A CN202280004888A CN115697645A CN 115697645 A CN115697645 A CN 115697645A CN 202280004888 A CN202280004888 A CN 202280004888A CN 115697645 A CN115697645 A CN 115697645A
Authority
CN
China
Prior art keywords
repository
destination
image information
command
trajectory
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.)
Pending
Application number
CN202280004888.9A
Other languages
English (en)
Inventor
魯仙·出杏光
叶旭涛
哈姆迪·萨鲁尔
普蒂查·勒克特库尔塔农
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Technology
Original Assignee
Mujin Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mujin Technology filed Critical Mujin Technology
Priority to CN202310835720.9A priority Critical patent/CN116638526A/zh
Publication of CN115697645A publication Critical patent/CN115697645A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1635Programme controls characterised by the control loop flexible-arm control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39102Manipulator cooperating with conveyor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45063Pick and place manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50393Floor conveyor, AGV automatic guided vehicle

Abstract

提供了一种用于在源储存库和目的储存库之间转移物体的方法和计算系统。计算系统被配置为通过预规划的和基于图像的轨迹的组合来操作,以提高物体转移的速度和可靠性。计算系统被配置为捕获储存库的图像信息并使用捕获的信息来改变或调整预规划的轨迹以提高性能。

Description

用于执行机器人运动规划和储存库检测的方法和计算系统
对相关申请的交叉引用
本申请要求于2022年4月29日提交的题为“METHOD AND COMPUTING SYSTEM FORPERFORMING ROBOT MOTION PLANNING AND REPOSITORY DETECTION”的第17/733,024号美国申请和2021年5月4日提交的题为“ROBOTIC SYSTEM FOR ADJUSTING ROBOT TRAJECTORY”的第63/183,685号美国临时申请的权益,这些申请中的每一个的全部内容通过引用并入本文。
技术领域
本技术总体上针对机器人系统,并且更具体地针对用于执行物体大小测量和/或最小可行范围(region)检测的系统、过程和技术。
背景技术
随着它们不断提高的性能和降低的成本,许多机器人(例如,被配置为自动/自主地执行物理动作的机器)现在广泛用于各种不同的领域。例如,机器人可用于在制造和/或组装、填充(packing)和/或打包、运输和/或装运等中执行各种任务(例如,通过空间操纵或转移物体)。在执行任务时,机器人可以复制人类动作,从而替代或减少执行危险或重复性任务另外所需的人类参与。
发明内容
在实施例中,提供了一种计算系统。该计算系统包括通信接口,该通信接口被配置为与机器人通信,该机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到机械臂的相机;至少一个处理电路,被配置为,当机器人处于包括源储存库和目的储存库的物体转移范围中时,执行以下步骤以用于将物体从源储存库转移到目的储存库。这些步骤包括输出第一目的储存库接近命令以用于使机械臂以使相机被指向目的储存库的方式接近目的储存库;接收用于描述目的储存库的图像信息,其中图像信息是在第一目的储存库接近命令被执行后由相机生成的;基于图像信息执行储存库检测操作,该储存库检测操作确定以下至少一项:用于描述目的储存库的结构的储存库结构信息、用于描述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于目的储存库中的储存库内容信息;在相机已生成用于描述目的储存库的图像信息之后,输出源储存库接近命令以用于使机械臂接近源储存库;在源储存库接近命令被执行后,输出物体拾取命令以用于使末端执行器装置从源储存库拾取物体;在物体拾取命令被执行后,输出第二目的储存库接近命令以用于使机械臂接近目的储存库;在第二目的储存库接近命令被执行后,输出物体放置命令以用于使末端执行器装置将物体放置在目的储存库中,其中物体放置命令是基于储存库检测操作的结果生成的,其中结果包括储存库结构信息、储存库姿势信息或储存库内容信息中的至少一个。
在实施例中,提供了一种用于将物体从源储存库转移到目的储存库的机器人控制方法。该方法可由至少一个处理电路经由通信接口操作,该通信接口被配置为与机器人通信,该机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到机械臂的相机。该方法包括输出第一目的储存库接近命令以用于使机械臂以使相机被指向目的储存库的方式接近目的储存库;接收用于描述目的储存库的图像信息,其中图像信息是在第一目的储存库接近命令被执行后由相机生成的;基于图像信息执行储存库检测操作,该储存库检测操作确定以下至少一项:用于描述目的储存库的结构的储存库结构信息、用于描述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于目的储存库中的储存库内容信息;在相机已生成用于描述目的储存库的图像信息之后,输出源储存库接近命令以用于使机械臂接近源储存库;在源储存库接近命令被执行后,输出物体拾取命令以用于使末端执行器装置从源储存库拾取物体;在物体拾取命令被执行后,输出第二目的储存库接近命令以用于使机械臂接近目的储存库;在第二目的储存库接近命令被执行后,输出物体放置命令以用于使末端执行器装置将物体放置在目的储存库中,其中物体放置命令是基于储存库检测操作的结果生成的,其中结果包括储存库结构信息、储存库姿势信息或储存库内容信息中的至少一个。
在实施例中,提供了一种非暂时性计算机可读介质。非暂时性计算机可读介质配置有可执行指令,该可执行指令用于实现用于将物体从源储存库转移到目的储存库的机器人控制方法,该方法可由至少一个处理电路经由通信接口操作,该通信接口被配置为与机器人通信,该机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到机械臂的相机。该方法包括输出第一目的储存库接近命令以用于使机械臂以使相机被指向目的储存库的方式接近目的储存库;接收用于描述目的储存库的图像信息,其中图像信息是在第一目的储存库接近命令被执行后由相机生成的;基于图像信息执行储存库检测操作,该储存库检测操作确定以下至少一项:用于描述目的储存库的结构的储存库结构信息、用于描述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于目的储存库中的储存库内容信息;在相机已生成用于描述目的储存库的图像信息之后,输出源储存库接近命令以用于使机械臂接近源储存库;在源储存库接近命令被执行后,输出物体拾取命令以用于使末端执行器装置从源储存库拾取物体;在物体拾取命令被执行后,输出第二目的储存库接近命令以用于使机械臂接近目的储存库;在第二目的储存库接近命令被执行后,输出物体放置命令以用于使末端执行器装置将物体放置在目的储存库中,其中物体放置命令是基于储存库检测操作的结果生成的,其中结果包括储存库结构信息、储存库姿势信息或储存库内容信息中的至少一个。
附图说明
图1A-1D示出了与本文的实施例一致的用于执行或促进定义最小可行范围的系统。
图2A-2F提供了示出与本文的实施例一致的被配置为执行或促进定义最小可行范围的计算系统的框图。
图3A-3F示出了根据本文的实施例的其中可以执行定义最小可行范围的环境。
图4提供了示出根据本文的实施例的定义最小可行范围的方法的流程图。
图5A-5C示出了与本文的实施例一致的机械臂的运动规划轨迹。
图6示出了与与本文的实施例一致的储存库模板。
具体实施方式
本文描述了用于具有协调转移机制的机器人系统的系统和方法。根据本文描述的实施例配置的机器人系统(例如,每个执行一个或多个指定任务的设备的集成系统)通过协调多个单元(例如,机器人)的操作来自主地执行集成任务。
本文描述的技术为现有的基于计算机的图像识别和机器人控制领域提供了技术改进。技术改进提供了机器人轨迹规划操作的总体速度、可靠性和准确性的提高。本文描述的机器人轨迹规划操作包括预规划的轨迹和调整的轨迹的组合,来以更高的速度、可靠性和准确性来完成机器人任务(抓取和移动物体)。
特别地,本文描述的本技术通过允许预规划的轨迹和调整的轨迹的智能组合来改进机器人系统。预规划的轨迹可用来允许机械臂贯穿装载/卸载区中快速移动,而无需移动期间的大量计算。然而,在物体的来源和目的地有差异的情况下,严格依赖预规划的轨迹可能具有降低的准确性和可靠性的缺点。图像分析调整的轨迹可以以速度为代价提供更准确和可靠的物体拾取和放置。本文描述的系统和方法将预规划的轨迹和图像辅助轨迹结合,以比单独使用任一方法提高速度、准确性和可靠性。预规划的轨迹可用于将机械臂定位于靠近目标位置,而图像辅助轨迹可用于调整或微调最终轨迹以用于拾取或放置物体。因此,本文描述的方法和系统为计算机辅助机器人控制的技术领域中出现的技术问题提供了技术方案。
在以下中,具体细节被阐述以提供对当前公开的技术的理解。在实施例中,本文介绍的技术可被实践而不包括本文公开的每个具体细节。在其他情况下,诸如具体功能或例程的众所周知的特征未被详细描述以避免不必要地混淆本公开。本说明书中对“实施例”、“一个实施例”等的引用意味着正在描述的特定特征、结构、材料或特性包括在本公开的至少一个实施例中。因此,本说明书中的这样的短语的出现不一定都指相同的实施例。另一方面,这样的引用也不一定是相互排斥的。此外,特定特征、结构、材料或特性可以在一个或多个实施例中以任何合适的方式组合。应当理解,图中所示的各种实施例仅仅是说明性的表示并且不一定按比例绘制。
为清楚起见,描述众所周知且通常与机器人系统和子系统相关联但可能不必要地混淆所公开技术的一些重要方面的结构或过程的若干细节在以下描述中未被阐述。此外,尽管以下公开阐述了本技术的不同方面的若干实施例,但若干其他实施例可具有与本部分中描述的那些不同的配置或不同的组件。因此,所公开的技术可以具有有附加元素或没有下面描述的元素中的若干元素的其他实施例。
下面描述的本公开的许多实施例或方面可以采取计算机或控制器可执行指令的形式,包括由可编程计算机或控制器执行的例程。相关领域的技术人员将理解,所公开的技术可以在除了下面所示和描述的那些之外的计算机或控制器系统上或通过其实践。本文描述的技术可以体现在专用计算机或数据处理器中,该专用计算机或数据处理器被具体编程、配置或构造为执行下述计算机可执行指令中的一个或多个。因此,如本文通常使用的术语“计算机”和“控制器”是指任何数据处理器,并且可以包括互联网工具和手持设备(包括掌上型计算机、可穿戴计算机、蜂窝或移动电话、多处理器系统、基于处理器或可编程的消费电子产品、网络计算机、小型计算机等)。这些计算机和控制器处理的信息可以在包括液晶显示器(LCD)的任何合适的显示介质上呈现。用于执行计算机或控制器可执行任务的指令可以存储在包括硬件、固件或硬件和固件的组合的任何合适的计算机可读介质中或上。指令可以包含在包括例如闪存驱动器、USB设备和/或其他合适的介质的任何合适的存储器设备中。
术语“耦合”和“连接”以及它们的派生词在本文中可以用来描述组件之间的结构关系。应该理解,这些术语不旨在作为彼此的同义词。相反,在特定实施例中,“连接”可用于指示两个或更多个元素彼此直接接触。除非上下文中另有明确说明,否则术语“耦合”可用于指示两个或更多个元素直接或间接(通过它们之间的其他插入元素)彼此接触,或者两个或更多个元素彼此合作或交互(例如,如在因果关系中,诸如用于信号传输/接收或用于功能调用),或两者兼而有之。
本文对通过计算系统进行的图像分析的任何参考可以根据或使用空间结构信息来执行,该空间结构信息可以包括描述相对于所选点的各种位置的相应深度值的深度信息。深度信息可用于标识物体或估计物体如何在空间上排列。在某些情况下,空间结构信息可包括或可用于生成描述物体的一个或多个表面的位置的点云。空间结构信息仅仅是可能的图像分析的一种形式,并且本领域技术人员已知的其他形式可以根据本文描述的方法使用。
图1A示出了用于执行物体检测或者更具体的物体识别的系统1500。更特别地,系统1500可以包括计算系统1100和相机1200。在此示例中,相机1200可以被配置为生成图像信息,该图像信息描述或以其他方式表示相机1200所处的环境,或更具体地表示相机1200的视场(也被称为相机视场)中的环境。环境可以是例如仓库、制造工厂、零售空间或其他场所。在这样的情况下,图像信息可以表示位于这样的场所的物体,诸如盒子、柜子、箱子、板条箱或其他容器。系统1500可以被配置为诸如通过使用图像信息在相机视场中的各个物体之间进行区分来生成、接收和/或处理图像信息以基于图像信息执行物体识别或物体注册,和/或基于图像信息执行机器人交互规划,如下面更详细地讨论的(在本公开中术语“和/或”和“或”可互换使用)。机器人交互规划可以用于例如控制场所处的机器人以促进机器人与容器或其他物体之间的机器人交互。计算系统1100和相机1200可以位于相同的场所,或者可以彼此远离。例如,计算系统1100可以是托管在远离仓库或零售空间的数据中心中的云计算平台的一部分,并且可以经由网络连接与相机1200通信。
在实施例中,相机1200(其也可以被称为图像感测设备)可以是2D相机和/或3D相机。例如,图1B示出了系统1500A(其可以是系统1500的实施例),该系统1500A包括计算系统1100以及相机1200A和相机1200B,相机1200A和相机1200B两者都可以是相机1200的实施例。在此示例中,相机1200A可以是被配置为生成2D图像信息的2D相机,该2D图像信息包括或形成描述相机的视场中的环境的视觉外观的2D图像。相机1200B可以是被配置为生成3D图像信息的3D相机(也被称为空间结构感测相机或空间结构感测设备),该3D图像信息包括或形成关于相机的视场中的环境的空间结构信息。该空间结构信息可以包括深度信息(例如,深度图),该深度信息描述了相对于相机1200B的各种位置的相应深度值,诸如相机1200的视场中各种物体的表面上的位置。相机的视场中或物体的表面上的这些位置也可被称为物理位置。在此示例中,深度信息可以用于估计物体如何被空间地布置在三维(3D)空间中。在某些情况下,空间结构信息可以包括或可以用于生成点云,该点云描述了相机1200B的视场中物体的一个或多个表面上的位置。更具体地,空间结构信息可以描述物体的结构(也被称为物体结构)上的各种位置。
在实施例中,系统1500可以是用于促进机器人与相机1200的环境中的各种物体之间的机器人交互的机器人操作系统。例如,图1C示出了机器人操作系统1500B,其可以是图1A和图1B的系统1500/1500A的实施例。机器人操作系统1500B可以包括计算系统1100、相机1200和机器人1300。如上所述,机器人1300可以用于与相机1200的环境中的一个或多个物体(诸如与盒子、板条箱、柜子或其他容器)交互。例如,机器人1300可以被配置为从一个位置拾取容器并将它们移动到另一位置。在某些情况下,机器人1300可以用于执行在其中一组容器或其他物体被卸载并移动到例如传送带的卸垛操作。在某些实现中,相机1200可以被附接到机器人1300,诸如被附接到机器人1300的机械臂3320。在某些实现中,相机1200可以与机器人1300分开。例如,相机1200可以被安装到仓库的天花板或其他结构,并且可以相对于该结构保持固定。
在实施例中,图1A-1C的计算系统1100可以形成或集成到机器人1300,其也被称为机器人控制器。机器人控制系统可以被包括在系统1500B中,并且可以被配置为例如为机器人1300生成命令,诸如用于控制机器人1300与容器或其他物体之间的机器人交互的机器人交互移动命令。在这样的实施例中,计算系统1100可以被配置为基于例如由相机1200生成的图像信息来生成这样的命令。例如,计算系统1100可以被配置为基于图像信息计算运动规划,其中运动规划可以旨在用于例如抓持或以其他方式拾取物体。计算系统1100可生成一个或多个机器人交互移动命令以执行运动规划。
在实施例中,计算系统1100可以形成视觉系统或是视觉系统的一部分。视觉系统可以是生成例如视觉信息的系统,该视觉信息描述机器人1300所处的环境,或替代地或附加地,描述相机1200所处的环境。视觉信息可以包括上面讨论的3D图像信息和/或2D图像信息,或某些其他图像信息。在某些情况下,如果计算系统1100形成视觉系统,则视觉系统可以是上面讨论的机器人控制系统的一部分,或者可以与机器人控制系统分开。如果视觉系统与机器人控制系统是分开的,则视觉系统可以被配置为输出描述机器人1300所处的环境的信息。信息可以被输出到机器人控制系统,该机器人控制系统可以从视觉系统接收这样的信息并且基于该信息来执行运动规划和/或生成机器人交互移动命令。关于视觉系统的进一步信息在下面详细说明。
在实施例中,计算系统1100可以经由直接连接(诸如,经由专用有线通信接口(诸如,RS-232接口、通用串行总线(USB)接口)和/或经由本地计算机总线(诸如外围组件互连(PCI)总线)提供的连接)与相机1200和/或机器人1300进行通信。在实施例中,计算系统1100可以经由网络与相机1200和/或与机器人1300通信。网络可以是任何类型和/或形式的网络,诸如个人局域网(PAN)、局域网(LAN)(例如,内联网)、城域网(MAN)、广域网(WAN)或互联网。网络可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(TCP/IP)、ATM(异步传输模式)技术、SONET(同步光网络)协议或SDH(同步数字体系)协议。
在实施例中,计算系统1100可以与相机1200和/或与机器人1300直接通信信息,或者可以经由中间存储设备或更一般地经由中间非暂时性计算机可读介质进行通信。例如,图1D示出了可以是系统1500/1500A/1500B的实施例的系统1500C,该系统1500C包括非暂时性计算机可读介质1400,该非暂时性计算机可读介质1400可以在计算系统1100的外部,并且可以充当外部缓冲器或用于存储例如由相机1200生成的图像信息的储存库。在这样的示例中,计算系统1100可以检索或以其他方式接收来自非暂时性计算机可读介质1400的图像信息。非暂时性计算机可读介质1400的示例包括电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合。非暂时性计算机可读介质可以形成例如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SDD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)和/或记忆棒。
如上所述,相机1200可以是3D相机和/或2D相机。2D相机可以被配置为生成2D图像,诸如彩色图像或灰度图像。3D相机可以是例如深度感测相机,诸如飞行时间(TOF)相机或结构化光相机,或任何其他类型的3D相机。在某些情况下,2D相机和/或3D相机可以包括图像传感器,诸如电荷耦合器件(CCD)传感器和/或互补金属氧化物半导体(CMOS)传感器。在实施例中,3D相机可以包括激光器、LIDAR设备、红外设备、明/暗传感器、运动传感器、微波检测器、超声检测器、RADAR检测器或被配置为捕获深度信息或其他空间结构信息的任何其他设备。
如上所述,图像信息可以由计算系统1100处理。在实施例中,计算系统1100可以包括或被配置为服务器(例如,具有一个或多个服务器刀片、处理器等)、个人计算机(例如,台式计算机、膝上型计算机等)、智能电话、平板计算设备和/或其他任何其他计算系统。在实施例中,计算系统1100的任何或所有功能可以作为云计算平台的一部分来执行。计算系统1100可以是单个计算设备(例如,台式计算机),或者可以包括多个计算设备。
图2A提供了示出计算系统1100的实施例的框图。本实施例中的计算系统1100包括至少一个处理电路1110和非暂时性计算机可读介质(或多个介质)1120。在某些情况下,处理电路1110可以包括被配置为执行存储在非暂时性计算机可读介质1120(例如,计算机存储器)上的指令(例如,软件指令)的处理器(例如,中央处理单元(CPU)、专用计算机和/或板载服务器)。在某些实施例中,处理器可以包括在可操作地耦合到其他电子/电气设备的单独/独立控制器中。处理器可以实现程序指令以控制其他设备/与其他设备接口,从而使计算系统1100执行动作、任务和/或操作。在实施例中,处理电路1110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“PLC”)、专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)、其任何组合或任何其他处理电路。
在实施例中,作为计算系统1100的一部分的非暂时性计算机可读介质1120可以是上面讨论的中间非暂时性计算机可读介质1400的替代或附加。非暂时性计算机可读介质1120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SDD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、其任何组合或任何其他存储设备。在某些情况下,非暂时性计算机可读介质1120可以包括多个存储设备。在某些实现中,非暂时性计算机可读介质1120被配置为存储由相机1200生成并由计算系统1100接收的图像信息。在某些情况下,非暂时性计算机可读介质1120可以存储用于执行物体识别操作的一个或多个模型模板。非暂时性计算机可读介质1120可以替代地或附加地存储计算机可读程序指令,该计算机可读程序指令在由处理电路1110执行时,使处理电路1110执行这里描述的一种或多种方法。
图2B描绘了计算系统1100A,其是计算系统1100的实施例并且包括通信接口1130。通信接口1130可以被配置为例如接收由图1A-1D的相机1200生成的图像信息。可以经由以上讨论的中间非暂时性计算机可读介质1400或网络,或者经由相机1200与计算系统1100/1100A之间的更直接的连接来接收图像信息。在实施例中,通信接口1130可以被配置为与图1C的机器人1300通信。如果计算系统1100在机器人控制系统外部,则计算系统1100的通信接口1130可以被配置为与机器人控制系统进行通信。通信接口1130也可以被称为通信组件或通信电路,并且可以包括例如被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括RS-232端口控制器、USB控制器、以太网控制器、
Figure BDA0003982525240000111
控制器、PCI总线控制器、任何其他通信电路或其组合。
在实施例中,如图2C所示,非暂时性计算机可读介质1120可以包括被配置为存储本文讨论的一个或多个数据对象(data objects)的存储空间1122。例如,存储空间可以存储模型模板、机械臂移动命令以及计算系统1100B可能需要访问的任何附加数据对象。
在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令编程。例如,图2D示出了计算系统1100C,其是计算系统1100/1100A/1100B的实施例,其中处理电路1110由包括物体识别模块1121、运动规划模块1129和物体操纵模块1126的一个或多个模块编程。运动规划模块1129(以及与计算系统1100C相关联的任何其他模块)可以根据需要访问轨迹信息1128和模板信息1127。
在实施例中,物体识别模块1121可被配置为获取和分析图像信息,如贯穿本公开所讨论的。本文讨论的关于图像信息的方法、系统和技术可以使用物体识别模块1121。如本文所讨论的,物体识别模块可用于物体识别和用于储存库识别两者。
运动规划模块1129可以被配置为规划和执行机器人的移动。例如,运动规划模块1129可以导出各个放置位置/朝向,计算对应的运动规划,或其组合以用于抓取和移动物体。运动规划模块1129可以访问和更新轨迹信息1128。轨迹信息1128可以包括可由运动规划模块1129访问和更新的预规划的初始轨迹信息。运动规划模块还可以存储调整的轨迹信息。运动规划模块1129可以访问和更新模板信息1127,包括物体模板信息和储存库模板信息(来源和目的地两者),如下面更详细讨论的。本文讨论的关于机械臂移动和轨迹的方法、系统和技术可以由运动规划模块1129执行。本文讨论的关于模型和模板的方法、系统和技术可以由运动规划模块1129执行。
物体操纵模块1126可以被配置为规划和执行机械臂的物体操纵活动,例如,抓握和释放物体以及执行机械臂命令以帮助和促进这样的抓握和释放。
参考图2E-2G和3A,解释了与可以被执行用于图像分析的物体识别模块1121相关的方法。图2E和2F示出了与图像分析方法相关联的示例图像信息,而图3A示出了与图像分析方法相关联的示例机器人环境。本文中与由计算系统进行的图像分析相关的参考可以根据或使用空间结构信息来执行,该空间结构信息可以包括描述相对于所选点的各种位置的相应深度值的深度信息。深度信息可用于标识物体或估计物体如何在空间上排列。在某些情况下,空间结构信息可包括或可用于生成描述物体的一个或多个表面的位置的点云。空间结构信息仅仅是可能的图像分析的一种形式,并且本领域技术人员已知的其他形式可以根据本文描述的方法使用。
作为示例,图2E描绘了第一组图像信息,或更具体地,2D图像信息2600,如上所述,其由相机3200(图3A中所示的)生成并且可以表示图3A的物体3530、3520、3510和储存库3110/3120/3130/3140/3150。更具体地,2D图像信息2600可以是灰度或彩色图像并且可以从相机3200的视点来描述物体3530、3520、3510和储存库3110/3120/3130/3140/3150的外观。在实施例中,2D图像信息2600可以对应于彩色图像的单个颜色通道(例如,红色、绿色或蓝色通道)。2D图像信息2600可以表示物体3530、3520、3510和储存库3110/3120/3130/3140/3150的相应面向相机的表面的外观。在图2E的示例中,2D图像信息2600可以包括相应部分2000A/2000B/2000C/2000D/2550,也被称为图像部分,其表示由相机3200成像的物体的相应表面。例如,部分2000A/2000B/2000C/2000D可以表示诸如盒子之类的物体,而部分2550可以表示诸如堆叠或安置盒子的托盘之类的部分。在图2E中,2D图像信息2600的每个图像部分2000A/2000B/2000C/2000D/2550可以是图像范围,或更具体地,像素范围(如果图像由像素形成)。2D图像信息2600的像素范围中的每个像素可以被表征为具有由一组坐标[U,V]描述的位置并且可以具有相对于相机坐标系或某个其他坐标系的值,如图2E和2F所示。每个像素还可以具有强度值,诸如0和255或0和1023之间的值。在另外的实施例中,每个像素可以包括与各种格式的像素相关联的任何附加信息(例如,色调、饱和度、强度、CMYK、RGB等)。
如上所述,在某些实施例中,图像信息可以是图像的全部或部分,诸如2D图像信息2600。例如,计算系统1100可以被配置为从2D图像信息2600中提取图像部分2000A以获取仅与对应物体相关联的图像信息。例如,计算系统1100可以基于2D图像信息2600和/或图2F中所示的3D图像信息2700通过执行图像分段操作来提取图像部分2000A。在某些实现中,图像分段操作可以包括检测2D图像信息2600中物体的物理边缘(例如,盒子的边缘)出现在的图像位置并且使用这样的图像位置来标识仅限于表示相机视场(例如,3210)中的单个物体的图像部分(例如,5610)。
图2F描绘了其中图像信息是3D图像信息2700的示例。更特别地,3D图像信息2700可以包括例如指示成像的物体/储存库的一个或多个表面(例如,顶表面或其他外表面)上的各种位置的相应深度值的深度图或点云。在某些实现中,用于提取图像信息的图像分段操作可以涉及检测3D图像信息2700中物体的物理边缘(例如,盒子的边缘)出现在的图像位置并且使用这样的图像位置来标识仅限于表示相机视场(例如,3000A)中的单个物体的图像部分(例如,2730)。
相应深度值可以相对于生成3D图像信息2700的相机3200,或者可以相对于某个其他参考点。在某些实现中,3D图像信息2700可以包括点云,该点云包括相机视场(例如,3210)中的物体的结构上的各种位置上的相应坐标。在图2F的示例中,点云可以包括描述成像的物体/储存库的相应表面上的位置的相应坐标组。坐标可以是3D坐标,诸如[X Y Z]坐标,并且可以具有相对于相机坐标系或某个其他坐标系的值。例如,3D图像信息2700可以包括指示对应物体(2000D)的表面上也被称为物理位置的一组位置27101-2710n的相应深度值的第一部分2710(也被称为图像部分)。此外,3D图像信息2700还可以包括第二、第三和第四部分2720、2730和2740。然后这些部分还可以指示可以分别由对应于物体2000B、2000A和2000C的27201-2720n、27301-2730n和27401-2740n表示的一组位置的相应深度值。包括位置27501-2750n的第五部分2750可以对应于物体2550。这些图仅仅是示例,并且可以使用具有对应的图像部分的任何数量的物体。与上述类似,获取的3D图像信息2700在某些情况下可以是由相机生成的第一组3D图像信息2700的一部分。在图2E的示例中,如果获取的3D图像信息2700表示图3A的第一物体3000A,则3D图像信息2700可被缩小为仅参考图像部分2710。
图2G示出了物体储存库的示例3D图像信息3700。3D图像信息3700可以包括具有代表储存库的第一图像部分3710和代表位于储存库中的物体的第二图像部分3830的点云。图2G仅以示例的方式,并且与本实施例一致的储存库/物体可以采取多种形式。在图2G中,3D图像信息在“正面”视图中被捕获,其中相机3200已经被直接定位在储存库的前面而无显著角度。
在实施例中,作为获取图像信息的一部分,图像归一化操作可以由计算系统1100执行。图像归一化操作可以涉及变换由相机3200生成的图像或图像部分,以便生成变换后的图像或变换后的图像部分。例如,如果获取的可以包括2D图像信息2600、3D图像信息2700或两者的组合的图像信息可经历图像归一化操作,以试图使图像信息在视点、物体姿势和照明条件中被改变。这样的归一化可被执行以促进图像信息和模型(例如,模板)信息之间的更准确比较,如下面更详细地讨论的。视点可以指物体相对于相机3200的姿势,和/或当相机3200生成表示物体的图像时相机3200正在观察物体的角度。
例如,图像信息可以在物体识别操作期间生成,其中目标储存库或物体在相机视场中。当目标储存库或物体具有相对于相机的具体姿势时,相机3200可以生成表示目标储存库或物体的图像信息。例如,目标储存库或物体可以具有使其侧表面垂直于相机3200的光轴的姿势。在这样的示例中,相机3200生成的图像信息可以表示具体的视点,诸如目标物体的侧面或正面视图。在某些情况下,相机的光轴可以配置成与目标储存库或物体成一定角度。在这样的情况下,视点可以是有角度的或倾斜的视点。在某些情况下,当相机3200在物体识别操作期间生成图像信息时,图像信息可以在诸如照明强度的特定照明条件下生成。在这样的情况下,图像信息可以表示特定的照明强度、照明颜色或其他照明条件。
在实施例中,图像归一化操作可以涉及调整由相机生成的场景的图像或图像部分,以使图像或图像部分更好地匹配与模型模板的信息相关联的视点和/或照明条件。调整可以涉及变换图像或图像部分以生成与和模型模板的视觉描述信息相关联的物体姿势或照明条件中的至少一个相匹配的变换后的图像。
视点调整可以涉及场景的图像的处理、卷绕和/或移位,使得图像表示与模型模板中的描述信息相同的视点。例如,处理包括改变图像的颜色、对比度或照明,场景的卷绕可包括更改图像的大小、维度或比例,而图像的移位可能包括更改图像的位置、朝向或旋转。在示例实施例中,处理、卷绕和/或移位可用来改变场景的图像中的物体以具有匹配或更好地对应于模型模板的视觉描述信息的朝向和/或大小。如果模型模板描述了某个物体的正面视图(例如,侧视图),则场景的图像可能被卷绕,以便也表示场景中物体的正面视图。
在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”被用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”广义上是指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件组件正在执行模块或计算机可读指令时,模块和计算机可读指令可以被描述为执行各种操作或任务。
本公开的方面涉及机械臂在装载/卸载(转移)区内的拾取和放置操作。机械臂可以被配置为从源储存库抓握物体(例如,盒子、容器等)并将物体移动到目的储存库。在实施例中,转移操作可以通过图像分析和轨迹规划来辅助。在实施例中,图像分析可以通过模型模板比较来辅助。
在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”被用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”广义上是指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件组件正在执行模块或计算机可读指令时,模块和计算机可读指令可以被描述为执行各种操作或任务。
图3A-3F示出了其中可以使用机器人轨迹规划和执行的示例环境。
图3A描绘了具有包括计算系统1100和机器人3300的系统3000(其可以是图1A-1D的系统1000/1000A/1000B/1000C的实施例)的环境。机器人3300可以包括机械臂3320、末端执行器装置3330和一个或多个相机(或光学识别设备)3310A/3310B。末端执行器装置可以包括各种机器人工具,诸如被配置用于物体交互的抓手、吸盘、爪、抓握器等。相机3310A/3310B可以是相机1200的实施例,并且可以被配置为生成表示相机视场中的场景的图像信息。系统3000可以被配置为在物体转移区域3100中操作,被布置为便于在诸如储存库3110、3120、3130、3140和3150的储存库之间转移物体。系统3000被配置为规划、促进和/或执行在物体转移区域3100中的储存库之间转移物体(例如,盒子、柜子、制造组件、部件和/或其他物理项)。
如图3A所示,传送器类型源储存库3150可以将物体带到物体转移区域3100,该区域具有一个或多个目的储存库3110-3140,其可以是货架类型储存库、柜类型储存库或任何其他合适的储存库,其可以用于例如组织或临时存储物体。货架类型储存库的示例如图3B、图3C、图3E和图3F所示。例如,一个或多个货架可以包括存储货架、制造货架等。在实施例中,货架区域中的货架可以移动到货架区域中或移出货架区域。例如,货架可以被自动导引车(AGV)3900提升并运输到货架区域中,如例如图3C和3E中所示。如下文详细讨论的,系统3000可以包括机器人3300,其被配置用于将物体放置到目的储存库中或上面,其中机器人3300可以从源储存库(诸如传送器或另一个货架)检索该物体。在某些情况下,传送器类型储存库3150上的物体可以从不同的物体转移区域(例如,卸垛区域3100A)到达,如例如图3D中所示。在卸垛区域中,与本文实施例一致的另一机器人或计算系统可以从托盘(例如,源储存库)拾取物体并将物体放置在传送器(例如,目的储存库)上。因此,取决于上下文,相同的物理结构可以用作源储存库和目的储存库两者。
图3B示出了系统3000可以在其中操作的环境的其他方面。如图3B所示,物体转移区域3100可以包括传送器类型储存库3150(例如,作为源储存库)、一个或多个货架类型储存库3110和3130,以及一个或多个柜类型储存库3120和3140。物体3520和3510可以经由储存库3150到达物体转移区域3100。在实施例中,储存库3110(存储物体3530)和储存库3150每个可以用作源储存库3610,而储存库3130用作目的储存库3630。在进一步的实施例中,取决于物体转移上下文,这些储存库中的每一个可以用作源储存库或目的储存库或两者。储存库可以用作目的储存库以接收某些物体,也可以用作源储存库,由此那些相同的物体可被检索并在以后被移动到新的储存库。
图3C示出了系统3000可以在其中操作的环境的另外方面。图3C示出了包括两个传送器类型储存库3150和3160的物体转移区域3100。在实施例中,第一传送器类型储存库3150可以用作源储存库,而第二传送器类型储存库3160可以用作目的储存库。
图3D示出了系统3000可以在其中操作的环境的另外方面。图3D示出了多个物体转移区域3100A和3100B,通过传送器类型储存库3150在它们之间提供有连接。传送器类型储存库3150可以用作物体转移区域3100A的目的储存库和物体转移区域3100B的源储存库。例如,可以通过运送卡车3800或其他车辆或运输方法(火车、船运集装箱等)将物体运送到物体转移区域3100A。因此,机器人3300A可以操作以执行例如卸垛过程,并将物体转移到传送器类型储存库3150作为目的储存库。机器人3300B可以操作以从物体转移区域3100B转移物体。图3D进一步示出了多个自主地面车辆(AGV)3900A/B/C。多个自主地面车辆(AGV)3900A/B/C可以被配置为运输货架类型储存库3610、3640、3650中的一个或多个,从而允许它们在一个物体转移区域和另一个之间转移。
图3E示出了系统3000可以在其中操作的环境的另外方面。具体地,图3E示出了货架类型储存库3110,其包含被定位用于由AGV3900A转移的物体3530。
图3F示出了系统3000可以在其中操作的环境的另外方面。具体地,图3E示出了被划分为多个储存库架36151、36152的货架类型储存库3110。储存库架3615每个可以具有被分成多个储存隔间或单元36121、36122、36123和36124的外壳。在货架类型储存库3110中,每个储存库单元3612包括一个或多个单元轨道36171-4。在实施例中,隔间或单元3612可以由轨道36171-4定义。
本公开涉及执行、促进和/或规划物体从源储存库到目的储存库的转移。图4描绘了用于执行、促进和/或规划物体从源储存库到目的储存库的转移的示例方法4000的流程图。
在实施例中,方法4000可以由例如图2A-2D的计算系统1100或图3A或3C的计算系统1100执行,或更具体地由计算系统1100的至少一个处理电路1110执行。在某些情况下,至少一个处理电路1100可以通过执行存储在非暂时性计算机可读介质(例如,1120)上的指令来执行方法4000。例如,指令可以使处理电路1110执行图2D中所示的模块中的一个或多个,其可以执行方法4000。例如,在实施例中,与物体/储存库识别相关的步骤,例如,操作4004、4006等可以由物体识别模块1121执行。例如,在实施例中,与运动和轨迹规划相关的步骤,例如,操作4002、4008、4012等,可以由运动规划模块1129执行。例如,在实施例中,与物体放置和处理相关的步骤,例如,操作4010、4014等,可以由物体操纵规划模块1126执行。在某些实施例中,运动规划模块1129和物体操纵规划模块1126可以协同操作以定义和/或规划涉及运动和物体操纵的轨迹。
方法4000的步骤可以用来实现用于执行具体任务的具体顺序机器人轨迹。作为一般概述,方法4000可以操作以使系统3000将物体从源储存库转移到目的储存库。这种转移操作可以包括机器人3300根据预规划的轨迹的操作,该预规划的轨迹根据在操作期间发生的各种操作而更新和/或细化。
例如,机器人系统可以生成预规划的轨迹。预规划的轨迹可以独立于储存库检测操作(下面描述的)或利用图像信息的任何其他操作来生成。因此,即使没有图像信息,计算系统3000也可以具有足够的关于货架、传送器或其他源或目的储存库的可能位置的信息,以至少生成初始的、预规划的轨迹。尽管在某些情况下,预规划的轨迹可能不够准确以确保末端执行器装置将能够正确地从货架的特定单元中检索物体和/或将物体放入特定单元中,但粗略的轨迹可能足以允许末端执行器装置接近货架。
出于多种原因,预规划的轨迹可能缺乏足够的准确性。在一些示例中,在货架储存库的情况下,计算系统可能缺少关于哪些货架和单元当前被占用的信息。在另一个示例中,在由AGV 3900运输的移动货架储存库的情况下,AGV 3900可能无法将货架定位在预期的确切位置。在另一个示例中,在由AGV 3900运输的移动货架储存库的情况下,AGV3900轮胎的不同充气量可能导致货架储存库处于与预期不同的高度或货架储存库处于一定角度。在其他示例中,例如,关于传送器类型储存库,物体可能停止在不同的地方或以不同的朝向/姿势/姿态(posture)/高度/位置停止。这些示例(不是详尽的)中的每一个表示物体来源或目的地被定位于靠近预期位置但不精确在预期位置中的情况。因此,有利的是使用预规划的轨迹来接近来源/目的地和改变的轨迹(例如,基于物体识别操作修改)来完成物体拾取或物体放置操作。
预规划的轨迹可以基于储存库检测操作和物体检测操作的结果来调整,其中调整的轨迹足够准确以确保末端执行器装置将能够正确地从货架的特定单元中检索物体和/或将物体放入特定单元中。机器人系统可以使用图像信息来执行储存库检测操作,这将在下面更详细地讨论。储存库检测操作可以涉及将可以附接到机械臂的相机定位在货架前面,并且生成表示货架的至少一部分的图像信息。储存库检测操作可以使用图像信息来确定关于货架的更准确信息,并且此信息可以用于控制机器人的移动以与货架交互。在实施例中,储存库检测操作还可以使用由未设置在执行物体放置的机械臂上的相机(例如,贯穿转移区域定位的固定相机和/或位于单独和不同机械臂上的移动相机)捕获的图像信息。
生成初始预规划的轨迹然后调整预规划的轨迹的一部分的处理,提供了改进机器人处理的开始时间、提高拾取/放置操作的可靠性和准确性以及减少控制机器人移动所涉及的计算量的技术优势。例如,对预规划的轨迹的使用可以允许机器人移动更早开始(例如,以移动到用于储存库检测的位置),这可以允许机器人处理来自源储存库的物体更早开始。此外,虽然轨迹的一部分可以基于储存库检测操作的结果来调整,但是粗略轨迹的剩余部分可以保持不变。此剩余部分因此可以被重新用于放置来自源储存库的另外物体。对预规划的轨迹的此部分的重新使用可以减少机器人处理操作(诸如从源储存库中移除物体并将它们放置到一个或多个目的储存库中)中所涉及的总计算量。
在方法4000中,机器人系统可以被配置和操作以控制机器人的移动以从特定源储存库中检索物体和/或将物体放置到特定目的储存库中。机器人系统可以被配置为调整机器人的预规划的或预测的轨迹,或更具体地,末端执行器装置的预规划的或预测的轨迹,其中调整的轨迹提高末端执行器装置从储存库中拾取物体和/或将物体放置在储存库上/中的准确性和可靠性。对预规划的轨迹的调整可以基于执行储存库/物体检测,这可能涉及使用图像信息来更准确地确定储存库的结构、储存库的位置和/或物体在储存库上的位置。
在实施例中,预测轨迹使机器人在来源和目的地之间移动,以用于从来源拾取物体并将物体运送到目的地。在实施例中,预测轨迹可以用作移动的一部分。在实施例中,系统3000可以包括执行多个不同预测轨迹的能力。机器人3300在预测轨迹中的移动在本文中可以被称为移动循环。
方法4000的描述是指移动循环A和移动循环B。这些循环中的移动可以包括用于还将相机(例如,附接到机械臂或其他相机的手边相机)定位在储存库前面的移动,使得相机可以生成表示储存库的图像信息,其中图像信息用于储存库/物体检测操作。
在一种类型的移动循环中(被称为循环A),如图5A和5B所描绘的。物体转移区域3100中的机器人3300可以从固定源储存库(例如,传送器)中检索物体并将其放置在一种类型的目的储存库上。在移动循环A中,源储存库是固定的,不需要储存库检测操作。
在另一种类型的移动循环(被称为循环B)中,如图5A和5C所描绘的,机器人3300可以从移动源储存库(例如,可移动的货架)检索物体,并且将物体移动到货架类型目的储存库。因此,移动循环B可以包括附加的命令来细化关于移动源储存库的机器人轨迹。
移动循环A和B仅通过示例方式提供。机器人可以被控制为具有涉及在用作来源或目的地的其他储存库之间移动物体的其他移动循环。例如,传送器类型目的储存库可能导致拒绝区域或另一个物体转移区域。拒绝区域可以用作临时存储拒绝的物体(诸如损坏的或未被计算系统识别的物体)的区域。例如,机器人可以将这样的物体直接从传送器类型源储存库或从另一个货架类型源储存库移动到传送器类型目的储存库。在某些情况下,货架中的一些或所有可以被一个或多个AGV移动到货架区域中或离开货架区域。
对移动循环A和B的描述应理解为对涉及储存库/物体检测操作的操作的描述,这些操作可用于细化、调整和以其他方式修改预规划的轨迹或创建新的轨迹。需要源和目的储存库的不同组合的移动循环可能需要本文公开的操作的不同组合和/或不同次序,而不背离本公开的范围。
下面具体关于移动循环A和移动循环B两者来描述方法4000。如下所述,移动循环A(如图5B所示)和移动循环B(如图5C所示)可以共享许多类似操作。在下面的讨论中,可能特定于一个或另一个移动循环的操作被解释为这样。然而,方法4000的步骤、过程和操作可以等同地应用于其他移动循环。方法4000可以经由包括通信接口的计算系统来执行,该通信接口被配置为与机器人通信,该机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到机械臂的相机。如本文所讨论的,计算系统还可以包括至少一个处理电路,当机器人处于包括源储存库(例如,传送器或第一货架)和目的储存库(例如,第二货架、柜子等)的物体转移范围中时,该至少一个处理电路被配置以执行用于将物体从源储存库转移到目的储存库的方法步骤。
方法4000可以以操作4002开始或以其他方式包括操作4002,其中计算系统(或其处理电路)被配置为输出第一目的储存库接近命令用于使机械臂以使相机被指向目的储存库的方式接近目的储存库。如图5A、5B和5C所示,计算系统输出第一目的储存库接近命令,该命令使机械臂例如经由目的储存库接近轨迹(例如,轨迹A1或B1)移动到相机(或多个相机)可以对目的储存库进行成像的位置。此操作可以允许计算系统通过对目的储存库的相机(或多个相机)的使用来获得图像(例如,图像信息),并从而获得关于目的储存库的信息以用于未来的机械臂动作。目的储存库接近轨迹可被计算以在机械臂当前所定位于的任何位置/配置开始。第一目的储存库接近命令可以基于第一目的储存库接近轨迹来计算。
至少一个处理电路可以进一步被配置为,以不基于任何储存库检测操作或使用物体将被运送到的具体储存库的图像或图像信息的其他操作的结果的方式,计算第一目的储存库接近轨迹。第一目的储存库接近轨迹是机械臂遵循以接近目的储存库的子轨迹,并且第一目的储存库接近命令是基于第一目的储存库接近轨迹生成的。第一目的储存库接近轨迹可以基于目的储存库位置在物体转移范围内的估计位置来计算。在实施例中,该估计位置或第一目的储存库接近轨迹可以存储在计算机系统的存储器中,例如,在包括非移动目的储存库位置的实施例中。在实施例中,相同的第一目的储存库接近轨迹可以在无修改、调整或改变的情况下被从存储器多次访问,以在分钟、小时、天、周和/或月的跨度上在不同时间执行多个第一目的储存库接近命令。
在实施例中,目的储存库是形成一组货架和单元的框架,如上所述,并可通过车辆(例如,AGV)移动到物体转移范围中以及移动到物体转移范围外以及到物体转移范围内的不同位置。在这样的情况下,至少一个处理电路还被配置为基于车辆遵循或打算遵循的车辆轨迹来确定目的储存库位置的估计位置。
方法4000可以包括操作4004,其中计算系统(或其处理电路)接收描述目的储存库的图像信息。如上面所讨论的,在第一目的储存库接近命令被执行并且相机被定位用于对目的储存库查看或成像之后,图像信息由相机(或多个相机)生成或捕获。接收图像信息还可以包括与物体识别相关的任何上述方法或技术,例如,关于成像的储存库的空间结构信息(点云)的生成。
在实施例中,机械臂可能在其移动中受限,并且因此在捕获图像信息时可能无法将相机定位在水平或正面视点,和/或可能无法将相机定位到离储存库足够远以捕获整个储存库。这可能是由于机械臂的有限的可及性和/或机械臂周围的紧密间隔。结果,在某些情况下,图像信息可以以旋转、倾斜和/或偏离角度的方式显示货架,和/或仅捕获货架的一部分。在这样的情况下,图像信息可被归一化,如上面所讨论的。
在实施例中,方法4000包括操作4006,其中计算系统基于图像信息执行储存库检测操作,该储存库检测操作确定以下至少一项:用于描述目的储存库的结构的储存库结构信息、用于描述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于目的储存库中的储存库内容信息。储存库内容信息还可以包括关于存在于目的储存库中的物体的姿势和类型的信息。如上面所讨论的,目的储存库的图像信息是由计算系统获得的。然后计算系统操作以分析或处理图像信息以确定储存库结构信息、储存库姿势信息和/或储存库内容信息中的一个或多个。
在实施例中,计算系统可以在计算系统还执行源储存库接近命令(操作4008)和物体拾取命令(操作4010)之一的时间期间执行储存库检测操作。如上面所讨论的,本文讨论的方法可以允许机器人系统操作更快并且具有较少延迟。因此,当机械臂正在执行与储存库接近命令和物体拾取命令相关联的子轨迹时,计算系统可以执行与储存库检测操作4006相关联的计算中的一些或所有。因此,机械臂在执行所描述的轨迹时可能没有必要暂停。
图像信息可以包括相机视场中的储存库的全部或至少一部分。计算系统可以使用图像信息来更精确地确定储存库和/或储存库上的物体的物理结构。结构可以直接从图像信息确定,和/或可以通过将相机所生成的图像信息与例如模型储存库模板和/或模型物体模板比较来确定。
储存库检测操作4006可以包括多种可选步骤/和/或操作以提高系统性能。下面讨论提高系统性能的步骤和/或操作。
在实施例中,储存库检测操作可以用预定义储存库模式(在本文中也称为模板)来操作。处理电路可以被配置为,在与描述储存库结构的预定义储存库模型进行比较时,确定图像信息是否满足预定义模板匹配条件。预定义模板匹配条件表示预定义储存库模型与图像信息的一部分之间的匹配的阈值、可能性或程度。预定义储存库模型可以是例如图像模板,图像信息可以与该图像模板进行比较以确定第二图像信息内的储存库的存在、对齐和/或朝向。如图6所示,表示储存库3110的结构的图像信息可以与一个或多个预定义储存库模型6110和6111进行比较,以标识一种类型的储存库并因此访问所存储的与储存库类型相关联的储存库结构信息。与预定义储存库模型的比较可以允许处理电路通过在图像信息与预定义储存库模型对齐的点处使用预定义(例如,已经处理的)模板信息来改进和加速进一步的处理,如下面进一步讨论的。在实施例中,图像信息与可以多个预定义储存库模型进行比较,以标识图像信息以其满足预定义模板匹配条件的预定义存储库模型。处理电路可以生成指示图像信息是否、多少以及以何种方式满足预定义模板匹配条件的模板匹配信息。在储存库检测操作期间获得的模板匹配信息可以用在后面的操作中,如下面讨论的,例如,在物体放置操作中。
在实施例中,储存库检测操作4006可以包括可以例如在模板匹配中使用的特征的识别,这可以涉及将图像信息中的识别的特征与储存库的模板和/或目标物体的模板进行比较。例如,如果计算系统确定目标物体位于储存库的特定范围/单元,它可能尝试裁剪图像信息以便提取与该单元对应的具体部分,并将提取的部分用于模板匹配。在某些情况下,这样的区域可以基于关于特定储存库的设置的已知信息来确定。例如,如果储存库由AGV运输到该区域中,则AGV的移动可能具有例如2cm的可能误差。在此示例中,AGV可能直接留在货架下方。因此,AGV和储存库可能位于储存库估计位置的左侧最多2厘米或右侧最多2厘米。此预期误差可以向计算系统提供对于物体或单元可能出现在图像信息中的哪里,或者更具体地,物体或单元可能出现在其中的图像区域的预期。结果,计算系统可以在图像区域或部分中搜索它可能期望的图像特征。如果计算系统确定AGV在其移动精度方面有误差(例如,2cm),它可以扩大它在其中搜索图像特征的图像区域,以便解决此可能的误差。例如,它可以在一个或多个方向上将搜索区域扩大2cm。当相机生成图像信息时,计算系统还可以基于误差确定相机与货架之间的距离。如果AGV被预期在预期位置与实际位置之间具有大量的误差,则计算系统可以使相机被定位得离货架和离AGV更远,以确保货架的相关单元落在相机的视场内。
计算系统可能期望货架结构或货架面几何形状出现在图像信息中,诸如水平层,计算系统可以搜索可以表示该层的边缘的直线。如果计算系统期待货架上特定物体类型的物体(如果货架是源货架),则它可以搜索与和该物体类型相关联的模板匹配的图像特征。更特别地,计算系统可以在图像区域或部分中搜索表示货架几何形状的特征。为了执行模板匹配,计算系统可以尝试将出现在图像信息区域或部分中的边缘或其他识别的特征与预定义储存库模型中的边缘重叠或对齐。
图像信息可以描述目的储存库上多个表面位置的相应深度值。多个表面位置可以包括例如比第二表面位置更靠近相机的第一表面位置。处理电路可以被配置为使用深度值来确定图像信息是否满足预定义模板匹配条件。例如,图像信息和预定义储存库模型之间的匹配水平或程度可以给第一位置与预定义储存库模型的匹配程度分配比第二位置与预定义储存库模型的匹配程度更多的权重。即,更靠近相机的位置可能比更远离相机的位置对匹配过程的影响更大。超过定义的匹配水平或程度可以是预定义模板匹配条件的全部或部分。
在实施例中,计算系统可以将更高的置信度或重要性分配给由图像信息捕获的场景中的某些点或位置,并且可以在执行模板匹配时,或更一般地在确定货架或目标物体的物理结构时,给予那些点更多的权重。分配给点的置信度可以基于其到相机的距离,和/或点是被相机正面观察还是以某个角度观察。例如,如果相机与货架前部成角度,使得其光轴与货架前部或侧面倾斜,则货架上的某些点可能相对于相机和货架上的其他点之间的距离更靠近相机。更靠近相机的那些点可能会被分配更高的置信度水平。
在某些实施例中,各种点的置信度水平可以根据相机角度来分配。例如,相机可以具有第一点的更正面视图,并且可以具有第二点的更倾斜或有角度的视图。即,第一点和货架的前面或侧面的周围部分可以更垂直于相机或其光轴,而第二点和货架的前面或侧面的周围部分可能更倾斜并且不太垂直于相机。在这些示例中,计算系统可以基于其相对于相机的更垂直的视角将增加的置信度置于第一点,而基于其相对于相机的更倾斜的视角,第二点可能具有降低的置信度。在某些情况下,基于相机角度的相对置信度水平可能颠倒。
当具有不同置信度水平的这样的点是模板匹配中使用的特征的一部分或表示模板匹配中使用的特征时,计算系统可以将更多的权重放置在匹配某些模板特征的较高置信度的点中,并且可以将较少的权重放置在匹配模板特征的较低置信度的点中。
在实施例中,计算系统可以以层级方式执行模板匹配,具有多级对齐。多级对齐可以包括图像信息和一个或多个模型模板在不同分辨率或结构水平上的对齐。例如,较高级的对齐可包括图像信息的广泛特征与一个或多个模型模板之间的对齐,而较低级的对齐可包括图像信息的更具体特征与一个或多个模型模板之间的对齐。尽管讨论了三个对齐级,但在各种实施例中可以使用更多或更少的对齐级。
在实施例中,储存库检测操作可以包括基于图像信息的广泛特征和储存库模型在第一对齐级对齐。储存库检测操作可以包括确定图像信息与描述广泛储存库结构元素的第一储存库模型(第一对齐级)对齐的方式。例如,第一储存库模型可以描述储存库结构的框架。如上所述,处理电路可以根据预定义模板匹配条件标识与图像信息匹配的储存库模型。
最高的第一级对齐可用于可能具有对误差的更高容错度的全局对齐,而下一级(一个或多个级)对齐可用于可能具有对误差的最低容错度的更精细对齐。第一级对齐可能涉及表示货架的全部或大部分结构的模板。在某些情况下,处于第一级对齐水平的储存库模型可能是具有较低量细节/粒度的高水平模板(第一储存库模型)。例如,高水平模板可以描述诸如形成货架的外梁或外壁的特征。在高水平级对齐中,计算系统可能尝试将图像信息中的点与此模板中的特征重叠。计算系统可以执行高水平模板匹配以尝试将图像信息中的点与上述模板对齐。高水平模板匹配可用于粗略标识货架的全局特征,诸如其外壳的外边缘或外壁。高水平级对齐可能导致这样的全局特征的估计位置与其实际位置之间的例如若干厘米的误差(例如,因为它使用了具有少量细节的高水平模板),但此误差可能足够低,以允许计算系统来规划具有安全余量的轨迹,其将避免与货架的这些全局特征的碰撞。
处理电路还可以基于图像信息通过其至少部分地与第一储存库模型(第一对齐级)对齐的方式,来标识表示第二对齐级中的储存库的更详细或更精细的结构元素的图像信息的一部分。被标识的图像信息的一部分可以包括感兴趣的储存库部分。第二对齐级的元素或特征可以表示储存库的更小、更详细的方面。在实施例中,由第二对齐级表示的元素可以被认为是第一对齐级的子元素。例如,在第一对齐级可以包括储存库的框架结构的情况下,第二对齐级可以包括储存库的搁板。在示例中,第二对齐级可以包括代表储存库的具体扇区或具体区域的元素。在示例中,第二对齐级可以表示包括感兴趣扇区(例如,目的扇区)的储存库的层。因此,例如,基于图像信息至少部分地与第一储存库模型对齐的方式,其中图像信息的一部分包括具有目标扇区的目的储存库的层。
处理电路还可以在标识包含感兴趣部分(例如,目的扇区)的图像信息的一部分之后确定图像信息的该部分至少部分地与第二储存库模型对齐的方式,其中第二储存库模型代表第二对齐级,包括更详细、更高分辨率和/或关于储存库的更精细或更小的特征的信息。在示例中,如上面所讨论的,第二储存库模型可以代表储存库的具体扇区。
在实施例中,第二级对齐可以涉及计算系统放大并提取图像信息的一部分以聚焦于对应于货架的特定层的图像信息的特定部分,并尝试将图像信息的该部分与第二储存库模型匹配。计算系统为缩放选择的部分可以基于第一对齐级中的全局对齐。即,最高级模板匹配中的全局对齐可以向计算系统提供图像信息如何粗略地对齐储存库的各种特征的一般指示,包括图像信息的哪个部分对应于特定的感兴趣部分(诸如货架的层或特定单元)的指示。全局对齐可能包括某些误差,但为提取的部分提供足够的准确性以可靠地捕获相关的感兴趣部分。然后,计算系统可以使用图像信息的提取部分与第二模板进行比较,并尝试将提取部分与第二模板对齐。此第二级对齐可以允许更准确地确定具体感兴趣部分的位置,例如货架上的特定层或特定轨道,因为它可能涉及更精确的模板,和/或因为它可能涉及聚焦于货架的具体层或单元的图像信息的放大部分,这减少了图像信息其他部分中成像噪声的影响。由于使用末端执行器装置拾取坐在一对轨道上的目标物体的操作可能具有对误差的低容错度,因此可能需要更高水平的准确性以避免末端执行器装置和轨道之间的碰撞。
在实施例中,层级结构可以包括用于模板匹配的第三级对齐。第三级对齐可以涉及第三储存库模型,其聚焦于于比第一或第二储存库模型更详细和/或更具体的结构,诸如例如货架中的轨道结构,并且可以比第二模板更精确描述轨道结构。即,第三级对齐可用于标识在第二级对齐的感兴趣部分内标识的具体特征并与之对齐。
在涉及货架类型储存库的实施例中,计算系统可以提取对应于轨道结构的图像信息的一部分,并使用轨道结构来与第三模板进行比较。例如,计算系统可以使用第二储存库模型来确定图像信息的哪个部分对应于货架上的一对导轨。计算系统可以提取对应于轨道的图像信息的一部分,并将其与第三储存库模型进行比较,以获得对目标物体正位于其上(或目标物体要被放置在其上)的一对轨道的物理结构/布局和物理位置的更加精确的确定。
在实施例中,在例如通过模板匹配建立储存库结构信息之后,可以确定储存库姿势信息。例如,计算系统可以确定储存库是否以一个角度定位或倾斜定位,而不是例如以直立朝向定位。计算系统可标识预期为水平的特征(例如,货架)并确定这些特征被布置与水平的角度。
在储存库结构信息和储存库姿势信息被确定之后(例如,一旦货架检测被固定),计算系统可以标识储存库上的目标物体,(例如,以确定储存库内容信息)。计算系统可以被配置为验证图像信息所捕获的目标物体是否属于指定物体类型或与指定物体类型相关联。例如,计算系统可以使用图像信息来测量物体的维度,或确定物体是否具有预期的物理特征,诸如盖子。
计算系统可以考虑货架的对齐,例如旋转或成角度,以便为轨迹规划操作提供更轴对齐的检测结果。储存库检测操作4006操作可能需要向运动规划操作提供物体的准确表示,诸如用于更新预规划的轨迹的那种。
在实施例中,处理电路可以被配置为从图像信息中检测将储存库划分为多个范围的储存库的多个边缘。处理电路还可被配置为确定多个假想边界框,其中多个假想边界框中的每个假想边界框包围多个边缘之一,或包围多个范围之一。
在实施例中,计算系统可以生成围绕所标识的目标物体的假想边界框。物体可能完全驻留于边界框内。因此,如果运动规划可以避免末端执行器装置与边界框之间的碰撞,它也将可能确保末端执行器装置不与物体碰撞。边界框可以简化机器人接近和抓握物体的移动,并且可以穿过边界框以移动到甚至更靠近物体。
在实施例中,储存库检测操作4006操作可以生成各种边界框,作为货架或货架的部分的几何形状的简化表示。边界框可以包括一个边界框来表示目标单元或目标物体,其中边界框表示末端执行器装置可以接近和穿过的空间,而其他边界框可以表示末端执行器装置应该避开的范围(例如,它们可能被占用),以便降低碰撞风险。
边界框可以共同占据货架的每个范围。即,边界框可以占据货架所占据的整个空间。边界框可以标识末端执行器装置或机械臂应该避免的空间,并且可能是比提供货架的整个几何形状更简单的标识要避免的空间的方式,这可能使运动规划过于复杂和/或增加计算时间和资源.
在实施例中,储存库检测操作4006可以确定目标物体是否相对于水平朝向成一定角度,作为储存库内容信息的一部分。在例如物体从轨道之一枢转时,这样的情况可能发生,导致目标物体相对于水平朝向处于倾斜朝向和/或成角度的姿势。如果抓手试图从其底部拾取物体,则倾斜朝向可能使末端执行器装置的一部分与物体的一部分碰撞。在实施例中,计算系统可以确定物体是否已经落入目标物体下方的空间中,作为储存库内容信息的一部分。这样的物体可能位于目标物体和目标物体被布置在其上的轨道之间,并且可能阻碍末端执行器装置的至少一部分的路径。
在实施例中,图像噪声可能影响计算系统准确检测边缘的能力。为了解决由图像噪声引起的问题,计算系统可以使用统计元素(诸如像素强度的直方图或深度值的直方图)来确定图像信息中边缘或特征的位置。如上面所讨论的,图像信息可以在2D图像、深度图或指示表示目标储存库或物体的像素的坐标和强度的点云中捕获。图像噪声的存在可能使对边缘的确定困难,其中像素强度可能缺乏强而清晰的对比线。例如,噪声可能使像素强度随着边缘被接近而逐渐变化。使用直方图或其他统计技术可以允许对噪声图像中的边缘的准确检测。例如,计算系统可以确定物理边缘以对应于直方图指示像素强度的拐点或峰值的边缘或位置。
在实施例中,储存库检测操作4006可以通过推断丢失的图像信息来补偿图像噪声。例如,如果计算系统正在使用表示储存库的2D图像或点云,则2D图像或点云可能由于噪声而具有一个或多个丢失部分。储存库检测操作4006可以被配置为通过关闭或填充间隙(例如,通过插值或其他手段)来推断丢失的信息。
在实施例中,储存库检测操作4006操作可用于克服与机械臂或物体转移范围中的储存库周围的紧凑或拥挤布局相关联的挑战,或者与机械臂对姿势的可达性的限制相关联的挑战。例如,在物体转移范围中,第一储存库可能布置在机械臂和第二储存库之间,使得机械臂的相机难以到达适合对第二储存库成像的位置。这些限制可能阻止相机生成具有最佳朝向或最佳覆盖的图像信息。当从非最佳角度或视点捕获图像信息时,可以在储存库检测操作4006期间使用本文讨论的视点调整技术。
储存库检测操作4006操作可用于细化计算系统对储存库的几何形状的理解,这可用于引导机器人。例如,更精细的储存库模型或地图可以允许系统引导机器人绕过/远离与储存库的碰撞。在实施例中,储存库检测操作4006操作可以计算储存库周围的缓冲范围或体积,以防止机械臂和储存库之间的碰撞。
在实施例中,储存库检测操作4006还可以包括基于图像信息来确定目的储存库中的目的扇区是未被占用还是被占用。目标扇区,例如物体要被运送到的目的储存库中的扇区,可以由处理电路确定。目的扇区可以基于图像信息、基于确定的储存库结构信息来选择,根据操作规划来预定义,和/或经由其他方式来确定。在储存库检测操作期间,处理电路可以被配置为确定目的扇区是否被占用。如果被占用,则处理电路在储存库检测操作4006期间可以确定替代目的扇区。储存库检测操作4006操作还可以检测物体是否偏离末端执行器装置通常拾取物体的位置。这样的检测可用于确定物体是否可以被拾取,或者物体的位置是否使机器人拾取不可行。在这样的情况下,储存库检测操作4006操作可以指示可拾取物体尚未被检测到。
在实施例中,方法4000包括操作4008,其中计算系统输出源储存库接近命令以用于使机械臂接近源储存库。源储存库接近命令可以在相机已生成用于描述目的储存库的图像信息之后提供。源储存库接近命令在被执行时可以使机械臂接近源储存库,例如,如图5B所示,沿着源储存库接近轨迹,例如A2、B2a/B2b。源储存库接近轨迹可被计算以在第一目的储存库轨迹的端点处开始。源储存库接近命令可以基于源储存库接近轨迹来计算。
在实施例中,源储存库接近命令可以以包括具有第一轨迹部分和第二轨迹部分的两部分轨迹的方式生成。该两部分轨迹,当由机器人执行时,使机械臂朝源储存库的移动在第一轨迹部分之后(例如,在B2a结束时)在第一时间段期间暂停,并在后续第二时间段期间(例如,B2b期间)恢复移动以执行第二轨迹部分。在暂停期间,例如,在第一时间段期间,相机可被控制以便捕获源储存库的第二组图像信息。如下面所讨论的,第二图像信息可以在第二储存库检测操作期间使用。如上面所讨论的,可以在源储存库的位置、结构、姿势、内容或其他细节不确定的任何时间使用B移动循环。
在实施例中,方法4000包括操作4009,其中计算系统执行第二储存库检测操作。第二储存库检测操作可以类似于操作4006,其被认为是第一储存库检测操作4006。第一储存库检测操作4006采用由相机捕获的描述目的储存库的(第一)图像信息。在第二储存库检测操作4009中,计算系统可以在执行源储存库接近命令之后使用由源储存库的相机捕获的第二图像信息。第二图像信息可以包括描述源储存库的信息,并且可以用于确定以下中的至少一项:用于描述源储存库的结构的源储存库结构信息、用于描述源储存库的姿势的源储存库姿势信息、或用于描述一个或多个物体是否存在于目的储存库的源储存库内容信息。第二图像信息可以包括描述当要被拾取的物体在源储存库中时与该物体相关联的物体类型或姿势的信息。在某些实施例中,第二图像信息、物体姿势信息和/或源储存库信息可以用于生成物体拾取轨迹,如下面所讨论的。在源储存库不固定的环境中,执行第二储存库检测操作4009可能是有利的。
在实施例中,第二储存库检测操作可以在第一时间段期间(例如,在源储存库接近轨迹B2a的第一部分之后的暂停)或在第二时间段期间(例如,在源储存库接近轨迹B2b的第二部分期间)执行。以此方式,计算系统可以通过执行可用于修改物体拾取轨迹的第二储存库检测操作的处理来节省时间,同时物体拾取轨迹的初始阶段正被执行。
第二储存库检测操作4009可以包括第一储存库检测操作4006的任何或所有步骤、方法和特征,如上所述,以任何组合。
在实施例中,方法4000包括操作4010,其中计算系统输出物体拾取命令。物体拾取命令使机械臂的末端执行器装置从源储存库拾取物体。可以在执行源储存库接近命令并且机械臂处于从源储存库拾取或抓握物体的位置之后执行物体拾取命令。如图5B所示,机械臂在执行物体拾取命令时可以遵循物体拾取轨迹,例如,轨迹A3或B3。物体拾取轨迹是机械臂拾取或抓握物体所遵循的轨迹,可以计算为例如在源储存库接近轨迹的端点处开始。可以基于物体拾取轨迹计算物体拾取命令。
在实施例中,至少一个处理电路还可以被配置为基于源储存库在转移范围中固定的预定义位置来计算源储存库接近轨迹(在操作4008中)和物体拾取轨迹(在操作4010中)。当源储存库被固定到转移范围内的预定义位置时,这样的方法可能出现。源储存库的预定义位置可被存储在例如与计算机系统相关联的存储器设备中。
在实施例中,计算系统可以使用在第二储存库检测操作期间生成的信息来计算物体拾取轨迹,而不是使用预定义位置来计算物体拾取轨迹。例如,在源储存库在转移范围内不固定的情况下,使用第二图像信息来计算物体拾取轨迹可以在准确性方面提供优势。
如上面所讨论的,在某些实施例中,计算系统可以在执行物体拾取命令之前捕获源储存库的第二图像信息。在这样的实施例中,第二图像信息(包括关于物体姿势或源储存库的信息)可以用于生成物体拾取轨迹以用于生成物体拾取命令。如上面所讨论的,第二图像信息可以在移动循环B的暂停期间获得,即在源储存库接近轨迹的第一部分被执行之后。在这样的实施例中,第二图像信息可用于从初始预规划的轨迹修改或改变物体拾取轨迹的一部分,或根据需要生成新的轨迹。被修改或变化的轨迹的一部分可以是物体拾取轨迹的结束部分,其包括用于拾取物体的操作。因此,用于物体拾取的初始预规划的轨迹的第一部分可以根据初始预规划来执行,而在第一部分之后发生的用于物体拾取的初始预规划的轨迹的第二部分可以根据第二图像信息被修改、改变和/或变化。在实施例中,可以根据第二储存库检测操作来修改、改变或以其他方式调整初始预规划的物体拾取整个轨迹。
在实施例中,方法4000包括操作4012,其中计算系统在物体拾取命令已被执行之后输出第二目的储存库接近命令,该命令使机械臂第二次接近目的储存库。在此情况下,机械臂在携带/运输从源储存库拾取的物体时接近第二目的储存库。如图5B和5C中所示,机械臂可以遵循第二目的储存库接近轨迹,例如轨迹A4、B4,其是用于在执行第二目的储存库接近命令时接近目的储存库的轨迹。第二目的地接近轨迹可被计算以在物体拾取轨迹的端点处开始。第二目的储存库接近命令可以基于第二目的储存库接近轨迹来计算。
在实施例中,第二目的储存库接近命令可以在不使用在储存库检测操作期间生成的图像信息情况下生成,而不是基于储存库检测操作和/或基于从具体目的储存库获取的任何图像信息来生成。例如,可以基于与生成第一目的储存库接近命令相同或类似类型的信息(例如,物体转移范围内的目的储存库位置的估计位置、指示目的储存库位置的车辆轨迹信息,存储的轨迹等)来生成第二目的储存库接近命令。
在实施例中,方法4000包括操作4014,其中计算系统输出物体放置命令,该命令使末端执行器装置将物体放置在目的储存库中。在第二目的储存库接近命令已经使机械臂接近目的储存库之后,物体放置命令被执行。物体放置命令是基于储存库检测操作的结果生成的,其中结果包括储存库结构信息、储存库姿势信息或储存库内容信息中的至少一者。因此,物体放置命令使机械臂遵循物体放置轨迹,例如,如图5B和5C中所示的A5、B5,以在第一次目的储存库接近之后,基于对相机所捕获的图像信息的分析,将物体放置在目的储存库中。例如,物体放置轨迹可以在第二目的储存库接近轨迹的端点处开始。
生成物体放置命令可能受到若干附加约束和/或操作的影响。例如,在实施例中,可以基于在储存库检测操作期间生成的模板匹配信息来生成物体放置命令。在进一步的实施例中,可以基于图像信息的一部分与第二储存库模型至少部分地对齐的方式来生成物体放置命令,如上文关于物体储存库检测命令和层级对齐所讨论的。在进一步的实施例中,可以基于多个边界框来生成物体放置命令,如上面关于物体储存库检测命令所讨论的。
在实施例中,至少一个处理电路被配置为在源储存库接近命令、物体拾取命令或第二目的储存库接近命令中的至少一个正在被执行时,例如,轨迹A2/B2a/B2b、A3/B3和A4/B4,基于储存库检测操作的结果来计算物体放置轨迹[例如,A5或B5]以用于生成物体放置命令,因此,如前所述,处理电路可以在机械臂处于运动的时间段期间执行处理和/或计算,以提高效率。
如上面关于方法4000所讨论的,各种子轨迹可以是初始预规划的轨迹的一部分。可以从初始预规划的轨迹调整、例如改变或变化各种子轨迹。轨迹的调整可以涉及仅改变轨迹的一部分,例如,同时保留轨迹的其他部分。轨迹的调整可以涉及变化轨迹,例如,通过用替代轨迹来替换整个轨迹。例如,在实施例中,上面讨论的初始预规划的轨迹可以基于各种估计信息来生成。在某些情况下,估计信息可以包括源或目的储存库的模型(例如,CAD模型)和/或目标物体的模型。例如,目的储存库的模型(例如,货架)可以标识货架中有多少层,并且可以标识货架的每一层中有多少单元,或者更一般地可以标识货架中的物体放置位置,和/或货架的高度。目标物体的模型可以例如描述目标物体的形状和/或大小(例如,维度)。
在某些情况下,在计算初始预规划的轨迹中的估计信息可以包括关于将货架类型储存库运输到了转移范围的货架区域中的AGV的规划路线的信息。例如,AGV可以被编程为遵循特定路线(例如,基于地面标记)。AGV的此已知路线可以指示AGV停止的位置。AGV的指示位置可以提供对货架区域中货架的位置的估计。在某些实现中,计算系统可以跟踪货架的哪些单元(一个或多个)已经使物体放置在其中,并且可以使用此信息来确定货架中的特定单元是空的还是被占用的。
计算系统可以以各种方式确定或计算初始预规划的轨迹。例如,在实施例中,计算系统可以生成初始预规划的轨迹,作为移动货架区域中的物体的一部分。计算系统可以缓存或以其他方式存储初始预规划的轨迹,使得初始预规划的轨迹可以重新用于移动货架区域中的其他物体。在实施例中,计算系统可以基于货架的模型确定货架中有多少单元/隔间以及隔间的位置。计算系统可以使用虚拟目标物体位置和虚拟物体来生成粗略轨迹。
在实施例中,在计算系统已经提前生成初始预规划的轨迹之后,例如,基于描述源和目的储存库的位置(固定或移动)的初始信息,计算系统可以基于进一步的操作来调整初始预规划的轨迹。例如,作为储存库检测操作4006的结果,计算系统可以调整初始预规划的轨迹。在某些实现中,可以基于对于某些操作在描述源或目的储存库方面和/或在描述布置在源储存库中的物体方面的缺乏足够准确性的初始信息,来生成初始预规划的轨迹。例如,这些潜在的不准确性可能会使末端执行器装置通常移动到储存库,但移动到货架上的错误位置,和/或对于从货架拾取物体和/或将物体放置在储存库上具有错误朝向(例如,错误的滚动、俯仰或偏航)。因此,计算系统可以更新初始预规划的轨迹,尤其是初始预规划的轨迹的控制末端执行器装置的精确移动以与储存库或其上的物体具有紧密交互的一部分。
例如,对于针对移动循环A在上面描述的轨迹,如图5B所示,计算系统可以基于对在第一目的储存库接近命令和储存库检测操作之后接收到的图像信息的分析,来调整初始预规划的轨迹以生成物体拾取轨迹,例如A5。此外,计算系统可能不需要更新初始预规划的轨迹以到达第一目的储存库接近轨迹,例如A1,因为此子轨迹用于将相机通常定位在储存库前面,或者更具体地在储存库的指定位置(例如,目的货架的单元)前面,并且初始预规划的轨迹为这样的目的提供了足够的精度。计算系统可以具有例如关于用于将目的货架运输到货架区域中的AGV的位置的信息(具有例如2-3cm的误差余量),并且可以使用此信息来确定目的货架的大致位置。此大致位置可能足够准确,因为生成目的货架的图像信息可以通过将相机通常放置在目的货架前面来完成。计算系统可能不需要将相机放置到具体位置或具体朝向。相反,只要其位置落入位置的阈值范围内,相机就可以捕获关于目的储存库的相关信息。
在实施例中,源储存库接近轨迹和物体拾取轨迹(例如,A2和A3)可能不需要调整,因为源储存库的位置和物体在源储存库上的位置可以是固定的或以其他方式受约束的,使得源储存库的位置和物体在源储存库上的位置可以由计算系统以足够高的精度水平已知。例如,源储存库可以是固定到地面的传送器,使得位置是固定的。此外,传送器可以具有用于阻挡物体沿传送器移动的阻挡器。阻挡器可以具有已知位置,这些位置可以被计算系统可用来准确地确定物体在传送器上的位置。因此,计算系统可能不需要对传送器执行轨迹调整或传送器/物体检测。
在实施例中,计算系统可以使第二目的地接近轨迹,例如A4,与初始预规划的轨迹保持不变。例如,第二目的地接近轨迹可用于使末端执行器装置在其已经从传送器拾取目标物体之后接近并靠近目的货架。子轨迹A4可以对该接近提供足够的精度水平。
在实施例中,计算系统可以基于储存库检测操作的结果来调整初始预规划的轨迹以到达物体放置轨迹(例如,轨迹A5)。物体放置轨迹用于与目的储存库的紧密交互,并且可能需要高精度水平以使末端执行器装置正确地将目标物体放置到储存库的具体部分,例如货架的指定单元。
如上所述,初始预规划的轨迹可能基于在描述目的货架方面缺乏足够准确性的估计信息,因此可能无法提供足够的精度来将物体正确放置到货架中。因此,计算系统可以基于储存库检测操作来调整初始预规划的轨迹以到达物体放置轨迹,使得调整的轨迹可以实现用于将物体正确放置到目的货架中的精度水平。作为示例,物体放置轨迹可以使末端执行器装置具有与初始预规划的轨迹的对应部分相比不同的端点位置,和/或可以导致末端执行器装置在端点位置处具有与初始预规划的轨迹的对应部分相比不同的朝向。因此,在实施例中,当机器人移动时,它可以遵循初始预规划的轨迹作为第一目的储存库接近轨迹、源储存库接近轨迹、物体拾取轨迹和第二目的地接近轨迹,然后执行与初始预规划的轨迹的对应部分相比被调整了的物体放置轨迹。
各种实施例的附加讨论:
实施例1包括计算系统、由计算系统执行的方法、或包括用于实现该方法的指令的非暂时性计算机可读介质。计算系统包括通信接口,该通信接口被配置为与机器人通信,该机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到机械臂的相机以及至少一个处理电路,至少一个处理电路被配置为,当机器人处于包括源储存库和目的储存库的物体转移范围中时,执行以下操作以用于将物体从源储存库转移到目的储存库。方法可以包括输出第一目的储存库接近命令以用于使机械臂以使相机被指向目的储存库的方式接近目的储存库;接收用于描述目的储存库的图像信息,其中图像信息是在第一目的储存库接近命令被执行后由相机生成的;基于图像信息执行储存库检测操作,该储存库检测操作确定以下至少一项:用于描述目的储存库的结构的储存库结构信息、用于描述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于目的储存库中的储存库内容信息;在相机已生成用于描述目的储存库的图像信息之后,输出源储存库接近命令以用于使机械臂接近源储存库;在源储存库接近命令被执行后,输出物体拾取命令以用于使末端执行器装置从源储存库拾取物体;在物体拾取命令被执行后,输出第二目的储存库接近命令以用于使机械臂接近目的储存库;以及在第二目的储存库接近命令被执行后,输出物体放置命令以用于使末端执行器装置将物体放置在目的储存库中,其中物体放置命令是基于储存库检测操作的结果生成的,其中结果包括储存库结构信息、储存库姿势信息或储存库内容信息中的至少一个。
实施例2包括实施例1的所有特征,其中至少一个处理电路被配置为,在源储存库接近命令或物体拾取命令中的至少一个正在被执行时,基于图像信息执行储存库检测操作。
实施例3包括实施例1或2中任一项的所有特征,其中至少一个处理电路被配置为,在源储存库接近命令、物体拾取命令或第二目的储存库接近命令中的至少一个正在被执行时,基于储存库检测操作的结果计算物体放置轨迹,其中物体放置轨迹是末端执行器装置将物体放置在目的储存库中所遵循的轨迹,并且其中物体放置命令是基于物体放置轨迹生成的。
实施例4包括实施例1-3中任一项的特征,其中至少一个处理电路被配置为,以不基于储存库检测操作的结果的方式,计算第一目的储存库接近轨迹,其中第一目的储存库接近轨迹是用于机械臂遵循以接近目的储存库,并且其中第一目的储存库接近命令是基于第一目的储存库接近轨迹生成的。
实施例5包括实施例1-4中任一项的特征,其中至少一个处理电路被配置为,当目的储存库是形成一组货架的框架并且通过车辆能够移动进出转移范围时,基于车辆遵循或将要遵循的车辆轨迹来确定目的储存库位置,其中目的储存库位置是目的储存库在转移范围中的估计位置。
实施例6包括实施例1-5中任一项的特征,其中至少一个处理电路被配置为,在物体拾取命令被执行后,计算要被遵循的第二目的储存库接近轨迹,其中第二目的储存库接近轨迹以不基于储存库检测操作的结果的方式来计算,并且其中物体放置轨迹被计算以在第二目的储存库接近轨迹的端点处开始。
实施例7包括实施例1-6中任一项的特征,其中至少一个处理电路被配置为,当源储存库被固定到转移范围中的预定义位置时,基于源储存库被固定在转移范围中的预定义位置来计算源储存库接近轨迹和物体拾取轨迹,其中源储存库接近轨迹为机械臂接近源储存库所遵循的轨迹,并且源储存库接近命令是基于源储存库接近轨迹生成的,并且其中物体拾取轨迹为末端执行器装置从源储存库拾取物体所遵循的轨迹,并且物体拾取指令是基于物体拾取轨迹生成的。
实施例8包括实施例1-7中任一项的特征,其中储存库检测操作是第一储存库检测操作,并且图像信息是第一组图像信息,其中至少一个处理电路被配置为,当源储存库不固定到转移范围时,执行以下操作:接收用于描述源储存库的第二组图像信息,其中第二组图像信息由相机在源储存库接近命令的执行期间或之后生成;基于第二组图像信息执行第二储存库检测操作;以及基于第二储存库检测操作的结果计算物体拾取轨迹,其中物体拾取轨迹是末端执行器装置从源储存库拾取物体所遵循的轨迹,并且物体拾取命令是基于物体拾取轨迹生成的。
实施例9包括实施例1-8中任一项的特征,其中至少一个处理电路被配置为,当物体在源储存库中时,通过基于第二组图像信息确定与物体相关联的物体姿势来执行第二储存库检测操作,其中物体拾取命令是基于物体姿势生成的。
实施例10包括实施例1-9中任一项的特征,其中至少一个处理电路被配置为:以当由机器人执行时使机械臂朝向源储存库的移动在第一时间段期间暂停并在后续第二时间段期间恢复的方式,来生成源储存库接近命令;使第二组图像信息在第一时间段期间由相机生成,以及在第二时间段期间执行第二储存库检测操作。
实施例11包括实施例1-10中任一项的特征,其中至少一个处理电路被配置为,通过确定图像信息通过其与描述储存库结构的预定义储存库模型至少部分对齐的方式,来执行储存库检测操作,其中物体放置命令是基于图像信息通过其与预定义储存库模型至少部分对齐的方式生成的。
实施例12包括实施例1-11中任一项的特征,其中至少一个处理电路被配置为,通过在与描述储存库结构的预定义储存库模型比较时确定图像信息是否满足预定义模板匹配条件,来执行储存库检测操作,其中至少一个处理电路被配置为,响应于确定图像信息满足预定义模板匹配条件,基于预定义储存库模型生成物体放置命令。
实施例13包括实施例1-12中任一项的特征,其中图像信息描述目的储存库上的多个表面位置的相应深度值,并且其中至少一个处理电路被配置为,当多个表面位置包括比第二表面位置更靠近相机的第一表面位置时,以为第一位置与预定义储存库模型的匹配程度比第二位置与预定义储存库模型的匹配程度分配更多的权重的方式,来确定图像信息和预定义储存库模型之间的匹配水平。
实施例14包括实施例1-13中任一项的特征,其中至少一个处理电路被配置为确定目的储存库中物体将被放置在的目的扇区,并且被配置为通过基于图像信息确定目的扇区是否未被占用来执行储存库检测操作。
实施例15包括实施例1-14中任一项的特征,其中至少一个处理电路被配置为确定目的储存库中物体将被放置在的目的扇区,并且被配置为通过以下操作来执行储存库检测操作:确定图像信息通过其与描述储存库结构的第一储存库模型至少部分对齐的方式;基于图像信息通过其与第一储存库模型至少部分对齐的方式,标识图像信息的一部分,其表示包括目的扇区的目的储存库的至少一层;确定图像信息的该部分通过其与描述储存库结构的至少一层的第二储存库模型至少部分对齐的方式,其中物体放置命令是基于图像信息的该部分通过其与第二储存库模型至少部分对齐的方式来生成的。
实施例16包括实施例1-15中任一项的特征,其中第一储存库模型描述储存库结构的框架,使得至少一个处理电路被配置为确定图像信息通过其与第一储存库模型所描述的框架对齐的方式。
实施例17包括实施例1-16中任一项的特征,其中至少一个处理电路被配置为:从图像信息中检测将目的储存库划分为多个范围的目的储存库的多个边缘;确定多个假想边界框,其中多个假想边界框的每个假想边界框包围多个边缘之一,或者包围多个范围之一,其中物体放置命令是基于多个边界框生成的。
对于相关领域的普通技术人员将明显的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和改编。上述实施例是说明性示例,并且不应解释为将本发明限于这些特定实施例。应当理解,本文所公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来进行组合。还应当理解,取决于示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。此外,尽管为了清楚起见,本文实施例的某些特征被描述为由单个组件、模块或单元来执行,但是应当理解,本文描述的特征和功能可以由组件、单元或模块的任何组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以影响各种变化和修改。

Claims (19)

1.一种计算系统,包括:
通信接口,其被配置为与机器人通信,所述机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到所述机械臂的相机;
至少一个处理电路,被配置为,当所述机器人处于包括源储存库和目的储存库的物体转移范围中时,执行以下操作以用于将物体从所述源储存库转移到所述目的储存库:
输出第一目的储存库接近命令以用于使所述机械臂以使所述相机被指向所述目的储存库的方式接近所述目的储存库;
接收用于描述所述目的储存库的图像信息,其中所述图像信息是在第一目的储存库接近命令被执行后由所述相机生成的;
基于所述图像信息执行储存库检测操作,所述储存库检测操作计算以下至少一项:用于描述所述目的储存库的结构的储存库结构信息、用于描述所述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于所述目的储存库中的储存库内容信息;
在所述相机已生成用于描述所述目的储存库的所述图像信息之后,输出源储存库接近命令以用于使所述机械臂接近所述源储存库;
在所述源储存库接近命令被执行后,输出物体拾取命令以用于使所述末端执行器装置从所述源储存库拾取所述物体;
在所述物体拾取命令被执行后,输出第二目的储存库接近命令以用于使所述机械臂接近所述目的储存库;以及
在第二目的储存库接近命令被执行后,输出物体放置命令以用于使所述末端执行器装置将所述物体放置在所述目的储存库中,其中所述物体放置命令是基于所述储存库检测操作的结果生成的,其中所述结果包括所述储存库结构信息、所述储存库姿势信息或所述储存库内容信息中的至少一个。
2.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,在所述源储存库接近命令或所述物体拾取命令中的至少一个正在被执行时,基于所述图像信息执行所述储存库检测操作。
3.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,在所述源储存库接近命令、所述物体拾取命令或第二目的储存库接近命令中的至少一个正在被执行时,基于所述储存库检测操作的所述结果计算物体放置轨迹,其中所述物体放置轨迹是所述末端执行器装置将所述物体放置在所述目的储存库中所遵循的轨迹,并且其中所述物体放置命令是基于所述物体放置轨迹生成的。
4.如权利要求3所述的计算系统,其中所述至少一个处理电路被配置为,以不基于所述储存库检测操作的所述结果的方式计算第一目的储存库接近轨迹,其中第一目的储存库接近轨迹是用于所述机械臂遵循以接近所述目的储存库,并且其中第一目的储存库接近命令是基于第一目的储存库接近轨迹生成的。
5.如权利要求4所述的计算系统,其中所述至少一个处理电路被配置为,当所述目的储存库是形成一组货架的框架并且通过车辆能够移动进出所述物体转移范围时,基于所述车辆遵循或将要遵循的车辆轨迹来计算目的储存库位置,其中所述目的储存库位置是所述目的储存库在所述物体转移范围中的估计位置。
6.如权利要求4所述的计算系统,其中所述至少一个处理电路被配置为,在所述物体拾取命令被执行后,计算要被遵循的第二目的储存库接近轨迹,
其中第二目的储存库接近轨迹以不基于所述储存库检测操作的所述结果的方式来计算,以及
其中所述物体放置轨迹被计算以在第二目的储存库接近轨迹的端点处开始。
7.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,当所述源储存库被固定到所述物体转移范围中的预定义位置时,基于所述源储存库被固定在所述物体转移范围中的所述预定义位置来计算源储存库接近轨迹和物体拾取轨迹,
其中所述源储存库接近轨迹为所述机械臂接近所述源储存库所遵循的轨迹,并且所述源储存库接近命令是基于所述源储存库接近轨迹生成的,以及
其中所述物体拾取轨迹为所述末端执行器装置从所述源储存库拾取所述物体所遵循的轨迹,并且所述物体拾取指令是基于所述物体拾取轨迹生成的。
8.如权利要求1所述的计算系统,其中所述储存库检测操作是第一储存库检测操作,并且所述图像信息是第一组图像信息,
其中所述至少一个处理电路被配置为,当所述源储存库不固定到所述物体转移范围时,执行以下操作:
接收用于描述所述源储存库的第二组图像信息,其中第二组图像信息由所述相机在所述源储存库接近命令的执行期间生成;
基于第二组图像信息执行第二储存库检测操作;以及
基于第二储存库检测操作的结果计算物体拾取轨迹的至少一部分,其中所述物体拾取轨迹是所述末端执行器装置从所述源储存库拾取所述物体所遵循的轨迹,并且所述物体拾取命令是基于所述物体拾取轨迹生成的。
9.如权利要求8所述的计算系统,其中所述至少一个处理电路被配置为,当所述物体在所述源储存库中时,通过基于第二组图像信息确定与所述物体相关联的物体姿势来执行第二储存库检测操作,其中所述物体拾取命令是基于所述物体姿势生成的。
10.如权利要求8所述的计算系统,其中所述至少一个处理电路被配置为:
以当由所述机器人执行时使所述机械臂朝向所述源储存库的移动在第一时间段期间暂停并在后续第二时间段期间恢复的方式,来生成所述源储存库接近命令。
使第二组图像信息在第一时间段期间由所述相机生成;以及
在第二时间段期间执行第二储存库检测操作。
11.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,通过确定所述图像信息通过其与描述储存库结构的预定义储存库模型至少部分对齐的方式,来执行所述储存库检测操作,
其中所述物体放置命令是基于所述图像信息通过其与所述预定义储存库模型至少部分对齐的方式生成的。
12.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为,通过在与描述储存库结构的预定义储存库模型比较时确定所述图像信息是否满足预定义模板匹配条件,来执行所述储存库检测操作,
其中所述至少一个处理电路被配置为,响应于确定所述图像信息满足所述预定义模板匹配条件,基于所述预定义储存库模型生成所述物体放置命令。
13.如权利要求12所述的计算系统,其中所述图像信息描述所述目的储存库上的多个表面位置的相应深度值,以及
其中所述至少一个处理电路被配置为,当所述多个表面位置包括比第二表面位置更靠近所述相机的第一表面位置时,以为第一位置与所述预定义储存库模型的匹配程度比第二位置与所述预定义储存库模型的匹配程度分配更多的权重的方式,来确定所述图像信息和所述预定义储存库模型之间的匹配水平。
14.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为确定目的储存库中所述物体将被放置在的目的扇区,并且被配置为通过基于所述图像信息确定所述目的扇区是否未被占用来执行所述储存库检测操作。
15.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为确定所述目的储存库中所述物体将被放置在的目的扇区,并且被配置为通过以下操作来执行所述储存库检测操作:
确定所述图像信息通过其与描述储存库结构的第一储存库模型至少部分对齐的方式;
基于所述图像信息通过其与第一储存库模型至少部分对齐的方式,标识表示包括所述目的扇区的所述目的储存库的至少一层的所述图像信息的一部分;
确定所述图像信息的所述部分通过其与描述所述储存库结构的至少一层的第二储存库模型至少部分对齐的方式;以及
其中所述物体放置命令是基于所述图像信息的所述部分通过其与第二储存库模型至少部分对齐的方式来生成的。
16.如权利要求15所述的计算系统,其中第一储存库模型描述所述储存库结构的框架,使得所述至少一个处理电路被配置为确定所述图像信息通过其与第一储存库模型所描述的所述框架对齐的方式。
17.如权利要求16所述的计算系统,其中所述至少一个处理电路被配置为:
从所述图像信息中检测将所述目的储存库划分为多个范围的所述目的储存库的多个边缘;
确定多个假想边界框,其中所述多个假想边界框的每个假想边界框包围所述多个边缘之一,或者包围所述多个范围之一;以及
其中所述物体放置命令是基于所述多个边界框生成的。
18.一种机器人控制方法,用于将物体从源储存库转移到目的储存库,能够由至少一个处理电路经由通信接口操作,所述通信接口被配置为与机器人通信,所述机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到所述机械臂的相机,所述方法包括:
输出第一目的储存库接近命令以用于使所述机械臂以使所述相机被指向所述目的储存库的方式接近所述目的储存库;
接收用于描述所述目的储存库的图像信息,其中所述图像信息是在第一目的储存库接近命令被执行后由所述相机生成的;
基于所述图像信息执行储存库检测操作,所述储存库检测操作确定以下至少一项:用于描述所述目的储存库的结构的储存库结构信息、用于描述所述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于所述目的储存库中的储存库内容信息;
在所述相机已生成用于描述所述目的储存库的所述图像信息之后,输出源储存库接近命令以用于使所述机械臂接近所述源储存库;
在所述源储存库接近命令被执行后,输出物体拾取命令以用于使所述末端执行器装置从所述源储存库拾取所述物体;
在所述物体拾取命令被执行后,输出第二目的储存库接近命令以用于使所述机械臂接近所述目的储存库;以及
在第二目的储存库接近命令被执行后,输出物体放置命令以用于使所述末端执行器装置将所述物体放置在所述目的储存库中,其中所述物体放置命令是基于所述储存库检测操作的结果生成的,其中所述结果包括所述储存库结构信息、所述储存库姿势信息或所述储存库内容信息中的至少一个。
19.一种非暂时性计算机可读介质,配置有可执行指令,所述可执行指令用于实现用于将物体从源储存库转移到目的储存库的机器人控制方法,所述机器人控制方法能够由至少一个处理电路经由通信接口操作,所述通信接口被配置为与机器人通信,所述机器人具有包括或附接到末端执行器装置的机械臂,并且具有附接到所述机械臂的相机;所述方法包括:
输出第一目的储存库接近命令以用于使所述机械臂以使所述相机被指向所述目的储存库的方式接近所述目的储存库;
接收用于描述所述目的储存库的图像信息,其中所述图像信息是在第一目的储存库接近命令被执行后由所述相机生成的;
基于所述图像信息执行储存库检测操作,所述储存库检测操作确定以下至少一项:用于描述所述目的储存库的结构的储存库结构信息、用于描述所述目的储存库的姿势的储存库姿势信息、或用于描述一个或多个物体是否存在于所述目的储存库中的储存库内容信息;
在所述相机已生成用于描述所述目的储存库的所述图像信息之后,输出源储存库接近命令以用于使所述机械臂接近所述源储存库;
在所述源储存库接近命令被执行后,输出物体拾取命令以用于使所述末端执行器装置从所述源储存库拾取所述物体;
在所述物体拾取命令被执行后,输出第二目的储存库接近命令以用于使所述机械臂接近所述目的储存库;以及
在第二目的储存库接近命令被执行后,输出物体放置命令以用于使所述末端执行器装置将所述物体放置在所述目的储存库中,其中所述物体放置命令是基于所述储存库检测操作的结果生成的,其中所述结果包括所述储存库结构信息、所述储存库姿势信息或所述储存库内容信息中的至少一个。
CN202280004888.9A 2021-05-04 2022-05-03 用于执行机器人运动规划和储存库检测的方法和计算系统 Pending CN115697645A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310835720.9A CN116638526A (zh) 2021-05-04 2022-05-03 用于执行机器人运动规划和储存库检测的方法和计算系统

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163183685P 2021-05-04 2021-05-04
US63/183,685 2021-05-04
US17/733,024 US20220355474A1 (en) 2021-05-04 2022-04-29 Method and computing system for performing robot motion planning and repository detection
US17/733,024 2022-04-29
PCT/US2022/027457 WO2022235658A1 (en) 2021-05-04 2022-05-03 Method and computing system for performing robot motion planning and repository detection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310835720.9A Division CN116638526A (zh) 2021-05-04 2022-05-03 用于执行机器人运动规划和储存库检测的方法和计算系统

Publications (1)

Publication Number Publication Date
CN115697645A true CN115697645A (zh) 2023-02-03

Family

ID=83901868

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310835720.9A Pending CN116638526A (zh) 2021-05-04 2022-05-03 用于执行机器人运动规划和储存库检测的方法和计算系统
CN202280004888.9A Pending CN115697645A (zh) 2021-05-04 2022-05-03 用于执行机器人运动规划和储存库检测的方法和计算系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310835720.9A Pending CN116638526A (zh) 2021-05-04 2022-05-03 用于执行机器人运动规划和储存库检测的方法和计算系统

Country Status (5)

Country Link
US (1) US20220355474A1 (zh)
EP (1) EP4334092A1 (zh)
JP (2) JP7272568B2 (zh)
CN (2) CN116638526A (zh)
WO (1) WO2022235658A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230052515A1 (en) * 2021-08-10 2023-02-16 Mujin, Inc. System and method for robotic object placement

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6734728B2 (ja) * 2016-08-05 2020-08-05 株式会社日立製作所 ロボットシステム及びピッキング方法
JP6923383B2 (ja) * 2017-07-27 2021-08-18 株式会社日立物流 ピッキングロボットおよびピッキングシステム
WO2019187779A1 (ja) * 2018-03-27 2019-10-03 株式会社日立製作所 倉庫システム
JP7134073B2 (ja) * 2018-11-14 2022-09-09 株式会社ダイフク 物品積載設備
JP7204587B2 (ja) * 2019-06-17 2023-01-16 株式会社東芝 物体ハンドリング制御装置、物体ハンドリング装置、物体ハンドリング方法および物体ハンドリングプログラム
JP7331527B2 (ja) * 2019-07-26 2023-08-23 オムロン株式会社 ロボットの動作を決定する装置、方法およびプログラム
CA3154470A1 (en) * 2019-10-25 2021-04-29 Dexterity, Inc. Robotic system simulation engine
KR102220304B1 (ko) * 2020-02-28 2021-02-25 주식회사 두산 로봇 제어 장치 및 로봇 제어 방법
JP6796901B1 (ja) * 2020-03-05 2020-12-09 株式会社Mujin 容器検出および物体検出を行うための方法ならびに計算システム

Also Published As

Publication number Publication date
CN116638526A (zh) 2023-08-25
US20220355474A1 (en) 2022-11-10
JP7272568B2 (ja) 2023-05-12
WO2022235658A1 (en) 2022-11-10
EP4334092A1 (en) 2024-03-13
JP2022172465A (ja) 2022-11-16
JP2023041731A (ja) 2023-03-24

Similar Documents

Publication Publication Date Title
US11883966B2 (en) Method and computing system for performing object detection or robot interaction planning based on image information generated by a camera
US11383380B2 (en) Object pickup strategies for a robotic device
EP3683721B1 (en) A material handling method, apparatus, and system for identification of a region-of-interest
KR101772367B1 (ko) 스테레오와 구조화된 광 처리의 결합
US20230044420A1 (en) Systems and methods for object detection
CN115697645A (zh) 用于执行机器人运动规划和储存库检测的方法和计算系统
CN113043282B (zh) 用于物体检测或机器人交互规划的方法和系统
US11900652B2 (en) Method and computing system for generating a safety volume list for object detection
CN113219900B (zh) 基于相机生成的图像信息执行运动规划的方法和计算系统
US20230286165A1 (en) Systems and methods for robotic system with object handling
CN113361651B (zh) 生成用于物体检测的安全空间列表的方法和计算系统
US20240158174A1 (en) Logistics autonomous vehicle with robust object detection, localization and monitoring
CN115703238A (zh) 用于机器人物体放置的系统和方法
CN116793276A (zh) 货箱位置检测方法、检测系统及计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication