一种动态环境避障方法、控制器及机器人与流程

文档序号:16542737发布日期:2019-01-08 20:34阅读:498来源:国知局
一种动态环境避障方法、控制器及机器人与流程

本公开属于机器人路径规划领域,尤其涉及一种动态环境避障方法、控制器及机器人。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

在机器人路径规划中,人工势场方法为机器人导航提供了一种简单而有效的运动规划方法,通过建立目标点和障碍物的合力势力场,来引导机器人躲避障碍,从而达到目标点。

然而,发明人发现传统的人工势场方法在实际应用中存在以下问题:

(1)机器人尚未到达目标点但所受合力为零时,将陷入局部极小点而停止运动.并且使得机器人无法逃避这种情况;

(2)传统的人工势场方法在动态环境中的效果较差,机器人可能与障碍物发生碰撞。



技术实现要素:

根据本公开的一个或多个实施例的一个方面,提供一种动态环境避障方法,其将动态窗口法和改进的危险指数法结合到人工势场方法的路径规划,从而提高路径的有效性。

本公开提供的一种动态环境避障方法,包括:

计算得到机器人当前位置所受合力;

基于动态窗口法来模拟机器人当前位置所受合力多个方向的下一位置点;

确定下一位置点所受合力最小的位置点,作为机器人移动的下一位置点;

构建机器人的局部地图,若动态障碍物进入机器人的局部地图,则控制机器人开始进行动态避障;否则,机器人移动至下一位置点,直至到达目标点。

在一个或多个实施例中,在动态避障的过程中,判断速度危险指数是否大于零,若是,则选择从障碍的后面绕行进行动态避障;否则,选择从动态障碍的前方绕行进行动态避障;其中,速度危险指数的求取过程为:动态障碍物的速度与预设倍数相乘后再与机器人的速度作差,最后取差值的符号函数。

在一个或多个实施例中,当速度危险指数大于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度减去距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

在一个或多个实施例中,当速度危险指数小于或等于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度累加距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

在一个或多个实施例中,利用人工势场法计算得到机器人当前位置所受合力。

在一个或多个实施例中,利用搜索算法来计算下一位置点所受合力最小的位置点。

本公开还提供了一种控制器,其包括内存;所述控制器还包括:

当前合力计算模块,其被配置为计算得到机器人当前位置所受合力;

下一位置点模拟模块,其被配置为基于动态窗口法来模拟机器人当前位置所受合力多个方向的下一位置点;

最小合力筛选模块,其被配置为确定下一位置点所受合力最小的位置点,作为机器人移动的下一位置点;

动态避障确定模块,其被配置为构建机器人的局部地图,若动态障碍物进入机器人的局部地图,则控制机器人开始进行动态避障;否则,机器人移动至下一位置点,直至到达目标点。

在一个或多个实施例中,在所述动态避障确定模块中,在动态避障的过程中,判断速度危险指数是否大于零,若是,则选择从障碍的后面绕行进行动态避障;否则,选择从动态障碍的前方绕行进行动态避障;其中,速度危险指数的求取过程为:动态障碍物的速度与预设倍数相乘后再与机器人的速度作差,最后取差值的符号函数。

在一个或多个实施例中,在所述动态避障确定模块中,当速度危险指数大于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度减去距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

在一个或多个实施例中,在所述动态避障确定模块中,当速度危险指数小于或等于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度累加距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

在一个或多个实施例中,在所述当前合力计算模块中,利用人工势场法计算得到机器人当前位置所受合力。

在一个或多个实施例中,在所述最小合力筛选模块中,利用搜索算法来计算下一位置点所受合力最小的位置点。

本公开提供的一种机器人,包括上述所述的控制器。

与现有技术相比,本公开的有益效果是:

(1)将动态窗口法和改进的危险指数法结合到人工势场方法的路径规划方法。改进后的方法可以引导机器人避开局部最小区域,而且不需要检测机器人是否已经进入该区域。

(2)可以帮助机器人了解动态障碍的状态,使机器人进行预判断,从而提高路径的有效性,并规划出更好的路径。

附图说明

构成本公开的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1是本公开的一种动态环境避障方法流程图。

图2是本公开的一种控制器结构示意图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

本公开实施例提出了一种动态环境避障方法,其采用动态窗口法,并且结合了新的危险系数,实现机器人对人工势场法中局部极小值区域的躲避,以及可以对动态环境中不同速度的障碍采用不同的策略进行躲避。

本公开实施例提出了一种动态环境避障方法利用人工势场的方法,求的当前机器人所受合力方向θt,然后利用动态窗口法在合力方向的基础上增加不同数量δθ,模拟出n个θω(ω=1,…,t,…,n)个方向,后分别乘上机器人的移动步长,模拟不同方向,下一步的机器人要移动的位置。然后将模拟的移动位置代入人工势场函数中,利用搜索算法,找到的函数值最小的位置,设置为机器人下一步移动的位置。

具体地,如图1所示,本公开实施例的一种动态环境避障方法,包括:

(1)计算得到机器人当前位置所受合力。

具体地,利用人工势场法计算得到机器人当前位置所受合力。

通过传统人工势场的方法计算得到机器人当前位置所受合力θt,以及该合力对应的下一步位置。

(2)基于动态窗口法来模拟机器人当前位置所受合力多个方向的下一位置点。

具体地,利用搜索算法来计算下一位置点所受合力最小的位置点。

利用动态窗口法,在合力方向上增加或减少角度δθ,模拟合力附近多个方向θω,求得相应的多个位置点(xn,yn)。

(3)确定下一位置点所受合力最小的位置点,作为机器人移动的下一位置点。

利用搜索算法,求得多个位置点合力值最小的点(x,y),作为机器人移动的下一位置点,如公式(1)-(3)。

θω=θt+(ω-t)δθ,ω=(1,…,t,…,n)(1)

其中:合力θt为人工势场方法求解出的合力,角度δθ为在原本求解出来的合力θt基础上增加或者减少角度的变化量,方向θω为增加了一定数量的角度变化量δθ的模拟角度值。

t表示人工势场求解出来合力的角度的标识(下标),ω是一个变量,表示模拟的所有角度的标识;

apf(.)为传统人工势场函数,即将多对坐标点送入函数中,分别求出这n个点的人工势场函数值,然后找到最小的,即为下一步要移动的位置点。

(4)构建机器人的局部地图,若动态障碍物进入机器人的局部地图,则控制机器人开始进行动态避障;否则,机器人移动至下一位置点,直至到达目标点。

在动态避障的过程中,判断速度危险指数是否大于零,若是,则选择从障碍的后面绕行进行动态避障;否则,选择从动态障碍的前方绕行进行动态避障;其中,速度影响因子的求取过程为:动态障碍物的速度与预设倍数相乘后再与机器人的速度作差,最后取差值的符号函数。

具体地,当速度危险指数大于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度减去距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

当速度危险指数小于或等于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度累加距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

如果有动态障碍物进入机器人局部地图,传统人工势场的速度场uv(vro)是用速度场影响因子乘上机器人和障碍之间的相对速度的平方作为速度场的函数值,而求解的速度场合力则为速度场函数的负梯度,即对函数进行求导,便可以得到速度场求得的斥力(krovro),然后将该斥力加入到之前的合力函数中即可。

本公开的速度场:首先计算动态障碍进入局部地图之后和机器人之间的距离,如果较远,机器人不需要做太大的偏移,这样可以增加路径的高效性(这里是利用了危险系数中的距离危险指数部分),然后比较机器人和动态障碍物之间速度,如果机器人的速度是动态障碍的ε倍(ε×|vo|-|vr|≤0,而ko=sgn(ε×|vo|-|vr|)就是速度危险指数),则认为机器人速度足够快,可以选择从动态障碍的前方绕行,也不会发生碰撞。其他情况下,为了保证安全,机器人会选择从障碍的后面绕行。

本公开利用动态窗口法,可以找到环境中不是局部最小值的梯度下降最快的点,机器人可以走最短的路径到达目标点。

本公开增加危险系数,把障碍和机器人之间的距离和速度的相对关系(相对方向和大小)都考虑进来,让机器人可以对当前的环境进行判断,做出决策。

本公开利用上述两种方法同时用来改进人工势场,可以让机器人利用人工势场规划出,更合理的路径。

本公开实施例建立机器人的局部地图后,当动态障碍物进入机器人的局部地图后,机器人开始进行动态避障,利用人工速度势场uv(vro)来帮助机器人进行动态避障,根据动态障碍的运动方向,计算机器人和动态障碍之间的相对速度,将相对速度方向和之前结合动态窗口法的人工势场求解的合力方向进行合成,确定下一步机器人移动方向,然后在速度场的基础上结合改进的危险系数di,其中根据障碍物和机器人之间的距离,距离因子fcm(ρcm)控制速度场的影响程度;

通过比较障碍物和机器人之间的速度大小,速度危险指数ko决定机器人的避障策略,即动态障碍较快,机器人将进行绕后避障,而机器人较快,则进行绕前避障。最后利用结合斥力di(也就是危险系数)的速度场和结合动态窗口法的人工势场求解出人工势场方法的合理方向,指引机器人移动。

ko=sgn(ε×|vo|-|vr|)(6)

其中,vro:机器人和动态障碍的相对速度,即机器人对地面的速度和地面对障碍的速度,矢量合成之后的速度;

ρcm:动态障碍物进入机器人的局部地图后,与机器人之间的距离;

ρcmax:机器人局部地图的最大范围,即动态障碍物进入该范围后,人工势场方法的动态避障方法开始起作用;

kro:速度势场影响因子,来决定速度势场在所有势场函数中的重要程度;

δ:表示距离影响因子,在动态障碍物进入机器人的局部地图后,影响程度大小;

vr:机器人对地面的速度;

vo:障碍物对地面的速度;

ε:障碍物和机器人之间速度标量的比较值,来判定机器人速度是机器人的ε倍时,机器人将选择前绕策略;

α:(vr-fcmvo)与从机器人指向动态障碍的矢量之间的角度;

β:(vr+fcmvo)与从动态障碍指向机器人的矢量之间的角度。

图2提供了本公开的一种控制器结构示意图。

如图2所示,本公开的一种控制器,包括内存;该控制器还包括:

(1)当前合力计算模块,其被配置为计算得到机器人当前位置所受合力;

具体地,在所述当前合力计算模块中,利用人工势场法计算得到机器人当前位置所受合力。

(2)下一位置点模拟模块,其被配置为基于动态窗口法来模拟机器人当前位置所受合力多个方向的下一位置点;

(3)最小合力筛选模块,其被配置为确定下一位置点所受合力最小的位置点,作为机器人移动的下一位置点;

具体地,在所述最小合力筛选模块中,利用搜索算法来计算下一位置点所受合力最小的位置点。

(4)动态避障确定模块,其被配置为构建机器人的局部地图,若动态障碍物进入机器人的局部地图,则控制机器人开始进行动态避障;否则,机器人移动至下一位置点,直至到达目标点。

具体地,在所述动态避障确定模块中,在动态避障的过程中,判断速度危险指数是否大于零,若是,则选择从障碍的后面绕行进行动态避障;否则,选择从动态障碍的前方绕行进行动态避障;其中,速度危险指数的求取过程为:动态障碍物的速度与预设倍数相乘后再与机器人的速度作差,最后取差值的符号函数。

具体地,在所述动态避障确定模块中,当速度危险指数大于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度减去距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

具体地,在所述动态避障确定模块中,当速度危险指数小于或等于零,且动态障碍物进入机器人的局部地图后与机器人之间的距离小于或等于机器人局部地图的最大范围时,斥力等于机器人的速度累加距离因子与动态障碍物的速度乘积的速度势场影响因子,并将得到的斥力作用到模拟的机器人下一位置点处。

本公开还提供了一种机器人,其包括如图2所示的控制器。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

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