【Apollo】阿波罗自动驾驶:塑造自动驾驶技术的未来

前言
Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。
开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、成熟、安全的自动驾驶技术和数据开放给业界,旨在建立一个以合作为中心的生态体系,发挥百度在人工智能领域的技术优势,为合作伙伴赋能,共同促进自动驾驶产业的发展和创新。
Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等自动驾驶软件能力以及高精地图、仿真、数据流水线等自动驾驶云服务,帮助开发者从 0 到 1 快速搭建一套自动驾驶系统。
📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看
📘相关专栏C语言初阶、C语言进阶系列等,大家有兴趣的可以看一看
📙Python零基础入门系列,Java入门篇系列正在发展中,喜欢Python、Java的朋友们可以关注一下哦!
塑造自动驾驶技术的未来
- 1. Apollo 里程碑
- 2. 开放平台架构
- 3. Apollo 开放平台使用文档
- 3.1 如果您想快速使用上 Apollo
- 3.2 如果您想了解 Apollo 源代码
- 4. 下一步
- 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开放平台、投身自动驾驶技术领域。
如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下⭐,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。
相关文章:
【Apollo】阿波罗自动驾驶:塑造自动驾驶技术的未来
前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…...
JavaEE初阶:多线程 - Thread 类的基本用法
上次我们了解了多线程的五种创建方法,今天来学习Thread的基本用法。 目录 run和start Thread常见的构造方法 Thread的几个常见属性 后台线程 是否存活 线程终止 1.使用标志位 2.使用Thread自带的标志 等待线程 run和start 首先需要理解Thread的run和star…...
编写 loading、加密解密 发布NPM依赖包,并实施落地使用
你的 Loading 开箱即可用的 loading, 说明:vue3-loading 是一个方便在 Vue 3 项目中使用的加载指示器组件的 npm 插件。它允许您轻松地在项目中添加加载动画,提升用户体验。 目录 你的 Loading🌍 安装🛹 演示地址&…...
【剑指Offer 57】和为s的连续正数序列,Java解密。
LeetCode 剑指Offer 75道练习题 文章目录 剑指Offer:和为s的连续正数序列示例:限制:解题思路:剑指Offer:和为s的连续正数序列 【题目描述】 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首…...
深度学习实战基础案例——卷积神经网络(CNN)基于SqueezeNet的眼疾识别|第1例
文章目录 前言一、数据准备1.1 数据集介绍1.2 数据集文件结构 二、项目实战2.1 数据标签划分2.2 数据预处理2.3 构建模型2.4 开始训练2.5 结果可视化 三、数据集个体预测 前言 SqueezeNet是一种轻量且高效的CNN模型,它参数比AlexNet少50倍,但模型性能&a…...
麦肯锡发布《2023年度科技报告》!
在经历了 2022 年技术投资和人才的动荡之后,2023 年上半年,人们对技术促进商业和社会进步的潜力重新燃起了热情。生成式人工智能(Generative AI)在这一复兴过程中功不可没,但它只是众多进步中的一个,可以推…...
JAVASE---数组的定义与使用
数组的基本概念 什么是数组 数组是具有相同类型元素的集合,在内存中连续存储。 1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3. 每个空间有自己的编号,起始位置的编号为0,即数组的下标 数组的创建及初始化 数组的创建 T[…...
211、仿真-基于51单片机土壤湿度智能盆栽灌溉报警Proteus仿真设计(程序+Proteus仿真+配套资料等)
毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&am…...
记录TensorRT8.5.0安装
1.下载网址NVIDIA TensorRT 8.x Download | NVIDIA Developer TensorRT不同的版本依赖于不同的cuda版本和cudnn版本。根据自己电脑的cuda版本和cudnn版本来决定要下载哪个TensorRT版本 查看cudnn版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 cat /usr/l…...
flutter ListView 滚动到最后一个items位置
flutter 想要实现一个listview初始化时和数据变化后显示到列表的最末,简单地说就是像聊天窗或者是日志输出那样的情景。 要在Flutter中实现在初始化时和数据变化后将ListView自动定位到最后一个item的位置,你可以使用ScrollController来控制滚动位置&am…...
WMS:SurfaceView绘制显示
WMS:SurfaceView绘制显示 1、SurfaceView控件使用1.1 Choreographer接受VSync信号1.2 自定义SurfaceView1.3 结果 2、SurfaceView获取画布并显示2.1 SurfaceHolder.lockCanvas()2.2 SurfaceHolder.unlockCanvasAndPost(Canvas canvas) 1、SurfaceView控件使用 1.1 Choreograph…...
【Spring系列篇--关于IOC的详解】
目录 面试经典题目: 1. 什么是spring?你对Spring的理解?简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 2.什么是IoC?你对IoC的理解?IoC的重要性?将实例化对象的权利从程序员…...
__ob__: Observer 后缀的数组的取值方式
开发中,经常从接口、父组件中,拿到数组然后给新的数组使用, 但是,有时候会发现带有 __ob__: Observer 后缀的数组,对这种数组来说,你是无法取到这个数组的值的, 而且,离谱的是consol…...
时序预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络时间序列预测
时序预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计学习总结参考资料 预测效果 基本介绍 时序预测 | MATLAB实现…...
Java基础知识点
Java是一种高级计算机语言,是可以编写跨平台应用软件、完全面向对象的程序设计语言。 2、Java划分为三个技术平台:Java SE、Java EE、Java ME Java SE是桌面应用,Java EE是web应用,平台企业版,Java ME是手机应用&#…...
攻防世界-web-fileclude
1. 题目描述 打开链接,可以看到如下代码: 代码意思很简单,让我们传递两个参数,一个file1,一个file2,如果file2的内容为hello ctf,那么就可以在代码中include file1 2. 思路分析 这道题显然是…...
【100天精通python】Day36:GUI界面编程_高级功能操作和示例
专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html 一、GUI 高级功能 1 自定义主题和样式 自定义主题和样式可以让你的GUI应用程序在外观方面更加出色。在使用Tkinter时,你可以使用ttkthemes库来应用不同的主题和样式。…...
无涯教程-Perl - sub函数
描述 此函数定义一个新的子例程。上面显示的参数遵循以下规则- NAME是子例程的名称。可以在有或没有原型规范的情况下预先声明命名的子例程(没有关联的代码块)。 匿名子例程必须具有定义。 PROTO定义了函数的原型,调用该函数以验证提供的参数时将使用该原型。 ATTRS为解析…...
wpf控件上移下移,调整子集控件显示顺序
页面代码: <!-- 导出A2,自定义导出设置列,添加时间:2023-8-9 14:14:18,作者:whl; --><Window x:Class="WpfSnqkGasAnalysis.WindowGasExportA2"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:/…...
cesium学习记录08-鼠标绘制多边形
上一篇学习了实体的一些基础知识,这一篇来学习鼠标绘制实体多边形的实现 一、方法一: 1,结果显示 贴地: 不贴地: 2,方法全部代码: 主方法: /*** 绘制多边形* param {Object} op…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
