Hybrid Astar 算法剖析和实现

Posted 穿越临界点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hybrid Astar 算法剖析和实现相关的知识,希望对你有一定的参考价值。

在学习资料满天飞的大环境下,知识变得非常零散,体系化的知识并不多,这就导致很多人每天都努力学习到感动自己,最终却收效甚微,甚至放弃学习。我的使命就是过滤掉大量的无效信息,将知识体系化,以短平快的方式直达问题本质,把大家从大海捞针的痛苦中解脱出来。

文章目录

0 前言

网络上讲Astar算法的很多,但讲Hybrid Astar算法的相对来说很少,而且基本上都停留在理论层面,很少结合代码来讲。本篇/系列文章旨在帮助新接触该算法的同学能够从理论到代码彻底吃透该算法,并应用到自己的项目中去。

1 什么是Hybrid Astar算法

Hybrid Astar是Astar算法的扩展。或者可以理解为Astar算法在自动驾驶领域应用的定制版。因为整体的搜索框架(思想)大体是一致的,只不过对每个模块的内部实现做了调整。比如,Astar算法子节点扩张的方向比较固定(4方向或8方向),Hybrid Astar则改造成符合车辆运动学的扩张方式。再比如,Astar算法的启发函数直接使用曼哈顿距离,而Hybrid Astar则使用符合车辆运动学的R-S曲线和无碰撞路径的最大值来作为启发函数。

简单理解就是,Hybrid Astar是适合车辆进行搜索的Astar算法的高端定制版。

Tips:没有接触过Astar算法的可以先看一下这个链接Introduction to the A* Algorithm (redblobgames.com)。等做完Hybrid Astar系列,回头再把Dijkstra算法和Astar算法的剖析补上。

2 Hybrid Astar算法有什么用

该算法主要被应用在自动驾驶领域的下面几个场景:

  • APA(辅助泊车)
  • AVP(代客泊车)
  • U-Turn(行车场景下的车辆掉头)

3 算法的核心思想

个人认为Hybrid Astar算法的核心思想和Astar是一样的:

  • 使用局部最优逼近全局最优。
  • 连续问题离散化,以便可以迭代计算。

其实大部分的优化算法都是这样一个思路。当然Hybrid Astar会有自己的一些特点,每个特点的背后肯定也蕴含着精妙的设计思想,我们后面会逐个剖析。

4 算法的重要组成部分

Hybrid Astar算法主要包括下面几个要素:

  • 状态节点
  • 状态空间栅格
  • 迭代搜索
  • 节点拓展
  • 碰撞检测
  • 代价计算-g
  • 代价计算-h

Astar算法也包含上述几个要素(七龙珠),但Hybrid Astar将每个要素都进行了升级或者说是定制。

5 总结

本篇主要介绍了一下Hybrid Astar算法的概貌,和重要组成部分,后文我们会将这几个要素一一攻克。

恭喜你又坚持看完了一篇博客,又进步了一点点!如果感觉还不错就点个赞再走吧,你的点赞和关注将是我持续输出的哒哒哒动力~~

以上是关于Hybrid Astar 算法剖析和实现的主要内容,如果未能解决你的问题,请参考以下文章

Hybrid Astar 算法剖析和实现

Hybrid Astar 算法剖析和实现

Hybrid Astar 算法剖析和实现

Hybrid Astar 算法剖析和实现

Hybrid Astar 算法剖析和实现

Hybrid Astar 算法剖析和实现