CN115997183A - 机器人手臂的目标导向控制 - Google Patents
机器人手臂的目标导向控制 Download PDFInfo
- Publication number
- CN115997183A CN115997183A CN202180045249.2A CN202180045249A CN115997183A CN 115997183 A CN115997183 A CN 115997183A CN 202180045249 A CN202180045249 A CN 202180045249A CN 115997183 A CN115997183 A CN 115997183A
- Authority
- CN
- China
- Prior art keywords
- workpieces
- operations
- series
- state
- meta
- 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
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
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- 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
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- 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
- B25J9/1669—Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
-
- 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
- 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/40395—Compose movement with primitive movement segments from database
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
提出了用于改进机器人手臂(114,600)的控制的方法和系统。所述方法包括预先定义多个元动作(120、200、210、508),其中可以包括一个或多个前提条件(122、202、204、212、214、216、504)和效果(124、222、224、226、228、506)。可以确定多个工件(108、304、306、308、310)的目标状态,以及多个工件(108、304、306、308、310)的初始状态。可以根据元动作(120、200、210、508)的前提条件(122、202、204、212、214、216、504)和/或效果(124、222、224、226、228、506),以及目标状态和初始状态,生成一系列的操作(206、208、217、218、220)。执行一系列的操作(206、208、217、218、220)能够将多个工件(108、304、306、308、310)从初始状态改变为目标状态。
Description
背景技术
多年来,机器人手臂的使用已经影响到许多行业。机器人手臂可以在功能上有所不同,从完成简单运动到执行复杂任务的能力不等,而且同一机器人手臂可以用于多种类型的任务。这种运动和任务需要对机器人手臂进行编程,以便根据指定的运动或任务以特定的序列执行动作。
发明内容
本公开提出了新的和创新的系统和方法用于控制机器人手臂的运动。在第一方面,提供了一种用于控制机器人手臂以操纵多个工件的方法,该方法包括预先定义机器人手臂的多个元动作,该多个元动作中的每一个都包括一个或多个前提条件和一个或多个效果,以及获取多个工件的目标状态。该方法可进一步包括获取多个工件的初始状态,并根据多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,生成一系列的操作。这些操作可以从多个元动作中选择,执行一系列的操作可以将多个工件从初始状态改变为目标状态。
在根据第一方面的第二方面,获取多个工件的目标状态包括识别与多个工件的目标状态相对应的原型的状态。
在根据第二方面的第三方面,原型的状态包括原型的工件之间的相对位置和相对连接。
在根据第二和第三方面中的任何一方面的第四方面,原型的状态是用视觉采集设备来识别的。
在根据第一至第四方面中的任何一方面的第五方面,获取多个工件的初始状态包括用视觉采集设备获取多个工件的初始状态。
在根据第一至第五方面中的任何一方面的第六方面,多个工件的初始状态包括多个工件的方位,以及一系列的操作是基于多个工件的方位生成的。
在根据第一至第六方面中的任何一方面的第七方面,多个工件的初始状态包括多个工件之间的相对位置和相对连接,以及一系列的操作是基于多个工件之间的相对位置和相对连接而生成的。
在根据第一至第七方面中的任何一方面的第八方面,根据多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,生成一系列的操作包括以如下方式生成一系列的操作:操作中的开始操作的每个前提条件都满足多个工件的初始状态;以及操作中的最后操作的每个效果都满足多个工件的目标状态。
在根据第八方面的第九方面,根据多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,生成一系列的操作还包括以如下方式生成一系列的操作:操作中先前的操作的一个或多个效果能够将多个工件从先前状态改变为后续状态。操作中后续的操作的一个或多个前提条件可以满足后续状态。
在根据第八至第九方面中的任何一方面的第十方面,一系列的操作是通过使用图遍历算法产生的。
在根据第一至第十方面中的任何一方面的第十一方面,方法还包括执行碰撞检查以确定一系列的操作是否可行,以及响应于确定一系列的操作不可行,基于多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,重新生成新的一系列的操作。
在根据第一至第十一方面中的任何一方面的第十二方面,方法还包括执行碰撞检查以确定一系列的操作是否可行,以及响应于确定一系列的操作是可行的,执行一系列的操作。
在第十三方面,提供了一种用于控制机器人手臂的系统,包括处理器,以及存储指令的存储器,当由处理器执行时,指令使处理器执行用于控制机器人手臂以操纵多个工件的方法。方法可以包括预先定义机器人手臂的多个元动作,多个元动作中的每一个都包括一个或多个前提条件和一个或多个效果,以及获取多个工件的目标状态;该方法可进一步包括获取多个工件的初始状态,并根据多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,生成一系列的操作。这些操作可以从多个元动作中选择,执行一系列的操作可以将多个工件从初始状态改变为目标状态。
在根据第十三方面的第十四方面,该系统还包括视觉采集设备。原型的状态可以由视觉采集设备识别,以及多个工件的初始状态可以由视觉采集设备识别。
在根据第十三和第十四方面中的任何一方面的第十五方面,多个工件的初始状态包括多个工件的方位、以及多个工件之间的相对位置和相对连接。基于多个工件的方位、以及多个工件之间的相对位置和相对连接来生成一系列的操作。
在根据第十三至第十五方面中的任何一方面的第十六方面,根据多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,生成一系列的操作包括以如下方式生成一系列的操作:操作中的开始操作的每个前提条件都满足多个工件的初始状态;以及操作中的最后操作的每个效果都满足多个工件的目标状态;以及操作中先前的操作的一个或多个效果能够将多个工件从先前状态改变为后续状态,其中操作中后续的操作的一个或多个前提条件满足后续状态。
在根据第十三至第十六方面中的任何一方面的第十七方面,方法还包括执行碰撞检查以确定一系列的操作是否可行,以及响应于确定一系列的操作不可行,基于多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,重新生成新的一系列的操作。
在第十八方面,提供了一种存储指令的非暂时性计算机可读介质,当指令由处理器执行时,使处理器执行用于控制机器人手臂以操纵多个工件的方法。方法可以包括预先定义机器人手臂的多个元动作,多个元动作中的每一个都包括一个或多个前提条件和一个或多个效果,以及获取多个工件的目标状态。该方法可进一步包括获取多个工件的初始状态,并根据多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,生成一系列的操作。这些操作可以从多个元动作中选择,执行一系列的操作可以将多个工件从初始状态改变为目标状态。
在根据第十八方面的第十九方面,根据多个元动作的一个或多个前提条件和一个或多个效果、多个工件的目标状态和初始状态,生成一系列的操作包括以如下方式生成一系列的操作:操作中的开始操作的每个前提条件都满足多个工件的初始状态;以及操作中的最后操作的每个效果都满足多个工件的目标状态;以及操作中先前的操作的一个或多个效果能够将多个工件从先前状态改变为后续状态,其中操作中后续的操作的一个或多个前提条件满足后续状态。
在根据第十八和第十九方面中的任何一方面的第二十方面,原型的状态包括原型的工件之间的相对位置和相对连接。多个工件的初始状态包括多个工件的方位、以及多个工件之间的相对位置和相对连接。基于原型的工件之间的相对位置和相对连接、多个工件的方位、以及多个工件之间的相对位置和相对连接,也可以生成一系列的操作。
这里所描述的特征和优点并非全面的,特别是,对于本领域的普通技术人员来说,根据图和描述,许多附加特征和优点是显而易见的。这里所描述的特征和优点并非全面的,特别是,对于本领域的普通技术人员来说,根据图和描述,许多附加特征和优点是显而易见的。
附图说明
图1示出了根据本公开的示例性实施例的系统。
图2A-2B示出了根据本公开的示例性实施例的元动作。
图3示出了根据本公开的示例性实施例的工件布置的视图。
图4示出了根据本公开的示例性实施例的用于组装和拆卸工件的方法。
图5示出了根据本公开的示例性实施例的用于创建和存储元动作的方法。
图6示出了根据本公开的示例性实施例的机器人手臂。
具体实施方式
当机器人手臂被编程为执行一项任务时,机器人执行的动作和机器人手臂执行动作的序列对于任务的整体执行可能极其重要。例如,当从多个部件构建一个组件时,部件的连接顺序对于确保组件的正常运行可能很重要。机器人手臂正确执行任务通常可能需要操作员根据指定任务手动编程特定动作和动作的特定序列。然而,一项任务不一定每次都相同执行。例如,部件的位置(position)变化可能会改变具体的动作和/或执行动作的序列(例如,速度、方位(location)、大小、形状等)。因此,机器人手臂可能必须被编程为在多个不同场景中执行任务可能需要的每个潜在的动作序列,和/或可能必须被编程为考虑到可能发生变化的变量。
在某些情况下,机器人手臂的正确执行也可能需要操作员。操作员可以监测机器人手臂所处环境中的条件,以确保机器人手臂在完成任务时不会受到阻碍。由于每项任务可能是唯一的,操作员可能需要不断地输入不同的指令,以防止机器人手臂的潜在错误。这可能非常困难,可能需要许多操作员定期监督操作并更改机器人手臂的编码。此外,操作员可能需要手动构建或以其他方式对机器人手臂必须执行的一系列动作进行编程,以便向机器人手臂添加新的功能(例如,处理新的工件)和/或考虑可能改变要执行的动作序列的新变量(例如,工件的新布置)。以这种方式添加功能可能会过于繁琐,因为操作员可能需要指定必须由机器人手臂来执行的动作。因此,存在着使机器人手臂能够准确和有效地构建一系列动作以完成新的任务和/或对新的环境变量作出反应的需求。
该问题的一个解决方案是配置机器人手臂,使其自动生成一系列的操作,以执行指定的任务。这些操作可以从指定机器人能够采取的动作的预定义的元动作中选择。机器人手臂可能能够选择一系列元动作来生成一系列的操作,以执行指定的任务,而不需要操作员重复构建机器人手臂在执行任务时要执行的动作。机器人手臂可以在选择元动作之前考虑多种变量。例如,机器人手臂可以与视觉传感系统通信连接,该视觉传感系统可以识别关于周围环境和可以由机器人手臂处理的工件的信息。通过考虑不同的变量,例如由视觉传感系统识别的信息和有关机器人手臂当前状态的信息,机器人手臂可以选择一系列有效的元动作来完成目标。
图1示出了根据本公开的示例性实施例的系统100。该系统100可以被配置为分析关于环境的信息,以选择一系列元动作,来生成执行指定的任务的一系列的操作。该系统100包括计算设备102,其可以被配置为在选择要执行的元动作之前处理关于一个或多个工件和周围环境的信息。
计算设备102包括处理器104,存储器105,和控制器106。计算设备102可以被配置为执行各种功能。处理器104和存储器105可以被配置为执行计算设备102的一个或多个功能。例如,存储器105可以存储指令,这些指令在由处理器104执行时,使处理器104执行计算设备102的一个或多个操作特征。存储器105还可以存储来自系统100的性能的信息,包括环境信息和系统100完成的任务的历史。计算设备102可以被配置为检测和处理关于环境的信息。例如,计算设备102和视觉传感设备116可以构成一个视觉传感系统,该系统可以识别环境中的一个或多个工件108,并且可以识别关于工件108的信息,例如工件108的位置和工件108之间的相对连接。例如,工件108可以具有指示计算设备的工件108相对于彼此的当前方向和方位的位置信息。一个工件可以连接到其他工件,并且工件108之间的连接也可以由视觉传感系统识别,使得系统100可以知道工件108是否彼此连接以及工件108之间的连接类型。关于工件108的其他信息(例如,形状、尺寸、颜色)可以由系统100的操作员输入并存储在存储器105中,使得视觉传感系统能够识别每个工件108。
工件108的信息可以通过视觉传感设备116收集。视觉传感设备116可以包括一个或多个摄像机或其他视觉传感器。可以分析来自视觉传感设备116的数据(例如,图像或其他视觉数据)以识别工件108和相关信息(例如,位置110和/或相对连接112)。视觉传感设备116可以通信地连接到计算设备102,以将关于工件108的信息发送到计算设备102,以便由处理器104处理。例如,计算设备102可以从视觉传感设备116接收图像数据,并且可以分析该图像数据以识别工件108和相关信息。视觉传感设备116还可以附接到机器人手臂114,以准确确定工件108相对于机器人手臂114的位置。此外/或者,工件108的某些相关信息可以由操作员指定(例如,操作员指定机器人手臂114被编程执行的任务)。
机器人手臂114可以被配置为根据由计算设备102选择的元动作120来执行各种任务。元动作120可以存储在数据库118中,该数据库118可以通信地连接到计算设备102和机器人手臂114。数据库118可以被配置为接收由用户创建的或从其他系统或设备传送的新元动作120。存储在数据库118中的元动作120可以指定机器人手臂114能够执行的全部或至少部分动作。每个元动作120可以包含一个或多个前提条件122,这些前提条件122是在由机器人手臂114执行元动作120之前所需要的。每个元动作120还可以包含一个或多个效果124,这些效果124表明完成元动作120对工件108和机器人手臂114的状态带来的相应变化。例如,一个示例性的元动作可能是打开夹持器。其前提条件可以包括夹持器已关闭,其效果可以包括由夹持器所夹持的物体不再由夹持器夹持。在某些实施中,机器人手臂114可以从计算设备102接收命令。例如,计算设备102可以根据从数据库中选择的元动作120向机器人手臂114提供命令。在进一步的实施中,命令可以从计算设备102通过控制器106传输到机器人手臂114,控制器106可以通信地连接到机器人手臂114。
图2A和2B描述了可以用于控制机器人手臂操作的示例性元动作200、210。元动作200可以被执行以移动工件,而元动作210可以被执行来拧入工件。特别是,元动作200、210可以是存储在数据库118中的元动作120的示例性实施,并且可以由计算设备102利用来生成一系列的操作以控制机器人手臂114的运动。元动作200、210包括前提条件202、204、212、214、216,操作206、208、218、220,以及效果222、224、226、228。例如,元动作200包含两个前提条件202、204。前提条件202、204可以指定在执行元动作200之前必须满足的一个或多个条件或状态。特别是,前提条件202可以要求机器人手臂114的夹持器当前正在抓取工件108,以及前提条件204可以要求运动路径(例如,工件108的运动路径)是无障碍的。计算设备102可以被配置为确定是否满足前提条件202、204。例如,为了确定是否满足前提条件202、204,视觉传感设备116可以通过收集和发送例如工件108的运动路径和/或机器人手臂114的夹持器的图像数据到计算设备102来确定工件108的初始状态。作为另一示例,系统100可以使用夹持器或机器人手臂114的关节中的传感器(例如,力传感器)来确定是否满足前提条件202。作为一具体示例,如果抓取力超过预定的阈值,计算设备102可以确定夹持器正在抓取工件108。在另一实施例中,计算设备102可以不需要来自视觉传感系统116或机器人手臂114的传感器的数据输入。在这样的实施例中,计算设备102可以依赖存储在存储器105中的信息。例如,由系统100执行的操作可以存储在存储器105中。计算设备102可以访问存储器105以根据先前执行的操作来确定是否满足前提条件202、204。在进一步的实施中,可以根据早期元动作的效果来验证前提条件202、204。
如果计算设备102确定所有前提条件122得到满足,则可以允许执行操作206、208。元动作200包含两个操作206、208。可能需要执行操作206、208来完成元动作200。在元动作200中,计算设备102可以允许将工件108移动到特定目的地的执行操作206。然后可以执行操作208来释放机机器人手臂114的夹持器。由于工件108已经通过操作206被移动到期望的目的地,计算设备102可以指示机器人手臂114通过释放夹持器来释放工件108。在完成元动作200后,可以产生一个或多个效果222、228。特别是,在完成元动作200之后,如效果222所示,工件108不被抓住,并且如效果228所示,工件108被移动到特定目的地。
图2B描述了第二个示例性的元动作210。元动作210演示了可由机器人手臂114执行以拧入工件108(例如,使用螺纹连接安装工件108)的操作217、218、220。元动作210包含三个前提条件212、214、216。在执行操作217、218、220之前,所有三个前提条件212、214、216都可能被要求得到满足。特别地,前提条件212可以要求机器人手臂114的夹持器当前正在抓取工件108。前提条件214要求工件108被定位在单独的母体工件上。前提条件216要求工件108的连接类型(例如,由机器人手臂114夹持的工件108和母体工件)是兼容的。为了确定是否满足前提条件216,视觉传感设备116可以收集工件108的图像数据并将其发送到计算设备102。工件108可以具有特定的连接类型。例如,工件可以具有诸如公接头和/或母接头的连接类型(例如,螺纹/螺钉连接、插头/插座连接、夹具等)。由于工件108可以具有特定的连接类型,计算设备102可能需要分析从视觉传感设备116发送的图像数据,以确定每个工件108的特定连接类型。为了满足前提条件216,计算设备102可以使用每个工件108的连接类型的信息来确定工件108是否兼容。例如,兼容工件108可以包括具有螺纹公接头的工件108和具有螺纹开口,或母接头的母体工件。不兼容工件108的示例可以包括具有螺纹公接头的工件108和具有螺纹公接头的母体工件。至少一些工件108的连接类型可以由机器人手臂114的操作员输入并预先存储在计算设备102的存储器105中,而不是使用视觉传感设备116。
如果计算设备102确定元动作210的前提条件212、214、216得到满足,则可以允许执行操作217、218、220。由于满足了前提条件212、214、216,机器人手臂114可以夹持工件108,并且工件108可以被定位在相对连接112对准和兼容的母体工件上。元动作210包含三个操作217、218、220。例如,可能需要执行操作217、218、220来完成元动作210。具体地,操作217可以要求机器人手臂114移动工件108以接触母体工件。例如,计算设备102可以指示机器人手臂114将夹持的工件108向母体工件移动,直到两个工件的连接部分接触。操作218可以包括旋转机器人手臂114的夹持器直到达到阈值扭矩水平,将工件108拧入母体工件。操作220可以包括通过机器人手臂114的夹持器释放工件108。在完成元动作210后,一个或多个效果224、226可能会出现。特别是,在完成元动作200后,工件108没有被抓取,如效果222所示,并且工件108被安装在母体工件上,如效果226所示。
在某些实施中,前提条件202、204、212、214、216以及效果222、224、226、228中的一个或两个可以作为逻辑表达式来存储。例如,前提条件202、212可以被存储为工件抓取(WorkpieceGrasped),前提条件204可以被存储为非路径阻碍(NOT PathObstructed),并且前提条件214可以被存储为工件1在工件2上方(Workpiece1 OVER Workpiece2)。作为另一示例,元动作200的效果228可以被存储为工件移动(WorkpieceMoved),元动作210的效果226可以被存储为工件1在工件2上(Workpiece1 ON Workpiece2)。
图3描述了根据本公开的示例性实施例的工件布置300的视图320、330、340。视图320可以是工件布置300的正视图,视图330、340可以分别是视图320的左侧和右侧的侧视图。工件布置300包括布置在基座302上的不同大小和尺寸的工件304、306、308、310。特别地,工件304、306直接定位在基座302上(例如,基座302是工件304、306的“母体”)。工件308定位于工件306的顶部(例如,工件306是工件308的母体),工件310定位于工件304、308上(例如,工件304、308都是工件310的母体)。工件304、306、308、310和基座302可以装配或以其他方式附接在一起(例如,通过卡扣、插入安装件等),也可以像所描述的那样定位而不附接到一起。在某些情况下,工件布置300可以被表示为逻辑表达式,例如(工件306在基座302上)&&(工件304在基座302上)&&(工件308在工件306上)&&(工件310在工件308上)&&(工件310在工件304上)。
图4示出了根据系统100的示例性实施例的方法420。可以执行方法420以控制机器人手臂114执行期望的任务。例如,可以执行该方法420以完成关于通过预定义的元动作组装或拆卸工件的目标或过程。该方法420可以在计算机系统上实现,例如系统100。该方法也可以通过存储在计算机可读介质上的一组指令来实现,这些指令在被处理器执行时,导致计算机系统执行该方法420。例如,方法420的全部或部分可以由处理器104和存储器105实现。尽管下面的示例是参照图4所示的流程图描述的,但也可以使用许多其他与图4相关的行为的执行方法。例如,一些块的顺序可以改变,某些块可以与其他块结合,一个或多个块可以重复,并且所描述的一些块可以是可选的。
该方法420可以从预定义的元动作120开始(块422)。元动作120可以存储在系统100的存储器105中。元动作120可以由计算设备102访问,以便完成目标或期望的过程。元动作120可以对应于系统100要执行的操作。如上所述,元动作120可以包括前提条件122和/或效果124。下面结合方法500更详细地讨论创建元动作。
然后,系统100可以获取工件108的目标状态(块424)。例如,目标或期望的过程可以包括一个或多个工件108的移动、重新排序或改变到目标状态。目标状态可以包括一个或多个工件108相对于其他工件108的位置和连接。目标状态可由操作员直接输入。例如,操作员可以输入工件108需要被移动到相对于彼此的特定方位和/或以相对于彼此的特定方向定位。另外,工件的目标状态可以通过使用视觉传感装置116来获取。例如,系统100可以呈现系统100必须复制的工件108的原型或特定布置。计算设备102可以指示视觉传感设备116获取工件108的图像数据,包括位置110和/或相对连接112。视觉传感设备116可以将图像数据发送到计算设备102,以便由处理器104处理。处理器104可以确定每个工件108的目标状态。关于目标状态的信息可以存储在存储器105中。在一个特定示例中,工件108的目标状态可以是工件布置300。
然后可以确定关于工件108的初始状态的数据(块426)。例如,在获取工件108的目标状态后,系统100可以呈现处于初始状态的工件108。尽管目标可能是以与目标状态相对应的特定方式移动或定位工件108,但工件108可以在与目标状态不同的方位和位置110和/或方向开始。计算设备102可以通过使用视觉传感设备116来接收关于工件108的初始状态的数据。例如,视觉传感设备116可以获取工件108的当前设置的图像数据,表示工件108的初始状态。视觉传感设备116可以将初始状态的图像数据发送到计算设备102。计算设备102可以使用处理器104处理图像数据。另外,工件108的初始状态可以由操作员输入。在目标状态是工件布置300的示例中,初始状态可以指示工件304、306、308、310都连接到基座302(例如,在彼此分开的方位处)。在某些情况下,初始状态可以包括工件108相对于彼此的方向。继续前面的示例,初始状态可以指示工件310、308垂直于工件306(而不是如在工件布置300中那样平行),并且工件304平行于工件306(而不是如工件布置300那样垂直)。
基于工件108的初始状态和目标状态,系统100可以生成相应操作的序列以完成目标并达到工件108的目标状态(块428)。一系列的操作可以进一步基于元动作120、前提条件122和效果124。例如,计算设备102可以根据工件108的目标状态和工件的初始状态来选择元动作120。特别是,计算设备102可以选择相应的操作,使得初始状态满足至少第一操作的前提条件122,并且使得一系列的操作的效果124的最终结果满足工件108的目标状态。在某些实施中,完成第一操作的效果124可能会导致后来的第二操作的前提条件122的满足。特别是,完成第一操作可以将工件108从先前状态转换到后续状态,其中先前状态不符合第二操作的前提条件122中的至少一个,而后续状态符合第二操作的每一个前提条件122。在某些实施中,可以至少部分地使用图遍历算法,如A*搜索算法或类似的算法来确定一系列的操作。特别是,这种搜索可以在元动作120的数据库118上执行,以确定一系列的操作。继续工件108的目标状态是工件布置300的示例,一系列的操作可以包括(1)拾取工件304并将其放置在靠近工件306的基座302上,(2)拾取工件308并将其放置在工件306上,以及(3)拾取工件310并将其放置在工件304、308上。
计算设备102可以执行该一系列的操作(块430)。例如,计算设备102可以按照由一系列的操作指定的顺序执行操作(例如,通过执行包括在一系列的操作中的元动作的一个或多个运动步骤)。在某些情况下,在执行一系列的操作之前,计算设备102可以对成功完成一系列的操作的可行性执行碰撞检查分析。例如,计算设备102可以分析一系列的操作以确定特定工件是否不可访问(例如,因为其他工件或设备阻止机器人手臂114访问工件108)。作为另一示例,计算设备102可以分析操作的序列以确定执行特定操作(例如移动工件108)是否会导致工件108与其他设备或工件相撞。如果计算设备102确定碰撞是可能的,或者一系列的操作在其他方面是不可行的,则可以生成新的一系列的操作(例如,通过重复块428)。
图5示出了根据系统100的示例性实施例的方法500。可以执行该方法500来编程和存储元动作508。例如,可以执行方法500以在数据库118中存储元动作,以便在方法420中使用(例如,在块422期间)。该方法500可以在计算机系统上实现,例如系统100。该方法500也可以通过存储在计算机可读介质上的一组指令来实现,该指令在被处理器执行时,导致计算机系统执行该方法500。例如,方法500的全部或部分可以由处理器104和存储器105实现。
该方法500可以从接收一个或多个运动步骤502开始。例如,计算设备102可以接收在执行元动作508时要执行的一个或多个运动步骤502。运动步骤502可以指定由机器人手臂114执行的动作和/或运动。该方法500还可以包括接收一个或多个前提条件504和一个或多个效果506。可以结合运动步骤502来接收前提条件504和效果506。例如,可以从用户接收前提条件504、效果506,和/或运动步骤502。作为具体示例,用户可以使用计算设备102或另一计算设备来创建和/或输入运动步骤502、前提条件504和效果506。
然后可以创建元动作508。例如,计算设备102可以创建包括运动步骤502、前提条件504和效果506的元动作508。然后,元动作508可以将元动作508存储在数据库510中,该数据库可以是数据库118的示例性实现。例如,计算设备102可以将元动作508传送到数据库510进行存储。此外或替代地,元动作508可以存储在计算设备102的存储器105内实施的数据库510中。
图6描述了示例性机器人手臂600。机器人手臂600可以与系统100通信地连接,并且可以是机器人114的示例性实现。机器人手臂600可以包括多个机器人臂段602和末端执行器604。末端执行器604可以包括夹持器,其中可以安装一个或多个传感器(例如,力和/或扭矩传感器)。例如,末端执行器604可以是机器人夹持器,其利用传感器来检测力和/或扭矩的变化,如上文与操作217、218相关的描述。在其他示例中,末端执行器604可以是任何其他合适的利用本公开中描述的任何合适的传感器的工具。在一些实施例中,检测力和/或扭矩变化的传感器可替代地或附加地安装在机器人臂段602的关节驱动器中。
本公开中描述的所有公开的方法和过程都可以使用一个或多个计算机程序或组件来实现。这些组件可以作为一系列计算机指令提供给任何常规的计算机可读介质或机器可读介质,包括易失性和非易失性存储器,例如RAM、ROM、闪存、磁盘或光盘、光存储器或其他存储介质。该指令可以以软件或固件的形式提供,并且可以全部或部分地在诸如ASIC、FPGA、DSP或任何其他类似设备的硬件组件中实现。该指令可以被配置为由一个或多个处理器执行,当执行该系列计算机指令时,处理器执行或促进所公开的方法和过程的全部或部分的执行。
应当理解,对这里描述的示例的各种变化和修改对于本领域技术人员来说是显而易见的。可以在不脱离本主题的精神和范围并且不减少其预期优点的情况下进行这种变化和修改。因此,所附的权利要求书涵盖了这些变化和修改。
Claims (20)
1.一种用于控制机器人手臂以操纵多个工件的方法,包括:
预先定义所述机器人手臂的多个元动作,所述多个元动作中的每一个都包括一个或多个前提条件和一个或多个效果;
获取所述多个工件的目标状态;
获取所述多个工件的初始状态;以及
根据所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,生成一系列的操作;
其中所述操作是从所述多个元动作中选择的;
其中所述一系列的操作的执行能够将所述多个工件从所述初始状态改变到所述目标状态。
2.根据权利要求1所述的方法,其中所述获取所述多个工件的所述目标状态包括:
识别对应于所述多个工件的所述目标状态的原型的状态。
3.根据权利要求2所述的方法,其中所述原型的状态包括所述原型的工件之间的相对位置和相对连接。
4.根据权利要求2所述的方法,其中所述原型的状态是由视觉采集设备识别。
5.根据权利要求1所述的方法,其中所述获取所述多个工件的所述初始状态包括用视觉采集设备获取所述多个工件的所述初始状态。
6.根据权利要求1所述的方法,其中所述多个工件的所述初始状态包括所述多个工件的方位,以及所述一系列的操作是基于所述多个工件的方位生成的。
7.根据权利要求1所述的方法,其中所述多个工件的初始状态包括所述多个工件之间的相对位置和相对连接,以及所述一系列的操作是基于所述多个工件之间的所述相对位置和所述相对连接而生成的。
8.根据权利要求1所述的方法,其中,所述根据所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,生成所述一系列的操作包括:
以如下方式生成所述一系列的操作:所述操作中的开始操作的每个前提条件都满足所述多个工件的所述初始状态;以及所述操作中的最后操作的每个效果都满足所述多个工件的所述目标状态。
9.根据权利要求8所述的方法,其中,所述根据所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,生成所述一系列的操作还包括:
以如下方式生成所述一系列的操作:所述操作中先前的操作的一个或多个效果能够将所述多个工件从先前状态改变为后续状态,其中所述操作中后续的操作的一个或多个前提条件满足所述后续状态。
10.根据权利要求8所述的方法,其中所述一系列的操作是通过使用图遍历算法产生的。
11.根据权利要求1所述的方法,还包括:
执行碰撞检查以确定所述一系列的操作是否可行;以及
响应于确定所述一系列的操作不可行,基于所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,重新生成新的一系列的操作。
12.根据权利要求1所述的方法,还包括:
执行碰撞检查以确定所述一系列的操作是否可行;以及
响应于确定所述一系列的操作是可行的,执行所述一系列的操作。
13.一种用于控制机器人手臂的系统,包括:
处理器;以及
存储指令的存储器,当由所述处理器执行时,所述指令使所述处理器执行用于控制所述机器人手臂以操纵多个工件的方法,其中所述方法包括:
预先定义所述机器人手臂的多个元动作,所述多个元动作中的每一个都包括一个或多个前提条件和一个或多个效果;
获取所述多个工件的目标状态;
获取所述多个工件的初始状态;以及
根据所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的目标状态和初始状态,生成一系列的操作;
其中所述操作是从所述多个元动作中选择的;
其中所述一系列的操作的执行能够将所述多个工件从所述初始状态改变到所述目标状态。
14.根据权利要求13所述的系统,还包括视觉采集设备,其中
所述原型的状态由所述视觉采集设备识别;以及
所述多个工件的所述初始状态由所述视觉采集设备识别。
15.根据权利要求13所述的系统,其中
所述多个工件的所述初始状态包括所述多个工件的方位、以及所述多个工件之间的相对位置和相对连接;
基于所述多个工件的方位、以及所述多个工件之间的所述相对位置和所述相对连接来生成所述一系列的操作。
16.根据权利要求13所述的系统,其中所述根据所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,生成所述一系列的操作包括:
以如下方式生成所述一系列的操作:
所述操作中的开始操作的每个前提条件都满足所述多个工件的所述初始状态;以及所述操作中的最后操作的每个效果都满足所述多个工件的所述目标状态;以及
所述操作中先前的操作的一个或多个效果能够将所述多个工件从先前状态改变为后续状态,其中所述操作中后续的操作的一个或多个前提条件满足所述后续状态。
17.根据权利要求13所述的系统,其中所述方法还包括:
执行碰撞检查以确定所述一系列的操作是否可行;以及
响应于确定所述一系列的操作不可行,基于所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,重新生成新的一系列的操作。
18.一种存储指令的非暂时性计算机可读介质,当所述指令由处理器执行时,使所述处理器执行用于控制所述机器人手臂以操纵多个工件的方法,其中所述方法包括:
预先定义所述机器人手臂的多个元动作,所述多个元动作中的每一个都包括一个或多个前提条件和一个或多个效果;
获取所述多个工件的目标状态;
获取所述多个工件的初始状态;以及
根据所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,生成一系列的操作;
其中所述操作是从所述多个元动作中选择的;
其中所述一系列的操作的执行能够将所述多个工件从所述初始状态改变到所述目标状态。
19.根据权利要求18所述的非暂时性计算机可读介质,其中所述根据所述多个元动作的所述一个或多个前提条件和所述一个或多个效果、所述多个工件的所述目标状态和所述初始状态,生成所述一系列的操作包括:
以如下方式生成所述一系列的操作:
所述操作中的开始操作的每个前提条件都满足所述多个工件的所述初始状态;以及所述操作中的最后操作的每个效果都满足所述多个工件的所述目标状态;以及
所述操作中先前的操作的一个或多个效果能够将所述多个工件从先前状态改变为后续状态,其中所述操作中后续的操作的一个或多个前提条件满足所述后续状态。
20.根据权利要求18所述的非暂时性计算机可读介质,其中
所述原型的状态包括所述原型的工件之间的相对位置和相对连接;
所述多个工件的所述初始状态包括所述多个工件的方位、以及所述多个工件之间的相对位置和相对连接;
基于所述原型的工件之间的所述相对位置和相对连接、所述多个工件的方位、以及所述多个工件之间的所述相对位置和所述相对连接,生成所述一系列的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/856,715 US11724396B2 (en) | 2020-04-23 | 2020-04-23 | Goal-oriented control of a robotic arm |
US16/856,715 | 2020-04-23 | ||
PCT/IB2021/053219 WO2021214636A1 (en) | 2020-04-23 | 2021-04-19 | Goal-oriented control of a robotic arm |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115997183A true CN115997183A (zh) | 2023-04-21 |
Family
ID=78221665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180045249.2A Pending CN115997183A (zh) | 2020-04-23 | 2021-04-19 | 机器人手臂的目标导向控制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11724396B2 (zh) |
EP (1) | EP4139760A4 (zh) |
CN (1) | CN115997183A (zh) |
WO (1) | WO2021214636A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102020214231A1 (de) * | 2020-11-12 | 2022-05-12 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum steuern einer robotervorrichtung und robotersteuereinrichtung |
US11717963B2 (en) * | 2021-02-18 | 2023-08-08 | Sanctuary Cognitive Systems Corporation | Systems, devices, and methods for grasping by multi-purpose robots |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544282A (en) * | 1991-04-05 | 1996-08-06 | Chen; Pang C. | Method and apparatus for planning motions of robot manipulators |
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 |
US10518409B2 (en) | 2014-09-02 | 2019-12-31 | Mark Oleynik | Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries |
CN107214701B (zh) | 2017-06-12 | 2019-10-18 | 南京理工大学 | 一种基于运动基元库的带电作业机械臂自主避障路径规划方法 |
WO2019028075A1 (en) * | 2017-08-01 | 2019-02-07 | Enova Technology, Inc. | INTELLIGENT ROBOTS |
US10926416B2 (en) * | 2018-11-21 | 2021-02-23 | Ford Global Technologies, Llc | Robotic manipulation using an independently actuated vision system, an adversarial control scheme, and a multi-tasking deep learning architecture |
US11911908B2 (en) * | 2018-12-21 | 2024-02-27 | Intrinsic Innovation Llc | Dynamic probabilistic motion planning |
CN109876968B (zh) | 2019-03-22 | 2021-11-12 | 希美埃(芜湖)机器人技术有限公司 | 一种钢结构机器人喷涂自动路径规划方法 |
US11345030B2 (en) | 2019-05-28 | 2022-05-31 | Intel Corporation | Methods and apparatus for complex assembly via autonomous robots using reinforcement learning action primitives |
CN110598279A (zh) | 2019-08-28 | 2019-12-20 | 武汉理工大学 | 一种零件加工工艺路线规划方法及装置 |
-
2020
- 2020-04-23 US US16/856,715 patent/US11724396B2/en active Active
-
2021
- 2021-04-19 WO PCT/IB2021/053219 patent/WO2021214636A1/en unknown
- 2021-04-19 EP EP21791709.5A patent/EP4139760A4/en active Pending
- 2021-04-19 CN CN202180045249.2A patent/CN115997183A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4139760A4 (en) | 2023-10-18 |
EP4139760A1 (en) | 2023-03-01 |
US20210331316A1 (en) | 2021-10-28 |
WO2021214636A1 (en) | 2021-10-28 |
US11724396B2 (en) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109807882B (zh) | 把持系统、学习装置和把持方法 | |
EP2658691B1 (en) | Method, computer program and apparatus for determining a gripping location | |
CN110640730B (zh) | 生成用于机器人场景的三维模型的方法和系统 | |
JP6450960B2 (ja) | ロボット、ロボットシステム及び教示方法 | |
CN115997183A (zh) | 机器人手臂的目标导向控制 | |
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 | |
KR102400416B1 (ko) | 카메라를 이용한 로봇 축각도들의 검출 및 로봇의 선택 | |
CN114080590A (zh) | 使用先进扫描技术的机器人料箱拾取系统和方法 | |
CN112154048A (zh) | 基于机器人的工件插装 | |
CN113954076B (zh) | 基于跨模态预测装配场景的机器人精密装配方法 | |
CN113878588B (zh) | 面向卡扣式连接的基于触觉反馈的机器人柔顺装配方法 | |
CN113927602B (zh) | 基于视、触觉融合的机器人精密装配控制方法及系统 | |
US20220335710A1 (en) | Device and method for training a neural network for controlling a robot for an inserting task | |
JP2015003348A (ja) | ロボット制御システム、制御装置、ロボット、ロボット制御システムの制御方法及びロボットの制御方法 | |
CN115674184A (zh) | 基于机器人视觉的目标定位方法及装置 | |
US20220335295A1 (en) | Device and method for training a neural network for controlling a robot for an inserting task | |
US20220301209A1 (en) | Device and method for training a neural network for controlling a robot | |
WO2022000283A1 (zh) | 一种示教器、机器人、控制机器人的方法和装置 | |
CN116766183B (zh) | 一种基于视觉图像的机械臂控制方法及装置 | |
CN116890350A (zh) | 用于控制机器人设备的方法 | |
SE545819C2 (en) | System and method of automating a process | |
CN116061163A (zh) | 机器人控制方法、装置、系统及相关设备 | |
CN118081735A (zh) | 基于三维扫描系统的路径模拟方法、装置和计算机设备 | |
CN112384340A (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 |