1.引言
了解Apollo的Open Space算法相关代码,旨在想实现对A星输出的轨迹进行平滑,更专业点可能就是基于最优控制的轨迹优化。先学习整个流程,详细解释其各个部分的作用和原理,最后将原算法的混合A*替换成简单的A*。
- 代码目录: modules/planning/open_space/.
- 可视化工具: modules/tools/open_space_visualization/distance_approach_visualizer.py
5.1.混合A*算法
Hybrid A*代码流程图如下:
Hybrid A*算法包含了node3d
, grid_search
, reeds_shepp_path
和 hybrid_a_star
. 其中hybrid_a_star
是最重要的组成部分, 它调用了grid_search
和reeds_shepp_path
.
代码文件在hybrid_a_star.cc中. 函数入口: HybridAStar::Plan
, 在OpenSpaceTrajectoryOptimizer::Plan
中被调用