避免工业机器人与物体之间碰撞的方法和设备转让专利

申请号 : CN200780033235.9

文献号 : CN101512453B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·斯特兰德柏格

申请人 : ABB研究有限公司

摘要 :

本发明涉及用于避免多轴工业机器人(1、2)的部件与至少一个其他物体(1、2、3)之间碰撞的设备,其中该设备包括:计算单元(13),其适用于估计机器人与物体之间碰撞发生之前剩余的时间、计算机器人的停止时间以及将估计的碰撞发生之前剩余的时间与机器人的停止时间相比较,以及生成命令以在估计的碰撞发生之前剩余的时间接近机器人的停止时间的情况下停止机器人或物体。

权利要求 :

1.一种避免多轴工业机器人的部件与至少一个其他物体之间碰撞的方法,其中所述方法包括:估计在所述机器人与所述物体之间碰撞发生之前剩余的时间;

确定所述机器人的停止时间;

将估计的碰撞发生之前剩余的时间与所述机器人的停止时间进行比较;

在估计的碰撞发生之前剩余的时间接近所述机器人的停止时间的情况下,停止所述机器人或者所述物体;以及计算在多个未来时间点处所述机器人的部件与所述物体之间的最短距离,以及在此基础上,估计在所述机器人与所述物体之间碰撞发生之前剩余的时间。

2.如权利要求1的方法,其中所述多个未来时间点是在预定义的前瞻时间间隔期间连续选择的。

3.如权利要求1或2的方法,其中所述方法进一步包括:接收关于所述机器人规划路径的信息,并且所述机器人的部件与所述物体之间的所述最短距离是基于所规划的机器人路径确定的。

4.如权利要求3的方法,其中关于所述机器人规划路径的信息包括:关于所规划路径上未来机器人关节角度的信息。

5.如权利要求1或2的方法,其中所述方法包括:在所述机器人与所述物体之间的距离等于零之前,执行所存储的最短距离的外插,并且在此基础上,确定所述机器人与所述物体之间碰撞发生之前剩余的时间。

6.如权利要求1或2的方法,其中所述方法包括:

定义附加至并包围所述机器人的部件的一个或多个防护区域;

定义附加至并包围所述物体的一个或多个防护区域;

计算在多个未来时间点处所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间的最短距离,并且在此基础上,估计在所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间碰撞发生之前剩余的时间;

并将所计算的最短距离存储在用于每个防护区域对的缓冲器中。

7.如权利要求1或2的方法,其中所述方法包括:

定义附加至并包围所述机器人的部件的至少两个防护区域;

计算多个未来时间点处所述机器人防护区域之间的最短距离,以及基于此估计在所述机器人的部件之间碰撞发生之前剩余的时间。

8.如权利要求1或2的方法,其中所述其他物体是多轴工业机器人,并且所述方法包括:定义附加至并包围第一机器人的部件的至少两个防护区域;

定义附加至并包围第二机器人的部件的至少两个防护区域;

形成由所述第一机器人的一个防护区域与所述第二机器人的一个防护区域组成的防护区域对;

为每个防护区域对计算多个未来时间点处所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间的最短距离,以及将所计算的最短距离存储在用于每个防护区域对的缓冲器中,以及基于此估计在所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间碰撞发生之前剩余的时间。

9.如权利要求1或2的方法,其中所述方法还包括:计算所述机器人的部件与所述物体之间的最短距离;确定所计算的最短距离是否小于阈值;并且在所计算的最短距离小于所述阈值的情况下,估计碰撞发生之前剩余的时间,否则,不估计碰撞发生之前剩余的时间。

10.如权利要求1或2的方法,其中在估计的碰撞发生之前剩余的时间短于停止时间乘以由用户设置的安全因子的情况下,命令所述机器人或所述物体停止。

11.如权利要求1或2的方法,其中所述方法进一步包括:计算所述机器人的部件与所述物体之间的最短距离;确定所计算的最短距离是否小于预定义的最小值;并且在所述最短距离小于最小值的情况下,将所述机器人的速度降低给定百分比。

12.一种用于避免多轴工业机器人的部件与至少一个其他物体之间碰撞的设备,其中所述设备包括:用于估计在所述机器人与所述物体之间碰撞发生之前剩余的时间的装置;

用于确定所述机器人的停止时间的装置;

用于将估计的碰撞发生之前剩余的时间与所述机器人的停止时间进行比较的装置;

用于在估计的碰撞发生之前剩余的时间接近所述机器人的停止时间的情况下,停止所述机器人或者所述物体的装置;

用于计算在多个未来时间点处所述机器人的部件与所述物体之间的最短距离,以及在此基础上,估计在所述机器人与所述物体之间碰撞发生之前剩余的时间的装置。

13.如权利要求12的设备,其中所述多个未来时间点是在预定义的前瞻时间间隔期间连续选择的。

14.如权利要求12或13的设备,其中所述设备进一步包括用于接收关于所述机器人规划路径的信息的装置,并且所述机器人的部件与所述物体之间的所述最短距离是基于所规划的机器人路径确定的。

15.如权利要求14的设备,其中关于所述机器人规划路径的信息包括:关于所规划路径上未来机器人关节角度的信息。

16.如权利要求12或13的设备,其中所述设备包括用于在所述机器人与所述物体之间的距离等于零之前,执行所存储最短距离的外插,并且在此基础上,确定所述机器人与所述物体之间碰撞发生之前剩余的时间的装置。

17.如权利要求12或13的设备,其中所述设备进一步包括:用于定义附加至并包围所述机器人的部件的一个或多个防护区域的装置;

用于定义附加至并包围所述物体的一个或多个防护区域的装置;

用于计算在多个未来时间点处所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间的最短距离,并且在此基础上,估计在所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间碰撞发生之前剩余的时间的装置;以及用于将所计算的最短距离存储在用于每个防护区域对的缓冲器中的装置。

18.如权利要求12或13的设备,其中所述设备进一步包括:用于定义附加至并包围所述机器人的部件的至少两个防护区域的装置;

用于计算多个未来时间点处所述机器人防护区域之间的最短距离,以及基于此估计在所述机器人的部件之间碰撞发生之前剩余的时间的装置。

19.如权利要求12或13的设备,其中所述其他物体是多轴工业机器人,并且所述设备包括:用于定义附加至并包围第一机器人的部件的至少两个防护区域的装置;

用于定义附加至并包围第二机器人的部件的至少两个防护区域的装置;

用于形成由所述第一机器人的一个防护区域与所述第二机器人的一个防护区域组成的防护区域对的装置;

用于为每个防护区域对计算多个未来时间点处所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间的最短距离的装置;以及用于将所计算的最短距离存储在用于每个防护区域对的缓冲器中,以及基于此估计在所述机器人的一个或多个防护区域与所述物体的一个或多个防护区域之间碰撞发生之前剩余的时间的装置。

20.如权利要求12或13的设备,其中所述设备还包括用于计算所述机器人的部件与所述物体之间的最短距离;确定所计算的最短距离是否小于阈值;并且在所计算的最短距离小于所述阈值的情况下,估计碰撞发生之前剩余的时间,否则,不估计碰撞发生之前剩余的时间的装置。

21.如权利要求12或13的设备,其中在估计的碰撞发生之前剩余的时间短于停止时间乘以由用户设置的安全因子的情况下,命令所述机器人或所述物体停止。

22.如权利要求12或13的设备,其中所述设备进一步包括用于计算所述机器人的部件与所述物体之间的最短距离;确定所计算的最短距离是否小于预定义的最小值;并且在所述最短距离小于最小值的情况下,将所述机器人的速度降低给定百分比的装置。

23.一种如权利要求1-11中任一权利要求所述的方法的用途,用于避免多机器人系统中机器人之间的碰撞。

24.一种如权利要求12-22中任一权利要求所述的设备的用途,用于避免多机器人系统中机器人之间的碰撞。

说明书 :

避免工业机器人与物体之间碰撞的方法和设备

技术领域

[0001] 本发明涉及用于避免多轴工业机器人的部件与至少一个其他物体之间碰撞的方法和设备。

背景技术

[0002] 与工业机器人有关的问题在于:如何防止机器人和与该机器人同属一个工作区(work cell)的物体之间的碰撞。物体可以是组成实体(solid)的物理部分或者部分的装配。不同类型的物体可以共存于机器人工作区中。物体可以是移动的,或者可以是静止的。移动物体例如是机械单元,诸如机器人、机器人的外部轴,和定位器。静止物体的示例是旋转台、夹具和维护装置。机器人工作区中的碰撞可以发生在移动物体之间,或者可以发生在移动物体和静止物体之间。
[0003] 由工作区中的物体的相邻性或者交叉轨道所引起的干扰需要被避免。否则的话,如果发生碰撞,则在生产阶段使用的相对较高速度可能导致对工作区物体的严重损害和生产中的停工期。在机器人工作区中移动物体的轨道通常是事先已知的。然而,工作区中移动物体的轨道通常不会事先准确知道,更多的是作为非确定性过程(诸如点焊或使用传感器数据)的结果。归因于不可预知的过程延迟或者机器人轨道的传感器校正,随后可能发生路径改变。还可能发生作为漂移结果的不可预知的路径改变。各种编程错误也可能导致碰撞。即使修改过的机器人程序可能出现无碰撞,但是在生产阶段,归因于错误未在先前表现出来,稍后仍然可能出现碰撞。
[0004] 对低成本高生产能力的不变需求进一步引起基于多机器人系统的新的自动化概念的发展。尽管机器人制造者对设计易用多机器人系统付出很大努力,但这种系统支持的各种自由度已经伴生了增大的碰撞风险。
[0005] 在过去的二十年中,已经提出基于不同技术和概念的若干方法,以便防止属于同一机器人工作区的物体之间的碰撞。例如,US6212444提出:设置公共区域,在该区域中,机器人的操作区域和装置(诸如,执行与机器人协作地操作的另一多轴机器人)的操作区域彼此重叠。当机器人上的预定参考点在公共区域内时,第一进入禁止信号被输出到装置以禁止该装置进入公共区域,以及当该装置的可移动部分在公共区域内时,第二进入禁止信号被输出给该机器人以禁止该机器人的参考点进入该公共区域。根据所公开的方法,如果通常位于机器人机械手臂的末端或者关节点的预定参考点在公共区域内,则禁止其它移动物体进入公共区域。根据所公开的方法,相反地,如果另一移动物体在公共区域内,则禁止机器人上的参考点进入该公共区域。
[0006] 还提出使用防护区域,该防护区域包围了移动物体或者这些物体的部分。例如,防护区域围绕机器人的机械手臂和/或其工具。防护区域例如在下述专利文献中进行了描述:US2005/0090930、JP2003-334777和JP08-141978。US2005/0090930描述了一种方法,其将各种几何形状的边界框附加在物体的部分周围,以便可能地覆盖它们的整个主体。框之间的干扰由算法进行检查,该算法评价框是否重叠。在JP2003-334777中,防护包络用来模拟移动物体的主体和基于其速度确定移动物体包络的延伸范围大小,其中移动物体主体的位置以及它们在所述位置处的最近间距被记录。所记录距离的内插与至少一个预测距离一起实现,并且将所获得内插曲线的最小值与所关注物体包络的厚度之和进行比较。在JP08-141978中,描述了一种方法,该方法在机器人工具周围使用双防护包络。
[0007] US6678582描述了用于避免机械手与至少一个其它物体之间碰撞的方法。该方法包括:在多轴机器人的实际关节位置与过去关节位置以及每个机器人关节的速度和加速度的基础上,计算机器人的停止时间、预测机器人在停止时间的部件轨道配置;通过用于机器人部件与另一物体的部件之间干扰的距离/干扰算法来检查预测的配置;以及在即将发生碰撞的情况下停止机器人和/或另一物体。停止时间是从机器人的当前状态停止该机器人所花费的时间。确定在估计的停止时间处的预测配置。假设机器人会从当前的速度和位置继续以其当前的加速度移动。所公开的方法的缺点在于:由于预测配置仅基于过去的和现在的关节位置、速度和加速度,所以可能在预测配置中产生较大误差。例如,如果机器人彻底改变其移动方向,则在机器人的预测配置中可能存在较大误差。假设对若干多轴机器人在其各自停止时间的预测配置在彼此之间进行检查,机器人之间的碰撞仍然可能发生,因为它们的预测配置仅基于过去的参数和现在的参数。这会致使:为了避免机器人之间的碰撞,不得不使用较大的余量(margin)。

发明内容

[0008] 本发明的目的在于,为现有用于避免碰撞的方法和设备提供备选方案,其提供了改善未来碰撞预测的可能性,从而降低了避免碰撞所必需的余量。
[0009] 根据本发明的一个方面,此目的通过本发明中所定义的方法实现。
[0010] 这种方法包括重复地进行以下操作:估计在机器人与物体之间碰撞发生之前剩余的时间、确定机器人的停止时间、将估计的碰撞发生之前剩余的时间与机器人的停止时间进行比较,以及在估计的碰撞发生之前剩余的时间接近机器人的停止时间时,停止机器人或者物体。根据本发明,估计在机器人与物体之间碰撞发生之前剩余的时间,并将其与机器人的停止时间相比较,来取代现有技术中的、将在机器人停止时间处的机器人预测配置与另一物体的预测配置进行比较。另一物体是静止的物体,或者是移动的物体,诸如另一多轴机器人。当然,如果机器人与物体之间的距离在增大,则不会有即将发生的碰撞风险,而且碰撞发生之前剩余的时间将变得无限大。
[0011] 此方法的优势在于:实现了更长的前瞻(look-ahead)时间,这样使得能够更早地检测到碰撞的风险,并且从而实现了对何时应当停止机器人的改进估计。更长的前瞻时间增强了检测到即将发生的碰撞的机会,并且为确定应当做什么来防止碰撞以及在碰撞发生前停止机器人提供了更多时间。利用本发明实现的另一优势在于:可以减小用于避免碰撞所需的余量。
[0012] 根据本发明的实施方式,该方法包括:计算在多个未来时间点处机器人的部件与物体之间的最短距离,以及在此基础上,估计在机器人与物体之间碰撞发生之前剩余的时间。
[0013] 根据本发明的实施方式,该方法还包括接收信息,诸如关于未来关节角度的信息和关于用于机器人的规划路径的信息。机器人部件与物体之间的所述最短距离是基于规划的机器人路径确定的。通常,工业机器人的控制系统包括路径规划器,其规划机器人的路径。路径规划器适用于从应用程序接收移动指令,并在此基础上,确定机器人应该如何移动以便执行该移动指令。路径规划器规划所指示的移动应当如何通过完成移动的内插来执行。内插包括将所指示的移动划分成多个小增量,并针对每个增量为机器人的所有轴计算关节角度。随后,将关节角度转换成电动机参考。路径规划器将计算出的电动机参考传输至机器人的驱动模块。
[0014] 在机器人当前位置之前的指定时间间隔处,规划机器人的路径。根据此实施方式,关于机器人未来路径(即,实际的规划路径)的信息用来计算碰撞发生之前剩余的时间。此信息在机器人控制系统的路径规划器单元中已经是可用的。基于编程的路径来检测碰撞。这样,使用实际的规划路径,以便预测碰撞是否即将来临,而不是像现有技术中那样,基于过去的移动来计算估计的路径。此实施方式改进了估计碰撞是否即将来临的准确性。
[0015] 根据本发明的实施方式,在预定义的前瞻时间间隔期间,连续选择未来的时间点。前瞻时间间隔取决于提前多久规划路径,即,路径规划器的前瞻时间,该时间取决于机器人的控制系统。
[0016] 根据本发明的实施方式,该方法包括:在机器人与物体之间的距离等于零之前,执行所存储最短距离的外插,并且在此基础上,确定机器人与物体之间碰撞发生之前剩余的时间。基于来自路径规划器的信息计算的最短距离形成了最短距离曲线。最短距离曲线使用所计算出的不同未来时间处的最短距离而进行外插。该曲线的外插部分用于计算碰撞发生之前剩余的时间。随后,前瞻时间变成了路径规划器的前瞻时间与曲线的外插部分之和。此实施方式进一步增加了前瞻时间,并且从而进一步增加了检测到即将发生的碰撞的机会,以及为在碰撞发生之前停止机器人提供了更多的时间。
[0017] 根据本发明的实施方式,该方法包括:定义附加至并包围机器人部件的一个或多个防护区域;定义附加至并包围物体的一个或多个防护区域;计算在多个未来时间点处机器人的一个或多个防护区域与物体的一个或多个防护区域之间的最短距离;并且在此基础上估计防护区域之间碰撞发生之前剩余的时间。防护区域被定义为任意或预定的几何形状的体积,其包围待实施碰撞保护的物体/机器人的全部或一部分。例如,防护区域可以围绕机器人携带的工件、工具或者机器人机械手臂。防护区域附加至移动物体,这意味着防护区域会跟随物体的移动。此实施方式检测机器人的预定防护区域与物体的预定防护区域之间即将发生的碰撞。防护区域可以是一维的、二维的或者三维的,并且具有任意形状。
[0018] 根据本发明的实施方式,该方法包括:定义包围机器人部件的至少两个防护区域、计算多个未来时间点处机器人防护区域之间的最短距离,以及基于此估计在机器人防护区域之间碰撞发生之前剩余的时间。此实施方式使得能够检测到包围机器人部件的预定义防护区域之间即将发生的碰撞。例如,此实施方式使得可以检测到机器人携带的工具或工作物体与其他部分(诸如机器人的手臂)之间即将发生的碰撞。如果机器人携带了大的工作物体(诸如,一侧汽车车身),并且存在工作物体与机器人本身碰撞的风险,则此实施方式尤其具有优势。
[0019] 根据本发明的实施方式,所述其他物体是多轴工业机器人,并且该方法包括:定义包围第一多轴机器人的部件的至少两个防护区域、定义包围第二多轴机器人的部件的至少两个防护区域、形成由第一机器人的一个防护区域与第二机器人的一个防护区域组成的防护区域对、为每个防护区域对计算多个未来时间点处防护区域之间的最短距离,并将所计算的最短距离存储在用于每个防护区域对的缓冲器中,以及基于计算出的最短距离估计在防护区域之间碰撞发生之前剩余的时间。此实施方式使得能够检测包围两个多轴工业机器人不同部分的预定义防护区域之间即将发生的碰撞。
[0020] 根据本发明的实施方式,该方法进一步包括:计算机器人的部件与物体之间的最短距离、确定计算出的最短距离是否小于阈值,并且在计算出的最短距离小于阈值的情况下估计碰撞发生之前剩余的时间,否则,不估计碰撞发生之前剩余的时间。只有当机器人与物体之间的距离正在递减时,碰撞才即将来临,只要它们之间的距离足够大,便不会存在即将来临的碰撞的风险。根据此实施方式,仅在机器人部件与物体之间的最短距离小于阈值的情况下,才估计在碰撞发生之前剩余的时间。从而避免了不必要的计算并且降低了处理器的负荷。
[0021] 根据本发明的实施方式,在估计的碰撞发生之前剩余的时间短于停止时间乘以由用户设置的安全因子的情况下,才停止机器人或物体。根据本发明,在估计的碰撞发生之前剩余的时间接近机器人的停止时间的情况下,应当命令机器人和/或物体停止。如果在碰撞发生之前剩余的时间等于停止时间时命令机器人停止,则存在归因于计算误差的在机器人停止之前发生碰撞的风险。因此,为了确保有足够的时间来停止机器人,碰撞发生之前剩余的时间应当大于停止时间。根据此实施方式,在估计的碰撞发生之前剩余的时间短于停止时间乘以安全因子的情况下,命令机器人停止。如果安全因子的值大于1,则安全因子为停止机器人提供了安全余量。此实施方式使得用户能够设置安全因子,并且从而能够确定用于停止机器人的安全余量。然而,在某些情况下,例如,当代表低碰撞风险的两个机器人轨道不得不被编程在彼此附近时,给予安全因子一个小于1的值可能是有用的。在安全因子设置为小于1的值时,关闭针对该防护区域对的碰撞避免检测。备选地,可以临时针对给定的防护区域对关闭碰撞避免系统,并且稍后在机器人命令指令的帮助下再次开启。
[0022] 根据本发明的实施方式,该方法进一步包括:计算机器人的部件与物体之间的最短距离、确定计算出的最短距离是否小于预定义的最小值,并且在最短距离小于最小值的情况下,将机器人的速度降低给定百分比。机器人速度的降低会导致降低机器人的停止时间,从而允许机器人在碰撞避免系统停止该机器人之前更接近物体。此实施方式还降低了来自于碰撞避免系统的错误警报的风险,并且从而避免了机器人的不必要的停止。
[0023] 能够容易地实现:如本发明所定义的、根据本发明的方法适用于由计算机程序执行,该计算机程序具有在处理器单元上运行时对应于本发明方法中步骤的指令。
[0024] 根据本发明的另一方面,该目的由可直接加载到计算机内部存储器或处理器中的计算机程序产品实现,包括软件代码部分,用于当程序运行在计算机上时,执行根据本发明的方法步骤。该计算机程序可以在计算机可读介质上提供,或者可以通过网络提供。
[0025] 根据本发明的另一方面,该目的由其上具有记录有程序的计算机可读介质实现,当该程序在计算机上运行时,该程序使计算机执行根据本发明的方法步骤。
[0026] 根据本发明的另一方面,此目的由本发明中所限定的设备实现。
[0027] 这种设备包括:计算单元,适用于估计机器人与物体之间碰撞发生之前剩余的时间、计算机器人的停止时间,以及将估计的碰撞发生之前剩余的时间与机器人的停止时间相比较,以及生成命令,以在估计的碰撞发生之前剩余的时间接近机器人的停止时间的情况下停止机器人或物体。

附图说明

[0028] 现在通过参照附图描述本发明的不同实施方式,从而更加仔细地解释本发明。
[0029] 图1示出了根据本发明实施方式用于避免碰撞的、包括两个多轴机器人和设备的机器人工作区的示例。
[0030] 图2示出了规划的机器人路径。
[0031] 图3示出了根据本发明实施方式的防护区域对的最短距离曲线,以及如何计算碰撞发生之前剩余的时间。
[0032] 图4示出了根据本发明实施方式的、用于避免碰撞的方法流程图。

具体实施方式

[0033] 在下文中,将结合如图1中所示的工作区来描述本发明,该工作区包括两个多轴机器人1、2,和静止物体3。然而,根据本发明的碰撞避免设备和方法可以用于包括两个或更多物体的任何工作区,该物体例如为多轴机器人、静止物体或移动物体的任何组合。工作区可以包括一个或多个多轴机器人。进一步地,工作区可以包括一个或多个静止物体或移动物体。
[0034] 机器人1、2连接至公共控制单元5。控制单元5例如是传统的机器人控制系统,其包括:必须的硬件,诸如一个或多个处理器单元、存储器装置和输入与输出装置;以及用于完成正常机器人控制任务的软件。控制单元包括:程序存储器7,用于存储包括以机器人语言写入的程序指令的应用程序;程序执行器8,适用于执行所存储的应用程序;以及路径规划器单元9,适用于从程序执行器8接收指令,以及在这些指令的基础上,确定为了执行应用程序的移动指令,一个或多个机器人应当如何移动。在此实施方式中,控制单元5包括路径规划器实体9,其可以分别基于单独的应用程序来同步地或者独立地为机器人1、2规划路径,其中该单独的应用程序包括机器人二者之间有联系的移动指令或将用于每个机器人的这种指令排除在外。控制单元5还包括停止单元10,适用于基于命令来停止一个或多个机器人。
[0035] 在本发明的此实施方式中,碰撞避免单元11位于控制单元5中,其监视工作区中的机器人1、2与物体3之间的碰撞。碰撞避免单元11包括:缓冲器单元12,其包括用于存储所计算的工作区中物体之间最短距离的多个缓冲器;计算单元13,其适用于估计物体之间碰撞发生之前剩余的时间,以及计算机器人的停止时间,并将估计的碰撞发生之前剩余的时间与机器人的停止时间相比较。碰撞避免单元11适用于在估计的碰撞发生之前剩余的时间接近机器人的停止时间的情况下,向停止单元10发送停止命令。计算单元13监视机器人1、2,以便检测在工作区中机器人与另一物体之间是否即将发生碰撞,并且如果碰撞即将来临,计算单元生成命令来停止机器人之一,或者机器人两者,其中该命令被转发至停止单元10。当停止单元10从计算单元13接收到停止命令时,一个机器人或机器人二者被制动直至其移动停止。优选地,在制动期间,机器人保持在它们的路径上。
[0036] 备选地,碰撞避免单元11可以作为单独的硬件单元,其适用于从机器人1、2的路径规划器单元接收指令。在机器人具有配备有单独的路径规划器单元的单独的控制单元的机器人系统中,这尤其具有优势。在这种实施方式中,碰撞避免单元11从单独的路径规划器单元接收关于所规划路径的信息,并将一个或多个停止命令传达至相关的一个或多个机器人控制单元以避免碰撞。
[0037] 备选地,还可以使用现有安全系统,例如PLC,来停止或制动机器人。在此情况下,来自于计算机单元13的停止信号被传达至安全系统。
[0038] 碰撞避免单元11进一步包括用于存储数据的存储器16,其中数据是通过定义附加至并包围工作区中物体而提供的。可以为每个物体定义一个或多个防护区域。例如,为图1中的静止物体3定义一个防护区域20;为机器人1定义两个防护区域21、22;以及为机器人2定义四个防护区域24-27。防护区域可以包围机器人的一个或多个部件,例如就图1中的机器人2而言,一个防护区域可以分别包围机器人的每个手臂。机器人携带的工具或者工作物体可以由其自己的防护区域包围。防护区域被定义为任意几何形状的体积(volume)。体积可以从简单的几何元素,例如圆柱、球和框,到更为一般的表示,例如复杂的多面体和三角网格面片(triangulatedsurface patch)。静止物体及共享的工作空间区域可以简单地由几何体积包围。物体可以由其整个主体的模型、其表面的模型、由虚拟壁或者仅由点来包围。例如,物体的简单CAD模型可以加载至机器人控制单元中,并且可以用作物体周围的防护区域。
[0039] 计算单元13适用于计算多个未来时间点处工作区物体的防护区域之间的最短距离,以及在该最短距离的基础上,估计在工作区中防护区域之间碰撞发生之前剩余的时间。例如,借助于公知的GilbertJohnsson Keerthi(GJK)算法,可以计算最短距离。优选地,针对每个防护区域20-27,计算到工作区中所有其他防护区域的最短距离d1-d9(并非全部距离均在图中示出),还可以计算包围同一机器人的防护区域之间的最短距离。如图1所示,机器人2携带由防护区域24围绕的大而宽阔的工作物体,其可能与防护区域25-27所包围的机器人其他部件发生碰撞。为了避免工作物体与机器人其他部件之间的碰撞,计算在包围工作物体的防护区域24与包围机器人其他部件的防护区域25-27之间的最短距离d5-d7。
[0040] 防护区域21、22、24-27是可移动的防护区域,而防护区域20是静止的防护区域。确定工作区中所有可能的防护区域对。例如,如果工作区包括四个防护区域,则可能对的数量为6。在图1所示的示例中,工作区包括7个防护区域,因而存在21可能的个防护区域对。
每个防护区域对具有其自己的缓冲器,用于存储该防护区域对之间最短距离的连续值。针对每个防护区域都存在描述文件,该描述文件包括关于防护区域的类型、形状、尺寸、方向、对物体的防护区域可能的附加(包括用于对物体的防护区域的附加的参考坐标系)和防护区域几何模型的信息。
[0041] 图2示出了机器人将遵循的已编程机器人路径30的示例。该图中的箭头表示当前时间机器人位于路径的何处。路径规划器单元9通过执行对机器人程序所指示的移动的内插来计算机器人的未来路径。所指示的移动被划分成多个小增量,并且路径规划器针对每个增量对机器人的所有轴计算关节角度。该图示出了路径上过去的点P-4-P-1和未来的点P1-P10。路径规划器已事先基于机器人程序中的一个或多个程序指令规划了未来的点P1-P10。在图2所示的示例中,路径规划器已经针对10个未来的点计算了关节角度。每个计算出的未来点之间的时间是Δt。路径规划器事先规划的总时间被称为路径规划器的前瞻时间t1a。
[0042] 在以下参照图3来描述如何估计碰撞发生之前剩余的时间的示例。图3示出了防护区域对之间的最短距离dsd相对于时间t的示意图。基于来自路径规划器的未来关节角度、机器人的运动学模型和防护区域的几何模型,实时地计算两个防护区域之间的最短距离。基于机器人的运动学模型和来自路径规划器的关节角度,可以确定在路径规划器的前瞻时间期间的机器人配置。当已确定了防护区域的机器人几何模型的未来配置时,可以计算防护区域表面上的位置,并且基于这些位置,确定防护区域之间的距离。迭代算法找到防护区域表面之间的最短距离。针对来自路径规划器的每个点P1-P10,确定防护区域之间的最短距离,并且将该最短距离存储在缓冲器单元13中。通过从至少一个控制单元针对给定前瞻时间提供的关节角度流计算每个移动物体的位置,来预测每个防护区域对的位置。
[0043] 例如,路径规划器计算在10个未来点处的机器人关节角度。缓冲器功能具有时间窗口,并且仅包含预定数量的值。在此实施方式中,缓冲器包含针对10个连续时间点的10个距离值。缓冲器可以仅包含未来时间点P1-P10。然而,还可以将某些过去值P-4-P-1保持在缓冲器中。图3示出了存储在缓冲器中的绘制为时间t的函数的最短距离值dsd。在此示例中,防护区域之间的最短距离正在递减。缓冲器中存储的距离值用来预测碰撞发生之前剩余的时间。在曲线32与时间轴相交之前,对该曲线进行外插。到曲线与时间轴相交时,防护区域之间的距离为0。例如,通过线性或二次内插曲线,获得外插。防护区域之间距离等于0的时间点是估计的碰撞发生之前剩余的时间tc。碰撞发生之前剩余的时间tc等于路径规划器的前瞻时间t1a与曲线32的外插部分的时间te之和。
[0044] tc=t1a+te (1)
[0045] 为了避免处理器上不必要的计算负担,仅在防护区域之间距离小于预定义的值dh(也表示为水平距离)时,才计算每个防护区域对之间的最短距离和碰撞发生之前剩余的时间。只要防护区域之间的距离大于水平距离,则不需要计算碰撞发生之前剩余的时间。利用围绕每个防护区域的边界框的树,计算最短距离的保守近似。这样,定义了水平距离dh,在其以下,将在常规时间间隔处对每个防护区域对之间的最短距离和碰撞发生之前剩余的时间进行估计。
[0046] 在程序算法开始前,下述数据必须是已知的:
[0047] -机器人的运动学模型。这些模型用来实时地计算机器人的位置。
[0048] -可能的参考坐标系和所附加的防护区域的方向。该方向需要用来计算在所使用的参考坐标系中、防护区域相对于其所附加至的物体的位置。
[0049] -初始化参数,这些参数被设置值,以便由用于计算碰撞发生之前剩余时间的算法使用,来监视移动物体之间的干扰。
[0050] 必须实时地传达给碰撞避免单元的数据是关节值。这些值被用作到机器人运动学模型的输入,以便计算机器人部件的位置。还必须计算机器人的停止时间。这些停止时间是基于用于每个机器人的动态模型和包含在路径规划器实体9中的信息而实时获得的。实时创建和使用的其他数据是:一段给定时间内针对每个防护区域对存储在缓冲器中的距离计算、该时间间隔内针对每个防护区域对的距离之间的外插函数,和每个外插函数的根。
[0051] 图4是示出了根据本发明实施方式的方法和计算机程序产品的流程图。应当理解,流程图中的每个框都可以由计算机程序指令实现。
[0052] 在框40处,连续从一个或多个路径规划器单元接收针对工作区中所有机器人的所有轴的、最近计算出的关节角度。在框42处,基于所接收的关节角度、机器人的运动学模型和防护区域的几何模型,更新所有可移动防护区域(即,包围可移动部分的防护区域)的位置。
[0053] 在框43处,步骤44-64描述的算法针对每个防护区域对进行循环,直到所有的防护区域对都被处理完为止。在框44处,计算每个防护区域对之间的最短距离dsd或其近似,但不包括静止防护区域对。在框46处,将每个计算出的最短距离dsd存储在属于该防护区域对的缓冲器中。每个缓冲器已经包括在前一迭代中计算出的多个最短距离。新计算出的距离会覆盖缓冲器中最早计算出的距离。将针对当前防护区域对计算出的最短距离dsd与水平距离dh相比较。如果计算出的最短距离dsd小于水平距离dh,则在框56处确定碰撞发生之前剩余的时间tc;否则,在框54处,处理下一防护区域对。在框52处,当已经处理了所有防护区域对时,重复从框40开始的整个循环。
[0054] 在框56处,基于存储在缓冲器中的最短距离值并借助于外插操作,确定针对防护区域对的碰撞发生之前剩余的时间tc。在框58处,从路径规划器实体9接收关于轴位置的信息,以及在框60处,基于该关于轴位置的信息来计算机器人的停止时间ts。在框62处,将碰撞发生之前剩余的时间与停止时间相比较,以及如果碰撞发生之前剩余的时间小于停止时间乘以由以安全因子α所表示的参数,则在框64处,命令停止机器人,或物体或二者。安全因子α必须大于1,以便提供安全余量。如果碰撞发生之前剩余的时间大于停止时间乘以安全因子α,则针对下一防护区域对重复算法。参数α被定义为使得如果预测的碰撞发生前最短时间等于或小于即将来临的碰撞所涉及机器人之一的停止时间的α倍时,则至少一个机器人控制系统应当命令机器人停止它们的移动。
[0055] tc<α×ts (2)
[0056] 在本发明的一个实施方式中,允许机器人操作员设置或调节针对每个防护区域对的安全因子α的值。还允许操作员将安全因子α设置为小于1的值。在安全因子α设置为小于1的值的情况下,关闭针对该防护区域对的碰撞避免检测。例如,这在以下情况中是有益的:如果操作员知道机器人的路径接近或者与物体的路径重合,从而机器人应当被允许与物体非常接近,或者甚至是相接触,而无需面临被碰撞避免系统停止的风险。
[0057] 将所计算的最短距离与定义的最小值dmin进行比较,并且在所计算的最短距离dsd小于最小值的情况下,将机器人的速度减小给定百分比,例如大约降低20-30%的速度。根据等式2,减小机器人的速度意味着机器人的停止时间ts被减小,并且从而增大了碰撞发生之前剩余的允许时间tc。
[0058] 以同样的方式处理所有的防护区域对。持续框52-54的循环,直到处理完所有的防护区域对为止。如果检测到了即将来临的碰撞,即,如果tc<α×ts,并且如果任一防护区域属于连接至机器人控制单元5的机械单元,则命令相应的单元停止。如果任一防护区域属于外部物体,则可以由碰撞避免单元11将停止信号发送至所述物体应当连接至的外部控制单元,例如,PLC。这样,命令哪个移动物体停止取决于该防护区域对属于哪个或哪些物体。如果一个防护区域属于机器人1,并且另一防护区域属于机器人2,则命令两个机器人都停止。停止命令是从计算单元13内的监视任务生成的,并且经由停止单元10传播通过机器人控制器5。
[0059] 如果任一防护区域对之间的最短距离小于最小距离dmin,则防护区域附加至并且被监视的移动物体的速度应当减小给定百分比。
[0060] 从大于水平距离dh的距离,计算每个非静止防护区域对之间最短距离的近似。从小于水平距离dh的距离,计算每个非静止防护区域对之间的最短距离。所获得的距离被记录在用于机器人控制单元所设置时间间隔内的常数时间增量处的、过去位置和将来位置的缓冲器中。该方法包括:利用线性或二次函数对记录在时间间隔内的3-10个最新的最短距离进行内插。从所获得曲线的外插,估计物体对的碰撞发生之前剩余的时间。如果预测的碰撞发生之前剩余的时间小于它们各自停止时间的α倍,则为移动物体发送命令以便停止在路径上。命令机器人紧急停止,可能会偏离已编程的路径。
[0061] 在另一实施方式中,在低于前瞻时间间隔的预定义阈值的情况下,获得的碰撞发生之前剩余的时间的预测是非常高准确度的预测,而在高于该阈值时,获得的是较低准确度的预测。备选地,在低于防护区域对或防护区域之间最短距离的预定义阈值dh的情况下,获得的碰撞发生之前剩余的时间的预测是非常高的准确度的预测,而在高于该阈值时,获得的是较低准确度的预测。
[0062] 本发明的优势在于:可以实现以粗略近似来提前预测防护区域之间的碰撞,并且可以在较短的前瞻时间内非常准确地预测。这实现了真正的实时碰撞避免,从而通过利用可以作为通过总线连接至机器人控制单元主计算机的外部设备而运行的高效算法,将机器人控制单元的CPU过载风险最小化。
[0063] 本发明并不限于所公开的实施方式,而是可以在下述权利要求书的范围内进行变化和修改。例如,不需要将碰撞发生之前剩余的时间计算为最短距离曲线与时间轴相交的时间,即,当机器人与物体之间的距离为0的时间,而是也可以计算在机器人与物体之间的距离小于接近于0的临界距离时的时间。