工业机器人和用于控制机器人自动选择接下来要执行的程序代码的方法与流程

文档序号:15104326发布日期:2018-08-04 16:30阅读:208来源:国知局

本发明涉及一种包括用于控制机器人的运动的程序代码的工业机器人、以及一种用于控制机器人的方法。



背景技术:

工业机器人包括操纵器和用于控制操纵器的运动的机器人控制单元。操纵器包括在机器人控制单元的控制下运动的多个接合部。控制单元包括用于存储机器人程序的存储介质,该机器人程序包括当由控制单元执行时用于控制机器人的运动的程序代码。程序代码包括用机器人语言编写的一系列机器人程序指令。控制单元具有适于执行存储的程序指令的程序执行器。可以教导机器人遵循包括多个目标点的操作路径。通过沿着期望的操作路径上的不同目标点引导机器人来教导它如何执行任务。

当工业机器人由于故障停机或故意停机时,必须重新启动机器人。在生产停止期间,尽快恢复执行正确的任务至关重要。但是,并不总是需要恢复当前的任务或者甚至不可能恢复当前的任务。现今,机器人操作者可以使用机器人的便携式用户界面、也称为TPU(示教单元)来切换程序,并选择要执行的任务。在教导机器人和修改机器人程序时也是如此,在这种情况下,用户通常必须单步调试机器人程序才能到达要修改的正确目标点。

在协作环境中,对于许多操作者而言,以这种方式使用TPU或其它HMI是一个缓慢且不直观的过程。希望尽可能少使用TPU和程序结构的细节。



技术实现要素:

本发明的目的是至少部分地克服上述问题,并且例如在停止生产之后或在教导机器人期间提供更快且更直观的方式来恢复机器人。

该目的通过如权利要求1所定义的方法来实现。

该方法包括:基于机器人的位置来自动选择程序代码的哪部分接下来要被执行,并且执行程序代码的所选择的部分。

术语“自动”意味着由机器进行选择,例如由机器人控制单元而不是由人来进行选择。

根据本发明,机器人基于其当前位置自动选择程序代码的哪部分接下来要被执行。程序代码可以包括多个机器人程序和/或多个程序过程,并且机器人可以选择在其中一个机器人程序中或在其中一个程序过程中开始执行。选择程序代码的哪部分取决于机器人在工作区域中的位置。因此,通过在机器人的工作区域中(优选地通过手)运动机器人,可以选择在程序代码的不同部分开始执行。程序部分可以包括用于执行多个任务的程序代码。由此便可以在多个任务中选择执行哪个任务。

本发明提供了一种用于例如当已经停止执行机器人程序的当前部分时,决定接下来要执行机器人程序代码的哪个部分的方法。然后控制单元可以切换到程序代码的另一部分,并且由此基于机器人位置来执行另一个任务。可以自动开始程序的所选择的部分的执行,但这不一定是必要的。

本发明的优点在于,在停止生产之后能更快且更直观地恢复机器人,并且调试变得更快。进一步地,本发明在教导机器人期间可能非常有用。例如,用户可以通过将机器人运动到真实目标点或其附近的位置来选择在某个目标点开始执行程序。用户不需要任何TPU或其它HMI来选择程序代码的哪部分接下来要被执行。用户可以例如是机器人操作者。

根据本发明的一个实施例,该方法包括根据命令执行程序代码的所选择的部分。由于安全原因,根据命令开始程序代码的所选择的部分的执行。这意味着并不是在选定了某程序部分后立刻开始程序的所选择的部分的执行。必须以某种方式来开始程序的所选择的部分的执行。术语“命令”应该广义地理解,并且可以是例如外部输入信号、超时、检测到事件或来自用户的输入。例如,该命令可以是来自用户的批准。用户可以是例如机器人操作者。用户可以例如从HMI发送批准。该命令还可以是基于来自与机器人的物理用户交互(诸如用户触摸机器人)有关的内部机器人传感器的数据的批准。

适宜的是,当机器人已经停止时,使用根据本发明的方法。但是,当机器人正在运动时也可以使用该方法。

根据本发明的一个实施例,该方法包括:在机器人周围定义多个定位,该定位中的每个定位被分配程序代码的一部分,并且基于机器人的位置和定义的定位来选择程序代码的哪部分接下来要被执行。可以是机器人附近定义的点、面积或体积。

根据本发明的一个实施例,该方法包括:确定机器人的当前位置与这些定位之间的接近程度,以及基于其与机器人当前位置的接近程度来选择被分配给该定位的程序代码。基于机器人的位置与定位之间的接近程度来选择接下来要执行的是哪个程序部分。例如,选择与最接近机器人的当前位置的定位相关联的程序部分,或者选择与涵盖了机器人当前位置的定位相关联的程序部分。因此,如果机器人位置最接近于该定位,或者如果机器人的位置在与程序部分相关联的定位内,则可以选择该程序部分。

根据本发明的一个实施例,该方法包括:检测程序代码的执行已经停止,并且在命令开始时执行程序代码的所选择的部分。例如,该方法包括:检测机器人的运动已经停止,并且基于机器人的位置自动选择当机器人重新启动时要执行程序代码的哪部分。例如,该实施例提供了一种更快且更直观的在机器人停止时,例如,在停止生产之后,重新恢复机器人的方法。这种停止可能是有意的停止或者是由于错误导致的无意停止。

根据本发明的一个实施例,该方法包括:在当前的程序部分的执行已被中断时,手动地将机器人运动到新位置,以及基于机器人的新位置来选择程序代码的哪部分接下来要被执行。用户将机器人运动到接近或位于其中一个定义的定位内的新位置。例如,用户通过使用引导功能、轻推机器人或其它方法来使机器人运动。因此,用户不需要输入程序代码和移动程序指针以选择要执行的机器人程序代码的另一部分。用户只需将机器人手动运动到与某一部分机器人程序相关联的定位,机器人就会自动选择与该定位相关联的那部分机器人程序。这对用户来说简单而直观。

根据本发明的一个实施例,机器人包括固定基座和至少一个可绕固定基座旋转的臂。用户手动运动与固定基座相关的臂。机器人的位置可以定义为与固定基座相关的位置。根据本发明的一个实施例,该方法包括:在用户界面上呈现选择的结果,并且在接收到来自用户的批准时便执行程序代码的所选择的部分。用户界面可以是,例如,显示器、触摸面板或音频设备。通过呈现选择的结果,即所选择的程序部分,通知用户在接收到批准时接下来将执行哪部分程序。用户可以在工作区域中使机器人四处运动,直到用户界面上出现所需的程序部分。当所需的程序部分出现在用户界面上时,用户可以发送批准以开始程序的所选择的部分的执行,例如经由用户界面来发送批准。因此,用户不必知道能够切换到程序代码的新部分的程序结构。如果多个定位是用于选择某一程序部分的候选位置,则可以向用户呈现可以执行程序的选项列表。

根据本发明的一个实施例,程序代码包括用于控制机器人执行多个任务的程序代码,并且该方法包括基于机器人的位置来自动选择接下来要执行的任务、以及根据命令执行的所选择的任务。该方法可以包括在机器人周围定义多个定位,并且该定位中的每个定位被分配用于执行其中一个任务的程序代码。适宜的是,定位是在不同任务中使用的机器人位置。每个任务都可以与该任务中使用的机器人位置相关联。例如由机器人的当前位置与在不同任务中使用的一个或多个机器人位置之间的某种接近程度的度量来确定接下来要执行的任务。该实施例使得用户切换到另一个任务变得容易且直观。

根据本发明的一个实施例,该方法包括:基于机器人的位置来决定是继续执行当前任务还是执行任务中的另一个任务。该实施例使得用户在恢复当前任务还是切换到另一任务之间进行选择变得快速且容易。

根据本发明的一个实施例,定位包括多个定义的点,所定义的点中的每个点被分配程序代码的一部分,并且该方法包括确定机器人的当前位置与所定义的点之间的接近程度,并基于机器人的当前位置与所定义的点之间的接近程度来选择程序代码的哪部分接下来要被执行。优选地,所定义的点是位于机器人附近的笛卡尔点。可以预定义或者在执行机器人程序期间定义这些点。例如,这些点可以是编程的机器人路径上的目标点,并且被分配的程序代码部分可以包含针对目标点定义了机器人运动的程序代码。但是,这些点可以位于机器人的工作区域中的任何位置。这些点甚至可以位于机器人的工作区域之外的任何位置。

根据本发明的一个实施例,该方法包括:当程序代码的执行已被中断时存储机器人的停止位置,确定机器人的当前位置与机器人的停止位置之间的接近程度,并且基于确定的机器人的当前位置、定义的点和停止位置之间的接近程度来选择程序代码的哪部分接下来要被执行,以使得如果机器人的位置最接近于停止位置,则选择当前被执行的那部分程序代码,否则选择被分配给最接近于机器人的位置的定义的点的那部分机器人程序代码。该实施例使得用户在恢复执行当前部分的程序还是切换到另一部分的程序之间进行选择变得快速且容易。

根据本发明的一个实施例,定位包括在机器人的工作范围内的多个被定义的区域,该区域中的每个区域被分配程序代码的一部分,该方法包括确定机器人的位置是否位于任何区域内,并且基于机器人的当前位置位于哪个区域中来选择程序代码的哪部分接下来要被执行。例如,如果机器人的当前位置在其中一个区域内,则选择被分配给该区域的那部分程序代码。如果机器人的位置在不止一个区域内,则可以基于机器人相对于区域中心的位置或基于用户输入来选择其中一个区域。例如,如果机器人的位置在不止一个区域内,则可以通过例如HMI来让用户进行选择。然后,可以在用户允许时,例如通过使用HMI、通过触摸机器人、超时后自动或通过其它方式来说明该过程。

例如,预先配置的区域与不同的任务有关。针对每个任务都定义了一个区域。优选地,该区域是体积。该方法包括检查机器人是否在任何被定义的区域内,并且如果机器人在其中一个区域之内,则选择属于该区域的任务并提供给用户。如果用户接受所选任务,则执行用于实施该任务的程序代码。可替代地,如果检测到机器人位于被定义的区域内,则在超时后自动开始执行任务。

根据本发明的一个实施例,定位是机器人路径上的编程目标点,并且该方法包括让用户选择机器人是要执行所选的目标点还是从头开始执行程序代码。该实施例在教导机器人期间和修改机器人程序时是有用的。通过简单地将机器人运动到接近期望目标点的位置,用户可以容易地选择从哪个目标点继续执行程序代码。用户不必单步调试机器人程序以到达要修改的正确目标点。

还可以通过如权利要求13所述的工业机器人来实现本发明的目的。

该机器人包括操纵器和机器人控制单元。操纵器包括在控制单元的控制下运动的多个接合部,控制单元包括存储介质,该存储介质包括用于在由控制单元执行时控制机器人的运动的程序代码。根据本发明,控制单元被配置为基于机器人的位置自动选择程序代码的哪部分接下来要被执行。

根据本发明的一个实施例,控制单元被配置为根据命令执行程序代码的所选择的部分。

根据本发明的一个实施例,在机器人周围定义多个定位,该定位中的每个定位被分配程序代码的一部分,并且控制单元被配置为基于机器人的位置和定义的定位来选择程序代码的哪部分接下来要被执行。

根据本发明的一个实施例,控制单元被配置为在当前的程序部分的执行已被中断时选择程序代码的哪部分接下来要被执行。

根据本发明的一个实施例,机器人包括用户界面,并且控制单元被配置为在用户界面上呈现选择的结果,并在接收到来自用户的批准时执行所程序代码的所选择的部分。例如,经由用户界面来发送批准。

根据本发明的一个实施例,程序代码包括用于控制机器人执行多个任务的程序代码,并且控制单元被配置为基于机器人的位置来自动选择接下来要执行的任务,并且根据命令执行所选择的任务。

根据本发明的一个实施例,控制单元被配置为基于机器人的位置来选择是继续执行当前任务还是执行任务中的另一个任务。

附图说明

现在将通过描述本发明的不同实施例并参照附图来更详细地解释本发明。

图1示出了根据本发明的工业机器人的示例。

图2示出了根据本发明的工业机器人的另一示例。

图3示出了根据本发明的第一实施例的方法的流程图。

图4示出了根据本发明的第二实施例的方法的流程图。

图5示出了根据本发明的第三实施例的方法的流程图。

图6示出了根据本发明的第四实施例的方法的流程图。

具体实施方式

图1示出了根据本发明的工业机器人1的示例。机器人1包括机器人控制单元2和操纵器3。操纵器包括在控制单元的控制下围绕多个轴线转动的多个接合部。操纵器在定义的工作区域中是固定的。因此,操纵器在机器人工作期间不能运动。在这个例子中,操纵器1具有固定基座和一个可围绕固定基座旋转的臂。该臂支撑可围绕多个轴线旋转的腕部。腕部支撑工具,在该工具中定义了叫做TCP(工具中心点)的工作点。

控制单元包括软件以及硬件,诸如输入和输出装置;处理单元,其包括用于处理机器人控制器的主要功能(诸如执行机器人程序)的一个或多个中央处理单元(CPU)。控制单元具有用于存储用于控制操纵器的运动的程序代码的存储介质4。机器人还可以包括用户接口6以允许机器人与诸如机器人操作者等用户之间的通信。例如,用户界面6是用于教导和手动操作机器人的便携式操作装置。可替代地,用户界面是具有触摸功能的屏幕,例如平板电脑或手机。

根据本发明,控制单元2被配置为基于机器人的位置自动选择程序代码的哪部分接下来要被执行。程序代码可以包括用于控制机器人执行多个任务的程序代码,并且在本发明的一个实施例中,控制单元被配置为基于机器人的位置来自动选择哪个任务接下来要被执行。

机器人的位置是指机器人的操纵器3的位置。机器人的位置可以被定义为机器人规定部位、例如机器人的臂的一部分的位置。机器人的位置也可以由机器人的TCP给出。机器人的位置也可以由机器人的定义的一组轴线的位置给出。

控制单元被配置为基于机器人的当前位置和定义在机器人附近的多个定位来选择程序代码的哪部分接下来要被执行。定位中的每个定位被分配程序代码的一部分,并且确定在何处开始执行程序代码。由当前机器人位置与定义的定位之间的某种接近程度的度量以及关于接近程度的定义标准来确定程序代码的哪部分接下来要被执行以及相应地从何处开始执行程序代码。例如,该标准是机器人的位置在被定义的区域内,或者机器人接近于定义的点。如果不止一个位置满足接近程度标准,则可以选择不止一个程序部分,并将其呈现给用户,让用户可以选择所选程序的哪个部分接下来要被执行。然后会执行所选择的程序部分。如果标准是范围,用户可以选择另一程序部分,而不是建议的第一选择。

适宜的是,控制单元被配置为根据命令执行程序代码的所选择的部分。例如,用户必须在执行所选的程序部分之前,例如通过使用用户界面6、通过触摸机器人、在超时之后自动地或通过其它方式,来批准该选择。例如,用户界面6可以设置有触摸按钮8。可以将程序代码的所选择的部分显示在用户界面6上,并且用户可以通过与用户界面交互来批准所选的程序部分。用户还可以通过发出触摸命令例如通过敲击机器人来批准选择。如果程序代码的所选择的部分是用于执行任务的程序过程或机器人程序,则过程的名称、机器人程序或任务适宜地呈现在用户界面上。当用户批准该选择时,可以开始执行程序代码的所选择的部分。如果多个选择满足接近程度的定义标准,则可以例如通过用户界面6向用户给出选择机会。

例如,控制单元被配置为在当前的程序部分的执行已被中断时或者当机器人的运动已经停止时,选择程序代码的哪部分接下来要被执行。通过监控机器人的运动,可以检测到机器人已经停止。

在本发明的一个实施例中,控制单元被配置为基于机器人的位置选择继续执行当前被执行的那部分程序代码或者执行程序代码的另一部分。在该实施例中,控制单元还考虑到继续执行当前程序代码的可能性。如果机器人没有运动到另一个位置,或者只有很短的距离,在其停止后,恢复执行程序代码的当前部分。替代地,如果机器人运动以使其在已经停止后更接近于其中所定义的定位中的一个,则执行程序代码的新部分。因此,用户可以选择恢复当前任务或切换到另一个任务。在本发明的该实施例中,控制单元被配置为当程序代码的执行已被中断时存储机器人的停止位置,并且基于所定义的定位和机器人的停止位置来选择程序代码的哪部分接下来要被执行。例如,控制单元被配置为确定机器人的当前位置与机器人的停止位置之间的接近程度,并且基于确定的机器人的当前位置与定义的定位之间的接近程度以及机器人的当前位置与停止位置之间的接近程度来选择程序代码的哪部分接下来要被执行。控制单元被配置为如果机器人的当前位置最接近停止位置则选择当前被执行的那部分程序代码,否则选择被分配给最接近于机器人的当前位置的定位的那部分机器人代码。

图1示出了本发明的一个示例。在这个例子中,在机器人的周围环境定义了以两点的形式存在的两个定位10和12。定位10和12中的每一个已经被分配程序代码的一部分。作为示例,位置10已经被分配程序过程P1,并且位置12已经被分配程序过程P2。通过优选地用手将机器人运动到定位10附近的位置,选择程序P1。替代地,如果将机器人运动到定位12附近的位置,选择程序P2。在这个示例中,当机器人处于虚线所示的位置时,程序代码的执行被中断。控制单元被配置为当程序代码的执行已被中断时存储机器人的停止位置作为在选择期间要考虑的位置之一。在该示例中,停止位置是程序代码执行被中断且机器人停止时机器人的TCP的位置。将停止位置存储为定位14,并向其分配当机器人停止时执行的那部分程序代码。基于机器人的当前位置与所定义的定位10、12和14的位置之间的距离确定选择哪部分程序。选择标准是例如选择被分配给最接近于机器人的TCP的位置的程序代码。如图所示,机器人的TCP与定位12之间的距离d2小于机器人的TCP与定位10之间的距离d1以及机器人的TCP与定位14之间的距离d3。因此,机器人最接近定位12,所以选择程序P2。当选择程序P2时,将程序的名称P2显示在用户界面6上。然后,用户可以通过例如触摸用户界面上的触摸按钮8或者通过触摸机器人来开始执行程序P2。可替代地,可以在机器人运动到当前位置之后一段时间自动开始执行程序P2。如果接近程度标准适合不止一个定位,则用户可以从符合标准的位置列表中选择替代定位。

在本发明的替代实施例中,可以使用机器人左侧的目标点来定义第一个任务,并且可以使用机器人右侧的目标点来定义第二个任务。通过优选地手动将机器人运动到机器人的左侧,控制单元确定应该执行第一个任务。替代地,如果机器人运动到了右侧,则控制单元确定应该执行第二个任务。由当前机器人位置与不同任务中使用的目标点之间的某种接近程度的度量来确定执行哪个任务。

图2示出了本发明的另一实施例。在本发明的该实施例中,在机器人的工作范围内定义了多个区域,并且每个区域被分配程序代码的其中一部分,诸如用于实施不同任务的程序过程或程序。区域可以是面积或体积。控制单元被配置为确定机器人的当前位置是否在任何区域内,并且如果机器人的当前位置处于其中一个区域内,则在机器人重新启动时选择开始执行被分配的那部分程序代码。在图2所示的示例中,定义了四个区域20-23。每个区域20-23被分配程序部分A-D。在图2中,机器人的TCP位于区域21内,因此选择程序部分B作为接下来要被执行的程序部分。如果用户将机器人运动至区域20,则选择程序部分A。因此,用户可以通过将机器人运动到被分配了所需程序部分的区域来选择接下来要被执行的程序部分。

图3示出了根据本发明的第一实施例的方法的流程图。应该理解,流程图的每个方框可以通过计算机程序指令来实施。执行机器人程序的一部分(框30)。继续执行该机器人程序部分直到执行停止为止(框32)。可以有意或无意地停止该执行。例如,用户可以有意打断该机器人程序部分的执行。当已经停止执行机器人程序时,确定机器人的当前位置(框34)。例如,基于来自机器人的位置传感器的信号来确定机器人的TCP。基于所确定的机器人的位置,选择接下来要执行哪个程序部分(框36)。重复选择接下来要执行哪个程序部分,直到接收到开始命令(框38)。开始命令可以是例如来自用户的批准、外部输入信号、超时或检测到事件。同时,用户可以将机器人运动到机器人工作区域内的新位置。在接收到开始命令时开始执行当前所选的那部分程序(框40)。

图4示出了根据本发明的第二实施例的方法的流程图。在本发明的该实施例中,在机器人的工作范围内定义了多个区域,并且每个区域中的每个区域被分配用于实施某一任务的程序代码的一部分。执行其中一个任务(框50)。继续执行该任务,直到执行停止为止(框52)。当已经停止执行任务时,确定机器人的当前位置(框54)。基于机器人当前位置所在的区域来选择要执行的任务。例如,这是通过确定机器人的当前位置是否在任何被定义的区域内来完成的(框56),并且如果是这种情况,则确定机器人位于被定义的区域的哪个区域内。例如,确定机器人的TCP位于哪个区域内。选择被分配给机器人位置所在区域的任务(框58)。重复选择接下来要执行的任务,直到接收到开始命令为止(框60)。同时,用户可以将在工作区域内的机器人运动到另一个区域。在接收到开始命令时开始执行当前所选的任务(框62)。

图5示出了根据本发明的第三实施例的方法的流程图。在本发明的该实施例中,已经在机器人的附近定义了多个点,并且所定义的点中的每个点已经被分配程序代码的一部分。该方法包括执行机器人程序的一部分(框70)。确定是否已经停止该程序部分的执行(框72)。当已经停止执行机器人程序时,确定机器人的当前位置(框74)。确定机器人的当前位置与定义的点之间的距离(框76)。在下一个步骤中,基于确定的距离,确定机器人最接近于定义的位置中的哪个(框78)。选择被分配给最接近于机器人当前位置的位置的程序代码部分(框80)。重复选择程序代码的哪部分接下来要被执行,直到接收到开始命令为止(框82)。同时,用户可以将机器人运动到机器人工作区域内的新位置。在接收到开始命令时开始执行当前所选的那部分程序(框84)。

图6示出了根据本发明的第四实施例的方法的流程图。在该实施例中,在机器人的附近定义了多个点。所定义的点中的每个点都被分配程序代码的一部分。该方法包括执行机器人程序的一部分(框90)。确定是否已经停止执行程序部分(框92)。当已经停止执行程序部分时,确定并存储机器人的停止位置(框94)。确定机器人的当前位置(框96)。确定机器人的当前位置与所定义的点的位置之间的距离,并且确定机器人的当前位置与停止位置之间的距离(框98)。在下一个步骤中,基于确定的距离确定机器人最接近哪个位置(框100)。选择被分配给最接近于机器人当前位置的位置的程序代码部分。如果机器人的位置最接近于停止位置,则选择当前被执行的那部分程序代码(框102和104)。如果机器人的位置最接近于定义的点中的其中一个,则选择被分配给最接近于机器人位置的定义的点的程序部分(框106)。将所选择的程序部分呈现给用户(框108)。如果基于被认为是最接近的标准,不止一个点是接近于机器人位置的候选位置,则可以为用户呈现从这些点中进行选择的选项。重复选择接下来要执行程序代码的哪个部分,直到接收到开始命令为止(框110)。同时,用户可以将机器人运动到机器人工作区域内的新位置。当用户同意执行所呈现的程序部分时,他通过例如敲击机器人来批准该选择。在接收到批准时,生成开始命令。在接收到开始命令时开始执行当前所选的那部分程序(框112)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1