CN114494426A - 用于控制机器人来在不同的方位拿起对象的装置和方法 - Google Patents

用于控制机器人来在不同的方位拿起对象的装置和方法 Download PDF

Info

Publication number
CN114494426A
CN114494426A CN202111339958.XA CN202111339958A CN114494426A CN 114494426 A CN114494426 A CN 114494426A CN 202111339958 A CN202111339958 A CN 202111339958A CN 114494426 A CN114494426 A CN 114494426A
Authority
CN
China
Prior art keywords
image
descriptor
reference points
pick
reference point
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
CN202111339958.XA
Other languages
English (en)
Inventor
A·G·库普奇克
M·托德斯卡托
M·斯皮斯
N·瓦涅克
P·C·席林格
M·布尔格尔
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN114494426A publication Critical patent/CN114494426A/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/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip 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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert 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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2137Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
    • G06F18/21375Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps involving differential geometry, e.g. embedding of pattern manifold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/772Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40584Camera, non-contact sensor mounted on wrist, indep from gripper
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Medical Informatics (AREA)
  • Geometry (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Image Analysis (AREA)
  • Manipulator (AREA)

Abstract

按照各种实施方式,描述了一种用于控制机器人来在不同的方位拿起对象的方法,该方法具有:在该对象上规定多个参考点;将该对象在已知方位的第一摄像机图像映射到第一描述符图像上;标识这些参考点的来自第一描述符图像中的描述符;将该对象在未知方位的第二摄像机图像映射到第二描述符图像上;在第二描述符图像中搜索这些参考点的所标识出的描述符;根据所找到的位置,确定在该未知方位这些参考点在三维空间中的位置;而且根据这些参考点的所确定的位置,针对该未知方位确定该对象的拿起姿态。

Description

用于控制机器人来在不同的方位拿起对象的装置和方法
技术领域
本公开涉及用于控制机器人来在不同的方位拿起对象的装置和方法。
背景技术
为了能够实现机器人对对象的灵活的生产或加工,值得期望的是:机器人能够无视对象在机器人的工作空间中所放置的姿势地对该对象进行操作。因而,机器人应该有能力识别对象处在怎样的方位,至少就对于拿起(例如抓取)对象重要的方面来说,也就是说该机器人应该有能力确定对象的拿起姿态(例如抓取姿态),以便可以相对应地使该机器人的末端执行器(例如带有抓手)准确地取向并且可以将该末端执行器移动到准确的位置。针对机器人装置的用于在不同的方位拿起对象的相对应的控制方法是值得期望的。
发明内容
按照各种实施方式,提供了一种用于控制机器人来在不同的方位拿起对象的方法,该方法具有:在对象上规定多个参考点,使得这些参考点在三维空间中的方位限定了对象的拿起姿态;接收在对象的已知方位该对象的第一摄像机图像,使得这些参考点在第一摄像机图像中的位置已知;借助于机器学习模型将第一摄像机图像映射到第一描述符图像上,该机器学习模型被训练来将在摄像机图像中可见的对象点与这些对象点在这些摄像机图像中的位置无关地分配给描述符;通过在这些参考点的已知位置处读取第一描述符图像,标识这些参考点的来自第一描述符图像中的描述符;接收对象在应拿起对象的未知方位的第二摄像机图像;借助于该机器学习模型将第二摄像机图像映射到第二描述符图像上;在第二描述符图像中搜索这些参考点的所标识出的描述符;根据这些参考点的描述符在该描述符图像中的所找到的位置,确定在该未知方位这些参考点在三维空间中的位置;根据所确定的这些参考点在三维空间中的位置,针对该未知方位确定对象的拿起姿态;而且根据所确定的拿起姿态,控制机器人装置来拿起对象。
上述方法能够实现针对对象的任意方位可靠地拿起(例如抓取)该对象。对象在未知方位的摄像机图像足以确定该对象的拿起姿态。尤其是,不需要具有覆盖多个角度的多个摄像机的布置。该机器学习模型可以被灵活训练,使得该机器学习模型能用于各种对象。接着,只需要针对每个对象规定参考点并且确定这些参考点的描述符。
在下文说明了各种示例。
示例1是如上所述的用于控制机器人来在不同的方位拿起对象的方法。
示例2是示例1的方法,其中根据这些参考点的描述符在第二描述符图像中的所找到的位置来确定在该未知方位这些参考点在三维空间中的位置,其方式是将这些参考点在第二摄像机图像中的与这些参考点在第二描述符图像中的位置相对应的位置的深度信息投影到三维空间中。
借此,能够借助于单个摄像机图像和所属的深度信息(例如RGBD图像)来确定拿起姿态。
示例3是示例1或2的方法,其中这些参考点具有至少两个参考点,所述至少两个参考点被规定为使得所述至少两个参考点沿着对象的细长部分布置,而且其中通过确定延伸经过这些参考点的轴线来确定对象的针对该未知方位的拿起姿态。
以这种方式,可以确定能够控制机器人绕着该细长部分抓取的拿起姿态。例如,控制在机器人的末端执行器处的抓手,使得抓钳位于垂直于延伸经过这些参考点的轴线的平面内,并且接着将抓手闭合。
示例4是示例1至3中任一项的方法,其中这些参考点具有至少三个参考点,所述至少三个参考点被规定为使得所述至少三个参考点布置在对象的平坦表面上,而且其中通过确定延伸经过这些参考点的平面来确定对象的针对该未知方位的拿起姿态。
以这种方式,可以确定能够控制机器人抓住该表面(例如吸住或提升该表面)的拿起姿态。例如,控制在机器人的末端执行器处的抽吸装置,使得该抽吸装置的吸口或吸嘴垂直于延伸经过这些参考点的平面,并且接着激活该抽吸装置。
示例5是示例1至4中任一项的方法,其中对该机器学习模型的训练具有:获得对象的3D模型,其中该3D模型包括顶点网格;为网格的每个顶点确定描述符;生成训练数据图像对,其中每个训练数据图像对都包括显示该对象的训练输入图像以及目标对象,而且其中对目标图像的生成包括:确定对象的对象模型的顶点的这些顶点在训练输入图像中所具有的顶点位置,并且针对在训练输入图像中的每个所确定的顶点位置,将针对在该顶点位置处的顶点所确定的描述符分派给在目标图像中的位置;而且在使用训练数据图像对作为训练数据的情况下通过监督学习来训练该机器学习模型。
该训练方法能够实现对机器学习模型(比如神经网络)的训练,以便执行与使用自监督学习相比更精确的预测(也就是说描述符确定)(也就是说能够实现更广泛的网络应用)。此外,该训练方法提供了用于使该机器学习模型适配的更大的灵活性,使得该训练方法可以应用于各种问题而且降低了训练数据要求(例如所需的训练数据的数量)。
示例6是示例5的方法,其中对训练数据图像对的生成包括:获得对象的具有不同姿势的多个图像;而且通过针对所获得的图像生成目标图像来生成每个所获得的图像的训练数据图像对。
这能够训练该机器学习模型(例如具有实现该机器学习模型的机器人控制器的机器人),以便无视对象例如在机器人的工作空间中的姿势地识别该对象的拓扑。
示例7是示例5或6的方法,该方法包括:根据对象在训练输入图像中(例如在摄像机坐标系中)所具有的相应的姿势,确定对象的对象模型的顶点的这些顶点在训练输入图像中所具有的顶点位置。
这能够精确确定顶点位置,作为回报,这能够实现用于监督训练的精确的目标图像。
示例8是示例5至7中任一项的方法,其中3D模型的顶点通过边来连接,其中每条边都具有权重,该权重指定了在对象中的两个通过这条边连接的顶点的接近度,而且其中通过搜索使关于所连接的顶点对的、在描述符对的描述符之间的距离的总和最小化的顶点的描述符,以在顶点对之间的边的权重来加权地,确定网格的每个顶点的描述符。
清楚的是,这些描述符以最优方式被确定。借此,实现了这些描述符的高度一致性。还使描述符映射容易解释。
示例9是一种机器人控制装置,该机器人控制装置被设立为执行根据示例1至8中任一项所述的方法。
示例10是一种计算机程序,该计算机程序具有指令,这些指令在由处理器执行时引起:该处理器执行根据示例1至8中任一项所述的方法。
示例11是一种计算机可读介质,该计算机可读介质存储指令,这些指令在由处理器执行时引起:该处理器执行根据示例1至8中任一项所述的方法。
附图说明
在附图中,通常在不同视图各处类似的附图标记都涉及相同的部分。这些附图不一定比例正确,反而重点通常在于阐明本发明的原理。在下文的描述中,参考如下附图来描述不同方面,其中:
图1示出了机器人;
图2阐明了按照实施方式的神经网络的训练;
图3示出了用于描述符确定的4节点图的示例性的嵌入;
图4阐明了在用于按照拉普拉斯-贝尔特拉米算子(Laplace-Beltrami-Operator)的边缘权重确定的3D模型的顶点处的角度的限定;
图5示出了按照实施方式的用于训练机器学习模型来从对象的图像中识别对象的对象拓扑的方法;
图6示出了用于控制机器人在不同方位拿起对象的方法。
具体实施方式
下文的详细描述涉及随附的附图,这些附图阐明性地示出了其中可实现本发明的本公开的特殊细节和方面。在不脱离本发明的保护范围的情况下,可以使用其它方面并且可以进行结构更改、逻辑更改和电更改。本公开的不同方面不一定是相互排斥的,因为本公开的有些方面可以与本公开的一个或多个其它方面相结合,以便形成新的方面。
在下文更详细地描述了各种示例。
图1示出了机器人100。
机器人100包含机器人臂101,例如用于操作或安装工件(或者一个或多个其它对象)的工业机器人臂。机器人臂101包含操纵器102、103、104和基座(或支座)105,借助于该基座来支撑这些操纵器102、103、104。术语“操纵器”涉及机器人臂101的可移动部分,对这些可移动部分的操纵能够实现与环境的物理交互,例如以便执行任务。为了进行控制,机器人100包含(机器人)控制装置106,该(机器人)控制装置被设计用于按照控制程序来实现与环境的交互。操纵器102、103、104的最后一个构件104(该构件离支座105最远)也被称为末端执行器104,并且可包含一个或多个工具,诸如焊炬、抓具、喷漆工具等等。
其它操纵器102、103(所述其它操纵器更靠近支座105)可形成定位装置,使得在其端部具有末端执行器104的机器人臂101与末端执行器104一起被提供。机器人臂101是机械臂,该机械臂可以提供与人类手臂类似的功能(可能利用在其端部处的工具)。
机器人臂101可包含链节元件107、108、109,这些链节元件使操纵器102、103、104彼此连接并且与支座105连接。链节元件107、108、109可具有一个或多个链节,所述一个或多个链节可以分别提供相关的操纵器相对于彼此的可旋转运动(也就是说转动运动)和/或平移运动(也就是说位移)。操纵器102、103、104的运动可以借助于执行器来被发起,这些执行器由控制装置106来控制。
术语“执行器”可以被理解成构造为作为对其驱动的反应而影响机构或过程的组件。该执行器可以将由控制装置106创建的指令(所谓的激活)实现成机械运动。执行器、例如机电转换器可以被设计为:作为对其驱动的反应,将电能转换成机械能。
术语“控制器”可以被理解成任意类型的逻辑实现实体,该逻辑实现实体例如可包含电路和/或处理器,该电路/该处理器能够执行存储在存储介质中的软件、固件或它们的组合,并且该电路/该处理器可以例如向在当前示例中的执行器发出指令。该控制器例如可以通过程序代码(例如软件)来被配置,以便控制系统、即在当前示例中的机器人的运行。
在当前示例中,控制装置106包含存储器111和一个或多个处理器110,该存储器存储代码和数据,处理器110基于这些代码和数据来控制机器人臂101。按照各种实施方式,控制装置106基于存储在存储器111中的机器学习模型112来控制机器人臂101。
按照各种实施方式,机器学习模型112被设计和训练为能够使机器人100识别对象113的拿起姿态,该对象例如被放置到机器人臂101的工作空间中。这意味着:机器人100识别它可以如何拿起对象113,也就是说它必须如何对它的末端执行器104进行定向并且它必须将该末端执行器移动到哪里,以便拿起(例如抓取)对象113。拿起姿态被理解为使得该拿起姿态包含对于拿起来说足够的信息,也就是说关于对象的方向和位置113的信息,该信息足以据此来确定对象113可以如何被抓取。拿起姿态不一定需要包含关于对象113的完整的方向信息,原因在于在对象113具有用于抓取的旋转对称部分的情况下,该旋转对称部分如何绕着它的旋转轴线旋转例如可能无关紧要。
机器人100例如可以配备有一个或多个摄像机114,所述一个或多个摄像机能够使该机器人拍摄该机器人的工作空间的图像。摄像机114例如固定在机器人臂101上,使得机器人可以从不同角度出发拍摄对象113的图像,其方式是该机器人使机器人臂101围绕着移动。
按照各种实施方式,控制装置106实现用于对象识别的机器学习模型112,该控制装置使用该机器学习模型的输出,以便确定对象113的拿起姿态。
这种用于对象识别的机器学习模型112的示例是密集对象网络。密集对象网络将图像(例如通过摄像机114所提供的RGB图像)映射到任意维度(维度D)的描述符空间图像上。
该密集对象网络是神经网络,该神经网络在使用自监督学习的情况下被训练来为图像的输入图像输出描述符空间图像。然而,这种方法的有效性在很大程度上取决于所收集的训练数据和参与的传感器(例如摄像机114)的质量。此外,对网络预测的解释可能困难。
按照各种实施方式,使用用于识别对象及其姿势的方法,其中假设已知对象的3D模型(例如CAD(计算机辅助设计(Computer Aided Design))模型),这通常对于工业装配或加工任务来说情况如此。按照各种实施方式,使用非线性降维技术,以便计算用于训练针对神经网络的输入图像的最优目标图像。替代因此使用神经网络的自监督训练,按照各种实施方式,使用神经网络的监督训练。也可以拍摄对象的RGBD图像(RGB + 深度信息)并且据此确定对象的3D模型。
按照一个实施方式,为了生成用于训练机器学习模型112的训练数据,首先执行数据收集。尤其是,例如收集配准的RGB(红-绿-蓝)图像。这里,配准图像是指具有已知的内在和外在的摄像机值的RGB图像。在真实世界的场景中,例如使用固定在机器人上的摄像机114(例如固定在机器人手关节处的摄像机),以便在机器人(例如机器人臂101)围绕着移动期间对对象进行扫描。可以使用其它外在估计技术,例如ChArUco标定(ChArUco-Marker),也就是说对象可以被放置到相对于ChArUco板子(ChArUco-Board)的不同位置和姿势,而且拍摄(ChArUco板子和对象的)布置的图像。在模拟场景中,在使用已知的对象姿势的情况下使用照片般逼真地生成的RGB图像。
在收集RGB图像的情况下,为了神经网络的监督训练,渲染RGB图像的目标图像。
假设在每个被收集到的RGB图像中都已知每个对象在世界坐标中的姿势。这对于模拟场景来说并不复杂,但是需要针对真实世界的场景的手动调整,例如将对象放置在预先限定的位置。也可以使用RGBD图像,以便确定对象的位置。
利用这些信息并且在使用顶点描述符计算技术的情况下,诸如下文所描述的那样,针对每个RGB图像(也就是说训练输入图像),渲染描述符图像(也就是说训练输出图像,也称为目标图像或地面实况图像(Ground-Truth-Bild))。
如果针对每个RGB图像都生成了目标图像,也就是说形成了RGB图像和目标图像的对,则训练输入图像和相关的目标图像的这些对可以被用作用于训练神经网络的训练数据,如图2中所示。
图2阐明了按照实施方式的神经网络200的训练。
神经网络200是全卷积网络(英文fully convolutional network),该全卷积网络将
Figure DEST_PATH_IMAGE001
张量(输入图像)映射到
Figure 147122DEST_PATH_IMAGE002
张量(输出图像)上。
该全卷积网络包括多个层级204的卷积层,然后是池化层、上采样层205和跳跃连接206,以便组合不同层的输出。
为了训练,神经网络200接收训练输入图像201并且输出具有在描述符空间中的像素值(例如按照描述符向量分量的颜色分量)的输出图像202。在输出图像202和与训练输入图像相关的目标图像203之间计算训练损失。这可以针对一批训练输入图像进行,而且训练损失可以关于这些训练输入图像被平均,而且在使用该训练损失的情况下在使用随机梯度下降的情况下来训练神经网络200的权重。在输出图像202与目标图像203之间所计算出的训练损失例如是L2损失函数(以便使目标图像203与输出图像202之间的逐像素的最小二乘误差最小化)。
训练输入图像201示出了对象和目标图像以及包含描述符空间中的向量的输出图像。描述符空间中的向量可以被映射到颜色上,使得输出图像202(以及目标图像203)类似于对象的热图。
描述符空间中的向量(也称为(密集)描述符)是d维向量(d例如为1、2或3),这些向量被分派给相应图像中的每个像素(例如输入图像201的每个像素,在假设输入图像201和输出图像202具有相同维度的情况下)。密集描述符隐性地对在输入图像201中示出的对象的表面拓扑进行编码,相对于该对象的姿势或者摄像机位置而言不变。
如果给出对象的3D模型,则能够解析地确定对于该对象的3D模型的每个顶点来说最优(就黎曼而言)且唯一的描述符向量。按照各种实施方式,在使用这些最优描述符(或者这些描述符的通过优化所确定的估计)的情况下生成针对配准的RGB图像的目标图像,这引起神经网络200的全监督训练。附加地,描述符空间在无视所选择的描述符维度d的情况下变得可解释且最优。
在下文,3D模型被视为嵌入在
Figure DEST_PATH_IMAGE003
中的黎曼流形
Figure 64262DEST_PATH_IMAGE004
,在引起测地线(顶点之间的最短路径)计算,同时注意几何。最优的表面拓扑可以被显性编码,其方式是将3D模型嵌入到d维欧几里得描述符空间中,使得尽可能好地保持相邻顶点之间的测地线距离。该欧几里得空间被视为描述符空间,而且执行对最优映射
Figure DEST_PATH_IMAGE005
的搜索。按照一个实施方式,使用用于网格的拉普拉斯算子计算及其特征值分解来确定(或至少估计)在描述符空间中的顶点的最优嵌入。替代因此将测地线计算与映射优化分开,通过计算3D模型的拉普拉斯算子来提取在唯一框架中的描述符。
按照在下文所描述的方法,确定欧几里得空间中的3D对象模型到描述符空间中的嵌入,以便保持顶点之间的距离(例如测地线距离)。
为了通过拉普拉斯算子进行降维,点组
Figure 312841DEST_PATH_IMAGE006
应该对应于到无向图中的节点。
Figure DEST_PATH_IMAGE007
应该计算两个节点
Figure 301525DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE009
之间的连接强度或接近度,例如
Figure 115898DEST_PATH_IMAGE010
目标在于:找到d维嵌入
Figure DEST_PATH_IMAGE011
(通常d < D),使得如果
Figure 407202DEST_PATH_IMAGE008
Figure 674235DEST_PATH_IMAGE009
接近,则它们的嵌入也应该会接近:
Figure 466610DEST_PATH_IMAGE012
(1)
其中
Figure DEST_PATH_IMAGE013
优化问题(1)等价于
Figure 135489DEST_PATH_IMAGE014
(2)
其中
Figure DEST_PATH_IMAGE015
是半正定拉普拉斯矩阵。A是具有元素
Figure 597695DEST_PATH_IMAGE016
Figure DEST_PATH_IMAGE017
的邻接矩阵。应该注意:最优解
Figure 352024DEST_PATH_IMAGE018
可具有任意的标度和趋势。为了消除这种随机性,可以用
Figure DEST_PATH_IMAGE019
将加权二阶矩归一化,这会迫使不同维度的单位方差。接着,所得到的优化问题变成
Figure 181046DEST_PATH_IMAGE020
(3)
在使用具有拉格朗日参数
Figure DEST_PATH_IMAGE021
的有限优化的情况下
Figure 173273DEST_PATH_IMAGE022
(4)
这是广义特征值问题,该广义特征值问题可以通过标准的线性代数库来被求解。由于LD是(半)正定矩阵,所以特征值可以被写成
Figure DEST_PATH_IMAGE023
此外,第一特征向量(
Figure 603117DEST_PATH_IMAGE024
的第一列)等于1(向量全为一),这是将每个顶点映射到一个点上的平凡解。附加地,任意两个特征向量都彼此正交。关于特征值问题的解得到N个特征值和维数为N的相对应的特征向量。然而,在实践中,只使用与最低特征值相对应的前d个特征向量(除了该平凡解之外)。
因此,Y的第i列是节点i在R d 中的嵌入,而每一行都代表每个点在不同的正交维度的嵌入。
图3示出了4节点图的示例性的嵌入。
特征值关于嵌入的最优性方面具有重要意义。在最优嵌入
Figure DEST_PATH_IMAGE025
的情况下,约束
Figure 438218DEST_PATH_IMAGE026
被满足,并且因此适用:
Figure DEST_PATH_IMAGE027
(5)
也就是说,这些特征值对应于在不同维度的嵌入误差。为了简单起见,应该d = 1,在这种情况下,每个x都被映射到点y = 1上。在这种情况下,(5)被简化成:
Figure 713342DEST_PATH_IMAGE028
(6)
由于
Figure DEST_PATH_IMAGE029
,也就是说如果对象的所有顶点都被映射到一个点上,则嵌入误差为0,原因在于所有点y之间的距离为0。这对于实际目的来说没有用,并且因此忽略了第一特征值和特征向量。使用d = 2对应于将每个点x映射到一条线上,而且λ1是相对应的嵌入误差,以此类推。由于特征向量彼此正交,所以d的提高将为嵌入添加新的维度,其目的在于将新的正交维度中的误差最小化。在(3)中可以看到相同效果:由于
Figure 825654DEST_PATH_IMAGE030
,所以原来的目标设置可以被转换,以便将每个维度的嵌入误差都最小化。因此,不管所选择的d如何,所得到的描述符向量都是最优的。
在有些情况下,后续的特征值是相同的,也就是说
Figure DEST_PATH_IMAGE031
(参见图3的示例,其中对于d=2和d=3来说的特征值是相同的特征值)。这带有一些关于对称性的信息,其中存在具有相同的嵌入误差的多个正交维度。实际上,在图3的4节点图示例中,如果该图是全连接的,则到每个维度中的嵌入都是对称的而且所有特征值都相同,除了该平凡解之外。
上文的图嵌入方法可以直接应用于网格、点云等等。例如可以使用K最近邻(KNN)算法,以便形成顶点之间的局部连接并且创建邻接矩阵。该方法足以创建图-拉普拉斯算子并且计算每个顶点的嵌入。尽管如此,该方法本质上基于欧几里得距离度量和启发法,所述欧几里得距离度量和启发法不一定注意3D对象模型的基本黎曼几何。例如,有些边可以贯穿对象,或者可以连接网格的不相邻的顶点。即使在邻接矩阵中只有少数几个不正确的条目也可能导致嵌入性能不佳。按照一个实施方式,如果用模型来工作,则因而确保了两个任意顶点之间的测地线距离准确或者具有最小的逼近误差。
通常,对象模型,比如网格,或者点云,可以被表示成嵌入在
Figure 754296DEST_PATH_IMAGE032
中的黎曼流形。具有均匀变化的度量g的黎曼流形M可以被视为“局部欧几里得”,这记录了真实世界的对象的局部平滑特性。拉普拉斯算子对黎曼流形的推广是拉普拉斯-贝尔特拉米(LB)算子Δ。与欧几里得空间中的拉普拉斯算子类似,在函数上应用的LB算子是该函数的梯度的散度。用于图以及在欧几里得空间中的拉普拉斯算子容易计算(根据邻接信息或者有限微分),而在微分几何中的LB算子基于外微分(Exterior Calculus),而且通常不容易用于流形。
然而,对于已知的离散流形、比如网格来说,可以逼近该LB算子。这在以网格、点云等等来工作时提供了高效且简单的计算框架。由于拉普拉斯算子的黎曼等效物是拉普拉斯-贝尔特拉米,所以上述嵌入方法可以直接应用于Δ。Δ的特征向量Y将表示网格的顶点的最优的d维欧几里得嵌入。
对于网格,Δ可以高效地被计算如下。假设给出具有N个顶点V、面积F和边E的网格。在这种情况下,Δ的大小为N
Figure DEST_PATH_IMAGE033
N。Δ的第i行描述了第i个顶点的关于其所连接的顶点的邻接信息。φ应该是在网格上的任意函数。接着,在该函数的情况下,离散LB算子的应用被映射到Δφ上。该函数的第i个元素可以通过如下方式来被描述:
Figure 483218DEST_PATH_IMAGE034
(7)
图4阐明了对角度
Figure DEST_PATH_IMAGE035
Figure 30874DEST_PATH_IMAGE036
的限定。
余切表达式
Figure DEST_PATH_IMAGE037
的总和充当连接权重w ij 。按照一个实施方式,这些在(7)中出现的权重、也就是说在应用于网格时LB算子的权重,被用作用于确定等式(2)的DA的权重。
应该注意:由于
Figure 528851DEST_PATH_IMAGE038
,所以可能出现负的连接权重w ij ,特别是在有角度明显大于其它角度(不好的表面)的情况下可能出现负的连接权重。为了克服该问题,可以通过边缘翻转(Edge Flipping)来逼近连接权重。
上述描述符生成方法唯一地处理每个顶点。也就是说,每个顶点都被分派给唯一的描述符。然而,对象可以是对称的,并且因此将唯一的描述符分派给看似相同的顶点将导致不对称的嵌入。
为了解决该问题,按照各种实施方式,探测形状的内在对称性并且压缩对称嵌入,使得对称顶点被映射到同一描述符上。如果拉普拉斯-贝尔特拉米算子的本征函数在欧几里得空间中对称地出现,则可以表明形状具有内在对称性。换言之,如果网格、点云等等的对称特征的保持测地线的欧几里得嵌入(描述符空间)表现出欧几里得对称性,则探测这些对称特征。如果存在保持紧凑流形的每个顶点之间的测地线距离的同胚T,则该流形具有内在对称性。
对于对称描述符的压缩来说,可以使用所谓的全局内在对称不变函数(GISIF)。在假设全局内在对称同胚
Figure DEST_PATH_IMAGE039
,其中g表示测地线距离,和在流形上的函数f的情况下,如果针对在该流形上的每个点p都适用:
Figure 893973DEST_PATH_IMAGE040
(8)
f是GISIF。例如,在环面上,该同胚应该是绕着z轴的任意旋转。这意味着:如果f是GISIF,则该f相对于该旋转而言必须保持不变。
还可以表明:在相同特征值
Figure DEST_PATH_IMAGE041
的情况下,这样的GISIF是点的特征向量分量的平方和,也就是说
Figure 313453DEST_PATH_IMAGE042
这与上文对相同特征值的分析一致,这是对称嵌入的必要条件。因为在实践中由于数值限制而很少存在相同特征值,所以在特征值被视为相同的地方,如果这些特征值处在同一ε范围内(具有小的ε),也就是说如果这些特征值的区别小于预先限定的阈,例如0.1%或0.01 %,则可以使用启发法。由于只须为给定的对象一次性地找到对称维度,所以这可以被手动执行。
例如,用于环面的特征值分解的前7个特征值应该如下:
Figure DEST_PATH_IMAGE043
Figure 290899DEST_PATH_IMAGE044
中的GISIF嵌入——在不考虑平凡解的情况下——接着通过
Figure DEST_PATH_IMAGE045
给出。
在多个对象的情况下,这可以被表示成多个分开的连接图。在这种情况下,邻接矩阵是块对角线。对称正定拉普拉斯算子将再次具有正交特征向量。特征值分解的结果与单图嵌入的情况相比存在两个区别:第一,非递减的特征值将是所有对象的无序的嵌入误差。第二,这些特征向量将具有零条目,原因在于相对应的特征值保持正交。 这意味着:描述符空间的每个维度都将只对应于一个对象嵌入。此外,这些维度关于相对应的对象的嵌入误差来被排序。因此,如果应该生成两个对象的3维嵌入,则使用d=8,原因在于存在与λ=0相对应的两个平凡解。
这种简单方法对多个对象进行独立处理,而可能有次优方法,这些次优方法仍然提供具有更低的d的相当好的嵌入,这些嵌入利用了对象之间的相关。
在考虑对象的姿势的情况下,可以通过将描述符投影到图像平面上来生成目标图像。可以使用描述符空间图像随机噪声或者被映射到描述符空间中的离得最远的点上的单个描述符,作为非对象(背景)。
为了改善被训练的网络200的鲁棒性,可以应用图像增强方法、比如域随机化或者干扰、如高斯软聚焦、剪裁(Cropping)或辍学(Dropout)。
如果现在机器学习模型112、例如神经网络200被训练用于将对象113的摄像机图像映射到描述符图像上,则为了确定对象113在未知方位的拿起姿态而可以采取如下做法。
首先,在对象上选择对象113上的多个参考点p i i=1, …,N,并且确定这些参考点的描述符。这可以通过如下方式来实现:拍摄对象113的摄像机图像,选择在对象上的参考像素(u i , v i )(以及借此相对应地对象的参考点),并且由神经网络200将摄像机图像映射到描述符图像上。接着,在描述符图像中的通过参考像素的位置给出的位置处的描述符可以作为参考点的描述符,也就是说这些参考点的描述符是d i = I d (u i , v i ),其中I d = f(I; θ)是描述符图像,其中f是由神经网络实现的(从摄像机图像到描述符图像的)映射,I是摄像机图像而θ是机器学习模型200的权重。
如果现在对象113处于未知方位,则再次拍摄摄像机图像I neu ,并且借助于机器学习模型来确定所属的描述符图像I d neu = f(I neu ; θ)。在该新的描述符图像中,现在搜索与参考图像的d i 描述符尽可能接近的描述符,例如通过
针对所有i = 1, …, N,(u i , v i )* = argmin ui , vi || I d neu (u i ,v i ) – d i ||2 2
根据这些参考点在描述符图像I d neu 中(并且借此相对应地在新的摄像机图像I neu 中)的这样确定或估计的位置(u i , v i )*,确定这些参考点在三维空间中的位置。例如,与摄像机图像I neu 一起拍摄深度图像(或者摄像机图像I neu 具有深度通道,例如该摄像机图像是RGBD图像),使得可以根据(u i , v i )*来确定第i个参考点p i 的三维位置(通过将在位置(u i , v i )*处的深度值投影到相应的工作区坐标系中)。
如果已知多个参考点在空间中的位置,则据此可以确定拿起姿态,如图5中所示。
例如,确定在对象500上的两个参考点p 1 和p2在空间中的位置,并且将两者线性组合,例如取它们的平均值,以便规定工作点504。为了限定抓取方向,规定具有方向p 1 p 2 的第一轴线501,任意地规定经过工作点504的第二轴线502,例如在摄像机114的z-轴方向上或者在工作区坐标系的轴线的方向上。经过锚点504的第三轴线503可以通过第一轴线501的方向向量与第二轴线502的方向向量的向量积来被计算。这三条轴线501至503以及锚点504限定了对象500的拿起姿态。接着,可以控制机器人,使得该机器人握住对象500的在第一轴线的方向上延伸的柄。参考点p 1 和p2例如被规定为使得这些参考点如所示出的那样沿着该柄、即沿着对象的适合于抓取的细长部分延伸。
类似地,可以将三个或更多个参考点布置在对象的抓取面上,使得根据这些参考点的位置可以确定对象的全6D拿起姿态或者也可以确定对象在其上被抓取的抓取面的方向。
在此,应该注意:抓手不一定必须具有钳形,而且例如也可具有抽吸装置,以便在适合的表面上吸住对象并且借此将对象拿起。为了使该抽吸装置到达正确的姿势,在这种情况下例如可能希望确定拿起姿态,该拿起姿态说明了对象的适合于吸住的表面的方向和位置。这例如可以通过确定锚点和在锚点中的平面法向向量来实现。
也可以使用超过三个参考点,以便确定拿起姿态,例如以便通过求平均来降低误差。
概括来说,按照各种实施方式,提供了一种如图6中所阐明的方法。
图6示出了用于控制机器人在不同方位拿起对象的方法。
在601中,在对象上规定多个参考点,使得这些参考点在三维空间中的方位限定了对象的拿起姿态。
在602中,接收在对象的已知方位该对象的第一摄像机图像,使得这些参考点在第一摄像机图像中的位置已知。
在603中,借助于机器学习模型将第一摄像机图像映射到第一描述符图像上,该机器学习模型被训练来将在摄像机图像中可见的对象点与这些对像点在摄像机图像中的位置无关地分配给描述符。
在604中,通过在这些参考点的已知位置处读取第一描述符图像,标识这些参考点的来自第一描述符图像中的描述符。
在605中,接收对象在应拿起该对象的未知方位的第二摄像机图像。
在606中,借助于机器学习模型将第二摄像机图像映射到第二描述符图像上。
在607中,在第二描述符图像中搜索这些参考点的所标识出的描述符。
在608中,根据这些参考点的描述符在描述符图像中的所找到的位置,确定在该未知方位这些参考点在三维空间中的位置。
在609中,根据所确定的这些参考点在三维空间中的位置,针对该未知方位确定该对象的拿起姿态。
在610中,根据所确定的拿起姿态,控制机器人装置来拿起对象。
按照各种实施方式,换言之,多个参考点的位置依据所述多个参考点的描述符在示出了在未知方位的对象的摄像机图像中被标识,而且根据所述多个参考点在摄像机图像中的位置来确定所述多个参考点在三维空间中的位置。接着,根据所述多个参考点在三维空间中的位置,确定拿起姿态(例如用于抓取对象的一个或多个轴线的方向)。
“拿起”例如应被理解成用抓手进行抓取。但是,也可以使用其它类型的紧固机构,例如用于将对象吸住的抽吸器。此外,“拿起”不一定要被理解为使得仅仅使对象移动,例如也可以拿起在较大结构上的组件并且使该组件弯曲,而不使其与该较大结构分开。
机器学习模型例如是神经网络。但是也可以使用相对应地被训练的其它机器学习模型。
按照各种实施方式,机器学习模型将对象的(在相应的摄像机图像的图像平面内的)像素分派给描述符。这可以被视为对对象的表面拓扑的间接编码。描述符与表面拓扑之间的这种连接可以通过渲染显性地进行,以便将描述符映射到图像平面上。应该注意:对象模型的表面(也就是说顶点以外的点)上的描述符值可以借助于内插来被确定。如果例如表面通过对象模型的具有相应的描述符值y1、y2、y3的3个顶点来给出,则在该表面的任意的点处可以将描述符值y计算为这些值的加权和
Figure 643383DEST_PATH_IMAGE046
。换言之,在这些顶点上内插描述符值。
为了生成针对机器学习模型的训练数据的图像对,例如将对象的包括具有已知的3D(例如CAD)模型和已知姿势(在全局(也就是说世界)坐标系中)的对象(或多个对象)在内的图像(例如RGB图像)映射到(密集)描述符图像上,该描述符图像是最优的,因为该描述符图像是通过搜索用于使在对象模型与其在描述符空间中的表示(嵌入)之间的几何特性(尤其是对象的点的接近度)的偏差最小化的描述符来被生成的。在实际使用中,由于该搜索受限于一定的搜索空间,通常不会找到用于最小化的理论最优解。然而,在实际应用的约束(可用计算精度、最大迭代次数等等)之内确定最小值的估计。
因此,通过执行对关于所连接的顶点对的、在顶点对的描述符之间的距离的总和的最小化过程,以在所述顶点对之间的边的权重来加权地,搜索顶点的描述符,其中用于这些顶点中的相应顶点的每个描述符都被搜索。
每个训练数据图像对都包括对象的训练输入图像以及目标图像,其中通过将这些顶点的在训练输入图像中可见的描述符投影到按照该对象在训练输入图像中所具有的姿势的训练输入图像平面上来生成该目标图像。
图像与它们相关的目标图像一起被用于对机器学习模型的监督训练。
因此,该机器学习模型被训练用于识别一个对象(或者多个对象)的明确特征。借助于机器学习模型的评估,这些信息可以实时地被用于机器人控制方面的各种应用,例如预测用于装配的对象抓取姿势。应该注意:监督训练方法能够实现对对称信息的显性编码。
图6的方法可以通过包含一个或多个数据处理单元的一个或多个计算机来被执行。术语“数据处理单元”可以被理解成能够处理数据或信号的任何类型的实体。例如,这些数据或信号可以按照至少一个(也就是说一个或超过一个)特定功能来被处理,该功能由数据处理单元来执行。数据处理单元可以包含模拟电路、数字电路、混合信号电路、逻辑电路、微处理器、微控制器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、可编程门阵列(FPGA)或者它们的任意组合或者由这些来形成。用于实现下文更详细地描述的相应功能的任何其它方式也可以被理解成数据处理单元或者逻辑电路装置。易于理解的是,本文中详细描述的方法步骤中的一个或多个可以由数据处理单元通过由该数据处理单元执行的一个或多个特定功能来实施(例如实现)。
各种实施方式可以接收和使用各种传感器的传感器信号,诸如(例如RGB)摄像机、视频、雷达、激光雷达(LiDAR)、超声、热成像技术等等,以便例如获得显示对象的传感器数据。实施方式可以被用于生成训练数据并且训练机器学习系统,例如用于自主控制机器人、例如机器人操纵器,以便在不同场景下实现不同的操纵任务。尤其是,实施方式能应用于控制和监视操纵任务、例如在装配线中的操纵任务的实施。
尽管本文中阐明和描述了特定实施方式,但是本领域普通技术人员应该认识到:所示出和描述的特定实施方式可以被替换成多种替代和/或等效的实现方案,而不脱离本发明的保护范围。本申请应该涵盖对本文中所讨论的特定实施方式的任何适配或变型。因而,旨在仅通过权利要求书及其等效物来限制本发明。

Claims (11)

1.一种用于控制机器人来在不同的方位拿起对象的方法,所述方法具有:
在所述对象上规定多个参考点,使得所述参考点在三维空间中的方位限定了所述对象的拿起姿态;
接收在所述对象的已知方位所述对象的第一摄像机图像,使得所述参考点在所述第一摄像机图像中的位置已知;
借助于机器学习模型将所述第一摄像机图像映射到第一描述符图像上,所述机器学习模型被训练来将在摄像机图像中可见的对象点与所述对像点在所述摄像机图像中的位置无关地分配给描述符;
通过在所述参考点的已知位置处读取所述第一描述符图像,标识所述参考点的来自所述第一描述符图像中的描述符;
接收所述对象在应拿起所述对象的未知方位的第二摄像机图像;
借助于所述机器学习模型将所述第二摄像机图像映射到第二描述符图像上;
在所述第二描述符图像中搜索所述参考点的所标识出的描述符;
根据所述参考点的描述符在所述描述符图像中的所找到的位置,确定在所述未知方位所述参考点在三维空间中的位置;
根据所确定的所述参考点在三维空间中的位置,针对所述未知方位确定所述对象的拿起姿态;而且
根据所确定的拿起姿态,控制机器人装置来拿起所述对象。
2.根据权利要求1所述的方法,其中根据所述参考点的描述符在所述第二描述符图像中的所找到的位置来确定在所述未知方位所述参考点在三维空间中的位置,其方式是将所述参考点在所述第二摄像机图像中的与所述参考点在所述第二描述符图像中的位置相对应的位置的深度信息投影到所述三维空间中。
3.根据权利要求1或2所述的方法,其中所述参考点具有至少两个参考点,所述至少两个参考点被规定为使得所述至少两个参考点沿着所述对象的细长部分布置,而且其中通过确定延伸经过所述参考点的轴线来确定所述对象的针对所述未知方位的拿起姿态。
4.根据权利要求1至3中任一项所述的方法,其中所述参考点具有至少三个参考点,所述至少三个参考点被规定为使得所述至少三个参考点布置在所述对象的平坦表面上,而且其中通过确定延伸经过所述参考点的平面来确定所述对象的针对所述未知方位的拿起姿态。
5.根据权利要求1至4中任一项所述的方法,其中对所述机器学习模型的训练具有:
获得所述对象的3D模型,其中所述3D模型包括顶点网格;
为所述网格的每个顶点确定描述符;
生成训练数据图像对,其中每个训练数据图像对都包括显示所述对象的训练输入图像以及目标对象,而且其中对所述目标图像的生成包括:
确定所述对象的对象模型的顶点的所述顶点在所述训练输入图像中所具有的顶点位置,并且
针对在所述训练输入图像中的每个所确定的顶点位置,将针对在所述顶点位置处的顶点所确定的描述符分派给在所述目标图像中的位置;而且
在使用所述训练数据图像对作为训练数据的情况下通过监督学习来训练所述机器学习模型。
6.根据权利要求5所述的方法,其中对所述训练数据图像对的生成包括:获得所述对象的在不同姿势的多个图像;而且通过针对所获得的图像生成目标图像来生成来自每个所获得的图像的训练数据图像对。
7.根据权利要求5或6所述的方法,所述方法包括:根据所述对象在所述训练输入图像中所具有的相应的姿势,确定所述对象的对象模型的顶点的所述顶点在所述训练输入图像中所具有的顶点位置。
8.根据权利要求5至7中任一项所述的方法,其中所述3D模型的顶点通过边来连接,其中每条边都具有权重,所述权重指定了在所述对象中的两个通过这条边连接的顶点的接近度,而且其中通过搜索使关于所连接的顶点对的、在顶点对的描述符之间的距离的总和最小化的顶点的描述符,以在所述顶点对之间的边的权重来加权地,确定所述网格的每个顶点的描述符。
9.一种机器人控制装置,所述机器人控制装置被设立为执行根据权利要求1至8中任一项所述的方法。
10.一种计算机程序,所述计算机程序包括指令,所述指令在由处理器执行时引起:所述处理器执行根据权利要求1至8中任一项所述的方法。
11.一种计算机可读介质,所述计算机可读介质存储指令,所述指令在由处理器执行时引起:所述处理器执行根据权利要求1至8中任一项所述的方法。
CN202111339958.XA 2020-11-13 2021-11-12 用于控制机器人来在不同的方位拿起对象的装置和方法 Pending CN114494426A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020214301.3 2020-11-13
DE102020214301.3A DE102020214301A1 (de) 2020-11-13 2020-11-13 Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen

Publications (1)

Publication Number Publication Date
CN114494426A true CN114494426A (zh) 2022-05-13

Family

ID=81345850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111339958.XA Pending CN114494426A (zh) 2020-11-13 2021-11-12 用于控制机器人来在不同的方位拿起对象的装置和方法

Country Status (4)

Country Link
US (1) US11964400B2 (zh)
JP (1) JP2022078979A (zh)
CN (1) CN114494426A (zh)
DE (1) DE102020214301A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022206274A1 (de) 2022-06-22 2023-12-28 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2385483B1 (en) * 2010-05-07 2012-11-21 MVTec Software GmbH Recognition and pose determination of 3D objects in 3D scenes using geometric point pair descriptors and the generalized Hough Transform
DK2447884T3 (en) * 2010-10-28 2015-03-30 Cyclomedia Technology B V A method for the detection and recognition of an object in an image and an apparatus and a computer program therefor
KR101791590B1 (ko) * 2010-11-05 2017-10-30 삼성전자주식회사 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법
US9280827B2 (en) * 2013-07-03 2016-03-08 Mitsubishi Electric Research Laboratories, Inc. Method for determining object poses using weighted features
US9259844B2 (en) * 2014-02-12 2016-02-16 General Electric Company Vision-guided electromagnetic robotic system
US20150294496A1 (en) 2014-04-14 2015-10-15 GM Global Technology Operations LLC Probabilistic person-tracking using multi-view fusion
US9868212B1 (en) * 2016-02-18 2018-01-16 X Development Llc Methods and apparatus for determining the pose of an object based on point cloud data
DE112017002156B4 (de) 2016-04-25 2020-11-26 Lg Electronics Inc. Beweglicher roboter, system für mehrere bewegliche roboter, und kartenlernverfahren für bewegliche roboter
US9972067B2 (en) * 2016-10-11 2018-05-15 The Boeing Company System and method for upsampling of sparse point cloud for 3D registration
DE202017001227U1 (de) 2017-03-07 2018-06-08 Kuka Deutschland Gmbh Objekterkennungssystem mit einem 2D-Farbbildsensor und einem 3D-Bildsensor
US10761541B2 (en) * 2017-04-21 2020-09-01 X Development Llc Localization with negative mapping
DE102017108727B4 (de) 2017-04-24 2021-08-12 Roboception Gmbh Verfahren zur Erstellung einer Datenbank mit Greiferposen, Verfahren zum Steuern eines Roboters, computerlesbares Speichermedium und Handhabungssystem
US11694072B2 (en) 2017-05-19 2023-07-04 Nvidia Corporation Machine learning technique for automatic modeling of multiple-valued outputs
KR102314539B1 (ko) 2017-06-09 2021-10-18 엘지전자 주식회사 인공지능 이동 로봇의 제어 방법
WO2019028075A1 (en) * 2017-08-01 2019-02-07 Enova Technology, Inc. INTELLIGENT ROBOTS
US10766149B2 (en) 2018-03-23 2020-09-08 Amazon Technologies, Inc. Optimization-based spring lattice deformation model for soft materials
US20200311855A1 (en) * 2018-05-17 2020-10-01 Nvidia Corporation Object-to-robot pose estimation from a single rgb image
DE102019122790B4 (de) 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
EP3702108A1 (de) 2019-02-27 2020-09-02 GILDEMEISTER Drehmaschinen GmbH Verfahren zum ermitteln einer greifposition zum ergreifen eines werkstücks
DE102019206444A1 (de) 2019-05-06 2020-11-12 Kuka Deutschland Gmbh Maschinelles Lernen einer Objekterkennung mithilfe einer robotergeführten Kamera
JP7337617B2 (ja) * 2019-09-17 2023-09-04 株式会社東芝 推定装置、推定方法及びプログラム
US20210122045A1 (en) * 2019-10-24 2021-04-29 Nvidia Corporation In-hand object pose tracking
US11430151B2 (en) * 2019-11-06 2022-08-30 Seiko Epson Corporation Online learning for 3D pose estimation using simplified constellations
DE102020114362A1 (de) * 2020-05-28 2021-12-02 Illinois Tool Works Inc. System zum beladen einer spülmaschine, greifersystem für eine beladeanordnung zum beladen einer spülmaschine sowie spülmaschine
US11436755B2 (en) * 2020-08-09 2022-09-06 Google Llc Real-time pose estimation for unseen objects

Also Published As

Publication number Publication date
DE102020214301A1 (de) 2022-05-19
US11964400B2 (en) 2024-04-23
JP2022078979A (ja) 2022-05-25
US20220152834A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
JP5835926B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP6546618B2 (ja) 学習装置、学習方法、学習モデル、検出装置及び把持システム
Sayour et al. Autonomous robotic manipulation: Real-time, deep-learning approach for grasping of unknown objects
CN110480637B (zh) 一种基于Kinect传感器的机械臂零件图像识别抓取方法
US20170277167A1 (en) Robot system, robot control device, and robot
CN110785268A (zh) 用于语义机器人抓取的机器学习方法和装置
JP2019014030A (ja) ロボットの制御装置、ロボット、ロボットシステム、並びに、カメラの校正方法
CN111360821A (zh) 一种采摘控制方法、装置、设备及计算机刻度存储介质
CN114494312A (zh) 训练从对象图像中识别对象的对象拓扑的机器学习模型的设备和方法
CN113715016A (zh) 一种基于3d视觉的机器人抓取方法、系统、装置及介质
US20230115521A1 (en) Device and method for training a machine learning model for recognizing an object topology of an object from an image of the object
CN114494426A (zh) 用于控制机器人来在不同的方位拿起对象的装置和方法
JP7051751B2 (ja) 学習装置、学習方法、学習モデル、検出装置及び把持システム
Ranjan et al. Identification and control of NAO humanoid robot to grasp an object using monocular vision
JP2022142773A (ja) オブジェクトのカメラ画像からオブジェクトの場所を位置特定するための装置及び方法
Wang et al. Q-pointnet: Intelligent stacked-objects grasping using a rgbd sensor and a dexterous hand
JP7349423B2 (ja) 学習装置、学習方法、学習モデル、検出装置及び把持システム
CN114972498A (zh) 用于确定对象的姿势的装置和方法
CN116635194A (zh) 干扰确定装置、机器人控制系统以及干扰确定方法
JP7249221B2 (ja) センサ位置姿勢キャリブレーション装置及びセンサ位置姿勢キャリブレーション方法
Ren et al. Vision based object grasping of robotic manipulator
JP7205752B2 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
CN115082554A (zh) 用于控制机器人来拿起对象的装置和方法
CN115205371A (zh) 用于根据对象的摄像机图像定位对象的部位的设备和方法
Chang et al. Simultaneous Localization and Calibration Employing Two Flying Cameras

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