CN111176286B - 一种基于改进D*lite算法的移动机器人路径规划方法及系统 - Google Patents
一种基于改进D*lite算法的移动机器人路径规划方法及系统 Download PDFInfo
- Publication number
- CN111176286B CN111176286B CN202010010351.6A CN202010010351A CN111176286B CN 111176286 B CN111176286 B CN 111176286B CN 202010010351 A CN202010010351 A CN 202010010351A CN 111176286 B CN111176286 B CN 111176286B
- Authority
- CN
- China
- Prior art keywords
- unit
- grid
- search
- core
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 239000011159 matrix material Substances 0.000 claims abstract description 28
- 238000010586 diagram Methods 0.000 claims abstract description 11
- 238000010845 search algorithm Methods 0.000 claims abstract description 11
- 230000011218 segmentation Effects 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 6
- 239000000203 mixture Substances 0.000 claims description 4
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 230000004888 barrier function Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0291—Fleet control
- G05D1/0295—Fleet control by at least one leading vehicle of the fleet
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Navigation (AREA)
Abstract
本发明请求保护一种基于改进D*lite算法的移动机器人路径规划方法及系统。具体步骤为:首先,根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元;然后,根据若干单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵;接着,根据邻接矩阵,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序;之后,根据单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表;最后,根据搜索链表引导D*lite路径规划算法完成移动机器人路径规划。实验结果证实了本方法能够在保证路径长度接近最短的同时降低路径规划时间。
Description
技术领域
本发明属于移动机器人自主导航领域,特别是一种基于改进D*lite算法的移动机器人路径规划方法。
背景技术
移动机器人的路径规划的能力,决定了机器人可胜任工作难度的高低。在构建好的环境模型中,规划一条从初始点到目标点的无碰撞最优路径,是路径规划的主要内容。在构建环境模型中,栅格法应用较多,该方法具有直观简洁、分辨率可变、容易创建和存储等优点,适用于室内环境路径规划地图模型的建立,鲁棒性强。图搜索算法是路径规划中的一类算法,它被广泛应用于栅格地图中的路径规划问题。A*算法是图搜索算法中的经典算法,它加入了启发式搜索方法。启发式搜索是评估状态空间中的每个搜索位置,找出下一步要搜索的最好位置G,再从G进行类似搜索直到目标位置。该搜索方法能节省大量搜索空间,提高搜索效率。在A*算法的基础上,研究者们先后提出了改进算法例如D*,LPA*与D*lite。学者们对路径规划算法的路径安全性,路径平滑度和重规划策略进行了诸多研究,但是在路径搜索中仍然存在问题。
路径规划的速度仍然较慢,如何提高路径规划的效率是路径规划问题中的难点。在栅格地图中,基于图搜索的路径规划算法在进行路径搜索时,会根据搜索函数向八个邻域方向寻找最优解,一些优先级较高的网格延申出的路径最后被障碍物阻挡而结束,这造成在这一搜索方向上大部分的之前进行的扩展操作变为无效,例如在凹型障碍物内或者当前网格与目标网格分别在两个房间中,都会有大量的无效网格被搜索和计算,这些无效的扩展降低了规划效率。如何确保路径规划算法在正确的搜索方向上进行扩展,是提高路径规划速度需要解决的问题。
发明内容
本发明旨在解决以上现有技术的问题。提出了一种能够在保证路径长度接近最短的同时降低路径规划时间的基于改进D*lite算法的移动机器人路径规划方法及系统。本发明的技术方案如下:
一种基于改进D*lite算法的移动机器人路径规划方法,其包括以下步骤:
步骤S1,首先,根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元;
步骤S2,根据S1中所得的若干有界单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵;
步骤S3,根据S2中得到的邻接矩阵,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序;
步骤S4,根据S3得到的单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表;
步骤S5,根据S4得到的搜索链表,将D*lite算法多方向的搜索依照搜索链表的顺序分为多段的朝着正确方向的搜索,用搜索链表引导D*lite算法完成路径规划。
进一步的,步骤S1根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元,具体步骤为:
S11:用一条垂直线从左至右扫描栅格地图;
S12:当扫描线扫入障碍空间时,扫描线的连通性增加,当扫描线扫出障碍空间时,扫描线的连通性降低,当扫描线的连通性增加时,一个旧单元结束,生成两个新单元;当扫描线的连通性降低时,两个旧单元结束,生成一个新单元;当扫描线的连通性不变但某段连通线长度发生了阶跃变化,若变化的大小超过当前单元最大宽度的一半,则旧单元结束,新单元生成;
S13:扫描结束后,环境地图被分割成若干独立的有界单元,每个单元内部都没有障碍物。
进一步的,步骤S2根据S1中所得的若干单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵,具体步骤为:
S21:若任意两个邻接单元有相互连通的自由区域,则视为这两个单元可用连接线相连,遍历完所有单元后得到表示单元间连通关系的单元连接图;
S22:将单元补全为长方形,计算连接线两端单元的中心之间的曼哈顿距离,计算公式如下:
d(i,j)=abs(xi-xj)+abs(yi-yj)
此距离作为连接线的代价值,若两单元之间没有直接的自由连通区域,即两单元之间没有连接线,则两单元之间的代价值设置为无穷大;
S23:用单元之间的代价值组成矩阵edge,其中edge[i][j]表示单元i和单元j之间连接线的代价值,若无连接线则代价值为无穷大,矩阵edge中的值即为单元之间的原始距离代价值,这个矩阵即为邻接矩阵。
进一步的,所述步骤S3根据S2中得到的邻接矩阵edge,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序,具体步骤为:
S31:设定起始网格所在单元为起始单元,目标网格所在单元为目标单元,采用双向搜索的方法,同时进行两个搜索,分别以起始单元和目标单元作为搜索起始单元;
S32:给每个单元设置两个值,cost值表示与搜索起始单元的距离代价值,pre表示父单元;
S33:用集合C保存已经确认最短路径的单元,把搜索起始单元s放入C中,用集合W保存还没有找到最短路径的单元,把其余单元都放在W中,把W中每个单元j的cost值设为edge[s][j],pre设为s;
S34:从集合W中选出cost最小的单元i,由于cost非负,所以此cost为s到i的最小代价值,将i移出W,移入C;
S35:对于W中的每个单元j,通过计算如果出现costj>costi+edge[i][j],更新costj为costi+edge[i][j],并把prej设为i;
S36:在两个搜索中分别重复S34、S35,直到两个搜索中的集合C出现交集,或者任意一个搜索中集合W中单元的cost值都为无穷大,此时循环结束;
S37:若两个搜索中的集合C没有交集就说明起始单元无法到达目标单元,若两个搜索中的集合C有交集,则从该共有单元的pre值开始查找,单元的pre值表示该单元的父单元,即可找到搜索起始单元到该共有单元的最短路径,将两个搜索的路径合在一起,即为目标单元到起始单元代价总值最短的路径,以目标单元为第一个单元,依次添加路径所经过的单元,最后以起始单元为最后一个单元,即可得到从目标单元到起始单元所经过的单元顺序。
进一步的,所述步骤S4根据S3得到的单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表,具体步骤为:
S41:为每一个网格添加一个编号num,num等于网格所在单元的编号;
S42:根据S3中得到的单元顺序,从第二个单元开始,设当前单元为u,前一单元为u′,找出u中与u′相邻的网格作为核心区域core,记为:
core=all(ss.num=u.num∈succ(s′s′.num=u′.num))
Ss.num=u.num表示单元u中的网格。在当前单元u中,所有与前一单元u′相邻的网格共同组成了单元u的核心区域。按单元顺序依次设置核心区域,直到在起始单元中完成设置;
S43:以Xmax,Xmin,Ymax,Ymin表示核心区域内的网格中拥有的最大和最小横纵坐标,计算核心区域中心坐标coremid,具体公式为:
S44:设置目标网格为第一个核心网格,起始网格为最后一个核心网格,设s为当前核心区域内的网格,cgrid为上一个核心网格,coremid为下一个核心区域的中心坐标,给每一个核心区域内的网格设置一个kc值,由kc1和kc2组成,记为:
每个核心区域中选取kc值最小的网格作为核心网格,首先比较kc1值,如果kc1相同再比较kc2值;
S45:用核心网格组成搜索链表,其中链表的头是目标网格,链表的尾是起始网格,其余核心网格按照单元顺序插入链表中,即可得到搜索链表。
进一步的,所述步骤S5根据S4得到的搜索链表,将D*lite算法多方向的搜索依照搜索链表的顺序分为多段的朝着正确方向的搜索,用搜索链表引导D*lite算法完成路径规划,具体步骤为:
S51:对所有网格s初始化,使g(s)=rhs(s)=∞,其中g(s)表示s网格到目标网格的实际代价,rhs(s)表示s网格的父网格的g值加上父网格到s网格的移动代价值,用c(s′,s)表示父网格s′到s网格的移动代价值,rhs(s)的计算公式如下:
设置一个地址P指向搜索链表的首个网格;
S52:将目标网格的rhs值设置为0,更新其k值后插入优先队列,其中网格s的k值的计算如下:
式中h值表示该网格s与起始网格start的启发距离,记为:
h(s)=max(abs(xstart-xs),abs(ystart-ys))
S53:以地址P当前指向的网格为搜索目标网格,以地址P指向的下一个网格为搜索起始网格;
S54:从优先队列中移出k值最小的网格,此时先比较k1,如果k1相同再比较k2,随后更新其g值,设置g值等于rhs值,然后找出该网格的邻接网格中num与搜索目标网格或者搜索起始网格的num相同的网格,计算这些网格的rhs值,若这些网格的rhs值与g值不相等,则更新这些网格的k值,并将它们插入优先队列;
S55:重复S54直到搜索起始网格的g值等于rhs值,此时单次搜索结束,地址P往后移一位;
S56:重复从S53到S55,直到起始网格的g值等于rhs值,从起始网格开始循着邻接网格中g值最小的网格直到目标网格,就可完成从起始网格到目标网格的路径规划。
一种基于改进D*lite算法的移动机器人路径规划系统,其包括:
地图分割模块:用于根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元;
计算模块:用于根据所得的若干有界单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵;
双向图搜索模块:用于根据得到的邻接矩阵,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序;
搜索链表构建模块:用于根据得到的单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表;
路径规划模块:用于根据得到的搜索链表,将D*lite算法多方向的搜索依照搜索链表的顺序分为多段的朝着正确方向的搜索,用搜索链表引导D*lite算法完成路径规划。
本发明的优点及有益效果如下:
本发明针对目前主流的移动机器人路径规划方法存在搜索方向不准确、无效计算次数多,规划效率低的问题,提出一种优化的路径规划方法。该方法采用地图分割算法将栅格地图分割为若干内部没有障碍物的有界单元,找出目标单元到起始单元需要经过的单元顺序,从而确定了正确的搜索方向。该方法使用双向图搜索算法,用于计算从目标单元到起始单元所经过的单元顺序,从两端同时对单元图进行最短代价搜索,从而提高了计算单元顺序的速度。该方法在路径必经的单元中设置核心区域,并对核心区域内的网格设置关键值,选取优先级最高的网格作为核心网格,从而确保了规划出的路径长度接近最短。该方法将核心网格组成搜索链表用以引导算法完成路径规划,从而确保路径规划算法在正确的方向搜索,这样可以快速找到绕过障碍物的正确路径,大大减少了无效计算次数,提高了规划效率。
附图说明
图1是本发明提供优选实施例的基于改进D*lite算法的移动机器人路径规划方法实现框架;
图2是本发明提供优选实施例的地图分割示意图;
图3是本发明提供优选实施例的核心网格设置示意图;
图4是本发明提供优选实施例的路径规划示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
如图1所示,本方法的主要步骤为:
S1,根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元;
S2,根据S1中所得的若干单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵;
S3,根据S2中得到的邻接矩阵,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序;
S4,根据S3得到的单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表;
S5,根据S4得到的搜索链表,将D*lite算法多方向的搜索依照搜索链表的顺序分为多段的朝着正确方向的搜索,用搜索链表引导D*lite算法完成路径规划。
步骤S1的具体实施过程为:
S11:用一条垂直线从左至右扫描栅格地图;
S12:当扫描线扫入障碍空间时,扫描线的连通性增加,当扫描线扫出障碍空间时,扫描线的连通性降低。当扫描线的连通性增加时,一个旧单元结束,生成两个新单元。当扫描线的连通性降低时,两个旧单元结束,生成一个新单元。当扫描线的连通性不变但某段连通线长度发生了阶跃变化,若变化的大小超过当前单元最大宽度的一半,则旧单元结束,新单元生成;
S13:扫描结束后,环境地图被分割成若干独立的有界单元,每个单元内部都没有障碍物。
步骤S2的具体实施过程为:
S21:若任意两个邻接单元有相互连通的自由区域,则视为这两个单元可用连接线相连,遍历完所有单元后得到表示单元间连通关系的单元连接图;
S22:将单元补全为长方形,计算连接线两端单元的中心之间的曼哈顿距离,计算公式如下:
d(i,j)=abs(xi-xj)+abs(yi-yj)
此距离作为连接线的代价值,若两单元之间没有直接的自由连通区域,即两单元之间没有连接线,则两单元之间的代价值设置为无穷大;
S23:用单元之间的代价值组成矩阵edge,其中edge[i][j]表示单元i和单元j之间连接线的代价值,若无连接线则代价值为无穷大,矩阵edge中的值即为单元之间的原始距离代价值,这个矩阵即为邻接矩阵。
步骤S3的具体实施过程为:
S31:设定起始网格所在单元为起始单元,目标网格所在单元为目标单元,为了提高算法的速度,可以采用双向搜索的方法,同时进行两个搜索,分别以起始单元和目标单元作为搜索起始单元;
S32:给每个单元设置两个值,cost值表示与搜索起始单元的距离代价值,pre表示父单元;
S33:用集合C保存已经确认最短路径的单元,把搜索起始单元s放入C中。用集合W保存还没有找到最短路径的单元,把其余单元都放在W中。把W中每个单元j的cost值设为edge[s][j],pre设为s;
S34:从集合W中选出cost最小的单元i,由于cost非负,所以此cost为s到i的最小代价值,将i移出W,移入C;
S35:对于W中的每个单元j,通过计算如果出现costj>costi+edge[i][j],更新costj为costi+edge[i][j],并把prej设为i;
S36:在两个搜索中分别重复S34、S35,直到两个搜索中的集合C出现交集,或者任意一个搜索中集合W中单元的cost值都为无穷大,此时循环结束;
S37:若两个搜索中的集合C没有交集就说明起始单元无法到达目标单元,若两个搜索中的集合C有交集,则从该共有单元的pre值开始查找,单元的pre值表示该单元的父单元,即可找到搜索起始单元到该共有单元的最短路径,将两个搜索的路径合在一起,即为目标单元到起始单元代价总值最短的路径,以目标单元为第一个单元,依次添加路径所经过的单元,最后以起始单元为最后一个单元,即可得到从目标单元到起始单元所经过的单元顺序。
步骤S4的具体实施过程为:
S41:为每一个网格添加一个编号num,num等于网格所在单元的编号;
S42:根据S3中得到的单元顺序,从第二个单元开始,设当前单元为u,前一单元为u′,找出u中与u′相邻的网格作为核心区域core,记为:
core=all(ss.num=u.num∈succ(s′s′.num=u′.num))
Ss.num=u.num表示单元u中的网格。在当前单元u中,所有与前一单元u′相邻的网格共同组成了单元u的核心区域。按单元顺序依次设置核心区域,直到在起始单元中完成设置;
S43:以Xmax,Xmin,Ymax,Ymin表示核心区域内的网格中拥有的最大和最小横纵坐标,计算核心区域中心坐标coremid,具体公式为:
S44:设置目标网格为第一个核心网格,起始网格为最后一个核心网格,设s为当前核心区域内的网格,cgrid为上一个核心网格,coremid为下一个核心区域的中心坐标,给每一个核心区域内的网格设置一个kc值,由kc1和kc2组成,记为:
每个核心区域中选取kc值最小的网格作为核心网格,首先比较kc1值,如果kc1相同再比较kc2值;
S45:用核心网格组成搜索链表,其中链表的头是目标网格,链表的尾是起始网格,其余核心网格按照单元顺序插入链表中,即可得到搜索链表。
步骤S5的具体实施过程为:
S51:对所有网格s初始化,使g(s)=rhs(s)=∞,其中g(s)表示s网格到目标网格的实际代价,rhs(s)表示s网格的父网格的g值加上父网格到s网格的移动代价值,用c(s′,s)表示父网格s′到s网格的移动代价值,rhs(s)的计算公式如下:
设置一个地址P指向搜索链表的首个网格;
S52:将目标网格的rhs值设置为0,更新其k值后插入优先队列,其中网格s的k值的计算如下:
式中h值表示该网格s与起始网格start的启发距离,记为:
h(s)=max(abs(xstart-xs),abs(ystart-ys))
S53:以地址P当前指向的网格为搜索目标网格,以地址P指向的下一个网格为搜索起始网格;
S54:从优先队列中移出k值最小的网格,此时先比较k1,如果k1相同再比较k2,随后更新其g值,设置g值等于rhs值,然后找出该网格的邻接网格中num与搜索目标网格或者搜索起始网格的num相同的网格,计算这些网格的rhs值,若这些网格的rhs值与g值不相等,则更新这些网格的k值,并将它们插入优先队列;
S55:重复S54直到搜索起始网格的g值等于rhs值,此时单次搜索结束,地址P往后移一位;
S56:重复从S53到S55,直到起始网格的g值等于rhs值,从起始网格开始循着邻接网格中g值最小的网格直到目标网格,就可完成从起始网格到目标网格的路径规划。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (6)
1.一种基于改进D*lite算法的移动机器人路径规划方法,其特征在于,包括以下步骤:
步骤S1,首先,根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元;
步骤S2,根据S1中所得的若干有界单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵;
步骤S3,根据S2中得到的邻接矩阵,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序;
步骤S4,根据S3得到的单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表;
步骤S5,根据S4得到的搜索链表,将D*lite算法多方向的搜索依照搜索链表的顺序分为多段的朝着正确方向的搜索,用搜索链表引导D*lite算法完成路径规划;
所述步骤S4根据S3得到的单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表,具体步骤为:
S41:为每一个网格添加一个编号num,num等于网格所在单元的编号;
S42:根据S3中得到的单元顺序,从第二个单元开始,设当前单元为u,前一单元为u′,找出u中与u′相邻的网格作为核心区域core,记为:
core=all(ss.num=u.num∈succ(s′s′.num=u′.num))
Ss.num=u.num表示单元u中的网格,在当前单元u中,所有与前一单元u′相邻的网格共同组成了单元u的核心区域;按单元顺序依次设置核心区域,直到在起始单元中完成设置;
S43:以Xmax,Xmin,Ymax,Ymin表示核心区域内的网格中拥有的最大和最小横纵坐标,计算核心区域中心坐标coremid,具体公式为:
S44:设置目标网格为第一个核心网格,起始网格为最后一个核心网格,设s为当前核心区域内的网格,cgrid为上一个核心网格,coremid为下一个核心区域的中心坐标,给每一个核心区域内的网格设置一个kc值,由kc1和kc2组成,记为:
每个核心区域中选取kc值最小的网格作为核心网格,首先比较kc1值,如果kc1相同再比较kc2值;
S45:用核心网格组成搜索链表,其中链表的头是目标网格,链表的尾是起始网格,其余核心网格按照单元顺序插入链表中,即可得到搜索链表。
2.根据权利要求1所述的一种基于改进D*lite算法的移动机器人路径规划方法,其特征在于,步骤S1根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元,具体步骤为:
S11:用一条垂直线从左至右扫描栅格地图;
S12:当扫描线扫入障碍空间时,扫描线的连通性增加,当扫描线扫出障碍空间时,扫描线的连通性降低,当扫描线的连通性增加时,一个旧单元结束,生成两个新单元;当扫描线的连通性降低时,两个旧单元结束,生成一个新单元;当扫描线的连通性不变但某段连通线长度发生了阶跃变化,若变化的大小超过当前单元最大宽度的一半,则旧单元结束,新单元生成;
S13:扫描结束后,环境地图被分割成若干独立的有界单元,每个单元内部都没有障碍物。
3.根据权利要求2所述的一种基于改进D*lite算法的移动机器人路径规划方法,其特征在于,步骤S2根据S1中所得的若干单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵,具体步骤为:
S21:若任意两个邻接单元有相互连通的自由区域,则视为这两个单元可用连接线相连,遍历完所有单元后得到表示单元间连通关系的单元连接图;
S22:将单元补全为长方形,计算连接线两端单元的中心之间的曼哈顿距离,计算公式如下:
d(i,j)=abs(xi-xj)+abs(yi-yj)
此距离作为连接线的代价值,若两单元之间没有直接的自由连通区域,即两单元之间没有连接线,则两单元之间的代价值设置为无穷大;
S23:用单元之间的代价值组成矩阵edge,其中edge[i][j]表示单元i和单元j之间连接线的代价值,若无连接线则代价值为无穷大,矩阵edge中的值即为单元之间的原始距离代价值,这个矩阵即为邻接矩阵。
4.根据权利要求3所述的一种基于改进D*lite算法的移动机器人路径规划方法,其特征在于,所述步骤S3根据S2中得到的邻接矩阵edge,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序,具体步骤为:
S31:设定起始网格所在单元为起始单元,目标网格所在单元为目标单元,采用双向搜索的方法,同时进行两个搜索,分别以起始单元和目标单元作为搜索起始单元;
S32:给每个单元设置两个值,cost值表示与搜索起始单元的距离代价值,pre表示父单元;
S33:用集合C保存已经确认最短路径的单元,把搜索起始单元s放入C中,用集合W保存还没有找到最短路径的单元,把其余单元都放在W中,把W中每个单元j的cost值设为edge[s][j],pre设为s;
S34:从集合W中选出cost最小的单元i,由于cost非负,所以此cost为s到i的最小代价值,将i移出W,移入C;
S35:对于W中的每个单元j,通过计算如果出现costj>costi+edge[i][j],更新costj为costi+edge[i][j],并把prej设为i;
S36:在两个搜索中分别重复S34、S35,直到两个搜索中的集合C出现交集,或者任意一个搜索中集合W中单元的cost值都为无穷大,此时循环结束;
S37:若两个搜索中的集合C没有交集就说明起始单元无法到达目标单元,若两个搜索中的集合C有交集,则从该共有单元的pre值开始查找,单元的pre值表示该单元的父单元,即可找到搜索起始单元到该共有单元的最短路径,将两个搜索的路径合在一起,即为目标单元到起始单元代价总值最短的路径,以目标单元为第一个单元,依次添加路径所经过的单元,最后以起始单元为最后一个单元,即可得到从目标单元到起始单元所经过的单元顺序。
5.根据权利要求4所述的一种基于改进D*lite算法的移动机器人路径规划方法,其特征在于,所述步骤S5根据S4得到的搜索链表,将D*lite算法多方向的搜索依照搜索链表的顺序分为多段的朝着正确方向的搜索,用搜索链表引导D*lite算法完成路径规划,具体步骤为:
S51:对所有网格s初始化,使g(s)=rhs(s)=∞,其中g(s)表示s网格到目标网格的实际代价,rhs(s)表示s网格的父网格的g值加上父网格到s网格的移动代价值,用c(s′,s)表示父网格s′到s网格的移动代价值,rhs(s)的计算公式如下:
设置一个地址P指向搜索链表的首个网格;
式中h值表示该网格s与起始网格start的启发距离,记为:
h(s)=max(abs(xstart-xs),abs(ystart-ys))
S53:以地址P当前指向的网格为搜索目标网格,以地址P指向的下一个网格为搜索起始网格;
S54:从优先队列中移出k值最小的网格,此时先比较k1,如果k1相同再比较k2,随后更新其g值,设置g值等于rhs值,然后找出该网格的邻接网格中num与搜索目标网格或者搜索起始网格的num相同的网格,计算这些网格的rhs值,若这些网格的rhs值与g值不相等,则更新这些网格的k值,并将它们插入优先队列;
S55:重复S54直到搜索起始网格的g值等于rhs值,此时单次搜索结束,地址P往后移一位;
S56:重复从S53到S55,直到起始网格的g值等于rhs值,从起始网格开始循着邻接网格中g值最小的网格直到目标网格,就可完成从起始网格到目标网格的路径规划。
6.一种基于改进D*lite算法的移动机器人路径规划系统,其特征在于,包括:
地图分割模块:用于根据机器人所在环境的栅格地图,使用地图分割算法将地图分割为若干内部没有障碍物的有界单元;
计算模块:用于根据所得的若干有界单元之间的连通关系得到单元连接图,计算得到各单元之间的原始距离代价值和邻接矩阵;
双向图搜索模块:用于根据得到的邻接矩阵,使用双向图搜索算法,计算得到从目标单元到起始单元所经过的单元顺序;
搜索链表构建模块:用于根据得到的单元顺序,依次按照核心网格设置方法在对应单元中设置核心网格,按顺序组成搜索链表,具体为:
S41:为每一个网格添加一个编号num,num等于网格所在单元的编号;
S42:根据S3中得到的单元顺序,从第二个单元开始,设当前单元为u,前一单元为u′,找出u中与u′相邻的网格作为核心区域core,记为:
core=all(ss.num=u.num∈succ(s′s′.num=u′.num))
Ss.num=u.num表示单元u中的网格,在当前单元u中,所有与前一单元u′相邻的网格共同组成了单元u的核心区域;按单元顺序依次设置核心区域,直到在起始单元中完成设置;
S43:以Xmax,Xmin,Ymax,Ymin表示核心区域内的网格中拥有的最大和最小横纵坐标,计算核心区域中心坐标coremid,具体公式为:
S44:设置目标网格为第一个核心网格,起始网格为最后一个核心网格,设s为当前核心区域内的网格,cgrid为上一个核心网格,coremid为下一个核心区域的中心坐标,给每一个核心区域内的网格设置一个kc值,由kc1和kc2组成,记为:
每个核心区域中选取kc值最小的网格作为核心网格,首先比较kc1值,如果kc1相同再比较kc2值;
S45:用核心网格组成搜索链表,其中链表的头是目标网格,链表的尾是起始网格,其余核心网格按照单元顺序插入链表中,即可得到搜索链表;
路径规划模块:用于根据得到的搜索链表,将D*lite算法多方向的搜索依照搜索链表的顺序分为多段的朝着正确方向的搜索,用搜索链表引导D*lite算法完成路径规划。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010010351.6A CN111176286B (zh) | 2020-01-06 | 2020-01-06 | 一种基于改进D*lite算法的移动机器人路径规划方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010010351.6A CN111176286B (zh) | 2020-01-06 | 2020-01-06 | 一种基于改进D*lite算法的移动机器人路径规划方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176286A CN111176286A (zh) | 2020-05-19 |
CN111176286B true CN111176286B (zh) | 2022-08-23 |
Family
ID=70623778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010010351.6A Active CN111176286B (zh) | 2020-01-06 | 2020-01-06 | 一种基于改进D*lite算法的移动机器人路径规划方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176286B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112147998B (zh) * | 2020-08-24 | 2021-12-07 | 同济大学 | 一种基于区域生长法的移动机器人路径规划方法 |
CN112256029A (zh) * | 2020-10-16 | 2021-01-22 | 中冶赛迪上海工程技术有限公司 | 一种无人抓钢机控制方法及系统 |
CN112799405B (zh) * | 2021-01-05 | 2022-06-28 | 北京工商大学 | 基于动态障碍物环境下的无人船路径规划方法 |
CN113065694A (zh) * | 2021-03-18 | 2021-07-02 | 徐州九鼎机电总厂 | 一种基于沉浸式人机交互仿真系统的战术行动规则智能寻径算法 |
CN113252026B (zh) * | 2021-06-03 | 2021-10-08 | 炬星科技(深圳)有限公司 | 跨场景导航方法、设备及存储介质 |
CN114115283B (zh) * | 2021-12-02 | 2023-09-19 | 深圳市证通电子股份有限公司 | 基于改进的对向并行算法的机器人路径规划方法和系统 |
CN117075620B (zh) * | 2023-10-18 | 2024-01-16 | 华东交通大学 | 一种多巡检机器人的多任务导航调度方法及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2631729B1 (en) * | 2012-02-27 | 2016-06-08 | Sandvik Mining and Construction Oy | Apparatus and method for drive path search |
CN103439972B (zh) * | 2013-08-06 | 2016-06-29 | 重庆邮电大学 | 一种动态复杂环境下的移动机器人路径规划方法 |
CN105091884A (zh) * | 2014-05-08 | 2015-11-25 | 东北大学 | 基于传感器网络动态环境监测的室内移动机器人路径规划方法 |
CN106441303B (zh) * | 2016-09-30 | 2019-11-01 | 哈尔滨工程大学 | 一种基于可搜索连续邻域a*算法的路径规划方法 |
KR101917001B1 (ko) * | 2016-10-12 | 2018-11-08 | 국방과학연구소 | 4d 환경정보를 반영한 무인차량의 자율주행 제어 방법 |
CN106970614A (zh) * | 2017-03-10 | 2017-07-21 | 江苏物联网研究发展中心 | 改进的栅格拓扑语义环境地图的构建方法 |
US10012996B1 (en) * | 2017-09-15 | 2018-07-03 | Savioke, Inc. | Route planning for a mobile robot using configuration-based preferences |
CN107843262A (zh) * | 2017-10-30 | 2018-03-27 | 洛阳中科龙网创新科技有限公司 | 一种农用机械全覆盖运动路径规划的方法 |
CN108073176B (zh) * | 2018-02-10 | 2020-08-18 | 西安交通大学 | 一种改进型D*Lite车辆动态路径规划方法 |
CN109828579B (zh) * | 2019-02-25 | 2021-09-24 | 广东工业大学 | 一种目标增量移动的移动机器人路径规划方法 |
CN110220528A (zh) * | 2019-06-10 | 2019-09-10 | 福州大学 | 一种基于a星算法的自动驾驶无人车双向动态路径规划方法 |
CN110361009B (zh) * | 2019-07-12 | 2020-09-22 | 深圳市银星智能科技股份有限公司 | 一种路径规划方法、路径规划系统以及移动机器人 |
-
2020
- 2020-01-06 CN CN202010010351.6A patent/CN111176286B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111176286A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176286B (zh) | 一种基于改进D*lite算法的移动机器人路径规划方法及系统 | |
CN109059924B (zh) | 基于a*算法的伴随机器人增量路径规划方法及系统 | |
CN110231824B (zh) | 基于直线偏离度方法的智能体路径规划方法 | |
CN109116841B (zh) | 一种基于蚁群算法的路径规划平滑优化方法 | |
CN108413963B (zh) | 基于自学习蚁群算法的条形机器人路径规划方法 | |
CN114161416B (zh) | 基于势函数的机器人路径规划方法 | |
CN110702133B (zh) | 路径规划方法、机器人以及具有存储功能的装置 | |
CN115014362B (zh) | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 | |
CN114199270A (zh) | 融合双向搜索机制与改进a*算法的机器人路径规划方法 | |
CN113189988B (zh) | 一种基于Harris算法与RRT算法复合的自主路径规划方法 | |
CN113485369A (zh) | 改进a*算法的室内移动机器人路径规划和路径优化方法 | |
CN110243385A (zh) | 一种应用于机器人路径规划的蚁群算法 | |
CN112327876A (zh) | 一种基于终距指数的机器人路径规划方法 | |
CN106204719A (zh) | 基于二维邻域检索的三维场景中海量模型实时调度方法 | |
CN116558527B (zh) | 井下变电所巡检清扫机器人路径规划方法 | |
CN115270377B (zh) | 一种基于改进蚁群算法的多电缆最佳路径规划方法 | |
CN116642498A (zh) | 一种基于改进樽海鞘群模型的机器人路径规划方法 | |
CN114674336A (zh) | 基于线段的路径规划方法 | |
CN112484733B (zh) | 一种基于拓扑图的强化学习室内导航方法 | |
CN114911233A (zh) | 基于多优化快速拓展随机树的足球机器人路径规划方法 | |
CN111896001A (zh) | 一种三维蚁群航迹优化方法 | |
CN114353814A (zh) | 基于Angle-Propagation Theta*算法改进的JPS路径优化方法 | |
CN114415668A (zh) | 基于扩展视野自适应蚁群算法的移动机器人路径规划方法 | |
Liu et al. | Research for Bidirectional Path Planning Based on An Improved A* Algorithm | |
CN117109622B (zh) | 一种多障碍物下双向搜索的uuv蚁群路径规划方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |