5. 本地开发基础(上):系统安装

category
type
status
slug
date
summary
tags
password
icon
  • 土豆泥老师 (知乎:@土豆泥): 上海交通大学在读博士.

引言

Apollo是一个完整的自动驾驶系统,其中包括许多模块和不少依赖。为了降低安装难度,Apollo提供了一系列镜像以及工具。同时,Apollo还提供了两种安装方式,分别是源码包管理安装。
相比于源码安装方式,包管理优化了下载安装中出现的下载量大、无法按需使用、编译时间过长等问题,规范了组件依赖关系以及组件粒度,提升了自动驾驶开发效率。从实际安装的角度来说,包管理也更方便,免除了源码编译系统容易卡死的问题。
因此,本文将利用包管理的方式对Apollo系统进行安装。同时,介绍包管理下的源码下载和编译的方法,并利用vscode对源码进行查看和编辑,再通过dreamview仿真来验证源码修改的效果。最后,还将简单介绍vscode进行代码单步调试的方法。
如果想利用源码安装,可以详见:Apollo9.0 安装指南。这篇文章也基本参考指南中的内容,顺便还有一些自己的经验。
另外,在进行安装前,保证自己的电脑满足以下配置:
CPU
四核以上
内存
16G以上
GPU(如果运行感知模块)
GTX1060以上

一、安装基础软件

1. 安装Ubuntu系统

Apollo需要运行在Ubuntu 18.04及以上的系统上。安装Ubuntu 18.04+的步骤,参见Ubuntu系统安装指南
完成安装后保持联网状态更新相关软件,在终端中运行以下代码(按Ctrl+Alt+T弹出终端):
推荐大家安装为双系统,因为Apollo运行配置要求16G内存。如果安装为虚拟机的话,性能可能无法满足要求。另外,如果Apollo安装过程中出现了问题,需要重装系统,在双系统的模式下可以参考

2. 安装Docker

Docker是一种容器化技术,用于创建和使用容器。容器可以被视作一个轻量级的虚拟机,有着虚拟机的效果,但是性能损耗远低于虚拟机。
Apollo依赖于Docker 19.03+。可以根据官方文档对Docker引擎进行安装:Docker安装指南
Apollo也提供了安装脚本,推荐按此脚本可以直接进行安装
这个过程可能会运行多次脚本,根据脚本提示执行即可。一般来说3-4次就能安装成功,成功之前会提示你再次执行脚本,就再输入bash docker_install.sh。

二、获取GPU支持(如不运行感知,可先跳过)

Apollo的某些模块需要GPU的支持才能够编译、运行(例如感知模块),如果您需要使用此类模块,需要安装Nvidia显卡驱动以及Nvidia container toolkit以获取GPU支持。
‍注意:本教程只适用于ubuntu系统,虚拟机无法安装显卡驱动,WSL请自行上网搜索。另外,如果之前已经安装过Nvidia显卡驱动,即往终端输入nvidia-smi能够正常输出,可以跳过 安装显卡驱动 小节

1. 安装显卡驱动

可参照官网方法安装驱动 Linux AMD64 Display Driver Archive | NVIDIA
由于nvidia的硬件更新的很快,因此会遇到显卡驱动和CUDA版本不兼容的情况,以下为测试过的畅通链路:
显卡系列
测试显卡
驱动版本
最低支持驱动版本
cuda版本
GeForce 10 Series
GeForce GTX 1080
nvidia-driver-470.160.03
nvidia-driver-391.35
CUDA Version :11.4
GeForce RTX 20 Series
GeForce RTX 2070 SUPER
nvidia-driver-470.63.01
nvidia-driver-456.38
CUDA Version :11.4
GeForce RTX 30 Series
GeForce RTX 3090
nvidia-driver-515.86.01
nvidia-driver-460.89
CUDA Version :11.6
GeForce RTX 30 Series
GeForce RTX 3060
nvidia-driver-470.63.01
nvidia-driver-460.89
CUDA Version :11.4
Tesla V-Series
Tesla V100
nvidia-driver-418.67
nvidia-driver-410.129
CUDA Version :10.1
AMD
MI100 dGPU
ROCm™ 3.10 driver
10、20、30系列显卡推荐使用470.63.01版本的驱动 ,您可以通过Nvidia官网来 下载驱动
40系列显卡推荐驱动版本>=520.61.05,提供525.105.17版本驱动下载链接: https://www.nvidia.cn/geforce/drivers/results/202351/
下载之后,找到相应的文件夹打开终端输入安装指令:
安装完毕后,您可以通过nvidia-smi指令来检查驱动是否安装成功,如果一切正常,您可以看到类似以下的提示:

2. 安装 Nvidia container toolkit

为了在容器内获得 GPU 支持,在安装完 docker 后需要安装 NVIDIA Container Toolkit。 运行以下指令安装 NVIDIA Container Toolkit:
安装完毕后,需要手动重启下docker:

三、安装Apollo环境管理工具

Apollo 环境管理工具是一个帮忙管理和启动 Apollo 环境容器的命令行工具。

1. 安装依赖软件

2. 在宿主机添加 Apollo 软件源的 gpg key,并设置好源和更新

‍注:如果之前已经安装过8.0版本的apollo的话,在宿主机上的/etc/apt/sources.list文件中会有形如debhttps://apollo-pkg-beta.cdn.bcebos.com/neo/betabionic main的配置,可以直接删除,宿主机上的apollo源配置仅用于安 装aem工具

3. 安装aem工具

安装成功后即可使用下列代码查看aem使用说明

四、安装Apollo工程

1. 选择示例工程并下载

Apollo 目前提供了3个示例工程,您可以根据需要选择其一
application-core , 包含 Apollo 所有开源软件包,可以基于此工程搭建自己的应用,推荐安装
application-pnc , 仅包含规划控制相关的软件包,适合仅关注规划控制方向的用户
application-perception , 仅包含感知相关的软件包,适合仅关注感知方向的用户
以 x86 架构的 application-core 为例

2. 启动并进入Apollo环境容器

当进入容器后,可以看见in-dev-docker字样。

3. 安装软件包

示例工程中包含一个名为 core 目录,其中 core/cyberfile.xml 文件中描述了工程所依赖软件包,可以通过 buildtool 工具进行依赖包的安装
‍此操作真正含义是编译工程中 core 这个包,但 core 本身并没有需要编译的代码,所以此操作仅会安装 core/cyberfile.xml 中声明的依赖包。 这一步需要较长的时间,如果失败,检查是否正确进入容器,还有软件包是否正常下载。

4. 选择车型配置

示例工程中profiles/sample目录是官方提供的基于一个雷达两个摄像头的车型配置,您可以参考profiles目录下的sample编写自己的车型配置,生效车型配置的方法如下

5. 播放数据包

获取数据包
获取数据包对应的地图
‍从9.0.0-rc-r10版本开始,地图数据已经被分离出来,需要单独下载,不再随地图包发布;通过buildtool map list可以查看所有可用的地图
启动 Dreamview+,可能需要多次执行才能启动成功
在Dreamview中播放数据包
启动 Dreamview+ 之后,在浏览器输入localhost:8888进入 Dreamview+ 界面,您可以选择默认模式,也可以选择其他模式播放数据包。本小节以默认模式为例。
notion image
Mode Settings/模式设置页面,设置播包参数。
  • Operations/操作 中选择 Record
  • Environment Resources/环境资源 中,单击 Records/数据包 ,并选择demo 3.5
  • Environment Resources/环境资源 中,单击 HDMap/高精地图 ,并选择 Sunnyvale
notion image
单击底部按钮区域,可以在 Vehicle Visualization/车辆可视化 中看到数据包播放的画面。

五、删除工程(可选)

此步说明如何删除已安装的工程

小结(要点总结)

如果你顺利进行到这一步,并且在Dreamview中看到播放的画面,恭喜你已经在你的电脑上成功安装了Apollo系统。与源码安装不同,包管理安装在根目录下并不能看到源码,这与我们的熟悉的开发方式或许有些不同。后续我们将简单介绍包管理的开发方式,并且在dreamview上重复我们在云实验室中进行的几个实验。
如果你并没有顺利安装成功,我这里总结了几个安装要点:
  1. 一定要严格按照最新版本的安装手册进行安装。目前最新版本是9.0,当进入官网还能搜到6.0和8.0版本的,如果不小心依照之前的手册安装,可能会出现各种各样的bug。如果实在无法解决,可以参照一、1重装系统。如果你安装的时候已经出到更新的版本,依照最新版本手册进行安装。
  1. Apollo的代码量真的很大,源码下载下来有20多G。整个源码编译很吃电脑性能,所以如果你用源码安装方式又经常编译死机,还是推荐包管理安装。
  1. 打开dreamview,发现环境资源里,地图和车辆没有文中的多,这是正常现象。Apollo提供了一些工具下载对地图和车辆进行下载,也可以编辑自己的地图和车辆。
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...