CN115366091A - 用于物体大小检测的机器人系统 - Google Patents
用于物体大小检测的机器人系统 Download PDFInfo
- Publication number
- CN115366091A CN115366091A CN202210542953.5A CN202210542953A CN115366091A CN 115366091 A CN115366091 A CN 115366091A CN 202210542953 A CN202210542953 A CN 202210542953A CN 115366091 A CN115366091 A CN 115366091A
- Authority
- CN
- China
- Prior art keywords
- candidate
- feasible range
- minimum feasible
- minimum
- objects
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 84
- 238000012795 verification Methods 0.000 claims description 17
- 238000010200 validation analysis Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 abstract description 19
- 230000033001 locomotion Effects 0.000 description 17
- 230000000007 visual effect Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 11
- 238000003708 edge detection Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 239000012636 effector Substances 0.000 description 9
- 238000010191 image analysis Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000005259 measurement Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000005286 illumination Methods 0.000 description 7
- 238000010606 normalization Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000003709 image segmentation Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000003703 image analysis method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 239000012491 analyte Substances 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910052736 halogen Inorganic materials 0.000 description 1
- 150000002367 halogens Chemical class 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- 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
- 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/1612—Programme controls characterised by the hand, wrist, grip control
-
- 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/1628—Programme controls characterised by the control loop
- B25J9/1653—Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- 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
-
- 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/39107—Pick up article, object, measure, test it during motion path, place it
-
- 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/40057—Contour tracking, edge following
-
- 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/45—Nc applications
- G05B2219/45056—Handling cases, boxes
-
- 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/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Geometry (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
- Image Analysis (AREA)
Abstract
本公开涉及用于物体大小检测的机器人系统。一种计算系统,包括与具有视场的相机通信的处理电路。处理电路基于视场中的物体获取图像信息,并为目标开放角定义最小可行范围。潜在最小可行范围通过标识物体的候选边缘并基于候选边缘确定潜在交点来定义。最小可行范围然后可以从潜在最小可行范围中被标识和验证。
Description
对相关申请的交叉引用
本申请要求于2021年5月18日提交的题为“A ROBOTIC SYSTEM FOR OBJECT SIZEMEASUREMENT OR MINIMUM VIABLE REGION DETECTION”的第63/189,743号美国临时申请的权益,该美国临时申请的全部内容通过引用并入本文。
技术领域
本技术总体上针对机器人系统,并且更具体地针对用于执行物体大小(size)测量和/或最小可行范围(region)检测的系统、过程和技术。
背景技术
随着它们不断提高的性能和降低的成本,许多机器人(例如,被配置为自动/自主地执行物理动作的机器)现在广泛用于各种不同的领域。例如,机器人可用于在制造和/或组装、填充(packing)和/或打包、运输和/或装运等中执行各种任务(例如,通过空间操纵或转移物体)。在执行任务时,机器人可以复制人类动作,从而替代或减少执行危险或重复性任务另外(otherwise)所需的人类参与。
发明内容
根据本发明的实施例,一种计算系统包括:非暂时性计算机可读介质;与具有视场的相机通信的至少一个处理电路,该至少一个处理电路被配置为,当一个或多个物体处于或者已经处于视场中时,执行存储在非暂时性计算机可读介质上的指令。指令用于:获取表示一个或物体的图像信息,每个物体具有多个边缘,其中图像信息由相机生成并描述与一个或多个物体相关联的至少物体外观;基于图像信息检测一个或多个物体的多个角;从多个角中标识目标开放角;为目标开放角定义最小可行范围,其中最小可行范围通过以下定义:生成多个候选边缘段;从多个候选边缘段中确定多个候选边缘;定义多个候选边缘的相应候选边缘之间的多个交点;基于多个交点定义一组潜在最小可行范围候选;以及从该组潜在最小可行范围候选中为多个角中的目标开放角选择最小可行范围候选;以及验证最小可行范围候选作为目标开放角的最小可行范围。
另外的实施例提供一种控制机器人系统的方法,该机器人系统包括非暂时性计算机可读介质、与具有视场的相机通信并被配置为执行指令的至少一个处理电路。方法包括获取表示一个或物体的图像信息,每个物体具有多个边缘,其中图像信息由相机生成并描述与一个或多个物体相关联的至少物体外观;基于图像信息检测一个或多个物体的多个角;从多个角中标识目标开放角;为目标开放角定义最小可行范围,其中最小可行范围通过以下定义:生成多个候选边缘段;从多个候选边缘段中确定多个候选边缘;定义多个候选边缘的相应候选边缘之间的多个交点;基于多个交点定义一组潜在最小可行范围候选;以及从该组潜在最小可行范围候选中为多个角中的目标开放角选择最小可行范围候选;以及验证最小可行范围候选作为目标开放角的最小可行范围。
在另外的实施例中,提供了一种非暂时性计算机可读介质。非暂时性计算机可读介质包括用于由与具有视场的相机通信并被配置的至少一个处理电路执行的指令,当一个或多个物体处于或者已经处于视场中时,指令被配置为:获取表示一个或物体的图像信息,每个物体具有多个边缘,其中图像信息由相机生成并描述与一个或多个物体相关联的至少物体外观;基于图像信息检测一个或多个物体的多个角;从多个角中标识目标开放角;为目标开放角定义最小可行范围,其中最小可行范围通过以下定义:生成多个候选边缘段;从多个候选边缘段中确定多个候选边缘;定义多个候选边缘的相应候选边缘之间的多个交点;基于多个交点定义一组潜在最小可行范围候选;以及从该组潜在最小可行范围候选中为多个角中的目标开放角选择最小可行范围候选;以及验证最小可行范围候选作为目标开放角的最小可行范围。
附图说明
图1A-1D示出了与本文的实施例一致的用于执行或促进定义最小可行范围的系统。
图2A-2D提供了示出与本文的实施例一致的被配置为执行或促进定义最小可行范围的计算系统的框图。
图2E-2F提供了由系统处理并与本文的实施例一致的图像信息的示例。
图3A-3H示出了根据本文的实施例的可以在其中执行定义最小可行范围的环境。
图4提供了示出根据本文的实施例的定义最小可行范围的方法的流程图。
具体实施方式
本文描述了用于具有协调转移机制的机器人系统的系统和方法。根据一些实施例配置的机器人系统(例如,每个执行一个或多个指定任务的设备的集成系统)通过协调多个单元(例如,机器人)的操作来自主地执行集成任务。
本文描述的技术为现有的基于计算机的图像识别和机器人控制领域提供了技术改进。技术改进提供了对标识物体的抓持部分的总体速度和可靠性的提高,以提高机器人与物体交互的效率和可靠性。使用图像信息来确定和区分存在于相机视场内的物体,本文描述的过程还通过使用物体的移动来调整和帮助标识一个目标物体的潜在抓持部分来改进现有的图像识别。
特别地,当对每个物体的尺寸(dimension)和位置的标识是未知的或不完全准确地已知时,本文描述的本技术帮助机器人系统与多个物体中的特定物体交互。例如,如果多个物体彼此齐平放置,则现有的基于计算机的图像识别可能难以标识每个物体以及可靠且准确地指示机器人系统如何与物体交互。特别地,如果物体的尺寸未被准确标识,则机器人系统可能不清楚一个物体结束并且另一个物体开始的位置。因此,系统冒着试图在与其他物体相交的位置抓握物体的风险。在这样的情况下,系统可能无法抓握任一物体。尽管物体的确切尺寸可能不完全准确地已知,但本文提供的系统和方法提供了快速且可靠地标识物体的至少一部分(例如,最小可行范围)的能力,该物体可能被机械臂抓握而无需标识或确定物体的确切边缘。此外,系统可以被配置为调整抓取物体的位置。如果物体在某些位置(例如,偏离中心的位置)被抓取,则运输该物体可能困难。本文提供的系统和方法可以在机械臂初始抓握之后使用物体的移动来确定物体的确切尺寸并基于更新的尺寸来调整或改变机器人如何与物体交互。
在以下中,具体细节被阐述以提供对当前公开的技术的理解。在实施例中,本文介绍的技术可被实践而不包括本文公开的每个具体细节。在其他情况下,诸如具体功能或例程的众所周知的特征未被详细描述以避免不必要地混淆本公开。本说明书中对“实施例”、“一个实施例”等的引用意味着正在描述的特定特征、结构、材料或特性包括在本公开的至少一个实施例中。因此,本说明书中的这样的短语的出现不一定都指相同的实施例。另一方面,这样的引用也不一定是相互排斥的。此外,特定特征、结构、材料或特性可以在一个或多个实施例中以任何合适的方式组合。应当理解,图中所示的各种实施例仅仅是说明性的表示并且不一定按比例绘制。
为清楚起见,描述众所周知且通常与机器人系统和子系统相关联但可能不必要地混淆所公开技术的一些重要方面的结构或过程的若干细节在以下描述中未被阐述。此外,尽管以下公开阐述了本技术的不同方面的若干实施例,但若干其他实施例可具有与本部分中描述的那些不同的配置或不同的组件。因此,所公开的技术可以具有带有附加元素或没有下面描述的元素中的若干元素的其他实施例。
下面描述的本公开的许多实施例或方面可以采取计算机或控制器可执行指令的形式,包括由可编程计算机或控制器执行的例程。相关领域的技术人员将理解,所公开的技术可以在除了下面所示和描述的那些之外的计算机或控制器系统上或通过其实践。本文描述的技术可以体现在专用计算机或数据处理器中,该专用计算机或数据处理器被具体编程、配置或构造为执行下述计算机可执行指令中的一个或多个。因此,如本文通常使用的术语“计算机”和“控制器”是指任何数据处理器,并且可以包括互联网工具和手持设备(包括掌上型计算机、可穿戴计算机、蜂窝或移动电话、多处理器系统、基于处理器或可编程的消费电子产品、网络计算机、小型计算机等)。这些计算机和控制器处理的信息可以在包括液晶显示器(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控制器、以太网控制器、控制器、PCI总线控制器、任何其他通信电路或其组合。
在实施例中,如图2C中所示,非暂时性计算机可读介质1120可以包括被配置为存储本文讨论的一个或多个数据对象(data objects)的模板存储空间1128。例如,存储空间可以存储模型模板、机械臂移动命令以及计算系统1100B可能需要访问的任何附加数据对象。
在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令编程。例如,图2D示出了计算系统1100C,其是计算系统1100/1100A/1100B的实施例,其中处理电路1110由包括物体识别模块1121、最小可行范围(MVR)模块1122和运动计划模块1129的一个或多个模块编程。
在实施例中,物体识别模块1121可被配置为获取和分析图像信息,如贯穿本发明所讨论的。本文讨论的关于图像信息的方法、系统和技术可以使用物体识别模块。
MVR确定模块1122可以被配置为根据图像信息和由物体识别模块1121执行或获取的分析来计算、确定和/或标识最小可行范围。本文关于MVR确定而讨论的方法、系统和技术可由MVR确定模块1122执行。
运动计划模块1129可以被配置为计划机器人的移动。例如,运动计划模块1129可以导出各个放置位置/朝向,计算对应的运动计划,或其组合以用于抓取和移动物体。本文讨论的关于机械臂移动的方法、系统和技术可以由运动计划模块1129执行。
参考图2E、2F和3A,解释了与可以被执行用于图像分析的物体识别模块1121相关的方法。图2E和2F示出了与图像分析方法相关联的示例图像信息,而图3A示出了与图像分析方法相关联的示例机器人环境。本文中与由计算系统进行的图像分析相关的参考可以根据或使用空间结构信息来执行,该空间结构信息可以包括描述相对于所选点的各种位置的相应深度值的深度信息。深度信息可用于标识物体或估计物体如何在空间上排列。在某些情况下,空间结构信息可包括或可用于生成描述物体的一个或多个表面的位置的点云。空间结构信息仅仅是可能的图像分析的一种形式,并且本领域技术人员已知的其他形式可以根据本文描述的方法使用。
在实施例中,计算系统1100可以获取表示相机(例如,1200/3200)的相机视场(例如,3210)中的物体的图像信息。在某些情况下,物体可以是相机1200/3200的相机视场3210中的一个或多个物体(例如,3510-3540)的第一物体(例如,3510)。在该组物体3000A/3000B/3000C/3000D处于(或已经处于)相机视场3210中时,图像信息2600、2700可以由相机(例如,1200/3200)生成并且可以描述各个物体中的一个或多个。物体外观从相机1200/3200的视点描述了物体3000A/3000B/3000C/3000D的外观。如果在相机视场中有多个物体,则相机可以根据需要生成表示多个物体或单个物体的图像信息。当该组物体处于(或已经处于)相机视场中时,图像信息可以由相机(例如,1200/3200)生成,并且可以包括例如2D图像信息和/或3D图像信息。
作为示例,图2E描绘了第一组图像信息,或更具体地,2D图像信息2600,如上所述,其由相机3200生成并且表示图3A的物体3000A/3000B/3000C/3000D/3550。更具体地,2D图像信息2600可以是灰度或彩色图像并且可以从相机3200的视点来描述物体3000A/3000B/3000C/3000D/3550的外观。在实施例中,2D图像信息2600可以对应于彩色图像的单个颜色通道(例如,红色、绿色或蓝色通道)。如果相机3200被布置在物体3000A/3000B/3000C/3000D/3550上方,则2D图像信息2600可以表示物体3000A/3000B/3000C/3000D/3550的相应顶表面的外观。在图2E的示例中,2D图像信息2600可以包括表示物体3000A/3000B/3000C/3000D/3550的相应表面的相应部分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。例如,计算系统3100可以被配置为从2D图像信息2600中提取图像部分2000A以获取仅与对应物体3000A相关联的图像信息。例如,计算系统3100可以基于2D图像信息2600和/或图2F中所示的3D图像信息2700通过执行图像分段操作来提取图像部分2000A。在某些实现中,图像分段操作可以包括检测2D图像信息2600中物体的物理边缘(例如,盒子的边缘)出现的图像位置并且使用这样的图像位置来标识仅限于表示相机视场(例如,3210)中的单个物体的图像部分(例如,5610)。
图2F描绘了其中图像信息是3D图像信息2700的示例。更特别地,3D图像信息2700可以包括例如指示物体3000A/3000B/3000C/3000D/3550的一个或多个表面(例如,顶表面或其他外表面)上的各种位置的相应深度值的深度图或点云。在某些实现中,用于提取图像信息的图像分段操作可以涉及检测3D图像信息2700中物体的物理边缘(例如,盒子的边缘)出现的图像位置并且使用这样的图像位置来标识仅限于表示相机视场(例如,3000A)中的单个物体的图像部分(例如,2730)。
相应深度值可以相对于生成3D图像信息2700的相机3200,或者可以相对于某个其他参考点。在某些实现中,3D图像信息2700可以包括点云,该点云包括相机视场(例如,3210)中的物体的结构上的各种位置上的相应坐标。在图2F的示例中,点云可以包括描述物体3000A/3000B/3000C/3000D/3550的相应表面上的位置的相应坐标组。坐标可以是3D坐标,诸如[X Y Z]坐标,并且可以具有相对于相机坐标系或某个其他坐标系的值。例如,3D图像信息2700可以包括指示物体3000D的表面上也被称为物理位置的一组位置27101-2710n的相应深度值的第一部分2710(也被称为图像部分)。此外,3D图像信息2700还可以包括第二、第三和第四部分2720、2730和2740。然后这些部分还可以指示可以分别由27201-2720n、27301-2730n和27401-2740n表示的一组位置的相应深度值。这些图仅仅是示例,并且可以使用具有对应的图像部分的任何数量的物体。与上述类似,获取的3D图像信息2700在某些情况下可以是由相机生成的第一组3D图像信息2700的一部分。在图2E的示例中,如果获取的3D图像信息2700表示图3A的第一物体3000A,则3D图像信息2700可被缩小为仅参考图像部分2710。
在实施例中,作为获取图像信息的一部分,可以由计算系统1100执行图像归一化操作。图像归一化操作可以涉及变换由相机3200生成的图像或图像部分,以便生成变换后的图像或变换后的图像部分。例如,如果获取的可以包括2D图像信息2600、3D图像信息2700或两者的组合的图像信息可经历图像归一化操作,以试图使图像信息在与视觉描述信息相关联的视点、物体姿势、照明条件中被改变。这样的归一化可被执行以促进图像信息和模型(例如,模板)信息之间的更准确比较。视点可以指物体相对于相机3200的姿势,和/或当相机3200生成表示物体的图像时相机3200正在观察物体的角度。
例如,图像信息可以在物体识别操作期间生成,其中目标物体在相机视场3210中。当目标物体具有相对于相机的具体姿势时,相机3200可以生成表示目标物体的图像信息。例如,目标物体可以具有使其顶表面垂直于相机3200的光轴的姿势。在这样的示例中,相机3200生成的图像信息可以表示具体的视点,诸如目标物体的顶视图。在某些情况下,当相机3200在物体识别操作期间生成图像信息时,图像信息可以在诸如照明强度的特定照明条件下生成。在这样的情况下,图像信息可以表示特定的照明强度、照明颜色或其他照明条件。
在实施例中,图像归一化操作可以涉及调整由相机生成的场景的图像或图像部分,以使图像或图像部分更好地匹配与模型模板的信息相关联的视点和/或照明条件。调整可以涉及变换图像或图像部分以生成与和模型模板的视觉描述信息相关联的物体姿势或照明条件中的至少一个相匹配的变换后的图像。
视点调整可以涉及场景的图像的处理、卷绕和/或移位,使得图像表示与模型模板中的视觉描述信息相同的视点。例如,处理包括改变图像的颜色、对比度或照明,场景的卷绕可包括更改图像的大小、尺寸或比例,而图像的移位可能包括更改图像的位置、朝向或旋转。在示例实施例中,处理、卷绕和/或移位可用来改变场景的图像中的物体以具有匹配或更好地对应于模型模板的视觉描述信息的朝向和/或大小。如果模型模板描述了某个物体的正面视图(head-on view)(例如,顶视图),则场景的图像可能会被卷绕,以便也表示场景中物体的正面视图。
在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”被用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”广义上是指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件组件正在执行模块或计算机可读指令时,模块和计算机可读指令可以被描述为执行各种操作或任务。
本公开的一个方面涉及能够执行物体检测(也被称为物体识别)、物体大小测量和/或最小可行范围检测的机器人系统或任何其他计算系统。物体检测或大小测量可以涉及确定场景中单个物体的尺寸或确定单个物体的边界。该物体可以是一组物体的一部分,诸如作为一组物体的一部分的盒子。例如,机器人系统可以执行物体检测操作作为卸垛操作的一部分,其中机器人系统接收相机数据,该相机数据捕获具有一托盘物体的场景,其中托盘的每一层都有彼此靠近放置的物体。
此场景中的物体检测可以涉及处理或分析相机数据(图像信息)以在托盘的特定层上的各个物体当中进行区分,以便能够从该层上的其他物体区分出一个单个物体。当此托盘物体彼此全部齐平放置时,问题出现,使得机器人系统难以检测或将这些物体彼此分离。本文所述的过程可以允许机器人系统标识物体的大小和/或边界,以便生成用于从托盘拾取单个物体并将其移动到别处的计划。在某些实现中,机器人系统可以为场景中的物体标识至少一个最小可行范围。最小可行范围是对特定物体的潜在轮廓或尺寸的估计。因此,机器人系统可以在不知道物体确切尺寸的情况下,用末端执行器装置(例如抓手)在最小可行范围抓取单个物体。物体的最小可行范围表示物体顶表面上的范围,该范围被估计为完全存在于单个物体的表面上。因此,试图在此范围内抓握物体确保末端执行器装置仅接触单个物体而不延伸超过物体的边缘。如本文所讨论的,最小可行范围确定可以提高物体移动机械臂的准确性和速度。
在以上示例中,物体可以是例如托盘或其他平台上放置在其他物体旁边的盒子或其他物体。如果相机生成了捕获具有多个物体的场景的图像,则图像本身对于用于在不同物体之间进行区分的目的来说可能不完全可靠。例如,虽然某些相机可能能够生成指示场景中各种位置的深度值的图像,但如果多个物体具有相同的高度或以其他方式与相机的距离相同,则图像可以指示覆盖多个物体顶表面的范围的基本上统一的深度值,特别是如果多个物体紧密填充在一起。因此,这样的图像可以提供有限的信息以用于从多个物体之中标识各个物体的目的。虽然某些相机可能能够生成捕获物体的视觉外观的图像,诸如它们的顶表面,但这些顶表面可能有印在他们上面的线或其他视觉标记。因此,这样的图像可以包括线,但是每条线可以与物体中的一个的边界(例如,第一或第二边缘)相关联,或者可以仅仅是视觉标记(例如,其可能是假边缘)。因此,本文提供的系统和方法可用于确定物体表面的最小可行范围。最小可行范围表示物体顶表面上的范围,该范围被估计完全存在于单个物体的表面上。最小可行范围可以由物体的实际物理边缘和/或物体的假边缘界定。如果系统不能容易地区分假边缘和物理边缘,则这种不能可以通过定义最小可行范围的方法来解释,如下所述。
图3A-3H示出了其中可以执行本文描述的过程和方法的示例环境。图3A描绘了具有包括计算系统3100(例如,计算系统1100的实施例)、机器人3300和相机3200的系统3500(其可以是图1A-1D的系统1500/1500A/1500B/1500C的实施例)的环境。相机3200可以是相机1200的实施例,并且可以被配置为生成图像信息,该图像信息表示相机3200的相机视场3210中的场景,或更具体地表示相机视场3210中的物体,诸如物体3000A、3000B、3000C和3000D。在一个示例中,物体3000A-3000D中的每一个可以是例如诸如盒子或板条箱的容器,而物体3550可以是例如其上布置有容器的托盘。
在实施例中,图3A的系统3500可以包括一个或多个光源,诸如光源3600。光源3600可以是例如发光二极管(LED)、卤素灯或任何其他光源,并且可以被配置为朝着物体3000A–3000D的表面发射可见光、红外辐射或任何其他形式的光。在某些实现中,计算系统3100可以被配置为与光源3600通信以控制光源3600何时被激活。在其他实现中,光源3600可以独立于计算系统3100操作。
在实施例中,系统3500可以包括相机3200或多个相机3200,包括被配置为生成2D图像信息2600的2D相机和被配置为生成3D图像信息2700的3D相机。2D图像信息2600(例如,彩色图像或灰度图像)可以描述相机视场3210中一个或多个物体(诸如物体3000A/3000B/3000C/3000D)的外观。例如,2D图像信息2600可以捕获或以其他方式表示布置在物体3000A/3000B/3000C/3000D的相应外表面(例如,顶表面)上的视觉细节,和/或那些外表面的轮廓。在实施例中,3D图像信息可以描述物体3000A/3000B/3000C/3000D/3550中的一个或多个的结构,其中物体的结构也可以被称为物体结构或物体的物理结构。例如,3D图像信息2700可以包括深度图,或更一般地包括深度信息,其可以描述相机视场3210中的各种位置相对于相机3200或相对于某个其他参考点的相应深度值。对应于相应深度值的位置可以是相机视场3210中各种表面上的位置(也被称为物理位置),诸如物体3000A/3000B/3000C/3000D/3550的相应顶表面上的位置。在某些情况下,3D图像信息2700可以包括点云,该点云可以包括多个3D坐标,该3D坐标描述了相机视场3210中的物体3000A/3000B/3000C/3000D/3550或某些其他物体的一个或多个外表面上的各种位置。点云如图2F所示。
在图3A的示例中,机器人3300(其可以是机器人1300的实施例)可以包括机械臂3320,该机械臂3320具有附接到机器人基座3310的一端,并且具有附接到末端执行器装置3330或由末端执行器装置3330形成的另一端,诸如机器人抓手。机器人基座3310可用于安装机械臂3320,而机械臂3320,或更具体地,末端执行器装置3330,可用于与机器人3300的环境中的一个或多个物体交互。交互(也被称为机器人交互)可以包括例如抓持或以其他方式拾取物体3000A–3000D中的至少一个。例如,机器人交互可以是卸垛操作的一部分,在该操作中机器人3300用于从托盘拾取物体3000A–3000D并将物体3000A–3000D移动到目的地位置。末端执行器装置3330可具有吸盘或其他组件以用于抓握或抓取物体。末端执行器装置3330可以被配置为使用吸盘或其他抓握组件,通过例如经由顶表面与物体的单个面或表面接触来抓握或抓取物体。
机器人3300还可以包括附加传感器,其被配置为获取用于执行任务的信息,任务诸如用于操纵结构构件和/或用于运输机器人单元。传感器可以包括被配置为检测或测量机器人3300和/或周围环境的一种或多种物理特性(例如,其一个或多个结构构件/关节的状态、条件和/或位置)。传感器的某些示例可以包括加速度计、陀螺仪、力传感器、应变仪、触觉传感器、扭矩传感器、位置编码器等。
图3B描绘了图3A的物体3000A、3000B、3000C和3000D的顶视图。每个物体3000A-3000D包括表面3001、多个角3002,以及在此示例中,开放角3004。如本文所用,“开放角”是指多个角3002中不与另一个物体3000相邻的任何角。开放角可以由物体的顶表面的两个边缘形成,这些边缘本身不与另一个物体毗邻。在示例中,两个边缘可以包括两个水平边缘。对于被视为开放的角,不要求整个两个边缘都没有相邻的物体。参考图3C,其中描绘物体3000A-3000D的特写顶视图,每个物体3000A-3000D的附加特征被描绘。在二维描绘中,物体3000A可以具有由四个边缘(纵向物理边缘3013、横向物理边缘3015、横向物理边缘3017和纵向物理边缘3019)定义的表面。在所示的示例实施例中,横向物理边缘3015和纵向物理边缘3013不与任何相邻物体的边缘相邻或齐平,因此可以被称为开放边缘。在所示的示例实施例中,横向物理边缘3017和纵向物理边缘3019与相邻物体3000B和3000D的边缘相邻并且齐平,因此可以被称为闭合边缘。使用术语“纵向”和“横向”来指代上述边缘并不意味着要求物体和/或边缘的具体朝向。通常,对于近似矩形的物体,纵向边缘相邻于(并且接近垂直于)横向边缘。如本文所用,纵向和横向仅指在一个物体或一组物体的上下文内的具体方向,而不是指具体的绝对方向。物体3000A、3000B和3000D的定位可能使计算系统3100更难以区分每个物体的特征。
用于确定开放角3004的最小可行范围的方法4000在图4中描绘。方法4000可以存储在非暂时性计算机可读介质上并且可以由至少一个处理电路执行,其中至少一个处理电路与具有视场的相机通信。
在操作中,方法4000包括获取表示一个或多个物体3000(例如物体3000A-3000D)的物理特性的图像信息的操作4002。图像信息由相机3200生成并且描述与一个或多个物体相关联的至少物体外观,其中每个物体包括多个边缘。图3A描绘了获取或生成图像信息。在实施例中,图像信息是在三维或透视图中获取的,并且为了提高方法的准确性,视点被移位到二维视图。视点调整可以涉及图像信息的处理、卷绕和/或移位。处理可以包括改变图像信息的颜色、对比度或照明,场景的卷绕可包括更改图像信息的大小、尺寸或比例,并且图像信息的移位可包括更改图像信息的位置、朝向或旋转。卷绕可以涉及确定单应性,该单应性定义卷绕变换,该变换将图像信息从以三维描述物体变换为以二维描述物体,例如顶视图。在某些情况中,卷绕可以描述将图像信息与期望的二维视图的对应点(例如角)匹配的旋转和/或平移。
在实施例中,下面描述的计算和方法可以在相机不再对一个或多个物体成像之后或者在一个或多个物体已经离开视场之后执行。
在操作中,方法4000包括用于基于图像信息检测多个物体3000的多个角3002的操作4004。为了检测存在的任何角,计算系统1100/3100可以使用多种方法。例如,角检测可能涉及边缘检测和边缘相交的后续确定。边缘检测可以基于对2D和3D图像信息(例如,点云信息)的分析来执行。边缘检测可以包括,例如,(i)2D图像分析以标识2D图像内可能表示物体之间边界的线或边缘,(ii)涉及层分段和检测不同高度/深度的点云分析以检测边缘,或者(iii)2D或3D图像分析以标识开放边缘。本文描述的示例仅作为示例,并且边缘检测还可以适当包括替代技术。
边缘检测可以包括例如2D图像分析以标识2D图像内可能表示物体之间边界的线或边缘。这样的分析可以标识2D图像内可能表示边缘的视觉不连续性。例如,这样的分析可以包括例如对像素强度不连续条件或尖峰像素强度条件的分析。满足定义的像素强度不连续条件可以包括使用像素强度值的更改,或更具体地,使用具有不同像素强度的范围之间的像素强度值的导数或梯度。梯度或导数然后可用来检测存在于边缘或角处的像素强度中的尖峰,特别地,当垂直于边缘或角移动时。此外,计算系统1100/3100可以应用二进制阈值来标识像素强度的差异,以便定义相邻像素之间的尖峰或不连续性,标识边缘或角。
边缘检测可以包括例如涉及层分段和检测不同高度/深度的点云分析以检测边缘。相邻物体可能具有不同的高度。因此,点云(3D图像信息)中不同高度(或深度)的检测可用于检测物体之间的边缘。因此,计算系统1100/3100可以根据满足定义的深度不连续条件的点云的部分来检测边缘。
在另外的示例中,边缘检测可以通过检测缺少相邻物体的物理边缘来执行。在物体缺少相邻物体的情况下,例如,在物体位于一组物体的外周边的情况下,该组物体的边缘可以被检测为相关联的各个物体的物理边缘。
在实施例中,用于边缘检测的任何上述方法可以与每个或与其他边缘检测方法组合以提高边缘检测的准确性或可靠性。
在操作中,方法4000包括从多个角3002中标识开放角3004的操作4005。如上所述,“开放角”是指多个角3002中不与另一个物体3000相邻的角。在实施例中,系统可以被配置为标识多个角,并且一旦角3002被标识,就从角3002当中的开放角中选择开放角,诸如开放角3004A。在实施例中,多个角3002中的每一个可以是开放角,因为角检测操作4004可以基于通过相邻物体的缺少来标识的物理边缘来检测角。此外,当标识目标开放角时,系统可以识别开放角不与另一个物体相邻。开放角3004A可以是单个目标开放角。
开放角(也称为凸角或外角)可以通过对3D图像信息(例如以点云的形式)的分析来标识,如上所述。开放角可以被标识,例如,通过标识点云内的顶点(例如,基于边缘相交或其他方式)然后使标识的顶点服从一个或多个标准(例如,长度、深度、宽度、正交性标准),以确定它们是否表示开放角。关于使用图像信息来标识角和潜在边缘的另外的细节可以在2020年4月7日发出的第10,614,340号美国专利中找到,该美国专利通过引用整体并入。
如上所述并参考图3C,其中描绘了物体3000A-3000D的扩展顶视图,每个物体3000A-3000D的附加特征被描绘。在二维描绘中,物体3000A可以具有由四个边缘(纵向物理边缘3013、横向物理边缘3015、横向物理边缘3017和纵向物理边缘3019)定义的表面。在所示的示例实施例中,横向物理边缘3017和纵向物理边缘3019与相邻物体3000B和3000D的边缘相邻并且齐平。如前所述,物体3000A、3000B和3000D的这样的定位可能使计算系统3100更难以区分每个物体的特征。
在操作中,方法4000包括为开放角3004A定义如图3E和3G所示的最小可行范围3006的操作4006。最小可行范围3006表示可以被机械臂3320的末端执行器装置3330抓取以移动物体3000的物体3000的表面3001上与开放角3004A相关联的范围。如上所述,机械臂3320可以使用例如末端执行器装置3330的吸力抓持以通过顶表面抓握物体,诸如包括开放角3004A的目标物体。物体的最小可行范围3006表示物体的顶表面上的范围,该范围被估计为完全存在于单个物体的表面上。因此,试图在由最小可行范围3006定义的范围内抓握目标物体可以确保末端执行器装置3330仅接触目标物体(例如,单个物体)而不延伸越过目标物体的边缘,使得当抓握目标物体时相邻的物体没有也被抓握。在物体3000的边缘与其他物体相邻或接触的情况下,计算系统1100/3100可能难以标识或花费更长的时间来标识物体的确切尺寸。因此,可能难以准确地定义机械臂3320可以安全地抓取物体3000而不延伸超过物体3000的边缘和/或接触另一个单独的物体的范围。因此,最小可行范围3006基于估计的或潜在的尺寸来定义范围,其中机械臂3320可以在不知道物体3000的确切尺寸的情况下抓取物体3000。最小可行范围3006旨在定义其中机械臂3320可以抓取物体3000的范围。应当理解,最小可行范围3006的大小可以不同于,有时甚至显著地不同于其在上面被发现的物体3000的大小。操作4008-4016描绘了最小可行范围3006如何被计算和验证。
在操作中,方法4000包括用于生成多个候选边缘段的操作4008。多个候选边缘段可以包括多个横向候选边缘段和多个纵向候选边缘段。多个横向候选边缘段和多个纵向候选边缘段表示作为分别对应于与开放角3004A相关联的物体3000的横向物理边缘3017和纵向物理边缘3019的候选的边缘或边缘部分。与开放角3004A相关联的物体3000可以定位为与其他物体3000相邻或齐平,这创建了计算系统1100/3100在区分物体3000A结束和其他物体(3000B、3000C、300D等)开始的位置时可能被挑战的环境。
计算系统1100/3100可以首先标识2D图像信息内的多个潜在边缘段。潜在边缘段可以从任何类型的可检测视觉标记中被标识,该视觉标记具有使其有可能被识别为表示物体的物理边缘的属性。例如,视觉标记可包括边缘、折痕、间隙、颜色更改和其他不连续性。潜在边缘段然后可被进一步处理(例如,通过聚类技术)以标识多个候选边缘段。例如,适当的聚类技术在2020年2月14日提交的第16/791,024号美国专利申请中被描述,该美国专利申请通过引用整体并入本文。在实施例中,候选边缘段可基于基本上垂直于(例如,在5度垂直内)横向物理边缘3017(用于纵向候选边缘段)或纵向物理边缘3013(用于横向候选边缘段)而从潜在边缘段中被标识。出于示例目的,图3C示出了多个横向候选边缘段的单个横向候选边缘段3009和多个纵向候选边缘段的单个纵向候选边缘段3011。
在实施例中,多个候选边缘段的检测可以根据最小和最大候选大小来限制。计算系统1100/3100可以基于预期物体大小确定最小和最大候选大小。预期物体可能具有长度、宽度和高度尺寸。最小候选大小可以根据要在预期物体中找到的最小面(例如,根据三个尺寸中的两个)来定义。在一些实施例中,最小候选大小可以由长度和宽度尺寸和/或对角线尺寸来定义。最大候选大小可以根据要在预期物体中找到的最大面(例如根据三个尺寸中的两个)来定义。在图3D中最小候选大小3016和最大候选大小3018通过举例示出。最小候选大小3016可以因此与最小可能物体面相关联,并且最大候选大小3018可以因此与最大可能物体面相关联。最小候选大小3016可以包括表示最小可能物体面的尺寸的横向尺寸3016A和纵向尺寸3016B,而最大候选大小3018可以包括表示最大可能物体面的尺寸的横向尺寸3018A和纵向尺寸3018B。在某些实施例中,仅最小候选大小3016和最大候选大小3018之间的范围被分析以用于潜在边缘段的生成。
在实施例中,操作4008可以操作来组合对齐后的候选边缘段。例如,在一个或多个候选边缘段对齐的情况下,它们可以由计算系统3010组合以用于进一步分析。对齐后的候选边缘段可以具有基本共线性(也被称为基本上相似的对齐),其可以根据预定义的角度阈值和/或预定的偏移阈值来定义。两个候选边缘段的角度阈值可能要求,例如,两个候选边缘之间的角度在角度阈值内(例如,一定数量的度数,诸如5°、4°、3°、2°,或1°),或由两个候选边缘段中的每一个形成的相应角度在角度阈值内。两个候选边缘段的偏移阈值可能要求,例如,候选边缘具有比偏移阈值更小的偏移。在实施例中,两个候选边缘之间的偏移可以由从候选边缘延伸或以其他方式外推的相应线之间的最短距离来定义。对齐后的候选边缘段可以被组合以创建更大的候选边缘段。
在操作中,方法4000包括从多个候选边缘段确定多个候选边缘的操作4010。现在参考图3C和3D,从多个候选边缘段中选择候选边缘的操作被描述。一系列阈值或滤波器可以被应用来排除不太可能、不大可能或不能表示处在分析下的物体的物理边缘的候选边缘段。操作4010可以确定多个候选边缘(包括多个横向候选边缘(在图3C中由单个横向候选边缘3008表示)和多个纵向候选边缘(在图3C中由单个纵向候选边缘3010表示))作为对横向物理边缘3017和纵向物理边缘3019的估计。操作4010可以根据一个或多个标准的应用来选择候选边缘。
第一阈值或标准可以是位置标准或物理边缘到段的阈值(a physical edge tosegment threshold)。位置标准表示对候选边缘段是否落入已知开放物理边缘(并且更具体地,基本上垂直于候选边缘段朝向的已知开放物理边缘)的阈值距离内的评估。图3C示出了横向候选边缘段3009,其具有近端点3009A和远端点3009B,并且基本上垂直于与作为开放物理边缘之一的纵向物理边缘3013对应的纵向物理边缘向量3012定位。近端点3009A定位在关于纵向物理边缘3013的横向候选边缘段3009的近端,并且远端点3009B定位在关于纵向物理边缘3013的横向候选边缘段3009的远端。位置标准表示对近端点3009A和纵向物理边缘3013之间的段到边缘的距离3030A是否在定义的最小值内的评估。定义的最小值可以被设置为由缩放因子δ1加权的最小候选大小3016的最小尺寸(Min)的长度。因此,位置标准可以被表达为0≤距离3030A≤δ1*Min。缩放因子δ1可以被设置为0.4和0.6之间或0.4和0.5之间的值。位置标准确保横向候选边缘段3009的近端点3009A与纵向物理边缘3013的间隔不超过最小候选大小3016的最小尺寸(Min)的长度的一半。不满足位置标准的任何候选边缘段可以被排除为多个候选边缘的可能成员。位置标准也可以应用于多个纵向候选边缘段,诸如具有近端点3011A和远端点3011B的纵向候选边缘段3011。近端点3011A可以基于段到边缘的距离3032A根据接近横向物理边缘3015的位置标准来评估。
在另外的实施例中,横向候选边缘段3009的远端点3009B可以基于段到边缘的距离3030B根据接近最大候选大小3018的纵向尺寸3018B的位置标准来评估。纵向候选边缘段的远端点3011B可以基于段到边缘距离的3032B根据接近最大候选大小3018的横向尺寸3018A的位置标准来评估。作为应用到远端点3009B和3011B的位置标准可以代替或附加于作为应用到近端点3009A和3011A的位置标准来使用。
位置标准预期如果横向候选边缘段3009或纵向候选边缘段3011对应于横向物理边缘3017或纵向物理边缘3019,则近端点3009A/3009B或远端点3011A/3011B将定位于物体的物理边缘或最大候选大小的阈值距离内。因此,位置标准评估潜在候选边缘段是否具有接近正被分析物体的已知物理边缘或预期物理边缘(如由最大候选大小表示)的端点。缩放因子δ1可被选择以解释或解决标识边缘段时的噪声、传感器差异或其他误差源。
第二标准(也被称为段长度标准或段长度阈值)评估候选边缘段的长度是否超过阈值。在实施例中,阈值可以被设置为由缩放因子δ2加权的最小候选大小3016的最小尺寸(Min)的长度。因此,长度标准可以将近端点3009A/3011A和远端点3009B/3011B之间的边缘段长度3051与最小候选大小3016进行比较。如果横向候选边缘段3009或纵向候选边缘段3011的边缘段长度3051小于最小候选大小3016的最小尺寸长度的百分比,则计算系统1100/3100可以将候选边缘段3009/3011从作为候选边缘的考虑中排除。长度标准也可以被写为δ2*Min≤边缘段长度3051。缩放因子δ2可以具有在0.6和0.8之间、0.65和0.75之间、0.69和0.71之间或接近0.7的范围中的值。
第二标准预期,对于与物理边缘对应并因此被视为候选边缘的候选边缘段,候选边缘段应该足够长以超过最小候选大小的最小尺寸的一部分,因此,不满足段长度阈值的候选边缘段可能不被视为潜在表示物理边缘的候选。缩放因子δ2可被选择以解释或解决标识边缘段时的噪声、传感器差异或其他误差源。
第三标准(也被称为正交性标准或段正交性阈值),评估候选线段是否基本上垂直于纵向物理边缘3013或横向物理边缘3015。如本文所用,术语基本上垂直意思是在确切垂直的5度内。例如,将横向候选边缘段3009与纵向物理边缘3013进行比较以确定基本垂直性或基本正交性,并将纵向候选边缘段3011与横向物理边缘3015进行比较以确定基本垂直性或基本正交性。第三标准预期,对于分别对应于横向物理边缘3017或第四物理边缘3015的横向线段3009或纵向线段3011,潜在边缘应与它从其延伸的物理边缘基本上垂直。不满足正交性标准的候选边缘段可以被排除为潜在候选边缘。
候选边缘可以从满足以下三个标准中的每一个的多个候选边缘段中被选择或确定:位置标准、长度标准和正交性标准。多个候选边缘可以包括多个横向候选边缘和多个纵向候选边缘。图3C示出了单个横向候选边缘3008和单个纵向候选边缘3010。横向候选边缘3008与相关联的横向候选边缘段3009对齐并且从纵向物理边缘3013基本上垂直地延伸。纵向候选边缘3010与相关联的纵向候选边缘段3011对齐并且基本上垂直于横向物理边缘3015延伸。
在操作中,方法4000包括用于在多个横向候选边缘和多个纵向候选边缘中的相应边缘之间生成多个交点3024的操作4012。交点3024被定义为多个横向候选边缘或其投影中的任何一个与多个纵向候选边缘或其投影中的任何一个相交的位置。投影可用于所标识的候选边缘没有延伸到足够远以与垂直朝向的候选边缘之一相交的情况。横向候选边缘3009和纵向候选边缘3011之间的单个交点3024在图3C中描绘。如图3E所示,每个横向候选边缘3008A、3008B、3008C和纵向候选边缘3010A、3010B、3010C可以与多个交点3024A-3024I相关联。例如,横向候选边缘3008A与纵向候选边缘3010A、3010B和3010C相交以创建三个不同的交点3024A、3024D和3024G。这些交点3024A-3024I中的每一个表示与目标开放角3004A相对的目标物体的潜在角。
在操作中,方法4000包括生成与目标开放角3004A相关的候选最小可行范围的操作4014。如上所述,最小可行范围3006(如图3C所示)表示可以或可用于机械臂3320抓取或抓握以便移动物体3000的物体3000的表面3001上与目标开放角3004A相关联的范围。在目标开放角3004A中相关联的物体3000与其他物体相邻或接触的应用中,计算系统3100可能不能准确和/或精确地估计物体3000的尺寸,并且因此,难以准确地定义机械臂3320可以安全地抓取物体3000的范围。因此,最小可行范围3006基于估计的或潜在的尺寸来定义机械臂3320可以在不知道确切的尺寸的情况下抓取物体3000的范围。最小可行范围3006是物体3000的表面3001上由目标开放角3004A、多个横向候选边缘的横向候选边缘3008、多个纵向候选边缘的纵向候选边缘3010和交点3024定义的面积。
如上所述,多个横向候选边缘3008A、3008B、3008C、多个纵向候选边缘3010A、3010B、3010C和多个交点3024A-3024I在先前的操作中被标识。多个横向候选边缘3008A、3008B、3008C、多个纵向候选边缘3010A、3010B、3010C和多个交点3024A-3024I一起可以定义一组潜在最小可行范围候选3066,其中的各个候选(例如,潜在最小可行范围候选3006A-3006G)在图3E中示出。在实施例中,与目标角3004A相关联的最小可行范围候选可以根据交点3024标识,因为每个交点3024还指定其被形成的横向候选边缘3008和纵向候选边缘3010。如图3E中所描绘的,许多潜在最小可行范围3006可以与单个横向候选边缘3008A、3008B、3008C或单个纵向候选边缘3010A、3010B、3010C相关联。此外,该组潜在最小可行范围候选3066中的每一个都与单个交点3024相关联。如上所述,该组潜在最小可行范围候选3066中的每一个都适合于与最小可能物体相关联的最小候选大小3016和与最大可能物体相关联的最大候选大小3018内。
图3E的潜在最小可行范围候选3066在下表1中呈现为横向候选边缘3008A、3008B、3008C和纵向候选边缘3010A、3010B、3010C的组合。
表1
候选最小可行范围3067可基于潜在最小可行范围候选3006A、3006B等被从该组潜在最小可行范围候选3066中选择出,其具有在目标角3004A和相关联的交点3024之间的最小对角线距离。最小距离可用作确定候选最小可行范围3067的主要因素。由于将缩放因子δ2用于长度标准,候选最小可行范围3067可能小于最小候选大小3016。在另外的实施例中,最小候选大小3016可以被设置为潜在最小可行范围候选3066的最小大小,以被选择为候选最小可行范围3067。
通过为候选最小可行范围3067选择最小对角线距离,系统确定候选最小可行范围3067不大于其所位于的实际物体3000。尽管形成候选最小可行范围3067的所标识的边缘可能不表示目标物体3000A的实际尺寸,但它们确实表示目标物体3000A的可能边缘。通过选择目标角3004A和相关联的交点3024之间的最小对角线距离,计算系统1100/3100确定具有仅存在于目标对象3000A上的增加的可能性的面积,即候选最小可行范围3067。实施例中,系统可以确定候选最小可行范围3067不与多于一个物体相交。因此,在候选最小可行范围3067内抓握目标物体3000A通过降低机械臂一次试图抓握多于一个物体3000的可能性来提高抓握操作的可靠性。
可以使用从该组潜在最小可行范围候选3066中确定最小可行范围候选的各种其他方法。例如,如果潜在最小可行范围候选包括也是先前标识的开放角3004的交点3024,则该潜在最小可行范围候选可被选择,因为可假设其与物体3000的整个表面3001相关。替代地,如果潜在最小可行范围候选具有与最小候选大小3016或最大候选大小3018基本上相似的尺寸,例如在某个百分比阈值内,则可以假设物体3000可以分别是最小候选大小3016或最大候选大小3018,并且潜在最小可行范围候选可被选择。在某些实施例中,要从该组潜在最小可行范围候选3066中选择的候选最小可行范围3067,可以基于潜在最小可行范围候选3006A、3006B等具有该组潜在最小可行范围候选3066的最大面积或中值面积。在某些实施例中,要从该组潜在最小可行范围候选3066中选择的候选最小可行范围3067,可以基于潜在最小可行范围候选3006A、3006B等具有与最短候选边缘相关联的交点3024。
在操作中,方法4000包括验证或调整最小可行范围候选3067以生成最小可行范围3006的操作4016。最小可行范围候选3067的验证可以包括一种或多种技术,如下所述。验证后的和/或调整后的最小可行范围候选3067因此可以被定义为最小可行范围3006并且可以被计算系统1100/3100用作检测假设或用于增强用于标识物体的检测假设。如本文所用,术语检测假设是指关于由计算系统1100/3100确定的物体的大小或形状的假设。在实施例中,检测假设可以经由进一步分析(例如,使用附加的图像分析技术)、通过机器人操纵和/或通过附加方式来确认。
可以为在操作4004中标识的每个开放角3004找到最小可行范围候选3067(根据操作4006-4014),并且可以通过与其他最小可行范围3607进行比较来验证如此检测到的最小可行范围候选3067。例如,计算系统1100/3100可以执行重叠验证或遮挡验证。计算系统1100/3100可以确定目标开放角3004A的最小可行范围候选3067的一部分是否与和不同开放角3004相关联的最小可行范围候选3067相交。在这样的情况下,目标开放角3004A的最小可行范围候选3067和不同开放角3004的最小可行范围候选3067之间的比较可以确定开放角3004/3004A属于同一物体3000A(遮挡验证),或者开放角3004/3004A属于不同的物体3000(重叠验证)。
在共享物体的情况下,计算系统1100/3100可以执行遮挡验证。属于同一目标物体3004A的两个最小可行范围候选3067可以彼此遮挡。计算系统1100/3100可以组合两个最小可行范围候选3067的信息以生成最小可行范围3066,或者可以调整目标开放角3004A的最小可行范围候选3067以并入不同开放角3004的最小可行范围候选3067的信息3004以创建物体3000A的更准确的最小可行范围3066。
替代地,如果角不属于同一物体3000,则计算系统1100/3100可以降低与这两个重叠的最小可行范围候者3067相关联的置信水平。在确定最小可行范围候选3067中的哪一个以指定为最小可行范围3006以用于进一步处理时,计算系统1100/3100可以选择具有最高置信水平(例如,具有与其他最小可行范围候选3067较少重叠或没有重叠)的最小可行范围候选3067。
在实施例中,最小可行范围候选3067的准确性还可以使用附加因素增加。例如,如果已知托盘包含统一类型的物体(例如具有单个SKU的物体),则每个物体的最小可行范围(并且特别地,与物体尺寸匹配的最小可行范围)可能被预期为基本上是统一的。在这样的情况下,若干不同的技术可用来从潜在最小可行范围候选3066中标识和验证最小可行范围候选者3067。单个SKU或统一物体方法可以包括模板验证操作、填充(packing)验证操作、和角分类操作中的一种或多种。
现在参考图3F,在实施例中,对于包含统一类型物体的物体存储库(例如,托盘、容器或其他物体存储库),最小可行范围候选3067可以基于模板验证操作从潜在可行范围候选3066中标识和验证出。本文执行的物体识别方法的方面在2020年8月12日提交的第16/991,510号美国申请和2020年8月12日提交的第16/991,466号美国申请中被更详细地描述,这些美国申请中的每一个通过引用并入本文。模板验证操作基于统一物体将具有相似尺寸和视觉特性的假设进行。由潜在最小可行范围候选3066定义的图像信息的部分可被分析以生成对应于每个潜在最小可行范围候选3066的模板3068。每个模板3068可以包括从相关联的图像部分生成的信息,包括至少纹理值、颜色值和尺寸值。纹理值可以定义潜在最小可行范围候选3066的图像部分是标识带纹理的表面还是无纹理的表面。颜色值可以定义表示潜在最小可行范围候选3066的图像部分的颜色。尺寸值可以表示潜在最小可行范围候选3066的边缘尺寸和/或面积。模板3068可以彼此比较,以标识在纹理值、颜色值和尺寸值中的一个或多个中匹配的模板3068。在这些值中的一个或多个中匹配可指示与匹配模板3068相关联的潜在最小可行范围候选3066表示真实物理物体3000。在物体3000是统一类型的情况下,可以预期它们具有匹配模板3068。因此,通过标识匹配模板3068,一个或多个最小可行范围候选3067可以从潜在最小可行范围候选3066中标识出。在实施例中,所标识的一个或多个最小可行范围候选3067还可以基于模板验证操作被验证为最小可行范围3006。
现在参考图3G和3H,在实施例中,对于包含统一类型物体3091的物体存储库3090(例如,托盘、容器或其他物体存储库),最小可行范围候选3067(这里未示出)可以是基于填充验证操作从潜在最小可行范围候选3066中被标识和/或验证出。如果已知物体存储库3090被完全填充(例如,具有完全被物体占据的层)或者已知物体存储库被填充在边缘周围,则此信息可用于以若干方式帮助或增强从潜在最小可行范围候选3066标识和验证最小可行范围候选3067。
首先,填充验证操作可以使用填充后的物体存储库3090的总面积来帮助标识和验证最小可行范围候选3067。如果物体存储库3090被完全填充,则位于其上的物体3091的总表面积将被单个物体3091的表面积整除。在图3G所示的示例中,物体3091的总表面积除以单个物体3091的表面积为8。潜在最小可行范围候选3066的面积可以与物体3091的总表面积进行比较以标识具有整除总表面积的面积的最小可行范围候选3067。阈值因子(例如,95%、98%、99%等)可被应用于除法运算,以解释噪声和其他测量误差源。根据本文描述的另外方法,所标识的最小可行范围候选3067还可以被验证以确定最小可行范围3006。
其次,填充验证操作可以使用填充后的物体储存库3090的尺寸来帮助标识和验证最小可行范围候选3067。在其中物体3091以相等数量的行和列排列的具体布置中,潜在最小可行范围候选3066的尺寸可以与物体存储库3090的尺寸进行比较以标识和/或验证最小可行范围候选3067。例如,物体存储库3090的横向尺寸X1和纵向尺寸X2将被与物体3091的尺寸匹配的潜在最小可行范围候选3066的尺寸整除。潜在最小可行范围候选3066在图3G中被示为有深色边界,具有尺寸D1和D2。如果X1=m*D1,其中m是整数(在图3G的示例中,m=2)并且X2=n*D2,其中n是整数(在图3G的示例中,n=4),则它可以指示潜在最小可行范围候选3066表示物体存储库3090上的物体3091的真实尺寸并且可以被标识为最小可行范围候选3067。如果潜在最小可行范围候选3066的尺寸不满足这些条件,则它不大可能表示物体存储库3090上的物体3091的真实尺寸。在实施例中,百分比阈值(例如,95%、98%、99%)可用于X1和X2的等式中以解释由于噪声和其他因素导致的潜在测量误差。根据本文描述的另外方法,所标识的最小可行范围候选3067还可以被验证以确定最小可行范围3006。
第三,填充验证操作可以使用物体储存库3090的尺寸来帮助标识和验证最小可行范围候选3067以用于更一般的布置。在图3H中所示的一般布置中,其中物体3091以完全填充物体存储库3090的边缘的不等数量的行和列(有时称被为针轮式码放(pinwheelpattern))布置,物体存储库3090的每一侧的长度应该等于物体3091的横向尺寸的整数加上物体3091的纵向尺寸的整数。无论物体存储库3090是否被完全填充,只要边缘被完全填充,一般布置填充操作都可被使用。潜在最小可行范围候选3066的尺寸与物体储存库3090的尺寸进行比较,以使用解释物体3091的宽度和长度两者的一对等式来标识和/或验证最小可行范围候选3067。潜在最小可行范围候选3066在图3H中示为有深色边界,具有尺寸D1和D2。在一般布置中,应被满足的等式如下。X1=m1*D1+n1*D2,其中m1和n1两者是整数(在图3H的示例中,m1=1且n1=3)并且X2=m2*D1+n2*D2,其中m2和n2两者是整数(在图3H的示例中,m2=1且n2=3)。如果两个等式可由潜在最小可行范围候选3066的尺寸满足,则它可以指示潜在最小可行范围候选3066表示物体存储库3090上的物体3091的真实尺寸并且可以被标识为最小可行范围候选3067。如果潜在最小可行范围候选3066的尺寸不满足这些条件,则不大可能表示物体存储库3090上的物体3091的真实尺寸。在实施例中,百分比阈值(例如,95%,98%,99%)可用于X1和X2的等式中以解释由于噪声和其他因素导致的潜在测量误差。根据本文描述的另外方法,所标识的最小可行范围候选3067还可以被验证以确定最小可行范围3006。
在实施例中,角分类操作可以由计算系统1100/3100在具有统一类型的物体3091的物体储存库3090上执行。因为物体3091是统一的,所以可以预期在开放角处可标识的物体3091可能具有某些共同特征。例如,物体3091的角类型可以在物体存储库3090的角之间进行比较。角类型可以包括例如矩形、八角形和圆形。在某些情况下,由于测量误差,可能难以区分物体存储库3090的角处的不同类型的物体角。例如,可能难以确定物体角是八角形还是圆形。在这样的情况下,可以比较物体存储库3090的每个角处的物体角,并且可以将最频繁标识的物体角确定为物体存储库3090中的物体3091的物体角类型。类似的技术可以用于确定位于物体存储库3900的角处的物体3900的带纹理的或无纹理的分类。
对于相关领域的普通技术人员将明显的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和改编。上述实施例是说明性示例,并且不应解释为将本发明限于这些特定实施例。应当理解,本文所公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来进行组合。还应当理解,取决于示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。此外,尽管为了清楚起见,本文实施例的某些特征被描述为由单个部件、模块或单元来执行,但是应当理解,本文描述的特征和功能可以由部件、单元或模块的任何组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以影响各种变化和修改。
另外的实施例包括:
实施例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是一种控制机器人系统的方法,该机器人系统包括非暂时性计算机可读介质、与具有视场的相机通信并被配置为执行指令的至少一个处理电路。方法包括获取表示一个或多个物体的图像信息,每个物体具有多个边缘,其中图像信息由相机生成并描述与一个或多个物体相关联的至少物体外观;基于图像信息检测一个或多个物体的多个角;从多个角中标识目标开放角;为目标开放角定义最小可行范围,其中最小可行范围通过以下定义:生成多个候选边缘段;从多个候选边缘段中确定多个候选边缘;定义多个候选边缘的相应候选边缘之间的多个交点;基于多个交点定义一组潜在最小可行范围候选;以及从该组潜在最小可行范围候选中为多个角中的目标开放角选择最小可行范围候选;以及验证最小可行范围候选作为目标开放角的最小可行范围。
实施例12是实施例11的方法,其中生成多个边缘段包括在由最小候选大小和最大候选大小定义的范围内生成多个边缘段。
实施例13是实施例11或12的方法,其中最小可行范围候选是基于最小面积从该组潜在最小可行范围候选中选择的。
实施例14是实施例11-13的方法,其中标识目标开放角包括识别所选择的开放角不与另一个物体相邻。
实施例15是实施例11-14的方法,其中验证最小可行范围候选作为最小可行范围包括:执行最小可行范围候选与至少一个其他最小可行范围候选的重叠验证。
实施例16是实施例11-15的方法,其中从多个候选边缘段确定多个候选边缘包括:根据段长度标准评估多个候选边缘段。
实施例17是实施例11-16的方法,其中从多个候选边缘段确定多个候选边缘包括:根据正交性标准评估多个候选边缘段。
实施例18是实施例11-17的方法,其中从多个候选边缘段确定多个候选边缘包括:根据位置标准评估多个候选边缘段。
实施例19是实施例11-18的方法,其中验证最小可行范围候选是根据填充验证操作来执行的。
实施例20是一种非暂时性计算机可读介质,包括用于由与具有视场的相机通信并被配置的至少一个处理电路执行的指令,当一个或多个物体处于或者已经处于视场中时,指令被配置为:获取表示一个或多个物体的图像信息,每个物体具有多个边缘,其中图像信息由相机生成并描述与一个或多个物体相关联的至少物体外观;基于图像信息检测一个或多个物体的多个角;从多个角中标识目标开放角;为目标开放角定义最小可行范围,其中最小可行范围通过以下定义:生成多个候选边缘段;从多个候选边缘段中确定多个候选边缘;定义多个候选边缘的相应候选边缘之间的多个交点;基于多个交点定义一组潜在最小可行范围候选;以及从该组潜在最小可行范围候选中为多个角中的目标开放角选择最小可行范围候选;以及验证最小可行范围候选作为目标开放角的最小可行范围。
Claims (20)
1.一种计算系统,包括:
非暂时性计算机可读介质;
与具有视场的相机通信的至少一个处理电路,所述至少一个处理电路被配置为,当一个或多个物体处于或者已经处于所述视场中时,执行存储在所述非暂时性计算机可读介质上的指令以用于:
获取表示一个或多个物体的图像信息,每个物体具有多个边缘,其中所述图像信息由所述相机生成并描述与所述一个或多个物体相关联的至少物体外观;
基于所述图像信息检测所述一个或多个物体的多个角;
从所述多个角中标识目标开放角;
为所述目标开放角定义最小可行范围,其中所述最小可行范围通过以下定义:
生成多个候选边缘段;
从所述多个候选边缘段中确定多个候选边缘;
定义所述多个候选边缘的相应候选边缘之间的多个交点;
基于所述多个交点定义一组潜在最小可行范围候选;
从所述一组潜在最小可行范围候选中为所述多个角中的所述目标开放角选择最小可行范围候选;以及
验证所述最小可行范围候选作为所述目标开放角的最小可行范围。
2.如权利要求1所述的计算系统,其中所述图像信息从三维视图卷绕为二维视图。
3.如权利要求1所述的计算系统,其中生成所述多个边缘段包括在由最小候选大小和最大候选大小定义的范围内生成所述多个边缘段。
4.如权利要求1所述的计算系统,其中所述最小可行范围候选是基于最小面积从所述一组潜在最小可行范围候选中选择的。
5.如权利要求1所述的计算系统,其中标识所述目标开放角包括识别所选择的开放角不与另一个物体相邻。
6.如权利要求1所述的计算系统,其中验证所述最小可行范围候选作为最小可行范围包括:执行所述最小可行范围候选与至少一个其他最小可行范围候选的重叠验证。
7.如权利要求1所述的计算系统,其中从所述多个候选边缘段确定所述多个候选边缘包括:根据段长度标准来评估所述多个候选边缘段。
8.如权利要求1所述的计算系统,其中从所述多个候选边缘段确定所述多个候选边缘包括:根据正交性标准来评估所述多个候选边缘段。
9.如权利要求1所述的计算系统,其中从所述多个候选边缘段确定所述多个候选边缘包括:根据位置标准来评估所述多个候选边缘段。
10.如权利要求1所述的计算系统,其中验证所述最小可行范围候选是根据填充验证操作来执行的。
11.一种控制机器人系统的方法,所述机器人系统包括非暂时性计算机可读介质、与具有视场的相机通信并被配置为执行指令的至少一个处理电路,所述方法包括:
获取表示一个或多个物体的图像信息,每个物体具有多个边缘,其中所述图像信息由所述相机生成并描述与所述一个或多个物体相关联的至少物体外观;
基于所述图像信息检测所述一个或多个物体的多个角;
从所述多个角中标识目标开放角;
为所述目标开放角定义最小可行范围,其中所述最小可行范围通过以下定义:
生成多个候选边缘段;
从所述多个候选边缘段中确定多个候选边缘;
定义所述多个候选边缘的相应候选边缘之间的多个交点;
基于所述多个交点定义一组潜在最小可行范围候选;
从所述一组潜在最小可行范围候选中为所述多个角中的所述目标开放角选择最小可行范围候选;以及
验证所述最小可行范围候选作为所述目标开放角的最小可行范围。
12.如权利要求11所述的方法,其中生成所述多个边缘段包括在由最小候选大小和最大候选大小定义的范围内生成所述多个边缘段。
13.如权利要求11所述的方法,其中所述最小可行范围候选是基于最小面积从所述一组潜在最小可行范围候选中选择的。
14.如权利要求11所述的方法,其中标识所述目标开放角包括识别所选择的开放角不与另一个物体相邻。
15.如权利要求11所述的方法,其中验证所述最小可行范围候选作为最小可行范围包括:执行所述最小可行范围候选与至少一个其他最小可行范围候选的重叠验证。
16.如权利要求11所述的方法,其中从所述多个候选边缘段确定所述多个候选边缘包括:根据段长度标准来评估所述多个候选边缘段。
17.如权利要求11所述的方法,其中从所述多个候选边缘段确定所述多个候选边缘包括:根据正交性标准来评估所述多个候选边缘段。
18.如权利要求11所述的方法,其中从所述多个候选边缘段确定所述多个候选边缘包括:根据位置标准来评估所述多个候选边缘段。
19.如权利要求11所述的方法,其中验证所述最小可行范围候选是根据填充验证操作来执行的。
20.一种非暂时性计算机可读介质,包括用于由与具有视场的相机通信并被配置的至少一个处理电路执行的指令,当一个或多个物体处于或者已经处于所述视场中时,所述指令被配置为:
获取表示一个或多个物体的图像信息,每个物体具有多个边缘,其中所述图像信息由所述相机生成并描述与所述一个或多个物体相关联的至少物体外观;
基于所述图像信息检测所述一个或多个物体的多个角;
从所述多个角中标识目标开放角;
为所述目标开放角定义最小可行范围,其中所述最小可行范围通过以下定义:
生成多个候选边缘段;
从所述多个候选边缘段中确定多个候选边缘;
定义所述多个候选边缘的相应候选边缘之间的多个交点;
基于所述多个交点定义一组潜在最小可行范围候选;以及
从所述一组潜在最小可行范围候选中为所述多个角中的所述目标开放角选择最小可行范围候选;
验证所述最小可行范围候选作为所述目标开放角的最小可行范围。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163189743P | 2021-05-18 | 2021-05-18 | |
US63/189,743 | 2021-05-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115366091A true CN115366091A (zh) | 2022-11-22 |
Family
ID=84060666
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280003782.7A Pending CN115643800A (zh) | 2021-05-18 | 2022-05-17 | 用于物体大小测量的机器人系统 |
CN202310843958.6A Pending CN116619386A (zh) | 2021-05-18 | 2022-05-17 | 用于物体大小测量的机器人系统 |
CN202210542953.5A Pending CN115366091A (zh) | 2021-05-18 | 2022-05-18 | 用于物体大小检测的机器人系统 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280003782.7A Pending CN115643800A (zh) | 2021-05-18 | 2022-05-17 | 用于物体大小测量的机器人系统 |
CN202310843958.6A Pending CN116619386A (zh) | 2021-05-18 | 2022-05-17 | 用于物体大小测量的机器人系统 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20220371200A1 (zh) |
EP (1) | EP4341053A1 (zh) |
JP (4) | JP7201189B2 (zh) |
CN (3) | CN115643800A (zh) |
WO (1) | WO2022245842A1 (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11333770A (ja) * | 1998-03-20 | 1999-12-07 | Kobe Steel Ltd | 積荷位置姿勢認識装置 |
JP4665857B2 (ja) * | 2006-07-19 | 2011-04-06 | トヨタ自動車株式会社 | アームを誘導可能な移動体およびアームを誘導する方法 |
FI20106387A (fi) * | 2010-12-30 | 2012-07-01 | Zenrobotics Oy | Menetelmä, tietokoneohjelma ja laite tartuntakohdan määrittämiseksi |
KR102081139B1 (ko) * | 2014-03-12 | 2020-02-25 | 한국전자통신연구원 | 물체 피킹 시스템, 물체 검출 장치 및 그 방법 |
US10455222B2 (en) * | 2017-03-30 | 2019-10-22 | Intel Corporation | Technologies for autonomous three-dimensional modeling |
US10369701B1 (en) * | 2018-10-30 | 2019-08-06 | Mujin, Inc. | Automated package registration systems, devices, and methods |
KR102650494B1 (ko) * | 2018-10-30 | 2024-03-22 | 무진 아이엔씨 | 자동화된 패키지 등록 시스템, 디바이스 및 방법 |
JP7097799B2 (ja) * | 2018-11-21 | 2022-07-08 | Thk株式会社 | 画像情報処理装置、把持システム、および画像情報処理方法 |
US11389965B2 (en) | 2019-07-26 | 2022-07-19 | Mujin, Inc. | Post-detection refinement based on edges and multi-dimensional corners |
US11345029B2 (en) * | 2019-08-21 | 2022-05-31 | Mujin, Inc. | Robotic multi-gripper assemblies and methods for gripping and holding objects |
US11006039B1 (en) * | 2020-02-13 | 2021-05-11 | Mujin, Inc. | Method and system for determining occlusion within a camera field of view |
US11403764B2 (en) * | 2020-02-14 | 2022-08-02 | Mujin, Inc. | Method and computing system for processing candidate edges |
-
2022
- 2022-05-17 US US17/746,545 patent/US20220371200A1/en active Pending
- 2022-05-17 CN CN202280003782.7A patent/CN115643800A/zh active Pending
- 2022-05-17 WO PCT/US2022/029654 patent/WO2022245842A1/en active Application Filing
- 2022-05-17 CN CN202310843958.6A patent/CN116619386A/zh active Pending
- 2022-05-17 US US17/746,524 patent/US20220375097A1/en active Pending
- 2022-05-17 EP EP22805329.4A patent/EP4341053A1/en active Pending
- 2022-05-18 JP JP2022081462A patent/JP7201189B2/ja active Active
- 2022-05-18 JP JP2022081405A patent/JP7189586B2/ja active Active
- 2022-05-18 CN CN202210542953.5A patent/CN115366091A/zh active Pending
- 2022-11-24 JP JP2022187394A patent/JP2023016882A/ja active Pending
- 2022-12-14 JP JP2022199845A patent/JP2023024554A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022245842A1 (en) | 2022-11-24 |
JP2022177834A (ja) | 2022-12-01 |
CN115643800A (zh) | 2023-01-24 |
JP7201189B2 (ja) | 2023-01-10 |
US20220371200A1 (en) | 2022-11-24 |
JP7189586B2 (ja) | 2022-12-14 |
JP2023016882A (ja) | 2023-02-02 |
CN116619386A (zh) | 2023-08-22 |
JP2023024554A (ja) | 2023-02-16 |
EP4341053A1 (en) | 2024-03-27 |
JP2022177833A (ja) | 2022-12-01 |
US20220375097A1 (en) | 2022-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7433609B2 (ja) | 物体識別のための方法および計算システム | |
Bone et al. | Automated modeling and robotic grasping of unknown three-dimensional objects | |
US20230041378A1 (en) | Systems and methods for object detection | |
US20210383550A1 (en) | Method and computing system for performing or facilitating physical edge detection | |
Li et al. | Using Kinect for monitoring warehouse order picking operations | |
CN115366091A (zh) | 用于物体大小检测的机器人系统 | |
WO2023092519A1 (zh) | 抓取控制方法、装置、电子设备和存储介质 | |
JP7191352B2 (ja) | 物体検出を実施するための方法および計算システム | |
JP7391342B2 (ja) | 計算システム、方法及び非一時的コンピュータ可読媒体 | |
WO2021246476A1 (en) | Method and computing system for performing or facilitating physical edge detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |