Apollo学习笔记(1):Ubantu20.04安装Apollo7.0

前言

最近有实现Carla与Apollo联合仿真的想法,必备条件就是都两个软件部署到Ubantu20.04上,目前已经完成Carla 0.9.13的部署工作,详见Carla学习笔记(1):Ubantu20.04安装Carla 0.9.13_智驾小兵的博客-CSDN博客

这一篇博客这要记录安装Apollo7.0的过程,供大家参考。

找官方文档安装最靠谱,但无奈Github和Apollo社区都没找到Apollo7.0的快速安装指南,只好用Apollo6.0的官方安装文档作为参考:技术文档丨Apollo 6.0软件安装指南,但是经过查阅其它博主的文章,会加入一些其它步骤来避坑。

一.安装Apollo7.0的先决条件

1.Ubantu20.04的安装(双系统可参考)小米笔记本双固态硬盘安装win10+ubantu20双系统 实录_智驾小兵的博客-CSDN博客

2.NVIDIA GPU驱动安装

小米笔记本ubantu20.04安装谷歌输入法和Nvidia驱动 实录_智驾小兵的博客-CSDN博客

3.Docker容器安装

官方指导文档:Install Docker Engine on Ubuntu | Docker Documentation

1)彻底去除系统中的老版本(之前没安过docker的可忽略)

官网只给了两条指令,但根据经验来说,会增加步骤保证旧版本docker删除干净

#官网给出的删除指令
~$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
     
~$ sudo rm -rf /var/lib/docker

#增加步骤:
#1.自动删除的常规操作

~$ sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
 
#2. 删除其它配置文件
~$ dpkg -l | grep docker
~$ dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P # 删除无用的相关的配置文件
 
#3.卸载没有删除的docker相关插件
~$ sudo apt-get autoremove docker-ce-*
 
#4.删除docker的相关配置&目录
~$ sudo rm -rf /etc/systemd/system/docker.service.d
~$ sudo rm -rf /var/lib/docker
 
#5.确定docker卸载完毕
~$ docker --version

2)更新并安装docker相应依赖

~$ sudo apt-get update
 
#安装依赖
~$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

3)添加密钥

~$ sudo mkdir -p /etc/apt/keyrings

~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4)设置储存库并更新

 ~$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5)更新并安装docker引擎

~$ sudo apt-get update

~$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

6)列出docker版本列表并选择

 ~$ apt-cache madison docker-ce

Apollo学习笔记(1):Ubantu20.04安装Apollo7.0_第1张图片

 保险起见,我选择最新版的docker安装(标红框的为变量,下方指令的变量位置可以用不同版本替换)

~$ sudo apt-get install docker-ce=5:20.10.17~3-0~ubuntu-focal docker-ce-cli=5:20.10.17~3-0~ubuntu-focal containerd.io docker-compose-plugin

7)安装后测试

~$ sudo docker run hello-world

成功

Apollo学习笔记(1):Ubantu20.04安装Apollo7.0_第2张图片

 8)后续操作(重要!!!)

创建组docker,并将当前用户加入组中,后续就可以以用户身份操作docker而不是root,这一步至关重要,也是官方文档没有的,命令如下:

~$ sudo groupadd docker
~$ sudo usermod -aG docker $USER

重新登录系统,并且继续为docker添加启动项

~$ systemctl start docker && systemctl enable docker
~$ docker run hello-world

#添加启动项
~$ sudo systemctl enable docker.service
~$ sudo systemctl enable containerd.service

Docker的更新也比较频繁,升级则会出现新版本安装不成功又禁用旧版本服务的情况,还会导致系统Docker和镜像Docker的驱动nvidia-docker2版本不匹配,导致启动Apollo镜像的操作dev_start.sh时报错,所以非必要不要升级Docker。

~$ service docker start 
Failed to start docker.service: Unit docker.service is masked.
~$ systemctl unmask docker.service
~$ systemctl unmask docker.socket
~$ systemctl start docker.service
~$ service docker start 
docker run hello-world

4.安装NVIDIA Container Toolkit

NVIDIA Container Toolkit允许用户构建和运行GPU加速Docker容器。该工具包包括一个容器运行时库和实用程序,用于自动配置容器以利用NVIDIA GPU。
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

5.配置github密钥

Github配置ssh key的步骤(大白话+包含原理解释)_风中一匹狼v的博客-CSDN博客_github配置ssh key

二.安装Apollo7.0

1.下载Apollo7.0

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

2.设置环境变量,拉取Apollo镜像

~$  cd apollo/
~apollo $ echo "export APOLLO_ROOT_DIR=$(pwd)" >> ~/.bashrc  && source ~/.bashrc
~apollo $ bash docker/scripts/dev_start.sh
...
[ OK ] Congratulations! You have successfully finished setting up Apollo Dev Environment.
[ OK ] To login into the newly created apollo_dev_shaw container, please run the following command:
[ OK ]   bash docker/scripts/dev_into.sh
[ OK ] Enjoy!

3.从源代码编译Apollo

#登录到新启动的容器
~$  bash docker/scripts/dev_into.sh

#编译Apollo
root@in-dev-docker:/apollo#./apollo.sh build

Apollo学习笔记(1):Ubantu20.04安装Apollo7.0_第3张图片

 三. 启动Demo

1.运行命令启动 Dreamview 后端和监视器模块

在Chrome或Firefox浏览器中打开网址http://localhost:8888/,可以查看初始化界面。

root@in-dev-docker:/apollo# bash scripts/bootstrap.sh
[INFO] Module monitor is already running - skipping.
[INFO] Module dreamview is already running - skipping.

2.下载record

root@in-dev-docker:/apollo# python3 record_helper.py demo_3.5.record

3.设置页面并播放record

在DreamView界面中,选择驾驶模式为“Mkz Standard Debug”,选择车型为“Lincoln2017MKZLGSVL”,选择地图为“Sunnyvale with Two Offices”,最后播放record。

root@in-dev-docker:/apollo# cyber_recorder play -f demo_3.5.record --loop

播放效果如下:

Apollo学习笔记(1):Ubantu20.04安装Apollo7.0_第4张图片

以上,为安装Apollo7.0的记录,欢迎收藏点赞评论,谢谢大家!!!

你可能感兴趣的:(Apollo学习笔记,学习,人工智能,ubuntu,docker,自动驾驶)