移动机器人的路径规划方法与流程

文档序号:16645980发布日期:2019-01-16 08:17阅读:198来源:国知局
移动机器人的路径规划方法与流程

本发明具体涉及一种移动机器人的路径规划方法。



背景技术:

随着经济技术的发展,移动机器人已经广泛应用于人们的生产和生活中,给人们的生产和生活带来了无尽的便利。

路径规划问题是寻找一条从初始位姿到最终位姿的路径,并满足最优,使得移动安保巡逻机器人在通过路径时不与任何静止或动态障碍物发生碰撞,这是移动机器人最基本的条件。也就是说,做好路径规划应从这3个方面出发:(1)明确起始位置及终点;(2)避开障碍物;(3)尽可能做到路径上的优化。一般的连续域范围内路径规划问题,其一般步骤主要包括环境建模、路径搜索和路径平滑三个环节。传统的路径规划算法有人工势场法、模拟退火算法、模糊逻辑算法和禁忌搜索算法等。这些传统的路径规划算法在某种程度上收敛速度慢,在概率上完备但并不完美。

比如,专利cn201310488139是一种纯路径规划类的算法,该算法是a*算法的改进,主要针对open表中节点多、耗时多的问题进行改进,主要应用与机器人二维三维空间的快速路径规划。该专利主要从路径规划方向出发,所以得出的路径有可能离障碍物很近,从而对于实际半径宽度的机器人可能在行走的过程中就会触碰障碍物,导致行走受阻。专利cn201510028275是一种采用加入淘汰机制的鱼群算法针对具有神经网络结构的控制器对移动机器人进行控制,并凭借神经网络的泛化性能来学习到避障和目的地的行为的算法。该算法基于机器学习理论。但学习的过程是一个训练的过程,且需要很多的数据进行测试。

因此,可以看到,现有的移动机器人的路径规划方法,均存在不同的缺陷,使得移动机器人的路径规划结果相对不可靠。



技术实现要素:

本发明的目的之一在于提供一种能够有效解决路径规划过程中的碰壁问题,且方法简单、科学和可靠的移动机器人的路径规划方法。

本发明提供的这种移动机器人的路径规划方法,包括如下步骤:

s1.获取环境信息,并生成占据栅格地图;

s2.根据步骤s1得到的占据栅格地图,计算产生voronoi图;

s3.对步骤s2得到的voronoi图进行平滑;

s4.根据步骤s3得到的平滑后的voronoi图,生成最终的规划路径。

步骤s1所述的生成占据栅格地图,具体为由激光扫描环境信息,并采用gmapping算法生成占据栅格地图。

步骤s2所述的计算产生voronoi图,具体为采用delaunay三角剖分法计算产生voronoi图。

所述的采用delaunay三角剖分法计算产生voronoi图,具体为采用如下步骤计算产生voronoi图:

a.将离散点构建三角形并组成三角网,对离散点和形成的三角形进行编号,同时记录构成每个三角形的3个离散点;

b.计算每个三角形的外接圆圆心,并记录圆心位置;

c.根据步骤a构建的三角形和三角网,形成三角形链表,并寻找与当前三角形的三条边共边的相邻三角形:

若找到与当前三角形的三条边共边的相邻三角形,则把找到的三角形的外接圆圆心与当前三角形的外接圆圆心连接,并存储到维诺边链表;若找不到与当前三角形的三条边共边的相邻三角形,则求出当前三角形最外边的中垂线射线并存储到维诺表链表。

所述的形成三角形链表,具体为采用bowyer-watson算法形成三角形链表。

所述的采用bowyer-watson算法形成三角形链表,具体为采用如下步骤形成三角形链表:

(1)构造一个超级三角形,并放入三角形链表;

(2)将点集中的三点一次插入,并在三角形链表中找出外接圆包含插入点的三角形;

(3)删除影响三角形的公共边,同时将插入点与影响三角形的全部顶点连接,完成一个点在delaunay三角形链表中的插入;

(4)根据设定的优化准则对局部新形成的三角形进行优化,同时将形成的三角形放入delaunay三角形链表;

(5)重复步骤(2)~(4),直至所有的散点插入完毕,得到最终的三角形链表。

步骤s3所述的对得到的voronoi图进行平滑,具体为采用如下步骤进行平滑:

a.获取与当前点相邻的8个像素点的坐标;

b.对步骤a获取的8个像素点,采用如下规则进行判断:

若该像素点为占据态,而周围像素点不为占据态,则置该点为空闲态,并连接原先步骤s2中的维诺边,使之在一条线上;否则,则不连接。

c.得到平滑后的voronoi图。

步骤s4所述的生成最终的规划路径,具体为采用b*寻路算法形成最终的规划路径。

所述的采用b*寻路算法形成最终的规划路径,具体为采用如下步骤形成规划路径:

1)将探索节点视为自由节点,并从自由节点出发,向目标前进;

2)在自由节点的前进过程中,判断前方是否有障碍:

若前方不是障碍,则向目标前进一步,且令所到达的节点为自由节点;

若前方是障碍,则以障碍为界,分出左右两个分支,并试图从左右两个分支中的一个绕过障碍,同时令该两个分支节点为两个绕爬的探索节点;

3)当绕爬的探索节点绕过障碍后,将到达的节点作为自由节点;

4)前进后,判断所到达的节点是否为目标节点:

若为目标节点,则寻路成功,根据寻路过程构造完整的路径;

若为非目标节点,则继续探索;

5)寻路过程中,若无探索节点,则寻路结束,同时表明:目标不可到达。

本发明提供的这种移动机器人的路径规划方法,采用voronoi图保证路径规划始终在两旁障碍物的中间,在保证不碰触障碍物的前提下,正常行走。其中,在生成voronoi图的过程中,采用了基于delaunay三角剖分法生成维诺图,在维诺图的基础上采用b*寻路算法进行快速路径规划,解决了现实环境中的全局路径规划问题;而且,本发明方法简单、科学且可靠。

附图说明

图1为本发明方法的方法流程图。

图2为本发明方法中的delaunay三角剖分解析示意图。

图3为本发明方法的b*寻路算法示例图。

具体实施方式

如图1所示为本发明方法的方法流程图:本发明提供的这种移动机器人的路径规划方法,包括如下步骤:

s1.由激光扫描环境信息,并采用gmapping算法生成占据栅格地图;

s2.根据步骤s1得到的占据栅格地图,采用delaunay三角剖分法计算产生voronoi图;具体为采用如下步骤计算产生voronoi图:

a.将离散点构建三角形并组成三角网,对离散点和形成的三角形进行编号,同时记录构成每个三角形的3个离散点;

b.计算每个三角形的外接圆圆心,并记录圆心位置;

c.根据步骤a构建的三角形和三角网,采用bowyer-watson算法形成三角形链表,并寻找与当前三角形的三条边共边的相邻三角形:

若找到与当前三角形的三条边共边的相邻三角形,则把找到的三角形的外接圆圆心与当前三角形的外接圆圆心连接,并存储到维诺边链表;若找不到与当前三角形的三条边共边的相邻三角形,则求出当前三角形最外边的中垂线射线并存储到维诺表链表;

在具体实施时,具体为采用如下步骤形成三角形链表:

(1)构造一个超级三角形,并放入三角形链表;

(2)将点集中的三点一次插入,并在三角形链表中找出外接圆包含插入点的三角形;

(3)删除影响三角形的公共边,同时将插入点与影响三角形的全部顶点连接,完成一个点在delaunay三角形链表中的插入;

(4)根据设定的优化准则对局部新形成的三角形进行优化,同时将形成的三角形放入delaunay三角形链表;

(5)重复步骤(2)~(4),直至所有的散点插入完毕,得到最终的三角形链表;

如图2所示,图a是障碍物图,图b是找到三角形外接圆心,并连接各圆心,图c是最后的维诺边;

s3.对步骤s2得到的voronoi图进行平滑;具体为采用如下步骤进行平滑:

a.获取与当前点相邻的8个像素点的坐标;

b.对步骤a获取的8个像素点,采用如下规则进行判断:

若该像素点为占据态,而周围像素点不为占据态,则置该点为空闲态,并连接原先步骤s2中的维诺边,使之在一条线上;反之则不连接。

c.得到平滑后的voronoi图;

s4.根据步骤s3得到的平滑后的voronoi图,采用b*寻路算法形成最终的规划路径;具体为采用如下步骤形成规划路径:

1)将探索节点视为自由节点,并从自由节点出发,向目标前进;

2)在自由节点的前进过程中,判断前方是否有障碍:

若前方不是障碍,则向目标前进一步,且令所到达的节点为自由节点;

若前方是障碍,则以障碍为界,分出左右两个分支,并试图从左右两个分支中的一个绕过障碍,同时令该两个分支节点为两个绕爬的探索节点;

3)当绕爬的探索节点绕过障碍后,将到达的节点作为自由节点;

4)前进后,判断所到达的节点是否为目标节点:

若为目标节点,则寻路成功,根据寻路过程构造完整的路径;

若为非目标节点,则继续探索;

5)寻路过程中,若无探索节点,则寻路结束,同时表明:目标不可到达。

如图3所示,在该图例中,黑色的格子为障碍物a和障碍物b,白色格子为可行走格子,标有0的格子为起始点,最右侧的填充格子为目标点,每前进一步,其路径权值就加1。当遇到障碍物a时,分出两个绕爬的探索节点,当绕出障碍物a时,即变为自由节点,往前进。当两个分支路往前进的过程中,成功避开了障碍物b,所以两条路都可直达目标点。分别计算其路径权值总和,选择最短权值路径即可。

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