共计 1380 个字符,预计需要花费 4 分钟才能阅读完成。
1. Apollo 平台概述
Apollo 是百度开源的自动驾驶平台,自 2017 年发布以来已成为全球最活跃的自动驾驶开源项目之一。它的架构设计遵循模块化理念,主要包含以下核心组件:
- 感知模块:通过激光雷达、摄像头等传感器获取环境数据
- 预测模块:预判周围车辆和行人的运动轨迹
- 规划模块:生成安全舒适的行驶路径
- 控制模块:将规划结果转化为车辆控制指令

2. 环境搭建
2.1 系统要求
推荐使用 Ubuntu 18.04/20.04 LTS,硬件配置建议:
- CPU: 4 核以上
- 内存: 8GB 以上
- 显卡: NVIDIA GPU(可选)
2.2 安装步骤
-
安装 Docker 和 NVIDIA 容器工具包(如使用 GPU)
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io -
下载 Apollo 源码
git clone https://github.com/ApolloAuto/apollo.git cd apollo -
启动 Docker 容器
bash docker/scripts/dev_start.sh -
进入容器并编译
bash docker/scripts/dev_into.sh ./apollo.sh build
3. 第一个 Demo:循迹行驶
Apollo 提供了多个演示场景,我们以基础的循迹行驶为例:
-
启动 Dreamview(可视化界面)
bash scripts/bootstrap.sh -
选择车辆和地图
- 在浏览器打开
localhost:8888 -
选择
Lincoln2017MKZ车型和Sunnyvale Loop地图 -
开启循迹模式
cyber_launch start modules/control/launch/control.launch
4. 代码解析
关键代码位于 modules/control 目录,消息传递通过 Cyber RT 框架实现:
// 控制指令发布
auto control_command = std::make_shared<ControlCommand>();
control_command->set_throttle(0.5);
control_command_writer_->Write(control_command);
Apollo 使用 protobuf 定义消息格式,各模块通过 channel 通信:
message ControlCommand {
optional double throttle = 1;
optional double brake = 2;
optional double steering_rate = 3;
}
5. 常见问题
5.1 编译失败
- 确保所有依赖已安装
- 尝试
./apollo.sh clean后重新编译
5.2 Dreamview 无法打开
- 检查端口 8888 是否被占用
- 确认 Docker 容器正常运行
5.3 传感器数据异常
- 校准传感器参数
- 检查硬件连接
6. 进阶学习
推荐资源
- 官方文档:https://github.com/ApolloAuto/apollo
- 在线课程:Coursera 自动驾驶专项
- 社区论坛:Apollo 开发者社区
思考题
- 如何修改规划算法使车辆行驶更平稳?
- 当多个传感器数据冲突时,融合模块如何处理?
- 如何扩展 Apollo 支持新的车型?
通过本指南,你应该已经完成了 Apollo 的基础环境搭建和第一个 Demo 的运行。建议下一步尝试修改控制参数观察车辆行为变化,这是理解自动驾驶系统工作逻辑的好方法。
正文完
