精华内容
下载资源
问答
  • 移动机器人路径算法,较为简单,可以用于实际操作。
  • 文章研究了Q-learning算法,并且基于该算法,对煤矿井下机器人的移动路径进行了规划,并且对规划方案进行了仿真分析,通过研究发现Q-learning算法路径规划能力优越,特别是对于条件极为恶劣、工况十分复杂的煤矿井下...
  • 连续环境多机器人路径规划,基于多种方法结合。 1.创新的APF在离散网格中找到起点到终点的所有可行路径。 2.enhacedGA (EGA)改进初始路径,找到起点和终点之间最佳的路径。 文章提出的APF主要作用在于time-...

    10.1016/j.eswa.2018.08.008
    https://doi.org/10.1016/j.eswa.2018.08.008

    Abstract

    连续环境多机器人路径规划,基于多种方法结合。
    1.创新的APF在离散网格中找到起点到终点的所有可行路径。
    2.EnhacedGA (EGA)改进初始路径,找到起点和终点之间最佳的路径。
    文章提出的APF主要作用在于time-efficient的找到确定的一系列可行的路径,并且能够保证如果存在连通路径则一定能找到

    这里说到了time-efficient和一定能找到两个概念。1.之前我的论文因为一开始就对所有的静态障碍物点进行计算,所以比较消耗时间,但是实际上只是拿周围的八个location进行计算最大的梯度,所以某种意义上来说,只是我代码的冗余计算很多导致的时间比较慢,可以说time-efficient;2.但是说实在APF都有陷入局部最优无法到达终点的可能性(我是自己调整了APF排斥力的作用范围才比较好的没有陷入局部最优),为什么文章说只要存在可行路径就可以找到呢?接下去看吧】

    EGA使用了5种特定的crossover和mutaion操作来改进初始路径。并且在这篇文章当中,路径长度,光滑程度和安全性都作为多目标路径规划问题的objective function。
    算法可以拓展到多移动机器人的路径规划问题中:objective function 加入一个新的损失项,即机器人之间的距离,并且EGA中加入一个新的collision removal operator 来移除可能的collision between paths。
    为了检验算法的有效性,12 plannar environments with different size and complexities were examined(作者还和PSO,A*,PRM,B-RRT在12个环境里面做了比较)。结果表明EGA的表现并不会受control parameter的影响。
    不仅如此,我们还将算法和其他已有算法(A* ,PRM,B-RRT和PSO)进行比较。比较实验表明,我们的算法比PSO以及确定性的算法A*以及概率算法PRM和B-RRT路径规划算法在路径长度、运行时间和成功率上 更outperforms。
    最后,仿真表明在四机器人的路径规划算法上,我们的算法不仅给出来collision-free 的路径,还找到了所有机器人的近似最优解。

    keywords:移动机器人;路径规划;遗传算法;APF;多机器人路径规划;多目标路径规划(Multi-objective path planning)


    巴拉巴拉(related work)

    Considering the affecting factors on PP like different kinds of robots and environments, static or dynamic obstacles, and multiple robots, finding the shortest path with the highest degree of smoothness which avoids collision with other robots and obstacles is still a challenging problem.
    (Canny, 1998)说PP(path planning)问题是一个NP难问题。所以启发式或者进化算法被广泛用在寻找最优解上。GA、PSO和蚁群算法,artificial bee colony、bacterial forging optimization、shuffled frog leaping就是其中的一些。上面这些工作都将环境认为是网格地图,并且在这些grids中找到最优路径*【emmm,真的是这样嘛?表示怀疑】,比如Tuncer et al. (Tuncer & Yildirim, 2012) introduced a new mutation operator to find the path with the shortest length in a discrete gridded environment using GA。
    基于网格的缺点是网格固定,PP规划出的路径被限制在这些网格中。并且A
    和Dijkstra算法早就在网格地图中能找到最优了。【D是A的动态变种,但是只是保证快速更改可行路径,并不能保证最优,而如果每时每刻计算A*,算力消耗巨大】
    Feasible initial solutions can improve the performance of the evolutionary algorithms。之前他们都是随机初始化,初始化的路径不OK就一直初始化**(作者认为这样很蠢很没有效率,还diss了一波传统的GA的operators,作者为PP设计了自己的operators)**

    【这里我想说一下俺的鄙见,俺认为GA只是一种被套上好听的Genatic字样的搜索方法,叫优化方法也行,实际上和粒子群等算法思想差不多,初始分布广,然后不断收敛找好的区域,有时候遇到局部最优是因为是概率算法,有时候没有找到就直接收敛到局部了,而搜索的方向根据不同算法,不一样,比如GA就是根据operaters,或者鸟群算法的群体速度的计算等等】

    再者原来的GA在PP问题上只关注路径长度。而多目标的PP问题可以找到一个更不错的路径来适应现实中的工程需要。PP比较常用的三个 目标:1.长度2.路径平滑程度(更少的degree of direction change)3.路径安全:a path which always satisfies a predefined safety margin
    (distance) with respect to obstacles
    这里作者在吹嘘自己的算法比起之前的算法牛逼之处在于

    1. 能够在continuous的环境下找到最优解 = =
    2. innovative的APF方法用来构建一系列可行初始解(说这样对GA算法来说很高效)
    3. 改进了五个operators所以把算法叫做EGA(Enhanced GA),These operators are modified such that they can minimize the path length and maximize the path smoothness at the same time while altering the solutions minimally to avoid generating infeasible paths

    【什么意思,意思是不是说我的operators不像其他的变化那么大,一下子跳到其他不可行解了,所以你的operators就是类似于对初始结果进行fine-turn?】

    1. 作者还提到这项PP工作的船新版本——multi-robot 的PP problem他也考虑啦:
      他在GA的objective function里面加了一个collision term,代表多机器人之间的 碰撞概率【之前不是说距离的嘛 = = 】,GA加collision-removal operator等等巴拉巴拉

    【有主编怀疑了,你丫的是不是只是单纯的想用GA啊,干嘛不用用其他的进化算法或者确定的算法捏?不能APF初始+粒子群嘛 不能APF初始+蚁群算法嘛】
    GA introduced in PP in 2013 by considering the linear combination of path length, smoothness, and safety as an objective function.作者觉得2013这篇文章牛逼,GA可以并行计算,并且这篇文章引入co-evolutionary mechanism,类似于每一个iteration每个机器人都规划自己的path然后会evaluated the collision between robots。不过作者说这种mechanism也有毛病,每一个slave GAs(robot的意思把)will continuously modify the paths without any knowledge about the collision between robots.【可能是之前这个工作,robots之间不知道其他人的路径,但是每个时刻会根据现在的位置进行evalute collision?这样避障效果可能比一开始大家就知道各自走哪里,然后对将要走的路径计算collision probability效果要差?】所以,作者就在这里说机器人之间的碰撞必须作为PP问题的附加约束,和obstacle一样

    我滋瓷啊,当然作者也在后面MRPP中做了这样的工作,但是我还是感觉作者没说出为什么要用GA,可能要看2013的工作,看为什么要用GA把.只是有一句话我不知当说不当说:确定不是找一个已有算法APF然后fine turn说GA更好咩 = =

    如果想看multi-object可以看A modified PSO-DE algorithm was introduced by Tang et al. (Tang et al., 2016) for for PP in a discrete environment with a combination of path length and safety as the objective function.作者diss说这个runtime太长,不过的确是MOPP(多目标PP)
    也有人Han et al. (Han & Seo, 2017) selected selected a set of points in the obstacles’ neighborhood and used them as a guide to build an initial feasible path. Then, a modified PSO was adopted to optimize the position of the points and find the optimal piecewise linear path.They showed that the success rate of 100% could be achieved using a feasible initial path. Also, a modified operator could improve the path smoothness while the problem originally aimed at minimizing the path length.
    作者在文章related work中指明2017年的时候就有人三步PP(proposed by Mac et al. (Mac et al., 2017):

    1. 三角分解得到obstacle and free configuration space
    2. utilizing the Dijkstra’s algorithm to find an initial collision-free path
    3. adopting a new constrained multi-objective PSO for global PP.
      However, the mentioned study did not provide any comparison between the proposed algorithm and other PP algorithms in terms of objectives like path length and runtime to prove the efficiency of the introduced algorithm

    Hidalgo-Paniagua et al. (Hidalgo-paniagua et al., 2016, 2015) proposed a multi-objective (path length, smoothness, and safety) Shuffled Frog-Leaping algorithm with three refiner operators to find the optimal path in a gridded environment.
    【我这里是真的不明白作者为什么一直强调离散的环境,难道在计算机中仿真,连续环境不也是离散化,只不过间隔很小吗?】
    Davoodi et al. (Davoodi et al., 2015) presented a multi-objective GA for PP in a continuous environment. The proposed algorithm initiates with random paths and uses simple crossover and mutation operator to generate feasible paths and optimize them. To compensate for the drawback of random initial paths and common genetic operators, new operators were introduced to correct collision with obstacles and self-intersection. However, using a multi-objective algorithm with an infeasible initial solution and several operators could result in long runtimes。
    【哦吼,这几句话就很表面为什么作者要做这个工作了】
    Instead of connecting the center of the grids in a discrete environment with linear segments to build a piecewise linear path,
    【所以作者大概就是这个意思:你们啊 对大的地图都是连接grid中心,我不要,我直接对像素操作。那,我的工作,不也是一样的 = =,没有用grid 直接像素查看APF梯度】Song et al. proposed the application of Bezier Curve (Song &Wang, 2016) and a multimodal delayed PSO (Song et al., 2017) to build smooth paths. Using this method, the mobile robot will be able to follow a curve, instead of a piecewise linear path, which is desirable for many applications. 当然也有人A*之后再平滑的。

    作者大招:
    在这里插入图片描述

    1. 你们都是grid based方法,效果受限于grid 大小。本仙子不一样,我的性能不受离散化大小的限制(略略略)
    2. 你们跑evolutionary algorithm的时候啊,怎么都那么死脑筋random init 啊,给一个好的初始化咯,【那岂不是可以美名其曰,模仿学习?】大大加快收敛速度。【报告老师,有人作弊】
    3. 我的GA不一样,是EGA,注意那个E!(多了五个我自己写的operators哦)
    4. 我的优化目标不止一个哦,有三个哦
    5. 我能MRPP

    In this study, we consider the PP problem in 2-dimensional environments filled with arbitrarily-shaped static obstacles, which have no interaction (positive or negative attributes) with the free space . Moreover, the robots are considered as points, and their size will be added as a confidence radius around obstacles. Also, in the multi-robot PP case, we assume that all robots move with constant speed.


    正片

    【或许我不应该用PRM,而应该根据机器人的size对map进行grid化】
    不过作者这里的工作很取巧,怎么说呢,地图的确是连续的(某种意义上),但是作者的obstacle是一个一个有R的圆的组合排列,这使得他在计算APF的时候就爽歪歪了。
    all feasible paths between start and destination locations will be determined based on the pre-calculated potentials.
    某种意义上,这种取巧也使得可通行区域变得很好计算。
    Next, the coordinates of PBs related to each feasible initial path is coded as a solution.
    Fig.2(b) shows the solution structure (chromosomes of the EGA) corresponding to the initial pat shown in Fig. 2(a).
    在这里插入图片描述
    As the initial paths obtained by the proposed APF might have a different number of PBs, the mentioned solution coding will result in an EGA with variable length chromosome
    Using chromosomes with variable length could improve the flexibility of the path planner, as it can select the optimal number PBs automatically

    Fig. 3(a) shows the potential map of the environment shown in Fig. 2(a)
    在这里插入图片描述
    怎么从APF中得到可行路径?
    文中描述如何用三种list来构造APF,这个就不谈了,简单说就是从终点广播梯度,终点的梯度和下降的step
    To determine the feasible initial paths, starting from the start location, at each iteration, an adjacent node with the highest potential should be selected.
    Repeating this procedure, the potential of the path increases gradually till it meets the destination location, the point with the largest potential in the map. At this point, a feasible path between start and destination locations is found.
    可以看到fig3(b)就能看到很多条根据梯度随机选择的路径。
    就是因为这个原因所以说作者说
    The proposed APF is guaranteed to find a feasible initial path if one exists.

    个人估摸为什么说保证呢,因为你看这个形式 = = 不就是BFS嘛,全部遍历过去了,当然只要有连通区域就能保证咯 = =

    EGA
    我们EGA的特点是

    1. 变长的基因序列
    2. 五种船新的交叉变异方式
    3. 改进的减少PBs数量的operators
      我们的终止搜索方式是到达固定的迭代次数

    Selection Operators

    we used the Roulette Wheel Selection (RWS) o select parents for crossover operator.

    Crossover Operators

    The first crossover operator finds a new offspring by calculating the mean of the two parents:
    在这里插入图片描述
    When the number of PBs of the two parents are not equal, first, the parent with the smaller number of PBs is selected,作为母亲
    在一个父母选定了之后,另一个父母就从与他的这个母亲亲最近的另一条路径中选择,并且以一种全新的方式繁殖
    在这里插入图片描述
    Where α\alpha is a vector of random numbers in the range of [-1,+1].
    While the first crossover operator is designed to generate shorter and smoother paths, the second crossover operator is adopted to search the environment in a random fashion and avoid premature convergence.

    Mutation Operators和 Deletion Operator就不讲了,自己去论文里面看.

    Objective Function

    1. single objective:path length
    2. multi-objetive:path length,path smoothness,path safety
      第一种single objective被作者用来和A*\PRM\B-RRT\PSO算法比较.
      第二种multi-objetive是用来在复杂的环境下规划路径的
      而且第二种捏,作者竟然是the objective function is calculated as the weighted linear sum of the three objectives
      在这里插入图片描述

    Multi-robot Path Planning

    这里作者说如果是多个机器人,那么PP问题就变成动态的PP问题了,因为其他机器人算是动态障碍物.
    【下面作者的观点我不同意】
    three tasks should be handled simultaneously:
    (i) the optimal path for each robot should be determined based on the position of static obstacles
    【???动态非ROBOT的障碍物不要考虑了?】
    (ii) the determined paths should be checked for possible collisions among robots, and
    【yep,是这个道理,还有机器人和移动障碍物的collision 概率呢】
    (iii) the optimal paths should be modified based on the collisions.

    文中为了方面mobile robots with constant speed are considered.
    也就是说相同时间走的路程是相同的,如何说这段时间移动的距离can be used to detect possible collisions between robots。
    For PP of mobile robots with variable speed, only the distance calculation should be modified based on different speed values, and the rest of the algorithm can be applied in the same way.
    在MRPP中有两个措施
    The first one measures the closest distance between every two robots and increases the objective function value associated with their paths if they are closer than a predefined safety distance。The penalty of the objective function value is inversely related to the distance between two robots; if their distance is larger than the predefined safety distance, the penalty is zero, otherwise, the closer the distance, the greater the penalty.
    【这 = = 不就是动态的APF,选取静态障碍物的APF+最近动态障碍物的APF】
    The second mechanism modifies the paths which collide with each other.For this purpose,one of the paths is selected randomly, and one of its PBs is selected and moved in a random fashion. This modification will remove the detected collision; however, the new path should be checked for possible collision with all other paths again. If the new path is collision-free, it will be replaced by the old one. Otherwise, the collision removal process will be repeated.
    【就,直说了,没看懂】
    在这里插入图片描述
    但是看图片大概能了解到就是原先得到的路径,根据其速度计算一下两个路径会不会发生碰撞,或者说计算在两个路径交叉点的位置,两个机器人的位置,然后他们的距离作为碰撞的概率可能性.

    展开全文
  • 1.学习理解机器人路径规划算法,重点研究遗传算法和蚁群算法。 2.对典型的二维场景采用栅格法进行matlab建模。 3.用matlab对遗传算法,蚁群算法仿真,比较不同算法的优缺点,确定有效的路径规划求解算法。 所以就...

    这是一个多年以前研究过的课题,现在简单说一下

    本课题主要是
    1.学习理解机器人路径规划算法,重点研究遗传算法和蚁群算法。
    2.对典型的二维场景采用栅格法进行matlab建模。
    3.用matlab对遗传算法,蚁群算法仿真,比较不同算法的优缺点,确定有效的路径规划求解算法。

    所以就形成了
    遗传算法–>栅格法+TSP问题
    蚁群算法–>栅格法+TSP问题

    路径优化的问题很常见,本带马工会竭尽所能解决小白入坑的问题(手动笑哭)。评论会推送至邮箱,我看见了就会回复。可接私活。
    也欢迎各位大佬详细交流,

    展开全文
  • 室内移动机器人路径规划算法介绍,提供移动机器人路径规划参考
  • Matlab遗传算法扫地机器人路径规划算法代码实现路径规划,栅格法画地图,障碍物位置可以自己定义,画出平均路径和最短路径曲线,适应度函数考虑路线顺滑度和距离两个因素。
  • 机器人路径规划算法

    热门讨论 2012-03-02 15:40:52
    机器人路径规划算法,可视化界面显示,默认实验数据为实现4个机器人路径规划
  • 机器人路径规划算法

    2019-04-15 11:27:51
    路径规划的目的是在给定起点和目标点的空间里规划出一条从起点到目标点的无碰撞路径,基于图论的经典的路径规划算法有DFS,BFS,Dijkstra,Astra,智能路径规划算法有蚁群算法,遗传算法,模糊算法等。
  • 本代码包含Dijkstra算法、Floyd算法、RRT算法、A*算法、D*算法等多种路径规划算法的matlab代码,注释明确,能够直接运行,欢迎下载。
  • 针对煤矿救援机器人利用A*算法规划出来的路径存在转折次数多和路径不够平滑等问题,提出了一种基于改进A*算法的煤矿救援机器人路径平滑算法。首先利用Douglas-Peucker(D-P)算法对A*算法产生的全段路径进行处理,...
  • 但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是机器人在有障碍物的工作环境中,如何找到一条从起点到终点适当的运动路径,使机器人在运动过程...

    移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是机器人在有障碍物的工作环境中,如何找到一条从起点到终点适当的运动路径,使机器人在运动过程中能安全、无碰撞地绕过所有障碍物。这不同于用动态规划等方法求得的最短路径,而是指移动机器人能对静态及动态环境作出综合性判断,进行智能决策。

    机器人路径规划图

    总的来说,路径规划主要涉及这3大问题:①明确起点位置及终点;②规避障碍物;③尽可能的做到路径上的优化。

    机器人路径规划有全局与局部规划之分

    根据对环境信息的掌握程度不同,机器人路径规划可分为全局路径规划和局部路径规划。

    思岚机器人路径规划图

    全局路径规划是在已知的环境中,给机器人规划一条路径,路径规划的精度取决于环境获取的准确度,全局路径规划可以找到最优解,但是需要预先知道环境的准确信息,当环境发生变化,如出现未知障碍物时,该方法就无能为力了。它是一种事前规划,因此对机器人系统的实时计算能力要求不高,虽然规划结果是全局的、较优的,但是对环境模型的错误及噪声鲁棒性差。

    而局部路径规划则环境信息完全未知或有部分可知,侧重于考虑机器人当前的局部环境信息,让机器人具有良好的避障能力,通过传感器对机器人的工作环境进行探测,以获取障碍物的位置和几何性质等信息,这种规划需要搜集环境数据,并且对该环境模型的动态更新能够随时进行校正,局部规划方法将对环境的建模与搜索融为一体,要求机器人系统具有高速的信息处理能力和计算能力,对环境误差和噪声有较高的鲁棒性,能对规划结果进行实时反馈和校正,但是由于缺乏全局环境信息,所以规划结果有可能不是最优的,甚至可能找不到正确路径或完整路径。

     

    全局路径规划和局部路径规划并没有本质上的区别,很多适用于全局路径规划的方法经过改进也可以用于局部路径规划,而适用于局部路径规划的方法同样经过改进后也可适用于全局路径规划。两者协同工作,机器人可更好的规划从起始点到终点的行走路径。

    A*与D*机器人路径规划算法介绍

    在实际情况中,机器人路径规划除了考虑已知环境和未知环境地图,还要考虑到动态和静态环境下的路径规划。

    A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。但是,A*算法同样也可用于动态路径规划当中,只是当环境发生变化时,需要重新规划路线。

    机器人路径规划之A算法

    而D*算法则是一种动态启发式路径搜索算法,它事先对环境位置,让机器人在陌生环境中行动自如,在瞬息万变的环境中游刃有余。D*算法的最大优点是不需要预先探明地图,机器人可以和人一样,即使在未知环境中,也可以展开行动,随着机器人不断探索,路径也会时刻调整。

    综上所述,移动机器人路径规划技术已经取得了可观的成绩,但是,在其全局与局部路径规划方法中仍然存在诸多不足之处,为此,国内已有针对这类算法的改进,例如思岚科技的SLAMWARE模块化自主定位导航,SLAMWARE内采用改良的D*算法进行路径规划,这也是美国火星探测器采用的核心寻路算法。是一种动态启发式路径搜索算法,它可以让机器人在未知环境中行走自如,在环境多变的情况下游刃有余。

     

     

    展开全文
  • 这里写自定义目录标题移动机器人路径规划算法介绍及A*算法详解路径规划算法总结各种算法比较A*算法详解 移动机器人路径规划算法介绍及A*算法详解 随着人工智能的兴起,移动机器人逐渐走入了更多人的视线,ML和DL为...

    综述

    随着人工智能的兴起,移动机器人逐渐走入了更多人的视线,ML和DL为移动机器人的导航及定位算法提供了很多的重要参考。对于移动机器人的研发最为基本的问题就是如何对机器人的运动进行控制,在目前众多的机器人路径规划算法中,针对静态、动态环境存在着很多不同的解决方案,本文将对现存的主流算法进行大致的讲解和优劣分析。同时,对于在静态环境中广泛使用的A*算法,进行详细的解读。

    路径规划算法总结

    下面是现在流行的主要路径规划算法:

    1. 广度优先算法(Breadth-First-Search, BFS): 广度优先算法实际上已经能够找到最短路径,BFS通过一种从起点开始不断扩散的方式来遍历整个图。可以证明,只要从起点开始的扩散过程能够遍历到终点,那么起点和终点之间一定是连通的,因此他们之间至少存在一条路径,而由于BFS从中心开始呈放射状扩散的特点,它所找到的这一条路径就是最短路径。
    2. 启发式搜索:改变广度优先算法原来队列的FIFO模式,给不同的点加入优先级,可以知道,距离终点的曼哈顿距离越小的点,该点的优先级越高。然而这导致了先入为主地将最早遍历路径当成最短路径。
    3. Dijkstra算法:主要思想是从多条路径中选择最短的那一条:我们记录每个点从起点遍历到它所花费的当前最少长度,当我们通过另外一条路径再次遍历到这个点的时候,由于该点已经被遍历过了,我们此时不再直接跳过该点,而是比较一下目前的路径是否比该点最初遍历的路径花费更少,如果是这样,那就将该点纳入到新的路径当中去。
      优点:肯定找到最短路径,算法简单。
      缺点:需要遍历并记录所有节点。
    4. A*算法 :我们需要算法有方向地进行扩散(启发式),另一方面我们需要得到尽可能最短的路径,因此A*就诞生了, 它结合了Dijkstra和启发式算法的优点,以从起点到该点的距离加上该点到终点的估计距离之和作为该点在Queue中的优先级。在下文会详细介绍此算法。
      优点:比dijkstra快,因评价函数存在,算法会放弃掉图的边缘节点。
      缺点:h函数的选择决定了算法速度。
    5. LPA_star :是A_star的增量版本,它可以适应图形中的变化而无需重新计算整个图形,方法是在当前搜索期间更新前一次搜索的g值(从开始起的距离),以便在必要时进行更正。与A_star一样,LPA*使用启发式算法,该启发性来源于从给定节点到目标路径代价的更低边界。如果保证是非负的(零可以接受)并且从不大于到目标的最低路径的代价,则允许该启发式。
      启发式搜索和增量式搜索的区别在于,启发式搜索是利用启发函数来对搜索进行指导,从而实现高效的搜索,启发式搜索是一种“智能”搜索,典型的算法例如A_star算法、遗传算法等。增量搜索是对以前的搜索结果信息进行再利用来实现高效搜索,大大减少搜索范围和时间,典型的例如LPA_star、D_star Lite算法等。
    6. D*路径搜索算法: “D_star算法”的名称源自 Dynamic A Star,最初由Anthony Stentz于“Optimal and Efficient Path Planning for Partially-Known Environments”中介绍。它是一种启发式的路径搜索算法,适合面对周围环境未知或者周围环境存在动态变化的场景。
      同A_star算法类似,D-star通过一个维护一个优先队列(OpenList)来对场景中的路径节点进行搜索,所不同的是,D*不是由起始点开始搜索,而是以目标点为起始,通过将目标点置于Openlist中来开始搜索,直到机器人当前位置节点由队列中出队为止(当然如果中间某节点状态有动态改变,需要重新寻路,所以才是一个动态寻路算法)
    7. D_star Lite: D_star Lite算法是Koenig S和Likhachev M基于LPA_star 算法基础上提出的路径规划算法。
      D_star Lite 算法之于 LPA_star 算法犹如 D_star 算法之于 A_star 算法。与 LPA_star 采用的正向搜索算法不同,D_star Lite 采用反向搜索方式,效果与D_star 算法相当。无论是前文提到LPA_star 算法还是A_star 算法都不能满足移动机器人在未知环境中的路径规划需求,因为其在未知地图中需要不断的尝试,与边走边找到最优路径背道而驰。此时反向搜索算法能够很好的处理这种情况,D_star 算法虽然可以实现未知环境的路径规划,但效率较低,基于 LPA_star 的D_star Lite可以很好的应对环境未知的情况,其算法核心在于假设了未知区域都是自由空间,以此为基础,增量式地实现路径规划,通过最小化rhs值找到目标点到各个节点的最短距离
    8. RRT:通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,能够有效地解决高维空间和复杂约束的路径规划问题。该方法的特点是能够快速有效地搜索高维空间,通过状态空间的随机采样点,把搜索导向空白区域,从而寻找到一条从起始点到目标点的规划路径,适合解决多自由度机器人在复杂环境下和动态环境中的路径规划。与PRM类似,该方法是概率完备且不最优的。
    9. PRM:PRM是一种基于图搜索的方法,它将连续空间转换成离散空间,再利用A*等搜索算法在路线图上寻找路径,以提高搜索效率。这种方法能用相对少的随机采样点来找到一个解,对多数问题而言,相对少的样本足以覆盖大部分可行的空间,并且找到路径的概率为1(随着采样数增加,P(找到一条路径)指数的趋向于1)。显然,当采样点太少,或者分布不合理时,PRM算法是不完备的,但是随着采用点的增加,也可以达到完备。所以PRM是概率完备且不最优的。

    各种算法比较

    A*、LPA* 以及D* lite都可以用于静态环境下移动机器人的路径规划,此时三者计算效率都相差不大,都利用了启发式搜索来提高效率,LPA* 和D* Lite的增量式搜索在这时没有任何帮助,但对于动态环境的路径规划,A* 算法却有心无力,但是对于动态环境下进行二次搜索,LPA* 和D* Lite效率明显高于A*。

    LPA* 以及D* lite原理大体类似,都是基于这样一个思想:发生变化后的环境与最初的地图信息相差不大,可以利用增量式搜索利用先前存储信息来提高二次、三次及以后的搜索效率。

    A*算法的代价函数为f = g + h,其各个网格点的优先权也是用f来衡量。

    而LPA* 和D* Lite都引入rhs变量并作为代价函数,key作为优先权的比较基准,而且key有两 个元素[k1;k2],打破A* 算法出现 “平级” 的局面;由于D* Lite算法Start点一直在移动,故引入km来提高计算效率。

    LPA* 和D* Lite引入局部一致性的概念来描述网格点的状态以代替A*的Closedlist、Openlist,即所有Openlist的点都局部不一致,所有局部不一致的点都在Openlist列表上,减轻了储存负担,提高算法效率。

    路径规划算法还有很多,其他的就不在此赘述了,大家可以自主搜索一些资料。

    A*算法详解

    1.原理解析
    A*算法是启发式搜索,是一种尽可能基于现有信息的搜索策略,也就是说搜索过程中尽量利用目前已知的诸如迭代步数,以及从初始状态和当前状态到目标状态估计所需的费用等信息。

    A*算法可以选择下一个被检查的节点时引入了已知的全局信息,对当前结点距离终点的距离作出估计,作为评价该节点处于最优路线上的可能性的量度,这样可以首先搜索可能性大的节点,从而提高了搜索过程的效率。

    A* 算法的基本思想如下:引入当前节点j的估计函数f*,当前节点j的估计函数定义为:

                            f*(j)= g(j)+h*(j)
    

    其中g(j)是从起点到当前节点j的实际费用的量度,h*(j)是从节点j到终点的最小费用的估计,可以依据实际情况,选择h*(j)的具体形式,h*(j)要满足一个要求:不能高于节点j到终点的实际最小费用。从起始节点点向目的节点搜索时,每次都搜索f*(j)最小的节点,直到发现目的节点。

    2.曼哈顿距离
    A*算法的核心是设计估价函数,设计估价函数h(j)有很多方法,下面介绍其中的一种——曼哈顿距离。

    利用欧几里德距离计算估价函数的计算量很大,因此考虑将两点之间的曼哈顿距离作为估价函数。其中A点的经纬度为(Ax,Ay),B点的经纬度是(Bx,By),则A、B之间的Manhattan距离可以表示为:

                            M(A,B)=P*(|Ax-Bx|+|Ay-By|)
    

    P = 2* π *R / 360

    由于P是常数,可以简化为

                            f(j)=g(j)+(|Ax-Bx|+|Ay-By|)
    

    此估价函数计算量小,虽然不是严格的方向优先,但基本能保证最短路径的搜索方向向目标点的方向进行。

    3.算法步骤
    A*算法在搜索中设置两个表:Open表和Close表。Open表保存了所有已生成而未被考察的节点,Close表中记录已被考察过的节点。算法中有一步是根据估计函数重排Open表中的节点,这样,循环的每一步只考虑Open表中状态最好(代价最小)的节点,如果被发现在Open表中存在同一个节点,就应比较两个节点代价的大小,如扩展得到的新节点代价大于已有的节点代价,可以放弃扩展得到的新节点,否则就以新节点代替原来的节点。如果在Close表中存在同一个节点号,则新新生成的路径的代价肯定大于原来路径的代价,可以淘汰新生成的节点。

    具体算法步骤如下:

    步1:生成空的Open表、Close表,将起点S放入Open表

    步2:如果Open表为空,则失败退出。

    步3:从Open表中,找出头节点U,作为当前节点,将它从OPEN表中移除。

    步4:判断U是否为终点,如果是,则通过节点U的父指针,一直遍历到起点,找到到最优路径,算法结束。否则,转步5.

    步5:扩展当前节点U,找到其扩展的后继节点集合V,遍历集合V中的节点,如果节点即不在Open表也不在Close表,计算该节点的估计值,将节点加入到OPEN表,设置父节点为U.如果节点在Open表、Close表,比较当前节点的代价g(v)和Open表、Close表中代价,如果当前节点的代价g(v)小,更新表中的代价和父节点指针。

    步6:按估价值递增的顺序,对Open表中所有节点进行排序。

    步7:转步2.

    4.伪代码实现
    根据以上思路,A*算法的伪代码如下:

    A*()
    {
    Open = [起始节点];
    Closed = [];
    while (Open表非空)
    {
    从Open中取得一个节点X,并从OPEN表中删除。
       if (X是目标节点)
      {
        求得路径PATH;
        返回路径PATH;
      }
      for (每一个X的子节点Y)
      {
    if (Y不在OPEN表和CLOSE表中)
        {
             求Y的估价值;
    并将Y插入OPEN表中;
    }
        //还没有排序
         else if (Y在OPEN表中)
        {
    if (Y的估价值小于OPEN表的估价值)
    更新OPEN表中的估价值;
    }
         else //Y在CLOSE表中
          {
             if (Y的估价值小于CLOSE表的估价值)
           {
    更新CLOSE表中的估价值;
    从CLOSE表中移出节点,并放入OPEN表中;
    }
    }
    将X节点插入CLOSE表中;
    按照估价值将OPEN表中的节点排序;
    }//end for
     }   //end while
    }     //end function
    

    5. A*算法总结
    A* 算法是一种静态路网中求解最短路径最有效的直接搜索方法。估价值与实际值越接近,估价函数取得就越好。注意是最有效的直接搜索算法。之后涌现了很多预处理算法(ALT,CH,HL等等),在线查询效率是A*算法的数千甚至上万倍。公式表示为: f(n)=g(n)+h(n),其中 f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,h(n) 是从n到目标节点最佳路径的估计代价。保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取:估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行,此时的搜索效率是最高的。如果估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。

    展开全文
  • 本文针对机器人路径规划技术进行了深入地研究,阐述了机器人路径规划问题的三个子问题等内容,讨论了传统路径规划方法和基于智能算法的路径规划方法。本文运用传统Dijkstra算法的贪心策略,针对静态环境下移动机器人...
  • 机器人路径规划经典算法

    万次阅读 多人点赞 2019-04-17 08:54:45
    机器人经典路径规划算法 基于图论的路径规划算法 基于图论的路径规划规划算法有BFS,DFS,Dijkstra,A*,D*,D*lite等经典算法。 源代码. 基于采样的路径规划算法 基于采样的经典路径规划算法有RRT ,PRM。 .....
  • 机器人路径规划A算法.rar
  • 一种基于凸壳的智能服务机器人路径规划算法
  • 室内移动机器人得到了越来越大的发展和应用,对此很多学者开始学习该方面的知识,万事开头难,很多学者在最开始的时候由于没有一个好的程序源码去帮助理解学习,从而止步不前,这里给出一些移动机器人路径规划算法的...
  • 机器人路径规划算法解读

    千次阅读 2019-09-18 05:19:08
    但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是机器人在有障碍物的工作环境中,如何找到一条从起点到终点适当的运动路径,使机器人在运动过程...
  • 模拟清扫机器人搜寻垃圾,以MATLAB作为仿真环境,实现算法设计
  • 机器人路径规划算法 经典算法 c语言实现的 啊啊
  • 图上的多机器人路径规划:基于A *算法的图上多机器人路径规划解决方案
  • 工业机器人路径规划及相关算法研究.pdf 介绍了关于工业机器人路径规划及相关算法研究的详细说明,提供工业机器人的技术资料的下载。
  • 针对机器人路径规划问题, 提出一种基于几何相交测试的路径规划方法. 该方法首先搜索位于当前路径点 到目标点连线上的首障碍栅格; 然后结合贪婪法、回溯法和邻域搜索策略从障碍栅格邻域搜索下一个路径栅格; 接 ...
  • 针对机器人避障问题,提出一种基于遗传算法的极坐标系下机器人路径规划算法,将传统直角坐标系下采用遗传算法的路径规划改为极坐标系下的路径规划方法;给出极坐标系下的运动模型,引入有障碍物模式和无障碍物模式....
  • 扫地机器人路径规划算法解读

    千次阅读 2020-02-26 15:22:15
    随着人们生活水平的提高,...在扫地机器人中,路径规划是其最核心的技术,所谓路径规划是指机器人根据自身传感器对环境进行认知,来确定周围环境和自身位置信息,进而规划出一条最优运行路线。同时又能高效完成清扫...
  • 遗传算法 机器人路径规划MATLAB程序
  • 一个基于蚁群算法机器人路径规划,也可运用在无人驾驶
  • 移动机器人路径规划免疫网络算法研究

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,900
精华内容 760
关键字:

机器人路径算法