CN106457565B - 用于对机器人进行编程的方法和*** - Google Patents

用于对机器人进行编程的方法和*** Download PDF

Info

Publication number
CN106457565B
CN106457565B CN201580029953.3A CN201580029953A CN106457565B CN 106457565 B CN106457565 B CN 106457565B CN 201580029953 A CN201580029953 A CN 201580029953A CN 106457565 B CN106457565 B CN 106457565B
Authority
CN
China
Prior art keywords
robot
constraint
constraints
execution modules
motion
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.)
Active
Application number
CN201580029953.3A
Other languages
English (en)
Other versions
CN106457565A (zh
Inventor
R·杰克尔
G·迪尔施
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.)
Artiminds Robotics GmbH
Original Assignee
Artiminds Robotics 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=54481690&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN106457565(B) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Artiminds Robotics GmbH filed Critical Artiminds Robotics GmbH
Publication of CN106457565A publication Critical patent/CN106457565A/zh
Application granted granted Critical
Publication of CN106457565B publication Critical patent/CN106457565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • B25J9/1666Avoiding collision or forbidden zones
    • 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
    • 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/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • 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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/39298Trajectory learning
    • 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/40395Compose movement with primitive movement segments from database
    • 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/40517Constraint motion planning, variational dynamic programming
    • 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/40523Path motion planning, path in space followed by tip of robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

一种用于对机器人尤其是包括机械臂的机器人进行编程的方法,在该方法中,借助于预定义的运动模板优选地以机器人程序来设置将由机器人执行的移动,其中该运动模板从包括多个运动模板的数据库中选择,其中该运动模板包括一个或多个可参数化的执行模块以及至少一个学习模块,其中该一个或多个执行模块用于规划和/或执行机器人移动或机器人移动的部分移动,其中该学习模块在初始化过程(具体而言,以示教过程的形式)中记录机器人的一个或多个配置,并且其中该学习模块优选地使用机器学习方法基于所记录的配置来计算用于一个或多个执行模块的参数。此外,提供了一种用于对机器人进行编程的对应***。

Description

用于对机器人进行编程的方法和***
技术领域
本发明涉及一种用于对机器人,尤其是包括机械臂的机器人进行编程的方法和***。
背景技术
多年来通过本领域已知了正在讨论的类型的方法和***。因此,存在用于对工业机器人进行编程的各种编程方法:示教、再现、基于传感器的编程、CAD(计算机辅助设计)编程和基于对话的或文本编程。
在本领域已知的示教编程方法中,通过手动途经和保存各种路标点来对机器人进行编程。用于该过程的工具是示教面板,该示教面板是具有图形显示器的遥控器,在图形显示器上可显示机器人状态和机器人程序。用户通过使用例如操纵杆在3或6个空间方向上操纵工具中心点(TCP)(机器人的最后一个关节上的限定点)来将机器人移动到不同的点。用户保存途经的各点的坐标,并将该信息集成到机器人程序中。在这种情况下,每个路标点被定义为移动命令的目标或中间点(例如,点到点、线性或圆形运动)。操作员用手输入附加的路径参数(例如,速度、加速度或与下一个命令的混合)。机器人程序的结构(即具体而言,各个移动命令)通常可从列表中选择并进行编译。
在从本领域已知再现编程方法的情况下,不仅各个点被保存,而且用户还可在连续路径上移动机械臂,从而可保存大量的路标点。这个特征允许容易地对复杂的自由形式路径(例如沿着车辆的挡泥板)进行编程,否则将难以使用示教编程方法中的各个移动命令来编程。连续的引导-通过通常通过机器人凸缘上的力与扭矩传感器(FTS)来启用:人,或者更具体地,操作员抓握机器人并在其上施加作用力。作用力由FTS测量并传送到机器人控制器,机器人控制器连续地计算补偿该作用力的移动。然后将该路径分配给机器人程序中的一个或多个移动命令。
在基于传感器的编程方法中,以与再现方法类似的方式产生连续路径。然而,出于此目的使用了附加的传感器,例如,将激光线投影到组件上、利用相机***捕捉该线以及将检测到的线转换为机器人的运动路径。在这种情况下,有可能实现高精度。不必直接地移动机器人,这是在大型机器人的情况下有利的特征。但是,附加的硬件以及对相机和机器人的校准是必要的。
与其中在现场直接对机器人进行编程的这些上述的在线方法相反,在CAD编程方法的工作单元的一个详细的CAD模型中,机器人和待操纵的组件被用来在模拟环境中对机器人进行编程。在这种情况下,借助例如组件的CAD模型的表面上的鼠标交互来确定路标点。或者在表面上计算完整路径(例如,沿着CAD模型的边缘或遵循特定的图案(例如曲径))。点被映射到点到点、线性或圆周移动命令,并被保存到机器人程序中。可以与示教编程方法类似的方式来指定附加的路径参数。优点包括用最小的努力来确定沿着物体表面的路径,因为可直接借助于CAD模型来计算路径而不必要求在编程操作期间使用机器人。然而,缺点包括实际工作单元和模拟之间的校准、CAD模型的提供和对微小偏差的必要调适。
上述编程方法的常见的共性是借助于可依靠各种方法图形化地生成的路标点和路标点序列(路径)的编程。各个路标点(具体而言,笛卡尔路标点)的一个主要缺点是它们由于例如障碍物、奇点和/或在微小偏差的情况下缺乏可到达性而不能被途经,结果机器人程序将失败。
在从本领域已知的基于对话的和文本编程方法中,使用文本编辑器或图形套件来创建完整的机器人程序。在这种情况下,可利用机器人控制器的全部能力。具体而言,机器人外部传感器的分析可被用来响应例如由待操纵的组件的视觉定位或由制造公差引起的工序偏差。直接在机器人编程语言中编程使得使用当前不能借助上述方法编程的附加的移动命令成为可能(例如,使用来自KUKA的FTCtrl或来自Adept的AdeptForce的作用力控制)。为了控制作用力,有可能例如指定反馈控制的空间方向、力/扭矩的期望值和简单的终止约束。可通过这些基本命令创建非常复杂的机器人程序。在这种情况下,即使简单的任务(诸如举例而言,将圆柱***孔中)也可包括若干移动命令和各种力控制器。典型的装配任务基于多个这样的任务(例如***、拧紧、钩住)。因此,装配任务的实现与大量的劳力相关联。此外,不利的是,关于机器人编程语言、工序和机器人的专业知识是必要的。
另一个问题是,即使当前在汽车行业中,工业中的自动化程度也相对较低。使用机械臂的自动化的大多数应用可由它们沿着严格编程的运动路径移动而没有基于传感器的对偏差的响应的事实来表征。结果,工具(诸如举例而言焊枪)在牢固编程的运动路径上移动。工序中的偏差通过大量的工程工作和开支来降低到可忽略的水平(例如借助用于每个组件的特殊夹持器和特殊的高精度进料器)。只有这样,才能够在需要时在示教或再现的帮助下应用编程方法以生成固定的运动路径。如果这在经济上不可行,则在大多数情况下的常规实践免除借助更复杂的编程方法的自动化。这种策略的问题是,这种方法很快达到其极限,例如,由于以下问题:
短的生产运行需要频繁的重新编程,使得大量的工程工作是不经济的。例如,可能需要每周改变的设备的质量保证测试,例如洗衣机的长期测试。
装配任务通常几乎不起作用,使得力的相互作用在例如组件***期间是不可避免的;并且这些装配任务由多个不同的任务组成,诸如举例而言抓握、接合、接触。
弹性组件在它们的几何形状上具有变化,使得在工序中必须考虑这些几何变化,例如在抓握或接合塑料部件时的弹性金属薄板。
借助于视觉传感器检测到的物体(例如用于拧紧的螺钉)位于总是不同的位置,由于这个原因,机器人的定位必须是灵活的。
因此,目前不能用固定运动路径编程的那些任务(例如在装配和质量保证测试期间)大多由人工执行。
发明内容
因此,本发明的目的是设计并进一步开发用于对在说明书的介绍部分中描述的机器人类型进行编程的方法和***,使得对机器人(具体而言,用于机械手和/或装配工序的机器人)的简单且稳健的编程成为可能。
根据本发明,借助根据本发明的用于对机器人进行编程的方法实现了上述工程目的,其公开了一种用于对机器人,尤其是包括机械臂的机器人进行编程的方法,在该方法中,借助于预定义的运动模板优选地在机器人程序中设置将由机器人执行的移动,其中该运动模板从包括多个运动模板的数据库中选择,其中该运动模板包括一个或多个可参数化的执行模块以及至少一个学习模块,其中该一个或多个执行模块用于规划和/或执行机器人移动或机器人移动的部分移动,其中该学习模块在初始化过程(具体而言,以示教过程的形式)中记录机器人的一个或多个配置,并且其中该学习模块优选地使用机器学习方法基于所记录的配置来计算用于一个或多个执行模块的参数。
此外,借助根据本发明的用于对机器人进行编程的***实现了上述工程目的,其公开了一种用于对机器人(尤其是包括机械臂的机器人)进行编程的***,在该***中,借助于预定义的运动模板优选地在机器人程序中设置将由机器人执行的移动,其中该运动模板可从包括多个运动模板的数据库中选择,其中该运动模板包括一个或多个可参数化的执行模块以及至少一个学习模块,其中该一个或多个执行模块用于规划和/或执行机器人移动或机器人移动的部分移动,其中该学习模块在初始化过程(具体而言,以示教过程的形式)中记录机器人的一个或多个配置,并且其中该学习模块优选地使用机器学习方法基于所记录的配置来计算用于一个或多个执行模块的参数。
最后,上述工程目的借助根据本发明的计算机程序产品来实现,其公开了一种具有程序代码的计算机程序产品,所述计算机程序产品储存在机器可读载体上,并且提供和/或执行根据本发明的用于对机器人进行编程的方法。
首先,以创造性的方式认识到,与基于对话的和文本编程相比,应该显著地简化可容许物体的定位和几何形状的偏差的机器人程序的开发,以便尽可能有效地实现上述工程目的或者应该解决上述自动化的问题,并且实现相关联的优点(诸如吞吐量、重复性、质量等)。通过在机器人程序中实现对偏差的容差,可例如借助于同样优选地适合于人工操作员的简单的、标准化的进料器和夹持器***来显著地减少工程工作的总量,使得自动化变得经济上可行。
根据本发明,为了对机器人(尤其是包括机械臂的机器人)进行编程,优选地借助于预定义的运动模板以机器人程序设置要由机器人执行的移动。从包括多个运动模板的数据库中选择运动模板,其中运动模板根据本发明包括一个或多个可参数化的执行模块和至少一个学习模块。一个或多个执行模块用于规划和/或执行机器人移动或机器人移动的部分移动。学习模块在初始化过程中(例如以示教过程的形式)记录机器人的一个或多个配置。基于所记录的配置,学习模块优选地使用机器学习方法(例如,RANSAC算法或主成分分析)来计算用于一个或多个执行模块的参数。
传统的示教和再现编程方法的缺点是仅可生成路标点和路径,而不可生成关于这些路标点或路径是否必须或者如何被适配成以便容忍(或更具体地,补偿)偏差的信息。
与通过限定移动通道将运动路径的执行期间的偏差考虑在内的方法相反,本发明的方法和本发明的***分别可考虑到不仅在运动路径中存在偏差,而且还必须考虑例如由于夹持器位置和/或测得的力的时变以及在各种工序步骤中出现的各种不同的偏差。
因此,本发明的方法和本发明的***以及本发明的计算机程序产品使得机器人(具体而言,用于机械手工序和/或装配工序的机器人)的简单和稳健的编程成为可能。
在一种有利的方式中,执行模块的参数可以包括约束,其中在这种情况下基于约束来计划和/或执行机器人移动或机器人移动的部分移动。因此,结果是机器人移动或机器人移动的部分移动的可变和动态规划,使得有可能实现(具体而言,相对于移动中的任何偏差)尽可能稳健和灵活的机器人移动的执行。
约束以附加的有利的方式可包括约束函数f和约束区域R,其中在这种情况下约束函数f将配置k映射到优选实值向量空间中,并且其中约束区域R对应于优选实值向量空间的子集。如果f(k)位于R中,则满足配置k的约束。因此,可能以周详的方式统一实现有着很大不同的种类的约束,这是允许以有效的方式规划机器人的路径和移动的一个方面。
此外,以下类型中的一个或多个可被用作约束函数f的类型:
机器人的关节或机器人的末端执行器(具体而言,夹持器)的角度、速度和/或加速度;
机器人的工具中心点相对于坐标系的位置、取向和/或定位;
相对于坐标系在工具中心点测得的速度、角速度和/或扭转;
相对于坐标系在工具中心点测得的力、扭矩和/或力旋量;
在不碰撞情况下从一个CAD模型到另一个CAD模型的距离大小和/或距离向量;
所述机器人和CAD模型的末端执行器的抓握等级,所述末端执行器具体而言是夹持器。
因此,通过针对一个或多个约束函数使用上述类型中的一个类型或将上述类型中的几个类型进行组合,可尽可能全面地考虑并且补偿机器人移动的规划和执行中的各种偏差。
在一个有利的实施例中,可用于约束区域R的类型包括轴对齐立方体、定向立方体、圆柱、圆锥、球体、凸包、CAD模型、或逻辑、与逻辑和/或乘积形成。或操作、与操作和乘积形成将至少两个约束区域组合成单个约束区域。因此,取决于约束函数的应用和类型,有可能通过针对相关联的约束区域的合适类型的适当应用来选择合适范围的值。
(多个)执行模块的参数可有利地包括运行时约束作为约束,其中在这种情况下,运行时约束是定义了对于可预先确定的时间点间隔要满足的约束的时间相关约束。
此外,(多个)执行模块的参数可包括目标约束作为约束,其中在这种情况下,目标约束是定义了对于时间点的间隔上限或时间点的可预先确定的间隔要满足的约束的约束。
因此,基于约束的移动描述的运行时约束和目标约束的集合能够对在机械手工序或装配工序的执行期间可能发生的可容许的偏差直接建模。此外,运行时约束和目标约束构成关于如何补偿较大偏差的信息。这个方面表示相对于不提供这种信息的传统编程方法的显著改进。
在一个有利的实施例中,一个或多个执行模块可适应,或更具体而言,可以遵守运行时约束的方式根据控制算法来调整机器人移动或机器人移动的部分移动。此外,当满足目标约束时,可成功地终止机器人移动或机器人移动的部分移动。因此,当满足为运动路径指定的所有运行时和目标约束时,机器人成功地执行移动。机器人将以遵守运行时约束的方式使其移动符合控制算法。一旦满足目标约束,移动就被成功地终止。否则,执行是不成功的。
可基于约束,具体而言,基于对运动模板的执行模块的运行时和/或目标约束以特别有利的方式优选地使用路径规划算法来计算运动路径。
一个或多个执行模块可以以有利的方式通过编译被映射到目标***(例如机器人控制器)。出于此目的,可基于相应类型的控制、计算出的运动路径以及运行时和目标约束来创建可执行的机器人代码。然后,可以在相应的目标***中完全独立地执行机器人代码。
此外,可构想在初始化过程中用户可借助各种接口(例如借助于用户手动引导机器人、借助于在3D模拟环境中的鼠标交互和/或借助于其他合适的控制装置)来生成要记录的配置。
在一个有利的实施例中,可在初始化过程中实现与用户的交互,其中在这种情况下向用户提出问题和/或指令以便生成要记录的配置。结果,用户可在初始化过程期间,或者更具体地,在示教过程期间被有效地支持。
就简单和有效的结构化而言,一个或多个执行模块可以以这样的方式分层地构建,使得执行模块被设计成不可分割的原始算子(即原始执行模块),或者执行模块由一个或多个执行模块和/或一个或多个运动模板构成。因此,任何已经存在的和可能参数化的运动模板或执行模块可被有效地重新使用。
本发明的方法允许机器人程序的稳健设置,其容许工件的定位及其几何形状的偏差,并且可有利地在工业中得到使用。
这种机器人程序不是以机器人编程语言(与基于对话的、文本编程完全不同)中的命令的形式直接创建的,而是可在初始化过程中(或者更具体来说,示教过程中)基于预定义的运动模板的数据库来创建的。与示教类似,可基于给定工序的几个配置来创建运动模板。
运动模板优选地包括可执行规则以检测并且可选地补偿由机器人执行的工序中的任何偏差。同时,在示教中使用的用于在路标点之间生成运动路径的插值方法可由能够在(隐式定义的)路标点区域之间生成运动路径的路径规划方法来补充。
本发明的一些方面在下面更详细地参照示例性实现来解释。应当明确指出以下陈述仅描述特别优选的示例性实施例,然而示教不应被视为限于这些示例性实施例。
示教过程可包括,如在初始化过程中具体而言的下列步骤:
1.将运动模板(例如,***、螺旋搜索、行进和抓握、接触)从数据库添加到机器人程序(或空的机器人程序)中。对于每个运动模板可能存在一组执行模块和一个学习模块。每个执行模块具有参数,其优选地包括运行时和目标约束。在这种情况下,原始执行模块可对应于特定的控制算法,其中已知的控制器实现(诸如举例而言,力/位置混合控制)得到了扩展。学习模块实现机器学习方法,以便通过经示教的配置和/或通过基于对话的输入创建参数。
2.执行学习模块。它可被解释成示教编程方法的扩展,具体而言,以便包括运行时和目标约束的创建。学习模块可取决于学习模块的类型向用户,或者更具体而言向操作员发送问题(图形化地:在机器人控制器/外部PC上的3D可视化,基于对话的:2D可视化),以便创建特定的配置。随后学习模块将通过配置计算执行模块的参数。用户使用各种接口来创建这些配置(例如通过引导真实机器人或通过在3D模拟环境中的鼠标交互)。例如,真实机器人在四个配置中移动,这四个配置被假定为定义矩形的四个角,或者用户在CAD模型上标记对应的四个点。例如借助于集成到机械臂中的传感器和外力/扭矩传感器(FTS)来记录这些配置。
3.机器学习方法在运动模板的学习模块中实现。这些机器学习方法通过所记录的配置计算执行模块的参数,所记录的配置可包括机械臂位置和/或夹持器位置和/或力/扭矩测量和/或CAD模型上的点。
4.可基于参数优选地使用路径规划算法(例如快速探索随机树算法)为运动模板的每个执行模块计算运动路径。该步骤类似于示教方法,其中基于取决于插值类型的选择的路标点来生成连续路径(例如两个路标点之间的线性连接)。在本情况下,基于约束(具体而言,运行时和目标约束)使用规划算法生成连续路径。
5.具有参数的执行模块可例如使用编译被映射到目标***(即机器人控制器)。出于此目的,基于相应类型的控制、计算出的运动路径以及运行时和目标约束产生可执行的机器人代码。然后,可以在相应的目标***上完全地执行机器人代码。在替代实现中,执行模块(尤其是原始执行模块)可直接在计算机上(或更具体而言在基于PC的控制器上)执行,而不用转换成机器人代码。
与传统的示教或再现方法相反,执行模块的参数不必是路标点或运动路径,而可以表示运行时和目标约束,可如下统一定义这两者:
约束包括约束函数f(德语:Bedingungsfunktion)和约束区域R(德语:Bedingungsregion),约束函数f将配置k映射到实值向量空间中,约束区域R对应于实值向量空间的子集。当且仅当f(k)位于R中时,满足配置k的约束。
以下类型可用于例如约束函数f:
机器人的关节或机器人的末端执行器(尤其是夹持器)的角度、速度和/或加速度;
机器人的工具中心点相对于坐标系的位置、取向和/或定位;
相对于坐标系在工具中心点测得的速度、角速度和/或扭转;
相对于坐标系在工具中心点测得的力、扭矩和/或力旋量;
在不碰撞情况下从一个CAD模型到另一个CAD模型的距离大小和/或距离向量;
所述机器人和CAD模型的末端执行器的抓握等级,所述末端执行器具体而言是夹持器。
就位置约束函数、取向约束函数或定位约束函数(姿势约束)而言,约束函数f相对于特定的(预定义的)坐标系K构成作为3维向量(位置约束、取向约束)或者作为6维向量(定位约束)的工具点(工具中心点TCP)的当前位置。
在一个示例性实施例的上下文中,可按如下描述包括位置的3维向量和取向的3维向量的定位约束函数的计算。位置和取向约束仅由相应的3维向量组成。
如果H是描述TCP相对于K的位置的齐次变换矩阵,则6维向量由H的3维平移向量和H的三维缩放旋转轴(轴线角表示)形成。H的缩放旋转轴可按如下计算:
1.H的3×3旋转矩阵被转换成四元数(qx,qy,qz,qw),其中qw是实部。
2.旋转角α(阿尔法)为2*acos(qw)。acos是反余弦函数。
3.缩放的旋转轴是a*1/sin(a)*[qx qy qz]。[qx qy qz]是由qx、qy和qz组成的3维向量。
可以类似的方式计算速度约束函数、角速度约束函数和扭转约束函数(扭转=由3维速度向量和3维角速度向量组成的6维向量)。然而,在这种情况下,根据速度向量的变换规则变换TCP相对于特定坐标系K的3维(平移)速度和3维角速度,并保存为约束函数的值。
力、扭矩和力螺旋约束函数也可以以与之前的部分中相同的方式来处理。与此同时,计算力、扭矩或力和扭矩的组合(力旋量)。
关节角度约束函数、关节速度约束函数和关节加速度约束函数直接表示机器人***中的运动自由度的当前位置、速度和加速度的n维向量。
可以这样的方式实现免受碰撞约束函数,使得如果周围区域的3D CAD模型与机器人的3D CAD模型存在碰撞或者存在机器人与其自身的碰撞,则输出1作为值。可尤其通过交叉3D CAD模型的三角网格来执行碰撞的这种计算,为此,如果必要的话,可使用标准库。如果没有碰撞,则返回0。
距离大小约束函数优选地计算3D CAD模型距第二3D CAD模型的欧氏距离,作为符合第一和第二3D模型的两个点的一对点之间的距离,所述第一和第二3D模型的两个点彼此之间具有最短的可能距离。距离向量约束函数优选地计算同一对点的从第一点到第二点的归一化向量。
定位约束可被实现或实施,例如,按如下方式:令坐标系K定义在物体的重心处。然后根据上述公式计算TCP相对于K作为6维向量的相对位置。R是作为中心点向量[m1 m2 m3m4 m5 m6]和方差向量[e1 e2 e3 e4 e5 e6]给出的6维立方体。立方体遵循所有向量[v1v2 v3 v4 v5 v6],其中mi-ei<=vi<=mi+ei。该约束意味着工具中心点(且因此也是机械臂)位置必须在特定区域中,例如在要抓握的物体上方。在这种情况下,坐标系K被定义在物体的重心处。在这种情况下,R的可能值将是:
[m1 m2 m3 m4 m5 m6]=[0 0 0.05 1.5708 0 0]
以及
[e1 e2 e3 e4 e5 e6]=[0.01 0.01 0 0 0 0]。
约束区域位于物体的重心上方0.05m处,具有围绕X轴旋转的约90度(等效于1.5708rad)的取向。与该点的允许偏差在X和Y方向上为0.01m。
作用力约束(德语:Kraftbedingung)可按如下实现:用FTS测得的作用力被示为3维向量[fx fy fz]。约束区域R是具有半径r和中心点向量[m1 m2 m3]的一个三维球体R。当且仅当[fx fy fz]位于R中时,作用力约束得到满足,即
norm([fx-m1 fy-m2 fz-m3])<=r。
在这种情况下,范数是向量的欧式范数。于是,当且仅当作用力的量小于或等于r时,作用力约束得到满足。
在本发明的优选实施例的上下文中,约束函数应该或必须满足以下计算中的一个或多个,其中K是配置,并且r是维数等于R(k)的维数的实值向量:
1.f(k)=r,即,函数f可应用于配置k。它必须满足所有函数f。
2.f-1(r,k')=k,即如果给出r值和参考配置k',则可计算满足f(k)=r的配置k。(计算B.1)
3.f(k)可通过r递增(即,如果给出配置k和向量r,则可计算配置k'),使得f(k')=f(f-1(f(k)+r))(即,配置k被修改为使得该修改对应于R中的给定步幅r)。
根据示例性实施例,约束区域定义R值的实值范围。在这种情况下,R应该或必须允许以下计算中的一个或多个。r是维数等于R的维数的实值向量:
1.从r到R的实值距离d>=0:如果r在R中,则d为0,否则d为从r到R的表面的最小距离(计算B.2)。
2.从r到R的表面的实值距离d:如果r在R中,则d是从r到R的表面的最小距离的负值。否则d是从r到R的表面的最小距离。
3.包括e=0或1。当且仅当r在R中时,e为1。所有约束区域必须满足此计算。
4.R的中心点m。所有约束区域必须满足此计算。
5.表面上r的随机点。可计算随机向量r,使得r位于R的表面上。
6.来自内部空间的随机点。可计算随机向量r,使得r在R中。(计算B.3)
7.任何方向v上的R的扩展的计算。(计算B.4)
在这种情况下,可使用的R的类型包括:轴对齐立方体(轴对齐边界框)、定向立方体(定向边界框)、圆柱、圆锥、球体、凸包、CAD模型、或操作、与操作和/或乘积形成。
结果,基于约束的移动描述的运行时约束和目标约束的集合可直接地对在执行机器人程序(例如装配工序)的过程中可发生的容许公差进行建模。此外,它们表示关于如何补偿较大偏差的信息,这是相对于不提供这种信息的传统编程方法的一个显著改进的方面。
以下将更详细地描述对较大偏差的可能的补偿。在这种情况下,作出了在运动规划和控制之间的区分。
在运动规划的上下文中,目标是要生成满足基于约束的移动描述的运动路径。在这种情况下,Berenson等人于2009年5月在IEEE国际机器人和自动化会议(ICRA)上发表的基于算法约束的双向快速探索随机树(CBiRRT):“Manipulation Planning on ConstraintManifolds(约束簇的操纵规划)”可与Stilman,M于2007年在Intelligent Robots andSystems(智能机器人和***)上发表的投影法随机化梯度下降(RGD):“Task constrainedmotion planning in robot joint space(在机器人关节空间的任务约束运动规划)”相组合,并且可被适配到运行时和目标约束。然后,路径规划算法包括以下步骤:
1.生成满足所有目标约束的目标配置(即配置)。由于该组目标配置通常包括多于一个的元件,所以在这种情况下的问题涉及允许偏差,例如所述允许偏差出自机器人***可放下物体的位置。
2.搜索从起始配置到生成的目标配置的分段线性连接。在该步骤中,生成从起始配置运行到目标配置之一的运动路径。结果,机器人***在以运行时约束的形式给出的偏差之内能够以面向目标的方式独立地生成有效的运动路径。
然而,可首先提供投影方法作为用于目标配置和搜索的计算的基础,该投影方法将其中不满足所有约束的配置映射到满足所有约束的类似配置。为此,可使用约束作为投影方法来实现随机化梯度下降(RGD)。目标是要将配置k映射到配置k',使得k'中的给定约束集合得到满足,并且k'不比d>0更远离k。因此,这意味着,所提出的投影方法允许至少直到满足约束为止才来修改其中违反了一组约束的配置k。在这方面,RGD算法与特殊距离函数一起被使用。
距离函数dist()可按如下定义:给定配置k和一组约束b1到bn:
1.计算每个bi的距离值di:令f为约束函数;并且R为bi的约束区域。如果R支持距离计算(见计算B.2),则保持di=MAX和f(k)到R的距离的两者的最小值。如果R不支持距离计算,则di=0(如果f(k)包括在R中)。否则,di=MAX。MAX是大于零的常数,在本情况下为100000。
2.形成所有距离值di的最大值dmax。
3.配置k的距离函数的值为dmax。
RGD算法将配置k投影到配置k'上,其中通过执行随机化梯度下降来满足所有的约束bi。在这种情况下,执行以下处理。令e大于0(e>0);并令k'在开始时等于k(k'=k):
函数bool RGD(k,bi,k'):
1.设置COUNTER=0
2.如果COUNTER>MAXIMUM,则以返回值false结束。
3.在均匀分布之后创建配置k的维度的m个方向向量si。设置配置ki=k'+e*si。计算vi=dist(ki)for all ki。
4.确定具有所有vi的最小值(argmin函数)的参数j。
5.如果vj=0,则设置k'=kj,并以返回值true终止。
6.如果vj>=dist(k),则设置COUNTER=COUNTER+1并转到2。
7.如果norm(k-k')>d,则设置COUNTER=COUNTER+1并转到2。
8.设置k'=kj。
9.转到2。
然后,可在多级过程中生成目标配置。假设bi=(fi,Ri)是具有约束函数fi和约束区域Ri的给定目标约束:
1.根据bi确定约束bj,使得fj可被求反(见计算B.1),Rj支持随机向量的计算(见计算B.3)。
2.迭代所有bj:
a.根据计算B.3从Rj计算随机值rj。
b.计算kj=f-1(rj,k)。
3.如果RGD(k,bi,k')为真,则将k'添加到目标配置的集合。
关于搜索从起始配置k0到目标配置集合kj的分段线性连接,可使用具有以下修改的CBiRRT算法:将步骤ConstrainConfig(kold,knew)替换为RGD(kold,bi(t),knew)。在这种情况下,bi(t)是在时间点t的运行时约束,其被递增以便与规划过程保持同步。
路径规划算法的最终结果是具有配置(t1,k1),...,(tm,km)的时间点序列,使得k1对应于起始配置;并且km对应于来自目标配置集合的目标配置之一。在这种情况下,k1到km-1中的运行时约束得到满足。km中的目标约束得到满足。
为了提供根据示例性实施例的合适的控制,可进一步开发控制算法混合位置和作用力控制,以便基于运行时和目标约束来参数化。在这种情况下,运行时和目标约束的解读如下:
1.运行时约束,必须使用控制来遵守所述运行时约束。
2.目标约束,当所述目标约束得到满足时,执行中断
在示例性实施例的上下文中,控制算法被提供作为在六个维度x、y、z、rx、ry和rz中实现的比例积分微分控制器(PID控制器)。混合位置控制器和力控制器之间的主要区别在于误差计算,其替代了常用的选择规则。控制算法支持具有位置、方向、定位、力、扭矩或力旋量约束函数的运行时约束。这些约束函数具有统一的结构,并且这些约束函数基于相对于特定坐标系K的TCP上的定位或力旋量。
PID控制器的更新步骤可按如下实现:
1.迭代所有运行时约束。
2.为当前配置K计算当前运行时约束的约束函数f的值f(k)。
3.针对每个维度x、y、z、rx、ry和rz单独地执行PID控制器中的误差计算。在这样做时,在每个维度i中执行以下步骤:
a.计算从f(k)到坐标i处的区域m的中心点的距离d。
b.根据计算B.4计算约束区域R在由i给出的方向上的扩展ai。
同时,扩展是无限的显然是有可能的(例如在2D平面的情况下)。
c.如果di的量小于ai,则将误差ei设置为0。否则,误差ei=ai–di。
d.将PID更新应用于误差ei并计算期望值si。
4.根据约束函数的变换规则将目标向量s=[s1 s2 s3 s4 s5 s6]变换为TCP。
5.如果给出作用力、扭矩或力旋量约束函数,则根据弹力的原理将具有给定弹簧常数的目标向量转换成目标定位向量。
6.计算所有运行时约束的目标向量和经变换的目标定位向量的和。
7.相对于计算出的和来移动机器人。
因此,机器人执行在给定的维度i中作为当前运行时约束的函数的位置控制、作用力控制或位置和作用力的同时控制。
当满足当前配置中的所有目标约束时,终止控制过程。
此外,控制算法可被容易地扩展到目标约束的使用,例如在关节角度空间和/或笛卡尔空间中的位置控制或作用力控制。在这种情况下,在控制回路中计算当前配置k。当满足k中的所有目标约束时,控制过程被成功地终止。
根据本发明的一个示例性实施例,运行时和目标约束构成了用于通过路径规划和控制来生成运动路径的特别有利的参数化,其可明确地对允许偏差进行建模,并因此可导致稳健性的提高。由于算法的复杂性,借助运行时和目标约束的编程仅是机器人学专家的专长。因此,将执行模块与学习模块组合的运动模板被以周详的方式使用。执行模块可借助于约束(具体而言借助于运行时和目标约束)来参数化。学习模块可使用简单的机器学习算法从几个配置生成运行时和目标约束作为执行模块的参数。学习模块本身表示引导操作员一步一步地(例如,借助于几个配置的示意性表示)通过其生成的过程。结果,即使非专家也可容易地为任务创建机器人程序,所述机器人程序在过去需要消耗时间以及终止标准或目标标准的复杂的文本编程。
借助于运动模板描述机器人的移动。运动模板包括一个或多个执行模块和学习模块。每个执行模块是原始算子(基本算子),即它不能被进一步分解,或者它由多个执行模块组成(宏算子)。在这种情况下,至少两类执行模块:控制器(德语:Regler)和路径规划器(也称为运动规划器)。路径规划器基于运行时和目标约束生成运动路径。控制器是在关节角度空间中所描述的位置控制器、在笛卡尔空间中的位置控制器、力控制器或扩展的混合位置/力控制器中的类型。控制器,或者更具体地,闭环控制器处理在运动路径的执行期间生成的运行时和目标约束。
执行模块可借助于一组运行时和/或目标约束来参数化。存储在运动模板中的运行时和目标约束优选地仅被部分地参数化。对于每个约束而言,不仅约束函数f的类型,而且约束区域R的类型也是固定的。约束函数的参数是自由的(因此,例如,用于定位约束的坐标系K或TCP的位置)。类似地,约束区域的参数(即,例如轴定向立方体的中心点、朝向和扩展)是自由的。借助于学习模块计算自由参数。
关于与用户(或者更具体而言,与作为初始化过程或示教过程的一部分的操作员)的交互的目标是被生成的配置的示意性表示,以使得用户创建用于计算执行模块的自由参数的语义上正确的配置。例如,用户必须建立与物体的接触,以便能够利用FTS进行作用力的测量。
因为运动模板被松散地限定并且独立于物体、夹持器(或更具体而言,机器人)的实际外观,所以以示意形式实现呈现。
可以以几种方式实现示意性表示:
1.用运动模板的执行的实际和/或计算机动画表示和/或在运动模板的原型示例中生成配置的过程来呈现视频。在后一种情况下各个步骤(即要生成的各个配置)被突出显示(例如通过在视频中暂停)。
2.使用对话***来逐步地引导用户通过生成配置的过程,使得用户可以撤销已经生成的配置,并且可以重复部分的过程。对于要生成的每个配置而言,示出了具有以类似于1的方式生成的配置的示意性可视化的至少一个对话框。
可基于配置Ti由学习模块来计算自由参数。在这种情况下,给出约束区域和约束函数的类型。
如果T1到Tn是用于计算约束b=(f,R)的自由参数的配置,则它保持:
1.计算f(T1),...f(Tn)。
2.指定质量函数g(Rp)>=0,其将数值分配给没有自由参数的约束区域Rp。在所讨论的工作中,g(R)=区域R的体积和表面的加权和。
3.使用非线性优化方法(例如Simplex或Rosenbrock算法)来解决以下优化问题:找到R的自由参数的值,使得关于g(R)的Rp最小,并且f(T1)到f(Tn)包括在Rp中。
使用运动模板的给定学习模块(其在一定程度上优选地被参数化)使得可以仅使用一小组配置来确定运行时和目标约束(这是导致编程时间减少的一个方面),并且同时使得可以检查工序结果(这是所需特征,或者更具体而言,特别有利于稳健的工业应用)。
与文本或基于对话的编程相比,程序员不必直接输入移动命令的参数;相反,这些参数是从前述的示教过程自动计算得到的。
每种类型的控制和每个目标***可具有将执行模块转换成可执行机器人代码的编译规则。在这样做时,目标约束的评估直接在机器人代码中建模。运行时约束被模拟成控制器类型的函数。在位置控制器的情形下,仅调整影响机械臂的位置或关节角度的运行时约束(例如,使用上述方法)。在力控制器的情形下,调整测得的FTS值的运行时约束。在混合位置/作用力控制的情形下,考虑位置和FTS值的运行时约束。同时,分析约束区域R来确定受作用力或位置控制的空间轴。在大于阈值的特定空间轴的延伸被评估为无限延伸。具有无限延伸的空间轴在位置约束中不受位置控制,并且在力约束中不受作用力控制。
本发明的方法和/或本发明的***和/或它们的各种有利的实施例构成了传统示教的扩展,以包括需要考虑偏差的机器人程序。结果是可执行程序,所述可执行程序不仅包括(如在示教的情况下的)移动命令,而且其中移动命令仍优选地具有运行时和目标约束。集成控制算法根据控制器的类型来改变机器人移动,以便遵守运行时约束并实现目标约束。因此,上述可能的有利实施例使得具有在其它情况下可手动创建的控制策略,且随后仅借助基于对话的或文本编程以非常耗时的方式创建机器人程序变得简便。
因此,可能的处理步骤包括:基于模板的示教配置、计算运行时和目标约束、计算原型运动路径、利用运行时和目标约束映射到控制过程,以及编译以便生成机器人代码。
上述替换了基于对话的或文本编程方法中的类似过程,其中程序员以编程语言开发控制过程并且手动地为手头的任务定义其参数;他创建并且参数化编程语言中的目标和终止约束。在机器人上借助于示教生成起始姿势和中间点。
相反,本发明的方法和本发明的***和/或其有利的实施例使得可以以更快的方式创建复杂的机器人程序并且同时对操作员提更少的要求,使得至今由于经济或复杂性原因还未被自动化的应用现在可以被自动化。此外,生成的部分解决方案(即参数化的运动模板的集合)可容易地被重复使用,因为它们可通过利用学习模块修改各个配置从而被容易地适配。
具体地,在定义的任务档案的情形下(例如普通的装配任务),不再需要程序员借助基于对话的或文本编程界面以耗时的方式手动地创建大量移动命令的目标和终止标准。相反,该过程被来自一组运动模板的机器人程序的简单而周详的创建(以及,另外,对每个学习模块的几个良好定义的配置的示教)所替代。所得到的机器人程序以运行时和目标约束的形式自动包括目标标准和终止标准。因此,与示教或再现相反,不必非得途经特定的路标点,而是如果满足约束的话(即,例如如果能够通过一个区域途经路标点),则可成功地执行移动,结果是执行更为灵活。另外,关于如何补偿偏差的信息以约束的形式呈现。因此,机器人程序容许对应于约束区域的扩展的偏差。
以下给出在本发明的优选实施例的上下文中使用的有利定义的一些示例。
在路径规划文献中,配置(德语:Konfiguration)是对机器人***的状态的唯一且明确的描述。因此,在当前情况下,可以给出配置作为n维实值向量,其包括以下信息:
在机器人***中的所有可控和不可控自由度的值(即,六轴工业机器人中的六个关节角度值)
安装在机器人上的工具中的所有可控和不可控的自由度的值(即,电动夹爪夹持器的夹爪夹持器位置的值)
安装在机器人上的传感器的所记录的传感器数据的值,即在六维力与扭矩传感器的情况下,在空间方向x、y和z上测得的力的三个值,以及在空间方向x,y和z上测得的扭矩的三个值
时间点t的值
配置空间(德语:Konfigurationsraum)是可占据机器人***的所有配置的集合。在这种情况下,导致机器人的自身碰撞的物理边界约束被忽略(诸如可控的关节角度位置)。如果配置由n个坐标组成并且每个坐标可假定在Li和Ui之间的值,则配置空间被定义成具有维度n和边缘长度Ui-Li以及中心点(Li+Ui)/2的超立方体。
运动路径(运动)可被指定为函数b,其将配置分配给从0到1的闭合间隔中的每个点并且是连续的。在点0处的b的值是起始配置。在点1处的b的值是目标配置。因此,运动路径是配置空间中的连续连接。
约束(德语:Bedingung)可被指定为将0或1的值分配给配置k的函数g。当且仅当g(k)=1时,在配置k中认为约束g被满足。否则,约束未得到满足。
可将运行时约束(德语:
Figure GDA0001864823090000191
)指定成时间相关约束。也就是说,它为每个时间点t定义一个约束。它应用于大于或等于0且小于1的点处的运动路径的值。当且仅当对于所有t>=0且t<1,g(t)(b(t))=1时,运动路径b上的运行时约束g(t)得到满足。
目标约束(德语:Zielbedingung)可被指定成应用于运动路径的点1处的值的约束。当且仅当g(b(1))=1时,运动路径b上的目标约束g得到满足。
基于约束的移动描述(即基于约束的运动表示)可被定义成一组运行时约束和一组目标约束。如果满足运动路径上的所有运行时约束和所有目标约束,则运动路径满足基于约束的移动描述。
在使用运行时和目标约束来执行机器人移动的过程中,可按如下生成运动路径,例如:通过使用运动规划和/或通过使用控制。在运动规划的情形下,运动路径在机器人上的执行之前生成。在控制的情形下,在执行期间借助于控制算法生成运动路径。在这样做时,起始配置是恒定的并且对应于移动的开始。目标配置始终是其中机器人发现自己处在当前时间的当前配置。结果,使用控制算法生成的路径稳定地增长。如果满足针对运动路径给出的所有运行时和目标约束,则机器人成功地执行移动。机器人将以遵守运行时约束的方式使其移动符合控制算法。一旦满足目标约束,移动就被成功地终止。否则,执行是不成功的。
附图说明
现在,存在用于以有利的方式设计和进一步开发本发明的示教的各种附加的选项。为此,一方面参考本发明的权利要求书,另一方面参考以下参考附图对本发明的其他优选示例性实施例的解释。一般地,结合参考附图对本发明的优选示例性实施例的说明来解释所述示教的优选实施例和进一步的开发。附图示出:
图1人将如何手动创建机器人程序以便通过机器人完成将螺钉设置到可预定的扭矩的示例的示意图(现有技术)。
图2示出了本发明的方法或***的实施例的示意图,其中指示运动模板的分层结构(尤其是在编译过程期间)。
图3根据本发明的方法或***的示例性实施例的运动模板的结构以及参数的示意图。
图4根据本发明的方法或***的示例性实施例的编程过程的示意图。
图5根据本发明的方法或***的示例性实施例,通过示教来对(具体而言,具有运行时和目标约束的)机器人程序进行编程的各个组件的示意图。
图6至10根据本发明的用于记录由操作员生成的对拧紧操作的配置的方法或***的示例性实施例的初始化过程或者更具体而言示教过程的示意图。
图11用于本发明的方法或***的示例性实施例的示例性目标区域的示意图。
图12根据本发明的方法或***的示例性实施例的用于操作员生成要示教或更具体而言要记录的配置的图形指令的示例,以及
图13根据本发明的方法或***的示例性实施例,借助用于生成运动模板的参数的学习模块的初始化过程或者更具体而言示教过程的事件顺序的示意图。
具体实施方式
图1至图12包括常见应用的示例,即通过机器人将螺钉拧紧进工件达特定扭矩的机器人的编程。
图1示出了的示例性机器人程序1的示意图,其中人根据现有技术将手动创建机器人程序1,以利用机器人将螺钉拧紧到可预定的扭矩。在该具体示例中,根据图1,机器人程序1包括指令或机器人命令,所述指令或机器人命令旨在用于(具体而言,以人将必须在当前手动地编程或创建它们的方式)执行/做所述任务。这些框是具有参数的各个机器人命令。P1、P2、P3和P4是优选地由程序员手动地集成进程序中作为参数的示教点。SENSOR[2]读取机器人上的力/扭矩传感器的Z值;SENSOR[5]读取绕Z的扭矩。OUT[0]=1或0启用或停用机器人上的螺丝刀。
在图1中作为示例示出的机器人程序1包括以下程序指令PA1至PA14:
PA1:快速移动到螺钉上方的起始位置P1
PA2:用螺丝刀推进到P2,即螺钉上方2mm
PA3:只要在Z方向上测得的作用力值小于2牛顿
PA4:相对于工具中心点在Z方向上移动1mm
PA5:循环结束
PA6:启用螺丝刀
PA7:在P4中保存当前工具中心位置
PA8:启用作用力控制并在Z方向上调整5N
PA9:只要位置变化小于1cm,并且绕Z轴测得的扭矩值小于10Nm
PA10:等待一个时间间隔
PA11:循环结束
PA12:如果扭矩值至少为10Nm,则拧紧成功
PA13:停用螺丝刀
PA14:从位置P3处的拧紧的螺钉离开
根据图1的示例,程序员(或更具体而言,个人)必须考虑(或更确切地说,选择)程序的结构和各个参数(诸如“<2”、“<0.01”、“<10”等等)。示教面板允许程序员途经中间点并将它们(具体而言,点P1到P4)***程序。需要大量的努力来定义程序的结构并定义各种终止标准。
图2示出了本发明的方法或***的示例性实施例的示意图,其中指示了运动模板2(“拧紧”)的分层结构(尤其是在编译过程期间)。因此,图2示出了如何能够在没有文本编程的编译过程中从运动模板逐步自动生成机器人程序源代码。通常,生成的源代码不恰好对应于人将要写入/创建的内容。在图2中,出于简化的目的已假设了这种情况。
在图2中右侧示出的运动模板2由多个执行模块3组成。原则上,每个执行模块3可依次包括运动模板或者一个或多个执行模块4(分层表示)。此特征允许子例程被表示和重用。
在最底层存在不会被进一步分解的执行模块。包括机器人程序典型的命令(诸如例如控制器的输入/输出)。与编译过程相关的是所使用的执行模块控制器。类型指代控制器的类型,具体而言是位置控制、作用力控制、或混合的位置/作用力控制。Ri和Gi分别是运行时约束和目标约束。以这样的方式来实现每种类型的控制器,使得运行时约束Ri要被遵守并且目标约束Gi将被实现。针对该层的执行模块以及运行时和目标约束的类型,保存关于如何将这些约束映射到每个目标机器人控制器的可执行机器人程序源代码的规则。在计算所有参数之后,应用这些规则以便生成可执行源代码。
图3示出了根据本发明的方法或***的示例性实施例的运动模板2(“拧紧”)的结构和参数的示意图。运动模板2包括执行模块3、关于执行模块3的序列的结构信息(参见图中的连接上的箭头)和学习模块5。执行模块3可分层地包括附加的执行模块(或优选地,运动模板)。
运动模板2的参数T1至T6是各种配置,配置包括或包含机器人***中的可变自由度(优选地,所有可变自由度)(例如,机械臂位置、夹持器位置)、传感器数据(例如,力/扭矩测量)和CAD模型上的参考点(例如,3D模型上的接触点)。
执行模块的结构反映从其生成并对应于实际执行顺序的机器人程序源代码的执行顺序。
学习模块根据其结构来执行,并且根据配置T1-Tn计算执行模块的参数(即,具体而言,运行时约束Ri和目标约束Gj)。在该上下文中,B.f表示约束B的约束函数;而B.R表示约束B的约束区域。
在该具体示例中,根据图3所示的示例性实施例,运动模板2(“拧紧”)可由执行模块3(即MoveToState、MoveToContact、FastenScrew和Depart)组成。一般来说,执行模块3的参数是运行时约束(Ri)和目标约束(Gi)。这些运行时和目标约束借助学习模块的预定义函数逐步地计算。
图3中的执行模块MoveToState只有一个目标约束G1。该目标约束具有关节角度约束类型的约束函数f(即,对于配置k,f(k)是由机器人的所有关节角度值组成的实值向量),以及球体类型的约束区域R,所述约束区域R具有对应于螺钉上方的示教配置T1的中心点和对应于机器人关节位置传感器的不准确性的半径(例如0.0001弧度)。
MoveToState在内部由路径规划执行模块“运动规划器”(见图2)和控制器执行模块“控制器”组成。路径规划执行模块利用定义的路径规划过程计算从起始配置到满足目标约束G1的配置的运动路径P1(即,除了机器人关节位置传感器途经示教配置T1的不准确性之外)。然后,当由机器人关节位置传感器测得的最后配置满足目标约束时,使用位置控制器类型的控制器执行计算出的运动路径并且取得成功。结果,机器人从当前配置移动到其中螺丝刀位于螺钉上方的配置。
根据图3,执行模块MoveToContact具有运行时约束R1和目标约束G2和G3。它由一个路径规划执行模块和两个控制执行模块组成。运行时约束R1描述了从螺钉上方的配置到其中螺丝刀与螺钉接触的配置的线性移动。约束函数是相对于恰好对应于起始配置中的TCP位置的坐标系限制TCP的位置约束函数。约束区域是通过初始化过程中示教的配置T1、T2和T3计算的立方体。这意味着,螺钉方向上的延伸在长度上对应于从螺钉上方的配置(T1)行进至与螺钉接触的配置(T2和T3)的路径。与其正交的延伸对应于从T1到T2和T3已向人示教的线性移动的偏差。G2是具有与R1相同的约束函数但是具有不同约束区域的定位约束。约束区域是具有最小扩展的立方体,并且包括T2和T3处的约束函数的值。
具有运行时和目标约束的执行模块的统一、复杂的参数化使得提供用于从示教的配置生成这些参数的统一的机器学习方法成为可能。
运动模板2的学习模块5的目标是从几个配置创建以运行时和目标约束的形式给出的执行模块3的参数。由于能够通过多个直观的输入通道生成配置,所以最终结果是比文本编程方法简单得多的编程方法,其在功能上能够生成相当的机器人程序(具有终止标准和控制器)。与本领域已知的常规方法相比的优点在于产生相对复杂的机器人程序所需的最小数量的配置(或甚至机器学习文献中的训练示例)。通过存储用于在动作描述早期,尤其是在运动模板的描述中计算运行时和目标约束的自由参数的显式规则,使得这一方面成为可能。在当前情况下,这些规则被表示成在学习模块5中执行的各个处理步骤。
在学习模块中定义一组处理步骤;并且这些处理步骤中的每一个基于一组配置来计算运行时或目标约束(参见图3中的T1到T6)。然后,这些运行时和目标约束被用作执行模块的输入。
根据图3的示例,执行模块MoveToContact具有三个参数(即运行时约束R1和目标约束G2和G3)。R1是具有圆柱类型的约束区域的定位约束。通过配置T1、T2和T3计算R1的自由参数(即圆柱的中心点的定位,其高度和半径)。为此,将约束函数f应用于具有结果R1.f(T1)、R1.f(T2)和R1.f1(T3)的T1、T2和T3。同时,所应用的函数圆柱(A1,A2,An)使用优化算法计算从向量A1到An的约束区域的自由参数。计算出的圆柱近似于TCP在到接触点的路径上必须执行的移动。
根据本发明方法的示例性实施例的方法,大多数结构借助于运动模板的执行模块来产生。终止标准是在通过示教的配置计算的运行时和目标约束的帮助下自动定义的。
图4示出了根据本发明的方法或***的示例性实施例的编程过程的列表。编程过程包括以下子步骤TS1到TS6:
TS1:将运动模板***整个程序
TS2:执行学习模块
TS3:向用户查询以生成关键配置
TS4:执行计算运行时和目标约束的规则
TS5:执行路径规划以基于运行时和目标约束来计算路径
TS6:编译成可执行的机器人程序源代码
图5示出了所采用的组件的可视化。操作员6直接在机器人7上并且借助计算机/PC8(在CAD模型上的各点处)生成配置。机器人7具有一个或多个传感器9和螺丝刀10,以感知周围区域(例如,作用力或以视觉方式)。在计算机/PC 8的帮助下,为机器人控制器11创建源代码;并且该源代码能够在所述控制器上或在机器人7上运行。
图6、图7、图8、图9和图10示出了由操作员生成并且旨在用于根据图5所示的应用领域对机器人7进行编程以用于拧紧的构造T1-T6的可视化。
图6示出了过程的开始(即初始化过程,或者更具体而言,示教过程),其中在这种情况下机器人7以这样的方式被编程,使得螺钉12通过包括传感器9和螺丝刀10的机器人7被拧紧到工件13中,以便执行工作操作。
根据图7,操作员将螺丝刀10直接引导到螺钉12上方而不发生接触,从而记录配置T1。通过配置T1计算具有预定义类型的约束函数f=关节角度约束函数,以及约束区域类型R=球体的目标约束G1。函数球体根据质量标准计算包围配置T1的最佳球面。
G1.R=Sphere(G1.f(T1))
目标约束G1意味着机器人将精确地采取该机械臂位置。
根据图8,操作员引导机器人7来与螺钉12相接触。操作员记录两个冗余配置T2和T3。两个(也可能更多个)配置被用来计算在移动以与螺钉接触的过程中的作用力的目标约束G3。约束函数的类型是作用力约束函数,其中工具中心点TCP在螺丝刀10的尖端中,并且坐标***恰好等于在起始配置中的TCP的定位(即T2)。约束区域的类型是立方体。
函数立方体基于T2和T3的约束函数的值(即测得的力转换进TCP)来计算G3的约束区域:
G3.R=Cube(G3.f(T2),G3.f(T3))
另外,通过先前的配置T1和T3之间的不同来计算移动的方向,并且将其存储为运行时约束。即,机器人7必须在所示教的方向上移动。
针对T1、T2和T3中的约束函数的值,函数圆柱计算包含这些值的最优圆柱。在这种情况下,R1.f是定位约束函数。
R1.R=Cylinder(R1.f(T1),R1.f(T2),F1.f(T3))
以类似的方式计算目标约束G2。然而,约束区域的类型是立方体。
G2.R=Cube(G2.f(T2),G2.f(T3))
G2被用来计算到接触点的移动。当执行时,如果满足G3,则执行计算出的移动并成功地终止。
根据图9,操作员启用螺丝刀10,拧紧螺钉12并停止螺丝刀10。操作员重复该过程并且两个冗余配置T4和T5的每一个都在移动结束时***作员保存。
先前配置T2和新配置T4被用来以类似于R1的方式计算针对螺钉移动的运行时约束:
R2.R=Cylinder(R2.f(T2),R2.f(T4))
即,一旦螺钉12较操作员已经示出的移动得更远,则移动被终止。
另外,计算螺丝刀10应施加到螺钉12的作用力的运行时约束。该过程类似于G3:
R3.R=Cube(R3.f(T4),R3.f(T5))
相同的配置被用来计算目标约束。即,如果扭矩在操作员所示教的扭矩的范围之内,则移动是成功的。该计算以类似R3的方式执行,但是具有扭矩约束函数:
G4.R=Cube(G4.f(T4),G4.f(T5))
根据图10,操作员移动机器人7远离螺钉12至配置T6。先前配置T5和配置T6被用来以类似于G2的方式计算目标约束:
G5.R=Cube(G5.f(T5),G5.f(T6))
即,机器人7将作对应于从T5到T6的距离的向上的相对移动。通过这么做,机器人7从螺钉12移开一段安全的距离。
图11示出了用于本发明的方法或***的示例性实施例的目标约束的作用力约束函数的示例性约束区域的示意图。
图11类似于来自图8的记录步骤用来计算
G3.R=Cube(G3.f(T2),G3.f(T3))
上述计算建立在配置T2和T3的基础之上。在配置T2和T3中,关于机器人7的所有相关信息在示教发生时被保存,因此也保存了测得的作用力值。对于目标约束G3,函数f和约束区域R被储存在具有仍须被确定的自由参数的学习模块中。在这种情况下,f是作用力约束函数,其被定义成在工具中心点(TCP)处,在当前情况下,在相对于参考坐标系F1的螺丝刀10的端点处(在本情况下等于工具中心点)测得的作为3维向量(fx fy fz)测得的作用力。针对T2和T3计算f的两个值,即f(T2)和f(T3)。
在该示例中,约束区域R具有约束区域类型:球体,即具有中心点M和半径的球体。它使用函数sphere()通过T2和T3中的约束函数的两个值来计算。结果,计算出的半径恰好对应于机器人自身在控制过程期间可允许的示教作用力值的平均值的偏差。因此,操作员可借助合适的配置来增强执行的稳健性。
图12示出了根据本发明的方法或***的示例性实施例的用于操作员或者用户生成要示教,或者更具体而言,要记录的配置的图形指令14的示例。在特定情况下,在示教过程中向操作员/用户示出了图形指令的示例。操作员获得在类似应用中(在2D或3D中)要示教(或更具体而言,要记录)的,并且优选地被引导来逐步通过初始化过程的配置的原型示例。
图13示出了根据本发明的方法或***的示例性实施例,借助用于生成运动模板的参数的学***坦表面17相接触。出于此目的,采用已被描述的执行模块MoveToContact。在接触时,机器人执行螺旋移动18,并且在这么做时机器人在表面上施加作用力。如果螺旋经过孔16,则物体15滑入孔16中。一旦物体15已滑入孔16至少最小(min)并且至多最多(max)毫米(即由目标约束表示的状态),该移动就被终止。
a)操作员依次示出限定孔16周围区域的4种构造。操作员演示限定区域的三种其他构造,其中物体15将移动到孔16中(参见图13a)。
b)前四种配置被用来以类似于图2的方式为MoveToContact生成一个运行时约束和两个目标约束。所生成的具有约束区域立方体的类型的目标约束被用来生成逐步的螺旋运动(参见图13b)。例如,使用主成分分析来计算具有最大延伸的两个空间方向。使用用于生成螺旋(例如,阿基米德螺线)的算法来生成并缩放螺旋,使得其处在两个最大延伸之内(参见图13d)。
c)最后两个配置被用来计算位置约束函数类型的目标约束和约束区域类型圆柱(类似于图9),参见图13c。
d)如果满足根据图13c的目标约束(即,物体已经滑入孔中),则机器人在螺线上移动并成功地停止移动。
关于本发明方法和本发明***的其它有利实施例,分别参考说明书的一般部分和所附权利要求,以避免重复。
最后,明确指出,本发明方法和本发明***的上述示例性实施例分别仅用于阐明所要求保护的示教,而不是将示教限于示例性实施例。
参考标记和符号列表:
1 机器人程序
2 运动模板
3 执行模块
4 执行模块
5 学习模块
6 操作员
7 机器人
8 计算机
9 传感器
10 螺丝刀
11 机器人控制器
12 螺钉
13 工件
14 图形指令
15 物体
16 孔
17 表面
18 螺旋移动
M 中心点
F1 参考坐标系
PA1-PA14 程序指令
TS1-TS6 子步骤

Claims (27)

1.一种用于对机器人进行编程的方法,其中要由机器人执行的移动借助于预定义的运动模板由机器人程序来设置,
其中所述运动模板从包括多个运动模板的数据库中选择,
其中所述运动模板包括一个或多个可参数化的执行模块以及至少一个学习模块,
其中所述一个或多个执行模块用于规划和/或执行所述机器人移动或所述机器人移动的部分移动,
其中所述学习模块在初始化过程中记录所述机器人的多个配置,
其中所述学习模块基于所记录的配置来计算用于所述一个或多个执行模块的参数,
其中所述一个或多个执行模块的参数包括约束,其中所述机器人移动或所述机器人移动的部分移动是基于所述约束来规划和/或执行的,以及
其中约束包括约束函数f和约束区域R,其中所述约束函数f将配置k映射到向量空间中,其中所述约束区域R对应于向量空间的子集,并且其中如果f(k)位于R中,则针对配置k的约束得到满足。
2.如权利要求1所述的方法,其特征在于,使用以下类型中的一个或多个作为约束函数f的类型:
所述机器人的关节或所述机器人的末端执行器的角度、速度和/或加速度;
所述机器人的工具中心点相对于坐标系的位置、定向和/或定位;
相对于坐标系在工具中心点测得的速度、角速度和/或扭转;
相对于坐标系在工具中心点测得的力、扭矩和/或力旋量;
在不碰撞情况下从一个CAD模型到另一个CAD模型的距离大小和/或距离向量;
所述机器人和CAD模型的末端执行器的抓握等级。
3.如权利要求2所述的方法,其特征在于,所述末端执行器是夹持器。
4.如权利要求1至3中任一项所述的方法,其特征在于,能够用于约束区域R的类型包括轴对齐边界框、定向边界框、圆柱、圆锥、球体、凸包、CAD模型、或逻辑、与逻辑和/或乘积形成,其中所述或逻辑、与逻辑和乘积形成将至少两个约束区域组合成单个约束区域。
5.如权利要求1至3中任一项所述的方法,其特征在于,所述一个或多个执行模块的参数包括作为约束的运行时约束,其中运行时约束是定义了对于可预先确定的时间点间隔要满足的约束的时间相关约束。
6.如权利要求1至3中任一项所述的方法,其特征在于,所述一个或多个执行模块的参数包括作为约束的目标约束,所述目标约束是定义了对于时间点的间隔上限或所述时间点的可预先确定的间隔要满足的约束的约束。
7.如权利要求5所述的方法,其特征在于,所述一个或多个执行模块以遵守所述运行时约束的方式根据控制算法来调适所述机器人移动或所述机器人移动的部分移动。
8.如权利要求6所述的方法,其特征在于,当所述目标约束得到满足时,所述机器人移动或所述机器人移动的部分移动被成功地终止。
9.如权利要求1至3中任一项所述的方法,其特征在于,基于对所述运动模板的所述一个或多个执行模块的约束,使用路径规划算法来计算运动路径。
10.如权利要求1至3中任一项所述的方法,其特征在于,所述一个或多个执行模块的参数包括运行时约束和/或目标约束作为所述约束。
11.如权利要求10所述的方法,其特征在于,基于对所述运动模板的所述一个或多个执行模块的所述运行时约束和/或目标约束,使用路径规划算法来计算运动路径。
12.如权利要求1至3中任一项所述的方法,其特征在于,所述一个或多个执行模块通过编译被映射到目标***。
13.如权利要求12所述的方法,其特征在于,所述一个或多个执行模块通过编译被映射到机器人控制器。
14.如权利要求1至3中任一项所述的方法,其特征在于,在所述初始化过程中,所要记录的配置能够由用户借助各种接口来生成。
15.如权利要求14所述的方法,其特征在于,在所述初始化过程中,所要记录的配置能够由用户借助于通过所述用户手动地引导所述机器人和/或借助于在3D模拟环境中的鼠标交互来生成。
16.如权利要求1至3中任一项所述的方法,其特征在于,用户的交互在所述初始化过程中实现,其中向所述用户提出问题和/或指令以便生成要记录的配置。
17.如权利要求1至3中任一项所述的方法,其特征在于,所述一个或多个执行模块以这样的方式分层地构建,使得执行模块被设计成原始算子或者所述执行模块由至少一个执行模块和/或至少一个运动模板构成。
18.如权利要求1至3中任一项所述的方法,其特征在于,所述机器人包括机械臂。
19.如权利要求1至3中任一项所述的方法,其特征在于,所述学习模块以示教过程的形式在初始化过程中记录所述机器人的一个或多个配置。
20.如权利要求1至3中任一项所述的方法,其特征在于,所述学习模块使用机器学习方法基于所记录的配置来计算用于所述一个或多个执行模块的参数。
21.一种用于对机器人进行编程的***,其中要由机器人执行的移动借助于预定义的运动模板由机器人程序来设置,
其中所述运动模板从包括多个运动模板的数据库中选择,
其中所述运动模板包括一个或多个可参数化的执行模块以及至少一个学习模块,
其中所述一个或多个执行模块用于规划和/或执行所述机器人移动或所述机器人移动的部分移动,
其中所述学习模块在初始化过程中记录所述机器人的多个配置,
其中所述学习模块基于所记录的配置来计算用于所述一个或多个执行模块的参数,
其中所述一个或多个执行模块的参数包括约束,其中所述机器人移动或所述机器人移动的部分移动是基于所述约束来规划和/或执行的,以及
其中约束包括约束函数f和约束区域R,其中所述约束函数f将配置k映射到向量空间中,其中所述约束区域R对应于向量空间的子集,并且其中如果f(k)位于R中,则针对配置k的约束得到满足。
22.如权利要求21所述的用于对机器人进行编程的***,其特征在于,要由所述机器人执行的移动由机器人程序来设置。
23.如权利要求21所述的用于对机器人进行编程的***,其特征在于,所述机器人包括机械臂。
24.如权利要求21所述的用于对机器人进行编程的***,其特征在于,所述***被设计用于执行如权利要求1至20中任一项所述的方法。
25.如权利要求21所述的用于对机器人进行编程的***,其特征在于,所述学习模块以示教过程的形式在初始化过程中记录所述机器人的一个或多个配置。
26.如权利要求21所述的用于对机器人进行编程的***,其特征在于,所述学习模块使用机器学习方法基于所记录的配置来计算用于所述一个或多个执行模块的参数。
27.一种存储有程序代码的计算机可读存储介质,所述程序代码提供和/或执行如权利要求1至20中任一项所述的用于对机器人进行编程的方法。
CN201580029953.3A 2014-06-03 2015-05-15 用于对机器人进行编程的方法和*** Active CN106457565B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE102014210525.0 2014-06-03
DE102014210525 2014-06-03
DE102015204641.9A DE102015204641B4 (de) 2014-06-03 2015-03-13 Verfahren und System zur Programmierung eines Roboters
DE102015204641.9 2015-03-13
PCT/DE2015/200313 WO2015185049A1 (de) 2014-06-03 2015-05-15 Verfahren und system zur programmierung eines roboters

Publications (2)

Publication Number Publication Date
CN106457565A CN106457565A (zh) 2017-02-22
CN106457565B true CN106457565B (zh) 2020-06-23

Family

ID=54481690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580029953.3A Active CN106457565B (zh) 2014-06-03 2015-05-15 用于对机器人进行编程的方法和***

Country Status (7)

Country Link
US (1) US10279476B2 (zh)
EP (1) EP3013537B2 (zh)
JP (1) JP6580602B2 (zh)
KR (2) KR20160149290A (zh)
CN (1) CN106457565B (zh)
DE (1) DE102015204641B4 (zh)
WO (1) WO2015185049A1 (zh)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120364B2 (en) * 2015-03-27 2018-11-06 GM Global Technology Operations LLC Self-corrective nut running for robotic applications
FR3035961B1 (fr) * 2015-05-04 2020-12-25 Commissariat Energie Atomique Procede, programme d'ordinateur et systeme pour la commande d'un deplacement d'un agent navigant dans un environnement organise en reseau
KR101764120B1 (ko) * 2016-11-21 2017-08-14 한국과학기술정보연구원 3d 모델링 기반 삽입력과 이탈력 해석 방법 및 그 장치
JP6534126B2 (ja) * 2016-11-22 2019-06-26 パナソニックIpマネジメント株式会社 ピッキングシステム及びその制御方法
JP6438450B2 (ja) * 2016-11-29 2018-12-12 ファナック株式会社 レーザ加工ロボットの加工順序を学習する機械学習装置、ロボットシステムおよび機械学習方法
JP6877192B2 (ja) * 2017-03-03 2021-05-26 株式会社キーエンス 画像処理装置、画像処理方法、画像処理プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP6577527B2 (ja) * 2017-06-15 2019-09-18 ファナック株式会社 学習装置、制御装置及び制御システム
JP6619395B2 (ja) 2017-07-12 2019-12-11 ファナック株式会社 ロボットシステムおよびロボットの教示方法
EP3428754B1 (de) * 2017-07-13 2023-02-15 Siemens Aktiengesellschaft Verfahren zum einrichten eines bewegungsautomaten und einrichtungsanordnung
CN110914022B (zh) * 2017-08-10 2023-11-07 罗伯特·博世有限公司 直接教导机器人的***和方法
US10828775B2 (en) * 2017-09-26 2020-11-10 Siemens Aktiengesellschaft Method and system for automatic robot control policy generation via CAD-based deep inverse reinforcement learning
KR101948558B1 (ko) * 2017-09-28 2019-02-18 김종태 손으로 조작하여 프로그래밍 가능한 모듈러 로봇
CN107617877B (zh) * 2017-10-13 2019-05-10 湘潭大学 一种多机器人装配单元及其优化方法
CN109895089A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人移动监测装置
CN109895135A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人控制装置
CN109895087A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人交互***
US10800040B1 (en) * 2017-12-14 2020-10-13 Amazon Technologies, Inc. Simulation-real world feedback loop for learning robotic control policies
US10792810B1 (en) * 2017-12-14 2020-10-06 Amazon Technologies, Inc. Artificial intelligence system for learning robotic control policies
US10926408B1 (en) 2018-01-12 2021-02-23 Amazon Technologies, Inc. Artificial intelligence system for efficiently learning robotic control policies
EP3518059B1 (de) 2018-01-24 2020-04-01 Siemens Aktiengesellschaft Verfahren zur rechnergestützten benutzerassistenz bei der in-betriebnahme eines bewegungsplaners für eine maschine
DE102018203078B3 (de) * 2018-03-01 2019-05-09 Kuka Deutschland Gmbh Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie und zugehöriges Computerprogrammprodukt
US11084169B2 (en) * 2018-05-23 2021-08-10 General Electric Company System and method for controlling a robotic arm
JP7028092B2 (ja) * 2018-07-13 2022-03-02 オムロン株式会社 把持姿勢評価装置及び把持姿勢評価プログラム
JP6826076B2 (ja) * 2018-07-17 2021-02-03 ファナック株式会社 自動経路生成装置
DE102018214417B3 (de) * 2018-08-27 2019-07-25 Volkswagen Aktiengesellschaft Verfahren zur Programmierung eines Roboters sowie Recheneinrichtung und Computerprogramm
CN109032571A (zh) * 2018-08-28 2018-12-18 苏州艾利特机器人有限公司 一种机器人工艺程序生成方法
DE102018218081A1 (de) * 2018-10-23 2020-04-23 Robert Bosch Gmbh Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems
JP7184595B2 (ja) * 2018-10-29 2022-12-06 オークマ株式会社 工作機械システム
SG11202104268YA (en) * 2018-11-16 2021-05-28 Liveperson Inc Automatic bot creation based on scripts
US20200160210A1 (en) * 2018-11-20 2020-05-21 Siemens Industry Software Ltd. Method and system for predicting a motion trajectory of a robot moving between a given pair of robotic locations
WO2020132903A1 (zh) * 2018-12-25 2020-07-02 深圳配天智能技术研究院有限公司 机器人程序指令编译方法、机器人控制***及存储装置
DE102019201045B4 (de) * 2019-01-28 2020-11-26 Robert Bosch Gmbh Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Aktion oder Trajektorie eines Roboters
CN113196193A (zh) * 2019-02-13 2021-07-30 Abb瑞士股份有限公司 用于管理机器人程序的方法和装置
US11904202B2 (en) 2019-03-11 2024-02-20 Rom Technolgies, Inc. Monitoring joint extension and flexion using a sensor device securable to an upper and lower limb
US11541274B2 (en) 2019-03-11 2023-01-03 Rom Technologies, Inc. System, method and apparatus for electrically actuated pedal for an exercise or rehabilitation machine
CN110216670B (zh) * 2019-04-30 2022-04-15 武汉理工大学 一种基于损失场的工业机器人自动避障方法及装置
US11433276B2 (en) 2019-05-10 2022-09-06 Rehab2Fit Technologies, Inc. Method and system for using artificial intelligence to independently adjust resistance of pedals based on leg strength
US11957960B2 (en) 2019-05-10 2024-04-16 Rehab2Fit Technologies Inc. Method and system for using artificial intelligence to adjust pedal resistance
US11904207B2 (en) 2019-05-10 2024-02-20 Rehab2Fit Technologies, Inc. Method and system for using artificial intelligence to present a user interface representing a user's progress in various domains
US11801423B2 (en) 2019-05-10 2023-10-31 Rehab2Fit Technologies, Inc. Method and system for using artificial intelligence to interact with a user of an exercise device during an exercise session
CN110162052A (zh) * 2019-05-27 2019-08-23 北京新能源汽车股份有限公司 自动驾驶决策的代码生成方法、***及车辆
US20220339787A1 (en) * 2019-07-01 2022-10-27 Kuka Deutschland Gmbh Carrying out an application using at least one robot
CN112189185A (zh) * 2019-07-31 2021-01-05 深圳市大疆创新科技有限公司 一种编程***、方法及程序执行设备
CN110533969B (zh) * 2019-08-05 2022-03-29 深圳市编玩边学教育科技有限公司 一种编程教学端及***
DE102019121889B3 (de) * 2019-08-14 2020-11-19 Robominds GmbH Automatisierungssystem und Verfahren zur Handhabung von Produkten
US11747787B2 (en) 2019-08-30 2023-09-05 Intrinsic Innovation Llc Combining transformers for robotics planning
US11577392B2 (en) 2019-08-30 2023-02-14 Intrinsic Innovation Llc Splitting transformers for robotics planning
US11071597B2 (en) 2019-10-03 2021-07-27 Rom Technologies, Inc. Telemedicine for orthopedic treatment
US11701548B2 (en) 2019-10-07 2023-07-18 Rom Technologies, Inc. Computer-implemented questionnaire for orthopedic treatment
CN110666797B (zh) * 2019-09-30 2023-01-06 东莞市李群自动化技术有限公司 一种机器人控制***及方法
US11317975B2 (en) 2019-10-03 2022-05-03 Rom Technologies, Inc. Method and system for treating patients via telemedicine using sensor data from rehabilitation or exercise equipment
US11978559B2 (en) 2019-10-03 2024-05-07 Rom Technologies, Inc. Systems and methods for remotely-enabled identification of a user infection
US11325005B2 (en) 2019-10-03 2022-05-10 Rom Technologies, Inc. Systems and methods for using machine learning to control an electromechanical device used for prehabilitation, rehabilitation, and/or exercise
US11282608B2 (en) 2019-10-03 2022-03-22 Rom Technologies, Inc. Method and system for using artificial intelligence and machine learning to provide recommendations to a healthcare provider in or near real-time during a telemedicine session
US11955221B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for using AI/ML to generate treatment plans to stimulate preferred angiogenesis
US20210127974A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. Remote examination through augmented reality
US20210134425A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. System and method for using artificial intelligence in telemedicine-enabled hardware to optimize rehabilitative routines capable of enabling remote rehabilitative compliance
US11075000B2 (en) 2019-10-03 2021-07-27 Rom Technologies, Inc. Method and system for using virtual avatars associated with medical professionals during exercise sessions
US11756666B2 (en) 2019-10-03 2023-09-12 Rom Technologies, Inc. Systems and methods to enable communication detection between devices and performance of a preventative action
US11961603B2 (en) 2019-10-03 2024-04-16 Rom Technologies, Inc. System and method for using AI ML and telemedicine to perform bariatric rehabilitation via an electromechanical machine
US20210134458A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. System and method to enable remote adjustment of a device during a telemedicine session
US11915816B2 (en) 2019-10-03 2024-02-27 Rom Technologies, Inc. Systems and methods of using artificial intelligence and machine learning in a telemedical environment to predict user disease states
US11887717B2 (en) 2019-10-03 2024-01-30 Rom Technologies, Inc. System and method for using AI, machine learning and telemedicine to perform pulmonary rehabilitation via an electromechanical machine
US11830601B2 (en) 2019-10-03 2023-11-28 Rom Technologies, Inc. System and method for facilitating cardiac rehabilitation among eligible users
US20210134432A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. Method and system for implementing dynamic treatment environments based on patient information
US11515028B2 (en) 2019-10-03 2022-11-29 Rom Technologies, Inc. Method and system for using artificial intelligence and machine learning to create optimal treatment plans based on monetary value amount generated and/or patient outcome
US12020799B2 (en) 2019-10-03 2024-06-25 Rom Technologies, Inc. Rowing machines, systems including rowing machines, and methods for using rowing machines to perform treatment plans for rehabilitation
US11955220B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for using AI/ML and telemedicine for invasive surgical treatment to determine a cardiac treatment plan that uses an electromechanical machine
US11337648B2 (en) 2020-05-18 2022-05-24 Rom Technologies, Inc. Method and system for using artificial intelligence to assign patients to cohorts and dynamically controlling a treatment apparatus based on the assignment during an adaptive telemedical session
US11282604B2 (en) 2019-10-03 2022-03-22 Rom Technologies, Inc. Method and system for use of telemedicine-enabled rehabilitative equipment for prediction of secondary disease
US11515021B2 (en) 2019-10-03 2022-11-29 Rom Technologies, Inc. Method and system to analytically optimize telehealth practice-based billing processes and revenue while enabling regulatory compliance
US11955222B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for determining, based on advanced metrics of actual performance of an electromechanical machine, medical procedure eligibility in order to ascertain survivability rates and measures of quality-of-life criteria
US12020800B2 (en) 2019-10-03 2024-06-25 Rom Technologies, Inc. System and method for using AI/ML and telemedicine to integrate rehabilitation for a plurality of comorbid conditions
US11955223B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for using artificial intelligence and machine learning to provide an enhanced user interface presenting data pertaining to cardiac health, bariatric health, pulmonary health, and/or cardio-oncologic health for the purpose of performing preventative actions
US11139060B2 (en) 2019-10-03 2021-10-05 Rom Technologies, Inc. Method and system for creating an immersive enhanced reality-driven exercise experience for a user
US11923065B2 (en) 2019-10-03 2024-03-05 Rom Technologies, Inc. Systems and methods for using artificial intelligence and machine learning to detect abnormal heart rhythms of a user performing a treatment plan with an electromechanical machine
US11282599B2 (en) 2019-10-03 2022-03-22 Rom Technologies, Inc. System and method for use of telemedicine-enabled rehabilitative hardware and for encouragement of rehabilitative compliance through patient-based virtual shared sessions
US20210142893A1 (en) 2019-10-03 2021-05-13 Rom Technologies, Inc. System and method for processing medical claims
US11069436B2 (en) 2019-10-03 2021-07-20 Rom Technologies, Inc. System and method for use of telemedicine-enabled rehabilitative hardware and for encouraging rehabilitative compliance through patient-based virtual shared sessions with patient-enabled mutual encouragement across simulated social networks
US20210134412A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. System and method for processing medical claims using biometric signatures
US11101028B2 (en) 2019-10-03 2021-08-24 Rom Technologies, Inc. Method and system using artificial intelligence to monitor user characteristics during a telemedicine session
US20210128080A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. Augmented reality placement of goniometer or other sensors
US11270795B2 (en) 2019-10-03 2022-03-08 Rom Technologies, Inc. Method and system for enabling physician-smart virtual conference rooms for use in a telehealth context
US11915815B2 (en) 2019-10-03 2024-02-27 Rom Technologies, Inc. System and method for using artificial intelligence and machine learning and generic risk factors to improve cardiovascular health such that the need for additional cardiac interventions is mitigated
US11826613B2 (en) 2019-10-21 2023-11-28 Rom Technologies, Inc. Persuasive motivation for orthopedic treatment
WO2021148129A1 (en) * 2020-01-24 2021-07-29 Siemens Healthcare Gmbh Machine-learned network for medical robot generation from configurable modules
US11691280B2 (en) 2020-01-24 2023-07-04 The Cleveland Clinic Foundation Hybrid control of a robotic system
JP7375587B2 (ja) * 2020-02-05 2023-11-08 株式会社デンソー 軌道生成装置、多リンクシステム、及び軌道生成方法
DE102020103852B4 (de) 2020-02-14 2022-06-15 Franka Emika Gmbh Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator
US11707843B2 (en) 2020-04-03 2023-07-25 Fanuc Corporation Initial reference generation for robot optimization motion planning
US11816112B1 (en) 2020-04-03 2023-11-14 Soroco India Private Limited Systems and methods for automated process discovery
US11813756B2 (en) 2020-04-16 2023-11-14 Fanuc Corporation Disassembly based assembly planning
US11717587B2 (en) 2020-05-08 2023-08-08 Robust AI, Inc. Ultraviolet cleaning trajectory modeling
US11820014B2 (en) 2020-05-21 2023-11-21 Intrinsic Innovation Llc Simulated local demonstration data for robotic demonstration learning
US11524402B2 (en) 2020-05-21 2022-12-13 Intrinsic Innovation Llc User feedback for robotic demonstration learning
US11679497B2 (en) 2020-05-21 2023-06-20 Intrinsic Innovation Llc Distributed robotic demonstration learning
US11472025B2 (en) 2020-05-21 2022-10-18 Intrinsic Innovation Llc Robotic demonstration learning device
US11534913B2 (en) 2020-05-21 2022-12-27 Intrinsic Innovation Llc Integrating sensor streams for robotic demonstration learning
US11685047B2 (en) 2020-05-21 2023-06-27 Intrinsic Innovation Llc Skill template distribution for robotic demonstration learning
US11986958B2 (en) 2020-05-21 2024-05-21 Intrinsic Innovation Llc Skill templates for robotic demonstration learning
US20230236213A1 (en) * 2020-06-05 2023-07-27 Shimadzu Corporation Automatic sample injection device
DE102020209511B3 (de) 2020-07-28 2021-08-19 ArtiMinds Robotics GmbH Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm
CN113040915B (zh) * 2021-03-12 2024-06-04 杭州柳叶刀机器人有限公司 机器人安全边界控制装置及方法、电子设备和存储介质
US12020046B1 (en) * 2021-04-02 2024-06-25 Soroco India Private Limited Systems and methods for automated process discovery
CN115056214A (zh) * 2022-04-08 2022-09-16 福州大学 一种基于3d操纵杆的工业机器人示教编程***及方法
CN115178944B (zh) * 2022-08-04 2024-05-24 广东工业大学 一种安全强化学习的狭窄空间机器人作业规划方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718229B1 (en) * 2000-11-03 2004-04-06 Smc Kabushiki Kaisha Linear actuator palletizing system and method
WO2005091090A2 (en) * 2004-03-16 2005-09-29 Abb Ab Industrial robot system, method and computer program
CN1733435A (zh) * 2004-08-09 2006-02-15 发那科株式会社 伺服工具单元的切离以及结合方法
CN101549495A (zh) * 2008-03-31 2009-10-07 上海宝信软件股份有限公司 可避免奇异点发生的机器人控制方法
CN102749919A (zh) * 2012-06-15 2012-10-24 华中科技大学 一种多足机器人平衡控制方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05127718A (ja) 1991-11-08 1993-05-25 Fujitsu Ltd マニピユレータの手先軌道自動生成装置
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JP2000218576A (ja) * 1999-02-04 2000-08-08 Toshiba Corp マニピュレータ
US7388879B2 (en) 2000-08-28 2008-06-17 Sony Corporation Communication device and communication method network system and robot apparatus
JP2002189608A (ja) * 2000-08-28 2002-07-05 Sony Corp 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置
JP2005125475A (ja) * 2003-10-24 2005-05-19 Sunao Kitamura 一回の成功試行で最良経路を学習するアーキテクチャ
DE102004032996A1 (de) * 2004-07-08 2006-02-16 Abb Research Ltd. Einfache Roboterprogrammierung
EP1824647A1 (en) * 2004-10-20 2007-08-29 Abb Research Ltd. A system and a method for programming an in¢ dustrial robot
US7643907B2 (en) * 2005-02-10 2010-01-05 Abb Research Ltd. Method and apparatus for developing a metadata-infused software program for controlling a robot
WO2006093652A2 (en) * 2005-02-25 2006-09-08 Abb Research Ltd. Method of and apparatus for automated path learning
JP5052013B2 (ja) * 2005-03-17 2012-10-17 ソニー株式会社 ロボット装置及びその制御方法
EP1724676A1 (en) * 2005-05-20 2006-11-22 ABB Research Ltd. Method and apparatus for developing a software program
DE102005033593B3 (de) 2005-07-19 2007-01-04 Hirschmann Car Communication Gmbh Kontaktfeder in einem Trägerrahmen eines Antennenverstärkers eines Fahrzeuges
DK3045273T3 (en) * 2006-03-03 2019-02-25 Universal Robots As Joint for a robot
JP2008087109A (ja) * 2006-10-02 2008-04-17 Toyota Motor Corp ロボット制御システム
US8170287B2 (en) 2007-10-26 2012-05-01 Honda Motor Co., Ltd. Real-time self collision and obstacle avoidance
JP5156836B2 (ja) * 2007-10-26 2013-03-06 本田技研工業株式会社 リアルタイム自己衝突および障害物回避
US8175749B2 (en) 2008-02-28 2012-05-08 Panasonic Corporation Control apparatus and control method for robot arm, robot, control program for robot arm, and integrated electronic circuit for controlling robot arm
DE102008063680A1 (de) 2008-10-10 2010-04-15 Abb Ag Verfahren zum Einlernen (Teachen) eines Industrieroboters sowie ein entsprechend ausgestatteter Industrieroboter
WO2011036865A1 (ja) * 2009-09-28 2011-03-31 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
DE102010012598A1 (de) * 2010-02-26 2011-09-01 Kuka Laboratories Gmbh Prozessmodulbibliothek und Programmierumgebung zur Programmierung eines Manipulatorprozesses
JP2011238104A (ja) * 2010-05-12 2011-11-24 Toyota Motor Corp 移動ロボット
JP5626775B2 (ja) * 2010-07-21 2014-11-19 住友重機械工業株式会社 支援装置および支援方法
JP2012206219A (ja) * 2011-03-30 2012-10-25 Seiko Epson Corp ロボット制御装置及びロボットシステム
US8843236B2 (en) * 2012-03-15 2014-09-23 GM Global Technology Operations LLC Method and system for training a robot using human-assisted task demonstration
US9092698B2 (en) * 2012-06-21 2015-07-28 Rethink Robotics, Inc. Vision-guided robots and methods of training them
JP5862611B2 (ja) * 2013-04-02 2016-02-16 トヨタ自動車株式会社 作業変更装置、作業変更方法、及び作業変更プログラム
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718229B1 (en) * 2000-11-03 2004-04-06 Smc Kabushiki Kaisha Linear actuator palletizing system and method
WO2005091090A2 (en) * 2004-03-16 2005-09-29 Abb Ab Industrial robot system, method and computer program
CN1733435A (zh) * 2004-08-09 2006-02-15 发那科株式会社 伺服工具单元的切离以及结合方法
CN101549495A (zh) * 2008-03-31 2009-10-07 上海宝信软件股份有限公司 可避免奇异点发生的机器人控制方法
CN102749919A (zh) * 2012-06-15 2012-10-24 华中科技大学 一种多足机器人平衡控制方法

Also Published As

Publication number Publication date
DE102015204641B4 (de) 2021-03-25
JP6580602B2 (ja) 2019-09-25
EP3013537A1 (de) 2016-05-04
JP2017520415A (ja) 2017-07-27
EP3013537B1 (de) 2016-10-12
DE102015204641A1 (de) 2015-12-03
CN106457565A (zh) 2017-02-22
KR20190105039A (ko) 2019-09-11
US10279476B2 (en) 2019-05-07
KR102126729B1 (ko) 2020-06-26
US20170190052A1 (en) 2017-07-06
EP3013537B2 (de) 2020-02-19
KR20160149290A (ko) 2016-12-27
WO2015185049A1 (de) 2015-12-10

Similar Documents

Publication Publication Date Title
CN106457565B (zh) 用于对机器人进行编程的方法和***
Fang et al. A novel augmented reality-based interface for robot path planning
Gammieri et al. Coupling of a redundant manipulator with a virtual reality environment to enhance human-robot cooperation
CN105855672B (zh) 基于示教机器人的空间圆弧插补焊接方法
Stumm et al. On-site robotic construction assistance for assembly using a-priori knowledge and human-robot collaboration
De Maeyer et al. Cartesian path planning for arc welding robots: Evaluation of the descartes algorithm
Fang et al. Orientation planning of robot end-effector using augmented reality
CN115351780A (zh) 用于控制机器人设备的方法
Haviland et al. A purely-reactive manipulability-maximising motion controller
Pan et al. RobMach: G-Code-based off-line programming for robotic machining trajectory generation
Abdelaal A study of robot control programing for an industrial robotic arm
Pichler et al. Towards robot systems for small batch manufacturing
Vidaković et al. Procedure for definition of end-effector orientation in planar surfaces robot applications
Syrjänen Task level robot programming: Background, methods and current state
Ngo et al. Model and simulation of tracking motion for accurate welding using a universal Cobot
Schütz et al. Virtual commissioning of the trajectory tracking control of a sensor-guided, kinematically redundant robotic welding system on a PLC
Vitalli Virtual Commissioning, Digital Twin and Control Strategies Applied in the Industrial Robot PUMA 560
Müller et al. Simplified path programming for industrial robots on the basis of path point projection by a laser source
Pavol et al. Path correction algorithm for spot welding robot in body-in-white applications
da Rosa et al. Design and Implementation of a Platform for Controlling the Mentor Robotic Arm
Yin Combining vision verification with a high level robot programming language
Fernando Trajectory planning for 6-DOF robot manipulator based on offline robot programming approach
Sharma Layout design and trajectory planning of robotic workcell using point cloud approach
Fratu et al. Physical Robots Programming by Imitation Using Virtual Robot Prototypes
Rocco Control of industrial robot-Motion Planning

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant