基于改进人工鱼群算法的移动机器人路径规划方法与流程

文档序号:23725372发布日期:2021-01-26 15:32阅读:101来源:国知局
基于改进人工鱼群算法的移动机器人路径规划方法与流程

[0001]
本发明涉及移动机器人设计技术领域,具体涉及基于改进人工鱼群算法的移动机器人路径规划方法。


背景技术:

[0002]
机器人路径规划可以分成两种:一种是诸如人工势场法、voronoi图法和可视图法。人工势场方法拥有简单的结构,但存在容易陷入局部最优解的问题;可视图法能够获得最短路径但其搜索效率较低;voronoi图法安全性较高但起始节点到目标节点的路径较长。一种是随着技术的发展,环境模型复杂性和任务难度的增加,一些仿生算法也随之出现,如蚁群算法、遗传算法、蜂群算法、蛙跳算法、粒子群算法等。蚁群算法是目前在机器人路径规划方面应用比较完善的算法,具有较强的鲁棒性、优良的分布式计算,但其搜索时间较长易于出现早熟停滞现象。遗传算法把遗传算子应用到机器人的研究中,对机器人的路径规划具有良好的效果,但其占据较大的存储空间且局部寻优能力较差。蜂群算法搜索速度快、易于实现,但存容易陷入局部最优、搜索效率低等不足。蛙跳算法的缺点在于易收敛于局部最优解、求解精度较低。粒子群算法的优势在于简单且容易实现,但其本身存在易过早收敛而陷入局部最优的缺点。


技术实现要素:

[0003]
本发明所要解决的技术问题在于提供一种基于改进人工鱼群算法的移动机器人路径规划方法,以解决上述背景技术中的问题。
[0004]
本发明是通过以下技术方案解决上述技术问题的,本发明包括如下步骤:
[0005]
包括如下步骤:
[0006]
s1、初始化人工鱼群算法相关参数,包括鱼群规模n、人工鱼移动步长step、视野visual、拥挤度因子δ以及最大迭代次数,设定滚动窗口半径r;
[0007]
s2、进行全局路径规划,随机获得初始路径;
[0008]
s3、机器人沿初始路径前进,并不断检测周围环境信息,检测滚动窗口内是否有动态障碍物;若未检测到动态障碍物,得到移动机器人的路径。
[0009]
s4、若检测到动态障碍物存在,则预测是否会与其发生碰撞以及碰撞的类型;
[0010]
s5、若预测不会发生碰撞,则按初始路径继续前进;
[0011]
s6、若预测到即将发生碰撞,则执行相应的避障策略,然后进行局部路径规划,重新规划出到达终点的路径继续前进;
[0012]
s7、重复步骤s3至s6,直到机器人到达终点。
[0013]
进一步,所述步骤s2中,机器人会首先沿着初始路径前进,速度为v
r
,运动方向为r
dir
,机器人可以探测到半径r为两个栅格距离的圆形区域的动态障碍物;在机器人前进的过程中不断检测周围是否存在动态障碍物,在检测到障碍物后则进行局部路径规划,执行避障策略,具体为:
[0014]
机器人移动一个栅格的距离所用时间为t
f
,行走速度为v
r
,滚动窗口探测距离为半径r
t
=2的圆;机器人在没有遇到障碍物时按照全局路径规划的最优路径前进,路径记为r
path
;假设动态障碍物的移动速度为v
i
,且v
i
≤v
r
,通过的路径记为d
path
;若机器人在t
i
时刻探测到了动态障碍物的踪迹,则计算出其位置记为q(x(t
i
),y(t
i
)),简记为q(t
i
),令δt=σ/v
r
,
[0015]
τ={t
i
,t
i
+δt,t
i
+2δt,

,t
i
+t
f
,t
i
+2t
f
,

,t
i
+jt
f
}
ꢀꢀꢀꢀ
(1)
[0016]
则动态障碍物的运动轨迹坐标集合为:
[0017]
k={q(t
i
),q(t
i
+δt),q(t
i
+2δt),

,q(t
i
+t
f
),
[0018]
q(t
i
+2t
f
),

,q(t
i
+jt
f
)}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0019]
机器人的运动坐标记为p(x(t
i
),y(t
i
)),简记为p(t
i
),则机器人的运动轨迹坐标为:
[0020]
o={p(t
i
),p(t
i
+δt),p(t
i
+2δt),

,p(t
i
+t
f
),
[0021]
p(t
i
+2t
f
),

,p(t
i
+jt
f
)}
ꢀꢀꢀ
(3)
[0022][0023]
机器人和动态障碍物之间需要保持一定的安全距离,定义为:
[0024][0025]
机器人在行进过程中应当与障碍物保持在安全距离之外,如果在某一时刻检测到机器人与障碍物之间的距离小于安全距离,则考虑机器人会与障碍物发生碰撞,反之则不会发生碰撞。
[0026]
进一步,所述步骤s2中,如果预测在时间t
f
内发生侧面碰撞,机器人执行等停策略,在安全范围内等待时间t
w
后,继续按照原来的路线行驶,如果执行等待时间t
w
后仍然预测到与该障碍物碰撞,则执行局部经规划策略;
[0027][0028]
本发明相比现有技术具有以下优点:现有的大多数在静态环境下的机器人路径规划问题,其中地图环境和障碍物都为已知,例如静止的障碍物等,但是在实际情况中,机器人的工作环境往往比较复杂,障碍物的位置和运动轨迹可能是未知的;本申请着重研究动态环境下的机器人路径规划问题,更贴近实际环境情况。
附图说明
[0029]
图1是本实施例机器人运动方向;
[0030]
图2是本实例正面碰撞模型;
[0031]
图3是本实例直接回退策略;
[0032]
图4动态路径规划流程。
具体实施方式
[0033]
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施
例。
[0034]
如图1-4所示,本实施例提供一种技术方案:基于改进人工鱼群算法的移动机器人路径规划方法,包括如下步骤:
[0035]
s1、初始化人工鱼群算法相关参数,包括鱼群规模n、人工鱼移动步长step、视野visual、拥挤度因子δ以及最大迭代次数,设定滚动窗口半径r;
[0036]
s2、进行全局路径规划,随机获得初始路径;
[0037]
s3、机器人沿初始路径前进,并不断检测周围环境信息,检测滚动窗口内是否有动态障碍物;若未检测到动态障碍物,得到移动机器人的路径。
[0038]
s4、若检测到动态障碍物存在,则预测是否会与其发生碰撞以及碰撞的类型;
[0039]
s5、若预测不会发生碰撞,则按初始路径继续前进;
[0040]
s6、若预测到即将发生碰撞,则执行相应的避障策略,然后进行局部路径规划,重新规划出到达终点的路径继续前进;
[0041]
s7、重复步骤s3至s6,直到机器人到达终点。
[0042]
进一步,所述步骤s2中,机器人会首先沿着初始路径前进,速度为v
r
,运动方向为r
dir
,机器人可以探测到半径r为两个栅格距离的圆形区域的动态障碍物;在机器人前进的过程中不断检测周围是否存在动态障碍物,在检测到障碍物后则进行局部路径规划,执行避障策略,具体为:
[0043]
机器人移动一个栅格的距离所用时间为t
f
,行走速度为v
r
,滚动窗口探测距离为半径r
t
=2的圆;机器人在没有遇到障碍物时按照全局路径规划的最优路径前进,路径记为r
path
;假设动态障碍物的移动速度为v
i
,且v
i
≤v
r
,通过的路径记为d
path
;若机器人在t
i
时刻探测到了动态障碍物的踪迹,则计算出其位置记为q(x(t
i
),y(t
i
)),简记为q(t
i
),令δt=σ/v
r
,
[0044]
τ={t
i
,t
i
+δt,t
i
+2δt,

,t
i
+t
f
,t
i
+2t
f
,

,t
i
+jt
f
}
ꢀꢀꢀꢀ
(1)则动态障碍物的运动轨迹坐标集合为:
[0045]
k={q(t
i
),q(t
i
+δt),q(t
i
+2δt),

,q(t
i
+t
f
),
[0046]
q(t
i
+2t
f
),

,q(t
i
+jt
f
)}
ꢀꢀꢀ
(2)
[0047]
机器人的运动坐标记为p(x(t
i
),y(t
i
)),简记为p(t
i
),则机器人的运动轨迹坐标为:
[0048]
o={p(t
i
),p(t
i
+δt),p(t
i
+2δt),

,p(t
i
+t
f
),
[0049]
p(t
i
+2t
f
),

,p(t
i
+jt
f
)}
ꢀꢀ
(3)
[0050]
机器人和动态障碍物之间需要保持一定的安全距离,定义为:
[0051][0052]
机器人在行进过程中应当与障碍物保持在安全距离之外,如果在某一时刻检测到机器人与障碍物之间的距离小于安全距离,则考虑机器人会与障碍物发生碰撞,反之则不会发生碰撞。
[0053]
进一步,所述步骤s2中,如果预测在时间t
f
内发生侧面碰撞,机器人执行等停策略,在安全范围内等待时间t
w
后,继续按照原来的路线行驶,如果执行等待时间t
w
后仍然预测到与该障碍物碰撞,则执行局部经规划策略;
[0054][0055]
本实例对机器人动态碰撞类型进行限定,机器人在存在动态障碍物的环境下移动时与障碍物发生的碰撞类型有两种情况,分别为:正面碰撞、侧面碰撞。我们已经设定动态障碍物的前进为匀速直线运动,因此根据障碍物的移动方向即可分析预测出即将可能发生的碰撞,并且判断碰撞类型,执行避障策略。
[0056]
首先,我们设定小车有八个移动方向,如下图1所示,我们为了表达方便用数字代替。数字1-8即为小车被允许的运动方向。
[0057]
这里我们用d
b
表示动态障碍物,机器人行走的速度为v
r
,d
b
的速度为v
d
,方向分别为r
dir
和d
dir
表示。假设机器人通过一个栅格距离所用的时间为t
r
,在t时刻假设机器人在栅格g
rnow
处探测到在g
bnow
的栅格有一移动障碍物体d
b
,此时机器人仍然按照事先规划好的路径继续前进,在运动过程中机器人不断探测动态障碍物的位置,发现d
b
经过了栅格g
bnext1
,g
bnext2,

g
bnextn
,记为d
next
={g
bnext1
,g
bnext2
,

,g
bnextn
},然后机器人根据v
r
和v
d
以及他们的运动方向即可进行预测碰撞类型以及碰撞点。本文涉及到的碰撞类型主要考虑如下两种情况。
[0058]
(一)正面碰撞。
[0059]
当小车的运动方向与动态障碍物运动方向相反,即r
dir
和d
dir
相反,g
rnext
∈b
next
并且动态障碍物位于机器人行进方向上。则预测机器人将于障碍物发生正面碰撞。如下图2所示为发生正面碰撞的模型。机器人1与动态障碍物1将发生正面碰撞,机器人2与动态障碍物2发生正面碰撞五角星所在的栅格为碰撞点。
[0060]
(二)侧面碰撞。
[0061]
侧面碰撞发生的条件为机器人运动方向与动态障碍物运动方向既不相同也不相反,即r
dir
和d
dir
不在同一个方向。并且障碍物在机器人的侧面,g
bnext
=g
rnext
,g
bnext
∈b
next
,则此时预测机器人将与障碍物发生侧面碰撞。g
rnext
为碰撞点。
[0062]
根据预测到的碰撞类型,一般的局部避障策略
[47]
可以归纳为以下三种:
[0063]

等停策略:当机器人预测将与动态障碍物发生侧面碰撞时,机器人只需在原地停止等待,直到障碍物越过碰撞区域即可继续前进。
[0064]

回退策略:当预测到机器人即将与动态障碍物发生正面碰撞时,并且机器人的上一步运动方向与当前方向不同,机器人只需回退到上一步的位置即可。如下图3所示。
[0065]

选点策略:当机器人预测到即将发生正面碰撞,且机器人前一步的移动方向与当前方向一致,并且障碍物的速度小于等于机器人移动速度,那么机器人将碰撞点视为静态障碍物,在其邻域内寻找空白栅格作为下一步的点,即可避免碰撞。紧接着进行局部路径规划,重新搜索去终点的路径。
[0066]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0067]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0068]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1