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

news2024/11/20 3:51:59

在这里插入图片描述
前言

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.coloradmin.cn/o/885581.html

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

相关文章

k8s问题汇总

作者前言 本文章为记录使用k8s遇到的问题和解决方法,文章持续更新中… 目录 作者前言正常配置ingress,但是访问错误添加工作节点报错安装k8s报错使用kubectl命令报错container没有运行安装会出现kubelet异常,无法识别删除k8s集群访问dashboa…

Ruby软件外包开发语言特点

Ruby 是一种动态、开放源代码的编程语言,它注重简洁性和开发人员的幸福感。在许多方面都具有优点,但由于其动态类型和解释执行的特性,它可能不适合某些对性能和类型安全性要求较高的场景。下面和大家分享 Ruby 语言的一些主要特点以及适用的场…

小红书种草营销深度解析:如何打造爆款产品

小红书作为一款深受年轻人喜爱的社交电商平台,已然成为众多品牌竞相争夺的营销阵地。小红书种草营销作为一种新兴的营销方式,其强大的传播效果和转化率备受品牌商家青睐。本文伯乐网络传媒将深入探讨小红书种草营销如何做,为品牌商家提供一份…

如何配置Apple推送证书 push证书

如何配置Apple推送证书 push证书 转载:如何配置Apple推送证书 push证书 想要制作push证书,就需要使用快捷工具appuploader工具制 作证书,然后使用Apple的推送功能配置push证书,就可以得到了。PS:push没有描述文件&a…

Python爬虫——scrapy_当当网图书管道封装

创建爬虫项目 srcapy startproject scrapy_dangdang进入到spider文件里创建爬虫文件(这里爬取的是青春文学,仙侠玄幻分类) srcapy genspider dang http://category.dangdang.com/cp01.01.07.00.00.00.html获取图片、名字和价格 # 所有的se…

Android-网络访问技术Retrofit浅析

Retrofit是一种基于注解的网络请求库,专门用于在Android应用中进行网络访问。它使用简洁的方式定义了网络请求的接口,并自动将请求结果解析为Java对象。Retrofit的核心原理是利用了Java的动态代理技术,将网络请求接口的注解信息转化为具体的网…

使用冒泡排序模拟qsort

目录 冒泡排序🐒: 冒泡排序特点👀: 模拟&改造🔧: 1、让冒泡排序能够接受其他的数据类型,使用参数的改造。🚗 2、比较的方式进行改造❤ 思路分析🧠:…

unity中导入自定义模型

unity中导入自定义模型 准备软件步骤1从SoildWorks中导出模型为STEP格式2将STEP格式文件导入到3DS Max中,再导出为FBX格式3将FBX格式导入至unity中 准备软件 需要SoildWorks、3DS Max和Unity 3D软件步骤 1从SoildWorks中导出模型为STEP格式 2将STEP格式文件导入到…

[PyTorch][chapter 52][迁移学习]

前言: 迁移学习(Transfer Learning)是一种机器学习方法,它通过将一个领域中的知识和经验迁移到另一个相关领域中,来加速和改进新领域的学习和解决问题的能力。 这里面主要结合前面ResNet18 例子,详细讲解一…

如何用chatGPT回答女朋友的死亡问题

引言 在爱情的迷雾中,女友的死结问题常常令人犯难。然而,借助ChatGPT的智慧,或许能够开辟一片全新的天地。其独到的见解和无限的可能性,或将为我们的情感困惑带来意想不到的解答。正如科技在塑造我们的生活,也或许能为…

家居行业,瞄准软文营销

对于很多家居品牌来说,传统营销形式越来越无法打动他们,在以渠道为王的环境下,家居品牌更需要思考地是:要带给消费者新的价值和体验究竟是什么? 因为在目前的大环境下,在内容信息上展现的生动性、直接性上、…

Spark SQL优化:NOT IN子查询优化解决

背景 有如下的数据查询场景。 SELECT a,b,c,d,e,f FROM xxx.BBBB WHERE dt ${zdt.addDay(0).format(yyyy-MM-dd)} AND predict_type not IN ( SELECT distinct a FROM xxx.AAAAAWHERE dt ${zdt.addDay(0).format(yyyy-MM-dd)} ) 分析 通过查看SQL语句的执行计划基本…

全面管控企业资产,这个小妙招做到了!

随着全球金融市场的复杂性增加以及资产多样化的趋势,确保资产的最大价值和最小风险已经成为一个迫切的需求。资产管理系统能够更好地掌握自己的财务状况,做出明智的决策。 从个人投资者到大型企业,都可以从中受益,无论是实时监控投…

腾讯云GPU服务器GN7实例NVIDIA T4 GPU卡

腾讯云GPU服务器GN7实例搭载1颗 NVIDIA T4 GPU,8核32G配置,系统盘为100G 高性能云硬盘,自带5M公网带宽,系统镜像可选Linux和Windows,地域可选广州/上海/北京/新加坡/南京/重庆/成都/首尔/中国香港/德国/东京/曼谷/硅谷…

C#如何打包EXE程序生成setup安装文件

项目结束之后,有需要将winForm程序打包成.exe文件提供给用户。 这里记录一下打包过程。 1:首先获取打包插件,如果你的VS已经安装,忽略此步骤。 点击 工具->扩展和更新,选择联机,搜索installer&#x…

AntPro 模版代码

1 ProTable 实现选择和反显 页面1 页面2 选择页面2选择之后反显到页面1 &#xff0c;且支持跨页选择。同时下次进来页面1展示的数据要反显到页面2被选中。 页面2代码 <ProTablerowKey"id"columns{columns}request{(params: any) > {const newParams {pageI…

androidstudio引入jar包

如图&#xff0c;选择project 然后在src下创建一个lib文件夹&#xff0c;将要添加到项目中的jar包粘贴lib里面&#xff0c;如图 接着选中jar包&#xff0c;右击&#xff0c;会出一个弹窗&#xff0c;选择Add As Library…&#xff0c;如图 会出现一个弹窗&#xff0c;点击OK…

安防监控视频云存储平台EasyCVRH.265转码功能更新:新增分辨率配置

安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储…

<kernel>kernel 6.4 USB-之-hub_event()分析

&#xff1c;kernel&#xff1e;kernel 6.4 USB-之-hub_event()分析 本文是基于linux kernel 6.4版本内核分析&#xff1b;源码下载路径&#xff1a;linux kernel 本文主要分析hub_event()函数的内容&#xff1b;hub_event()函数是Linux内核USB子系统中的一个函数&#xff0c…

面试之ReentrantLock

一&#xff0c;ReentrantLock 1.ReentrantLock是什么&#xff1f; ReentrantLock实现了Lock接口&#xff0c;是一个可重入且独占式的锁&#xff0c;和Synchronized关键字类似&#xff0c;不过ReentrantLock更灵活&#xff0c;更强大&#xff0c;增加了轮询、超时、中断、公平锁…