CN115194755A - 用于控制机器人将对象***到***部中的设备和方法 - Google Patents
用于控制机器人将对象***到***部中的设备和方法 Download PDFInfo
- Publication number
- CN115194755A CN115194755A CN202210384246.8A CN202210384246A CN115194755A CN 115194755 A CN115194755 A CN 115194755A CN 202210384246 A CN202210384246 A CN 202210384246A CN 115194755 A CN115194755 A CN 115194755A
- Authority
- CN
- China
- Prior art keywords
- robot
- neural network
- camera
- controlling
- camera image
- 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
- 238000003780 insertion Methods 0.000 title claims abstract description 48
- 230000037431 insertion Effects 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013528 artificial neural network Methods 0.000 claims abstract description 50
- 239000013598 vector Substances 0.000 claims abstract description 34
- 238000005259 measurement Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012549 training Methods 0.000 description 44
- 239000012636 effector Substances 0.000 description 22
- 238000012545 processing Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 210000000707 wrist Anatomy 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013434 data augmentation Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000001617 migratory effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000007921 spray Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/081—Touching devices, e.g. pressure-sensitive
- B25J13/084—Tactile sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J18/00—Arms
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- 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/1679—Programme controls characterised by the tasks executed
- B25J9/1687—Assembly, peg and hole, palletising, straight line, weaving pattern movement
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39271—Ann artificial neural network, ffw-nn, feedforward neural network
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39391—Visual servoing, track end effector with camera image feedback
-
- 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/40032—Peg and hole insertion, mating and joining, remote center compliance
-
- 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/40532—Ann for vision processing
-
- 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/40584—Camera, non-contact sensor mounted on wrist, indep from gripper
-
- 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/40609—Camera to monitor end effector as well as object to be handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition of objects for industrial automation
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R43/00—Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors
- H01R43/26—Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors for engaging or disengaging the two parts of a coupling device
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Fuzzy Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
提供了用于控制机器人将对象***到***部中的设备和方法。根据各种实施例,描述了一种用于控制机器人将对象***到***部中的方法,包括控制机器人握住对象,生成将对象***到***部中的目标位置的估计,控制机器人移动到估计的目标位置,在已经控制机器人移动到估计的目标位置之后,使用安装在机器人上的相机取得相机图像,将相机图像馈送到神经网络中,该神经网络被训练成从相机图像中导出移动向量,该移动向量指定从在其处取得相机图像的位置到将对象***到***部中的移动,并且控制机器人根据由神经网络从相机图像中导出的移动向量来移动。
Description
技术领域
本公开涉及用于控制机器人将对象***到***部中的设备和方法。
背景技术
诸如电气布线组装之类的组装是工业中最常见的体力劳动作业之一。示例是配电板组装和房屋内开关装置(in-house switchgear)组装。复杂的组装过程可以通常被描述为两个主要活动的序列:抓取和***。类似的任务发生在例如线缆制造中,该线缆制造通常包括用于验证和核实的线缆***。
虽然对于抓取任务,合适的机器人控制方案在工业中通常是可用的,但是由机器人执行***或“钉入孔中”任务通常仍然仅适用于小的问题子集,主要是涉及固定位置中的简单形状并且其中不考虑变化的问题。此外,现有的视觉技术是慢的,其通常大约是人类操作者的三分之一那么慢。
因此,用于控制机器人以执行***任务的高效方法是合期望的。
发明内容
根据各种实施例,提供了一种用于控制机器人将对象***到***部中的方法,包括控制机器人握住对象,生成将对象***到***部中的目标位置的估计,控制机器人移动到估计的目标位置,在已经控制机器人移动到估计的目标位置之后,使用安装在机器人上的相机取得相机图像,将相机图像馈送到神经网络中,该神经网络被训练成从相机图像中导出移动向量,该移动向量指定从在其处取得相机图像的位置到将对象***到***部中的移动,并且控制机器人根据由神经网络从相机图像中导出的移动向量来移动。
移动向量例如可以是当前位置(在其处取得相机图像的位置)的姿态与***部的姿态之间的差异的向量(例如,在取向的角度和位置的笛卡尔坐标方面)。
上面描述的方法的各种实施例允许借助于神经网络控制用于***任务的机器人,针对所述训练,可以容易地收集训练数据,并且所述训练允许泛化至控制环境或控制场景中的变化,诸如要***的对象的抓取误差(未对准抓取)、与所收集的训练数据中不同的位置或取向、不同的颜色、形状中的小差异。特别地,可以避免在收集数据时对机器人或其周围环境的危险,并且学习可以离线地执行。此外,上面描述的方法的途径可扩展到许多不同的***问题(包括钉入孔中和穿线问题)。特别地,上述内容是通过将抓取误差的校正(或一般而言***任务中的位置校正)公式化为用于神经网络的回归任务来实现的,这是因为神经网络可以捕获非常复杂的结构化环境,同时它保持易于收集数据。
下文中给出了各种示例。
示例1是如上所述的用于控制机器人将对象***到***部中的方法。
示例2是示例1的方法,其中控制机器人移动到估计的目标位置包括控制机器人直到对象触及***部所位于其中的平面,其中在其处取得相机图像的位置是其中对象触及平面的位置,并且其中当对象触及平面时取得所述相机图像。
以这种方式,(对于训练数据元素以及在操作中)创建了参考,这是因为所述***部以及触及所述平面的所述对象的一部分(例如,插头的引脚的尖端)在相同水平上(例如,在末端执行器坐标系中的z坐标方面)。该参考避免了由神经网络执行的回归任务中的模糊性。
示例3是示例2的方法,进一步包括当对象触及平面时测量施加到对象上的力和力矩,并将测量的力和力矩与相机图像一起馈送到神经网络中,其中训练神经网络以从相机图像以及从力和力矩测量中导出移动向量。
在回归中考虑力测量提供了允许改进回归结果的附加信息。
示例4是示例2或3的方法,其中控制机器人根据移动向量移动包括控制机器人根据移动向量移动,同时维持对象对所述位置所位于其中的平面上的压力,直到对象被***到***部中。
这减少了机器人移动的自由度,并且从而导致更可靠的控制,直到找到***部。
示例5是一种机器人,包括:安装在机器人上的相机,其被适配成提供相机图像;以及控制器,其被配置成实现神经网络并且被配置成实行示例1至4中任一个的方法。
示例6是一种包括指令的计算机程序,当由处理器执行时,所述指令使得处理器执行根据示例1至4中任一个的方法。
示例7是一种存储指令的计算机可读介质,当由处理器执行时,所述指令使得处理器执行根据示例1至4中任一个的方法。
附图说明
在附图中,遍及不同的视图,相似的参考符号通常指代相同的部分。附图不一定是按比例的,取而代之,重点通常被置于说明本发明的原理上。在以下描述中,参考以下附图描述了各个方面,在附图中:
图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中,生成将对象***到***部中的目标位置的估计。作为目标位置的孔位置可以通过众所周知的计算机视觉算法(如图像匹配)来估计,例如如果给出了孔的先验知识的话,或者通过对象检测算法、特别是相对于目标位置的图像分割来估计。优选地,应用ORB算法估计目标位置。
在603中,控制机器人移动到估计的目标位置。
在604中,在已经控制机器人移动到估计的目标位置之后,使用安装在机器人上的相机取得相机图像。
在605中,将相机图像馈送到神经网络中,该神经网络被训练成从相机图像中导出移动向量,该移动向量指定从在其处取得相机图像的位置到将对象***到***部中的移动。
在606中,控制机器人根据由神经网络从相机图像中导出的移动向量来移动。
根据各种实施例,换言之,***任务被公式化为由神经网络求解的回归任务(确定移动向量)。移动向量可以包括平移和旋转分量,其可以使用任何合适的表示(例如坐标系或角度系)来表示。
图6的方法可以由包括一个或多个数据处理单元的一个或多个计算机来执行。术语“数据处理单元”可以被理解为允许处理数据或信号的任何类型的实体。例如,可以根据由数据处理单元执行的至少一个(即,一个或多于一个)特定功能来处理数据或信号。数据处理单元可以包括模拟电路、数字电路、复合信号电路、逻辑电路、微处理器、微控制器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、可编程门阵列(FPGA)集成电路或其任何组合,或者由其形成。实现相应功能的任何其他方式也可以被理解为数据处理单元或逻辑电路。将理解的是,本文中详细描述的一个或多个方法步骤可以由数据处理单元通过由数据处理单元执行的一个或多个特定功能来执行(例如,实现)。
各种实施例可以接收和使用来自诸如视频、雷达、激光雷达、超声、热成像等各种视觉传感器(相机)的图像数据。实施例可以用于训练机器学习***并且自主地控制机器人(例如机器人操控器)以实现不同场景下的各种***任务。应当注意的是,在针对***任务的训练之后,可以针对新的***任务来训练神经网络,与从头开始训练相比,这减少了训练时间(迁移学习能力)。实施例特别地适用于例如组装线中的操控任务的执行的控制和监测。
根据一个实施例,该方法是计算机实现的。
尽管本文中已经说明和描述了具体实施例,但是本领域普通技术人员将领会,在不脱离本发明的范围的情况下,各种替代和/或等同的实现方式可以代替所示出和描述的具体实施例。本申请意图覆盖本文中讨论的具体实施例的任何改编或变型。因此,所意图的是,本发明仅受权利要求及其等同物所限制。
Claims (7)
1.一种用于控制机器人将对象***到***部中的方法,包括:
控制机器人握住对象;
接收将对象***到***部中的目标位置的估计;
控制机器人移动到估计的目标位置;
在已经控制机器人移动到估计的目标位置之后,使用安装在机器人上的相机取得相机图像;
将相机图像馈送到神经网络中,所述神经网络被训练成从相机图像中导出移动向量,所述移动向量指定从在其处取得相机图像的位置到将对象***到***部中的移动;以及
控制机器人根据由神经网络从相机图像中导出的移动向量来移动。
2.根据权利要求1所述的方法,其中控制机器人移动到估计的目标位置包括控制机器人直到对象触及***部所位于其中的平面,其中在其处取得相机图像的位置是其中对象触及平面的位置,并且其中当对象触及平面时取得所述相机图像。
3.根据权利要求2所述的方法,进一步包括当对象触及平面时测量施加到对象上的力和力矩,并将测量的力和力矩与相机图像一起馈送到神经网络中,其中训练神经网络以从相机图像以及从力和力矩测量中导出移动向量。
4.根据权利要求2或3所述的方法,其中控制机器人根据移动向量移动包括控制机器人根据移动向量移动,同时维持对象对所述位置所位于其中的平面上的压力,直到对象被***到***部中。
5. 一种机器人,包括:
安装在机器人上的相机,其被适配成提供相机图像;以及
控制器,其被配置成实现神经网络并且被配置成实行权利要求1至4中任一项所述的方法。
6.一种包括指令的计算机程序,当由处理器执行时,所述指令使得处理器执行根据权利要求1至5中任一项所述的方法。
7.一种存储指令的计算机可读介质,当由处理器执行时,所述指令使得处理器执行根据权利要求1至6中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021109332.5A DE102021109332B4 (de) | 2021-04-14 | 2021-04-14 | Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle |
DE102021109332.5 | 2021-04-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115194755A true CN115194755A (zh) | 2022-10-18 |
Family
ID=83447238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210384246.8A Pending CN115194755A (zh) | 2021-04-14 | 2022-04-13 | 用于控制机器人将对象***到***部中的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220331964A1 (zh) |
JP (1) | JP2022163719A (zh) |
CN (1) | CN115194755A (zh) |
DE (1) | DE102021109332B4 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230046138A (ko) * | 2021-09-29 | 2023-04-05 | 현대자동차주식회사 | 전기차 충전 소켓 자세 추정 방법 및 이를 이용하는 자율 충전 로봇 |
DE102022202144A1 (de) | 2022-03-02 | 2023-09-07 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe |
DE102022202145A1 (de) | 2022-03-02 | 2023-09-07 | Robert Bosch Gesellschaft mit beschränkter Haftung | Roboter und Verfahren zum Steuern eines Roboters |
DE102022202143B4 (de) | 2022-03-02 | 2024-05-16 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6490032B2 (ja) | 2016-08-10 | 2019-03-27 | ファナック株式会社 | 組立ロボットのロボット制御装置 |
JP6457473B2 (ja) | 2016-12-16 | 2019-01-23 | ファナック株式会社 | ロボットおよびレーザスキャナの動作を学習する機械学習装置,ロボットシステムおよび機械学習方法 |
JP6587761B2 (ja) * | 2017-02-09 | 2019-10-09 | 三菱電機株式会社 | 位置制御装置及び位置制御方法 |
US10953548B2 (en) * | 2018-07-19 | 2021-03-23 | International Business Machines Corporation | Perform peg-in-hole task with unknown tilt |
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 |
US11986958B2 (en) * | 2020-05-21 | 2024-05-21 | Intrinsic Innovation Llc | Skill templates for robotic demonstration learning |
US11833661B2 (en) * | 2020-10-31 | 2023-12-05 | Google Llc | Utilizing past contact physics in robotic manipulation (e.g., pushing) of an object |
-
2021
- 2021-04-14 DE DE102021109332.5A patent/DE102021109332B4/de active Active
-
2022
- 2022-03-17 US US17/655,194 patent/US20220331964A1/en active Pending
- 2022-04-13 JP JP2022066335A patent/JP2022163719A/ja active Pending
- 2022-04-13 CN CN202210384246.8A patent/CN115194755A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102021109332A1 (de) | 2022-10-20 |
JP2022163719A (ja) | 2022-10-26 |
US20220331964A1 (en) | 2022-10-20 |
DE102021109332B4 (de) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115194755A (zh) | 用于控制机器人将对象***到***部中的设备和方法 | |
US20220335622A1 (en) | Device and method for training a neural network for controlling a robot for an inserting task | |
US20200298411A1 (en) | Method for the orientation of an industrial robot, and industrial robot | |
Kofman et al. | Teleoperation of a robot manipulator using a vision-based human-robot interface | |
JP6454960B2 (ja) | ロボット、ロボットシステム、ロボット制御装置 | |
CN104589354A (zh) | 机器人控制装置、机器人***以及机器人 | |
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 | |
JP2023108062A (ja) | 制御装置、ロボット装置、制御方法、およびプログラム | |
CN115519536A (zh) | 用于3d眼手协调的误差校正和补偿的***和方法 | |
Jha et al. | Imitation and supervised learning of compliance for robotic assembly | |
Agustian et al. | Robot manipulator control with inverse kinematics PD-pseudoinverse Jacobian and forward kinematics Denavit Hartenberg | |
US20220335710A1 (en) | Device and method for training a neural network for controlling a robot for an inserting task | |
Gorjup et al. | A flexible robotic assembly system combining cad based localization, compliance control, and a multi-modal gripper | |
Jha et al. | Generalizable human-robot collaborative assembly using imitation learning and force control | |
US20230278204A1 (en) | Device and method for controlling a robot to perform a task | |
US20230278227A1 (en) | Device and method for training a machine learning model to derive a movement vector for a robot from image data | |
Ranjan et al. | Identification and control of NAO humanoid robot to grasp an object using monocular vision | |
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 | |
US20220301209A1 (en) | Device and method for training a neural network for controlling a robot | |
US20230311331A1 (en) | Device and method for controlling a robot to perform a task | |
WO2023165807A1 (en) | Robot and method for controlling a robot |
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 |