Aollo 开发环境搭建
本文介绍如何搭建 Baidu Apollo 的开发环境。
简介
Apollo 是一个高性能、灵活的架构,可加速自动驾驶汽车的开发、测试和部署。
本文撰写于 2025 年 7 月 7 日,基于 Apollo 10.0 版本。
环境
我使用的系统环境:
- Intel(R) Core(TM) i9-14900K
- NVIDIA GeForce RTX 2080 Ti
- Ubuntu 22.04.5 LTS
请自行安装 Docker Engine 和 GPU 支持,可参考 Docker 官方文档 和 Apollo安装指南[1]。
安装 Apollo 环境管理工具
Apollo 环境管理工具是一个帮忙管理和启动 Apollo 环境的命令行工具。
1. 安装依赖软件
1 |
|
2. 在宿主机添加 Apollo 软件源的 gpg key,并设置好源和更新
1 |
|
3. 安装 aem
1 |
|
安装成功后即可使用
1 |
|
安装示例工程
1. 选择示例工程
Apollo 目前提供了3个示例工程,您可以根据需要选择其一
application-core , 包含 Apollo 所有开源软件包,可以基于此工程搭建自己的应用
application-pnc , 仅包含规划控制相关的软件包,适合仅关注规划控制方向的用户
application-perception , 仅包含感知相关的软件包,适合仅关注感知方向的用户
另外也可以使用 Apollo 全量源码的工程 apollo
提示:从Apollo 10.0开始,源码模式和包模式采用同一套编译工具,我们建议您统一使用下面的命令进行编译和运行,源码模式下的dev_start.sh、dev_into.sh、apollo.sh等脚本不再建议使用。
2. 克隆工程
以 application-core 为例
1 |
|
3. 启动并进入 Apollo 环境
1 |
|
注意:本机模式下后面的操作和容器内是一致的。后续都可以在当前工程目录下执行 aem enter 命令进入环境,一个是进入docker容器,一个是进入一个apollo bash空间。
4. 安装软件包
示例工程中包含一个名为 core
目录,其中 core/cyberfile.xml
文件中描述了工程所依赖软件包,可以通过 buildtool 工具进行依赖包的安装
1 |
|
此操作真正含义是编译工程中
core
这个包,但core
本身并没有需要编译的代码,所以此操作仅会安装core/cyberfile.xml
中声明的依赖包提示:新版本buildtool编译的时候会默认带上 –opt –gpu(如果您使用gpu环境)参数,如果需要gdb调式请使用–dbg参数编译。
安装过程中可能会遇到权限问题:
1 |
|
使用 sudo chmod 777 tools/proto/proto.bzl
命令修改权限即可,其它文件同理。
5. 选择车型配置
示例工程中profiles/sample目录是官方提供的基于一个雷达两个摄像头的车型配置,您可以参考profiles目录下的sample编写自己的车型配置,生效车型配置的方法如下:
1 |
|
6. 播放数据包
获取数据包
1 |
|
获取数据包对应的地图
1 |
|
从
9.0.0-rc-r10
版本开始,地图数据已经被分离出来,需要单独下载,不再随地图包发布;通过buildtool map list
可以查看所有可用的地图
启动 Dreamview+
1 |
|
在 Dreamview+ 中播放数据包
启动 Dreamview+ 之后,在浏览器输入 localhost:8888
进入 Dreamview+ 界面,您可以选择默认模式,也可以选择其他模式播放数据包。本小节以默认模式为例。
- 选择 Default Mode 。
- 勾选 Accept the User Agreement and Privacy Policy/接受用户协议和隐私政策 ,并单击 Enter this Mode 进入 Mode Settings/模式设置 页面。
- 在 Mode Settings/模式设置 页面,设置播包参数。
- 在 Operations/操作 中选择 Record 。
- 在 Environment Resources/环境资源 中,单击 Records/数据包 ,并选择具体想要播放的数据包。
- 在 Environment Resources/环境资源 中,单击 HDMap/高精地图 ,并选择 Sunnyvale Big Loop 。
- 单击底部区域播放按钮。
可以在 Vehicle Visualization/车辆可视化 中看到数据包播放的画面。
通过命令行播放数据包
- 进入 docker 环境,
- 在 Dreamview+ 中 Resource Manager/资源管理 > Records/数据包 中先下载需要的数据包。输入以下命令播放数据包:
1 |
|
注意:如果您想要循环播放数据包,添加
-l
,如果不循环播放数据包,则不需要添加-l
。
常见问题
- 如果您在浏览器中看到
localhost:8888
是空白的,可能需要清除浏览器缓存。