CN115194754A - 用于训练神经网络以控制插入任务的机器人的设备和方法 - Google Patents

用于训练神经网络以控制插入任务的机器人的设备和方法 Download PDF

Info

Publication number
CN115194754A
CN115194754A CN202210384239.8A CN202210384239A CN115194754A CN 115194754 A CN115194754 A CN 115194754A CN 202210384239 A CN202210384239 A CN 202210384239A CN 115194754 A CN115194754 A CN 115194754A
Authority
CN
China
Prior art keywords
robot
neural network
camera
camera image
training
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
CN202210384239.8A
Other languages
English (en)
Inventor
O·斯佩克特
D·迪卡斯特罗
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 CN115194754A publication Critical patent/CN115194754A/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/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • 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/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/20Analysis of motion
    • 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
    • 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
    • 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/32Operator till task planning
    • G05B2219/32335Use of ann, neural network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39001Robot, manipulator control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39271Ann artificial neural network, ffw-nn, feedforward neural network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39391Visual servoing, track end effector with camera image feedback
    • 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/40032Peg and hole insertion, mating and joining, remote center compliance
    • 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/40532Ann for vision processing
    • 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
    • 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/40609Camera to monitor end effector as well as object to be handled
    • 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/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Fuzzy Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

提供了用于训练神经网络以控制插入任务的机器人的设备和方法。根据各种实施例,描述了一种用于训练神经网络以从安装在机器人上的相机的图像中导出移动向量从而使机器人将对象插入到插入部中的方法,其中所述方法包括:控制机器人以握住所述对象;将机器人带入其中所述对象被插入在所述插入部中的目标位置;针对不同于目标位置的多个位置,控制机器人以从目标位置移开至所述位置;通过相机来取得相机图像,并且通过从所述位置移回至目标位置的移动向量来对相机图像进行标注;以及使用经标注的相机图像来训练神经网络。

Description

用于训练神经网络以控制插入任务的机器人的设备和方法
技术领域
本公开涉及用于训练神经网络以控制插入任务的机器人的设备和方法。
背景技术
诸如电气布线组装之类的组装是工业中最常见的体力劳动作业之一。示例是配电板组装和房屋内开关装置(in-house switchgear)组装。复杂的组装过程可以通常被描述为两个主要活动的序列:抓取和插入。类似的任务发生在例如线缆制造中,该线缆制造通常包括用于验证和核实的线缆插入。
虽然对于抓取任务,合适的机器人控制方案在工业中通常是可用的,但是由机器人执行插入或“钉入孔中”任务通常仍然仅适用于小的问题子集,主要是涉及固定位置中的简单形状并且其中不考虑变化的问题。此外,现有的视觉技术是慢的,其通常大约是人类操作者的三分之一那么慢。
因此,用于训练执行插入任务的机器人的控制器的高效方法是合期望的。
发明内容
根据各种实施例,提供了一种用于训练神经网络以从安装在机器人上的相机的图像中导出移动向量从而使机器人将对象插入到插入部中的方法,其中所述方法包括:控制机器人以握住所述对象;将机器人带入其中所述对象被插入在所述插入部中的目标位置;针对不同于目标位置的多个位置,控制机器人以从目标位置移开至所述位置;通过相机来取得相机图像,并且通过从所述位置移回至目标位置的移动向量来对相机图像进行标注;以及使用经标注的相机图像来训练神经网络。
因为当从目标位置移回时,可以记录路径,所以上面描述的方法允许容易地生成用于训练数据图像的标注。此外,目标位置给出了可靠的参考。
移动向量例如可以是当前位置(在其处取得相机图像的位置)的姿态与目标位置的姿态之间的差异的向量(例如,在取向的角度和位置的笛卡尔坐标方面)。
上面描述的方法的各种实施例允许训练用于插入任务的机器人,针对所述训练,可以容易地收集训练数据,并且所述训练允许泛化至控制环境或控制场景中的变化,诸如要插入的对象的抓取误差(未对准抓取)、与所收集的训练数据中不同的位置或取向、不同的颜色、形状中的小差异。特别地,可以避免在收集数据时对机器人或其周围环境的危险,并且学习可以离线地执行。此外,上面描述的方法的途径可扩展到许多不同的插入问题(包括钉入孔中和穿线问题)。特别地,上述内容是通过将抓取误差的校正(或一般而言插入任务中的位置校正)公式化为用于神经网络的回归任务来实现的,这是因为神经网络可以捕获非常复杂的结构化环境,同时它保持易于收集数据。
下文中给出了各种示例。
示例1是如上所描述的一种用于训练神经网络的方法。
示例2是示例1的方法,进一步包括:针对相机图像中的至少一个,通过所述相机图像的颜色抖动、向灰度级的转换、裁剪、移位和滤波中的至少一个来生成附加相机图像,利用对所述相机图像进行标注所用的移动向量来对所述附加相机图像进行标注,以及使用经标注的附加相机图像来训练神经网络。
换句话说,可以执行训练数据图像的扩充。这改进了神经网络例如在不同形状或颜色的插头等上进行泛化的能力。
示例3是示例1或2的方法,其中所述位置是其中所述对象触及所述插入部位于其中的平面的位置,并且其中移动向量指定了平行于所述插入部位于其中的平面的移动。
以这种方式,在训练数据元素中创建了参考,这是因为所述插入部以及触及所述平面的所述对象的一部分(例如,插头的引脚的尖端)在相同水平上(例如,在末端执行器坐标系中的z坐标方面)。该参考避免了由神经网络执行的回归任务中的模糊性。
示例4是示例3的方法,进一步包括:针对所述多个位置中的每个位置,测量施加到所述对象上的力和力矩;形成训练数据元素,所述训练数据元素包括相机图像、所测量的力和力矩、以及从所述位置移回至目标位置的作为标注的移动向量,其中所述方法包括使用训练数据元素来训练神经网络。
在回归中考虑力测量提供了允许改进回归结果的附加信息。
示例5是示例4的方法,进一步包括:针对训练数据元素中的至少一个,通过由零与预定正极限之间的随机数对力和力矩对进行随机缩放来生成附加训练数据元素,并且使用所述附加训练数据元素来训练神经网络。
这防止了对机器人应用于所述对象的不同力的过拟合。
示例6是一种用于控制机器人以将对象插入到插入部中的方法,包括:控制机器人以握住所述对象;生成将所述对象插入到所述插入部中的目标位置的估计;控制机器人以移动到所估计的目标位置;在已经控制了机器人以移动到所估计的目标位置之后,使用相机来取得相机图像;将相机图像馈送到根据示例1至5中任一个所训练的神经网络;以及根据由神经网络从相机图像中导出的移动向量来控制机器人移动。
示例7是一种机器人,包括:安装在机器人上的相机,其被适配成提供相机图像;以及控制器,其被配置成实现神经网络并且被配置成实行示例1至6中任一个的方法。
示例8是一种包括指令的计算机程序,当由处理器执行时,所述指令使得处理器执行根据示例1至6中任一个的方法。
示例9是一种存储指令的计算机可读介质,当由处理器执行时,所述指令使得处理器执行根据示例1至6中任一个的方法。
附图说明
在附图中,遍及不同的视图,相似的参考符号通常指代相同的部分。附图不一定是按比例的,取而代之,重点通常被置于说明本发明的原理上。在以下描述中,参考以下附图描述了各个方面,在附图中:
图1示出了机器人。
图2示出了根据一实施例的神经网络。
图3示出了其中控制器利用安装到机器人的相机来取得图像以用于训练或操作的配置的示例。
图4图示了对象所经受的力和力矩。
图5图示了根据一实施例的用于将电气插头插入到插入部中的操作。
图6示出了根据一实施例的用于训练神经网络以从安装在机器人上的相机的图像中导出移动向量从而使机器人将对象插入到插入部中的方法的流程图。
具体实施方式
以下详细描述参考了附图,这些附图通过图示的方式示出了其中可以实践本发明的本公开的具体细节和方面。在不脱离本发明的范围的情况下,可以利用其他方面,并且可以进行结构、逻辑和电气改变。本公开的各个方面不一定是相互排斥的,这是因为本公开的一些方面可以与本公开的一个或多个其他方面组合以形成新的方面。
在下文中,将更详细地描述各种示例。
图1示出了机器人100。
机器人100包括机器人臂101,例如用于搬运或组装工件(或一个或多个其他对象)的工业机器人臂。机器人臂101包括操控器102、103、104以及通过其来支撑操控器102、103、104的基座(或支撑件)105。术语“操控器”指代机器人臂101的可移动构件,该可移动构件的致动使得能够与环境进行物理交互,例如以实行任务。为了进行控制,机器人100包括(机器人)控制器106,控制器106被配置成根据控制程序来实现与环境的交互。操控器102、103、104的最后一个构件104(离支撑件105最远)也被称为末端执行器104,并且可以包括一个或多个工具,诸如焊炬、夹取器械、喷涂装备等。
其他操控器102、103(更靠近支撑件105)可以形成定位设备,使得与末端执行器104一起,提供了在其末端处具有末端执行器104的机器人臂101。机器人臂101是可以提供与人类手臂(可能在其末端处具有工具)类似功能的机械臂。
机器人臂101可以包括关节元件107、108、109,关节元件107、108、109将操控器102、103、104彼此互连并且与支撑件105互连。关节元件107、108、109可以具有一个或多个关节,每个关节可以向相关联的操控器提供相对于彼此的可旋转运动(即,旋转运动)和/或平移运动(即,位移)。操控器102、103、104的移动可以借助于由控制器106控制的致动器来发起。
术语“致动器”可以被理解为被适配成响应于被驱动而影响机构或过程的组件。致动器可以将控制器106发出的指令(所谓的激活)实现成机械移动。致动器(例如,机电转换器)可以被配置成响应于驱动而将电能转换成机械能。
术语“控制器”可以被理解为任何类型的逻辑实现实体,该逻辑实现实体可以包括例如能够执行存储在存储介质中的软件、固件或其组合的电路和/或处理器,并且可以发出指令,例如在本示例中向致动器发出指令。控制器可以例如通过程序代码(例如,软件)来配置,以控制系统(在本示例中是机器人)的操作。
在本示例中,控制器106包括一个或多个处理器110以及存储代码和数据的存储器111,处理器110基于该代码和数据来控制机器人臂101。根据各种实施例,控制器106在存储于存储器111中的机器学习模型112的基础上来控制机器人臂101。
根据各种实施例,机器学习模型112被配置和训练成允许机器人100执行插入(例如,钉入孔中)任务,例如将插头113插入对应的插座114中。为此,控制器106借助于相机117、119来取得插头113和插座114的照片。插头113例如是USB(通用串行总线)插头,或者也可以是电源插头。应当注意的是,如果插头如电源插头一样具有多个插栓(peg),则每个插栓可以被认为是要插入的对象(其中插入部是对应的孔)。替代地,整个插头可以被视为要插入的对象(其中插入部是电源插座)。应当注意的是,(取决于什么被认为是对象),对象113不一定被完全插入在插入部中。如在USB插头的情况中那样,如果金属接触部分116被插入在插座114中,则认为USB插头被插入。
用以执行钉入孔中任务的机器人控制通常涉及两个主要阶段:搜索和插入。在搜索期间,插座114被标识和定位,以提供对于插入插头113所需的基本信息。
搜索插入部可以基于视觉或者基于涉及例如螺旋形路径(spiral path)的盲策略(blind strategy)。视觉技术很大程度上取决于相机117、119和板118(插座114被放置在其中)以及障碍物的位置,并且通常大约是人类操作者的三分之一那么慢。由于视觉方法的局限性,控制器106可以排他地考虑或者与视觉相结合地考虑力-扭矩和触觉反馈。
这特别地允许泛化,例如在圆柱形与长方体插栓之间进行泛化。
控制执行插入任务的机器人还可以涉及基于接触模型的控制或无接触模型学习。基于模型的策略根据所测量的力、扭矩和位置来估计组装件的状态,并且使用依赖于状态的预编程依从控制(compliant control)来相应地校正移动。无模型学习涉及从演示中学习(LfD)或从环境中学习(LfE)。LfD算法从专家操作者提供的示例或演示集合中导出策略。所得策略的灵活性受到演示数据集中提供的信息所限制。
强化学习(RL)方法(例如,通过与环境进行交互来将预训练的基本策略(使用Lfd或预设计的基本控制器)和所学习的残余策略进行组合)可以设法解决一些复杂的插入问题,并且甚至在某种程度上进行泛化。然而,作为在线学习方案,在线RL的灵活性和可扩展性仍然有限。也就是说,在这种情况下,使机器人利用最新学习到的策略与环境进行交互以获取更多关于环境的知识并改进该策略是不切实际的,这是因为数据收集是昂贵的(需要收集关于真实机器人的轨迹)并且是危险的(机器人安全性及其周围环境)。数据收集方面是非常重要的,这是因为机器学习中的泛化与经训练数据的质量和大小相关联。
鉴于以上内容,根据各种实施例,提供了一种回归方法,该回归方法适用于宽广范围的插入问题。实验表明:它允许在仅收集50-100个数据点(其可以在几分钟内被学习)的情况下、在宽广范围的插头和插栓上实现接近完美的结果。那些数据点可以在不需要预览所学习的策略的情况下被收集,并且可以在某个远程离线位置上被收集。此外,它可以被示出在位置上并且在紧密相关的场景上进行泛化,诸如在与所收集的数据中不同的大小、形状和颜色方面进行泛化。
组装任务通常涉及两个基本任务的序列:拾取和放置以及钉入孔中(插入)。在下文中,由于假设对应的控制是可用的或者对象(例如,插头113)的位置和抓取是由用户预先定义的,因此没有描述拾取和放置、并且特别是针对抓取对象的能力的训练和控制。下文中描述的方法可以处理抓取位置和角度(通常在多达10度的程度)中的不确定性(不期望的未对准抓取)。自动传送机是用以减少不期望的未对准抓取的一个实用方式。
为了便于泛化(并且为了能够应用回归方法),由控制器106执行以控制机器人臂101将对象113插入到插入部114中的控制过程被划分成两个阶段。第一阶段(定位阶段)是粗略的定位和规划部分。为此,控制器106使用另外的(例如,水平的)相机119来定位插入部114。该定位是粗略的定位,并且其误差取决于水平相机119的位置和类型。
第二阶段(校正阶段)是根据残余策略对该位置的校正。因为插入部114的位置和取向中的不确定性由于定位抓取和控制跟踪误差而不可避免的事实,对校正的需要出现。
根据各种实施例,以神经网络形式的机器学习模型112被训练以提供移动向量来校正该位置。这意味着,该神经网络被训练以执行回归。神经网络112对由安装到机器人的相机117取得的照片进行操作,相机117以某个角度(例如45度)定向到末端执行器104上,使得由它取得的图像示出由末端执行器104握住的对象113。例如,相机117是以45度(从机器人腕部,例如关于末端执行器z轴)定位的腕部相机,使得在末端执行器104的手指之间指出图像的中心。这允许避免隐藏。
由安装到机器人的相机117取得的图像是神经网络112的输入中的一个。
图2示出了根据一实施例的神经网络200。
神经网络200执行回归任务。它包括第一子网络201,第一子网络201接收视觉输入202,例如由安装到机器人的相机117提供的图像。第一子网络201是卷积网络(例如,根据YOLO Lite)。将其输出给予神经网络200的第二子网络204。第二子网络204接收力输入203,即力传感器120的测量,力传感器120测量对象113在被末端执行器握住并且被机器人压在平面(例如,板118的表面115)上时所经受的力矩和力。力测量可以由机器人或外力和扭矩传感器来取得。
视觉输入202和力输入203两者的使用使得该方法适用于许多不同种类的插入任务。
第二子网络204(例如,具有全连接层)使用视觉和力信息的共享表示(例如,通过第一子网络201的输出和力输入203的级联而生成)。其输出是移动向量(这里被称为ΔY),其表示机器人应当在末端执行器坐标系中应用的增量(delta)动作。移动向量可以例如包括末端执行器坐标系的x-y平面中的平移向量。应当注意的是,移动向量不仅可以包括平移分量,而且还可以包括指定了机器人臂101应当如何转动以校正对象113的取向从而将其插入到插入部114中的角度。
使用增量动作作为输出而不(向神经网络)声明末端执行器的位置导致了其中神经网络对于位置和旋转不可知的方案。例如,在水平面中将板118和末端执行器104转动九十度对神经网络200的输入数据和输出数据没有影响。这允许保持神经网络200简单。
如果需要末端执行器位置以用于指定校正阶段的校正动作,则训练神经网络200将不会泛化到其他板位置,同时使用末端执行器坐标系允许使该神经网络对于板旋转不可知。
为了收集用于神经网络200的训练数据(特别是为了找到正确的动作,即应当由神经网络200输出的移动向量),首先确定并保存插入位置和取向。在保存了插入位置之后,用于该回归模型的训练数据可以被收集为:
obs:{相机图像, 力}
末端执行器坐标系中的动作:{孔预览保存位置-当前位置}。
这意味着生成用于训练神经网络200的训练数据元素包括:
• 确定插入位置
• 收集相机图像、力测量和当前位置(针对训练位置)
• 形成训练数据元素,作为由{图像, 力}给出的输入(观测)以及由{插入位置-当前位置}给出的标注(末端执行器空间中的动作),即插入位置与当前位置之间的差异向量。
如上所提及,标注可以进一步包括一个或多个角度,用于校正取向,即插入取向与当前取向之间的差异。在这种情况下,还收集当前取向。
通过使用以这种方式生成的训练数据元素,神经网络200是使用监督训练来训练的。训练可以由控制器106执行,或者神经网络200可以在外部被训练并且加载到控制器106中。
在操作中,在校正阶段(即,第二阶段)中,控制器106使用安装到腕部的相机107来取得图像,将其馈送到经训练的神经网络200,并且根据经训练的神经网络200的输出来控制机器人,该输出是移动向量,该移动向量指定了从当前位置(其从第一阶段得到)移动到何处、以及可能地如何改变对象113的取向以便将对象113插入到插入部中。这意味着控制器106执行由神经网络200的输出指定的控制动作。如上所解释,由于定位抓取和控制跟踪误差,从第一阶段得到的位置通常需要被校正。
根据各种实施例,当插入部(即,特别是插入部的开口)以及将首先被插入到插入部中的对象的尖端处于同一平面上时,取得由相机107所取得的图像(用于训练以及操作两者)。
图3示出了其中控制器106利用安装到机器人的相机107来取得图像以用于训练或操作的配置的示例。
在该示例中,如图1的图示中那样,对象是USB插头301,并且插入部是USB插座302(以横截面示出)。如所示出,当插头301的尖端(其将首先进入插座302中)触及其中形成了该插入部的表面303(例如,板表面)时,控制器106借助于安装到机器人的相机107来取得照片。
在电源插头的示例中,表面303例如是针对插栓的孔位于其中的表面(即,用于容纳塑料外壳的开口的底部表面)。这假设第一阶段的准确度足够高,使得插栓触及该表面(即,位于该开口中)。
当插座尖端的引脚和插入部的开口处于不同的平面中时,使用腕部相机来评估距所需要的位置的增量距离是复杂的,这是因为由于相机图像锥(cameras image cone),在相机图像中示出的平行于表面303的插头301与插座302之间的距离对于垂直于表面303的插头301与插座302之间的不同距离而言、并且因此对于插头301与插座302之间的不同实际距离而言可能是相同的(就像关于在闭着一只眼睛的情况下两支彼此紧挨着的铅笔并且前后移动一支铅笔)。当腕部相机107以一角度放置时,相机图像中所示的距离与实际距离之间的关系变得甚至更加复杂,如根据各种实施例的为了避免遮挡的情况那样。只有在插头301触及表面303的情况下,才可以通过获得相机图像来解决该问题。控制器106可以借助于力传感器120来检测插头301触及表面303:如果力传感器检测到施加在插头113上的远离板118的表面303定向的力,则插头113触及板118的表面303。
在该特定情形下,(一个或多个)触点(例如,插头的一个或多个引脚)和一个或多个插座孔处于同一平面中,并且神经网络200(当该条件成立时使用相机图像来训练的神经网络200)可以从相机图像(当该条件成立时取得的相机图像)来计算插头301的当前位置到插座302之间的距离。
根据各种实施例,以反向学习的方式来收集训练数据图像(即,针对训练数据元素取得的相机图像)。这意味着机器人被控制来握住对象113(例如,夹具闭合)并且被带入到一位置,使得对象113被插入在插入部114中。从该位置,机器人被控制以向上行进(即,进入末端执行器坐标系中的z方向),增加类似于系统中的不确定性(抓取和定位误差)的随机误差(例如,10mm和20度,这对于大多数应用是足够的)。在向上行进之后,机器人被控制以向下行进,直到力传感器102感测到施加到对象113上的力或者检测到位置误差(异常)为止。然后,控制安装到机器人的相机117以获得图像,并且Obs:{相机图像, 力}和移动向量(末端执行器坐标系中的当前位置与插入位置之间的差异向量)被记录为如上所解释的训练数据元素。
根据各种实施例,针对训练数据执行数据扩充以增强泛化。
关于所收集的训练数据图像,合期望的是,校正阶段(特别是神经网络200)对于紧密相关的场景是不可知的,诸如在不同颜色和不同形状的插头和插座(例如具有不同壳体和颜色的电源插头)方面是不可知的。在形状上的泛化通常是困难的,因为当取得相机图像时,形式影响相机位置,例如由于电源插头插栓可能更长或更短。在训练数据图像上进行扩充的示例(即,可以如何从所记录的训练数据图像来生成一个或多个附加的训练数据图像)是:
• 训练数据图像随机颜色抖动50%(用于亮度和颜色上的泛化)
• 训练数据图像的随机灰度级50%(用于颜色上的泛化)
• 裁剪训练数据图像(用于由于不同形状或抓取误差所造成的相机位置移位上的泛化)
• 使训练数据图像移位(用于由于不同形状或抓取误差所造成的相机位置移位上的泛化)
• 随机卷积(用于增加总体鲁棒性)
以这种方式从所记录的训练数据图像生成的附加训练数据图像的标注(移动向量)被设置为与所记录的训练数据图像的标注相同。
根据各种实施例,还针对力测量进行训练数据扩充。这意味着:从训练数据元素,通过更改力信息(当利用训练数据元素训练神经网络200时用作力输入203)来生成一个或多个附加训练数据元素。力信息例如包括对象113在末端执行器z方向上所经受的力和对象113所经受的力矩。
图4图示了对象401所经受的力和力矩。
类似于图3,对象401将被插入在插入部402中并且触及表面403。握住对象401的机器人臂101在表面403的方向上将力404施加到对象401上。对象401经受对应的反作用力405。此外,由于对象401处于插入部402的边缘处,因此力404引起力矩406。反作用力405和力矩406例如由传感器120测量,并且用作力信息(即,在训练中和操作中用于神经网络200的力输入203)。
反作用力406和力矩406依赖于力404。该依赖性可能导致过拟合。可以看出的是,真正有价值的信息不是对(F, M)(即,反作用力405和力矩406的对)的量值,而是它们的比率,该比率指定了反作用力405的作用点与对象401的中心之间的距离R。
为了避免过拟合,针对训练数据元素中的对(F, M)的力矩扩充被执行如下:
(F, M)’ = α (F, M)
其中α是从区间[0, k]中随机采样的(例如,均匀采样),其中k是预定上限。
(F, M)’被用作用于附加训练数据元素的力信息。(F, M)’——即原始训练数据元素的力信息例如通过测量来确定。
图5图示了根据一实施例的用于电气插头的操作。
控制器106首先利用水平相机119来记录图片。然后,它执行(第一阶段)对孔的粗略定位(例如,使用闭环orb算法)并且规划对应的移动。
通过使用例如PD控制,控制器106执行该规划以尝试到达孔的位置(图片501、502、503)。
然后,由于如上面解释的各种误差,插栓处于插座的开口中,但还没有处于孔中(图503)。控制器通过力测量来检测这种情况,这是因为插头(以及因此末端执行器)经受着力。
控制器106测量力并且利用安装到机器人的相机117来取得照片,将它们馈送给经训练的神经网络112,并且如神经网络112输出的移动向量所指定的那样控制机器人。机器人始终在插入平面的方向上推动(在末端执行器坐标系中的z方向向下推动),使得当机器人根据移动向量已经完成移动时,该机器人最终将插头推动到插座中(图504)。
总而言之,根据各种实施例,提供了如图6中所图示的方法。
图6示出了根据一实施例的用于训练神经网络以从安装在机器人上的相机的图像中导出移动向量从而使机器人将对象插入到插入部中的方法的流程图600。
在601中,控制机器人以握住该对象。
在602中,将机器人带入其中该对象被插入在该插入部中的目标位置。
在603中,针对不同于目标位置的多个位置,在604中,控制机器人以从目标位置移开至该位置,在605中,通过相机来取得相机图像;以及在606中,通过从该位置移回至目标位置的移动向量来对相机图像进行标注。
在607中,使用经标注的相机图像来训练该神经网络。
根据各种实施例,换句话说,被插入在插入部中的对象被用作用于生成训练图像的起始点。由于当从目标位置移回时,可以记录路径,因此可以容易地生成用于训练数据图像的标注。目标位置给出可靠的参考。
图6的方法可以由包括一个或多个数据处理单元的一个或多个计算机来执行。术语“数据处理单元”可以被理解为允许处理数据或信号的任何类型的实体。例如,可以根据由数据处理单元执行的至少一个(即,一个或多于一个)特定功能来处理数据或信号。数据处理单元可以包括模拟电路、数字电路、复合信号电路、逻辑电路、微处理器、微控制器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、可编程门阵列(FPGA)集成电路或其任何组合,或者由其形成。实现相应功能的任何其他方式也可以被理解为数据处理单元或逻辑电路。将理解的是,本文中详细描述的一个或多个方法步骤可以由数据处理单元通过由数据处理单元执行的一个或多个特定功能来执行(例如,实现)。
各种实施例可以接收和使用来自诸如视频、雷达、激光雷达、超声、热成像等各种视觉传感器(相机)的图像数据。实施例可以用于训练机器学习系统并且自主地控制机器人(例如机器人操控器)以实现不同场景下的各种插入任务。应当注意的是,在针对插入任务的训练之后,可以针对新的插入任务来训练神经网络,与从头开始训练相比,这减少了训练时间(迁移学习能力)。实施例特别地适用于例如组装线中的操控任务的执行的控制和监测。
根据一个实施例,该方法是计算机实现的。
尽管本文中已经说明和描述了具体实施例,但是本领域普通技术人员将领会,在不脱离本发明的范围的情况下,各种替代和/或等同的实现方式可以代替所示出和描述的具体实施例。本申请意图覆盖本文中讨论的具体实施例的任何改编或变型。因此,所意图的是,本发明仅受权利要求及其等同物所限制。

Claims (9)

1.一种用于训练神经网络以从安装在机器人上的相机的图像中导出移动向量从而使机器人将对象插入到插入部中的方法,所述方法包括:
控制机器人以握住所述对象;
将机器人带入其中所述对象被插入在所述插入部中的目标位置;
针对不同于目标位置的多个位置
控制机器人以从目标位置移开至所述位置;
通过相机来取得相机图像;和
通过从所述位置移回至目标位置的移动向量来对相机图像进行标注;以及
使用经标注的相机图像来训练神经网络。
2.根据权利要求1所述的方法,进一步包括:针对相机图像中的至少一个,通过所述相机图像的颜色抖动、向灰度级的转换、裁剪、移位和滤波中的至少一个来生成附加相机图像,利用对所述相机图像进行标注所用的移动向量来对所述附加相机图像进行标注,以及使用经标注的附加相机图像来训练神经网络。
3.根据权利要求1或2所述的方法,其中所述位置是其中所述对象触及所述插入部位于其中的平面的位置,并且其中所述移动向量指定了平行于所述插入部位于其中的平面的移动。
4.根据权利要求3所述的方法,进一步包括,针对所述多个位置中的每个位置,
测量施加到所述对象上的力和力矩;
形成训练数据元素,所述训练数据元素包括相机图像、所测量的力和力矩、以及从所述位置移回至目标位置的作为标注的移动向量,其中所述方法包括使用所述训练数据元素来训练神经网络。
5.根据权利要求4所述的方法,进一步包括:针对所述训练数据元素中的至少一个,通过由零与预定正极限之间的随机数对力和力矩对进行随机缩放来生成附加训练数据元素,并且使用所述附加训练数据元素来训练神经网络。
6.一种用于控制机器人以将对象插入到插入部中的方法,包括:
控制机器人以握住所述对象;
生成将所述对象插入到所述插入部中的目标位置的估计;
控制机器人以移动到所估计的目标位置;
在已经控制了机器人以移动到所估计的目标位置之后,使用相机来取得相机图像;
将所述相机图像馈送到根据权利要求1至5中任一项所训练的神经网络;以及
根据由神经网络从所述相机图像中导出的移动向量来控制机器人移动。
7.一种机器人,包括:
安装在机器人上的相机,其被适配成提供相机图像;以及
控制器,其被配置成实现神经网络并且被配置成实行权利要求1至6中任一项所述的方法。
8.一种包括指令的计算机程序,当由处理器执行时,所述指令使得处理器执行根据权利要求1至6中任一项所述的方法。
9.一种存储指令的计算机可读介质,当由处理器执行时,所述指令使得处理器执行根据权利要求1至6中任一项所述的方法。
CN202210384239.8A 2021-04-14 2022-04-13 用于训练神经网络以控制插入任务的机器人的设备和方法 Pending CN115194754A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021109333.3A DE102021109333B4 (de) 2021-04-14 2021-04-14 Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109333.3 2021-04-14

Publications (1)

Publication Number Publication Date
CN115194754A true CN115194754A (zh) 2022-10-18

Family

ID=83447299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210384239.8A Pending CN115194754A (zh) 2021-04-14 2022-04-13 用于训练神经网络以控制插入任务的机器人的设备和方法

Country Status (3)

Country Link
US (1) US20220335710A1 (zh)
CN (1) CN115194754A (zh)
DE (1) DE102021109333B4 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117103276A (zh) * 2023-10-07 2023-11-24 无锡斯帝尔科技有限公司 一种机器人精确抓取方法及其系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6490032B2 (ja) 2016-08-10 2019-03-27 ファナック株式会社 組立ロボットのロボット制御装置
JP6457473B2 (ja) 2016-12-16 2019-01-23 ファナック株式会社 ロボットおよびレーザスキャナの動作を学習する機械学習装置,ロボットシステムおよび機械学習方法
KR102113462B1 (ko) * 2017-02-09 2020-05-21 미쓰비시덴키 가부시키가이샤 위치 제어 장치 및 위치 제어 방법
US10953548B2 (en) 2018-07-19 2021-03-23 International Business Machines Corporation Perform peg-in-hole task with unknown tilt
US11597084B2 (en) * 2018-09-13 2023-03-07 The Charles Stark Draper Laboratory, Inc. Controlling robot torque and velocity based on context
US11325252B2 (en) * 2018-09-15 2022-05-10 X Development Llc Action prediction networks for robotic grasping
JP7000359B2 (ja) 2019-01-16 2022-01-19 ファナック株式会社 判定装置
JP6978454B2 (ja) 2019-02-22 2021-12-08 ファナック株式会社 物体検出装置、制御装置及び物体検出用コンピュータプログラム
DE102019203821B3 (de) 2019-03-20 2020-09-10 Kuka Deutschland Gmbh Verfahren und System zum Durchführen einer Roboterapplikation
JP7239399B2 (ja) 2019-06-19 2023-03-14 ファナック株式会社 調整支援装置
JP7401207B2 (ja) 2019-06-21 2023-12-19 ファナック株式会社 ツールの状態を学習する機械学習装置、ロボットシステム、及び機械学習方法
JP7368170B2 (ja) 2019-10-08 2023-10-24 ファナック株式会社 表面仕上げ装置
US20210252698A1 (en) 2020-02-14 2021-08-19 Nvidia Corporation Robotic control using deep learning

Also Published As

Publication number Publication date
DE102021109333A1 (de) 2022-10-20
DE102021109333B4 (de) 2023-07-06
US20220335710A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
US20220335622A1 (en) Device and method for training a neural network for controlling a robot for an inserting task
US20220331964A1 (en) Device and method for controlling a robot to insert an object into an insertion
JP5685027B2 (ja) 情報処理装置、物体把持システム、ロボットシステム、情報処理方法、物体把持方法およびプログラム
US20200298411A1 (en) Method for the orientation of an industrial robot, and industrial robot
Martinez et al. Automated bin picking system for randomly located industrial parts
CN104589354A (zh) 机器人控制装置、机器人系统以及机器人
JP4513663B2 (ja) 自動組立システムにおける組立機構の動作教示方法
JP2023108062A (ja) 制御装置、ロボット装置、制御方法、およびプログラム
Song et al. Electric connector assembly based on vision and impedance control using cable connector-feeding system
Nguyen et al. Preparatory object reorientation for task-oriented grasping
Lian et al. Benchmarking off-the-shelf solutions to robotic assembly tasks
Debus et al. Cooperative human and machine perception in teleoperated assembly
CN115194754A (zh) 用于训练神经网络以控制插入任务的机器人的设备和方法
Klas et al. The kit gripper: A multi-functional gripper for disassembly tasks
Jha et al. Imitation and supervised learning of compliance for robotic assembly
JP4441615B2 (ja) 電源用3ピンプラグの挿入を行うためのロボットアーム制御装置
Gorjup et al. A flexible robotic assembly system combining cad based localization, compliance control, and a multi-modal gripper
JP6314429B2 (ja) ロボット、ロボットシステム、及びロボット制御装置
US20220335295A1 (en) Device and method for training a neural network for controlling a robot for an inserting task
Almaghout et al. Robotic pick and assembly using deep learning and hybrid vision/force control
Wittmann et al. Robotic framework for autonomous assembly: a report from the robothon 2021 grand challenge
Shauri et al. Sensor integration and fusion for autonomous screwing task by dual-manipulator hand robot
US20230311331A1 (en) Device and method for controlling a robot to perform a task
US20220301209A1 (en) Device and method for training a neural network for controlling a robot
CN114845843A (zh) 程序生成装置、程序生成方法以及生成程序

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination