Apollo自动驾驶开发笔记1——Apollo 7.0环境配置
Apollo自动驾驶开发笔记1——Apollo 7.0环境配置
-
一、安装nvidia显卡驱动
-
- 主机NVIDIA显卡驱动版本 >= 455.32
-
二、安装Docker
-
三、安装NVIDIA Docker
-
四、
-
- 下载源码文件
-
-
-
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
-
启动 Apollo 开发 Docker 容器
-
进入 Apollo Docker 容器
-
-
-
五、编译Apollо
-
- 错误信息
-
- 服务以错误码14 abrupt终止(错误信息:Socket closed,日志文件路径:/apollo/.cache/bazel/540135163923dd7d5820f3ee4b306b32/server/jvm.out)
-
-
六、启动Apollo服务
-
七、进行离线演示操作
-
-
准备工作
-
启动 DreamView应用程序
-
下载并解压Apollo的演示包文件,然后运行播放器
-
在浏览器中访问 http://localhost:8888 这个端口,打开Apollo Dreamview应用程序
-
八、再次启动apollo docker容器
-
Apollo 官方GitHub存储库:
https://github.com/ApolloAuto/apollo
Apollo软件安装说明:
https://github.com/ApolloAuto/apollo/blob/v7.0.0/docs/quickstart/apollo_software_installation_guide.md
硬件环境:
- ubuntu 18.04
- RTX2060 显卡
- nvidia 驱动:470.141.03
- Cuda:
一、安装nvidia显卡驱动
主机NVIDIA显卡驱动版本 >= 455.32
若 CUDA 版本号为 11.1 及以上,建议安装 CUDA 显卡驱动的最新版本。相应地,建议将主机上的 NVIDIA 驱动程序更新至版本号不小于 455.32。

二、安装docker
可见:<>
sudo docker version
AI助手

三、安装nvidia-docker
目前,可以进行运行基础的CUDA容器以测试工作设置。
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu18.04 nvidia-smi
AI助手

若遇到错误:
Docker错误报告:daemon无法选择一个具备gpu能力的设备驱动程序。
解决办法:<>
四、
下载源码
运行以下命令来克隆 Apollo 的 GitHub Repo。
git clone https://github.com/ApolloAuto/apollo.git
AI助手
or
git clone https://gitee.com/ApolloAuto/apollo.git
git checkout v7.0.0
AI助手
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: the remote end hung up unexpectedly
原因在于,git默认缓存大小设置过小所致。
解决办法:请参考下方命令来增加缓存大小(根据实际情况自行调整):
git config --global http.postBuffer 200000000000
AI助手
并检查最新的分支:
cd apollo
git checkout master
AI助手
为了简化操作,您可以配置环境变量APOLLO_ROOT_DIR用于引用Apollo根目录。请将当前目录切换至apollo目录。
echo "export APOLLO_ROOT_DIR=$(pwd)" >> ~/.bashrc && source ~/.bashrc
AI助手
启动 Apollo 开发 Docker 容器
先给docker去sudo,不然只能用sudo进入。
bash docker/scripts/dev_start.sh
AI助手
等待一段时间…
如果成功,您将在屏幕底部看到以下消息:
恭喜!您已成功完成Apollo开发环境的搭建。
为了登录新创建的apollo_dev_root容器,请运行以下命令:
$ bash docker/scripts/dev_into.sh
享受吧!

说明安装成功!
进入 Apollo Docker 容器
bash docker/scripts/dev_into.sh
AI助手
用户 diyun 在 Apollo 目录下执行命令
[sudo] password for diyun:
root@in-dev-docker:/apollo#
五、编译apollo
./apollo.sh build
AI助手
该命令会根据GPU环境的就绪状态自动地进行判断,以决定是执行CPU构建过程还是GPU构建过程。
大约一个上午,经过运行编译程序,终于实现了成功。注意,占用磁盘空间极大,确保至少预留足够大的磁盘空间。

其他详细信息可参考https://github.com/ApolloAuto/apollo/blob/v7.0.0/docs/specs/apollo_build_and_test_explained.md。
#
使用 Release 模式和 GPU 编译
bash apollo.sh build_opt_gpu
其他可选编译方式如下所示:
# bash apollo.sh build 表示带调试信息的 Release 模式编译
# [module] 可选,表示待编译的模块;如果不加任何模块,表示编译所有模块
# 例如: bash apollo.sh build perception ,表示只编译感知模块
# bash apollo.sh build ,编译所有模块
#
bash apollo.sh build [module]
模式编译
# Debug
bash apollo.sh build_dbg [module]
模式编译
# Release
bash apollo.sh build_opt [module]
#
使用 CPU ,带调试信息的 Release 模式编译
bash apollo.sh build_cpu [module]
#
使用 GPU ,带调试信息的 Release 模式编译
bash apollo.sh build_gpu [module]
#
使用 GPU , Release 模式编译
bash apollo.sh build_opt_gpu [module]
使用 GPU , Release 模式编译,只编译camera接入模块
sudo bash apollo.sh build_gpu drivers/camera
AI助手
error
The server was unexpectedly shut down (error code 14, indicating the socket has been closed, corresponding to log file: /apollo/.cache/bazel/540135163923dd7d5820f3ee4b306b32/server/jvm.out)
Server terminated abruptly (error code: 14, error message: 'Socket closed', log file: '/apollo/.cache/bazel/540135163923dd7d5820f3ee4b306b32/server/jvm.out')
AI助手
六、启动apollo
./scripts/bootstrap.sh
AI助手
启动 Dreamview 失败了。请查看以下路径以获取更多信息:/apollo/data/log 或 /apollo/data/core。
然后在浏览器中打开
http://localhost:8888/
AI助手

七、运行线下演示
如果您的车辆及车载硬件不具备配置,Apollo系统将支持您在代码演示和调试中使用虚拟仿真环境。
准备工作
按照 [Apollon 软件安装指南] 的说明,您已经准备好并搭建好了 Apollo 的运行环境。即,您已经克隆了 Apollo 的代码库,并安装了必要的软件。
下面是 Apollo 演示的设置步骤:
启动 Dreamview
bash scripts/bootstrap.sh
AI助手
下载并播放 Apollo 的演示包
https://github.com/ApolloAuto/apollo/releases/download/v3.5.0/demo_3.5.record
AI助手
python docs/demo_guide/record_helper.py demo_3.5.record
source cyber/setup.bash
cyber_recorder play -f demo_3.5.record --loop
AI助手

选项 --loop 用于设置循环回放模式.
bash: cyber_recorder: command not found
先 source cyber/setup.bash
在浏览器中输入 http://localhost:8888 访问 Apollo Dreamview
如下图所示:

如果一切正常,现在您应该能看到一辆汽车在模拟器里移动。
恭喜您完成了 Apollo 的演示步骤!
八、再次启动apollo docker容器
建议避免执行此命令,因为它是创建容器的,会删除现有的容器,但重新构建会更快,得益于缓存机制。初次拉取操作可能需要一定时间,具体取决于网络速度。
构建之后就不要用这个命令了,不然会删除之前的容器,重新构建
bash docker/scripts/dev_start.sh
创建一次容器,后面用就docker start xxx,然后./dev_into.sh 进入容器即可。
cd ~/Apollo/apollo
#bash docker/scripts/dev_start.sh
AI助手
bash docker/scripts/dev_start.sh -l -t dev-x86_64-18.04-20210914_1336
AI助手
bash docker/scripts/dev_into.sh
AI助手
参考:<>
