一、课程导论与环境全景:Apollo与ROS2协同联调的价值、技术栈全景图、课程目标与前置知识

1.1 为什么我们要讲Apollo与ROS2协同联调?

说实话,这个问题我思考了很久。

我在自动驾驶行业摸爬滚打了七八年,从最早的ROS1时代一路走过来。那时候大家做原型验证,ROS1确实够用。但到了量产阶段,问题就来了——实时性不够、可靠性堪忧、多节点通信动不动就丢包。我记得有一次路测,因为ROS1的节点管理器挂了,整个感知链路直接瘫痪,车差点撞上护栏。嗯,那次之后,团队内部吵了整整一周。

后来百度开源了Apollo,带来了Cyber RT这套通信框架。它解决了ROS1的很多痛点:去中心化、协程调度、共享内存通信。但问题又来了——Apollo的生态相对封闭,你想接入一个基于ROS2开发的激光雷达驱动?对不起,得自己写桥接层。

所以,我个人习惯的做法是:用ROS2做传感器驱动和工具链,用Apollo Cyber RT做核心算法调度。两者协同,各取所长。这就是这门课要讲的核心价值。

核心观点:ROS2负责「灵活接入」,Apollo负责「稳定运行」。两者不是替代关系,而是互补关系。

1.2 技术栈全景图:你将要面对什么?

先给你一张全景图,看看我们这门课涉及哪些技术模块。我习惯用一张图把整个体系串起来,这样心里有数。

Apollo与ROS2协同联调技术栈全景图 应用层 感知 | 定位 | 规划 | 控制 | 预测 通信与调度层(核心) Apollo Cyber RT 协程调度 · 共享内存 · 去中心化 ROS2 (Humble/Foxy) DDS · QoS · 节点发现 · 生命周期 桥接层:cyber_bridge / 自定义适配器 驱动与硬件层 激光雷达 · 摄像头 · IMU/GNSS · 毫米波雷达 · 底盘CAN 上层 底层 工具链 rviz2 · cyber_visualizer rosbag · cyber_recorder 课程核心 数据流打通 · 时间同步 节点互调 · 联合调试

这张图你看懂了吗?说白了,整个技术栈分三层:

  • 底层驱动:传感器和底盘,这部分我建议用ROS2驱动,因为生态丰富,社区活跃。比如livox的激光雷达驱动,ROS2版本维护得很好。
  • 中间通信层:这是联调的核心。Apollo Cyber RT跑核心算法,ROS2跑外围模块。两者通过桥接层交换数据。
  • 上层应用:感知、规划、控制等算法模块。你可以选择全部用Apollo,也可以混搭。

个人经验:我在做园区无人车项目时,就是ROS2驱动 + Apollo规划控制的组合。ROS2负责接入3个激光雷达和2个摄像头,Apollo负责路径规划和车辆控制。桥接层用了不到500行C++代码就搞定了。效果?比纯ROS2方案延迟降低了40%。

1.3 课程目标:学完你能做什么?

这门课不是讲理论,是讲实战。学完之后,你应该能:

  1. 独立搭建一套ROS2 + Apollo的混合开发环境
  2. 编写桥接代码,让ROS2的topic和Apollo的channel互通
  3. 实现时间同步,解决多传感器数据对齐问题
  4. 进行联合调试,用rosbag和cyber_recorder分析问题
  5. 部署到实车,跑通一个完整的感知到控制闭环

一句话总结:从「只会用ROS2做demo」到「能搞定量产级自动驾驶系统联调」。

1.4 前置知识:你需要会什么?

嗯,这里我得说清楚。这门课有一定门槛,不是零基础教程。你需要具备:

知识领域 具体要求 备注
C++编程 熟悉C++11/14,能看懂智能指针、lambda、多线程 如果只会Python,建议先补一下
ROS2基础 知道节点、话题、服务、动作的概念,写过简单的发布订阅 我用的是Humble版本
Linux操作 熟练使用命令行、vim、cmake、gdb Ubuntu 22.04最佳
Apollo基础 了解Cyber RT的基本概念,能跑通官方demo 不要求深入源码

避坑指南:我曾经带过一个学员,ROS2和Apollo都是零基础,结果第一周光配环境就花了5天。后来我建议他先花两周分别熟悉两个框架,再回来学联调。所以,请务必确认自己满足前置条件。

1.5 课程整体安排

这门课一共10章,我按「环境搭建 → 单框架深入 → 桥接通信 → 联合调试 → 实车部署」这条线来组织。每一章都有可运行的代码和实验。

你想想看,如果只是听我讲,不动手,那肯定学不会。所以每章结尾我都会留一个「动手实验」环节。别偷懒,真的去敲代码。

好了,导论就到这里。下一章我们开始搭环境——Ubuntu、ROS2、Apollo 8.0,一个都不能少。准备好你的电脑,至少16GB内存,200GB硬盘。嗯,别问我为什么,到时候你就知道了。

我的建议:准备一个笔记本,把每章遇到的坑记下来。我自己的「避坑笔记」已经写了300多页,现在翻看都觉得值。


可可精品资料库