掌桥专利:专业的专利平台
掌桥专利
首页

轨迹规划方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:52:40


轨迹规划方法、装置、电子设备及存储介质

技术领域

本申请属于机器人技术领域,尤其涉及一种轨迹规划方法、装置、电子设备及存储介质。

背景技术

在工业机器人按照机器人程序进行加工作业的过程中,机器人运行一段轨迹后,由于人为因素或设备故障,导致机器人的末端工具停止在狭小的工作空间内。此时如果重新运行当前程序,或者加载其它程序时,需要返回设定的HOME点,再运行机器人程序。

目前,通常会直接以点到点(POINTS TO POINTS,PTP)轨迹运动或者是线段(LINE,LIN)轨迹运动的方式,使得末端工具返回HOME点。或者,配合机器人的安全区域功能,在发生碰撞前刹停机器人,避免与其它设备发生碰撞。然而,以PTP或LIN方式返回HOME点,存在机器人与其它设备存在碰撞的风险。而配合安全区域功能在碰撞前刹停后,也需要人工进行手动点动控制(JOG),才能够使得机器人避开障碍物,返回HOME点,存在一定的操作难度,且效率较低。

发明内容

有鉴于此,本申请实施例提供了轨迹规划方法、装置、电子设备及存储介质,以解决现有技术中如何规划出高效准确的避障轨迹的问题。

本申请实施例的第一方面提供了一种轨迹规划方法,包括:

根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级;

根据所述当前位置的各个步进方向的优先级,确定所述当前位置对应的步进位置;

若所述步进位置符合可达条件,则将所述步进位置的点位信息按序记录至目标轨迹信息中;其中,所述可达条件包括机器人在所述步进位置上与障碍物不存在干涉关系;

若所述步进位置与所述目标位置的距离小于预设距离,则根据所述目标轨迹信息确定轨迹规划结果;否则,以所述步进位置作为更新后的当前位置,并返回执行所述根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级的步骤。

可选地,在所述根据当前位置和目标位置,确定所述当前位置的步进方向优先级之前,还包括:

获取机器人的工具中心点的起始规划位置;

若在所述工具中心点位于所述起始规划位置时,所述机器人的末端工具与障碍物不存在干涉关系,则获取所述工具中心点的目标位置,以及将所述起始规划位置作为初始的当前位置。

可选地,所述根据所述当前位置的各个步进方向的优先级,确定所述当前位置对应的步进位置,包括:

根据所述当前位置的各个步进方向的优先级和目标步长,确定所述当前位置对应的步进位置。

可选地,所述根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级,包括:

根据所述机器人的工具中心点的当前位置和目标位置,计算所述目标位置与所述当前位置的位置差值;

根据所述位置差值,确定所述当前位置的各个步进方向的优先级;

所述根据所述当前位置的各个步进方向的优先级和目标步长,确定所述当前位置对应的步进位置,包括:

根据所述当前位置的各个步进方向的优先级,确定当前步进方向;

根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置。

可选地,在所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置之后,还包括:

若所述步进位置不符合可达条件,则根据当前位置的各个步进方向的优先级,确定下一个优先级的步进方向为当前步进方向,并返回执行所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置的步骤。

可选地,在所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置之后,所述方法还包括:

若所述步进位置不符合可达条件,且所述当前位置不存在其它可达的步进方向,则返回所述当前位置对应的上一位置;

若所述当前位置对应的上一位置为起始规划位置,并且所述起始规划位置不存在其它可达的步进方向,则判定当前轨迹规划失败。

可选地,在所述若所述步进位置符合可达条件,则将所述步进位置的点位信息按序记录至目标轨迹信息中之前,还包括:

根据所述机器人的末端工具对应的球形包络以及所述障碍物的目标形状包络,确定所述机器人在所述步进位置上与所述障碍物之间的干涉关系测算结果;其中,所述球形包络用于表示所述末端工具所占的空间,所述目标形状包络用于表示所述障碍物所占的空间;所述目标步长的大小等于所述球形包络的直径;

根据所述干涉关系测算结果,判断所述步进位置是否符合可达条件。

本申请实施例的第二方面提供了一种轨迹规划装置,包括:

步进方向优先级确定模块,用于根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级;

步进位置确定模块,用于根据所述当前位置的各个步进方向的优先级,确定所述当前位置对应的步进位置;

记录模块,用于若所述步进位置符合可达条件,则将所述步进位置的点位信息按序记录至目标轨迹信息中;其中,所述可达条件包括机器人在所述步进位置上与障碍物不存在干涉关系;

结果确定模块,用于若所述步进位置与所述目标位置的距离小于预设距离,则根据所述目标轨迹信息确定轨迹规划结果;否则,以所述步进位置作为更新后的当前位置,并返回执行所述根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级的步骤。

本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得电子设备实现如所述轨迹规划方法的步骤。

本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得电子设备实现如所述轨迹规划方法的步骤。

本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的轨迹规划方法。

本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,由于在机器人的轨迹规划过程中,遍历到每个当前位置时,能够根据机器人的工具中心点的当前位置和目标位置,准确地确定当前位置的各个步进方向的优先级,使得根据当前位置的各个步进方向的优先级可以优先遍历离目标位置较近的步进位置,因此能够提高轨迹规划效率,高效地规划出一条相对较短的运动轨迹;并且,由于在步进位置符合可达条件(即机器人在该步进位置上与障碍物之间不存在干涉关系)时,才将该步进位置的点位信息按序记录至目标轨迹信息中,使得最终规划出的目标轨迹信息中的各个点位信息能够准确地避开障碍物。综上,通过本申请实施例的轨迹规划方法,能够准确地规划得到最短避障轨迹,使得后续机器人的末端工具按照该目标轨迹信息进行运动时,能够避免与障碍物发生碰撞,安全高效地到达目标位置。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1是本申请实施例提供的一种轨迹规划方法的实现流程示意图;

图2是本申请实施例提供的一种点位信息的结构体示意图;

图3是本申请实施例提供的轨迹规划装置的示意图;

图4是本申请实施例提供的电子设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本申请实施例提供了一种轨迹规划方法,从机器人的工具中心点的起始规划位置开始,根据当前位置和目标位置,确定当前位置的各个步进方向的优先级,进而根据各个步进方向的优先级规划出当前位置对应的步进位置。之后,在判断该步进位置符合可达条件时,将该步进位置的点位信息按序记录至目标轨迹信息中。若该步进位置与目标位置的距离小于预设距离,则说明当前规划到的步进位置已经位于目标位置附近,将此时的目标轨迹信息作为轨迹规划结果;否则更新当前位置,循环执行前述步骤,以继续规划接下来的步进位置。

由于在机器人的轨迹规划过程中,遍历到每个当前位置时,能够根据机器人的工具中心点的当前位置和目标位置,准确地确定当前位置的各个步进方向的优先级,使得根据该当前位置的各个步进方向的优先级可以优先遍历离目标位置较近的步进位置,因此能够提高轨迹规划效率,高效地规划出一条相对较短的运动轨迹;并且,由于在步进位置符合可达条件(即机器人在该步进位置上与障碍物之间不存在干涉关系)时,才将该步进位置的点位信息按序记录至目标轨迹信息中,使得最终规划出的目标轨迹信息中的各个点位信息能够准确地避开障碍物。综上,通过本申请实施例的轨迹规划方法,能够准确地规划得到从起始规划位置到目标位置附近的最短避障轨迹,使得后续机器人的末端工具按照该目标轨迹信息进行运动时,能够避免与障碍物发生碰撞,安全高效地到达目标位置。

实施例一:

图1示出了本申请实施例提供轨迹规划方法的流程示意图。该轨迹规划方法应用于电子设备。在一个实施例中,该电子设备可以为机器人,例如工业机器人。在另一个实施例中,该电子设备可以为能够获取机器人的信息,为机器人的末端工具进行轨迹规划的其它电子设备,例如电脑、手机、服务器等。如图1所述的轨迹规划方法详述如下:

在S101中,根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级。

本申请实施例中,当前位置初始为机器人的末端工具的工具中心(Tool CenterPoint,TCP)的起始规划位置,该起始规划位置为本次轨迹规划的起点。本申请实施例的目标位置为TCP所要到达的终点位置。本申请实施例的当前位置,初始为上述的起始规划位置,而之后,该当前位置为在轨迹规划过程中遍历到的位于起始规划位置和目标位置之间的点位位置。需要指出的是,除了初始的当前位置(即TCP的起始规划位置),在之后轨迹规划中的当前位置,为目标轨迹信息中的一个点位位置。在轨迹规划时,以起始规划位置作为最初的当前位置,根据该当前位置和目标位置开始规划步进位置,之后再以规划到的步进位置作为更新后的当前位置,并继续规划下一个步进位置,如此循环确定各个步进位置,以规划得到从机器人的工具中心点的起始规划位置到目标位置的轨迹信息。

可选地,所述步骤S101,包括:

根据所述机器人的工具中心点的当前位置和目标位置,计算目标位置与所述当前位置的位置差值;

根据所述位置差值,确定所述当前位置的各个步进方向的优先级。

在轨迹规划过程中,对于每个当前位置,为了更准确地确定能够让规划出的轨迹更短的步进位置,可以先根据当前位置和目标位置,确定该当前位置的各个步进方向优先级。

在一个实施例中,可以通过计算目标位置与当前位置之间的差值(即将目标位置减去当前位置),得到位置差值;根据该位置差值的差值符号,确定当前位置的各个步进方向的优先级。示例性地,对于该机器人,存在预设的一个世界坐标系OXYZ,该世界坐标系以任意一个预设的点为坐标原点O(例如可以为机器人的起始规划位置),机器人的末端工具可以沿上、下、左、右、前、后六个方向运动,以该末端工具向上运动的方向为Z轴正方向(记为Z+),以该末端工具向下运动的方向为Z轴负方向(记为Z-),以该末端工具向右运动的方向为X轴正方向(记为X+),以该末端工具向左运动的方向为X轴负方向(记为X-),以该末端工具向前运动的方向为Y轴正方向(记为Y+),以该末端工具向后运动的方向为Y轴负方向(记为Y-)。在该实施例中,设机器人的工具中心点的当前位置在该坐标系OXYZ下的坐标为(X1,Y1,Z1),目标位置在该坐标系OXYZ下的坐标为(X2,Y2,Z2),则目标位置与当前位置之间的位置差值为:Δx=X2-X1,Δy=Y2-Y1,Δz=Z2-Z1,之后,根据Δx、Δy、Δz的符号确定当前位置的各个步进方向的优先级。例如,设当前位置(X1,Y1,Z1)=(1,1,1),目标位置(X2,Y2,Z2)=(3,0,3),则计算出的Δx=X2-X1=2,Δy=Y2-Y1=-1,Δz=Z2-Z1=2,因为Δx的符号为正,Δy的符号为负,Δz的符号为正,则可确定,在坐标系OXYZ中,目标位置相对于当前位置,位于X轴正方向、Y轴负方向、Z轴正方向上。此时的步进方向优先级可以为:X+>Y->Z+>X->Y+>Z-,即当前的步进方向优先级依次为X+、Y-、Z+,使得机器人的工具中点能够在当前位置的相邻位置中,优先选择位于X轴正方向、Y轴负方向、Z轴正方向上的相邻位置作为下一个步进位置(即朝着(3,0,3)的方向),从而使得确定出的步进位置更靠近目标位置。由于通过该方式确定的步进位置能够更靠近目标位置,使得按照该步进位置运动的轨迹是朝向目标位置的,而不是为了避开障碍物随机选择任意一个可能迂回远离目标位置的其它步进位置,因此使得规划出的轨迹更短。

在S102中,根据所述当前位置的各个步进方向的优先级,确定所述当前位置对应的步进位置。

本申请实施例中,步进位置为在轨迹规划过程中,为当前位置规划的下一轨迹点的位置。在确定当前位置的各个步进方向的优先级后,按照各个步进方向的优先级,选择优先级最高的步进方向作为当前步进方向。之后,根据当前位置、当前步进方向以及提前预设的目标步长,可以确定当前位置对应的步进位置。

可选地,所述步骤S102,包括:

S10201:根据所述当前位置的各个步进方向的优先级,确定当前步进方向;

S10202:根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置。

在步骤S10201中,对于当前位置,根据其各个步进方向的优先级,确定当前最高优先级的步进方向为当前步进方向。

在S10202中,确定当前步进方向之后,根据该当前步进方向和目标步长,确定在该当前步进方向上与当前位置的距离为目标步长大小的位置作为步进位置。

在S103中,若所述步进位置符合可达条件,则将所述步进位置的点位信息按序记录至目标轨迹信息中;其中,所述可达条件包括所述机器人在所述步进位置上与障碍物不存在干涉关系。

在根据步进方向优先级,初步确定当前位置对应的步进位置后,进一步判断该步进位置是否符合可达条件。该可达条件至少包括:机器人在该步进位置上与周围的障碍物不存在干涉关系;还可以包括:该步进位置位于预设的机器人运动空间内,即该步进位置没有超过提前划定的机器人运动范围。其中,障碍物可以为机器人周围的外部设备或者其他物品。机器人在该步进位置上与周围的障碍物是否存在干涉关系,是假设机器人的末端工具的工具中心点位于该步进位置上,通过一定算法测算该情况下其末端工具与周围的障碍物是否存在空间上的交叠而确定的。若二者在空间上存在交叠,则说明存在干涉关系,否则说明不存在干涉关系。

可选地,在步骤S103之前,可以通过以下步骤判断步进位置是否符合可达条件:

根据所述机器人的末端工具对应的球形包络以及所述障碍物的目标形状包络,确定所述机器人在所述步进位置上与所述障碍物之间的干涉关系测算结果;其中,所述球形包络用于表示所述末端工具所占的空间,所述目标形状包络用于表示所述障碍物所占的空间;所述目标步长的大小等于所述球形包络的直径;

根据所述干涉关系测算结果,判断所述步进位置是否符合可达条件。

本申请实施例中,为了判断机器人是否与障碍物存在干涉关系,需要在世界坐标系下表征机器人与障碍物分别所占的空间。对于机器人,可以根据其末端工具的三维外形尺寸,定义适合大小的球形包络,用于近似代表末端工具所占空间的位置和大小。在一个实施例中,可以基于DH建模方法,精确表示机器人在运动到不同位姿时,末端工具对应的球形包络在世界坐标系下所占空间。其中,DH建模方法包括:在机器人的每个连杆上建立一个坐标系,通过齐次坐标变换实现两个连杆上的坐标变换,建立多连杆串联系统中首末坐标系的变换关系。对于障碍物,例如外部设备,可以通过立方体区域、圆柱体区域、椭球形区域或者球形区域来近似表示其在空间中占用空间的位置和大小。在一个实施例中,可以使用机器人末端工具的工具中心点到达障碍物附近的几个特征点,进行点位示教,计算得到障碍物在世界坐标系下的目标形状包络(例如干涉立方体)。

本申请实施例中,在轨迹规划时的目标步长的大小等于机器人的末端工具的球形包络的直径。在每次根据当前位置的步进方向优先级确定当前步进方向后,将在该当前步进方向上与当前位置的距离为目标步长大小的位置确定为当前位置对应的步进位置。

由于能够以机器人的末端工具的球形包络的直径作为目标步长大小,使得根据该目标步长大小确定的步进位置与当前位置上的球形包络刚好相切,因此能够在轨迹规划时保证在步进区域不重叠且不遗漏的情况下,高效准确地遍历步进位置,提高轨迹规划的准确性和效率。

由于上述的球形包络和目标形状包络均建立在同一坐标系下,当该球形包络与该目标形状包络发生区域重叠时,则认为机器人与外部的障碍物间存在干涉关系。在一个实施例中,该干涉关系可以通过以下三个表达式进行判断:

(X

(Y

(Z

其中,X

、、、、、碍物的目标形状包络在坐标系OXYZ中的边界坐标,即(X

上述干涉关系的判断条件为:机器人的末端工具的球形包络的球心坐标,不能同时处于障碍物的目标形状包络边界(例如立方体边界)的三坐标范围内,即上述三个表达式均成立时,则确定干涉关系测算结果为:机器人与障碍物之间存在干涉关系;否则(即三个表达式中有任一个不成立时),确定干涉关系测算结果为:机器人与障碍物之间不存在干涉关系。

在确定上述干涉关系测算结果之后,根据该干涉关系测算结果判断当前的步进位置是否符合可达条件。在一个实施例中,当干涉关系测算结果为:机器人与障碍物之间不存在干涉关系,并且该步进位置处于预设的机器人运动范围内,则判定该步进位置符合可达条件。相反地,若干涉关系测算结果为:机器人与障碍物之间存在干涉关系或者该步进位置超出预设的机器人运动范围,则判定该步进位置不符合可达条件。

本申请实施例中,由于能够基于机器人的末端工具的球形包络和障碍物的目标形状包络,准确地测算机器人在步进位置上是否与障碍物存在干涉关系,因此能够准确地判断该步进位置是否符合可达条件,从而能够准确地规划到无障碍轨迹。

当判断步进位置符合可达条件时,说明该步进位置可以作为避障轨迹中的一个轨迹点,将该步进位置的点位信息按序记录至目标轨迹信息中。

本申请实施例中的点位信息至少包括位置点的位姿信息。在一些实施例中,该点位信息还可以包括用于表示是否干涉的信息、用于表示周围的各个步进方向是否可达的信息、在目标轨迹信息中的相邻点位的相邻指针信息等。示例性地,可以通过结构体的形式表示每个位置点的点位信息,其结构体的结构可以如图2所示,包括:位姿信息、是否干涉、6个步进方向是否可达的标识信息(“是否可达(X+)”“是否可达(X-)”“是否可达(Y+)”“是否可达(Y-)”“是否可达(Z+)”“是否可达(Z-)”这6个步进方向的可达标识信息)、6个方向的相邻结构体指针的信息。

本申请实施例中的目标轨迹信息可以为一个轨迹数组,其能够按序记录每个规划得到的可达的步进位置的点位信息(可以为如图2所示的结构体)。当判断当前确定的步进位置符合可达条件时,可以创建用于表示该步进位置的点位信息的结构体,之后,将该结构体加入到该轨迹数组的尾部,从而实现对该步进位置点位信息的按序记录。

可选地,在所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置之后,还包括:

若所述步进位置不符合可达条件,则根据当前位置的各个步进方向的优先级,确定下一个优先级的步进方向为当前步进方向,并返回执行所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置的步骤。

如果根据以上的判断步骤判定该步进位置不符合可达条件,则返回原来的当前位置,判断该当前位置是否还存在其它尚未遍历的步进方向。若存在,则根据当前位置的各个步进方向的优先级,确定下一优先级的步进方向(即尚未遍历的次优先级方向)为更新后的当前步进方向,并根据该更新后的当前步进方向和目标步长,重新确定新的步进位置。

可选地,在所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置之后,还包括:

若所述步进位置不符合可达条件,且所述当前位置不存在其它可达的步进方向,则返回所述当前位置对应的上一位置;

若所述当前位置对应的上一位置为起始规划位置,并且所述起始规划位置不存在其它可达的步进方向,则判定当前轨迹规划失败。

如果根据以上的判断步骤判定该步进位置不符合可达条件,则返回原来的当前位置,判断该当前位置是否还存在其它尚未遍历的步进方向。如果该当前位置不存在其它尚未遍历的步进方向,则说明按照该当前位置无法继续朝目标位置步进,此时,退回到该当前位置对应的上一位置进行接下来的轨迹规划。示例性地,如果在当前位置上已经按照优先级遍历了5个方向上的步进位置均不符合可达条件,则可以判断该当前位置不存在其它尚未遍历的步进方向。

如果在轨迹规划流程退回到该当前位置对应的上一位置后,确定退回的该上一位置是机器人的工具中心点的起始规划位置,并且该起始规划位置不存在其它可达的步进方向(例如6个步进方向均不可达,即6个不步进方向上均存在不可达的步进位置),则判定当前轨迹规划失败。此时,可以发出提示信息,以提示用户当前无法根据该起始规划位置和目标位置完成轨迹规划。

本申请实施例中,由于能够在当前位置不存在其它可达的步进方向时,退回上一位置进行接下来的轨迹规划,因此能够提高轨迹规划的灵活性和成功率。另外,在上一位置为起始规划位置,并且该起始规划位置不存在其它可达的步进方向时,能够直接判定当前轨迹规划失败,从而能够及时向用户反映当前的轨迹规划情况。

在S104中,若所述步进位置与所述目标位置的距离小于预设距离,则根据所述目标轨迹信息轨迹规划结果;否则,以所述步进位置作为更新后的当前位置,并返回执行所述根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级的步骤。

在将规划到的步进位置的点位信息记录至目标轨迹信息后,计算该步进位置与目标位置之间的距离。之后将该距离与预设距离进行比较,该预设距离为提前设定的距离。在一个实施例中,该预设距离可以等于目标步长。

如果该距离小于预设距离,则说明当前该步进位置已到达目标位置附近,此时判定当前轨迹规划成功,当前记录的目标轨迹信息即包含了规划得到的最短避障轨迹的各个点位信息,可以根据该目标轨迹信息确定轨迹规划结果。在一个实施例中,可以直接将该目标轨迹信息作为轨迹规划结果进行输出或者存储。机器人可以根据该目标轨迹信息,将各个点位信息相连形成各条轨迹线段,得到从起始规划位置到达目标位置的完整目标轨迹。之后,机器人的末端工具按照该目标轨迹进行轨迹运动,从而安全高效地抵达目标位置。

如果该距离大于或者等于预设距离,则说明当前该步进位置尚未到达目标位置附近,将此时的步进位置作为更新后的当前位置,并返回步骤S101,循环执行步骤S101-步骤S104,以继续确定下一步进位置,继续进行轨迹规划。

本申请实施例中,由于在机器人的轨迹规划过程中,遍历到每个当前位置时,能够根据该当前位置和目标位置,准确地确定当前位置的步进方向优先级,使得根据该步进方向优先级可以优先遍历离目标位置较近的步进位置,因此能够提高轨迹规划效率,高效地规划出一条相对较短的运动轨迹;并且,由于在步进位置符合可达条件(即机器人在该步进位置上与障碍物之间不存在干涉关系)时,才将该步进位置的点位信息按序记录至目标轨迹信息中,使得最终规划出的目标轨迹信息中的各个点位信息能够准确地避开障碍物。综上,通过本申请实施例的轨迹规划方法,能够准确地规划得到到达目标位置附近的最短避障轨迹,使得后续机器人的末端工具按照该目标轨迹信息进行运动时,能够避免与障碍物发生碰撞,安全高效地到达目标位置。

可选地,在所述根据当前位置和目标位置,确定所述当前位置的各个步进方向的优先级之前,还包括:

获取机器人的工具中心点的起始规划位置;

若在所述工具中心点位于所述起始规划位置时,所述机器人的末端工具与障碍物不存在干涉关系,则获取所述工具中心点的目标位置,以及将所述起始规划位置作为初始的当前位置。

本申请实施例中,电子设备可以在检测到轨迹规划触发条件时,获取机器人的末端工具的工具中心点此时在实际物理空间中的所在位置,将其称为起始规划位置。检测到轨迹规划触发条件可以包括:检测到用户发出的轨迹规划指令;或者,可以包括:检测到当前机器人的末端工具位于目标环境中,该目标环境可以为面积小于预设面积的狭小工作空间;或者,可以包括:检测到当前由于故障或者人为因素导致的机器人运动中止。

在获取当前的起始规划位置之后,先判断该机器人在该起始规划位置上与障碍物是否存在干涉关系。

如果存在干涉关系,则说明当前机器人的末端工具已经被障碍物制动,不存在使机器人灵活运动的避障轨迹,此时直接判定当前轨迹规划失败,发出用于表示当前无法规划路径的提示信息,以使用户根据该提示信息进行人工干预。

如果不存在干涉关系,则说明当前机器人还能够在一定范围内灵活运动,此时获取机器人的末端工具所要到达的目标位置,该目标位置可以由用户当前直接输入,也可以携带于前述的轨迹规划指令中。之后,以当前的起始规划位置作为初始的当前位置,开始执行上述的步骤S101至步骤S104的步骤,实现轨迹规划。

本申请实施例中,由于能够先获取机器人的工具中心点的起始规划位置,并在判定机器人的末端工具在该起始规划位置上与障碍物不存在干涉关系后,再获取目标位置,以该起始规划位置作为初始的当前位置进行后续的轨迹规划,因此能够在保证机器人当前能够灵活运动的前提下再进行轨迹规划,避免出现无效规划的情况。

作为示例而非限定,上述的轨迹规划方法可以应用于机器人在狭小工作空间中返回HOME点的应用场景中。其中,HOME点也可以称为原点,这个点为绝对安全点,在该点上不会与任何工装及其它机器人的任何状态干涉,机器人在工作开始前和工作完成后都处于该位置。在该应用场景中,机器人在按照机器人程序进行加工作业,运行一段轨迹后,可能由于人为因素或者设备故障,导致机器人的末端工具停止在狭小的工作空间内。此时,如果需要重新运行当前程序或者加载其它程序时,需要先返回设定的HOME点,再运行机器人程序。在该应用场景中,以机器人的末端工具停止在狭小工作空间内时的TCP位置作为起始规划位置,以机器人HOME点作为目标位置,通过本申请实施例的轨迹规划方法,能够规划出避开所有障碍物的目标轨迹信息,使得机器人的末端工具能够根据该目标轨迹信息从停止位置返回HOME点。该过程无需人工编程,也无需人工手动JOG操作,通过自动地规划出高效准确的避障轨迹,使得机器人的末端工具安全高效地返回HOME点。

在一些实施例中,本申请实施例的轨迹规划方法也可以应用于规划机器人从HOME点到设定的工作点位进行工作的应用场景中。在该应用场景中,起始规划位置为机器人的HOME点,目标位置为设定的工作点位。通过本申请实施例的轨迹规划方法确定的目标轨迹信息可以反映从HOME点到工作点位之间的最短避障轨迹的各个点位信息,使得机器人根据该目标轨迹信息能够安全高效地从HOME点运动到工作点位完成目标工作。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例二:

图3示出了本申请实施例提供的一种轨迹规划装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:

该轨迹规划装置包括:步进方向优先级确定模块31、步进位置确定模块32、记录模块33、结果确定模块34。其中:

步进方向优先级确定模块31,用于根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级。

步进位置确定模块32,用于根据所述当前位置的各个步进方向的优先级,确定所述当前位置对应的步进位置。

记录模块33,用于若所述步进位置符合可达条件,则将所述步进位置的点位信息按序记录至目标轨迹信息中;其中,所述可达条件包括机器人在所述步进位置上与障碍物不存在干涉关系。

结果确定模块34,用于若所述步进位置与所述目标位置的距离小于预设距离,则根据所述目标轨迹信息确定轨迹规划结果;否则,以所述步进位置作为更新后的当前位置,并返回执行所述根据机器人的工具中心点的当前位置和目标位置,确定所述当前位置的各个步进方向的优先级的步骤。

可选地,所述轨迹规划装置,还包括:

获取模块,用于获取机器人的工具中心点的起始规划位置;若所述机器人在所述起始规划位置与障碍物不存在干涉关系,则获取目标位置,以及将所述起始规划位置作为初始的当前位置。

可选地,所述步进位置确定模块32,具体用于根据所述当前位置的各个步进方向的优先级和目标步长,确定所述当前位置对应的步进位置。

可选地,所述步进方向优先级确定模块31,具体用于根据所述机器人的工具中心点的当前位置和目标位置,计算所述目标位置与所述当前位置的位置差值;

根据所述位置差值,确定所述当前位置的各个步进方向的优先级;

所述步进位置确定模块32,包括:

当前步进方向确定单元,用于根据所述当前位置的各个步进方向的优先级,确定当前步进方向;

步进位置确定单元,用于根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置。

可选地,所述轨迹规划装置,还包括:

返回模块,用于在所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置之后,若所述步进位置不符合可达条件,则根据当前位置的各个步进方向的优先级,确定下一个优先级的步进方向为当前步进方向,并返回执行所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置的步骤。

可选地,所述轨迹规划装置,还包括:

判定模块,用于在所述根据所述当前步进方向和所述目标步长,确定所述当前位置对应的步进位置之后,若所述步进位置不符合可达条件,且所述当前位置不存在其它可达的步进方向,则返回所述当前位置对应的上一位置;若所述当前位置对应的上一位置为起始规划位置,并且所述起始规划位置不存在其它可达的步进方向,则判定当前轨迹规划失败。

可选地,所述轨迹规划装置,还包括:

可达条件判断模块,用于根据所述机器人的末端工具对应的球形包络以及所述障碍物的目标形状包络,确定所述机器人在所述步进位置上与所述障碍物之间的干涉关系测算结果;其中,所述球形包络用于表示所述末端工具所占的空间,所述目标形状包络用于表示所述障碍物所占的空间;所述目标步长的大小等于所述球形包络的直径;根据所述干涉关系测算结果,判断所述步进位置是否符合可达条件。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

实施例三:

图4是本申请一实施例提供的电子设备的示意图。如图4所示,该实施例的电子设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42,例如轨迹规划程序。所述处理器40执行所述计算机程序42时实现上述各个轨迹规划方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图4所示步进方向优先级确定模块31至结果确定模块34的功能。

示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述电子设备4中的执行过程。

所述电子设备4可以是工业机器人、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是电子设备4的示例,并不构成对电子设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器41可以是所述电子设备4的内部存储单元,例如电子设备4的硬盘或内存。所述存储器41也可以是所述电子设备4的外部存储设备,例如所述电子设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述电子设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • 无人机迁移轨迹生成方法、装置、电子设备和存储介质
  • 路线规划方法、装置、电子设备及可读存储介质
  • 路径规划方法、装置、电子设备及存储介质
  • 巡检路径规划方法、装置、电子设备及可读存储介质
  • 运动轨迹规划方法及其装置、贴袋机和存储介质
  • 轨迹规划方法、轨迹规划装置、存储介质与电子设备
  • 轨迹规划方法、轨迹规划装置、存储介质与电子设备
技术分类

06120116332676