• [规划算法]Hybrid A *算法原理


    1.算法简介

    Hybrid A*算法是一种图搜索算法,改进于A*算法。与普通的A*算法区别在于,Hybrid A*规划的路径考虑了车辆的运动学约束,即满足了车辆的最大曲率约束。

    由于A*具有启发式,可以实现快速的结点搜索。核心在于结点权重如何确定(路径代价的设置)。

    Hybrid A*算法的启发式包括两种: non-holonomic without-obstacles和holonomic with obstacles。

    前者考虑了车辆的运动约束,但不考虑障碍物,一般使用RS曲线,Dubins曲线;后者将车辆当成网格地图上面的点,但考虑了障碍物。

    图1 基于Hybrid A*的路径规划算法流程

    2.Hybrid A*规划路径的组成

    Hybrid A*规划的路径由两部分组成,第一部分是考虑了车辆运动学的探索结点连接而成的路径;第二部分是使用ReedSheeps曲线连接中间点位姿与目标位姿的路径。

    1)Hybrid A*的结点拓展

    Hybrid A*的搜索空间不仅考虑了x,y方向的拓展,还考虑了Θ方向的探索。相比普通A*的探索空间,Hybrid A*的结点拓展是三维的,因此需要更多的计算量。

    图3 Hyrbrid A*的结点扩展:往前往后探索结点

    图4 普通A*和Hybrid A* 结点拓展的区别

    考虑车辆运动学约束,对地图网格化,生成结点,起始位姿到结点的路径为path1;

    2)Analytical Expansion

      Hyrbrid A*偶尔会尝试使用RS曲线或Dubins曲线尝试连接当前的结点与目标结点。这一方面可以精确地连接到目标位姿,另一方向可提高搜索的速度。如果得到的曲线与环境障碍物无碰撞,可以提取结束搜索。此时,由结点探索得到的路径为path1,RS曲线或Dubins曲线为path2,那么规划得到的路径为path={path1,path2}。

      这一操作在接近目标位姿或者非常稀疏的环境中比较有作用。如果每次尝试连接都需要做碰撞检测,会极大增加计算量。

    3.Hybrid A*的启发式

      Hybrid A*的有两个启发式,一般会取二者的最大值作为约束。

           其中约束启发式结合了车辆的运动学约束,忽略了环境。一般使用RS曲线或Dubins曲线的长度。这种启发式约束考虑了当前航向角以及转弯半径,可以确保车辆以正确的航向接近目标位姿。当车辆越来越接近目标时,这一约束会发挥较重要的作用。

           无约束启发式则忽略了车辆的运动学特性,只考虑了障碍物。一般使用普通A*搜索得到的路径(当前结点为目标点,HA*搜索的目标结点为起始结点),并使用欧几里得距离表示。这使得 A* 搜索的封闭列表存储到目标的所有最短距离 g(x),因此可以用作查找表,而不是在 HA* 进行时启动新的搜索。这个考虑了障碍物的启发式可以引导车辆绕过障碍物或U型弯道。

  • 相关阅读:
    ARM板卡ftp客户端应用
    vsftp移植(待续)
    /dev/null脚本中作用
    amazeui.css
    将td中文字过长的部分变成省略号显示的小技巧
    div非弹出框半透明遮罩实现全屏幕遮盖css实现
    重新定位svn地址的方法(windows和linux),svn switch(sw)的帮助信息
    linux 下启动SVN服务
    用SVN checkout源码时,设置账号
    svn提示out of date
  • 原文地址:https://www.cnblogs.com/youngsea/p/14833592.html
Copyright © 2020-2023  润新知