百度Apollo的Lattice算法Python实现
前言
- 百度Apollo的自动驾驶框架都是用C++写的,而且各个模块之间关联性很大,而我只想使用Lattice算法,用在自己搭建的Python仿真场景下。
- 网上有关Apollo的讲解都很少,代码就更不用说了,没人告诉你怎么用,更没有Python版本。于是我就自己理解了一下Lattice的核心算法,参考多方面的代码,写了这个基于Python的Lattice算法实现。
- 在这个过程中,我耗费了大量的时间和精力去分析Apollo源码,并结合自己的理解和各方面的资料。所以这部分源码不会公开,还请大家理解并支持知识付费。
- 在这里我要感谢B站Up主“读书思过”老师,感谢这位老师的对Apollo源码的无私分享和讲解,真的是行业大佬,有兴趣的小伙伴也可以关注这位老师。
目录介绍
├─lattice_planner # lattice的主要代码
│ │ draw_car.py # 绘制车辆的代码,封装好的直接调用
│ │ env.py # 仿真场景,可以自己自定义车道
│ │ main.py # 主运行程序
│ │ __init__.py
│
└─path_planning # 路径生成代码目录
│ cubic_spline.py # 样条采样
│ quartic_polynomial.py # 四次多项式代码
│ quintic_polynomial.py # 五次多项式代码
│ __init__.py
│
代码介绍
- 这个代码实现了一条道路上、有车道线、中心线上自动驾驶车辆的轨迹规划,包括轨迹簇生成(横向轨迹,纵向轨迹,横纵合并)、损失函数、参考线采样、碰撞检测等。具体效果可以看视频演示。
- 本代码只是演示一种简单的场景下自车的规划,当然大家可以根据自己的具体场景去搭建。
- 代码进行了详细的注释,相信有点Python和Lattice基础的同学能很快看懂并根据自身情况进行改动。
- 代码编写不易,还请大家多多支持!