百度 Apollo 3.5 自动驾驶环境搭建指南

Apollo 是百度开源的自动驾驶开源平台,本篇文章主要用于说明 Apollo 环境搭建流程,并记录遇到的问题。

本次环境搭建选择 AWS 提供的 c5n.2xlarge 云主机,配置为 8 vCPU 和 21GB MEM,无 GPU。系统选择 AWS 提供的 Ubuntu 16.04 纯净镜像。

首先,Apollo 的配置脚本和部分代码都存放在开源仓库 ApolloAuto/apollo 中。需要克隆改仓库到本地。由于部分资源由 git lfs 托管,所以你需要 安装 git lfs 组件

然后,克隆仓库:

git lfs clone https://github.com/ApolloAuto/apollo.git

仓库大小 2GB 左右,这也是我们选择 AWS 的原因之一,因为外部网络连接速度更快。

接下来,进入主文件夹目录,拉取 Apollo 源码镜像并执行编译过程。在这之前,你需要先 安装 Docker

cd apollo
bash docker/scripts/dev_start.sh
bash docker/scripts/dev_into.sh

源码 Docker 容器镜像 3GB 左右,拉取时间较长。执行完 bash docker/scripts/dev_into.sh 之后已经位于 Apollo 源码容器中。接下来开始编译,这里选择 CPU 编译命令:

bash apollo.sh build_cpu

源码编译时间较长,预计半小时左右。若无问题,会看到编译成功的提示。

最终,启动 Apollo Dreamview 仿真模拟环境:

bash scripts/bootstrap.sh

如果启动成功,会看到相应的提示,环境运行在 localhost:8888 。此时,你可以替换 localhost 为云主机公网 IP 地址,访问 Apollo Dreamview 仿真模拟环境。注意,你需要在安全组中添加 8888 端口可被访问。此时,你可以看到 Dreamview 仿真模拟环境初始界面。

然后,可以加载示例数据,参考 官方说明

cd docs/demo_guide/
bash rosbag_helper.py demo_3.5.record
cyber_recorder play -f demo_3.5.record --loop

--loop选项使示例数据能够以循环模式播放。至此,一切大功告成。Dreamview 仿真模拟环境应该已经可以接收到数据。

最后,总结本次环境搭建的几点心得:

  • GitHub 仓库较大,近 2 GB。Docker 镜像较大,3~4 GB。环境可能需要很好的外网连接支持。
  • 得益于 Docker 的使用安装,编译过程并不复杂。编译过程很慢,CPU 估计半小时以上。GPU 编译尝试失败。
  • 云主机上跑部分 Demo 数据包,在本地浏览器中打开模拟器 Dreamview 无法正常接收数据,估计是 Apollo 的原因。
  • 环境暴露 8888 端口,供在本地浏览器打开 Dreamview 模拟器。仿真模拟器 Dreamview 基于 WebGL,体验和本地计算机性能关系较大,Chrome 比较吃性能。
  • Apollo 生态仍不算出色,搭建过程中小坑比较多,没有太多的参考资料。