apollo
百度开源L4级自动驾驶全栈平台,26k+ Stars,Cyber RT运行时框架,支持多传感器融合感
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
百度开源L4级自动驾驶全栈平台,26k+ Stars,Cyber RT运行时框架,支持多传感器融合感
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Apollo 自动驾驶平台官方标志
想象你正在设计一座智慧城市的交通神经网络——每一辆车都是网络中的一个节点,每一条道路都在实时交换数据。而 Apollo,就是为这套系统打造的「超级中枢」。
2024年末,百度 Apollo 在武汉投放的 Robotaxi 无人出租车车队,单日单平台接单量突破万单。这意味着武汉街头每天有上万人次,不再需要担心疲劳驾驶、路怒症或者绕路绕到怀疑人生。这一切的背后,Apollo 平台功不可没。
Apollo 的发展历程,本身就是自动驾驶行业的一部简史。2017年百度发布 Apollo 1.0,定位还只是封闭场景下的循迹行驶;到 2024年12月发布 Apollo 10.0,底层已重构为基于自动驾驶基础模型(ADFM)的全新算法框架,模块从感知、定位、规划到控制,覆盖了自动驾驶的全栈技术链。截至2025年5月,百度 Apollo 累计自动驾驶测试里程已超过 1.7 亿公里。
百度 Apollo Go 目前在全球 15 个城市部署了超过 1000 辆完全无人驾驶出租车,包括迪拜、阿布扎比等海外市场。2025年底,百度还与 Uber 达成战略合作,Apollo Go 无人车将逐步接入 Uber 全球网络,这标志着中国自动驾驶技术正式出海,参与全球竞争。
图2:Apollo 1.0 早期架构示意图(来源:Apollo 官方文档)
Apollo 的核心技术栈中,最具特色的模块是 Cyber RT——一个专为自动驾驶场景打造的高性能运行时框架。传统机器人软件通常依赖 ROS(机器人操作系统),但 ROS 最初面向的是实验室机械臂场景,实时性和吞吐量并不适合高速行驶的车辆。
Cyber RT 的核心设计思想是「中央计算模型」:所有传感器数据(摄像头、激光雷达、毫米波雷达、GPS)统一汇入中央调度节点,经过感知融合、目标追踪、路径规划、车辆控制等一系列流水线模块,最终输出控制指令。整个过程要求毫秒级延迟,对系统的并发能力和吞吐量要求极高。
Apollo 9.0 版本完全移除了对 ROS 的依赖,全面基于 Cyber RT 运行,进一步降低了模块间通信的延迟。
Apollo 的代码仓库采用高度模块化设计,modules/ 目录下包含二十余个独立模块:
模块间通过 Protobuf 定义的消息总线通信(cyber 框架),每个模块都可以独立编译、独立替换。开发者可以只替换感知算法,而保留规划控制逻辑不改动,这为学术研究和产业落地提供了极大的灵活性。
Apollo 的部署难度在开源自动驾驶项目中属于极高级别,主要门槛来自三个方面:
硬件门槛:必须配备 NVIDIA GPU(推荐 RTX 2080 Ti 以上或 A100),显存 8GB+,系统内存 32GB+,存储 200GB+。这是因为感知模块大量使用深度学习推理(CNN、Transformer),没有 GPU 根本无法实时运行。CUDA 版本要求 11.8,驱动 >= 520.61.05,光是驱动版本兼容性就难倒不少开发者。
软件门槛:Ubuntu 18.04+、Bazel >= 6.0、Docker,以及部分模块需要 ROS2。bazel 构建系统本身的学习曲线就不低,加上 Apollo 代码库规模巨大(26k+ stars,代码量以数十万行计),首次完整编译可能需要数小时。
车辆门槛:如果你想实际控制真实车辆,还需要专用的 CAN 总线接口卡(如 ELM327 或 Vector CANoe),以及适配特定车型的车辆协议。Apollo 支持的量产车型列表可以在官方文档中查到。
当然,Apollo 官方也提供了 Docker 开发容器,支持 GPU passthrough,至少省去了在宿主机上挨个安装依赖的麻烦。但话说回来,即便在 Docker 里,bazel 编译仍是最大的时间消耗。
Apollo 自带一个基于 Web 的可视化界面 Dreamview(以及更新的 Dreamview Plus),是整个平台的用户交互窗口。在 Dreamview 中,你可以:
Dreamview 的前端基于 React + Webpack 构建,后端是 C++ 服务,通过 WebSocket 实时推送感知数据流。对于想了解自动驾驶系统内部运作方式的学习者来说,Dreamview 是最直观的入口——你可以一边看着屏幕上车辆「眼中」的世界,一边对照代码理解感知→预测→规划→控制的完整链条。
Apollo 并非完美。首先,它是百度主导的项目,核心代码的演进方向与百度商业利益深度绑定。开源社区的贡献比例相比百度内部团队来说并不算高,这意味着第三方对架构决策的影响力有限。
其次,Apollo 的代码库更新节奏很快(目前已到 9.0 版本),但文档和社区支持的跟进速度有时跟不上代码变化,旧版本迁移到新版本可能遇到 API 不兼容问题。
第三,Apollo 的硬件依赖决定了它很难成为「个人开发者友好」的项目。相比可以在普通笔记本上运行的端到端自动驾驶模型(如 CARLA 仿真环境),Apollo 的门槛高得多。
尽管门槛高,Apollo 的行业价值不容忽视。它是全球范围内功能最完整、文档最详尽、社区最活跃的开源自动驾驶平台之一。对于自动驾驶相关专业的学生、研究者和从业者来说,阅读 Apollo 源码是理解 L4 级别自动驾驶系统工程实现的最佳途径之一。
从行业视角看,Apollo 的演进路径也折射出自动驾驶从学术研究走向大规模商业部署的完整轨迹:从最初的模块化框架,到 Cyber RT 的实时优化,再到 ADFM 基础模型的引入,每一步都是工程实践与学术创新的交汇。
如果你对自动驾驶感兴趣,Apollo 是一个值得深入研究的起点——即使你暂时没有条件在真车上跑起来,光是理解它如何协调摄像头、激光雷达、GPS 和车辆控制,就已经是相当有价值的学习经历了。