CN117621095A - 用于机器人应用的自动仓检测 - Google Patents
用于机器人应用的自动仓检测 Download PDFInfo
- Publication number
- CN117621095A CN117621095A CN202311104361.6A CN202311104361A CN117621095A CN 117621095 A CN117621095 A CN 117621095A CN 202311104361 A CN202311104361 A CN 202311104361A CN 117621095 A CN117621095 A CN 117621095A
- Authority
- CN
- China
- Prior art keywords
- bin
- pose
- autonomous system
- depth image
- workspace
- 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
- 238000001514 detection method Methods 0.000 title abstract description 4
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000011218 segmentation Effects 0.000 claims description 42
- 239000012636 effector Substances 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000005192 partition Methods 0.000 description 15
- 238000012805 post-processing Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013178 mathematical model Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- 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
- B25J11/00—Manipulators not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G1/00—Storing articles, individually or in orderly arrangement, in warehouses or magazines
- B65G1/02—Storage devices
- B65G1/04—Storage devices mechanical
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- 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/37—Measurements
- G05B2219/37425—Distance, range
-
- 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/40564—Recognize shape, contour of object, extract position and orientation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- 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/20084—Artificial neural networks [ANN]
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Manipulator (AREA)
Abstract
本申请涉及一种用于机器人应用的自动仓检测。在此认识到当前的机器人拾取方法缺乏效率和能力。特别地,由于这样做的各种技术挑战,当前的方法经常不能正确地或有效地估计仓的姿态,这可能影响给定机器人的抓取计算和整体性能。可以基于深度图像来确定或估计仓的姿态。这种仓姿态估计可以在给定机器人的运行时间期间执行,使得可以由于仓姿态估计而增强抓取。
Description
背景技术
在未知或动态环境中的诸如机器人抓取和操纵的自主操作存在各种技术挑战。动态环境中的自主操作可应用于大规模定制(例如,高混合、低体积制造)、智能工厂中的按需灵活制造过程、智能商店中的仓库自主化、智能物流中来自分配中心的自主递送等。为了执行自主操作,诸如抓取和操纵,在一些情况下,机器人可以使用机器学习,特别是深度神经网络或强化学习来学习技能。
具体地,例如,机器人可以在不同情况下与不同对象交互。一些对象对于给定的机器人可能是未知的。仓拾取是机器人能够使用AI执行的示例操作。仓拾取是指机器人从容器或仓中抓取能够定义随机或任意姿态的对象。机器人能够移动或运输对象,并将它们放置在不同的位置用于包装或进一步处理。然而,在此认识到,当前的机器人拾取方法缺乏效率和能力。特别地,由于这样做的各种技术挑战,当前的方法经常不能正确地或有效地估计仓的姿态,这可能影响给定机器人的抓取计算和整体性能。
发明内容
本发明的实施方式通过提供用于确定仓的姿态的方法、系统和设备来解决和克服本文所述的一个或多个缺点或技术问题。这种仓姿态估计可以在给定机器人的运行时间期间执行,使得可以由于仓姿态估计而增强抓取。
在一个示例方面中,一种自主系统包括被配置为在主动工业运行时间中操作以便定义运行时间的机器人。该机器人包括末端执行器,该末端执行器被配置为在工作空间内抓取多个对象。该自主系统可以包括深度相机,该深度相机被配置为捕获该工作空间的深度图像。自主系统还包括处理器和存储指令的存储器,指令在由处理器执行时使自主系统执行各种操作。例如,系统可以检测工作空间内的仓,其中,仓能够包含多个对象中的一个或多个。基于深度图像,系统可以确定仓的姿态。该姿态可以定义仓在工作空间内的方位。
在一个示例中,仓沿着贯轴方向定义底端和与底端相对的顶端,其中,底端与顶端相比沿着贯轴方向远离深度相机定位。顶端可以定义开口和围绕该开口的仓的侧面,使得深度相机进一步被配置为从沿着贯轴方向的视角捕获仓的深度图像。基于该深度图像,该系统可以生成该仓的分割掩模,该分割掩模定义表示该仓在顶端处的侧面的像素。该系统可以沿着第一方向和基本上垂直于第一方向的第二方向扫描分割掩模,以便识别分割掩模的最外边缘上的多个点。此外,系统可以将多个模型拟合到由多个点定义的边界,以便确定仓的姿态。
附图说明
当结合附图阅读时,从下面的详细描述中可以最好地理解本发明的上述和其它方面。为了说明本发明,在附图中示出了目前优选的实施方式,然而,应当理解,本发明不限于所公开的特定手段。附图中包括下列附图:
图1示出了根据示例性实施方式的示例性物理环境中的示例性自主系统,该示例性物理环境包括能够包含各种对象的仓。
图2示出了根据示例性实施方式的被配置为确定或估计仓的姿态的自主系统的示例性计算系统。
图3示出了根据示例性实施方式的可以由图1和图2所示的系统生成的示例性深度图、仓分割掩模和估计姿态。
图4示出了根据示例性实施方式的对与仓分割掩模相关联的示例性数据集对象的处理,以便确定姿态估计。
图5示出了可以对数据集对象执行以生成姿态估计的示例性拟合操作。
图6示出了其中可以实现本公开的实施方式的计算环境。
图7是根据示例性实施方式的另一示例性自主系统的侧视图,示出了用于确定仓像素的示例性深度值阈值。
具体实施方式
最初,机器人仓拾取通常由配备有传感器或相机的机器人组成,使得机器人可以使用机器人末端执行器从容器(仓)以随机姿态抓取(拾取)对象。在这里描述的各种示例中,对象可以是已知的或机器人已知的,并且对象可以是相同类型或混合的。此外,在这里描述的各种示例中,包含由机器人拾取的对象的给定仓的位置(姿态)可能不是相对于机器人静止或固定的。在此进一步认识到,在一些情况下,如果不正确地估计仓(仓姿态)的位置,即使仓姿态估计相对接近于实际仓姿态,所得到的感兴趣区域的确定可能是错误的,使得能够取决于感兴趣区域的抓取计算可能导致错误。
由于各种原因,各个仓相对于机器人的位置可能在给定时间变化。通过一些示例,操作者可以撞击、交换或以其他方式移动仓;仓可以由输送机系统承载以便改变位置或方位;给定的机器人可以安装在另一个移动机器人的顶部或以其他方式改变相对于仓的位置;在仓的位置不固定的这种情况下,在此认识到,给定的自主系统可以在执行仓拾取算法之前估计仓相对于机器人的姿态,以便确定机器人接下来执行的抓取。除了给定仓的姿态或位置的动态特性之外,这里还认识到存在与估计仓位置相关的挑战。例如,可用于仓姿态估计的信息和数据并不总是具有良好的质量。特别地,在此认识到,仓的详细CAD模型通常是不可用的或已知的,预期的仓尺寸并不总是精确的,3D传感器数据可能非常嘈杂且质量差等。这里描述的各种实施方式尤其解决了这些问题,以便对各种仓(例如给定系统先前未遇到的新仓)执行精确的仓姿态估计。
这里经常在用于机器人仓拾取实现的仓姿态估计的上下文中描述示例性实施方式,但是应当理解,这里描述的仓姿态估计可以在各种应用中实现,例如托盘堆叠或分拣和放置应用,并且这里描述的仓姿态估计的所有这样的应用都被认为在本公开的范围内。本文中所描述的实施方式可解决与噪声传感器数据,准确系统信息(例如,仓尺寸)的缺乏等相关的挑战,以便对各种位置中的各种仓执行准确的仓姿态估计。
通过进一步的背景技术,在此认识到,各种商业仓拾取解决方案或系统依赖于已知的静态仓姿态,因此不考虑在此解决的各种问题。相反,这种商业系统可以确保仓总是处于相同的位置,使得仓姿态是已知的或预定的。然而,在此进一步认识到,这样的系统典型地需要复杂的集成,并且较不灵活以及可适用于不同的仓。在某些情况下,传统的基于CAD的姿态估计算法可用于估计仓姿态,例如当仓的CAD模型可用时。然而,在此认识到,这种CAD模型很少可用于商业应用,并且每当将新类型的仓引入给定系统时,获得这种模型为最终用户增加了集成步骤,这可能相当频繁。此外,这种涉及仓的CAD模型的方法在计算上也是昂贵的,并且当与有噪声的低成本传感器数据一起使用时是不合适的。此外,在此还认识到,向仓中添加人工标记,使得可以经由标记来估计姿态,这可以使姿态估计在计算上有效。然而,在此进一步认识到,添加这样的标记的集成成本在例如真实世界的场景中可能是繁重的或不可行的,因为所有的仓经常必须适应于使用标记的仓拾取系统。
现在参考图1,示出了示例工业或物理环境或工作空间100。如这里所使用的,物理环境或工作空间可以指任何未知的或动态的工业环境。除非另外指明,否则物理环境和工作空间在本文中可互换使用,而没有限制。重建或模型可以定义物理环境或工作空间100,或物理环境100内的一个或多个对象106的虚拟表示。为了示例的目的,对象106可设置在仓或容器中,例如仓107,以便定位成用于抓取。除非本文另有说明,仓、容器、托盘、盒子等可以互换使用,没有限制。作为示例,对象106可以由一个或多个机器人从仓107中拾取,并且运输或放置在另一位置,例如在仓107的外部。示例性对象106被示为矩形对象,例如盒子,但是应当理解,对象106可以根据期望可替换地成形或定义可替换的结构,并且所有这样的对象都被认为在本公开的范围内。
物理环境100可以包括被配置为执行一个或多个制造操作(例如组装、运输等)的计算机化的自主系统102。自主系统102可以包括一个或多个机器人装置或自主机器,例如自主机器或机器人装置104,其被配置为执行一个或多个工业任务,诸如仓拾取、抓取等。系统102可以包括一个或多个计算处理器,该一个或多个计算处理器被配置为处理信息并且控制系统102(具体是自主机器104)的操作。自主机器104可以包括一个或多个处理器,例如处理器108,其被配置为处理信息和/或控制与自主机器104相关联的各种操作。用于在物理环境内操作自主机器的自主系统还可以包括用于存储模块的存储器。处理器可进一步被配置为执行模块以便处理信息并基于信息生成模型。应当理解,为了示例的目的,简化了所示的环境100和系统102。环境100和系统102可以根据需要改变,并且所有这样的系统和环境都被认为在本公开的范围内。
仍参见图1,自主机器104还可以包括机器人臂或操纵器110以及被配置为支撑该机器人操纵器110的底座112。底座112可以包括轮子114,或者可以其他方式被配置为在物理环境100内移动。自主机器104还可以包括附接至机器人操纵器110上的末端执行器116。末端执行器116可以包括一个或多个被配置为抓取和/或移动对象106的工具。示例性末端执行器116包括手指夹持器或基于真空的夹持器。机器人操纵器110可以被配置为移动以便改变末端执行器116的位置,例如以便在物理环境100内放置或移动对象106。系统102还可以包括一个或多个相机或传感器118,例如三维(3D)点云相机,其被配置为检测或记录物理环境100内的对象106。相机或传感器118可以被安装到机器人操纵器110上或以其他方式被配置为生成给定场景(例如物理环境100)的3D点云。可替换地或附加地,系统102的一个或多个相机可以包括一个或多个标准二维(2D)相机,其可以记录或捕获来自不同视点的图像(例如,RGB图像或深度图像)。这些图像可用于构建3D图像。例如,2D相机可以被安装到机器人操纵器110上以便从沿着由操纵器110定义的给定轨迹的视角捕获图像。
仍然参考图1,相机或传感器118可以被配置为沿着第一或贯轴方向(transversedirection)120捕获仓107的图像,从而捕获对象106的图像。相机或传感器118可以定义深度相机,该深度相机被配置为从沿着贯轴方向120的视角来捕获工作空间100的深度图像。例如,仓107可以沿着贯轴方向120定义顶端109和与顶端109相对的底端111。仓107还可沿着第二或侧向方向(lateral direction)122定义第一侧113和与第一侧113相对的第二侧115,第二或侧向方向122基本垂直于贯轴方向120。仓107还可沿着第三或纵向方向(longitudinal direction)124定义前端117和与前端117相对的后端119,第三或纵向方向124分别基本垂直于贯轴方向120和侧向方向122。尽管所示的仓107定义了矩形形状,但是应当理解的是,仓或容器可以替代地成形或定尺寸,并且所有这样的仓或容器都被认为在本公开的范围内。
还参考图2,自主系统102可以定义各种计算系统,例如可以包括深度相机(例如相机118)的示例性计算系统200,深度相机可以被配置为生成特定场景(例如由物理环境或工作空间100定义的场景)的深度图像。可替换地或附加地,示例性计算系统200可以包括被配置为生成特定场景的深度图像和彩色图像的多个相机118。自主系统102可以定义各种计算系统,诸如计算系统200,其可以包括彼此通信地耦合的各种模块,例如仓分割模块204、姿态估计模块206和后处理模块208。
参照图1至图3,在示例中,在210处,仓分割模块204获得工作空间的深度图像,例如包括仓107的深度图或图像302。在一些示例中,系统102的用户可以在相机118的帧内(例如在深度图302内)为仓107选择粗略搜索区域。在一些情况下,这种选择可以定义仓搜索,以便增加仓分割模块204的准确度。在其他示例中,没有定义仓搜索区域,并且仓分割模块204可以在整个深度图302中搜索仓107。在各种示例中,系统200可以基于深度图像来检测工作空间100内的仓107。在一些情况下,传感器118定义了被配置为捕获深度图(例如深度图像302)的消费级低成本RGB-D传感器。仓分割模块204可以基于仓的深度图像生成仓的逐像素分割掩模。例如,基于仓107的深度图像302,仓分割模块204可以对仓107执行仓分割,以便生成仓107的逐像素分割掩模304。在各种示例中,仓分割模块204可生成仅包括仓的侧面或包括仓的侧面和内部的逐像素分割掩模。例如,在212处,仓分割模块204可生成逐像素分割掩模304,使得逐像素分割掩模304包括由前端117、后端119、第一侧113和第二侧115定义的仓107的相应侧。另外,仓分割模块204可以生成逐像素分割掩模304,使得逐像素分割掩模304还包括由底端111定义的仓107的内部。
在一个示例中,仓分割模块204获得传感器(例如传感器118)与工作表面(例如支撑底端111的表面)之间沿着贯轴方向120的距离。这种距离可以被测量,作为基于给定自主系统102的已知值输入到仓分割模块204,或者基于由传感器118捕获的深度图像来确定。另外地或可选地,仓分割模块204可以获得仓高度。仓高度可以沿着贯轴方向120测量,作为基于给定仓107的已知值输入到仓分割模块204中,或者基于由传感器118捕获的深度图像来确定。在各种示例中,仓高度被定义为沿着贯轴方向120从工作表面(例如桌子)或底端111到顶端119的距离。在一些情况下,仓沿着贯轴方向120定义底端111和与底端111相对的顶端109,其中与顶端109相比,底端111沿着贯轴方向120远离深度相机118定位。顶端109可以定义开口121,使得深度相机118进一步被配置为从沿着贯轴方向120的视角捕获仓107的深度图像。因此,仓高度可以定义为沿着前端117、后端119、第一侧113或第二侧115从工作表面或底端111到顶端109的距离120。此外,深度图像302中示出的顶端109可以由前端117、后端119、第一侧113和第二侧115定义。基于仓高度和从传感器118到工作表面或底端111的距离,仓分割模块204可以将深度图像302的像素分配或分类为在深度图像302中示出或表示仓107的仓像素。在工作表面或区域(例如,桌子)定义基本上垂直于贯轴方向120的平面的示例中,沿着该贯轴方向拍摄深度图像202,仓分割模块204可以通过将每一个像素沿着贯轴方向120距传感器118的距离与深度值阈值进行比较来确定仓像素。在一个示例中,深度值阈值可以基于仓高度和/或沿着贯轴方向120从传感器118到工作表面的距离。作为示例,深度值阈值可以被定义为从相机118到工作表面或底端111的距离,使得与沿着贯轴方向小于深度值阈值的距离相关联的像素被分类为表示仓107的侧面,特别是侧面的顶端109的仓像素。
在一些示例中,参考图7,深度值阈值702由沿着贯轴方向120来自深度相机118的仓107的尺寸定义。具体地,阈值702可以定义沿着贯轴方向120距深度相机118的最小距离704,以及沿着贯轴方向120距深度相机118的最大距离706。在一个示例中,仓分割模块204存储或保持与沿着贯轴方向120距相机118的距离大于最小距离704且小于最大距离706的像素相关联的值(例如,作为仓像素),以便在深度值阈值702内。在各种示例中,最小值704和最大值以及因此阈值702可以被计算为仓高度的比。
可替换地或附加地,仓分割模块204可以使用定义空工作区域的数据帧的初始集合来生成逐像素分割掩模304。例如,当环境100中没有对象或仓时,相机118可以捕获物理环境100的图像,以便定义空工作区域的数据帧的初始集合。使用数据帧的初始集合,仓分割模块204可以为每一个像素创建背景模型。因此,当仓分割模块204接收深度图像302时,仓分割模块204可基于像素模型将深度图像302中的每一个像素分类为前景(其定义仓像素)或背景(其定义工作区域或工作表面像素(工作区域))。在这样的示例中,仓分割模块204不需要或使用仓高度或到仓的距离作为输入。在一些示例中,高斯模型可用于每一个像素,尽管将了解可使用其它模型,且所有此类模型均预期在本公开的范围内。在一些示例中,例如当相机118定义RGB-D相机时,仓分割模块204可处理来自相机118的颜色数据以区分前景像素与背景像素,借此对仓像素进行分类。具体地,例如仓分割模块204可以学习颜色域中的逐像素背景模型,这对于3D传感器可能有问题的仓尤其有用,例如透明仓等等。
继续参考图1至图3,在212处,姿态估计模块206可以接收仓107的逐像素分割掩模304。使用逐像素分割掩模,姿态估计模块206可生成仓的姿态估计。具体地,例如在214处,使用逐像素分割掩模304,姿态估计模块206可以计算3D空间中的仓107的仓姿态,以便确定仓107的姿态306。姿态306可以定义仓107在工作空间100内的方位。
在示例中,为了生成或确定姿态306,姿态估计模块206将数学模型拟合到逐像素分割掩模304中的仓107的轮廓。在示例中,与第一侧113的顶端109、第二侧115、前端117和后端119相关联的像素定义逐像素分割掩模304中的仓107的轮廓。给定仓的轮廓可以表示为数据对象。例如,参考图4,仓107的轮廓可以由数据集对象400表示,该数据集对象400可以由沿着分割掩模304的边缘采样的点406或一组点406组成。特别地,姿态估计模块206可以通过在垂直方向408和基本垂直于垂直方向408的水平方向410上扫描掩模304来创建点406。因此,点406可包括通过沿着水平方向410扫描掩模304而创建的水平点406a和通过沿着垂直方向408扫描掩模304而创建的垂直点406b。点406可以定义在给定扫描线412中看到的仓107的顶端109的最外边缘。举例来说,在一些情况下,点406a可定义由姿态估计模块206沿着相应水平扫描线412a识别的仓107的侧面的一个或多个(例如第一和最后)边缘,且点406b可定义由姿态估计模块206沿着相应垂直扫描线412b识别的仓107的侧面的一个或多个(例如第一和最后)边缘。
在各种示例中,姿态估计模块206可将数学模型拟合到给定仓的轮廓,轮廓由沿着与仓相关联的分割掩模的边缘采样的点表示,以便生成姿态估计。还参考图5,例如姿态估计模块206可以执行拟合操作500,以便将数学模型拟合到由沿着分割掩模304的边缘采样的点206表示的仓107的轮廓。在拟合操作500期间可以使用各种数学模型,诸如可以由ModelInterface对象表示的模型。作为示例,在拟合操作500期间使用矩形模型,但是应当理解,可选形状的模型可以用于可选形状的仓,并且所有这样的模型都被认为在本公开的范围内。在此认识到,数据集对象400可以包括不在仓107的掩模304上的点。这样的点称为离群值。在这里进一步认识到由于数据集对象400定义的离群值或噪声,姿态估计模块206可以例如基于RANSAC迭代地执行拟合操作500,以拟合模型。例如,姿态估计模块206可以将给定模型拟合到随机选择的一组点。对于其中姿态估计模块206发现数据集中存在未用于拟合模型的内点的良好拟合的迭代,姿态估计模块206可以使用其所有内点来重新拟合模型,并且可以计算所有内点上的总误差。在各种示例中,姿态估计模块206从与最低总内点误差相关联的多个模型中选择模型,以便定义选择的模型。所选择的模型可以定义对包括点406的数据集的最终拟合,以便定义拟合的仓轮廓。基于所拟合的仓轮廓和相机118固有的校准参数,姿态估计模块206可计算或运算3D空间中的仓107的估计姿态306。举例来说,相对于定义矩形的仓107,姿态估计模块206可确定或估计仓107的每一个角的3D位置。基于每一个角的3D位置,姿态估计模块206可以确定或估计仓107的中心位置和仓107的方位。另外,姿态估计模块206可以检查以获得对预期的仓姿态和尺寸进行的仓的正确检测。
再次参考图2,在214处,后处理模块208可以从后估计模块206接收姿态306,以便对可以在深度图上呈现的姿态306执行处理,使得深度图包括估计的姿态306。处理可以基于由系统200执行的特定应用而变化。例如,在托盘堆叠实现期间,在一些情况下,在生成姿态306之后不执行后处理。在一个示例性仓拾取实现中,在生成姿态306之后,后处理模块208可以移除包括姿态306的深度图的区域。被移除的区域可设置在仓107的外部或部分仓壁。为此,后处理模块208可以旋转包括姿态306的深度图,使得在姿态306中表示的仓107的方位与包括姿态306的深度图像的轴的方位相同。例如,可以旋转包括姿态306的深度图,使得由仓107的相对侧113和115定义的侧向方向122平行于水平方向410或垂直方向408。作为另一示例,包括姿态306的深度图可被旋转,使得由仓107的后端119和前端117定义的纵向方向124与垂直方向408或水平方向410平行。在一个示例中,旋转包括姿态306的深度图,使得纵向方向124与垂直方向408或水平方向410中的一者平行,且侧向方向122与垂直方向408或水平方向410中的另一者平行。在旋转包括姿态306的深度图以定义旋转的深度图之后,后处理模块208可以裁剪旋转的深度图,使得仅在旋转的深度图上呈现仓107的内部,例如底端111,以定义旋转和裁剪的深度图。这种后处理能够使神经网络接收旋转和裁剪的深度图作为输入,例如以便能够计算抓取位置。
在一些情况下,用户可以向系统200提供尺寸(例如,长度、宽度、高度),以便定义输入尺寸。在此类示例中,后处理模块208可将输入尺寸与由姿态306定义的尺寸进行比较。在一示例中,当由姿态306定义的尺寸在输入尺寸的预定阈值(例如,5%到10%)内时,后处理模块208可检验或确认姿态306对应于正确的仓。当由姿态306定义的尺寸在输入尺寸的预定阈值之外时,后处理模块208可以确定姿态估计306对应于由环境100内的深度相机118捕获的另一个仓或对象。应当理解,预定阈值取决于相机118的质量,或者可以根据需要而改变,并且5%到10%仅作为示例给出。
在另一示例中,在检测到仓姿态306之后,后处理模块208可以使用预期的仓尺寸(例如由用户提供的仓尺寸)来估计仓107的底端111。例如,仓306可以定义深度帧中的角。后处理模块208可将角变换为相对于相机帧的3D姿态。基于仓107的高度,后处理模块208可以计算由底端111定义的角的位置。在一些情况下,由底端111定义的角定义的面积小于由仓107的顶端109定义的角定义的面积。在一些示例中,后处理模块208可以将由底端111定义的角的位置变换为2D,从而可以将其输入到抓取计算模块以确定抓取点。在其他示例中,给定的抓取系统可以使用3D点,使得不执行到2D的转换。
如在此描述的,自主系统可以包括被配置为在主动工业运行时间中操作以便定义运行时间的机器人。该机器人包括末端执行器,该末端执行器被配置为在工作空间内抓取多个对象。该自主系统可以包括深度相机,该深度相机被配置为捕获该工作空间的深度图像。自主系统还包括处理器和存储指令的存储器,指令在由处理器执行时使自主系统执行各种操作。例如,系统可以检测工作空间内的仓,其中仓能够包含多个对象中的一个或多个。基于深度图像,系统可以确定仓的姿态。该姿态可以定义工作空间内仓的方位。
在一个示例中,仓沿着贯轴方向定义底端和与底端相对的顶端,其中底端与顶端相比沿着贯轴方向远离深度相机定位。顶端可以定义开口和围绕该开口的仓的侧面,使得深度相机进一步被配置为从沿着贯轴方向的视角捕获仓的深度图像。基于该深度图像,该系统可以生成该仓的分割掩模,该分割掩模定义了表示该仓在顶端处的侧面的像素。该系统可以沿着第一方向和基本上垂直于第一方向的第二方向扫描分割掩模,以便识别分割掩模的最外边缘上的多个点。此外,系统可以将多个模型拟合到由多个点定义的边界,以便确定仓的姿态。
因此,根据各种实施方式,可以确定或估计仓姿态,而无需将人工标记添加到仓或无需生成或获得仓的准确3D模型。此外,在此描述的实施方式定义了在计算上廉价并且在许多情况下与嵌入式硬件系统兼容的机制。此外,这里描述的诸如拟合操作500的拟合操作可以定义对离群值、噪声数据和丢失数据(例如,深度图302中的孔洞或遮挡)稳健的模型拟合,使得实施方式与低成本传感器兼容并且可以在各种(例如,挑战性的)场景中操作。
图6示出了其中可以实现本公开的实施方式的计算环境的示例。计算环境600包括计算机系统610,其可包括诸如系统总线621的通信机制或用于在计算机系统610内传送信息的其它通信机制。计算机系统610还包括与系统总线621耦合的用于处理信息的一个或多个处理器620。自主系统102以及因此计算系统200可以包括或耦合到一个或多个处理器620。
处理器620可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)或本领域已知的任何其他处理器。更一般地,这里描述的处理器是用于执行存储在计算机可读介质上的机器可读指令的装置,用于执行任务,并且可以包括硬件和固件中的任何一个或其组合。处理器还可以包括存储可执行用于执行任务的机器可读指令的存储器。处理器通过操纵、分析、修改、转换或传输由可执行程序或信息装置使用的信息和/或通过将信息路由到输出装置来对信息起作用。处理器可以使用或包括例如计算机、控制器或微处理器的能力,并且使用可执行指令来调节以执行不由通用计算机执行的专用功能。处理器可以包括任何类型的适当处理单元,包括但不限于中央处理单元、微处理器、精简指令集计算机(RISC)微处理器、复杂指令集计算机(CISC)微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、数字信号处理器(DSP)等。此外,处理器620可以具有任何合适的微体系结构设计,其包括任何数量的构成部件,例如寄存器、多路复用器、算术逻辑单元、用于控制对高速缓冲存储器的读/写操作的高速缓存控制器、分支预测器等。处理器的微体系结构设计能够支持多种指令集中的任何指令集。处理器可以与能够在其间进行交互和/或通信的任何其它处理器耦合(电耦合和/或包括可执行部件)。用户接口处理器或发生器是已知的元件,包括用于生成显示图像或其部分的电子电路或软件或两者的组合。用户界面包括使用户能够与处理器或其它装置交互的一个或多个显示图像。
系统总线621可以包括系统总线、存储器总线、地址总线或消息总线中的至少一个,并且可以允许在计算机系统610的各个部件之间交换信息(例如,数据(包括计算机可执行代码)、信令等)。系统总线621可以包括但不限于存储器总线或存储器控制器、外围总线、加速图形端口等。系统总线621可以与任何合适的总线体系结构相关联,包括但不限于工业标准体系结构(ISA)、微通道体系结构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)体系结构、加速图形端口(AGP)体系结构、外围部件互连(PCI)体系结构、PCI-Express体系结构、个人计算机存储卡国际协会(PCMCIA)体系结构、通用串行总线(USB)体系结构等。
继续参考图6,计算机系统610还可以包括耦合到系统总线621的系统存储器630,用于存储要由处理器620执行的信息和指令。系统存储器630可以包括易失性和/或非易失性存储器形式的计算机可读存储介质,诸如只读存储器(ROM)631和/或随机存取存储器(RAM)632。RAM 632可以包括其它动态存储装置(例如,动态RAM、静态RAM和同步DRAM)。ROM631可包括其它静态存储装置(例如,可编程ROM、可擦除PROM和电可擦除PROM)。另外,系统存储器630可用于在处理器620执行指令期间存储临时变量或其它中间信息。基本输入/输出系统633(BIOS)包含有助于诸如在启动期间在计算机系统610内的元件之间传递信息的基本例程,它可以存储在ROM 631中。RAM 632可以包含可由处理器620立即访问和/或当前正由处理器620操作的数据和/或程序模块。系统存储器630可另外包括例如操作系统634、应用程序635和其它程序模块636。应用程序635还可以包括用于开发应用程序的用户门户,允许输入参数进入并根据需要修改。
操作系统634可以被加载到存储器630中,并且可以提供在计算机系统610上执行的其他应用软件与计算机系统610的硬件资源之间的接口。更具体地,操作系统634可包括一组计算机可执行指令,用于管理计算机系统610的硬件资源并向其它应用程序提供公共服务(例如,管理各种应用程序之间的存储器分配)。在某些示例性实施方式中,操作系统634可以控制被描绘为存储在数据存储装置640中的一个或多个程序模块的执行。操作系统634可包括现在已知或将来可开发的任何操作系统,包括但不限于任何服务器操作系统,任何主机操作系统,或任何其它专有或非专有操作系统。
计算机系统610还可以包括耦合到系统总线621以控制用于存储信息和指令的一个或多个存储装置的磁盘/介质控制器643,诸如磁硬盘641和/或可移动介质驱动器642(例如,软盘驱动器、光盘驱动器、磁带驱动器、闪存驱动器和/或固态驱动器)。可以使用适当的装置接口(例如,小型计算机系统接口(SCSI)、集成装置电子设备(IDE)、通用串行总线(USB)或火线)将存储装置640添加到计算机系统610。存储装置641、642可以在计算机系统610的外部。
计算机系统610还可以包括耦合到系统总线621的现场装置接口665,以控制现场装置666,诸如在生产线中使用的装置。计算机系统610可以包括用户输入接口或GUI 661,其可以包括一个或多个输入装置,诸如键盘、触摸屏、输入板和/或定点装置,用于与计算机用户交互并向处理器620提供信息。
计算机系统610可以响应于处理器620执行包含在诸如系统存储器630的存储器中的一个或多个指令的一个或多个序列来执行本发明的实施方式的处理步骤的一部分或全部。这样的指令可以从存储装置640的另一计算机可读介质(诸如磁硬盘641或可移动介质驱动器642)读入系统存储器630。磁硬盘641(或固态驱动器)和/或可移动介质驱动器642可以包含本公开的实施方式所使用的一个或多个数据存储和数据文件。数据存储640可以包括但不限于数据库(例如,关系型、面向对象的等)、文件系统、平面文件、其中数据存储在计算机网络的多于一个节点上的分布式数据存储、对等网络数据存储等。数据存储可以存储各种类型的数据,例如技能数据、传感器数据或根据本公开的实施方式生成的任何其他数据。数据存储内容和数据文件可以被加密以提高安全性。处理器620还可以用在多处理布置中,以执行包含在系统存储器630中的一个或多个指令序列。在替代的实施方式中,硬连线电路可以代替软件指令或与软件指令结合使用。因此,实施方式不限于硬件电路和软件的任何特定组合。
如上所述,计算机系统610可以包括至少一个计算机可读介质或存储器,用于保存根据本发明的实施方式编程的指令,并且用于包含数据结构、表、记录或这里描述的其它数据。这里使用的术语“计算机可读介质”是指参与向处理器620提供指令以供执行的任何介质。计算机可读介质可以采用许多形式,包括但不限于非瞬态、非易失性介质、易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘,诸如磁硬盘641或可移动介质驱动器642。易失性介质的非限制性示例包括动态存储器,诸如系统存储器630。传输介质的非限制性示例包括同轴电缆、铜线和光纤,包括构成系统总线621的导线。传输介质也可以采用声波或光波的形式,例如在无线电波和红外数据通信期间生成的声波或光波。
用于执行本公开的操作的计算机可读介质指令可以是汇编指令、指令集体系结构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任何组合编写的源代码或目标代码,其包括诸如Smalltalk、C++等的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的常规过程编程语言。计算机可读程序指令可以完全在用户的计算机上,部分在用户的计算机上,作为独立的软件包,部分在用户的计算机上和部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施方式中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
本文参考根据本公开的实施方式的方法、设备(系统)和计算机程序产品的流程图和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每一个框以及流程图和/或框图中的框的组合可以由计算机可读介质指令来实现。
计算环境600还可包括使用到诸如远程计算装置680的一个或多个远程计算机的逻辑连接在联网环境中操作的计算机系统610。网络接口670可以实现例如经由网络671与其它远程装置680或系统和/或存储装置641、642的通信。远程计算装置680可以是个人计算机(膝上型或桌上型)、移动装置、服务器、网关、路由器、网络PC、对等装置或其它公共网络节点,并且通常包括以上相对于计算机系统610描述的许多或所有元件。当在联网环境中使用时,计算机系统610可以包括调制解调器672,用于在诸如因特网的网络671上建立通信。调制解调器672可经由用户网络接口670或经由另一适当机构连接到系统总线621。
网络671可以是本领域中通常已知的任何网络或系统,包括因特网、内联网、局域网(LAN)、广域网(WAN)、城域网(MAN)、直接连接或一系列连接、蜂窝电话网络,或能够促进计算机系统610与其它计算机(例如,远程计算装置680)之间的通信的任何其它网络或介质。网络671可以是有线的、无线的或其组合。有线连接可以使用以太网、通用串行总线(USB)、RJ-6或本领域公知的任何其它有线连接来实现。无线连接可以使用Wi-Fi、WiMAX和蓝牙、红外、蜂窝网络、卫星或本领域公知的任何其它无线连接方法来实现。另外,若干网络可单独工作或彼此通信以促进网络671中的通信。
应当理解,在图6中描述为存储在系统存储器630中的程序模块、应用程序、计算机可执行指令、代码等仅仅是说明性的而不是穷举性的,并且描述为由任何特定模块支持的处理可以可替换地分布在多个模块上或者由不同的模块执行。此外,可以提供各种程序模块、脚本、插件、应用程序编程接口(API),或在计算机系统610、远程装置680上本地托管的和/或在可经由一个或多个网络671访问的其它计算装置上托管的任何其它合适的计算机可执行代码,以支持由图6中描绘的程序模块、应用程序或计算机可执行代码提供的功能和/或附加或替换功能。此外,功能可以被不同地模块化,使得描述为由图6中描绘的程序模块集合共同支持的处理可以由更少或更多数量的模块来执行,或者描述为由任何特定模块支持的功能可以至少部分地由另一模块来支持。此外,支持这里描述的功能的程序模块可形成可根据诸如客户机-服务器模型、对等模型等任何合适的计算模型在任何数量的系统或装置上执行的一个或多个应用程序的一部分。此外,被描述为由图3中描绘的任何程序模块支持的任何功能可以至少部分地以硬件和/或固件在任何数量的装置上实现。
还应当理解,在不脱离本公开的范围的情况下,计算机系统610可以包括所描述或描绘之外的替代和/或附加硬件、软件或固件部件。更具体地,应当理解,被描绘为形成计算机系统610的一部分的软件、固件或硬件部件仅仅是说明性的,并且在各种实施方式中可以不存在某些部件或者可以提供附加部件。虽然已将各种说明性程序模块描绘和描述为存储在系统存储器630中的软件模块,但应了解,描述为由程序模块支持的功能可由硬件、软件和/或固件的任何组合来启用。应进一步了解,在各种实施方式中,上述模块中的每一个可表示所支持功能的逻辑分区。该逻辑分区是为了便于解释功能而描绘的,并且可以不代表用于实现该功能的软件、硬件和/或固件的结构。因此,应了解,在各种实施方式中,描述为由特定模块提供的功能性可至少部分地由一个或多个其它模块提供。此外,在某些实施方式中可不存在一个或多个所描绘的模块,而在其它实施方式中,可存在未描绘的额外模块且可支持所描述的功能和/或额外功能的至少一部分。此外,虽然某些模块可被描绘和描述为另一模块的子模块,但在某些实施方式中,此类模块可被提供为独立模块或其他模块的子模块。
虽然已经描述了本公开的特定实施方式,但是本领域的普通技术人员将认识到,在本公开的范围内存在许多其它修改和替换实施方式。例如,关于特定装置或部件描述的任何功能和/或处理能力可以由任何其他装置或部件来执行。此外,虽然已经根据本公开的实施方式描述了各种说明性实现和架构,但是本领域普通技术人员将理解,对本文描述的说明性实现和架构的许多其他修改也在本公开的范围内。另外,应了解,本文中描述为基于另一操作、元件、部件、数据等的任何操作、元件、部件、数据等可另外基于一个或多个其它操作、元件、部件、数据等。因此,短语“基于”或其变体应被解释为“至少部分地基于”。
虽然已经用结构特征和/或方法动作专用的语言描述了实施方式,但是应当理解,本公开不必限于所描述的具体特征或动作。相反,这些具体特征和动作是作为实现这些实施方式的说明性形式而公开的。条件语言,例如“可以”、“能够”、“可”或“可能”等,除非另外具体说明或在所使用的上下文中另外理解,通常旨在传达某些实施方式可包括、而其他实施方式不包括某些特征、元件和/或步骤。因此,这种条件语言通常不是要暗示特征、元件和/或步骤以任何方式对于一个或多个实施方式是必需的,或者一个或多个实施方式必须包括用于在有或没有用户输入或提示的情况下决定这些特征、元件和/或步骤是否被包括在任何特定实施方式中或者是否将在任何特定实施方式中执行的逻辑。
图中的流程图和框图示出了根据本公开的各种实施方式的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每一个框可以表示指令的模块、段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些可替换的实现中,框中指出的功能可以不按附图中指出的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以相反的顺序执行。还将注意到,框图和/或流程图示中的每一个框以及框图和/或流程图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
Claims (10)
1.一种自主系统,被配置为在主动工业环境中操作以便定义运行时间,所述自主系统包括:
机器人,定义末端执行器,所述末端执行器被配置为在工作空间内抓取多个对象,
深度相机,被配置为捕获所述工作空间的深度图像;
一个或多个处理器;以及
存储器,存储指令,所述指令在由所述一个或多个处理器执行时,使得所述自主系统在所述运行时间期间:
检测所述工作空间内的仓,所述仓能够包含所述多个对象中的一个或多个;并且
基于所述深度图像,确定所述仓的姿态,所述姿态定义所述仓在所述工作空间内的方位。
2.根据权利要求1所述的自主系统,其中,所述仓沿着贯轴方向定义底端和与所述底端相对的顶端,所述底端与所述顶端相比沿着所述贯轴方向远离所述深度相机定位,所述顶端定义开口和所述仓的围绕所述开口的侧面,使得所述深度相机进一步被配置为从沿着所述贯轴方向的视角捕获所述仓的深度图像。
3.根据权利要求2所述的自主系统,所述存储器进一步存储指令,所述指令在由所述一个或多个处理器执行时,使得所述自主系统在所述运行时间期间:
基于所述深度图像,生成所述仓的分割掩模,所述分割掩模定义表示所述仓在所述顶端处的侧面的像素。
4.根据权利要求3所述的自主系统,所述存储器进一步存储指令,所述指令在由所述一个或多个处理器执行时,使得所述自主系统在所述运行时间期间:
沿着第一方向和基本上垂直于所述第一方向的第二方向扫描所述分割掩模以便识别所述分割掩模的最外边缘上的多个点。
5.根据权利要求4所述的自主系统,所述存储器进一步存储指令,所述指令在由所述一个或多个处理器执行时,使得所述自主系统在所述运行时间期间:
将多个模型拟合到由所述多个点定义的边界,以便确定所述仓的姿态。
6.一种由自主系统执行的方法,所述自主系统包括在主动工业环境中操作以便定义运行时间的机器人,所述方法包括:
捕获所述机器人的工作空间的深度图像;
基于所述深度图像,检测所述工作空间内的仓,所述仓能够包含多个对象中的一个或多个;以及
基于所述深度图像,确定所述仓的姿态,所述姿态定义所述仓在所述工作空间内的方位。
7.根据权利要求6所述的方法,其中,所述仓沿着贯轴方向定义底端和与所述底端相对的顶端,所述底端与所述顶端相比沿着所述贯轴方向远离深度相机定位,所述顶端定义开口和所述仓的围绕所述开口的侧面,使得所述深度相机进一步被配置为从沿着所述贯轴方向的视角捕获所述仓的深度图像。
8.根据权利要求7所述的方法,所述方法还包括:
基于所述深度图像,生成所述仓的分割掩模,所述分割掩模定义表示所述仓在所述顶端处的侧面的像素。
9.根据权利要求8所述的方法,所述方法还包括:
沿着第一方向和基本上垂直于所述第一方向的第二方向扫描所述分割掩模以便识别所述分割掩模的最外边缘上的多个点。
10.根据权利要求9所述的方法,所述方法还包括:
将多个模型拟合到由所述多个点定义的边界,以便确定所述仓的姿态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22192858.3 | 2022-08-30 | ||
EP22192858.3A EP4332900A1 (en) | 2022-08-30 | 2022-08-30 | Automatic bin detection for robotic applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117621095A true CN117621095A (zh) | 2024-03-01 |
Family
ID=83151899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311104361.6A Pending CN117621095A (zh) | 2022-08-30 | 2023-08-29 | 用于机器人应用的自动仓检测 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240066723A1 (zh) |
EP (1) | EP4332900A1 (zh) |
CN (1) | CN117621095A (zh) |
-
2022
- 2022-08-30 EP EP22192858.3A patent/EP4332900A1/en active Pending
-
2023
- 2023-08-07 US US18/366,079 patent/US20240066723A1/en active Pending
- 2023-08-29 CN CN202311104361.6A patent/CN117621095A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240066723A1 (en) | 2024-02-29 |
EP4332900A1 (en) | 2024-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6692107B1 (ja) | 物体識別のための方法および計算システム | |
US11717971B2 (en) | Method and computing system for performing motion planning based on image information generated by a camera | |
US10124489B2 (en) | Locating, separating, and picking boxes with a sensor-guided robot | |
US20230158679A1 (en) | Task-oriented 3d reconstruction for autonomous robotic operations | |
US11900652B2 (en) | Method and computing system for generating a safety volume list for object detection | |
JP2020197978A (ja) | 物体検出装置、物体把持システム、物体検出方法及び物体検出プログラム | |
US20240208069A1 (en) | Automatic pick and place system | |
US20230305574A1 (en) | Detecting empty workspaces for robotic material handling | |
JP2021111354A (ja) | 画像分類に基づく物体認識または物体登録のための方法および計算システム | |
EP4332900A1 (en) | Automatic bin detection for robotic applications | |
US20240253234A1 (en) | Adaptive region of interest (roi) for vision guided robotic bin picking | |
EP4401049A1 (en) | Runtime assessment of suction grasp feasibility | |
EP4410497A1 (en) | Robotic packing of unknown objects | |
WO2024019701A1 (en) | Bin wall collision detection for robotic bin picking | |
EP4249177A1 (en) | Grasp boundary detection based on color | |
US20240198515A1 (en) | Transformation for covariate shift of grasp neural networks | |
US20240198526A1 (en) | Auto-generation of path constraints for grasp stability | |
US20230228688A1 (en) | Planar object segmentation | |
Károly et al. | Robotic Manipulation of Pathological Slides Powered by Deep Learning and Classical Image Processing | |
WO2024177627A1 (en) | Scale aware neural network for robotic grasping | |
García et al. | Project no.: 610917 Project full title: Sustainable and reliable robotics for part handling in manufacturing Project Acronym: STAMINA Deliverable no.: D2. 3 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |