【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.rhkb.cn/news/92409.html

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

相关文章

2023年7月京东冰箱行业品牌销售排行榜(京东运营数据分析)

作为日常使用的大家电之一,如今我国冰箱产业已渐趋饱满,市场增长有限。今年上半年,冰箱市场整体销额同比去年来看勉强保持小幅增长。不过,7月份,冰箱大盘的销售表现就略显萧条了。 根据鲸参谋电商数据分析平台的相关数…

NPM与外部服务的集成(下)

目录 1、撤消访问令牌 2、在CI/CD工作流中使用私有包 2.1 创建新的访问令牌 持续整合 持续部署 交互式工作流 CIDR白名单 2.2 将令牌设置为CI/CD服务器上的环境变量 2.3 创建并签入特定于项目的.npmrc文件 2.4 令牌安全 3、Docker和私有模块 3.1 背景:运…

Android的学习系列之Android Studio Setup安装

Android的学习系列之Android Studio Setup安装 [TOC](Android的学习系列之Android Studio Setup安装) 前言Android平台搭建总结 前言 还是项目需要,暂时搭建安卓的运行平台。 Android平台搭建 安装包 双击安装包,进入安装。 下一步 根据自己需求&a…

React源码解析18(7)------ 实现事件机制(onClick事件)

摘要 在上一篇中,我们实现了useState的hook,但由于没有实现事件机制,所以我们只能将setState挂载在window上。 而这一篇主要就是来实现事件系统,从而实现通过点击事件进行setState。 而在React中,虽然我们是将事件绑…

机器学习笔记 - 基于PyTorch + 类似ResNet的单目标检测

一、获取并了解数据 我们将处理年龄相关性黄斑变性 (AMD) 患者的眼部图像。 数据集下载地址,从下面的地址中,找到iChallenge-AMD,然后下载。 Baidu Research Open-Access Dataset - DownloadDownload Baidu Research Open-Access Datasethttps://ai.baidu.com/bro…

MAVEN利器:一文带你了解MAVEN以及如何配置

前言: 强大的构建工具——Maven。作为Java生态系统中的重要组成部分,Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用,Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…

禾赛科技Q2营收交付双新高,国产激光雷达从量变到质变

随着2022年激光雷达元年、2023年城市智能辅助驾驶(NOA)元年相继到来,激光雷达产业迎来爆发期。 今年以来,自动驾驶公司、汽车制造商以及移动出行公司等各路人马积极推动城市级别的智能辅助驾驶全面落地,北京、上海、深…

Windows - UWP - 网络不好的情况下安装(微软商店)MicrosoftStore的应用

Windows - UWP - 网络不好的情况下安装(微软商店)MicrosoftStore的应用 前言 UWP虽然几乎被微软抛弃了,但不得不否认UWP应用给用户带来的体验。沙箱的运行方式加上微软的审核,用户使用起来非常放心,并且完美契合Wind…

【elasticSearch系】3.完整搭建详尽版elk

话不多说,我们先看下经典的elk 是由哪些组件搭建组合起来的 elasticSearch和kibana搭建 可以查看之前我搭建elasticsearch和kibana 的这篇文章 logstash搭建 为了和之前我搭建elasticsearch和kibana版本保持一致,这里我们还是选择7.17.3 下载地址 点击下载,这里为了方…

207、仿真-51单片机脉搏心率与血氧报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&a…

Leetcode-每日一题【剑指 Offer 31. 栈的压入、弹出序列】

题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列&#xf…

phpstorm配置ftp同步文件到服务器

这里的默认快捷键 不是 CtrlS ;需要设置快捷键,这里原来是save all操作时上传文件到服务器; ** 设置好快捷键后按 CtrlS就会同步文件(添加删除文件后保存,服务器也会同步) ** 搜索出save all 后&#xf…

FreeRTOS模板-开启资源追踪

目录 开启宏定义 使用API函数 演示效果 测试代码 开启宏定义 #define configUSE_TRACE_FACILITY 1 //TODO 查看任务状态#ifndef INCLUDE_uxTaskGetStackHighWaterMark#define INCLUDE_uxTaskGetStackHighWaterMark 1 //TODO 开启堆栈使用剩余量的检测 #…

一种多策略下RabbitMQ的延时队列实现

1.为什么会用到延时队列? 场景: 最近在开发一款系统中遇到这样一个场景,A系统开通套餐需要把套餐信息以邮件的形式发送给相关工作人员,经过人工审核通过后,在B系统里面开通,A系统会调B系统套餐列表接口查询套餐是否开通成功,开通成功则从A系统去完成订单,假如超过设定时间未开…

【javaweb】学习日记Day2 - JavaScript入门

目录 一、引入方式 1、内部脚本 2、外部脚本 二、基础语法 1、输出语句 2、定义变量类型 3、数据类型 4、运算符 (1)类型转换 5、函数 (1)方法一 (2)方法二 三、对象 1、Array数组 &#x…

设计HTML5表单

HTML5基于Web Forms 2.0标准对HTML4表单进行全面升级,在保持简便、易用的基础上,新增了很多控件和属性,从而减轻了开发人员的负担。表单为访问者提供了与网站进行互动的途径,完整的表单一般由控件和脚本两部分组成。 1、认识HTML…

Martin_DHCP_V3.0 (DHCP自动化泛洪攻击GUI)

Github>https://github.com/MartinxMax/Martin_DHCP_V3.0 首页 Martin_DHCP_V3.0 自动化DHCP洪泛攻击 Martin_DHCP_V3.0 使用方法 安装三方库 #python3 1.RunMe_Install_Packet.py 攻击路由器 #python3 Martin_DHCP_Attack.py 填写网卡 填写攻击次数 开始运行

【Linux】进程地址空间

目录 一、回顾我们以前学习的地址空间二、进程地址空间三、进程地址空间的作用四、解决一个地址出现两个值的问题 一、回顾我们以前学习的地址空间 这个内存布局真是的我们实实在在的内存嘛&#xff1f; 答案是不是的 下面我们来验证 1 #include<stdio.h>2 #include<a…

腾讯云CVM服务器竞价实例是什么?和按量计费有什么区别?

腾讯云服务器CVM计费模式分为包年包月、按量计费和竞价实例&#xff0c;什么是竞价实例&#xff1f;竞价实例和按量付费相类似&#xff0c;优势是价格更划算&#xff0c;缺点是云服务器实例有被自动释放风险&#xff0c;腾讯云服务器网来详细说下什么是竞价实例&#xff1f;以及…

linux I/O性能优化

Linux 文件系统 磁盘和文件系统的关系&#xff1a; 磁盘为系统提供了最基本的持久化存储。 文件系统则在磁盘的基础上&#xff0c;提供了一个用来管理文件的树状结构。 文件系统工作原理 索引节点和目录项 文件系统&#xff0c;本身是对存储设备上的文件&#xff0c;进行组织…