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

在这里插入图片描述
前言

Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。
开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、成熟、安全的自动驾驶技术和数据开放给业界,旨在建立一个以合作为中心的生态体系,发挥百度在人工智能领域的技术优势,为合作伙伴赋能,共同促进自动驾驶产业的发展和创新。
Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等自动驾驶软件能力以及高精地图、仿真、数据流水线等自动驾驶云服务,帮助开发者从 0 到 1 快速搭建一套自动驾驶系统。


📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于Apollo的学习录系列,大家有兴趣的可以看一看
📘相关专栏C语言初阶、C语言进阶系列等,大家有兴趣的可以看一看
📙Python零基础入门系列,Java入门篇系列、docker技术篇系列正在发展中,喜欢Python、Java、docker的朋友们可以关注一下哦!

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

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

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

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

步骤一:安装基础软件

1. 安装 Ubuntu Linux

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

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

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

sudo apt-get update
sudo apt-get upgrade

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

2. 安装 Docker Engine

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

  参见 Install Docker Engine on Ubuntu。
  您还可以者通过 Apollo 提供的安装脚本直接安装:

wget http://apollo-pkg-beta.bj.bcebos.com/docker_install.sh
bash docker_install.sh

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

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

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

1. 添加 apt 源

添加源和 key:

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

执行以下命令安装:

sudo apt install apollo-neo-env-manager-dev

成功安装后即可使用

aem -h

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

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

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

1. 安装显卡驱动

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

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

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

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:

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 systemctl restart docker

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

1. 创建工作空间

创建并进入目录

mkdir application-demo
cd application-demo

2. 启动 apollo 环境容器

aem start

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

  如果一切正常,将会见到类似下图的提示:
在这里插入图片描述

3. 进入 apollo 环境容器

aem enter

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

user_name@in-dev-docker:/apollo_workspace# 

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

4. 初始化工作空间

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开放平台、投身自动驾驶技术领域。


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/39352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【密码学】维京密码

维京密码 瑞典罗特布鲁纳巨石上的图案看起来毫无意义,但是它确实是一种维京密码。如果我们注意到每组图案中长笔画和短笔画的数量,将得到一组数字2、4、2、3、3、5、2、3、3、6、3、5。组合配对得到24、23、35、23、36、35。现在考虑如图1.4所示的内容&a…

【变形金刚03】使用 Pytorch 开始构建transformer

一、说明 在本教程中,我们将使用 PyTorch 从头开始构建一个基本的转换器模型。Vaswani等人在论文“注意力是你所需要的一切”中引入的Transformer模型是一种深度学习架构,专为序列到序列任务而设计,例如机器翻译和文本摘要。它基于自我注意机…

iOS Epub阅读器改造记录

六个月前在这个YHEpubDemo阅读器的基础上做了一些优化,这里做一下记录。 1.首行缩进修复 由于分页的存在,新的一页的首行可能是新的一行,则应该缩进;也可能是前面一页段落的延续,这时候不应该缩进。YHEpubDemo基于XDS…

pycharm,VSCode 几个好用的插件

pycharm Tabnine AI Code 可以在编写程序的时候为你提供一些快捷方式,增加编程速度 Chinese 对英文不好的程序员来说是个不错的选择,可以将英文状态下的pycharm变为中文版的 ChatGPT 可以跟ai聊天,ai可以解决你80%的问题 ,也可以帮…

变形金刚:从零开始【01/2】

一、说明 在我们的日常生活中,无论你是否是数据科学家,你都在单向地使用变压器模型。例如。如果您使用的是 ChatGPT 或 GPT-4 或任何 GPT,那么在为您回答问题的框中是变压器的一部分。如果您是数据科学家或数据分析师,则可能正在使…

【BASH】回顾与知识点梳理(二十九)

【BASH】回顾与知识点梳理 二十九 二十九. 进程和工作管理29.1 什么是进程 (process)进程与程序 (process & program)子进程与父进程:fork and exec:进程呼叫的流程系统或网络服务:常驻在内存的进程 29.2 Linux 的多人多任务环境多人环境…

SAP MM学习笔记23-购买发注的账户分配类型(勘定Category)

SAP中控制财务凭证过账科目的是 账号分配类型(勘定Category)栏目。 ・账号分配类型(勘定Category)有: 1,K 原价Center(成本中心。用于消耗物料采购 的过账) 2,E 得意先…

LabVIEW对并行机器人结构进行建模仿真

LabVIEW对并行机器人结构进行建模仿真 为了对复杂机器人结构的数学模型进行建模、搜索、动画和验证,在工业机器人动态行为实验室中,设计并实现了具有五个自由度的单臂型机器人。在研究台上可以区分以下元素:带有直流电机和编码器的机器人;稳…

nvm管理node版本

nvm是什么? NVM全名叫做 nodejs version manage,即Node的版本管理工具。 使用NVM,可以通过命令很方便地在多个NodeJS版本之间进行切换。 nvm的下载与安装 下载地址:Releases coreybutler/nvm-windows (github.com) windows系统下载nvm-setup…

Arcgis中直接通过sde更新sqlserver空间数据库失败

问题 背景 不知道有没有人经历过这样一个情况,我们直接在Arcgis中通过sde更新serserver数据库会失败,就是虽然在sde更新sqlserver数据库,但是在Navicat中通过sql语句来查询,发现数据并没有更新,如:上图中,更新数据库后,第一张图是sde打开的sqlserver数据库,它的数据库…

项目管理工具和方法有哪些:了解项目管理的必备工具和有效方法

先谈谈什么是项目管理,简单直白,就是对项目进行管理。项目管理涉及有效的计划和对工作的系统管理,但很多工具可以使项目管理更有效、更高效。比如,Zoho Projects项目管理工具。 1.项目合理拆解 当确定了项目目标后,无疑…

我国农机自动驾驶系统需求日益增长,北斗系统赋能精准农业

中国现代农业的发展,离不开智能化、自动化设备,迫切需要自动驾驶系统与农用机械的密切结合。自动驾驶农机不仅能够缓解劳动力短缺问题,提升劳作生产效率,同时还能对农业进行智慧化升级,成为解决当下农业痛点的有效手段…

Pycharm社区版连接WSL2中的Mysql8.*

当前时间2023.08.13,Windows11中默认的WSL版本已经是2了,在WSL2中默认的Ubuntu版本已经是22.04,而Ubuntu22.04中默认的Mysql版本已经是8.*。 Wsl 2 中安装mysql WSL2中安装Mysql的方法参考自微软官方文档【开始使用适用于 Linux 的 Windows …

vector【2】模拟实现(超详解哦)

vector 引言(实现概述)接口实现详解默认成员函数构造函数析构函数赋值重载 迭代器容量size与capacityreserveresizeempty 元素访问数据修改inserterasepush_back与pop_backswap 模拟实现源码概览总结 引言(实现概述) 在前面&…

分布式定时任务系列5:XXL-job中blockingQueue的应用

传送门 分布式定时任务系列1:XXL-job安装 分布式定时任务系列2:XXL-job使用 分布式定时任务系列3:任务执行引擎设计 分布式定时任务系列4:任务执行引擎设计续 Java并发编程实战1:java中的阻塞队列 引子 这篇文章的…

MATLAB计算一组坐标点的相互距离(pdist、squareform、pdist2函数)

如果有一组坐标P(X,Y),包含多个点的X和Y坐标,计算其坐标点之间的相互距离 一、坐标点 P[1 1;5 2;3 6;8 8;4 5;5 1; 6 9];二、pdist函数 输出的结果是一维数组,获得任意两个坐标之间的距离,但没有对应关系 Dpdist(P)三、square…

JavaWeb-Servlet服务连接器(二)

目录 Request(获取请求信息) 1.获取请求行内容 2.解决乱码问题 3.获取请求头部分 4.获取请求体 5.其他功能 Request(获取请求信息) 工作流程: 1.通过请求的url的资源路径,tomcat会生成相应的Servlet实…

【单片机】DS2431,STM32,EEPROM读取与写入

芯片介绍: https://qq742971636.blog.csdn.net/article/details/132164189 接线 串口结果: 部分代码: #include "sys.h" #include "DS2431.h"unsigned char serialNb[8]; unsigned char write_data[128]; unsigned cha…

STM32入门学习之定时器输入捕获

1.定时器的输入捕获可以用来测量脉冲宽度或者测量频率。输入捕获的原理图如下: 假设定时器是向上计数。在图中,t1~t2之间的便是我们要测量的高电平的时间(脉冲宽度)。首先,设置定时器为上升沿捕获,如此一来,在t1时刻可…

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大

大家好,我是风雨无阻。 通过前面几篇文章的介绍,相信各位小伙伴,对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能,利用简单的几个单词,就可以生成完美的图片…