本发明涉及一种在局部感知能力下的势流法的避障方法,属于避障方法技术领域。
背景技术:
机器人的实时避障是机器人自动能力的关键问题之一,近年来有大量海内外学者都投入研究。避障规划不同于路径规划,路径规划一般是已获知环境的全局信息。而避障规划通常是根据传感器实时检测到的局部信息,调整轨迹以避免发生碰撞。所以在未知环境的情况下,避障对于智能机器人的自主行动能力显得尤为重要。
目前传统的避障方法主要分为:可视图法、vfh(vectorfieldhistogram直方图法)、动态窗口法、人工势场法等。但是各些方法都有各自的优缺点。譬如,可视图法虽然算法简单,可是缺乏灵活性,对障碍物形状有要求,局限性太大。栅格法中栅格大小是影响它避障效果的主要问题,并且伴随有局部极小值的现象。人工势场法既可以用来避障也可以用来路径规划,但是伴随的问题是避障过程中容易陷入局部极小值问题,还存在着目标不可达的问题。在现有的避障算法中都或多或少存在着一些问题。
技术实现要素:
本发明提出了一种在局部感知能力下的势流法的避障方法,旨在未知环境下为有一定感知能力的机器人解决避障规划问题,有效地防止进入局部极值,可以平滑地绕开障碍物以达到目标点。
本发明为解决其技术问题采用如下技术方案:
一种在局部感知能力下的势流法的避障方法,包括以下步骤:
(1)构造在感知范围内的障碍物模型;
(2)构造机器人在势流法中受目标点影响的引力速度;
(3)构造机器人在势流法中受障碍干扰时的流体速度;
(4)在各种障碍环境中避障规划的仿真结果。
步骤(1)中构造在感知范围内的障碍物模型的具体步骤如下:
设定pobject=(xobj,yobj),pobject代表下标object的位置,xobj,yobj分别代表object的x轴、y轴的坐标;设机器人的当前位置为pr=(xr,yr),出发点ps=(xs,ys),目标点为pt=(xt,yt),其中:xr、yr为机器人的x轴、y轴的坐标,xs、ys为出发点的x轴、y轴的坐标,xt、yt为目标点的x轴、y轴的坐标;机器人的感知范围是以自身当前位置pr为中心,以rmax为感知的最大半径;rs为机器人结构最大外接圆半径,即安全距离;在检测范围r<rmax内检测障碍物的点为pobs(i)=(xi,yi),xi、yi为第i个障碍物的x轴、y轴的坐标;pobs(i,j)代表检测第i,j障碍物之间的距离;若在检测范围内检测障碍物的任意两个点小于2rs,即
步骤(2)中所述构造机器人在势流法中受目标点影响的引力速度的具体步骤如下:
在没有障碍物干扰的情况下,目标点对机器人的吸引单位速度向量
其特征在于,步骤(3)中所述构造机器人在势流法中受障碍干扰时的流体速度的具体步骤如下:
假设r为机器人检测范围,若在r≤rmax内检测到障碍,rmax为机器人感知的最大半径,则距离机器人最近的障碍物po=(xmin,ymin)会对机器人起干扰作用,使机器人从障碍物旁边以流水型的方式绕过障碍;机器人位置pr与最近障碍物位置po的位置关系为:
本发明的有益效果如下:
1、本发明是在未知环境中,以机器人为中心的局部感知的条件下,利用现有的障碍检测信息去确定下一步机器人的速度,以达到避开障碍物的结果。相比较传统的避障方法,算法简单明了,易于实现,工程上的应用更合理、更广泛。解决了现有避障技术在未知环境下难以实施的问题。
2、本发明提出的一种新型的速度势流场方法。本发明相对于传统的人工势场法、栅格法、bug法在控制上更加容易实现。临时构建的速度流场。不会产生太多冗余数据。而由于算法的简易性,可以保证在工程上的处理速度快,系统响应快,使机器人的避障的实时性更加可靠。
3、本发明在速度势流场上的速度函数构造,使机器人比较合理的响应最近障碍物信息。机器人会以自己当前位置和速度为基础规划出下一步比较合理的速度,更加贴合实际。创新性的以水流绕开障碍物为模型构建速度函数。通过仿真结果可知:在未知环境下,从检测到障碍物到绕过障碍物,机器人规划的路径都相对来说比较平滑、合理。
附图说明
图1是避障方法流程图。
图2是障碍物1的形状图。
图3是障碍物1构造后的形状图。
图4是障碍物2的形状图。
图5是障碍物2构造后的形状图。
图6是避障规划情况1示意图。
图7是避障规划情况2示意图。
图8是避障规划情况3示意图。
图9是避障规划情况4示意图。
具体实现方式
下面结合附图对本发明创造做进一步详细说明。其中rmax为机器人感知的最大半径;rs为机器人结构最大外接圆半径,即安全距离;ps为出发点位置,pt为目标点位置,pr为机器人的位置。pobs为检测范围以内检测到的障碍物。
图1为本文阐述的势流法避障方法的流程图。
图2为rmax=30;rs=4;pr=(45,65)时检测到的障碍物1的形状,圆心是机器人的位置,直线圆是机器人检测范围:以rmax为半径的圆。星点是在检测范围以内检测到的障碍物pobs。图3中的圆点是构造出新添加的障碍物pobs+。同理图4、图5分别为rmax=30;rs=4;pr=(45,65)时检测到的障碍物2的形状和构造出新添加的障碍物。
图6为障碍物为分散点时,机器人的避障情况:rmax=5;rs=2时,三角形是出发点ps=(0,0),正方形是目标点pt=(100,100),虚线是机器人行驶的路线,星点是障碍物。仿真显示:机器人的路径较为合理地到达目标点。
图7当障碍物通道类型时,机器人的避障情况:rmax=5;rs=2时,三角形是出发点ps=(0,0),正方形是目标点pt=(70,150),虚线是机器人行驶的路线,星点是障碍物。仿真显示:机器人在经过通道时路线比较平滑,基本不会震荡。
图8表示当障碍物有小于2rs的安全距离的通道,机器人的避障情况:rmax=5;rs=2时,三角形是出发点ps=(20,0),正方形是目标点pt=(70,150),虚线是机器人行驶的路线,星点是障碍物。仿真显示:当障碍物有小于2rs的安全距离的通道时,机器人不能通过,则会把通道添加成新的障碍物,并绕开障碍物,防止发生碰撞。
图9表示当障碍物为凹型时,机器人的避障情况:rmax=5;rs=2时,三角形是出发点ps=(40,0),正方形是目标点pt=(70,150),虚线是机器人行驶的路线,星点是障碍物。仿真显示:当障碍物为凹型时,机器人比较合理的绕开障碍物,到达目标点。并不会陷入局部极值。
(1)构造在感知范围内的障碍物模型:
假设机器人的当前位置为pr=(xr,yr),出发点为ps=(xs,ys),目标点为pt=(xt,yt),其中:xr、yr为机器人的x轴、y轴的坐标,xs、ys为出发点的x轴、y轴的坐标,xt、yt为目标点的x轴、y轴的坐标。机器人的感知范围是以自身当前位置pr为中心,以rmax为感知的最大半径;rc为危险半径;rs为机器人结构最大外接圆半径,即安全距离。在检测范围r<rmax内检测障碍物的点为pobs(i)=(xi,yi),i为检测的第i个障碍物,xi为第i个障碍物的x轴的坐标,yi为第i个障碍物的y轴的坐标。pobs(i,j)代表检测第i,j障碍物之间的距离,且i≠j。若在检测范围内检测障碍物的任意两个点小于2rs,即
(2)构造机器人在势流法中受目标点影响的引力速度:
机器人的初始速度为:
(3)构造机器人在势流法中受障碍干扰时的流体速度:
若在机器人检测范围rmax内检测到障碍,则距离机器人最近的障碍物po=(xmin,ymin)会对机器人起干扰作用,使机器人从障碍物旁边以流水型的方式绕过障碍。机器人位置pr与最近障碍物位置po的位置关系为:
其中:
障碍物po对机器人pr的流体速度主要分为两种状态:
①当rs<rro≤rc时,主要是
其中:
②当rc<rro≤rmax时,主要是垂直
其中:
上式中rmax为机器人感知的最大半径;rc为危险半径;rs为机器人结构最大外接圆半径,即安全距离。
(4)在各种障碍环境中避障规划的仿真结果
经过仿真证明由于rs<rro≤rc时,障碍物po对机器人作用的速度矢量中有排斥的速度分量,并且随着rro的减小而增大,在假设机器人响应速度的时间t可以忽略不计时,机器人不会碰撞到障碍物。
当rc<rro≤rmax且
而当rc<rro≤rmax且
通过matlab仿真得到结果证明该方法是可行且理想的,势流法可以理想地使机器人受最近的障碍物影响,平滑的绕开障碍物驶向目标点。避免了很多局部最优值的情况,并且路径局部不会震荡,总体来说比较合理。因此本发明具有更广泛的应用领域。