【Apollo】推动创新:探索阿波罗自动驾驶的进步(含安装 Apollo的详细教程)


前言

Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。

开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、成熟、安全的自动驾驶技术和数据开放给业界,旨在建立一个以合作为中心的生态体系,发挥百度在人工智能领域的技术优势,为合作伙伴赋能,共同促进自动驾驶产业的发展和创新。

Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等自动驾驶软件能力以及高精地图、仿真、数据流水线等自动驾驶云服务,帮助开发者从 0 到 1 快速搭建一套自动驾驶系统。


📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。

📗本文收录于Apollo的学习录系列,大家有兴趣的可以看一看

📘相关专栏C语言初阶C语言进阶系列等,大家有兴趣的可以看一看

📙Python零基础入门系列,Java入门篇系列、docker技术篇系列正在发展中,喜欢Python、Java、docker的朋友们可以关注一下哦!

探索阿波罗自动驾驶的进步

  • 步骤一:安装基础软件
    • [1. 安装 Ubuntu Linux](#1. 安装 Ubuntu Linux)
    • [2. 安装 Docker Engine](#2. 安装 Docker Engine)
  • [步骤二:安装 Apollo 环境管理工具](#步骤二:安装 Apollo 环境管理工具)
    • [1. 添加 apt 源](#1. 添加 apt 源)
    • [2. 安装 apollo-neo-env-manager](#2. 安装 apollo-neo-env-manager)
  • [步骤三(可选):获取 GPU 支持](#步骤三(可选):获取 GPU 支持)
    • [1. 安装显卡驱动](#1. 安装显卡驱动)
    • [2. 安装 Nvidia container toolkit](#2. 安装 Nvidia container toolkit)
  • [步骤四:创建和进入 Apollo 环境容器](#步骤四:创建和进入 Apollo 环境容器)
    • [1. 创建工作空间](#1. 创建工作空间)
    • [2. 启动 apollo 环境容器](#2. 启动 apollo 环境容器)
    • [3. 进入 apollo 环境容器](#3. 进入 apollo 环境容器)
    • [4. 初始化工作空间](#4. 初始化工作空间)

软件包安装

本文主要介绍在如何使用软件包(即 deb 包)的方式来安装 Apollo,相对于源码方式安装,软件包安装方式不需要编译,更加快捷。但是对环境的支持比较单一,如果在自定义环境内安装,请移步源码安装方式

本文假定用户已具备基本 Linux 工作知识。

步骤一:安装基础软件

1. 安装 Ubuntu Linux

安装 Ubuntu 18.04+ 的步骤,参见 官方安装指南。

注意:虽然其他发布版本的 Linux 也可能没问题,但我们只在纯净的 Ubuntu 系统,即 Ubuntu 18.04.5 LTS (Bionic Beaver) 中测试过 Apollo。因此,推荐您使用 Ubuntu 18.04.5 作为主机的操作系统。

完成安装后更新相关软件:

bash 复制代码
sudo apt-get update
sudo apt-get upgrade

注意:若要完成更新,需要保证网络连接。

2. 安装 Docker Engine

Apollo 依赖于 Docker 19.03+。安装 Docker 引擎,您可以根据官方文档进行安装:

参见 Install Docker Engine on Ubuntu。

您还可以者通过 Apollo 提供的安装脚本直接安装:

bash 复制代码
wget http://apollo-pkg-beta.bj.bcebos.com/docker_install.sh
bash docker_install.sh

这个过程可能会运行多次脚本,根据脚本提示执行即可。

步骤二:安装 Apollo 环境管理工具

Apollo 环境管理工具是一个帮忙管理和启动 Apollo 环境容器的命令行工具。

1. 添加 apt 源

添加源和 key:

bash 复制代码
sudo bash -c "echo 'deb https://apollo-pkg-beta.cdn.bcebos.com/neo/beta bionic main' >> /etc/apt/sources.list"
wget -O - https://apollo-pkg-beta.cdn.bcebos.com/neo/beta/key/deb.gpg.key | sudo apt-key add -
sudo apt update

2. 安装 apollo-neo-env-manager

执行以下命令安装:

bash 复制代码
sudo apt install apollo-neo-env-manager-dev

成功安装后即可使用

bash 复制代码
aem -h

如果您对 aem 工具的功能感兴趣,可以查阅 aem - Apollo 环境管理工具。

步骤三(可选):获取 GPU 支持

Apollo某些模块需要GPU的支持才能够编译、运行(例如感知模块),如果您需要使用此类模块,需要安装Nvidia显卡驱动以及Nvidia container toolkit以获取GPU支持。

1. 安装显卡驱动

通过以下指令来安装Nvidia显卡驱动:

bash 复制代码
sudo apt-get update 
sudo apt-add-repository multiverse 
sudo apt-get update 
sudo apt-get install nvidia-driver-455

安装完毕后,您可以通过nvidia-smi指令来检查驱动是否安装成功,如果一切正常,您可以看到类似以下的提示:

bash 复制代码
Tue Jan  3 12:04:21 2023
+-----------------------------------------------------------------------------+
| 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 1080    Off  | 00000000:01:00.0 Off |                  N/A |
|  0%   38C    P8     7W / 198W |    239MiB /  8118MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      2566      G   /usr/lib/xorg/Xorg                 18MiB |
|    0   N/A  N/A      2657      G   /usr/bin/gnome-shell               67MiB |
|    0   N/A  N/A      6104      G   /usr/lib/xorg/Xorg                132MiB |
|    0   N/A  N/A      6234      G   /usr/bin/gnome-shell               13MiB |
|    0   N/A  N/A      7440      G   gnome-control-center                1MiB |
+-----------------------------------------------------------------------------+

2. 安装 Nvidia container toolkit

为了在容器内获得 GPU 支持,在安装完 docker 后需要安装 NVIDIA Container Toolkit。 运行以下指令安装 NVIDIA Container Toolkit:

bash 复制代码
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:

bash 复制代码
sudo systemctl restart docker

步骤四:创建和进入 Apollo 环境容器

1. 创建工作空间

创建并进入目录

bash 复制代码
mkdir application-demo
cd application-demo

2. 启动 apollo 环境容器

bash 复制代码
aem start

注意:默认的环境镜像已经包含 gpu 相关的依赖库,如您想以 gpu 模式启动容器可以使用start_gpu子命令。在使用start_gpu命令前,请务必确保已正确安装Nvidia显卡驱动以及Nvidia container toolkit

如果一切正常,将会见到类似下图的提示:

3. 进入 apollo 环境容器

bash 复制代码
aem enter

脚本执行成功后,将显示以下信息,您将进入 Apollo 的运行容器:

bash 复制代码
user_name@in-dev-docker:/apollo_workspace# 

工作空间文件夹将被挂载到容器的 /apollo_workspace 中。

4. 初始化工作空间

bash 复制代码
aem init

至此 Apollo 环境管理工具及容器已经安装完成,接下来请跟着 QuickStart 文档根据不同的使用场景按需安装不同的模块。

更全面的Apollo社区官网文档

Apollo社区官网文档,主要为新手开发者提供Apollo相关介绍、以及上机场景和上车场景的实践说明,让新手开发者能快速了解Apollo并上手实操。在8.0中,我们优化了社区官网文档的结构,从开发者使用场景出发,针对不同场景提供应用实践案例指导以及扩展开发指导。

社区官网文档:https://apollo.baidu.com/community/Apollo-Homepage-Document/Apollo_Doc_CN_8_0。

另外还有活动任务《星火培训》:星火培训。

Apollo 8.0从"新架构"、"新能力"两个重要层面进行了全面升级,从开发者的实际需求出发进行改良,帮助开发者更好、更快地熟悉和使用Apollo开放平台。此次Apollo开放平台8.0的推出,再次让Apollo开放平台在工程易用性上向前迈进一大步,降低操作难度、操作成本的门槛,让更多开发者可以简单方便地上手Apollo开放平台、投身自动驾驶技术领域。


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下⭐,谢谢大家!!!

制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。

相关推荐
梁萌1 小时前
Linux安装Docker
linux·运维·docker·helloworld·容器化部署
翱翔-蓝天1 小时前
在 CentOS 系统上安装 ClickHouse
运维·docker·容器
sp_fyf_20241 小时前
【大语言模型】ACL2024论文-35 WAV2GLOSS:从语音生成插值注解文本
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·数据挖掘
AITIME论道1 小时前
论文解读 | EMNLP2024 一种用于大语言模型版本更新的学习率路径切换训练范式
人工智能·深度学习·学习·机器学习·语言模型
彩虹糖_haha1 小时前
Linux高并发服务器开发 第五天(压缩解压缩/vim编辑器/查找替换/分屏操作/vim的配置)
linux·运维·服务器
旺仔学IT1 小时前
Centos7中使用yum命令时候报错 “Could not resolve host: mirrorlist.centos.org; 未知的错误“
linux·运维·centos
明明真系叻2 小时前
第二十六周机器学习笔记:PINN求正反解求PDE文献阅读——正问题
人工智能·笔记·深度学习·机器学习·1024程序员节
qq_433618442 小时前
shell 编程(五)
linux·运维·服务器
VVVVWeiYee3 小时前
项目2路由交换
运维·服务器·网络·网络协议·信息与通信
88号技师3 小时前
2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码
人工智能·算法·matlab·优化算法