目录
写在前面
1、在安装了Ubuntu20.04的电脑上,使用包管理安装Apollo9.0,这种安装方式,在Apollo9.0的四种安装方式中是最简单的。
2、本教程是按照百度Apollo9.0的包管理安装手册(apollo.baidu.com)进行的操作,并在此基础上就遇到的问题做的补充。
一、给电脑安装Ubuntu20.04
1、可以专门找一台电脑安装上Ubuntu20.04,也可以给电脑安装双系统,两种方式都可以;
2、安装好Ubuntu20.04之后,要执行以下两条命令
# 更新软件列表
sudo apt-get update
# 将已安装的软件更新到最新
sudo apt-get upgrade
第二条命令,可以不执行,它花的时间比较多。
二、安装Docker Engine
(1)直接使用百度Apollo安装手册中提供的脚本进行安装
// 下载docker engine的安装脚本
wget http://apollo-pkg-beta.bj.bcebos.com/docker_install.sh
// 运行docker engine的安装脚本
bash docker_install.sh
运行安装脚本后可能会出现安装失败的情况,没关系,失败了就重新运行第二条命令,反复多运行几次,直到成出现Docker OK的字样。
(2)如果还是安装不成功,卡在获取docker engine上,就执行下面的命令,将原有的 Docker 官方源替换为国内镜像源,之后再次运行上面的安装脚本。要等显示获取docker engine不成功的时候,再运行下面两条命令,太早运行是不行的。
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/apt/sources.list.d/docker.list
sudo apt-get update
三、获取 GPU 支持
1、安装Nvidia显卡驱动驱动
(1)首先,电脑的显卡必须是Nvidia的显卡;
(2)只要你的Ubuntu系统是正常安装的,显卡驱动一般都是没有问题的,不需要安装;
(3)验证显卡驱动是否有问题,只要在终端中输入nvidia-smi,只要有正常输出,就说明GPU的驱动是没有问题的,这一步就可以过了;
2、安装 Nvidia container toolkit
下面的代码是为了让docker容器能够调用GPU。
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
sudo systemctl restart docker
四、安装环境管理工具
Apollo 环境管理工具aem是一个帮忙管理和启动 Apollo的Docker容器的命令行工具。
aem在包管理安装中才需要安装,在源码安装中是不需要安装的。
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# 添加 gpg key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://apollo-pkg-beta.cdn.bcebos.com/neo/beta/key/deb.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/apolloauto.gpg
sudo chmod a+r /etc/apt/keyrings/apolloauto.gpg
# 设置源并更新
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/apolloauto.gpg] https://apollo-pkg-beta.cdn.bcebos.com/apollo/core"\
$(. /etc/os-release && echo "$VERSION_CODENAME") "main" | \
sudo tee /etc/apt/sources.list.d/apolloauto.list
sudo apt-get update
sudo apt install apollo-neo-env-manager-dev --reinstall
aem -h
五、安装示例工程
1、下载application-core
git clone https://github.com/ApolloAuto/application-core.git application-core
如果下载失败,就多尝试几次,下载失败是因为网络导致的。
2、切换代码版本
这里就是一个非常大的坑,在apollo的安装手册中,根本不告诉你要切换到哪个版本,按照安装手册下载源码后就直接进行编译,而目前最新的是10.0的版本,如果直接编译,编译完实际上是10.0的版本,所以我们需要自己来切换版本。
下面我们先查看一个git的提交记录,执行下面的命令
cd application-core
git log
下面这个版本是我们需要的。
commit 7537574c2c88e9d3b51b9662e506af2e99143e70
Merge: 690798f 5ed5578
Author: hearto1314 <hearto_job@163.com>
Date: Mon Jun 17 16:58:31 2024 +0800
Merge branch '9.0.0_rc_r13' into main
我们切换到这个版本,并在此版本的处建立一个分支v9.0。
git checkout 7537574
git switch -c v9.0
3、下载docker镜像,并创建容器
bash setup.sh
aem start
这个会花费非常常的时间,因为apollo的docker环境镜像非常大。
容器创建完成后会自动进入容器,我们可以看到命令提示符变了,有(apollo-9.0)了。
(apollo-9.0)[dbj@in-dev-docker:
注意,第一次的时候需要执行aem start,第二次再想进入容器,直接执行aem enter就可以了,像下面这样:
cd application-core
aem enter
六、编译工程
编译工程是在docker容器中进行的。
buildtool build -p core
注意:在编译过程中会如果报错,可以看一下报错信息,基本是因为网络导致的,报错了,就重新执行上面的命令再次编译,多试几次,就能编译成功。我重新执行了三四次才最终编译成功的。
七、启动Dreamview+
下面的命令是在apollo的docker容器中执行的
# 以sample为例
aem profile use sample
# 下载数据包
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record -P $HOME/.apollo/resources/records/
# 下载数据包对应的地图
buildtool map get sunnyvale
# 启动dreamview+
aem bootstrap start --plus
启动 Dreamview+ 之后,在浏览器输入 localhost:8888
就可以进入 Dreamview+ 界面了。