下图是Apollo中Open Space Planner框架:
可以看出,其中Hybrid A*在路径生成中扮演了重要角色。
比较知名的网上开源的Hybrid A*的C++代码包括:
1、KTH的硕士论文项目:karl kurzer;(这也是我第一次接触Hybrid A*时的项目)
2、百度Apollo的开放场地轨迹规划模块open_space;
Hybrid A*算法最早发表于《Path planning for autonomous vehicles in unknown semi-structured environments》,其思想继承自A*,但是相比A*又有很多变化。
具体实现可以分为一下几个步骤,每个步骤都有很多细节问题。
第1步,搜索(这里有很多细节需要注意的)
代价函数、启发式函数、RS曲线、碰撞检测
第2步,路径平滑(梯度下降)
第3步,速度规划
第4步,轨迹再平滑?(Apollo)
一些疑问:
Hybrid A*一般用于低速泊车(open space)规划,怎么跟决策结合?
是否需要考虑动态障碍物??(将动态障碍物当做静态障碍物,进行重规划?)
Hybrid A*:有非常多的细节问题!!!
Apollo 6.0 的 Hybrid A star planner - 知乎
Baidu Apollo代码解析之Open Space Planner中的Hybrid A* - 知乎
Baidu Apollo代码解析之Open Space Planner中的平滑优化 - 知乎
混合A*算法研究_robinvista的博客-CSDN博客_混合a星
基于Hybrid A*和ReedSheep曲线的Open Space规划器 - 知乎
Apollo Open Space Planner中主要TASK类执行的过程解读 - Challenging-eXtraordinary
Apollo Open Space Planner 介绍 1-Hybrid A star - Challenging-eXtraordinary
Apollo Open Space Planner 介绍 2-warm start - Challenging-eXtraordinary
Optimization-Based Collision Avoidance 论文阅读推导记录 - Challenging-eXtraordinary
MATLAB/Python仓库
Hybrid A* path planner - MATLAB- MathWorks 中国