百度 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 生态仍不算出色,搭建过程中小坑比较多,没有太多的参考资料。