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+ 界面,您可以选择默认模式,也可以选择其他模式播放数据包。本小节以默认模式为例。
在Mode Settings/模式设置页面,设置播包参数。
- 在 Operations/操作 中选择 Record 。
- 在 Environment Resources/环境资源 中,单击 Records/数据包 ,并选择demo 3.5。
- 在 Environment Resources/环境资源 中,单击 HDMap/高精地图 ,并选择 Sunnyvale。
单击底部按钮区域,可以在 Vehicle Visualization/车辆可视化 中看到数据包播放的画面。
五、删除工程(可选)
此步说明如何删除已安装的工程
小结(要点总结)
如果你顺利进行到这一步,并且在Dreamview中看到播放的画面,恭喜你已经在你的电脑上成功安装了Apollo系统。与源码安装不同,包管理安装在根目录下并不能看到源码,这与我们的熟悉的开发方式或许有些不同。后续我们将简单介绍包管理的开发方式,并且在dreamview上重复我们在云实验室中进行的几个实验。
如果你并没有顺利安装成功,我这里总结了几个安装要点:
- 一定要严格按照最新版本的安装手册进行安装。目前最新版本是9.0,当进入官网还能搜到6.0和8.0版本的,如果不小心依照之前的手册安装,可能会出现各种各样的bug。如果实在无法解决,可以参照一、1重装系统。如果你安装的时候已经出到更新的版本,依照最新版本手册进行安装。
- Apollo的代码量真的很大,源码下载下来有20多G。整个源码编译很吃电脑性能,所以如果你用源码安装方式又经常编译死机,还是推荐包管理安装。
- 打开dreamview,发现环境资源里,地图和车辆没有文中的多,这是正常现象。Apollo提供了一些工具下载对地图和车辆进行下载,也可以编辑自己的地图和车辆。
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...