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

 保险起见,我选择最新版的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

成功

 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

二.安装Apollo7.0

1.下载Apollo7.0

~$ git clone git@github.com: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

 三. 启动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

播放效果如下:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340