一种机器人的运行控制方法、装置、存储介质及机器人与流程

文档序号:16673493发布日期:2019-01-18 23:45阅读:227来源:国知局
一种机器人的运行控制方法、装置、存储介质及机器人与流程

本发明属于机器人技术领域,具体涉及一种机器人的运行控制方法、装置、存储介质及机器人,尤其涉及一种机器人连续运行方法及速度规划方法、与该方法对应的装置、存储有该方法对应的指令的计算机可读存储介质、以及能够执行该方法对应的指令的工业机器人。



背景技术:

目前,工厂节拍化的生产制造中较多地使用到了工业机器人的自动运行模式。现有技术中,工业机器人在自动运行模式下可自动读取用户输入的多段程序,并逐段运行程序直至结束或者循环。但是,目前工业机器人自动运行时由于运行点设置重复存在停顿,自动模式下速度模式无法根据用户需求改变等问题,难以满足平稳运行、用户个性化使用等要求。



技术实现要素:

本发明的目的在于,针对上述缺陷,提供一种机器人的运行控制方法、装置、存储介质及机器人,以解决现有技术中工业机器人自动运行时由于运行点设置重复存在停顿,难以平稳运行的问题,进而达到提升运行平稳性的效果;以满足自动模式下用户对速度模式的个性化选择的需求。

本发明提供一种机器人的运行控制方法,包括:获取待所述机器人运行的一段以上程序;控制所述机器人按一段以上程序连续运行,和/或控制所述机器人按一段以上程序进行速度切换运行,和/或规划所述机器人按一段以上程序运行的运行方式并控制所述机器人按规划的运行方式运行。

可选地,控制所述机器人按一段以上程序连续运行,包括:确定一段以上程序中的当前段程序是否为有效段程序;若所述当前段程序为有效段程序,则将所述当前段程序的目标运行点作为所述当前段程序的运行终点,规划所述当前段程序的运行路径;控制所述机器人沿所述当前段程序的运行路径运行。

可选地,确定一段以上程序中的当前段程序是否为有效段程序,包括:确定一段以上程序中当前段程序所需要运行的目标运行长度;确定所述当前段程序的目标运行长度是否为零;若所述当前段程序的目标运行长度不为零,则确定所述当前段程序为有效段程序;或者,若所述当前段程序的目标运行长度为零,则确定所述当前段程序为无效段程序,并继续确定一段以上程序中下一段程序是否为有效段程序。

可选地,控制所述机器人按一段以上程序连续运行,还包括:确定一段以上程序中当前段程序的实际运行长度是否等于当前段程序所需要运行的目标运行长度;若所述当前段程序的实际运行长度等于所述当前段程序的目标运行长度,则根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行;或者,若所述当前段程序的实际运行长度不等于每个有效段程序的目标运行长度,则继续控制所述机器人沿所述当前段程序的运行路径运行。

可选地,根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行,包括:确定一段以上程序中所有段程序的实际运行总长度、以及所有段所需运行的目标运行总长度;确定一段以上程序中所有段程序的实际运行总长度是否等于所有段程序所需运行的目标运行总长度;若一段以上程序中所有段程序的实际运行总长度等于所有段程序所需运行的目标运行总长度,则控制所述机器人停止运行;或者,若一段以上程序中所有段程序的实际运行总长度不等于所有段程序所需运行的目标运行总长度,则继续确定一段以上程序中下一段程序是否为有效段程序。

可选地,控制所述机器人按一段以上程序进行速度切换运行,包括:确定所述机器人当前正在读取的一段以上程序中当前段程序所在段数是否小于一段以上程序的总段数;若所述当前段程序所在段数小于所述总段数,则结合所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度控制所述机器人运行;或者,若所述当前段程序所在段数不小于所述总段数,则将所述当前段程序的末速度置为零。

可选地,结合所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度控制所述机器人运行,包括:获取用于控制一段以上程序运行的速度模式,并获取所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度;其中,所述速度模式,包括:第一模式或第二模式,所述机器人在所述第一模式下的运行速度低于所述机器人在所述第二模式下的运行速度;确定所述机器人的速度模式是否为第一模式;若所述速度模式为第一模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较小值作为所述当前段程序的末速度;

或者,若所述速度模式为第二模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较大值作为所述当前段程序的末速度。

可选地,结合所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度控制所述机器人运行,还包括:确定一段以上程序中下一段程序所在段数是否小于一段以上程序的总段数;若所述下一段程序所在段数小于所述总段数,则将所述下一段程序作为所述机器人当前正在读取的当前段程序;或者,若所述下一段程序所在段数不小于所述总段数,则将所述下一段程序的末速度置为零。

可选地,规划所述机器人按一段以上程序运行的运行方式,包括:在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式;或者,在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式;其中,所述运行方式,包括:运行速度、末速度中的至少之一。

可选地,其中,在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式,包括:确定一段以上程序中当前段程序运行结束时的运行方式;将一段以上程序中当前段程序的运行方式规划为一段以上程序中下一段程序的运行方式;和/或,在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式,包括:确定一段以上程序在当前周期运行结束时的运行方式;将一段以上程序在当前周期的运行方式规划为一段以上程序中在下一周期的运行方式。

与上述方法相匹配,本发明另一方面提供一种机器人的运行控制装置,包括:通信单元,用于获取待所述机器人运行的一段以上程序;控制单元,用于控制所述机器人按一段以上程序连续运行,和/或控制所述机器人按一段以上程序进行速度切换运行,和/或规划所述机器人按一段以上程序运行的运行方式并控制所述机器人按规划的运行方式运行。

可选地,所述控制单元控制所述机器人按一段以上程序连续运行,包括:确定一段以上程序中的当前段程序是否为有效段程序;若所述当前段程序为有效段程序,则将所述当前段程序的目标运行点作为所述当前段程序的运行终点,规划所述当前段程序的运行路径;控制所述机器人沿所述当前段程序的运行路径运行。

可选地,所述控制单元确定一段以上程序中的当前段程序是否为有效段程序,包括:确定一段以上程序中当前段程序所需要运行的目标运行长度;确定所述当前段程序的目标运行长度是否为零;若所述当前段程序的目标运行长度不为零,则确定所述当前段程序为有效段程序;或者,若所述当前段程序的目标运行长度为零,则确定所述当前段程序为无效段程序,并继续确定一段以上程序中下一段程序是否为有效段程序。

可选地,所述控制单元控制所述机器人按一段以上程序连续运行,还包括:确定一段以上程序中当前段程序的实际运行长度是否等于当前段程序所需要运行的目标运行长度;若所述当前段程序的实际运行长度等于所述当前段程序的目标运行长度,则根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行;或者,若所述当前段程序的实际运行长度不等于每个有效段程序的目标运行长度,则继续控制所述机器人沿所述当前段程序的运行路径运行。

可选地,所述控制单元根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行,包括:确定一段以上程序中所有段程序的实际运行总长度、以及所有段所需运行的目标运行总长度;确定一段以上程序中所有段程序的实际运行总长度是否等于所有段程序所需运行的目标运行总长度;若一段以上程序中所有段程序的实际运行总长度等于所有段程序所需运行的目标运行总长度,则控制所述机器人停止运行;或者,若一段以上程序中所有段程序的实际运行总长度不等于所有段程序所需运行的目标运行总长度,则继续确定一段以上程序中下一段程序是否为有效段程序。

可选地,所述控制单元控制所述机器人按一段以上程序进行速度切换运行,包括:确定所述机器人当前正在读取的一段以上程序中当前段程序所在段数是否小于一段以上程序的总段数;若所述当前段程序所在段数小于所述总段数,则结合所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度控制所述机器人运行;或者,若所述当前段程序所在段数不小于所述总段数,则将所述当前段程序的末速度置为零。

可选地,所述控制单元结合所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度控制所述机器人运行,包括:获取用于控制一段以上程序运行的速度模式,并获取所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度;其中,所述速度模式,包括:第一模式或第二模式,所述机器人在所述第一模式下的运行速度低于所述机器人在所述第二模式下的运行速度;确定所述机器人的速度模式是否为第一模式;若所述速度模式为第一模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较小值作为所述当前段程序的末速度;或者,若所述速度模式为第二模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较大值作为所述当前段程序的末速度。

可选地,所述控制单元结合所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度控制所述机器人运行,还包括:确定一段以上程序中下一段程序所在段数是否小于一段以上程序的总段数;若所述下一段程序所在段数小于所述总段数,则将所述下一段程序作为所述机器人当前正在读取的当前段程序;或者,若所述下一段程序所在段数不小于所述总段数,则将所述下一段程序的末速度置为零。

可选地,所述控制单元规划所述机器人按一段以上程序运行的运行方式,包括:在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式;或者,在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式;其中,所述运行方式,包括:运行速度、末速度中的至少之一。

可选地,其中,所述控制单元在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式,包括:确定一段以上程序中当前段程序运行结束时的运行方式;将一段以上程序中当前段程序的运行方式规划为一段以上程序中下一段程序的运行方式;和/或,所述控制单元在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式,包括:确定一段以上程序在当前周期运行结束时的运行方式;将一段以上程序在当前周期的运行方式规划为一段以上程序中在下一周期的运行方式。

与上述装置相匹配,本发明再一方面提供一种机器人,包括:以上所述的机器人的运行控制装置。

与上述方法相匹配,本发明再一方面提供一种存储介质,包括:所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行以上所述的机器人的运行控制方法。

与上述方法相匹配,本发明再一方面提供一种机器人,包括:处理器,用于执行多条指令;存储器,用于存储多条指令;其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行以上所述的机器人的运行控制方法。

本发明的方案,通过采用已运行单段长度与单段运行长度、总运行长度的判定,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂停顿的问题,提升了机器人的运行平稳性和安全性。

进一步,本发明的方案,通过采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,即通过切换运行模式,进而改变过渡点速度,以实现机器人以较快时间或者正常时间运行,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行,可以满足用户的个性化使用需求,用户体验好、且适用范围广。

进一步,本发明的方案,通过提前搜索下一运行段的速度,进而提前加速或减速,保证相邻两段程序过渡时机器人速度能够平滑过渡,进一步提升机器人的运行稳定性和可靠性。

进一步,本发明的方案,通过确定当即将运行的单段程序存在无法运行如单段运行长度为0时,从而提前确定出主程序是否需要跳转至下一单段运行,可以保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象,提升运行平稳性。

进一步,本发明的方案,通过使主程序根据用户选择的模式,自动匹配不同的速度模式,一种是取当前运行速度与下一运行速度中较小值作为本段末速度即普通模式,一种是取当前运行速度与下一运行速度中较大值作为本段末速度即快速模式,可以在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行,提升运行灵活性和可靠性。

由此,本发明的方案,通过采用已运行单段长度与单段运行长度、总运行长度的判定,当即将运行的单段程序存在无法运行的情况时,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象;解决现有技术中工业机器人自动运行时由于运行点设置重复存在停顿,自动模式下速度模式无法根据用户需求改变,存在难以平稳运行的问题,从而,克服现有技术中运行平稳性差、使用不方便和适用范围小的缺陷,实现运行平稳性好、使用方便和适用范围广的有益效果。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明的机器人的运行控制方法的一实施例的流程示意图;

图2为本发明的方法中控制所述机器人按一段以上程序连续运行的一实施例的流程示意图;

图3为本发明的方法中确定一段以上程序中的当前段程序是否为有效段程序的一实施例的流程示意图;

图4为本发明的方法中根据当前段程序的实际运行长度和目标运行长度控制机器人运行的一实施例的流程示意图;

图5为本发明的方法中根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行的一实施例的流程示意图;

图6为本发明的方法中控制所述机器人按一段以上程序进行速度切换运行的一实施例的流程示意图;

图7为本发明的方法中结合所述当前段程序的运行速度、以及一段以上程序中下一段程序的运行速度控制所述机器人运行的一实施例的流程示意图;

图8为本发明的方法中根据下一段程序所在段数和一段以上程序的总段数控制机器人运行的一实施例的流程示意图;

图9为本发明的方法中在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式的一实施例的流程示意图;

图10为本发明的方法中在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式的一实施例的流程示意图;

图11为本发明的机器人的运行控制装置的一实施例的结构示意图;

图12为本发明的机器人的一实施例的运行长度判定方法的流程示意图;

图13为本发明的机器人的一实施例的速度规划方法的流程示意图;

图14为本发明的机器人的一实施例的机器人以普通模式快速模式运行多段程序的速度-时间曲线示意图。

结合附图,本发明实施例中附图标记如下:

102-通信单元;104-控制单元。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在专利(申请)号为201110220600.5的专利文献中,公开了一种数控系统中速度控制方法,所述方法主要通过对由操作设备的当前指定速度v确定的当前加速路径与减速路径的长度之和s与实际加工路径长度l进行比较,但是是通过比较结果来反映出当前指定速度v的值是否适合,进而来调整速度v保证其与实际最佳速度无限接近。

根据本发明的实施例,提供了一种机器人的运行控制方法,属于工业机器人运动控制算法领域。如图1所示本发明的方法的一实施例的流程示意图。该机器人的运行控制方法可以包括:步骤s110和步骤s120。

在步骤s110处,获取待用户输入的所述机器人运行的一段以上程序(如用户输入的多段程序)。

在步骤s120处,控制所述机器人按一段以上程序连续运行(如控制一段以上程序中相邻两段程序之间连续运行),和/或控制所述机器人按一段以上程序进行速度切换运行,和/或规划所述机器人按一段以上程序运行的运行方式并控制所述机器人按规划的运行方式运行,以实现对所述机器人的运行控制。

例如:控制所述机器人按一段以上程序在当前周期内连续运行(如控制一段以上程序中相邻两段程序之间连续运行),和/或控制所述机器人按一段以上程序在当前周期内进行速度切换运行,和/或规划所述机器人按一段以上程序运行的运行方式并控制所述机器人按规划的运行方式运行,以实现对所述机器人的运行控制。

其中,一般情况下,一段程序需要几个主程序循环周期(目前行业主流循环周期为8ms或者4ms)才能完成,所以我这里所述的连续运行是指本次周期刚好完成第n段程序,如果本文所述控制方法判定第n+1段程序无效,那么程序会自动跳过第n+1段程序,下一个周期紧接着开始第n+2段程序。

例如:采用已运行单段长度与单段运行长度、总运行长度的判定,当即将运行的单段程序存在无法运行的情况时,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象;这样,通过采用已运行单段长度与单段运行长度、总运行长度的判定,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂停顿的问题。例如:当即将运行的单段程序存在无法运行如单段运行长度为0时,从而提前确定出主程序是否需要跳转至下一单段运行;保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象。

例如:可根据用户需求选择不同运行模式,以满足实际工况。例如:可以通过采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行。这样,通过切换运行模式,进而改变过渡点速度,以实现机器人以较快时间或者正常时间运行。

例如:采用速度提前搜索,以确定下一步速度的变化。具体地,主程序执行状态机前,提前搜索下一段运行的速度,进而提前对速度进行加减速的规划,保证相邻两段程序过渡时机器人速度能够平滑过渡,无突变。这样,通过提前搜索下一运行段的速度,进而提前加速或减速,保证相邻两段程序过渡时机器人速度能够平滑过渡。例如:主程序执行状态机前,提前搜索下一段运行的速度,进而提前对速度进行加减速的规划;保证相邻两段程序过渡时机器人速度能够平滑过渡,无突变。

例如:由于运行点设置重复存在停顿问题,本发明可解决此问题,可达到提升运行平稳性的效果;自动模式下速度模式无法根据用户需求改变不会造成难以平稳运行的问题,只是本发明还可为用户提供个性化选择,可达到提速的效果。

由此,通过获取用户输入的一段以上程序,进而控制机器人按一段以上程序连续运行和/或进行速度切换地运行,以及规划机器人按一段以上程序运行的运行方式并控制机器人按规划的运行方式运行,从而实现对机器人的运行控制,且运行的连续性和平稳性均可以得到保证;控制方式还灵活,可以满足不同用户的个性化控制需求,且可靠性高。

可选地,可以结合图2所示本发明的方法中控制所述机器人按一段以上程序连续运行的一实施例流程示意图,进一步说明步骤s120中控制所述机器人按一段以上程序连续运行的具体过程,可以包括:步骤s210至步骤s230。

步骤s210,确定一段以上程序中的当前段程序是否为有效段程序。

更可选地,可以结合图3所示本发明的方法中确定一段以上程序中的当前段程序是否为有效段程序的一实施例流程示意图,进一步说明步骤s210中确定一段以上程序中的当前段程序是否为有效段程序的具体过程,可以包括:步骤s310至步骤s340。

步骤s310,确定一段以上程序中当前段程序所需要运行的目标运行长度。

步骤s320,确定所述当前段程序的目标运行长度是否为零。

步骤s330,若所述当前段程序的目标运行长度不为零,则确定所述当前段程序为有效段程序。

或者,步骤s340,若所述当前段程序的目标运行长度为零,则确定所述当前段程序为无效段程序,并继续确定一段以上程序中处于当前段程序之后的下一段程序是否为有效段程序。例如:可以继续确定一段以上程序中处于当前段程序之后的下一段程序的目标运行长度是否为零,以继续确定一段以上程序中下一段程序是否为有效段程序。

由此,通过在确定当前段程序的目标运行长度不为零的情况下确定当前段程序为有效段程序,在确定当前段程序的目标运行长度为零的情况下确定当前段程序为无效段程序进而继续确定下一段程序是否为有效段程序,确定方式简便、且确定结果精准。

步骤s220,若所述当前段程序为有效段程序,则将所述当前段程序的目标运行点作为所述当前段程序的运行终点,规划所述当前段程序的运行路径。

步骤s230,控制所述机器人沿所述当前段程序的运行路径运行。

由此,通过在确定一段以上程序中当前段程序为有效段程序的情况下,将当前段程序的目标运行点作为其运行终点而规划当前段程序的运行路径,进而控制机器人沿当前段程序的运行路径运行,可以保证机器人在有效段程序下运行且运行可靠性高。

进一步可选地,步骤s120中控制所述机器人按一段以上程序连续运行,还可以包括:根据当前段程序的实际运行长度和目标运行长度控制机器人运行的过程。

下面结合图4所示本发明的方法中根据当前段程序的实际运行长度和目标运行长度控制机器人运行的一实施例流程示意图,进一步说明根据当前段程序的实际运行长度和目标运行长度控制机器人运行的具体过程,可以包括:步骤s410至步骤s430。

步骤s410,在控制所述机器人沿所述当前段程序的运行路径运行之后,确定一段以上程序中当前段程序的实际运行长度是否等于当前段程序所需要运行的目标运行长度。

步骤s420,若所述当前段程序的实际运行长度等于所述当前段程序的目标运行长度,则根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行。

更可选地,可以结合图5所示本发明的方法中根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行的一实施例流程示意图,进一步说明步骤s420中根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行的具体过程,可以包括:步骤s510至步骤s540。

步骤s510,确定一段以上程序中所有段程序的实际运行总长度、以及所有段所需运行的目标运行总长度。

步骤s520,确定一段以上程序中所有段程序的实际运行总长度是否等于所有段程序所需运行的目标运行总长度。

步骤s530,若一段以上程序中所有段程序的实际运行总长度等于所有段程序所需运行的目标运行总长度,则控制所述机器人停止运行。

或者,步骤s540,若一段以上程序中所有段程序的实际运行总长度不等于所有段程序所需运行的目标运行总长度,则继续确定一段以上程序中处于当前段程序之后的下一段程序是否为有效段程序。

在一个具体可选实施例中,控制所述机器人按一段以上程序连续运行,可以包括:确定一段以上程序中的至少一个有效段程序。将至少一个有效段程序中每个有效段程序的目标运行点作为每个有效段程序的运行终点,规划每个有效段程序的运行路径。控制所述机器人沿一段以上程序中每个有效段程序的运行路径运行。

其中,确定一段以上程序中的至少一个有效段程序,可以包括:确定一段以上程序中每段程序所需要运行的目标运行长度。确定一段以上程序中当前段程序的目标运行长度是否为零。若一段以上程序中当前段程序的目标运行长度不为零,则确定一段以上程序中当前段程序为有效段程序。或者,若一段以上程序中当前段程序的目标运行长度为零,则确定一段以上程序中当前段程序为无效段程序,并继续确定一段以上程序中处于当前段程序之后的下一段程序的目标运行长度是否为零,以继续确定一段以上程序中下一段程序是否为有效段程序。

在一个进一步具体可选实施例中,控制所述机器人按一段以上程序连续运行,还可以包括:在控制所述机器人沿一段以上程序中每个有效段程序的运行路径运行之后,确定一段以上程序中每个有效段程序的实际运行长度是否等于每个有效段程序所需要运行的目标运行长度。若一段以上程序中每个有效段程序的实际运行长度等于每个有效段程序的目标运行长度,则根据一段以上程序中所有有效段程序的实际运行总长度控制所述机器人运行。或者,若一段以上程序中每个有效段程序的实际运行长度不等于每个有效段程序的目标运行长度,则继续控制所述机器人沿一段以上程序中每个有效段程序的运行路径运行。

其中,根据一段以上程序中所有有效段程序的实际运行总长度控制所述机器人运行,可以包括:确定一段以上程序中所有有效段程序的实际运行总长度、以及所有有效段程序所需运行的目标运行总长度。确定一段以上程序中所有有效段程序的实际运行总长度是否等于所有有效段程序所需运行的目标运行总长度。若一段以上程序中所有有效段程序的实际运行总长度等于所有有效段程序所需运行的目标运行总长度,则控制所述机器人停止运行。或者,若一段以上程序中所有有效段程序的实际运行总长度不等于所有有效段程序所需运行的目标运行总长度,则继续确定一段以上程序中下一段程序是否为有效段程序。

由此,通过在所有段程序的实际运行总长度等于目标运行总长度的情况下,表明机器人已运行完成一段以上程序,所以控制机器人及时停止运行;在所有段程序的实际运行总长度不等于目标运行总长度的情况下,继续确定下一段程序是否为有效段程序,以控制机器人在下一段程序为有效段程序的情况下按下一段程序的运行路径运行,从而实现机器人在一段以上程序的当前周期内连续运行,运行的平稳性好、可靠性高。

或者,步骤s430,若所述当前段程序的实际运行长度不等于每个有效段程序的目标运行长度,则继续控制所述机器人沿所述当前段程序的运行路径运行。

例如:如图12所示,一种机器人连续运行方法,可以包括如下步骤:

步骤s1:用户向机器人输入多段程序。

其中,此实例中用户输入一个三段的程序,第一段程序实现p0到p1的点到点运行,第二段程序实现p1到p2的直线运行,第三段程序实现p2到p3的直线运行,其中p0为当前点,p1为第一目标点,p2为第二目标点,p3为第三目标点。

步骤s2:机器人计算每一个单段运行长度,即机器人计算每一个单段程序需要运行的长度。

其中,此实例中机器人计算出三个单段程序需要运行的长度l1、l2、l3,其中l1为机器人从p0运行到p1的长度,l2为机器人从p1运行到p2的长度,l3为机器人从p2运行到p3的长度。

例如:机器人计算每一个单段程序需要运行的长度,可以包括:机器人控制器会根据示教器端发送的命令进行处理,比如:

(1)示教器输入第一段为笛卡尔坐标下的直线运动,控制器中语言解释器会解析出机器人要以直线进行运行,那第一段的长度则可以使用两点间直线距离的公式:

其中,xp2、xp1、yp2、yp1、zp2、zp1,分别为第一段直线的两端点的坐标值。

(2)示教器输入第二段为笛卡尔坐标下的圆弧运动,控制器中语言解释器会解析出机器人要以圆弧进行运行,那第二段的长度则可以使用三点求圆弧长度的方法:

1)首先三点确定一个平面,建立一个方程;

2)建立圆心到三点距离相等方程组;

3)联立第一步和第二步中的方程解出圆心坐标进而解出圆弧半径;

4)根据圆弧起点、终点、圆心确定圆心角,进而求得圆弧运动的弧长。

其中,求直线及圆弧长度可以采用了较为常用的数学方法。

步骤s3:机器人计算总运行长度,即机器人计算多段程序需要运行的总长度。

其中,此实例中机器人计算出三个单段程序需要运行的总长度la,其中la为从p0运行到p3的总长度,即la=l1+l2+l3。

步骤s4:机器人判断第n段运行长度是否为零。

其中,此实例中机器人判断第一段运行长度l1是否为零,若为零,机器人进行n+1操作并跳转至步骤4判定第二段运行长度l2是否为零,若不为零,机器人继续运行步骤5,此步骤即可提前判断出第一段程序是否无效,避免一个循环周期内机器人的停顿。

例如:判断第n段运行长度是否为零的目的是为了确保机器人不存在一个循环周期的停顿,比如用户将p2设为第二段直线运行的目标点,又将p2设为第三段直线运行的目标点,如果不做运行长度是否为零的判定,机器人走完第二段直线后会停止一个循环周期,如果机器人用于焊接,一个循环周期的停顿会影响加工工艺。

如果第n段运行长度为零,则代表第n段程序无效,机器人跳过第n段,运行第n+1段。如果第n段运行长度不为零,则代表第n段程序有效,机器人正常运行第n段。

例如:如果第n段运行长度为零,则判定第n段为无效段,则机器人计算第n+1段,机器人控制器在接收到示教器传下来的运行程序时,会判断每一段的程序是否为零(即是否无效)。判定的方法可以为:根据要运行的路程而定,例如第n段运行路程为直线,则控制器计算起始点和末端点的距离是否为零(如果为零则认为无效);如果第n段运行路程为圆弧,则控制器根据上述数学方法计算圆弧长度是否为零,如果为零则认为无效。也就是说,如果当前单段运行长度为0时,机器人即可直接跳过本段程序,运行下一段程序,避免机器人出现一个运行周期内的卡顿情况。

步骤s5:机器人将第n段目标点作为此段(即第n段)终点进行规划。

其中,此实例中假设l1为零,l2不为零,机器人进行步骤4后将p2点作为第二段的目标终点进行规划。

步骤s6:机器人沿着所规划的路径运行。

其中,此实例中机器人以p2作为目标点,沿着所规划的路径运行。

步骤s7:机器人计算第n段已运行长度。

其中,此实例中机器人计算d2,其中d2为第二段已运行的长度。

步骤s8:机器人判断第n段已运行长度是否等于第n段单段运行长度。

其中,此实例中机器人判定第二段已运行的长度d2是否等于第二段运行长度l2,若不相等机器人运行步骤6,若相等机器人继续运行步骤9。

步骤s9:机器人判断各段已运行长度之和是否等于总运行长度。

其中,此实例中机器人判断da是否等于la,其中da为各段已运行长度之和,即da=d1+d2+d3,若不相等机器人进行n+1操作并跳转至步骤4,若相等机器人运行步骤10,假设l3不为零,机器人进行n+1操作并运行步骤4。

步骤s10:机器人停止运行。

其中,此实例中机器人已运行完第三段并判断da等于la所以停止运行。

由此,通过在控制机器人沿当前段程序的运行路径运行后,在当前段程序的实际运行长度与目标运行长度相等的情况下根据所有段程序的实际运行总长度控制机器人运行,或在当前段程序的实际运行长度与目标运行长度不相等的情况下继续控制机器人沿当前段程序的运行路径运行,可以根据当前段程序的实际运行长度及时调整机器人的运行过程,可靠性高、安全性强。

可选地,可以结合图6所示本发明的方法中控制所述机器人按一段以上程序进行速度切换运行的一实施例流程示意图,进一步说明步骤s120中控制所述机器人按一段以上程序进行速度切换运行的具体过程,可以包括:步骤s610至步骤s630。

步骤s610,确定所述机器人当前正在读取的一段以上程序中当前段程序所在段数是否小于一段以上程序的总段数。

步骤s620,若所述当前段程序所在段数小于所述总段数,则结合所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度控制所述机器人运行。

更可选地,可以结合图7所示本发明的方法中结合所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度控制所述机器人运行的一实施例流程示意图,进一步说明步骤s620中结合所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度控制所述机器人运行的具体过程,可以包括:步骤s710至步骤s740。

步骤s710,获取用户选择的可以用于控制一段以上程序运行的速度模式,并获取所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度。其中,所述速度模式,可以包括:第一模式或第二模式,所述机器人在所述第一模式下的运行速度低于所述机器人在所述第二模式下的运行速度。

步骤s720,确定所述机器人的速度模式是否为第一模式。

步骤s730,若所述速度模式为第一模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较小值作为所述当前段程序的末速度。

或者,步骤s740,若所述速度模式为第二模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较大值作为所述当前段程序的末速度。

例如:主程序根据用户选择的模式,自动匹配不同的速度模式,一种是取当前运行速度与下一运行速度中较小值作为本段末速度,即普通模式;一种是取当前运行速度与下一运行速度中较大值作为本段末速度,即快速模式。在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行。

由此,通过在用户选择的机器人的速度模式为第一模式即普通模式时以当前段程序和下一段程序的运行速度中较小值作为当前段程序的末速度,在用户选择的机器人的速度模式为第二模式即快速模式时以当前段程序和下一段程序的运行速度中较大值作为当前段程序的末速度,从而可以灵活控制机器人的运行速度或运行时间,且控制方式简便、控制结果精准。

进一步更可选地,步骤s620中结合所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度控制所述机器人运行,还可以包括:根据下一段程序所在段数和一段以上程序的总段数控制机器人运行的过程。

下面结合图8所示本发明的方法中根据下一段程序所在段数和一段以上程序的总段数控制机器人运行的一实施例流程示意图,进一步说明根据下一段程序所在段数和一段以上程序的总段数控制机器人运行的具体过程,可以包括:步骤s810至步骤s830。

步骤s810,在将所述当前段程序的运行速度与下一段程序的运行速度中的较小值作为所述当前段程序的末速度、或者将所述当前段程序的运行速度与下一段程序的运行速度中的较大值作为所述当前段程序的末速度之后,确定一段以上程序中处于当前段程序之后的下一段程序所在段数是否小于一段以上程序的总段数。

步骤s820,若所述下一段程序所在段数小于所述总段数,则将所述下一段程序作为所述机器人当前正在读取的当前段程序,以继续确定所述机器人当前正在读取的一段以上程序中新的当前段程序所在段数是否小于一段以上程序的总段数。

或者,步骤s830,若所述下一段程序所在段数不小于所述总段数,则将所述下一段程序的末速度置为零。

由此,通过在下一段程序所在段数小于总段数的情况下以下一段程序作为当前段程序继续控制机器人运行,在下一段程序所在段数不小于总段数的情况下将下一段程序的末速度置为零,从而实现对机器人运行速度的继续控制,控制的可靠性和安全性都可以得到保证。

或者,步骤s630,若所述当前段程序所在段数不小于所述总段数,则将所述当前段程序的末速度置为零。

由此,通过在当前段程序所在段数小于总段数的情况下,结合当前段程序和下一段程序的运行速度控制机器人运行,在当前段程序所在段数不小于总段数的情况下认为当前段程序为末端程序所以将当前段程序的末速度置为零,可以实现机器人按不同运行速度运行,运行速度切换的灵活性好、适用范围广。

可选地,步骤s120中规划所述机器人按一段以上程序运行的运行方式,可以包括:在将所述当前段程序的末速度置为零、或将所述下一段程序的末速度置为零之后,在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式,或者,在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式。

其中,所述运行方式,可以包括:运行速度、末速度中的至少之一。

由此,通过根据当前段程序的运行方式规划下一段程序的运行方式,或根据当前周期的运行方式规划下一周期的运行方式,可以精准而可靠地实现下一周期的运行控制,控制效率和控制效果都可以得到保证。

更可选地,可以结合图9所示本发明的方法中在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式的一实施例流程示意图,进一步说明在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式的具体过程,可以包括:步骤s910和步骤s920。

步骤s910,确定一段以上程序中当前段程序运行结束时的运行方式。

步骤s920,将一段以上程序中当前段程序的运行方式规划为一段以上程序中处于当前段程序之后的下一段程序的运行方式。

由此,通过将当前段程序运行结束时确定的运行方式规划为下一段程序的运行方式,有利于提升下一段程序下机器人运行的精准性和高效性。

更可选地,可以结合图10所示本发明的方法中在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式的一实施例流程示意图,进一步说明在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式的具体过程,可以包括:步骤s1010和步骤s1020。

步骤s1010,确定一段以上程序在当前周期运行结束时的运行方式。

步骤s1020,将一段以上程序在当前周期的运行方式规划为一段以上程序中在处于当前周期之后的下一周期的运行方式。

例如:如图13和图14所示,“采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行”的方案和“采用速度提前搜索,以确定下一步速度的变化”的方案,可以包括如下步骤:

步骤s1:用户向机器人输入多段程序。

其中,此实例中用户输入一个四段的程序,第一段程序实现速度为30mm/s运行,第二段程序实现速度为25mm/s运行,第三段程序实现速度为40mm/s运行,第四段程序实现速度为20mm/s运行。

步骤s2:用户选择多段自动运行普通模式或者快速模式。

此实例中用户选择普通模式。

步骤s3:n是否小于程序段数,n为机器人当前正在读取的程序段数。

其中,此实例中机器人读取第一段程序,即n取1,n小于程序段数4,机器人运行步骤4。

步骤s4:机器人读取第n段和第n+1段运动速度或者机器人读取第n段运动速度,此实例中由于n为1时小于程序段数4,机器人读取第1段和第2段运动速度。

步骤s5:机器人判定当前用户选择的是否为普通模式,此实例中,用户选择的为普通模式,机器人运行步骤6。

步骤s6:机器人将第n+1段程序的运行速度和第n段程序的运行速度比较,取两者中的较小值作为第n段程序的末速度。

其中,此实例中机器人将第2段程序的运行速度25mm/s和第1段程序的运行速度30mm/s进行比较,取两者中的较小值即25mm/s作为第一段程序的末速度,机器人继续运行步骤7。

例如:快速模式相比于普通模式而言,会更快过渡到下一个运行程序,减少运行时间,具体到算法处理上,快速模式取第n段运行速度和第n+1段运行速度的较大值作为第n段运行速度的末速度,而普通模式取第n段运行速度和第n+1段运行速度的较小值作为第n段运行速度的末速度。两种不同的确定末速度的方式最终反映出来的效果就是普通模式会以更多的时间在较低的速度运行,高速模式会以更多的时间在较高的速度运行,那么两者的运行总时间便出现了如图14的差异,如果在工厂中长时间运行,这样的时间累加效应更明显,高速模式可以更多用于搬运等对速度要求较高的场合,普通模式更适合应用于焊接、喷涂等对准确性有要求的场合。也就是说,用户可根据需要选择不同的运动模式(包括普通模式或者快速模式),实现在过渡段的平滑过渡。

步骤s7:机器人判断n+1是否小于程序段数,n+1为下一段程序的段数。

此实例中n+1为2,小于程序段数4,此时将进行n+1操作,n值取2并跳转至步骤3,依次运行步骤3、步骤4、步骤5、步骤6、步骤7,此时n+1为3仍然小于程序段数4,再次进行n+1操作并跳转至步骤3,依次运行步骤3、步骤4、步骤5、步骤6、步骤7,此时n+1为4不小于程序段数4,执行步骤8。

步骤s8:为机器人将第n+1段程序的末速度置为0mm/s。

此实例中机器人将第4段程序的末速度置为0mm/s。

步骤s9:机器人以确定的运行速度、末速度规划各段程序。

此实例中机器人以第一段程序的起始速度(0mm/s)、运行速度(30mm/s)、末速度(25mm/s),第二段程序的起始速度(25mm/s)、运行速度(25mm/s)、末速度(25mm/s),第三段程序的起始速度(25mm/s)、运行速度(40mm/s)、末速度(20mm/s),第四段程序的起始速度(20mm/s)、运行速度(20mm/s)、末速度(0mm/s)等参数作为运动规划输入量进行普通模式下的规划。

步骤s10:机器人沿着各段规划路径顺序运行直至完成所有路径,此实例中机器人以普通模式进行运行。

其中,当用户选择快速模式运行时,机器人以第一段程序的起始速度(0mm/s)、运行速度(30mm/s)、末速度(30mm/s),第二段程序的起始速度(30mm/s)、运行速度(25mm/s)、末速度(40mm/s),第三段程序的起始速度(40mm/s)、运行速度(40mm/s)、末速度(40mm/s),第四段程序的起始速度(40mm/s)、运行速度(20mm/s)、末速度(0mm/s)等参数作为运动规划输入量进行快速模式下的规划。也即是说在用户给定起始点、目标点的情况下,机器人运行的路程为定值,当机器人在满足用户设定的速度值前提下,整个路径中相比于普通模式机器人在较多的时间以30mm/s和40mm/s速度运行,整体运行时间将会更短,以达到快速运行的要求。

由此,通过将当前周期运行结束时确定的运行方式规划为下一周期的运行方式,有利于提升下一周期中机器人运行的精准性和高效性。

经大量的试验验证,采用本实施例的技术方案,通过采用已运行单段长度与单段运行长度、总运行长度的判定,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂停顿的问题,提升了机器人的运行平稳性和安全性。

根据本发明的实施例,还提供了对应于机器人的运行控制方法的一种机器人的运行控制装置。参见图11所示本发明的装置的一实施例的结构示意图。该机器人的运行控制装置可以包括:通信单元102和控制单元104。

在一个可选例子中,通信单元102,可以用于获取待用户输入的所述机器人运行的一段以上程序(如用户输入的多段程序)。该通信单元102的具体功能及处理参见步骤s110。

在一个可选例子中,控制单元104,可以用于控制所述机器人按一段以上程序连续运行(如控制一段以上程序中相邻两段程序之间连续运行),和/或控制所述机器人按一段以上程序进行速度切换运行,和/或规划所述机器人按一段以上程序运行的运行方式并控制所述机器人按规划的运行方式运行,以实现对所述机器人的运行控制。该控制单元104的具体功能及处理参见步骤s120。

例如:控制单元104,可以用于控制所述机器人按一段以上程序在当前周期内连续运行(如控制一段以上程序中相邻两段程序之间连续运行),和/或控制所述机器人按一段以上程序在当前周期内进行速度切换运行,和/或规划所述机器人按一段以上程序运行的运行方式并控制所述机器人按规划的运行方式运行,以实现对所述机器人的运行控制。该控制单元104的具体功能及处理参见步骤s120。

其中,一般情况下,一段程序需要几个主程序循环周期(目前行业主流循环周期为8ms或者4ms)才能完成,所以我这里所述的连续运行是指本次周期刚好完成第n段程序,如果本文所述控制方法判定第n+1段程序无效,那么程序会自动跳过第n+1段程序,下一个周期紧接着开始第n+2段程序。

例如:采用已运行单段长度与单段运行长度、总运行长度的判定,当即将运行的单段程序存在无法运行的情况时,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象;这样,通过采用已运行单段长度与单段运行长度、总运行长度的判定,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂停顿的问题。例如:当即将运行的单段程序存在无法运行如单段运行长度为0时,从而提前确定出主程序是否需要跳转至下一单段运行;保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象。

例如:可根据用户需求选择不同运行模式,以满足实际工况。例如:可以通过采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行。这样,通过切换运行模式,进而改变过渡点速度,以实现机器人以较快时间或者正常时间运行。

例如:采用速度提前搜索,以确定下一步速度的变化。具体地,主程序执行状态机前,提前搜索下一段运行的速度,进而提前对速度进行加减速的规划,保证相邻两段程序过渡时机器人速度能够平滑过渡,无突变。这样,通过提前搜索下一运行段的速度,进而提前加速或减速,保证相邻两段程序过渡时机器人速度能够平滑过渡。例如:主程序执行状态机前,提前搜索下一段运行的速度,进而提前对速度进行加减速的规划;保证相邻两段程序过渡时机器人速度能够平滑过渡,无突变。

由此,通过获取用户输入的一段以上程序,进而控制机器人按一段以上程序连续运行和/或进行速度切换地运行,以及规划机器人按一段以上程序运行的运行方式并控制机器人按规划的运行方式运行,从而实现对机器人的运行控制,且运行的连续性和平稳性均可以得到保证;控制方式还灵活,可以满足不同用户的个性化控制需求,且可靠性高。

可选地,所述控制单元104控制所述机器人按一段以上程序连续运行,可以包括:

所述控制单元104,具体还可以用于确定一段以上程序中的当前段程序是否为有效段程序。该控制单元104的具体功能及处理还参见步骤s210。

更可选地,13.根据权利要求12所述的装置,其特征在于,所述控制单元104确定一段以上程序中的当前段程序是否为有效段程序,可以包括:

所述控制单元104,具体还可以用于确定一段以上程序中当前段程序所需要运行的目标运行长度。该控制单元104的具体功能及处理还参见步骤s310。

所述控制单元104,具体还可以用于确定所述当前段程序的目标运行长度是否为零。该控制单元104的具体功能及处理还参见步骤s320。

所述控制单元104,具体还可以用于若所述当前段程序的目标运行长度不为零,则确定所述当前段程序为有效段程序。该控制单元104的具体功能及处理还参见步骤s330。

或者,所述控制单元104,具体还可以用于若所述当前段程序的目标运行长度为零,则确定所述当前段程序为无效段程序,并继续确定一段以上程序中处于当前段程序之后的下一段程序是否为有效段程序。例如:可以继续确定一段以上程序中处于当前段程序之后的下一段程序的目标运行长度是否为零,以继续确定一段以上程序中下一段程序是否为有效段程序。该控制单元104的具体功能及处理还参见步骤s340。

由此,通过在确定当前段程序的目标运行长度不为零的情况下确定当前段程序为有效段程序,在确定当前段程序的目标运行长度为零的情况下确定当前段程序为无效段程序进而继续确定下一段程序是否为有效段程序,确定方式简便、且确定结果精准。

所述控制单元104,具体还可以用于若所述当前段程序为有效段程序,则将所述当前段程序的目标运行点作为所述当前段程序的运行终点,规划所述当前段程序的运行路径。该控制单元104的具体功能及处理还参见步骤s220。

所述控制单元104,具体还可以用于控制所述机器人沿所述当前段程序的运行路径运行。该控制单元104的具体功能及处理还参见步骤s230。

由此,通过在确定一段以上程序中当前段程序为有效段程序的情况下,将当前段程序的目标运行点作为其运行终点而规划当前段程序的运行路径,进而控制机器人沿当前段程序的运行路径运行,可以保证机器人在有效段程序下运行且运行可靠性高。

进一步可选地,所述控制单元104控制所述机器人按一段以上程序连续运行,还可以包括:根据当前段程序的实际运行长度和目标运行长度控制机器人运行的过程,具体如下:

所述控制单元104,具体还可以用于在控制所述机器人沿所述当前段程序的运行路径运行之后,确定一段以上程序中当前段程序的实际运行长度是否等于当前段程序所需要运行的目标运行长度。该控制单元104的具体功能及处理还参见步骤s410。

所述控制单元104,具体还可以用于若所述当前段程序的实际运行长度等于所述当前段程序的目标运行长度,则根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行。该控制单元104的具体功能及处理还参见步骤s420。

更可选地,15.根据权利要求14所述的装置,其特征在于,所述控制单元104根据一段以上程序中所有段程序的实际运行总长度控制所述机器人运行,可以包括:

所述控制单元104,具体还可以用于确定一段以上程序中所有段程序的实际运行总长度、以及所有段所需运行的目标运行总长度。该控制单元104的具体功能及处理还参见步骤s510。

所述控制单元104,具体还可以用于确定一段以上程序中所有段程序的实际运行总长度是否等于所有段程序所需运行的目标运行总长度。该控制单元104的具体功能及处理还参见步骤s520。

所述控制单元104,具体还可以用于若一段以上程序中所有段程序的实际运行总长度等于所有段程序所需运行的目标运行总长度,则控制所述机器人停止运行。该控制单元104的具体功能及处理还参见步骤s530。

或者,所述控制单元104,具体还可以用于若一段以上程序中所有段程序的实际运行总长度不等于所有段程序所需运行的目标运行总长度,则继续确定一段以上程序中处于当前段程序之后的下一段程序是否为有效段程序。该控制单元104的具体功能及处理还参见步骤s540。

在一个具体可选实施例中,所述控制单元104控制所述机器人按一段以上程序连续运行,可以包括:确定一段以上程序中的至少一个有效段程序。将至少一个有效段程序中每个有效段程序的目标运行点作为每个有效段程序的运行终点,规划每个有效段程序的运行路径。控制所述机器人沿一段以上程序中每个有效段程序的运行路径运行。

其中,所述控制单元104确定一段以上程序中的至少一个有效段程序,可以包括:确定一段以上程序中每段程序所需要运行的目标运行长度。确定一段以上程序中当前段程序的目标运行长度是否为零。若一段以上程序中当前段程序的目标运行长度不为零,则确定一段以上程序中当前段程序为有效段程序。或者,若一段以上程序中当前段程序的目标运行长度为零,则确定一段以上程序中当前段程序为无效段程序,并继续确定一段以上程序中处于当前段程序之后的下一段程序的目标运行长度是否为零,以继续确定一段以上程序中下一段程序是否为有效段程序。

在一个进一步具体可选实施例中,所述控制单元104控制所述机器人按一段以上程序连续运行,还可以包括:在控制所述机器人沿一段以上程序中每个有效段程序的运行路径运行之后,确定一段以上程序中每个有效段程序的实际运行长度是否等于每个有效段程序所需要运行的目标运行长度。若一段以上程序中每个有效段程序的实际运行长度等于每个有效段程序的目标运行长度,则根据一段以上程序中所有有效段程序的实际运行总长度控制所述机器人运行。或者,若一段以上程序中每个有效段程序的实际运行长度不等于每个有效段程序的目标运行长度,则继续控制所述机器人沿一段以上程序中每个有效段程序的运行路径运行。

其中,所述控制单元104根据一段以上程序中所有有效段程序的实际运行总长度控制所述机器人运行,可以包括:确定一段以上程序中所有有效段程序的实际运行总长度、以及所有有效段程序所需运行的目标运行总长度。确定一段以上程序中所有有效段程序的实际运行总长度是否等于所有有效段程序所需运行的目标运行总长度。若一段以上程序中所有有效段程序的实际运行总长度等于所有有效段程序所需运行的目标运行总长度,则控制所述机器人停止运行。或者,若一段以上程序中所有有效段程序的实际运行总长度不等于所有有效段程序所需运行的目标运行总长度,则继续确定一段以上程序中下一段程序是否为有效段程序。

由此,通过在所有段程序的实际运行总长度等于目标运行总长度的情况下,表明机器人已运行完成一段以上程序,所以控制机器人及时停止运行;在所有段程序的实际运行总长度不等于目标运行总长度的情况下,继续确定下一段程序是否为有效段程序,以控制机器人在下一段程序为有效段程序的情况下按下一段程序的运行路径运行,从而实现机器人在一段以上程序的当前周期内连续运行,运行的平稳性好、可靠性高。

或者,所述控制单元104,具体还可以用于若所述当前段程序的实际运行长度不等于每个有效段程序的目标运行长度,则继续控制所述机器人沿所述当前段程序的运行路径运行。该控制单元104的具体功能及处理还参见步骤s430。

例如:如图12所示,一种机器人连续运行方法,可以包括如下步骤:

步骤s1:用户向机器人输入多段程序。

其中,此实例中用户输入一个三段的程序,第一段程序实现p0到p1的点到点运行,第二段程序实现p1到p2的直线运行,第三段程序实现p2到p3的直线运行,其中p0为当前点,p1为第一目标点,p2为第二目标点,p3为第三目标点。

步骤s2:机器人计算每一个单段运行长度,即机器人计算每一个单段程序需要运行的长度。

其中,此实例中机器人计算出三个单段程序需要运行的长度l1、l2、l3,其中l1为机器人从p0运行到p1的长度,l2为机器人从p1运行到p2的长度,l3为机器人从p2运行到p3的长度。

例如:机器人计算每一个单段程序需要运行的长度,可以包括:机器人控制器会根据示教器端发送的命令进行处理,比如:

(1)示教器输入第一段为笛卡尔坐标下的点到点运动,控制器中语言解释器会解析出机器人要以点到点进行运行,那第一段的长度会使用两点间最短距离求得。

(2)示教器输入第二段为笛卡尔坐标下的圆弧运动,控制器中语言解释器会解析出机器人要以圆弧进行运行,那第二段的长度则可以使用三点求圆弧长度的方法:

1)首先三点确定一个平面,建立一个方程;

2)建立圆心到三点距离相等方程组;

3)联立第一步和第二步中的方程解出圆心坐标进而解出圆弧半径;

4)根据圆弧起点、终点、圆心确定圆心角,进而求得圆弧运动的弧长。

其中,求直线及圆弧长度可以采用了较为常用的数学方法。

例如:第二段输入为直线,示教器输入第一段为笛卡尔坐标下的直线运动,控制器中语言解释器会解析出机器人要以直线进行运行,那第一段的长度则可以使用两点间直线距离的公式:

其中,xp2、xp1、yp2、yp1、zp2、zp1,分别为第一段直线的两端点的坐标值。

步骤s3:机器人计算总运行长度,即机器人计算多段程序需要运行的总长度。

其中,此实例中机器人计算出三个单段程序需要运行的总长度la,其中la为从p0运行到p3的总长度,即la=l1+l2+l3。

步骤s4:机器人判断第n段运行长度是否为零。

其中,此实例中机器人判断第一段运行长度l1是否为零,若为零,机器人进行n+1操作并跳转至步骤4判定第二段运行长度l2是否为零,若不为零,机器人继续运行步骤5,此步骤即可提前判断出第一段程序是否无效,避免一个循环周期内机器人的停顿。

例如:判断第n段运行长度是否为零的目的是为了确保机器人不存在一个循环周期的停顿,比如用户将p2设为第二段直线运行的目标点,又将p2设为第三段直线运行的目标点,如果不做运行长度是否为零的判定,机器人走完第二段直线后会停止一个循环周期,如果机器人用于焊接,一个循环周期的停顿会影响加工工艺。

如果第n段运行长度为零,则代表第n段程序无效,机器人跳过第n段,运行第n+1段。如果第n段运行长度不为零,则代表第n段程序有效,机器人正常运行第n段。

例如:如果第n段运行长度为零,则判定第n段为无效段,则机器人计算第n+1段,机器人控制器在接收到示教器传下来的运行程序时,会判断每一段的程序是否为零(即是否无效)。判定的方法可以为:根据要运行的路程而定,例如第n段运行路程为直线,则控制器计算起始点和末端点的距离是否为零(如果为零则认为无效);如果第n段运行路程为圆弧,则控制器根据上述数学方法计算圆弧长度是否为零,如果为零则认为无效。也就是说,如果当前单段运行长度为0时,机器人即可直接跳过本段程序,运行下一段程序,避免机器人出现一个运行周期内的卡顿情况。

步骤s5:机器人将第n段目标点作为此段(即第n段)终点进行规划。

其中,此实例中假设l1为零,l2不为零,机器人进行步骤4后将p2点作为第二段的目标终点进行规划。

步骤s6:机器人沿着所规划的路径运行。

其中,此实例中机器人以p2作为目标点,沿着所规划的路径运行。

步骤s7:机器人计算第n段已运行长度。

其中,此实例中机器人计算d2,其中d2为第二段已运行的长度。

步骤s8:机器人判断第n段已运行长度是否等于第n段单段运行长度。

其中,此实例中机器人判定第二段已运行的长度d2是否等于第二段运行长度l2,若不相等机器人运行步骤6,若相等机器人继续运行步骤9。

步骤s9:机器人判断各段已运行长度之和是否等于总运行长度。

其中,此实例中机器人判断da是否等于la,其中da为各段已运行长度之和,即da=d1+d2+d3,若不相等机器人进行n+1操作并跳转至步骤4,若相等机器人运行步骤10,假设l3不为零,机器人进行n+1操作并运行步骤4。

步骤s10:机器人停止运行。

其中,此实例中机器人已运行完第三段并判断da等于la所以停止运行。

由此,通过在控制机器人沿当前段程序的运行路径运行后,在当前段程序的实际运行长度与目标运行长度相等的情况下根据所有段程序的实际运行总长度控制机器人运行,或在当前段程序的实际运行长度与目标运行长度不相等的情况下继续控制机器人沿当前段程序的运行路径运行,可以根据当前段程序的实际运行长度及时调整机器人的运行过程,可靠性高、安全性强。

可选地,所述控制单元104控制所述机器人按一段以上程序进行速度切换运行,可以包括:

所述控制单元104,具体还可以用于确定所述机器人当前正在读取的一段以上程序中当前段程序所在段数是否小于一段以上程序的总段数。该控制单元104的具体功能及处理还参见步骤s610。

所述控制单元104,具体还可以用于若所述当前段程序所在段数小于所述总段数,则结合所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度控制所述机器人运行。该控制单元104的具体功能及处理还参见步骤s620。

更可选地,17.根据权利要求16所述的装置,其特征在于,所述控制单元104结合所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度控制所述机器人运行,可以包括:

所述通信单元102,具体还可以用于获取用户选择的可以用于控制一段以上程序运行的速度模式,并获取所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度。其中,所述速度模式,可以包括:第一模式或第二模式,所述机器人在所述第一模式下的运行速度低于所述机器人在所述第二模式下的运行速度。该控制单元104的具体功能及处理还参见步骤s710。

所述控制单元104,具体还可以用于确定所述机器人的速度模式是否为第一模式。该控制单元104的具体功能及处理还参见步骤s720。

所述控制单元104,具体还可以用于若所述速度模式为第一模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较小值作为所述当前段程序的末速度。该控制单元104的具体功能及处理还参见步骤s730。

或者,所述控制单元104,具体还可以用于若所述速度模式为第二模式,则将所述当前段程序的运行速度与下一段程序的运行速度中的较大值作为所述当前段程序的末速度。该控制单元104的具体功能及处理还参见步骤s740。

例如:主程序根据用户选择的模式,自动匹配不同的速度模式,一种是取当前运行速度与下一运行速度中较小值作为本段末速度,即普通模式;一种是取当前运行速度与下一运行速度中较大值作为本段末速度,即快速模式。在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行。

由此,通过在用户选择的机器人的速度模式为第一模式即普通模式时以当前段程序和下一段程序的运行速度中较小值作为当前段程序的末速度,在用户选择的机器人的速度模式为第二模式即快速模式时以当前段程序和下一段程序的运行速度中较大值作为当前段程序的末速度,从而可以灵活控制机器人的运行速度或运行时间,且控制方式简便、控制结果精准。

进一步更可选地,所述控制单元104结合所述当前段程序的运行速度、以及一段以上程序中处于当前段程序之后的下一段程序的运行速度控制所述机器人运行,还可以包括:

所述控制单元104,具体还可以用于在将所述当前段程序的运行速度与下一段程序的运行速度中的较小值作为所述当前段程序的末速度、或者将所述当前段程序的运行速度与下一段程序的运行速度中的较大值作为所述当前段程序的末速度之后,确定一段以上程序中处于当前段程序之后的下一段程序所在段数是否小于一段以上程序的总段数。该控制单元104的具体功能及处理还参见步骤s810。

所述控制单元104,具体还可以用于若所述下一段程序所在段数小于所述总段数,则将所述下一段程序作为所述机器人当前正在读取的当前段程序,以继续确定所述机器人当前正在读取的一段以上程序中新的当前段程序所在段数是否小于一段以上程序的总段数。该控制单元104的具体功能及处理还参见步骤s820。

或者,所述控制单元104,具体还可以用于若所述下一段程序所在段数不小于所述总段数,则将所述下一段程序的末速度置为零。该控制单元104的具体功能及处理还参见步骤s830。

由此,通过在下一段程序所在段数小于总段数的情况下以下一段程序作为当前段程序继续控制机器人运行,在下一段程序所在段数不小于总段数的情况下将下一段程序的末速度置为零,从而实现对机器人运行速度的继续控制,控制的可靠性和安全性都可以得到保证。

或者,所述控制单元104,具体还可以用于若所述当前段程序所在段数不小于所述总段数,则将所述当前段程序的末速度置为零。该控制单元104的具体功能及处理还参见步骤s630。

由此,通过在当前段程序所在段数小于总段数的情况下,结合当前段程序和下一段程序的运行速度控制机器人运行,在当前段程序所在段数不小于总段数的情况下认为当前段程序为末端程序所以将当前段程序的末速度置为零,可以实现机器人按不同运行速度运行,运行速度切换的灵活性好、适用范围广。

可选地,所述控制单元104规划所述机器人按一段以上程序运行的运行方式,可以包括:所述控制单元104,具体还可以用于在将所述当前段程序的末速度置为零、或将所述下一段程序的末速度置为零之后,在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式;或者,所述控制单元104,具体还可以用于在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式。

其中,所述运行方式,可以包括:运行速度、末速度中的至少之一。

由此,通过根据当前段程序的运行方式规划下一段程序的运行方式,或根据当前周期的运行方式规划下一周期的运行方式,可以精准而可靠地实现下一周期的运行控制,控制效率和控制效果都可以得到保证。

更可选地,所述控制单元104在一段以上程序中当前段程序运行结束时规划下一段程序的运行方式,可以包括:

所述控制单元104,具体还可以用于确定一段以上程序中当前段程序运行结束时的运行方式。该控制单元104的具体功能及处理还参见步骤s910。

所述控制单元104,具体还可以用于将一段以上程序中当前段程序的运行方式规划为一段以上程序中处于当前段程序之后的下一段程序的运行方式。该控制单元104的具体功能及处理还参见步骤s920。

由此,通过将当前段程序运行结束时确定的运行方式规划为下一段程序的运行方式,有利于提升下一段程序下机器人运行的精准性和高效性。

更可选地,所述控制单元104在一段以上程序在当前周期运行结束时规划一段以上程序在下一周期的运行方式,可以包括:

所述控制单元104,具体还可以用于确定一段以上程序在当前周期运行结束时的运行方式。该控制单元104的具体功能及处理还参见步骤s1010。

所述控制单元104,具体还可以用于将一段以上程序在当前周期的运行方式规划为一段以上程序中在处于当前周期之后的下一周期的运行方式。该控制单元104的具体功能及处理还参见步骤s1020。

例如:如图13和图14所示,“采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行”的方案和“采用速度提前搜索,以确定下一步速度的变化”的方案,可以包括如下步骤:

步骤s1:用户向机器人输入多段程序。

其中,此实例中用户输入一个四段的程序,第一段程序实现速度为30mm/s运行,第二段程序实现速度为25mm/s运行,第三段程序实现速度为40mm/s运行,第四段程序实现速度为20mm/s运行。

步骤s2:用户选择多段自动运行普通模式或者快速模式。

此实例中用户选择普通模式。

步骤s3:n是否小于程序段数,n为机器人当前正在读取的程序段数。

其中,此实例中机器人读取第一段程序,即n取1,n小于程序段数4,机器人运行步骤4。

步骤s4:机器人读取第n段和第n+1段运动速度或者机器人读取第n段运动速度,此实例中由于n为1时小于程序段数4,机器人读取第1段和第2段运动速度。

步骤s5:机器人判定当前用户选择的是否为普通模式,此实例中,用户选择的为普通模式,机器人运行步骤6。

步骤s6:机器人将第n+1段程序的运行速度和第n段程序的运行速度比较,取两者中的较小值作为第n段程序的末速度。

其中,此实例中机器人将第2段程序的运行速度25mm/s和第1段程序的运行速度30mm/s进行比较,取两者中的较小值即25mm/s作为第一段程序的末速度,机器人继续运行步骤7。

例如:快速模式相比于普通模式而言,会更快过渡到下一个运行程序,减少运行时间,具体到算法处理上,快速模式取第n段运行速度和第n+1段运行速度的较大值作为第n段运行速度的末速度,而普通模式取第n段运行速度和第n+1段运行速度的较小值作为第n段运行速度的末速度。两种不同的确定末速度的方式最终反映出来的效果就是普通模式会以更多的时间在较低的速度运行,高速模式会以更多的时间在较高的速度运行,那么两者的运行总时间便出现了如图14的差异,如果在工厂中长时间运行,这样的时间累加效应更明显,高速模式可以更多用于搬运等对速度要求较高的场合,普通模式更适合应用于焊接、喷涂等对准确性有要求的场合。也就是说,用户可根据需要选择不同的运动模式(包括普通模式或者快速模式),实现在过渡段的平滑过渡。

步骤s7:机器人判断n+1是否小于程序段数,n+1为下一段程序的段数。

此实例中n+1为2,小于程序段数4,此时将进行n+1操作,n值取2并跳转至步骤3,依次运行步骤3、步骤4、步骤5、步骤6、步骤7,此时n+1为3仍然小于程序段数4,再次进行n+1操作并跳转至步骤3,依次运行步骤3、步骤4、步骤5、步骤6、步骤7,此时n+1为4不小于程序段数4,执行步骤8。

步骤s8:为机器人将第n+1段程序的末速度置为0mm/s。

此实例中机器人将第4段程序的末速度置为0mm/s。

步骤s9:机器人以确定的运行速度、末速度规划各段程序。

此实例中机器人以第一段程序的起始速度(0mm/s)、运行速度(30mm/s)、末速度(25mm/s),第二段程序的起始速度(25mm/s)、运行速度(25mm/s)、末速度(25mm/s),第三段程序的起始速度(25mm/s)、运行速度(40mm/s)、末速度(20mm/s),第四段程序的起始速度(20mm/s)、运行速度(20mm/s)、末速度(0mm/s)等参数作为运动规划输入量进行普通模式下的规划。

步骤s10:机器人沿着各段规划路径顺序运行直至完成所有路径,此实例中机器人以普通模式进行运行。

其中,当用户选择快速模式运行时,机器人以第一段程序的起始速度(0mm/s)、运行速度(30mm/s)、末速度(30mm/s),第二段程序的起始速度(30mm/s)、运行速度(25mm/s)、末速度(40mm/s),第三段程序的起始速度(40mm/s)、运行速度(40mm/s)、末速度(40mm/s),第四段程序的起始速度(40mm/s)、运行速度(20mm/s)、末速度(0mm/s)等参数作为运动规划输入量进行快速模式下的规划。也即是说在用户给定起始点、目标点的情况下,机器人运行的路程为定值,当机器人在满足用户设定的速度值前提下,整个路径中相比于普通模式机器人在较多的时间以30mm/s和40mm/s速度运行,整体运行时间将会更短,以达到快速运行的要求。

由此,通过将当前周期运行结束时确定的运行方式规划为下一周期的运行方式,有利于提升下一周期中机器人运行的精准性和高效性。

由于本实施例的装置所实现的处理及功能基本相应于前述图1至图10所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。

经大量的试验验证,采用本发明的技术方案,通过采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,即通过切换运行模式,进而改变过渡点速度,以实现机器人以较快时间或者正常时间运行,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行,可以满足用户的个性化使用需求,用户体验好、且适用范围广。

根据本发明的实施例,还提供了对应于机器人的运行控制装置的一种机器人。该机器人可以包括:以上所述的机器人的运行控制装置。

在一个可选实施方式中,针对机器人在自动运行模式下由于运行点重复设置等造成机器人一个循环周期内短暂停顿的问题。本发明的方案,通过采用已运行单段长度与单段运行长度、总运行长度的判定,当即将运行的单段程序存在无法运行的情况时,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象。这样,通过采用已运行单段长度与单段运行长度、总运行长度的判定,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂停顿的问题。

例如:当即将运行的单段程序存在无法运行如单段运行长度为0时,从而提前确定出主程序是否需要跳转至下一单段运行;保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象。

其中,已运行单段长度,指的是单行程序已经运行的长度。单段运行长度,指的是单行程序需要运行的长度。总运行长度,指的是整个程序从起始点到最后目标点之间需要运行的整体长度。

可选地,根据实际工况自动运行多段程序时,有时需要机器人以较快时间完成程序如快速移动到起点,有时又需要机器人以较慢时间运行程序如焊接时,这就要求机器人以不同的过渡速度,进而影响运行时间来完成程序。本发明的方案,可根据用户需求选择不同运行模式,以满足实际工况。

具体地,可以通过采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行。这样,通过切换运行模式,进而改变过渡点速度,以实现机器人以较快时间或者正常时间运行。

例如:主程序根据用户选择的模式,自动匹配不同的速度模式,一种是取当前运行速度与下一运行速度中较小值作为本段末速度,即普通模式;一种是取当前运行速度与下一运行速度中较大值作为本段末速度,即快速模式。在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行。

其中,多段自动运行普通模式,指的是过渡点速度取相邻两段程序的较小值。多段自动运行快速模式,指的是过渡点速度取相邻两段程序的较大值,起到相对普通模式更短时间完成程序的作用。

可选地,用户在输入多段程序时,只会输入运行速度,而不会输入各段过渡时中间速度,当机器人连续运行时末端执行器速度会从0mm/s加速到用户给定速度在过渡到下一段运行速度最后降为0mm/s。针对由于用户输入多段且各段速度不同的程序所造成的相邻两段过渡时速度突变的问题。本发明的方案,采用速度提前搜索,以确定下一步速度的变化。具体地,主程序执行状态机前,提前搜索下一段运行的速度,进而提前对速度进行加减速的规划,保证相邻两段程序过渡时机器人速度能够平滑过渡,无突变。这样,通过提前搜索下一运行段的速度,进而提前加速或减速,保证相邻两段程序过渡时机器人速度能够平滑过渡。

例如:主程序执行状态机前,提前搜索下一段运行的速度,进而提前对速度进行加减速的规划;保证相邻两段程序过渡时机器人速度能够平滑过渡,无突变。

在一个可选具体实施方式中,可以参见图12、图13和图14所示的例子,对本发明的方案的具体实现过程进行示例性说明。

其中,图12中n为正整数,取值从1开始。图13中n为正整数,取值从1开始。图14中为运行一段约9s的程序,机器人以快速模式运行比普通模式运行约有0.3s的提升,若是在满足用户运动需求的前提下,执行多段循环程序且长时间运行时,节省的时间会更为明显。

在一个可选具体例子中,本发明的方案,提供了一种机器人连续运行方法,该方法可以直接应用至各种工业机器人上。图12展示出运行长度判定方法的流程图,体现上述“采用已运行单段长度与单段运行长度、总运行长度的判定,当即将运行的单段程序存在无法运行的情况时,从而提前确定出主程序是否需要跳转至下一单段运行,保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象”的方案,可以包括如下步骤:

步骤s1:用户向机器人输入多段程序。

其中,此实例中用户输入一个三段的程序,第一段程序实现p0到p1的点到点运行,第二段程序实现p1到p2的直线运行,第三段程序实现p2到p3的直线运行,其中p0为当前点,p1为第一目标点,p2为第二目标点,p3为第三目标点。

例如:第一段走点到点运动,第二段走直线运动,第三段走直线运动。

步骤s2:机器人计算每一个单段运行长度,即机器人计算每一个单段程序需要运行的长度。

其中,此实例中机器人计算出三个单段程序需要运行的长度l1、l2、l3,其中l1为机器人从p0运行到p1的长度,l2为机器人从p1运行到p2的长度,l3为机器人从p2运行到p3的长度。

例如:机器人计算每一个单段程序需要运行的长度,可以包括:机器人控制器会根据示教器端发送的命令进行处理,比如:

(1)示教器输入第一段为笛卡尔坐标下的点到点运动,控制器中语言解释器会解析出机器人要以点到点进行运行,那第一段的长度会使用两点间最短距离求得。

(2)示教器输入第二段为笛卡尔坐标下的圆弧运动,控制器中语言解释器会解析出机器人要以圆弧进行运行,那第二段的长度则可以使用三点求圆弧长度的方法:

1)首先三点确定一个平面,建立一个方程;

2)建立圆心到三点距离相等方程组;

3)联立第一步和第二步中的方程解出圆心坐标进而解出圆弧半径;

4)根据圆弧起点、终点、圆心确定圆心角,进而求得圆弧运动的弧长。

其中,求直线及圆弧长度可以采用了较为常用的数学方法。

例如:第二段输入为直线,示教器输入第一段为笛卡尔坐标下的直线运动,控制器中语言解释器会解析出机器人要以直线进行运行,那第一段的长度则可以使用两点间直线距离的公式:

其中,xp2、xp1、yp2、yp1、zp2、zp1,分别为第一段直线的两端点的坐标值。

步骤s3:机器人计算总运行长度,即机器人计算多段程序需要运行的总长度。

其中,此实例中机器人计算出三个单段程序需要运行的总长度la,其中la为从p0运行到p3的总长度,即la=l1+l2+l3。

步骤s4:机器人判断第n段运行长度是否为零。

其中,此实例中机器人判断第一段运行长度l1是否为零,若为零,机器人进行n+1操作并跳转至步骤4判定第二段运行长度l2是否为零,若不为零,机器人继续运行步骤5,此步骤即可提前判断出第一段程序是否无效,避免一个循环周期内机器人的停顿。

例如:判断第n段运行长度是否为零的目的是为了确保机器人不存在一个循环周期的停顿,比如用户将p2设为第二段直线运行的目标点,又将p2设为第三段直线运行的目标点,如果不做运行长度是否为零的判定,机器人走完第二段直线后会停止一个循环周期,如果机器人用于焊接,一个循环周期的停顿会影响加工工艺。

如果第n段运行长度为零,则代表第n段程序无效,机器人跳过第n段,运行第n+1段。如果第n段运行长度不为零,则代表第n段程序有效,机器人正常运行第n段。

例如:如果第n段运行长度为零,则判定第n段为无效段,则机器人计算第n+1段,机器人控制器在接收到示教器传下来的运行程序时,会判断每一段的程序是否为零(即是否无效)。判定的方法可以为:根据要运行的路程而定,例如第n段运行路程为直线,则控制器计算起始点和末端点的距离是否为零(如果为零则认为无效);如果第n段运行路程为圆弧,则控制器根据上述数学方法计算圆弧长度是否为零,如果为零则认为无效。也就是说,如果当前单段运行长度为0时,机器人即可直接跳过本段程序,运行下一段程序,避免机器人出现一个运行周期内的卡顿情况。

步骤s5:机器人将第n段目标点作为此段(即第n段)终点进行规划。

其中,此实例中假设l1为零,l2不为零,机器人进行步骤4后将p2点作为第二段的目标终点进行规划。

步骤s6:机器人沿着所规划的路径运行。

其中,此实例中机器人以p2作为目标点,沿着所规划的路径运行。

步骤s7:机器人计算第n段已运行长度。

其中,此实例中机器人计算d2,其中d2为第二段已运行的长度。

步骤s8:机器人判断第n段已运行长度是否等于第n段单段运行长度。

其中,此实例中机器人判定第二段已运行的长度d2是否等于第二段运行长度l2,若不相等机器人运行步骤6,若相等机器人继续运行步骤9。

步骤s9:机器人判断各段已运行长度之和是否等于总运行长度。

其中,此实例中机器人判断da是否等于la,其中da为各段已运行长度之和,即da=d1+d2+d3,若不相等机器人进行n+1操作并跳转至步骤4,若相等机器人运行步骤10,假设l3不为零,机器人进行n+1操作并运行步骤4。

步骤s10:机器人停止运行。

其中,此实例中机器人已运行完第三段并判断da等于la所以停止运行。

在一个可选具体例子中,本发明的方案中,图13展示出速度规划方法的流程图,图14展示出机器人以普通模式/快速模式运行多段程序所对应的速度-时间曲线图,体现上述“采用多段自动运行普通模式/快速模式,在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行”的方案和“采用速度提前搜索,以确定下一步速度的变化”的方案,可以包括如下步骤:

步骤s1:用户向机器人输入多段程序。

其中,此实例中用户输入一个四段的程序,第一段程序实现速度为30mm/s运行,第二段程序实现速度为25mm/s运行,第三段程序实现速度为40mm/s运行,第四段程序实现速度为20mm/s运行。

步骤s2:用户选择多段自动运行普通模式或者快速模式。

此实例中用户选择普通模式。

步骤s3:n是否小于程序段数,n为机器人当前正在读取的程序段数。

其中,此实例中机器人读取第一段程序,即n取1,n小于程序段数4,机器人运行步骤4。

步骤s4:机器人读取第n段和第n+1段运动速度或者机器人读取第n段运动速度,此实例中由于n为1时小于程序段数4,机器人读取第1段和第2段运动速度。

步骤s5:机器人判定当前用户选择的是否为普通模式,此实例中,用户选择的为普通模式,机器人运行步骤6。

步骤s6:机器人将第n+1段程序的运行速度和第n段程序的运行速度比较,取两者中的较小值作为第n段程序的末速度。

其中,此实例中机器人将第2段程序的运行速度25mm/s和第1段程序的运行速度30mm/s进行比较,取两者中的较小值即25mm/s作为第一段程序的末速度,机器人继续运行步骤7。

例如:快速模式相比于普通模式而言,会更快过渡到下一个运行程序,减少运行时间,具体到算法处理上,快速模式取第n段运行速度和第n+1段运行速度的较大值作为第n段运行速度的末速度,而普通模式取第n段运行速度和第n+1段运行速度的较小值作为第n段运行速度的末速度。两种不同的确定末速度的方式最终反映出来的效果就是普通模式会以更多的时间在较低的速度运行,高速模式会以更多的时间在较高的速度运行,那么两者的运行总时间便出现了如图14的差异,如果在工厂中长时间运行,这样的时间累加效应更明显,高速模式可以更多用于搬运等对速度要求较高的场合,普通模式更适合应用于焊接、喷涂等对准确性有要求的场合。也就是说,用户可根据需要选择不同的运动模式(包括普通模式或者快速模式),实现在过渡段的平滑过渡。

步骤s7:机器人判断n+1是否小于程序段数,n+1为下一段程序的段数。

此实例中n+1为2,小于程序段数4,此时将进行n+1操作,n值取2并跳转至步骤3,依次运行步骤3、步骤4、步骤5、步骤6、步骤7,此时n+1为3仍然小于程序段数4,再次进行n+1操作并跳转至步骤3,依次运行步骤3、步骤4、步骤5、步骤6、步骤7,此时n+1为4不小于程序段数4,执行步骤8。

步骤s8:为机器人将第n+1段程序的末速度置为0mm/s。

此实例中机器人将第4段程序的末速度置为0mm/s。

步骤s9:机器人以确定的运行速度、末速度规划各段程序。

此实例中机器人以第一段程序的起始速度(0mm/s)、运行速度(30mm/s)、末速度(25mm/s),第二段程序的起始速度(25mm/s)、运行速度(25mm/s)、末速度(25mm/s),第三段程序的起始速度(25mm/s)、运行速度(40mm/s)、末速度(20mm/s),第四段程序的起始速度(20mm/s)、运行速度(20mm/s)、末速度(0mm/s)等参数作为运动规划输入量进行普通模式下的规划。

步骤s10:机器人沿着各段规划路径顺序运行直至完成所有路径,此实例中机器人以普通模式进行运行。

其中,当用户选择快速模式运行时,机器人以第一段程序的起始速度(0mm/s)、运行速度(30mm/s)、末速度(30mm/s),第二段程序的起始速度(30mm/s)、运行速度(25mm/s)、末速度(40mm/s),第三段程序的起始速度(40mm/s)、运行速度(40mm/s)、末速度(40mm/s),第四段程序的起始速度(40mm/s)、运行速度(20mm/s)、末速度(0mm/s)等参数作为运动规划输入量进行快速模式下的规划。也即是说在用户给定起始点、目标点的情况下,机器人运行的路程为定值,当机器人在满足用户设定的速度值前提下,整个路径中相比于普通模式机器人在较多的时间以30mm/s和40mm/s速度运行,整体运行时间将会更短,以达到快速运行的要求。

由于本实施例的工业机器人所实现的处理及功能基本相应于前述图11所示的装置的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。

经大量的试验验证,采用本发明的技术方案,通过提前搜索下一运行段的速度,进而提前加速或减速,保证相邻两段程序过渡时机器人速度能够平滑过渡,进一步提升机器人的运行稳定性和可靠性。

根据本发明的实施例,还提供了对应于机器人的运行控制方法的一种存储介质。该存储介质,可以包括:所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行以上所述的机器人的运行控制方法。

由于本实施例的存储介质所实现的处理及功能基本相应于前述图1至图10所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。

经大量的试验验证,采用本发明的技术方案,通过确定当即将运行的单段程序存在无法运行如单段运行长度为0时,从而提前确定出主程序是否需要跳转至下一单段运行,可以保证机器人运行的连续性,避免在一个循环周期内短暂的停顿现象,提升运行平稳性。

根据本发明的实施例,还提供了对应于机器人的运行控制方法的一种机器人。该工业机器人,可以包括:处理器,用于执行多条指令;存储器,用于存储多条指令;其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行以上所述的机器人的运行控制方法。

由于本实施例的工业机器人所实现的处理及功能基本相应于前述图1至图10所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。

经大量的试验验证,采用本发明的技术方案,通过使主程序根据用户选择的模式,自动匹配不同的速度模式,一种是取当前运行速度与下一运行速度中较小值作为本段末速度即普通模式,一种是取当前运行速度与下一运行速度中较大值作为本段末速度即快速模式,可以在满足用户设定运行速度的前提下改变过渡点速度,保证机器人完成多段程序时可以按照普通模式或者较少时间完成运行,提升运行灵活性和可靠性。

综上,本领域技术人员容易理解的是,在不冲突的前提下,上述各有利方式可以自由地组合、叠加。

以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

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