前言
Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。
开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、成熟、安全的自动驾驶技术和数据开放给业界,旨在建立一个以合作为中心的生态体系,发挥百度在人工智能领域的技术优势,为合作伙伴赋能,共同促进自动驾驶产业的发展和创新。
Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等自动驾驶软件能力以及高精地图、仿真、数据流水线等自动驾驶云服务,帮助开发者从 0 到 1 快速搭建一套自动驾驶系统。
📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看
📘相关专栏C语言初阶、C语言进阶系列等,大家有兴趣的可以看一看
📙Python零基础入门系列,Java入门篇系列正在发展中,喜欢Python、Java的朋友们可以关注一下哦!
塑造自动驾驶技术的未来
- [1. Apollo 里程碑](#1. Apollo 里程碑)
- [2. 开放平台架构](#2. 开放平台架构)
- [3. Apollo 开放平台使用文档](#3. Apollo 开放平台使用文档)
-
- [3.1 如果您想快速使用上 Apollo](#3.1 如果您想快速使用上 Apollo)
- [3.2 如果您想了解 Apollo 源代码](#3.2 如果您想了解 Apollo 源代码)
- [4. 下一步](#4. 下一步)
- [5. 文档意见反馈](#5. 文档意见反馈)
1. Apollo 里程碑
从 2017 年 4 月 Apollo 开放计划宣布到现在,历经5年,Apollo 已经发布了12个版本到了 Apollo 8.0,持续的在多维度创新
。 这5年分为3个阶段。第一阶段是从最开始的封闭场地循迹自动驾驶到2.0的简单城市路况,Apollo搭建了基础的自动驾驶基础能力;第二阶段是从2.5限定区域视觉高速到6.0 EDU的教育专版,Apollo积累了丰富的场景能力。第三阶段,从7.0 开始,Apollo专注提升工程易用性,从开发者实际需求出发,帮助更多开发者更好更快的使用Apollo。每一次的升级都将自动驾驶开放平台的能力边界从多维度向外拓展。
2. 开放平台架构
为了更好的使用 Apollo,需要您简单了解一下开放平台的架构。以下为 Apollo 8.0 最新架构图,其分别由硬件设备平台、软件核心平台、软件应用平台和云端服务平台四层组成
。
- 硬件设备平台:帮助开发者解决 Apollo 自动驾驶系统搭建过程中的线控车辆以及传感器等硬件设备问题;对于车辆硬件设备而言,又包括认证线控车辆和开放车辆接口标准两个部分。对于其他硬件设备而言,包括传感器、计算单元等各类参考硬件和硬件标准。详细信息可以参考 Apollo 硬件开发平台。
- 软件核心平台:Apollo 软件核心平台提供了自动驾驶车端软件系统框架与技术栈。其包括底层的操作系统,中间层的实时通信框架,以及上层的自动驾驶应用层,如感知、预测、规划、控制、定位等。
- 软件应用平台:
Apollo 软件应用平台提供了面向不同应用场景的工程以及自动驾驶应用模块的能力扩展
。通过应用平台层,开发者可以更方便得基于Apollo各模块能力进行裁剪组合并扩展。 - 云端服务平台:Apollo 云端服务平台提供了自动驾驶研发过程中的研发基础设施,提升自动驾驶研发效率。
自动驾驶与传统互联网软件研发不同,一是实车测试成本高,二是数据量非常大。而一套能够满足自动驾驶开发流程需求,并提升研发效率的研发基础设施就非常之重要。
Apollo 云端服务平台通过云端的方式解决了数据利用效率的问题,通过与仿真结合降低了实车测试成本,能够极大的提升基于 Apollo 的自动驾驶研发效率。从研发流程上讲,Apollo 车端通过数据采集器生成开放的数据集,并通过云端大规模集群训练生成各种模型和车辆配置,之后通过仿真验证,最后再部署到 Apollo 车端,无缝连接。这整个过程其实包含了 2 个迭代循环,一个是模型配置迭代,一个是代码迭代,都通过数据来驱动
。
根据 Apollo 开放的能力和提供的服务,开发者可以既省心又省力的快速搭建和部署自己的自动驾驶系统。
3. Apollo 开放平台使用文档
本文档旨在让开发者全面的了解 Apollo 的学习使用。
Apollo 开放平台为开发者提供预先编译好的 Apollo 安装包,节省大量的编译时间,环境的部署准备时间从天级别降低到小时级
。开发者在下载安装包并安装好 Apollo 之后,便可以在本地电脑上实践 Apollo 。
- 基于 Apollo 可视化交互工具 Dreamview 做本地的PNC仿真实践。
- 基于云端仿真平台 Dreamland 的在线仿真实践。
- 基于 Apollo 可视化交互工具 Dreamview 做感知开发调试实践。
在硬件的选型上,开发者可以参考 Apollo硬件开发平台 和 Apollo开放车辆认证平台 来搭建自己的自动驾驶系统硬件;为了更加省心,推荐您使用底盘和传感器套件一体的 Apollo D-KIT
。开发者搭建自动驾驶车辆的过程中,也可以使用 Apollo Fuel 自动驾驶研发云 来完成诸如车辆动力学标定、传感器标定等搭建流程,以提升研发效率。
3.1 如果您想快速使用上 Apollo
您可以参考本文档一步步完成 Apollo 8.0的安装、快速上手 Apollo 和上机使用。相信这些文档会帮助您更加深入的了解 Apollo 的各个核心模块的能力。
文档结构
- 发版说明:每次发版更新内容的简介。
- 安装说明:关于如何安装 Apollo 软件包以及源码的说明文档。
- 使用指南:概述上机实践及上车实践。通过上级实践,可以方便的进行感知、决策规划等各模块开发与仿真验证。
上车实践介绍 Apollo 车辆适配流程,你可以掌握自动驾驶线控设计,并最终开发出适配 Apollo 的线控车辆
。之后,通过车辆硬件集成、标定、循迹流程,可以完成车辆集成闭环验证。最后,通过实车自动驾驶闭环流程,可以了解车辆安全操作、测试流程以及定位、控制调车。 - 应用实践:介绍自动驾驶通信的应用实践案例以及上车实践操作。
- 数据格式:解释 Apollo 各模块间通信的 channel 的数据格式以及各模块配置参数的含义。
- 软件包简介:解释 Apollo各种软件包区别及使用软件包二次开发的实践操作。
3.2 如果您想了解 Apollo 源代码
如果您想从底层了解 Apollo 甚至为 Apollo 代码库做贡献,那么您可以参考 Apollo Github 库 的源码及相关资料。
Apollo Github 库为开发者提供丰富的技术文档、使用指南和开放的源代码。
4. 下一步
现在您已了解 Apollo 开放平台以及 Apollo 文档的相关内容。 接下来,开发者可以参考 安装说明安装 Apollo 了。
最后别忘记加入 Apollo 开发者社区,社区有大量的资料供开发者阅读使用。
5. 文档意见反馈
如果您在使用文档的过程中,遇到任何问题,请在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。
更全面的Apollo社区官网文档
Apollo社区官网文档,主要为新手开发者提供Apollo相关介绍、以及上机场景和上车场景的实践说明,让新手开发者能快速了解Apollo并上手实操
。在8.0中,我们优化了社区官网文档的结构,从开发者使用场景出发,针对不同场景提供应用实践案例指导以及扩展开发指导。
社区官网文档:https://apollo.baidu.com/community/Apollo-Homepage-Document/Apollo_Doc_CN_8_0。
另外还有活动任务《星火培训》:星火培训。
Apollo 8.0从"新架构"、"新能力"两个重要层面进行了全面升级,从开发者的实际需求出发进行改良,帮助开发者更好、更快地熟悉和使用Apollo开放平台。此次Apollo开放平台8.0的推出,再次让Apollo开放平台在工程易用性上向前迈进一大步,降低操作难度、操作成本的门槛,让更多开发者可以简单方便地上手Apollo开放平台、投身自动驾驶技术领域。
如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下⭐,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。