赞
踩
目前路径规划存在的问题主要为环境建模困难、算法收敛素速度慢、容易陷入局部最优解,此外传统的路径规划算法需要在建立全局地图的基础上进行路径规划,即在已知地图中进行,这种算法导致了感知和决策分离,难以应用到位置环境中,因此后来相关研究者将兴趣放到了智能算法的研究上。
(1)开始搜索
从起点开始,检查其相邻的方格,然后向四周扩展,直至找到目标。
<1>. 从起点 A 开始,并把它就加入到一个由方格组成的 open list( 开放列表 ) 中。现在 open list 里只有一项,它就是起点 A ,后面会慢慢加入更多的项。 Open list 里的格子是路径可能会是沿途经过的,也有可能不经过。基本上 open list 是一个待检查的方格列表。
<2>. 查看与起点 A 相邻的方格 ( 忽略其中墙壁所占领的方格) ,把其中可走的 (walkable) 或可到达的 (reachable) 方格也加入到 open list 中。把起点 A 设置为这些方格的父亲 (parent node 或 parent square) 。
<3>. 把 A 从 open list 中移除,加入到 close list( 封闭列表 ) 中, close list 中的每个方格都是现在不需要再关注的。如下图所示,深绿色的方格为起点,它的外框是亮蓝色,表示该方格被加入到了 close list 。与它相邻的黑色方格是需要被检查的,他们的外框是亮绿色。每个黑方格都有一个灰色的指针指向他们的父节点,这里是起点 A 。
<4>. 我们需要从 open list 中选一个与起点 A 相邻的方格,按下面描述的一样或多或少的重复前面的步骤。但是到底选择哪个方格好呢?选择具有最小 F 值的那个。
(2)继续搜索
<5>. 为了继续搜索,我们从 open list 中选择 F 值最小的 ( 方格 ) 节点,然后对所选择的方格作如下操作:
把它从 open list 里取出,放到 close list 中。
检查所有与它相邻的方格,忽略其中在 close list 中或是不可走 (unwalkable) 的方格 ,如果方格不在open lsit 中,则把它们加入到 open list 中。把我们选定的方格设置为这些新加入的方格的父亲。
如果某个相邻的方格已经在 open list 中,则检查这条路径是否更优,也就是说经由当前方格 ( 我们选中的方格 ) 到达那个方格是否具有更小的 G 值。如果没有,不做任何操作。相反,如果 G 值更小,则把那个方格的父亲设为当前方格 ( 我们选中的方格 ) ,然后重新计算那个方格的 F 值和 G 值。
<6>. 把终点加入到了 open list 中,此时路径已经找到了,或者查找终点失败,并且 open list 是空的,此时没有路径。
(3)优、缺点
其收敛速度比较快,稳定性较高。A*算法是一种启发式搜索算法,将广度优先搜索(BFS)和常规路径规划算法Dijkstra算法相结合。通过利用一个启发函数来改变其搜索性能,从而可以更快的找到路径,并且找到的一定是最短路径。A *算法计算量较大,运行时间较长等问题凸显。A*算法在Dijkstra算法基础之上改进而来。
考虑到车辆初始方向和终点方向,以及每一次节点拓展都符合车辆的运动学。Hybrid A*规划的路径由两部分组成,第一部分是考虑了车辆运动学的探索结点连接而成的路径;第二部分是使用ReedSheeps曲线连接中间点位姿与目标位姿的路径。
(1)Hybrid A*的结点拓展:x,y方向的拓展,还考虑了Θ方向的探索。结点拓展是三维的。
(2)启发式约束:考虑航向角及其半径。结合车辆运动学约束。
RRT是一种在完全已知的环境中通过随机采样扩展搜索的算法
尽管RRT算法是一个相对高效率,同时可以较好的处理带有非完整约束的路径规划问题的算法,并且在很多方面有很大的优势,但是RRT算法并不能保证所得出的可行路径是相对优化的。因此许多关于RRT算法的改进也致力于解决路径优化的问题,RRT*算法就是其中一个。RRT*算法的主要特征是能快速的找出初始路径,之后随着采样点的增加,不断地进行优化直到找到目标点或者达到设定的最大循环次数。RRT*算法是渐进优化的,也就是随着迭代次数的增加,得出的路径是越来越优化的,而且永远不可能在有限的时间中得出最优的路径。因此换句话说,要想得出相对满意的优化路径,是需要一定的运算时间的。所以RRT*算法的收敛时间是一个比较突出的研究问题。但不可否认的是,RRT*算法计算出的路径的代价相比RRT来说减小了不少。RRT*算法与RRT算法的区别主要在于两个针对新节点的重计算过程,分别为:
RRT*算法的基本步骤:
<1>. 初始化:将起点添加到搜索树中。
<2>. 循环:在搜索树中不断添加新节点,直到满足停止条件(例如找到目标点)为止。
随机采样:从状态空间中随机采样一个点。
最近邻节点:找到搜索树中距离采样点最近的节点。
扩展:从最近邻节点沿着一定步长向采样点方向扩展,并检查路径是否与障碍物相交。
连接:如果扩展后的路径不与障碍物相交,则将该节点添加到搜索树中,并更新与其相邻的节点。
<3>. 优化路径:在建树完成后,对搜索树进行优化,尝试通过缩短路径长度或减少路径代价来改进路径质量。
反向链接:从目标点开始,反向遍历搜索树,寻找到起点的最优路径。
节点重新连接:在最优路径上尝试重新连接节点,使路径更直接或者更低代价。
<4>. 返回结果:返回找到的最优路径。
RRT*算法的优点是能够在保证快速搜索的同时,找到接近最优解的路径。然而,它的缺点是可能会受到采样点分布和步长选择的影响,导致搜索性能不稳定。
参考:https://blog.csdn.net/uytguytgf/article/details/119854809
人工势场法是一种常用于局部路径规划的算法,通过将机器人视为带电荷的粒子,利用电荷之间的斥力和机器人与目标之间的引力来生成一种“势场”。
在人工势场中,障碍物被视为带有相同电荷的粒子,它们之间相互排斥。同时,目标点被视为带有相反电荷的粒子,吸引机器人朝着目标点移动。
机器人沿着势场梯度方向移动,直到达到目标点或者受到障碍物的斥力影响而停止。
优点是简单易懂且易于实现,但存在局部最优解和对静态环境的依赖性的缺点。
由于障碍物与目标点距离太近,当汽车到达目标点时,根据势场函数可知,目标点的引力降为零,而障碍物的斥力不为零,此时汽车虽到达目标点, 但在斥力场的作用下不能停下来,从而导致目标不可达的问题。
参考:https://blog.csdn.net/uytguytgf/article/details/119857711
参考:https://blog.csdn.net/uytguytgf/article/details/128015530
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。