We choose to go to the moon in this decade and do the other things,
not because they are easy, but because they are hard.– John F. Kennedy, 1962
作为中国自动驾驶的黄埔军校,百度的Apollo 自动驾驶开源框架是每一个刚入行的PnCer都不可错过的“小甜甜”,甚至对于很多做自动驾驶“自研”的公司,该框架也是有很大的借鉴意义(当然它们很多也是这样做的😂)。哪怕是在端到端已经开始横行的2024年,Apollo仍然是你入行自动驾驶,学习PnC算法的不二框架!
从Apollo 1.0到Apollo 9.0,乃至今年刚发布Apollo 10.0,Apollo经过多年的迭代出现了多个版本,那么从哪个版本开始看呢?这里推荐Apollo 9.0!Apollo 9.0对整个框架进行了大量调整和简化,使得看起来更加清晰和易于理解,同时又保持了核心算法的一致性(话说回来,从3.5开始已经没咋变过了,是不是有些落后了?其实大多数场景基本够用),另外本身代码也十分规范和优雅,所以建议大家还没有开始看的同学可以从这个版本开始。
So,那如何入门?Planning模块代码太多无从下手?没有实车不知道代码运行的流程和结果?没关系,这里有大乘佛法2部,共16卷,让我们卷起来。
1. Planning
- Apollo 9.0 Planning 整体框架
- Apollo 9.0 Planning 中重要的数据结构
- Apollo 9.0 Planning 初始化都做了什么?
- 如何用vscode调试Apollo 9.0?-- 以Planning模块为例
- Apollo 9.0 轨迹拼接和规划起点
- Apollo 9.0 参考线生成器 – ReferenceLineProvider
- Apollo 9.0 参考线平滑算法 – Discrete Points ReferenceLine Smoother
- Apollo 9.0 路径二次规划算法 – piecewise jerk path optimizer
- Apollo 9.0 速度动态规划决策算法 – path time heuristic optimizer
- Apollo 9.0 速度二次规划算法 – piecewise jerk speed optimizer
- Apollo 9.0 速度非线性规划算法 – piecewise jerk speed nonlinear optimizer Ⅰ
- Apollo 9.0 速度非线性规划算法 – piecewise jerk speed nonlinear optimizer Ⅱ
2. Control
- Apollo 9.0 Control 整体框架
- Apollo 9.0 控制算法 – lat based lqr controller
- Apollo 9.0 控制算法 – lon based pid controller
- Apollo 9.0 控制算法 – mpc controller
3. 总结
- 2024年端到端都杀疯了,Apollo 开源算法真的落后了吗?
Comming soon…