Ubuntu20.04+Apollo6.0安装

前言

最近,Apollo开始了星火计划的活动,作为希望学习Apollo已久的我立刻报名参加。为了更好的学习,我打算将自己在课程中学习到的内容记录成博客,以方便之后阅览。

Apollo是国内百度发起的一项自动驾驶框架开源项目,自2017年开放截至当下已经迭代至Apollo 6.0。其官网文档如下:Apollo开放平台文档
Ubuntu20.04+Apollo6.0安装_第1张图片

一、必装环境

根据Apollo开发文档所说,推荐使用Ubuntu18.04及以上版本。此处我选用了20.04版本的Ubuntu进行配置。首先先进行更新软件源。

sudo apt-get update
sudo apt-get upgrade

1.1 NVIDIA GPU驱动

Apollo环境依赖于NVDIA GPU驱动进行,根据官网文档显示如果不需要运行感知模块可以不用安装NVIDIA驱动。

安装驱动可以通过图形化界面进行也可以直接使用指令:

sudo apt-get update
sudo apt-add-repository multiverse
sudo apt-get update
sudo apt-get install nvidia-driver-455

此处演示如何使用图形化界面进行安装驱动,首先打开软件与更新,在附加项一栏中选择需要的驱动版本即可,此处选择nvidia-driver-460

Ubuntu20.04+Apollo6.0安装_第2张图片

随后点击应用更改,等待下载完成即可。所需要的时间适网络情况而视。安装完成后可以使用指令查看驱动是否生效(建议重新启动后查看

nvidia-smi

显示信息如下所示:

Sun Sep  5 13:17:48 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1060    Off  | 00000000:01:00.0  On |                  N/A |
| N/A   56C    P0    27W /  N/A |    452MiB /  6078MiB |     12%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1733      G   /usr/bin/kwin_x11                 142MiB |
|    0   N/A  N/A      8778      G   /usr/lib/xorg/Xorg                150MiB |
|    0   N/A  N/A      9108      G   /usr/bin/kwin_x11                  63MiB |
|    0   N/A  N/A      9110      G   /usr/bin/plasmashell               31MiB |
|    0   N/A  N/A      9157      G   /usr/bin/latte-dock                15MiB |
|    0   N/A  N/A      9391      G   ...phinCuCRRi.9.slave-socket       11MiB |
|    0   N/A  N/A      9594      G   ...AAAAAAAAA= --shared-files       30MiB |
+-----------------------------------------------------------------------------+

1.2 Docker

Apollo 6.0+ 依赖于Docker 19.03版本及以上,安装方式如下:

  • 首先,需要安装依赖并卸载旧版本
# 安装依赖项
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 卸载旧版本(可能不存在)
sudo apt-get remove docker docker-engine docker-ce docker.io
  • 随后,添加docker官方提供的密钥并更新软件源
# 添加gpg密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 设置stable存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 更新软件源
sudo apt-get update
  • 之后,直接安装最新版本的docker即可。
# 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
  • 安装完成后还需要添加权限
#添加docker用户组
sudo groupadd docker
#将登陆用户加入到docker用户组中
sudo gpasswd -a $USER docker
#更新用户组
newgrp docker

1.3 NVIDIA Container Toolkit

基于Apollo的CUDA的docker镜像需要依赖于NVIDIA Container Toolkit。使用如下指令进行安装

distribution=$(. /etc/os-release;echo $ID$VERSION_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

随后,重启Docker完成应用。

sudo service docker start

二、安装Apollo

2.1 下载源码

首先需要下载Apollo的源码至本地,由于其源码较大需要先设置git的缓存大小。

# 5G大小
sudo git config --global http.postBuffer 5242880000

随后下载源码即可,由于其大小约为2G左右,根据网速快慢而完成。

git clone [email protected]:ApolloAuto/apollo.git

Ubuntu20.04+Apollo6.0安装_第3张图片

2.2 启动Docker

在源码根目录执行docker下载镜像脚本:

cd docker/scripts
bash dev_start.sh -g cn

此步骤需要耐心等待完成,成功后将显示如下字样:

[ OK ] Congratulations! You have successfully finished setting up Apollo Dev Environment.
[ OK ] To login into the newly created apollo_dev_jasonLi container, please run the following command:
[ OK ]   bash docker/scripts/dev_into.sh
[ OK ] Enjoy!

Ubuntu20.04+Apollo6.0安装_第4张图片

2.3 编译

在源码根目录运行如下脚本进入Apollo的Docker容器

cd docker/scripts
bash dev_into.sh 

Ubuntu20.04+Apollo6.0安装_第5张图片

/apollo 目录下执行如下指令进行编译:

# 优化模式编译(GPU)
bash apollo.sh build_opt_gpu
# 优化模式编译(CPU)
bash apollo.sh build_cpu

Ubuntu20.04+Apollo6.0安装_第6张图片

编译成功后,将显示如下字样:

(09:58:11) INFO: Elapsed time: 3331.877s, Critical Path: 204.26s
(09:58:11) INFO: 30716 processes: 18774 internal, 11942 local.
(09:58:11) INFO: Build completed successfully, 30716 total actions
==============================================
[ OK ] Done building apollo. Enjoy!
==============================================

Ubuntu20.04+Apollo6.0安装_第7张图片

三、启动Dreamview

完成编译后,即可在Docker环境下启动Dreamview进行测试:

bash scripts/bootstrap.sh

Ubuntu20.04+Apollo6.0安装_第8张图片

此时如果出现如下报错,可以再重新启动脚本,即可解决。

nohup: appending output to 'nohup.out'
[ OK ] Launched module monitor.
nohup: appending output to 'nohup.out'
[ OK ] Launched module dreamview.
Failed to start Dreamview. Please check /apollo/data/log or /apollo/data/core for more information

Ubuntu20.04+Apollo6.0安装_第9张图片
启动成功后可以在浏览器中打开链接进行查看Dreamview:https://localhost:8888
Ubuntu20.04+Apollo6.0安装_第10张图片

四、播放record数据

  • 首先需要下载record数据包(类似于ROS中的bag数据包):
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record

Ubuntu20.04+Apollo6.0安装_第11张图片

  • 随后使用cyber RT运行播放数据
cyber_recorder play -f demo_3.5.record --loop

选项 –loop 用于设置循环回放模式
Ubuntu20.04+Apollo6.0安装_第12张图片

此时,即可在Dreamview中查看播放的数据了。
Ubuntu20.04+Apollo6.0安装_第13张图片

你可能感兴趣的:(ros/apollo,自动驾驶)