Apollo 是优秀的自动驾驶开发框架,出自百度之手,目前已更新到 6.0 版本,本文旨在详细记录 Apollo 6.0 在 Ubuntu 18.04 中的完整安装及运行过程,并会阐述在虚拟机和物理机中进行安装时的细微区别。
系统:Ubuntu20.04.2 LTS
内存:8G
CPU:[email protected]*8
GPU:NVIDIA GK208[GeForce GT 730]
系统安装
此步骤就跳过了,有不懂的可以参考一些百度
更新和升级
完成系统安装后,配置 Ubuntu 软件仓库,并选择国内更稳定的镜像源,例如清华源:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
随后,进行更新和升级:
sudo apt-get update
sudo apt-get upgrade
如果是在物理机中安装的 Ubuntu,且机器配有 NVIDIA 显卡,需要安装对应驱动:
sudo apt-get update
sudo apt-add-repository multiverse
sudo apt-get update
sudo apt-get install nvidia-driver-455
随后,可以通过在终端中执行 nvidia-smi 命令来查看 NVIDIA 显卡工作是否正常(完成驱动安装后可能需要重启),正常情况下终端将显示下面的信息:
注意: 如果是在虚拟机中安装的 Ubuntu 或物理机没有配置 NVIDIA 显卡,此步务必跳过,否则将导致后续步骤中启动 Apollo 开发容器时失败。虚拟机情况下这样做的根本原因是,虚拟机中无法虚拟 NVIDIA 显卡。
Apollo 6.0 需要 Docker 19.03 及以上版本,在终端中直接执行下述命令即可完成 Docker 社区版的安装:
curl https://get.docker.com | sh
sudo systemctl start docker && sudo systemctl enable docker
重启 Docker 守护进程以使改动生效:
sudo systemctl restart docker
完成 Docker 安装后,在终端中执行下述命令并重启系统,这样可以免去每次执行 Docker 命令时需要添加 sudo 的繁琐:
sudo groupadd docker
sudo usermod -aG docker your_username
如果是在物理机中安装的 Ubuntu,且机器配有 NVIDIA 显卡,在安装了驱动的前提下,还需要安装 NVIDIA 容器工具包以运行 Apollo Docker 镜像中的 CUDA:
distribution=$(. /etc/os-release;echo I D ID IDVERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get -y update
sudo apt-get install -y nvidia-docker2
注意: 如果是在虚拟机中安装的 Ubuntu 或物理机没有配置 NVIDIA 显卡,此步同样需要跳过。
通过 SSH 方式或 HTTPS 方式克隆 Apollo 源码仓库:
# 使用 SSH 的方式
git clone [email protected]:ApolloAuto/apollo.git
# 使用 HTTPS 的方式
git clone https://github.com/ApolloAuto/apollo.git
GitHub 在国内访问速度可能很慢,可以使用 Gitee 替代:
# 使用 SSH 的方式
git clone [email protected]:ApolloAuto/apollo.git
# 使用 HTTPS 的方式
git clone https://gitee.com/ApolloAuto/apollo.git
进入到 Apollo 源码根目录,打开终端,执行下述命令以启动 Apollo Docker 开发容器:
./docker/scripts/dev_start.sh
不出意外得话,启动成功后将得到下面信息:
如果是在虚拟机中安装的 Ubuntu 或物理机没有配置 NVIDIA 显卡,但却又安装了 NVIDIA 驱动,则在执行上述启动容器的操作时将遇到下面的报错:
解决方法是直接卸载 NVIDIA 相关安装项:
sudo apt purge nvidia*
启动 Apollo Docker 开发容器后,执行下述命令进入容器:
./docker/scripts/dev_into.sh
可以发现,进入容器后终端信息发生了相应变化,后面的操作都将在容器中进行:
进入 Apollo Docker 开发容器后,在容器终端中执行下述命令构建 Apollo:
./apollo.sh build
构建成功后将得到下面的信息:
完成 Apollo 构建后,在容器终端中执行下述命令:
./scripts/bootstrap.sh start
上述命令会启动 DreamView 并使能模块监控机制,在浏览器中访问 http://localhost:8888 来显示 DreamView 界面:
在 DreamView 界面的对应下拉框中选择驾驶模式为“Mkz Standard Debug”,选择地图为“Sunnyvale with Two Offices”:
在容器终端中执行下述命令下载 demo 数据:
cd docs/demo_guide/
python3 record_helper.py demo_3.5.record
由于网络原因,下载可能失败,可以点击这里手动下载并将数据放到 apollo/docs/demo_guide/ 目录下。继续在容器终端中执行下述命令来播放数据,-l 表示循环播放(loop):
cyber_recorder play -f demo_3.5.record -l
至此,DreamView 界面中将呈现出自车规划轨迹、他车预测轨迹、路网等各种信息: