AutonomousVehicleControlBeginnersGuide
纯 Python 实现的自动驾驶算法仿真库,覆盖定位、建图、路径规划与控制五大模块,含 13 种路径
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
纯 Python 实现的自动驾驶算法仿真库,覆盖定位、建图、路径规划与控制五大模块,含 13 种路径
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你刚拿到一辆没有方向盘、没有刹车踏板的玩具车模型,却要让它在纸上画出的迷宫里自主行驶——它需要知道"我在哪"(定位)、"路在哪"(建图)、"下一步往哪走"(路径规划),以及"我该怎么转方向"(路径跟踪)。这就是自动驾驶控制算法的核心问题,而 ShisatoYano/AutonomousVehicleControlBeginnersGuide 正是这样一个"手把手教你造一辆智能小车"的零基础入门项目。
这个项目的作者 Shisato Yano 在 GitHub 简介中写道,他开始这个项目是为了自学自动驾驶系统的算法和软件开发。项目并非来自某个大厂或实验室,而是从零开始、用 Python 一行一行敲出来的工程实践。Yano 的目标是未来将这些代码和文档集结成一本技术书籍出版——这也解释了为什么整个项目的结构异常清晰:每个算法模块都有对应的设计文档(doc/DESIGN_DOCUMENT.md),甚至有配套的 pytest 单元测试。
该项目在 GitHub 上拥有 1591 颗星,被标注了自动驾驶领域的多个核心话题:autonomous-driving、path-planning、localization、mapping、object-detection。代码采用 MIT 许可证,允许 fork 后自由使用。
项目实现了三种经典的概率定位算法:
项目涵盖四种地图构建方式:
这是项目最丰富的模块,实现了 13 种路径规划算法:
| 算法类别 | 具体算法 | 特点 |
|---|---|---|
| 经典搜索 | A*、Bidirectional A*、D*、Dijkstra | 基于栅格的最优路径搜索,D* 支持动态障碍物重规划 |
| 智能优化 | PSO(粒子群优化) | 连续空间优化,适合复杂地形 |
| 采样规划 | RRT、Bidirectional RRT*、RRT*、Informed RRT* | 高维状态空间的随机采样算法 |
| 概率路图 | PRM | 通过随机采样构建路图,适合多次查询 |
| 组合优化 | Elastic Bands | 在 A* 路径基础上用弹性带优化平滑度 |
作者在 README 中特别注明了 Dijkstra 算法的 GIF 做了帧采样降频处理,原因是原始 GIF 过大容易导致内存溢出——这个细节也反映了真实工程中的经验。
路径跟踪负责让车辆沿规划好的路径行驶,关键在于控制误差。项目实现了:
其中 MPC(模型预测控制) 路径跟踪是该领域的集大成者,它用 do-mpc 库实现——这是一个专业的非线性 MPC 优化框架,CasADi 作为底层求解器。
项目采用 模块化插件架构,顶层分为:
src/
├── components/ # 通用基础组件(坐标变换、数学库等)
└── simulations/ # 各算法的独立仿真模块
├── localization/ # 定位仿真
├── mapping/ # 建图仿真
├── path_planning/ # 路径规划仿真
├── path_tracking/ # 路径跟踪仿真
└── perception/ # 感知仿真
doc/
├── 1_world_visualization/
├── 2_vehicle_model/
├── 3_sensor_models/
└── 4_path_tracking/ # 设计文档
test/ # pytest 单元测试(覆盖率测量)
核心技术栈: Python 3.13 + NumPy + SciPy + Matplotlib + CasADi + do-mpc + pytest。CI 覆盖 Linux/Windows/macOS 三大平台。
项目对零基础用户非常友好:
python src/simulations/... 运行。docker-compose up 即可启动,支持 X11 显示。整个项目无需 GPU,是纯算法学习的理想环境。磁盘占用约 2GB,内存需求 4GB 以上即可流畅运行。
自动驾驶算法栈通常分为感知、定位、规划、控制四大模块。这个项目的价值在于:它用纯 Python 实现了一个完整的小型算法栈,从定位到建图、从规划到控制,覆盖了大多数教材和面试中的高频考题。作者坚持 MIT 协议、持续维护 5 年以上、CI 覆盖三大平台,是一个认真对待代码质量的学习型项目。
对于 AI 爱好者,这个项目是理解"AI 如何操控物理世界"的绝佳窗口;对于开发者,它是移植到 ROS/Autoware 或自研控制系统的可靠参考实现。
图1:NDT 点云配准地图构建
图2:A 最短路径搜索*
图3:RRT 随机采样路径规划
图4:D 动态障碍物重规划*
图5:MPC 模型预测路径跟踪
图6:Stanley 控制器转向控制
图7:LQR 最优控制跟踪