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

路径控制方法、机器人系统和计算机可读存储介质

文献发布时间:2023-06-19 13:45:04


路径控制方法、机器人系统和计算机可读存储介质

技术领域

本发明大致涉及机器人运动控制领域,具体涉及用于机器人的路径控制方法、机器人系统和计算机可读存储介质。

背景技术

移动机器人在执行递送任务时,需要提前规划出一条到达目的点的路线。通过路线上的局部目标点进行控制量(速度,角速度)的反算,然后根据这些控制量驱动机器人到达局部目标点,如此即可到达最终的目标位置。常用的路线规划方法是基于启发式搜索的Dijkstra和A*算法,其核心思路是在障碍物地图中遍历当前位置周围的栅格,选择当前代价值和到达目标位置代价值最小的栅格作为下一个位置。如果有多个栅格代价值都最小,则选取其中最近的栅格作为下一个位置,如图1所示,即为由Dijkstra算法规划的路径,其优势是可以让机器人在未知环境中行走自如,在环境多变的情况下游刃有余。

基于启发式搜索的Dijkstra或A*算法,计算量比较大。另外如果将该路径直接用于移动机器人的运动,机器人将移动不顺畅。规划出来的路径存在比较贴近障碍物以及非常不平顺的问题,不平顺主要是由于机器人规划的路线是折线,那么在拐点处速度方向突变,而角速度跟不上导致的。

背景技术部分的内容仅仅是公开人所知晓的技术,并不当然代表本领域的现有技术。

发明内容

有鉴于现有技术的至少一个缺陷,本发明提供一种可用于机器人的路径控制方法,包括:

S101:对所述机器人进行路径规划,获得第一路径;

S102:获得所述第一路径上的转折点;

S103:调整所述第一路径上的转折点;

S104:根据调整后的所述第一路径上的转折点,生成第二路径;和

S105:对所述第二路径上的所述转折点进行平滑处理。

根据本发明的一个方面,所述路径控制方法还包括:对所述第一路径进行平滑处理,获得平滑路径;其中所述步骤S102包括:根据所述第一路径和所述平滑路径,获得所述第一路径上的转折点;所述步骤S103包括:根据所述平滑路径,调整所述第一路径上的转折点。

根据本发明的一个方面,所述步骤S101包括通过Dijkstra方法或A*方法,获得所述第一路径。

根据本发明的一个方面,通过以下函数对所述第一路径进行平滑处理:

其中Xi是所述第一路径上的栅格的坐标,Yi是第二路径上的栅格的坐标,α为预设的靠近因子,β为预设的平滑因子。

根据本发明的一个方面,所述步骤S102包括:根据所述第一路径与所述平滑路径之间的距离的局部极大值点,确定所述第一路径上的转折点;或根据所述第一路径上的各点与其相邻点的坐标的关系,确定所述第一路径上的转折点。

根据本发明的一个方面,所述步骤S103包括:对于所述第一路径上的转折点,在所述转折点与其在所述平滑路径上的对应点的连线上调整所述转折点。

根据本发明的一个方面,所述步骤S103包括调整所述转折点使得转折点远离障碍物。

根据本发明的一个方面,所述步骤S104包括:根据调整后的所述第一路径上的转折点,以直线连接相邻的转折点,生成所述第二路径。

本发明还提供一种机器人系统,包括:

机器人,所述机器人配置成可在场地上移动;

中央控制单元,配置成可向所述机器人分配任务,所述任务包括起点和终点;和

路径控制单元,所述路径规划单元配置成可基于所述任务的起点和终点以及所述场地上的障碍物信息,通过执行如上所述的路径控制方法,向所述机器人提供执行所述任务的路径。

本发明还提供一种用于机器人的路径控制系统,包括:

配置成对所述机器人进行路径规划以获得第一路径的单元;

配置成获得所述第一路径上的转折点的单元;

配置成调整所述第一路径上的转折点的单元;

配置成根据调整后的所述第一路径上的转折点生成第二路径的单元;和

配置成对所述第二路径上的所述转折点进行平滑处理的单元。

本发明还提供一种计算机可读存储介质,其上存储有可由处理器执行的计算机程序,其中所述计算机程序被处理器执行时可实施如上所述的路径控制方法。

本发明的实施例将基于当前的路径进行平滑处理,使得其比较平顺且尽量远离障碍物;另外,为减少遍历搜索的计算量,本方案的实施例可以基于局部优化算法选择转折点,转折点之间以直线连接,在转折点附近进行平滑处理即可。

附图说明

图1示出了现有技术的路径规划的示意图;

图2示出了根据本发明一个实施例的用于机器人的路径控制方法;

图3示出了根据本发明一个实施例的用于确定转折点的方法的示意图;

图4示出了根据本发明一个实施例的用于调整转折点的方法的示意图;

图5示出了根据本发明一个优选实施例的用于机器人的路径控制方法;

图6示出了根据本发明一个优选实施例的用于调整转折点的方法的示意图;

图7A示出了根据图5所示的路径控制方法进行路径规划的结果的示意图;图7B示出了根据本发明实施例进行路径规划的全局示意图;

图8示出了根据本发明一个实施例的一种机器人系统;

图9示出了根据本发明一个实施例的用于机器人的路径控制系统;和

图10示出了依照本发明一个实施例的计算机程序产品的框图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。

在本发明的描述中,需要理解的是,术语"中心"、"纵向"、"横向"、"长度"、"宽度"、"厚度"、"上"、"下"、"前"、"后"、"左"、"右"、"竖直"、"水平"、"顶"、"底"、"内"、"外"、"顺时针"、"逆时针"等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,"多个"的含义是两个或两个以上,除非另有明确具体的限定。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语"安装"、"相连"、"连接"应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接:可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征之"上"或之"下"可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征"之上"、"上方"和"上面"包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征"之下"、"下方"和"下面"包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第二特征。

下文的公开提供了许多不同的实施方式或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

基于启发式搜索的Dijkstra或A*算法规划出来的路径存在比较贴近障碍物以及非常不平顺的问题,这种不平顺的问题主要是由于机器人规划的路线是折线,那么在拐点处速度方向突变,而角速度跟不上导致的,并且由于需要遍历当前位置周围的所有栅格,其计算量也比较大。如果将该路径直接用于控制移动机器人的运动,机器人将移动不顺畅。本发明的发明人构思出,对路径规划所获得的路径上的转折点进行调整,然后根据调整后的转折点生成新的路径,进而进行平滑处理,就可以使得最终获得的路径比较平顺且尽量远离障碍物。下面参考附图详细描述本发明。

图2示出了根据本发明一个实施例的用于机器人的路径控制方法100,下面参考图2详细描述。

在步骤S101:对所述机器人进行路径规划,获得第一路径R1,例如图1所示的路径。

部署机器人的场地中,通常可以对场地进行栅格化处理,例如如图1所示的,将场地划分为20*20的栅格,每个栅格具有唯一的坐标,每个栅格的长度和宽度的尺寸可以根据实际的情况来进行设定,长度与宽度可以是相同,也可以设置成不同。根据每个栅格被占用的情况,可以为每个栅格设定不同的属性值,例如被占用(数值0)或者空闲(数值1),图1中黑色的栅格例如代表目前被占用的栅格,白色的栅格代表目前空闲或者可用的栅格。在进行路径规划时,将避免穿过那些当前被占用的栅格。场地的栅格以及栅格的状态信息可以通过数据结构来进行存储,例如数组或者矩阵的形式。

通常在进行机器人的路径规划时,需要给定机器人所要执行的任务的起点和终点,如图1中所示的,任务的起点为坐标为(0,0)的栅格,任务的终点为坐标为(20,20)的栅格。在获得了任务的起点和终点、以及场地栅格的状态信息之后,可通过不同的算法获得从起点到终点的第一路径R1,例如可以通过Dijkstra方法或A*方法,获得所述第一路径R1。所述第一路径R1例如包括机器人将要经过的每个栅格的坐标。本发明不限于具体的路径规划方法,本领域技术人员可根据实际需求,例如场地的实际情况、实时性的要求、算力的不同等因素,采用不同的算法来进行路径规划,这些都在本发明的保护范围内。

现有技术的机器人运动控制中,在获得了第一路径R1之后,即直接控制机器人沿着第一路径R1进行运动。本发明中,有别于现有技术,会基于第一路径R1上的转折点进行调整,获得第二路径并进行平滑处理后,作为机器人的最终运动路径。下面详细描述。

在步骤S102:获得所述第一路径R1上的转折点。

本发明中,第一路径R1上的转折点,是指其路径方向发生突变的点。可以通过不同的方式来获得第一路径R1上的转折点。例如可以通过第一路径R1上各个栅格(或各个点)的与相邻栅格(相邻点)的坐标的关系,来确定第一路径R1上的转折点。

如图3所示,其中示出了第一路径R1上的栅格A2、A3、A4和A5,以其为示例说明如何根据各个栅格与相邻栅格的坐标关系来确定转折点。对于栅格A3,与栅格A2相比,其x坐标变大,y坐标变大。对于栅格A4,与栅格A3相比,其x坐标变大,y坐标变大。对于栅格A5,与栅格A4相比,其x坐标变大,y坐标变小。由此可见,在栅格A4的前后,第一路径R1的方向发生了变化,因此栅格A4为转折点;而在栅格A3处,第一路径R1的方向没有发生变化,因此栅格A3不是转折点。

也可以通过其他的方式来获得第一路径R1上的转折点,例如首先对第一路径R1进行平滑处理,得到平滑路径RS,然后根据第一路径R1与平滑路径RS之间的距离的局部极大值点,确定所述第一路径上的转折点,将在下面的优选实施例中具体描述。

在步骤S103:调整所述第一路径R1上的转折点。

在第一路径R1的转折点处,机器人的运动路线是转折幅度较大的折线,因此运动参数将会发生突变,例如在转折点处的速度方向可能发生突变,或者角速度发生突变,或者角速度与速度无法同步或者协调变化,因此会导致机器人运动的不平顺或者不平稳。

根据本发明,在步骤S103,可以根据一些预设的优化因素来调整转折点。例如根据本发明的一个优选实施例,该优化因素可以是使得转折点尽量远离障碍物。图4示出了这样一个实施例,如图4所示,黑色的栅格代表障碍物所在的区域,其中第一路径R1包括局部的三个栅格,分别为A2、A3和A4,其中栅格A3与栅格A2相比,其x坐标变大,y坐标变大,对于栅格A4,与栅格A3相比,其x坐标变大,y坐标不变,因此在栅格A3处,第一路径R1的方向发生了变化,因此栅格A3为转折点。在对栅格A3进行调整时,可以以预设的距离为半径,在该半径的圆所覆盖的区域内,寻找距离障碍物最远的栅格。或者可替换的,以栅格A3为中心,以预设的距离为边长,构造正方形,在正方形覆盖的区域内寻找距离障碍物最远的栅格。在图4的实施例中,在以一个栅格为半径的圆形的区域内,栅格A3’距离障碍物最远,因此将第一路径R1上的该转折点修改为栅格A3’,也就是用栅格A3’替换栅格A3,作为第一路径R1上的一个点(栅格)。

也可以通过另外的优化因素来调整转折点,例如使得该点具有较小的障碍物代价值且远离障碍物,且相邻转折点之间的连线需要避开障碍物,这些都在本发明的保护范围内。

在步骤S104:根据调整后的所述第一路径R1上的转折点,生成第二路径R2。

在步骤S103获得了调整的第一路径R1的转折点,接下来在步骤S104,根据调整后的转折点,生成第二路径R2。根据本发明的一个实施例,根据第一路径R1上的多个转折点,通过直线连接相邻的转折点,来生成第二路径R2。例如第一路径R1上的转折点A3,在步骤S103中进行了调整,替换为点A3’,将点A3’与第一路径R1上的其他转折点通过直线相连,获得第二路径R2。

在步骤S105:对所述第二路径R2进行平滑处理。

在步骤S104获得的第二路径,其已经相对于第一路径进行了优化,但是整个路径还是折线,在一些转折点处仍然可能产生拐点处速度方向突变、而角速度跟不上导致运动不平稳问题。因此在步骤S105,可以对第二路径R2进行平滑处理(例如对第二路径R2上的转折点进行平滑处理),对第二路径R2进行局部调整,使得路径点之间没有突变或者尽量减小突变。

图5示出了根据本发明一个优选实施例的用于机器人的路径控制方法200。图5的路径控制方法200中的一些特征与图2所示的路径控制方法100相同或相近,下面重点描述二者的区别之处,相同之处不再赘述。

如图5所示,在步骤S201,类似于图2的步骤S101,对所述机器人进行路径规划,获得第一路径R1。

在步骤S201-2,对所述第一路径R1进行平滑处理,获得平滑路径RS。

路径的平滑是对路径进行局部调整而使得其路径点之间没有突变,并且仍然是可行路径,即不会撞到障碍物。根据本发明的一个优选实施例,通过下面的优化函数对所述第一路径R1进行平滑处理:

其中R1

在步骤S202,根据所述第一路径R1和所述平滑路径RS,获得所述第一路径R1上的转折点。路径的转折点实际上是局部变化比较明显的点,根据本发明的一个优选实施例,可以通过寻找第一路径R1和平滑路径RS之间的一维距离偏差的局部极大值点,来确定所述第一路径R1上的转折点。

根据本发明的一个优选实施例,建立偏差距离函数D(R1,RS)=||RS

在步骤S203,根据所述平滑路径RS,调整所述第一路径R1上的转折点。

根据本发明的一个优选实施例,在获得了平滑路径RS之后,可以使用平滑路径RS来辅助调整第一路径R1上的转折点。第一路径R1上的每个点,在平滑路径RS上都具有对应的点。对于第一路径R1上的转折点,在该转折点与其在所述平滑路径RS上的对应点的连线上调整所述转折点。

参考图6描述根据本发明的一个优选实施例。如图6所述,R1(i-1)、R1(i)和R1(i+1)为第一路径R1上的三个点(栅格),其中R1(i)为转折点。基于第一路径R1进行平滑处理,获得平滑路径RS,其中平滑路径RS上的点RS(i)对应于所述转折点R1(i)。在步骤S203中,根据预设的优化参数或者优化函数,在R1(i)-RS(i)构成的连线Z上寻找一点,来调整所述第一路径R1上的转折点R1(i),例如图中所示的点Z(i),即使用点Z(i)替换所述第一路径R1上的转折点R1(i)。因此,图6中红色直线Z是待求的点Z(i)的遍历范围,Z(i)的初始值为R1(i),平滑路径RS在其中起到了指示路径的调整方向的作用。

根据本发明的一个优选实施例,可以在转折点R1(i)于其在所述平滑路径RS上的对应点的连线上寻找尽量远离障碍物的点,该点应当具有较小的障碍物代价值并且远离障碍物,并且该点与第一路径R1上的前后相邻转折点之间的连线不应当与障碍物相交,且具有较小的障碍物代价值,远离障碍物。根据本发明的一个优选实施例,使用如下优化函数:

其中costmap(A,B)表示从A点到B点的线段上所有栅格的代价值之和,dist(A,B)标识从A点到B点的线段上距离障碍物最近的距离值,γ是平衡因子,优选为0.5。通过上述优化函数,在R1(i)-RS(i)构成的连线Z上寻找一点,来代替所述第一路径R1上的转折点R1(i)。

本发明中,栅格地图描述的是环境中的障碍物信息。对于每个栅格,可以具有代价值信息。根据本发明的一个实施例,根据该栅格的状态来设定代价值信息,障碍物所占据的栅格例如可具有较大的代价值,远离障碍物区域的栅格的代价值较小,距离越远,代价值越小。以过道为例,墙所在的栅格的代价值较高,过道中间的栅格的代价值较低,减小代价值的表现就是远离障碍物。当对机器人进行路径规划的时候可以选择代价值少的栅格,因为代价值高代表障碍物或者距离障碍物较近。

在步骤S204,根据调整后的所述第一路径R1上的转折点,以直线连接相邻的转折点,生成所述第二路径R2。根据本发明一个优选实施例,相邻的转折点A和B之间的路径可以通过插值公式P=(1-t)A+tB获得,其中0

在步骤S205,对第二路径进行平滑处理,例如可通过上面步骤S201-2中的方式对第二路径进行平滑处理。

图7A示出了根据图5所示的路径控制方法200进行路径规划的结果,其中可明显看出,相比于初始规划获得的第一路径R1,经过调整和平滑处理后获得的第二路径R2更加平滑,而且远离障碍物。

图7B示出了根据本发明实施例进行路径规划的全局示意图,下面参考图7B详细说明。

如图7B所示,机器人当前处于位置A,需要行驶到位置B。根据位置A和位置B的坐标、以及场地中的障碍物等信息,可以对机器人进行路径规划,获得第一路径R1,在图7B中以A-R1(1)-R1(2)-R1(3)-R1(4)-B表示(点R1(1)与R1(2)还具有一个转折较为尖锐的点,但为清楚起见,图中没有标识出)。获得了第一路径R1之后,对所述第一路径R1进行平滑处理,获得平滑路径RS(图中未示出),并进而获得第一路径R1上的转折点,例如包括R1(1)、R1(2)、R1(3)、R1(4)。接下来根据所述平滑路径RS调整所述第一路径R1上的转折点R1(1)、R1(2)、R1(3)、R1(4),具体可参考上面的内容,在各转折点与其在平滑路径上的对应点的连线上(如图7B中每个转折点处的直线所示),调节所述转折点,例如在图中分别调整为点R2(1)、R2(2)、R2(3)、R2(4)。然后根据调整后的转折点生成第二路径,例如通过连接相邻的转折点,获得第二路径A-R2(1)-R2(2)-R2(3)-R2(4)-B。如图7B所示,相比于第一路径,第二路径距离障碍物更远。接下来,对所述第二路径R2进行平滑处理,例如对第二路径上的转折点R2(1)、R2(2)、R2(3)、R2(4)进行平滑处理,使得转折点处的轨迹变得更为平滑,如图7B中的曲线R2'(1)、R2'(2)、R2'(3)、R'2(4)所示的。因此,通过本发明的上述实施例,可以使得机器人的路径更加远离障碍物,同时路径更加平滑,减小了机器人运动过程中的运动冲击,使得移动更加顺畅。

另外,为减少遍历搜索的计算量,本方案的实施例可以基于局部优化算法选择转折点,转折点之间以直线连接,在转折点附近进行平滑处理即可。

图8示出了根据本发明一个实施例的一种机器人系统300,下面参考附图详细描述。

如图8所示,机器人系统300包括机器人301、中央控制单元302以及路径控制单元303。其中所述机器人301例如为送餐机器人、自动引导车AGV、或者其他类型的用于搬运或者执行任务的机器人,配置成可在图中网格状的场地上移动,场地上的黑色网格代表其上具有障碍物,机器人无法通行。本领域技术人员容易理解,图8中网格状的场地仅仅是用于示意性的目的,并不代表本发明的场地上具有实际的网格。所述中央控制单元302可以与机器人301通讯,配置成可向所述机器人301分配任务,具体的任务例如包括任务的起点和终点。场地上各个网格的坐标机器当前的状态(例如是否可通行,是否被占用)可以存储在一个文件中,由中央控制单元302以及路径控制单元303访问,从而获取当前最新的场地状态。

路径控制单元303配置成可基于所述任务的起点和终点以及所述场地上的障碍物信息,通过执行如上所述的路径控制方法100或200,向所述机器人301提供执行所述任务的路径。

图8中路径控制单元303示出为独立于机器人301和中央控制单元302,本领域技术人员容易理解,这样示出仅是便于理解,在实际实施时,可以将路径控制单元303集成在机器人301中,或者集成在中央控制单元302中,或者部分集成在机器人301中、部分集成在中央控制单元302中,这些都在本发明的保护范围内。

图9示出了根据本发明一个实施例的用于机器人的路径控制系统400,包括:

配置成对所述机器人进行路径规划以获得第一路径的单元401;

配置成获得所述第一路径上的转折点的单元402;

配置成调整所述第一路径上的转折点的单元403;

配置成根据调整后的所述第一路径上的转折点生成第二路径的单元404;和

配置成对所述第二路径上的所述转折点进行平滑处理的单元405。

本发明还涉及一种计算机可读存储介质或信号承载介质,其上存储有可由处理器执行的计算机程序,其中所述计算机程序被处理器执行时可实施如上所述的路径控制方法100或200。

图10示出了依照本发明的至少一些实施例的计算机程序产品500的框图。信号承载介质502为一种计算机可读存储介质,可以被实现为或者包括计算机可读介质506、计算机可记录介质508、计算机通信介质510或者它们的组合,其存储可配置处理单元以执行先前描述的过程中的全部或一些的编程指令504。这些指令可以包括例如用于使一个或多个处理器执行如下处理的一个或多个可执行指令:S101:对所述机器人进行路径规划,获得第一路径;S102:获得所述第一路径上的转折点;S103:调整所述第一路径上的转折点;S104:根据调整后的所述第一路径上的转折点,生成第二路径;和S105:对所述第二路径上的所述转折点进行平滑处理。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 路径控制方法、机器人系统和计算机可读存储介质
  • 运送机器人系统、运送机器人的控制方法及存储有机器人控制程序的计算机可读存储介质
技术分类

06120113793571