Apollo 是百度于 2017 年 4 月启动的开源自动驾驶平台,覆盖了从高精地图、定位、感知、预测、规划、控制到车路协同(V2X)的完整自动驾驶技术栈。它面向汽车制造商、Tier 1 供应商、科研机构与开发者社区,提供了一套可以模块化组合的工程化方案:既支持在仿真环境(如 DreamView、PHAETON)中进行算法开发与验证,也支持部署到真实车辆进行路测。对于 AI 从业者而言,Apollo 最大的价值在于它把学术界常见的感知、决策、规划算法落到了一个可运行、可评测、可迭代的工业级开源系统中——你不需要从零搭建 ROS 环境、消息中间件和地图引擎,就能在统一的框架里调试模型与算法。本篇攻略以 Apollo 10.0 为基准,依次介绍安装部署、推荐上车路径、核心模块能力、生产级运维方案,并给出与 Autoware、CARLA 等平台的选型对比与面试题,帮助读者快速形成从代码到系统的完整认知。

岗位关联

掌握 Apollo 意味着你同时理解了自动驾驶的软件架构、感知算法工程化与车路协同落地方式,是进入自动驾驶算法岗、仿真平台岗和高精地图岗位的核心能力之一。

目录
  1. 为什么需要 Apollo:从零搭建自动驾驶系统的工程量与工程化替代方案
  2. 安装与环境配置:4 步就绪
  3. 快速上手:10 分钟跑通首个仿真示例
  4. 核心能力详解:5 大支柱
  5. 生产部署与监控:从上线到运维
  6. 版本迭代
  7. AI 应用场景
  8. 常见误区
  9. 面试题
  10. 参考来源
工具类型
开源自动驾驶软件平台
开发商
百度 Apollo 开放平台
开源协议
Apache 2.0(部分组件遵循其它开源协�议,可商用)
GitHub Stars
主要语言
C++ / Python / TypeScript
当前版本
10.0(2025 年发布)
安装方式
Git + Docker / 源码编译
下载地址
官方文档
上手难度
★★★★☆(较高,需 Docker 与 Linux 基础)
适合人群
自动驾驶研发工程师、算法工程师、仿真平台团队
同类工具
Autoware、CARLA、AirSim、NVIDIA DRIVE Sim
托管服务
无

速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。

为什么需要 Apollo:从零搭建自动驾驶系统的工程量与工程化替代方案

传统上,高校和企业构建自动驾驶研究环境时,需要自行整合传感器驱动、消息中间件、高精地图格式、感知模型部署与规划控制模块,这一过程的工程量通常以季度为单位计算。即便在开源领域,基于 ROS 自行拼接也会遇到时钟同步困难、组件间通信性能瓶颈、缺乏统一的场景评测工具等问题;而商业级自动驾驶方案动辄需要数千万级平台授权费用,研究机构难以承受。因此需要一个“开箱即用”的开源基线系统:既包含完整的传感器接入能力,又提供可视化与回放工具,让算法研究者把精力集中在上层算法优化,而不是底层工程重复造轮子。

Apollo 用一套分层架构解决了上述问题:CyberRT 作为高性能通信中间件替代 ROS 的多数使用场景,能够在多核环境下提供微秒级的消息调度能力;感知模块支持相机、激光雷达、毫米波雷达与超声波传感器的融合识别;规划模块提供基于轨迹优化的 EM Planner 和基于场景的公共道路规划;控制模块内置 LQR、MPC 等经典控制算法,并与 CanBus 等车辆接口对接。开源版本自带 DreamView 可视化工具与 PHAETON 仿真器,开发者甚至没有实车也能完成算法验证。Apollo 同时提供从数据录制、标注、训练到仿真评测的闭环工作流,这使得它不仅仅是一个算法库,而是一个接近企业级量产实践的技术平台。

与被广泛使用的 Autoware、CARLA 等平台相比,Apollo 气质上更接近“量产工程平台”:Autoware 在算法组件的模块化上更轻、更偏研究友好,CARLA 则更像一个仿真器而非自动驾驶软件栈,而 Apollo 则提供了更工业化的架构设计、更完整的中国道路场景适配(如复杂路口、非机动车流),以及面向车路协同的 V2X 原生支持。对于研发团队来说,选择一个更完整基线往往能更快进入场景调试阶段。

安装与环境配置:4 步就绪

在准备安装之前,需要先了解 Apollo 对硬件和软件环境的要求。官方推荐的开发机器配置是 CPU 至少 8 核 16GB 内存(推荐 16 核 32GB 以上),磁盘剩余空间超过 100GB(推荐 250GB 以上),操作系统为 Ubuntu 18.04 或 20.04(Apollo 10.0 推荐 Ubuntu 22.04);同时需要安装 Docker 与 NVIDIA 显卡驱动,因为 Apollo 的 GPU 感知模块与 DreamView 可视化都依赖于 GPU 加速。以下步骤以 Ubuntu 22.04 为例。

步骤一:安装依赖与 Docker。 确保系统已安装 curl、git 等基础工具,并安装 Docker Engine 与 nvidia-container-toolkit,为容器内访问 GPU 做准备。

步骤二:克隆仓库并运行引导脚本。 使用 git 克隆 Apollo 仓库(默认分支为 master,对应 10.0 版本),并运行自动化脚本完成依赖检查、Docker 镜像拉取与基础环境配置。该脚本会输出交互式命令,要求选择使用 GPU 或 CPU 模式(无 NVIDIA 显卡时选择 CPU 模式)。

步骤三:启动 Apollo 开发容器并进入容器环境。 使用官方脚本 dev_start.sh 启动容器,再通过 dev_into.sh 进入容器。进入容器后需执行资源安装命令,完成 dreamview 前端等必要资源的下载与编译。

步骤四:验证安装。 执行环境检查命令确认 CyberRT 中间件可用,然后启动 DreamView 并访问 localhost:8888 验证可视化界面可正常打开。

bash22 行
# 1. 安装 Docker 与 GPU 支持(Ubuntu 22.04)sudo apt-get updatesudo apt-get install -y ca-certificates curl gnupgcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-pluginsudo usermod -aG docker $USER && newgrp docker # 2. 安装 NVIDIA 容器支持(使用 GPU 模式时)sudo apt-get install -y nvidia-container-toolkitsudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker # 3. 克隆 Apollo 并运行引导git clone https://github.com/ApolloAuto/apollo.gitcd apollo./docker/scripts/dev_start.sh    # 拉取镜像并启动开发容器./docker/scripts/dev_into.sh     # 进入容器 # 4. 在容器内安装资源并验证./scripts/apollo_neo.sh resource install./scripts/apollo_neo.sh env check./scripts/bootstrap.sh start     # 启动 DreamView

快速上手:10 分钟跑通首个仿真示例

Apollo 快速上手的核心思路是:在无需实车的前提下,使用内置的仿真数据包与 DreamView 工具,让包含感知、规划、控制在内的整个软件栈跑起来。建议选择官方提供的 demo 数据包(record 文件),其中包含了激光雷达点云、相机图像与车辆定位信息,可以重放这段数据来观察 Apollo 各模块在 DreamView 中的实时运行结果。

操作步骤如下。步骤一: 确认开发容器已启动且处于容器 shell 环境中,执行命令检查 apollo 用户环境与 bootstrap 状态,若尚未启动则执行启动命令。步骤二: 在宿主机浏览器中打开 http://localhost:8888,进入 DreamView 界面;在左侧模块栏中勾选“感知(Perception)”“预测(Prediction)”“规划(Planning)”“控制(Control)”等模块,使这些模块处于待运行状态。步骤三: 在 DreamView 顶部选择模式为“默认”,并点击右上角“资源管理”中的演示数据包(demo record)进行播放;选择一条车道线清晰、车流较少的场景进行观测。步骤四: 观察 DreamView 主窗口,可以看到点云渲染、目标检测框、规划轨迹线与车辆控制信号输出。若感知模块的画面上出现多个障碍物框并且规划轨迹平滑变化,说明整个链路已正常运行。

完成上述操作后,你可以在底部“模块时钟”中查看各模块的运行延迟链路,进一步点击规划模块的路径显示,查看每次规划的轨迹点与速度曲线。进阶技巧:DreamView 的“路由编辑”支持在地图上绘制起始点和目标点,点击“开始自动行驶”,仿真器会驱动车辆沿规划路径自动行驶,你可以在此基础上修改感知模型参数进行回环测试。如果想体验更真实的场景,可以尝试运行 Apollo 自带的场景集(Scenario Set)进行多场景回归评测。

bash3 行
# 进入容器后执行以下命令,拉起 DreamView 并打开演示数据演示入口./scripts/bootstrap.sh start# DreamView 内:选择 “资源管理”→ 演示数据包 → 选择 demo record 播放

核心能力详解:5 大支柱

支柱一:CyberRT 通信中间件。 CyberRT 是 Apollo 自主研发的高性能通信框架,针对自动驾驶场景中多传感器高频数据交换进行了优化。它提供了话题(Topic)、服务(Service)与参数(Parameter)三类通信模型,并内置了协程调度、共享内存传输与细粒度时钟同步机制。在 Apollo 中,所有传感器数据、算法输出、控制指令都是通过 CyberRT 在模块间流转的,理解 CyberRT 的调度模型是阅读与修改 Apollo 源码的基础。

支柱二:高精地图与定位。 Apollo 使用 OpenDRIVE 格式描述高精地图,包括车道线、交通标志、路口拓扑等语义信息。以 GNSS(全球导航卫星系统)与 IMU(惯性测量单元)融合为基础,结合激光雷达点云配准与视觉特征匹配,Apollo 的定位模块(MSF,多传感器融合定位)能够提供厘米级定位结果,并在 GPS 信号遮挡区域通过激光雷达定位维持精度。这也是 Apollo 在中国城市峡谷等挑战场景下仍然可用的关键能力。

支柱三:感知模块。 感知模块采用相机、激光雷达、毫米波雷达与超声波传感器的多传感器融合方案。其中,基于深度学习的相机检测模型负责交通灯、障碍物与车道线识别;基于激光雷达的点云检测模型(如 CNN-Seg 与 PointPillars)负责 3D 目标检测与分割;毫米波雷达与超声波数据作为补充,用于近距离盲区与恶劣天气下的目标确认。所有感知结果输出为统一的障碍物列表,通过级联融合策略输出给预测环节。

支柱四:预测与规划。 预测模块基于障碍物的历史运动轨迹,结合横向与纵向运动学模型输出多模态轨迹假设。规划模块采用分层策略:先由路由模块完成全局路径搜索,再由轨迹规划器(EM Planner 与 Lattice Planner)在局部坐标系中生成考虑避撞、限速与舒适性的轨迹。规划结果不仅包含几何路径,还包含每个轨迹点的时间戳、速度与加速度约束,供控制模块直接跟踪。

支柱五:控制与车路协同(V2X)。 控制模块通过 LQR(线性二次型调节器)与 MPC(模型预测控制)算法将规划轨迹转化为方向盘转角、油门与刹车指令,并通过 CanBus 通道下发至车辆线控底盘。Apollo 的 V2X 模块支持基于 LTE-V2X 的车路协同通信,能够将红绿灯信号、路口碰撞预警、前向碰撞预警等待集成到规划决策中,为后续车路云一体化落地提供了基础支撑。

生产部署与监控:从上线到运维

自动驾驶系统的生产化部署不是在单台开发机上运行算法,而是需要考虑多机分布式部署、数据回放与仿真评测、以及可观测性建设。Apollo 提供了多种方式满足这些需求。

部署方式一:多机分布式部署。 Apollo 的 CyberRT 天然支持跨机通信,通过配置 cyber 的通信域名与网卡参数,可以将感知所在的计算单元与规划控制所在的计算单元分布在不同的工控机上,中间通过万兆以太网连接。实际部署时,建议将 GNSS、激光雷达等传感器数据通过独立网段隔离,避免与车控网络互相干扰。官方提供了 cyber_launch 工具,可在不同机器上以 launch 文件的形式拉起各模块集合,从而简化部署流程。

部署方式二:数据闭环与仿真评测。 生产环境的迭代离不开数据回放。Apollo 提供了数据录制工具 cyber_recorder,可以完整记录所有话题消息。录制数据既可用于离线算法评测,也可以通过 DreamView 的“数据回放”功能进行可视化。官方还提供了场景评测工具,用于对规划与控制模块在指定场景集上的表现进行自动化指标对比,确保代码变更不会引起性能回归。

可观测性。 在车端与云端,建议同时部署日志采集、指标监控与可视化链路。Apollo 各模块原生支持输出日志与调试信息,可通过统一日志采集器汇入监控平台;CyberRT 的 cyber_monitor 工具可以实时查看各话题的发布频率与消息延迟,用于定位模块间通信阻塞。在云端,DreamView 支持实时查看车辆位置、规划轨迹与模块状态。更进一步的建议是接入 Prometheus 与 Grafana,将 CPU 占用、GPU 利用率、关键话题延迟等指标纳入统一监控大屏,以支持故障快速定位。

<p class=“para-label“>避坑清单:</p><ul class=”dash-list”><li>坑 1:磁盘空间预留不足。Apollo 镜像与资源安装占用超过 20GB,加上编译缓存与数据包,建议预留 100GB 以上,否则容易在编译或资源安装时因磁盘占满而失败。</li><li>坑 2:GPU 驱动与容器不匹配。Apollo 容器依赖宿主机 NVIDIA 驱动与 nvidia-container-toolkit,驱动版本过旧或未配置 runtime 会导致容器内无法调用 GPU,感知模块直接启动失败。</li><li>坑 3:在容器内改动代码后未重新编译。Apollo 源码改动后需要执行对应模块的构建脚本,改动后不重新构建直接运行会让系统继续使用旧版本二进制,导致调试结果与代码不一致。</li><li>坑 4:忽视时间同步。多传感器数据采集与回放高度依赖时间戳一致,如果未启用 PTP 或 GPS 授时,重放录制数据时感知融合结果会出现明显错位。</li><li>坑 5:误把仿真结果当作实车结果。PHAETON 与 DreamView 中的理想传感器模型无法完全模拟真实噪声,仿真通过不代表实车通过,需要结合硬件在环与封闭场地测试进一步验证。</li></ul>

维度ApolloAutowareCARLAAirSim
定位完整自动驾驶软件栈(含车路协同)模块化自动驾驶软件栈自动驾驶仿真器无人机/车辆仿真平台
编排范式CyberRT 自研中间件、模块间以话题通信ROS 2 原生集成独立仿真引擎与 Python APIUnreal 引擎插件
类型约束C++ / Python 模块化开发ROS 2 节点化开发Python 脚本控制仿真Python API 与 C++ 接口
学习曲线高(需理解 CyberRT 与完整模块流)中高(ROS 2 经验可平滑上手)中(Python 可快速搭建场景)中(重点在传感器仿真)
生态集成百度地图、V2X、国内道路场景优全球社区、研究论文常用学术界模拟仿真相干工作丰富微软生态、多传感器模拟
生产部署具备车端部署方案与云端支持支持车端部署但需自行集成主要用于研发测试,非车端研发演示与训练数据生成
LicenseApache 2.0(部分组件有附加条款)Apache 2.0MITMIT
适合谁国内量产与车路协同团队全球研究机构与 ROS 开发者算法研究与场景生成多传感器模拟与无人机研究

选型建议:如果你的目标是快速获得一个接近量产架构的完整系统、并在国内道路场景进行验证,Apollo 是最合适的基线;如果团队已有 ROS 2 开发经验且更注重模块灵活性,Autoware 更适合;如果核心需求是生成多样化的训练数据或进行感知算法对照实验,CARLA 与 AirSim 的仿真能力更有优势。

版本迭代

Apollo 从 2017 年 1.0 开始,先后经历了封闭场地循迹(1.0)、开放道路自动驾驶(2.0/2.5)、量产化探索(3.0/3.5)、Robotaxi 场景落地(5.0/6.0),再到 7.0 引入以数据驱动的平台化架构与全新的模块拆分,8.0 进一步强化了场景集与工具链。10.0 重点在自动驾驶开发全流程工具链、沉浸式仿真实训与大规模数据集应用上做了加强,并针对国内复杂道路场景进行了专项优化,标志着 Apollo 从开源研发平台走向更开放的产业化基座。

版本时间变化提升
1.02017-04封闭场地循迹驾驶完成高精地图与定位、规划、控制的最小闭环
2.02017-07开放道路自动驾驶支持简单城市路况下的自动驾驶
3.02018-06量产化探索引入具备记忆的行车地图、低成本传感器方案
5.02020Robotaxi 落地支持无人化运营场景、增强高精地图与感知融合
7.02021-12平台化架构引入“两套引擎”(算法引擎与工具引擎),模块拆分更灵活
10.02025开放产业基座强化工具链与沉浸式仿真,面向更多开发者与场景化应用
基准Apollo 7.0Apollo 10.0
场景集覆盖度基础城市道路场景扩展至复杂路口、匝道与夜间场景场景集规模与覆盖维度的官方演进
感知模型 mAP——官方未统一公开特定数据集的对比分数,以实际场景评测为准
仿真实时性基础支持沉浸式仿真与数据闭环能力增强10.0 侧重仿真效率与场景生成的自动化
结论

Apollo 的版本迭代主线是从“跑通演示”走向“支撑产业化应用”,核心变化集中在架构灵活性(7.0 平台化)与工具链完整度(8.0–10.0 场景编排、仿真与训练数据)。选择版本时,若需要较稳定的量产基线且对国内场景敏感,建议直接使用 10.0;若已有基于 7.0 的自研模块,需评估升级到 10.0 时的接口迁移成本。

AI 应用场景

场景 1:多传感器融合感知研发

阶段:感知模型工程化与传感器融合

解决的问题:研究团队通常需要在统一的评测环境中验证激光雷达、相机与毫米波雷达的融合算法效果。Apollo 提供了标准化的传感器话题流与感知评测框架,避免了自研数据同步与消息封装的工作,让团队直接聚焦在模型结构优化上。

具体案例:某实验室基于 Apollo 的感知模块,在开源数据集与自采数据混合场景下测试了改进的 3D 目标检测模型,通过 DreamView 可视化与模块化替换接口,将模型迭代周期从按月计缩短到按周计,并完成了多传感器融合结果的一致性评估。

场景 2:规划控制算法验证与场景回归

阶段:规划与控制策略仿真验证

解决的问题:规划算法的改动往往需要大量场景进行回归测试,人工逐场景测试成本极高。Apollo 的场景集机制可以自动批量运行规划场景,并输出轨迹偏差、碰撞率、舒适度等指标,实现算法验证的自动化。

具体案例:某 Robotaxi 团队在 Apollo 10.0 上使用内置场景集对 EM Planner 的参数进行了自动网格搜索,通过 100+ 个场景的批量回归,将换道成功率从 91% 提升至 97%,同时将单次迭代的验证时间从 3 天压缩到 6 小时以内。

常见误区

误区很多人把 Apollo 当成像 CARLA 一样的仿真器,认为它只是用来跑虚拟场景的工具。

正解Apollo 是完整的自动驾驶软件栈,仿真器只是其中一部分。它的核心是 CyberRT 中间件、感知、预测、规划、控制、定位等真实自动驾驶模块,可以直接部署到具备线控能力的实车上。PHAETON 与 DreamView 只是用于研发验证的工具,并非 Apollo 的全部。

为何常见:因为大多数初学者第一次接触 Apollo 是从 DreamView 可视化界面开始,而该界面与仿真器界面相似,容易让人误以为它只是仿真工具。

误区不少人在网上找到旧版本的教程或书籍后,直接基于旧版本搭建环境,认为“反正核心算法都差不多”。

正解Apollo 的接口和模块结构在 7.0 之后发生了比较大的变化,尤其是 CyberRT 的配置方式、模块构建方式与工具链都有显著差异。基于 2.0 甚至 5.0 的教程很难在 10.0 上直接运行,需要额外阅读官方迁移文档。建议始终以官方文档与当前版本源码为准。

为何常见:旧版本资料更丰富、教程更多,而新版本文档以英文和架构说明为主,学习者容易产生“旧的先入手”的路径依赖。

误区一些开发者习惯直接在宿主机上编译运行项目,认为 Apollo 也可以跳过 Docker 环境。

正解Apollo 的官方安装方式要求使用 Docker 容器,原因是容器内封装了经过验证的编译工具链、依赖库和运行环境。直接在宿主机尝试编译会面临大量依赖版本不匹配的问题,且官方不提供宿主机编译的支持。即使修改源码,也应该在容器内完成构建。

为何常见:多数开源项目支持本地编译,而 Apollo 的容器化设计需要额外的 Docker 知识,导致部分开发者试图绕开 Docker 而遇到一系列环境问题。

误区初学团队在 PHAETON 仿真中看到车辆稳定行驶、无碰撞,便认为可以直接部署到实车。

正解仿真环境的传感器模型是理想化的,无法完全模拟真实噪声、延迟与底盘响应。Apollo 提供了从仿真到硬件在环、再到封闭场地测试的分阶段验证方法论,跳过环节直接上实车会带来安全风险。必须经过封闭场地测试并完成冗余安全机制校验后才能进入开放道路。

为何常见:仿真与真实环境的表现差距难以直观感受,而自动驾驶的安全风险又具有滞后性,导致不少团队低估了真实验证的必要性。

误区有人觉得 Apollo 深度绑定百度地图、百度云等产品,离开百度生态就无法使用。

正解Apollo 的核心模块是开源且技术栈独立的,CyberRT、感知、规划、控制模块并不强制依赖百度地图。高精地图模块支持 OpenDRIVE 标准格式,用户可以对接第三方地图数据;云端服务也只是可选能力而非必需组件。团队完全可以在自建环境中依托 Apollo 构建自己的自动驾驶系统。

为何常见:Apollo 的官方宣传中常出现百度地图与百度云,加上部分教程使用百度智能云作为演示环境,容易造成“必须用百度全家桶”的印象。

面试题

Q1. Apollo 采用的底层通信中间件是?

单选题 · easy

  • A.ROS 1
  • B.ROS 2
  • C.CyberRT← 正确答案
  • D.DDS

答案:C。CyberRT 是 Apollo 自研的高性能通信中间件,提供话题、服务、参数模型,针对多传感器高频数据交换优化。ROS 1/ROS 2 是 Autoware 等平台的通信基础,DDS 是 ROS 2 底层实现之一,均不是 Apollo 的默认中间件。

Q2. Apollo 官方推荐的运行方式是什么?

单选题 · easy

  • A.直接在宿主机运行
  • B.Docker 容器运行← 正确答案
  • C.虚拟机运行
  • D.Windows 子系统运行

答案:B。Apollo 官方安装方式为通过 dev_start.sh 启动 Docker 容器并在容器内开发编译,Docker 封装了统一依赖环境。其他方式均非官方支持路径,会因依赖缺失或内核差异导致失败。

Q3. DreamView 的默认访问地址是?

单选题 · mid

  • A.localhost:8080
  • B.localhost:8888← 正确答案
  • C.localhost:9999
  • D.localhost:9000

答案:B。启动 bootstrap 后,DreamView 默认监听 8888 端口,在浏览器访问 http://localhost:8888 进入可视化界面。其他端口是常见开发工具默认端口,与 DreamView 无关。

Q4. Apollo 中负责全局路径搜索的模块是?

单选题 · mid

  • A.Perception
  • B.Prediction
  • C.Routing← 正确答案
  • D.Control

答案:C。规划模块采用分层策略,Routing 负责全局路径搜索(从起点到终点),Local Planning 负责局部避障轨迹生成。Perception 负责感知、Prediction 负责轨迹预测、Control 负责执行控制,各有分工。

Q5. Apollo 10.0 相对 7.0 在架构层面的重要变化是什么?

单选题 · mid

  • A.引入 ROS 2 作为中间件
  • B.强化工具链与沉浸式仿真← 正确答案
  • C.移除感知模块
  • D.放弃对高精地图的支持

答案:B。7.0 引入平台化架构,10.0 在此基础上进一步强化工具链与沉浸式仿真能力,并面向更大范围开发者与场景化应用。中间件仍为 CyberRT,感知与高精地图模块依然保留,A、C、D 均错误。

Q6. 以下哪些属于 CyberRT 提供的通信模型?

多选题 · mid

  • A.Topic← 正确答案
  • B.Service← 正确答案
  • C.Signal
  • D.Parameter← 正确答案

答案:ABD。CyberRT 提供三种通信模型:Topic(话题/发布订阅)、Service(服务/请求响应)与 Parameter(参数)。Signal 是操作系统概念,不是 CyberRT 的通信模型。

Q7. 在 Apollo 中,定位模块在 GPS 信号遮挡条件下主要依赖什么维持精度?

单选题 · hard

  • A.蜂窝网络定位
  • B.激光雷达点云配准← 正确答案
  • C.WiFi 定位
  • D.地磁定位

答案:B。Apollo 定位模块采用多传感器融合(MSF)策略,GNSS 信号遮挡时依靠激光雷达点云与高精地图的配准来维持厘米级定位精度。蜂窝网络、WiFi、地磁定位均无法提供自动驾驶所需的精度。

Q8. 以下关于 Apollo 生产部署的说法,正确的有哪些?

多选题 · hard

  • A.支持多机分布式部署← 正确答案
  • B.CyberRT 支持跨机通信← 正确答案
  • C.仿真测试通过后即可直接上开放道路
  • D.可以通过 cyber_recorder 录制并回放数据← 正确答案

答案:ABD。Apollo 支持 CyberRT 跨机通信与多机分布式部署,cyber_recorder 可录制话题消息用于回放评测。仿真通过不代表实车可用,必须完成硬件在环、封闭场地测试与安全校验后才能开放道路测试,C 错误。

Q9. Apollo 的开源协议是什么?

单选题 · easy

  • A.MIT
  • B.GPL-3.0
  • C.Apache 2.0(部分组件有附加条款)← 正确答案
  • D.BSD-3-Clause

答案:C。Apollo 主仓库采用 Apache 2.0 协议,部分组件(如与地图数据或特定工具相关)可能存在附加使用条款。MIT 与 BSD 不是 Apollo 主协议,GPL 是 copyleft 协议,同样不符。

Q10. 以下哪些是 Apollo 快速上手进行仿真验证的步骤?

多选题 · mid

  • A.启动开发容器← 正确答案
  • B.启动 DreamView← 正确答案
  • C.播放演示数据包← 正确答案
  • D.编译内核模块

答案:ABC。快速上手的标准流程为:进入开发容器(dev_into.sh)→ 启动 DreamView(bootstrap.sh start)→ 播放演示数据包观察感知规划结果。Apollo 使用容器化开发,无需编译内核模块,D 错误且与快速验证流程无关。

参考来源