《Apollo 智能驾驶进阶课程》二、 高精地图

news2024/11/25 6:41:48

1. 高精地图与自动驾驶的关系

1.1 高精地图与自动驾驶

L3级别以上才需要高精地图

1.2 什么是高精地图

1.3 高精地图与导航地图

1.4 高精地图-基础模块

在这里插入图片描述

高精地图与定位模块的关系

现在主流的自动驾驶的定位方案有两种:一种是基于点云,另一种是基于Camera。其本身都是一种对周围环境的感知。
感知后是Feature提取,提取之后可以通过特征匹配最终得到精确结果。

高精地图与感知模块的关系

开发者可以把高精地图看作是离线的传感器,在高精地图里,道路元素的位置都被标注好了。
这样做不仅可以减少感知模块的工作量,而且可以解决Deep Learning 的部分缺陷。识别可能会有些误差,但先验之后可提高识别率。

高精地图与规划、预测、决策模块之间的关系

「规划模块」完成的工作主要有两个:第一是A点到B点的长距离规划;第二个是短距离规划。
「预测模块」的作用是把其他道路参与者的可能行驶的路径轨迹和行动预测出来。
「决策模块」主要是根据规划和预测的结果决定自动驾驶车辆是跟车、超车还是在红绿灯灯前停下等决策。
「控制模块」是把决策结果分解为一系列的控制行动,然后分发给控制模块执行。
高精地图给规划、预测和决策模块提供先验的知识,高精地图能够让车辆「决策」更加准确。

高精地图与安全模块

可能遭受4个维度的攻击:传感器、操作系统、控制系统和通信系统。

高精地图与仿真系统

1.5 高精地图的作用

静态的Perception

对于复杂的场景,将人类的经验赋予机器。

弥补系统性缺陷

自动驾驶需要非常复杂的计算系统,4G的传输速度并不能满足现阶段自动驾驶的海量数据传输需求。

64线激光雷达、Camera和其他传感器,每时每刻都会产生巨量的数据,这些数据不能传回云端,就不能采用互联网的模式:通过云端计算把结果发送给终端。

举个例子,高精地图告诉感知/控制模块,在你的双向通行的车道中有栅栏隔离,对向车道的车不可能过来,系统就可以放弃检测对向车道上的障碍物,有效地降低系统负担。

2. 高精地图的采集与生产

2.1 高精地图采集过程用道的传感器

GPS + IMU + 轮速计

2.2 高精地图采集过程中的制图方案

方案一 激光雷达

方案二 激光雷达融合Camera

其他方案 : 视觉制图

3. 高精地图的格式规范

3.1 高精地图的格式规范

对此,目前最主流的通用格式规范分NDS和OpenDRIVE两种。此外还有日本OMP公司的格式规范。

NDS: Navigation Data Standard
NDS有上百页格式文档,因此NDS把数据库做了细分,每个细分后的产品都能够独立更新升级。
其最典型表现是一个NDS不仅包括基本导航技术数据、B公司的POI数据(即地图上的一个点,地图上每一家商家店铺都可以被称之为一个POI数据点),还支持局部更新,即使是对一个国家或者省市的相关内容进行局部更新,都十分便捷。

NDS中另外一个非常重要的概念叫做Level(尺度),其含义类似于传统手机地图功能中的比例尺。
通过放大或缩小比例尺,来浏览全国或某个区域、某栋楼的地图信息。
分块技术作为地图领域中一项普遍通用的技术,也被应用到Level中。

OpenDRIVE
在运用OpenDRIVE格式规范表述道路时,会涉及Section、Lane、Junction、Tracking四个概念。

4. 业界高精地图产品

HERE + MobileEye + Google Waymo

4.1 HERE

HERE HD Live Map的四大特性:
基础地图的设计+ 众包更新(基于图像)+ 在云计算中映射学习 + 更新的地图

HERE HD Live Map采集方案:
HERE采集车,集成了16线激光雷达+ Camera + RTK天线+IMU。
HERE采集车会对地图进行预先制作,在数据采集后进行数据统计,经人工识别检查后,最后更新在地图中。

HERE HD Live Map众包方案:
车端通过Sensor进行信息采集(可认为一种视觉方案),可对点、道路、标志标牌通过Feature进行提取,可有效帮助我们更快的对地图进行更新。

HERE HD Live Map Learning方案:
不同于利用神经网络的图像处理方法,HERE利用点云分割技术对Features进行分析。在多次采集后,可将同一区域的点云补齐,但目前的图像处理方法已较为成熟。而点云技术(点云SLAM、点云分割、点云特征提取等)仍需完善发展。

HERE HD Live Map对地图的表述方式:
第一层是Road & Lane Model Layer(车道边界和区分界线)
第二层是Localization Model Layer(基于Camera或点云)
第三层是Activity Layer(动态信息层、道路实时信息)
第四层是Analytics Layer(司机驾驶习惯分析)

在HERE的解决方案中,可以通过检测与定位约束纵向行驶信息,车道线约束横向行驶信息。

4.2 MobileEye

相比于HERE,MobileEye更侧重于使用Camera,在图像处理方面也做得更好,使用视觉信息来进行辅助驾驶,是一种基于众包的视觉制图。

MobileEye把技术层次分为三个层次:
感知 + 映射(REM,众包更新地图) + 驾驶策略

Mobileye知名的REM(道路经验管理系统):

Mobileye的REM解决方案由三层组成:

  1. 采集器(任何装有摄影机的车辆);
  2. 云端;
  3. 自动驾驶车辆。

MobilEye把方案采集处理的过程归纳为"路书":
MobilEye把REM采集、发送云端、处理、发回车端的过程称为“路书”。搭载MobilEye的车端首先会对环境进行识别,然后进行语义分析和几何形状提取,将其压缩后打包上传,这个过程称为RSD。

4.3 Google Waymo

其车辆顶部可能搭载了激光雷达+视觉系统,车辆四周搭载了激光雷达。
其整体方案也是为激光雷达+视觉融合。

Here有很好基础优势。作为一家传统图商,他的用户基数可以保证地图以更快的速度和形式更新。

MobileEye更侧重于使用Camera,在图像处理方面也做得更好,使用视觉信息来进行辅助驾驶,是一种基于众包的视觉制图。

谷歌Waymo的技术实力雄厚,其自研的激光雷达据称可以检测到两个足球场(240米)外的物体数据。并且整体的生产成本比Velodyne的64线激光雷达的售价(8万美元)低90%左右,这对于开发者来说是非常诱人的价格。

5. Apollo地图采集方案

5.1 TomTom

5.2 Apollo地图采集流程

该方案的基础传感器配置有:平装的64线激光雷达,用于道路路面采集。
由于平装的64线激光雷达扫描高度比较低,还需要一个斜向上装的16线激光雷达,用于检测较高处的红绿灯、标牌等信息。
该方案的其他传感器还有GPS、IMU、长焦相机以及短焦相机。

5.3 基站搭建

采用了RTK基站,精度更好

5.4 地图采集硬件方案

5.5 地图数据服务平台

6. Apollo地图生产技术

6.1 生产流程

在城市道路环境下,高精地图生产分为数据采集、数据处理、元素识别、人工验证四个环节。

点云拼接:采集过程中出现信号不稳定时,需借助SLAM或其他方案,对Pose进行优化,才能将点云信息拼接,并形成一个完整的点云信息。
反射地图:点云拼接后,可将其压缩成可做标注、高度精确的反射地图,甚至基于反射地图来绘制高清地图。其生产过程与定位地图的制图方式一样。

6.2 全自动数据融合加工

简单的说,采集到的这些每秒 10 帧左右的图像,识别和融合都是自动化的。把 GPS、点云、图像等数据叠加到一起后,将进行道路标线、路沿、路牌、交通标志等等道路元素的识别。

6.3 基于深度学习 元素识别 + 人工验证

6.4 地图

Apollo高精地图主要应用在高精定位、环境感知、决策规划、仿真运行四大场景。
定位地图类似于整齐排列的小格子,存储了坐标信息和反射强度信息等,用于点云定位。

7. Apollo高精地图

高精地图与普通地图不同,高精地图主要服务于自动驾驶车辆,通过一套独特的导航体系,帮助自动驾驶解决系统性能问题,扩展传感器检测边界。

7.1 高精地图表征元素

在这里插入图片描述

道路包括左边界右边界。它可分为两个层次,一是道路级别,一是Lane(车道)级别。
每个Lane都有左边、右边界;道路也有道路边界,而且道路边界是强约束,即自动驾驶的时候,道路边界是永远不能压的。

7.2 车道模型

UTM坐标系

UTM坐标系把全球分成60个区域带(Zone),每个Zone里面都是相当于Zone中心的一个局部坐标系,如上所示。

84坐标系

84坐标系是一套全球经纬度,也是高精地图里面使用的坐标系。
在该坐标系中,把整个地球想象成是一个椭球,地面的高度是相对于椭球面的一个偏移。高由正数表示,低由负数表示。

Track坐标系

Track坐标系是基于st的,如上图所示。s是纵向,t是横向。这个坐标系用来表述一个元素跟Lane之间关系,描述它位于Lane的什么位置,相对于Lane起点的偏移量是多少。

7.3 Apollo OpenDrive规范

Apollo OpenDRIVE把所有元素做了归类。

在这里插入图片描述

7.4 HD-Map引擎

index检索某个区域某点附近的元素特征…

7.5 政策方面

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

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

相关文章

投票系统(前后端分离)

1.投票系统的介绍 投票系统是一种用于组织选举和投票的软件系统,它可以帮助政府、企业、组织和社区等各种机构进行公正、透明和高效的投票活动。投票系统的主要功能包括:选民身份验证、投票管理、计票和结果公布等。 选民身份验证是指投票系统可以通过…

SpringCloud Sleuth/Zipkin学习

SpringCloud Sleuth/Zipkin 文章目录 SpringCloud Sleuth/Zipkin1 Sleuth/Zipkin 简介2 Sleuth/ZipKin-搭建链路监控实例 1 Sleuth/Zipkin 简介 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用, 来协同产生最后的请求结果&…

电脑右键删除的文件如何恢复?提供了4种方法

电脑上不小心删除文件是很常见的一件事。比如在使用右键删除的情况下,但是,误删并不代表永远丧失这个文件,因为我们可以通过一些方法来恢复右键删除的文件。本文提供了4种方法,你可以根据具体的数据丢失情况选择合适的方法。 方法…

【Python】列表 List ③ ( 查询操作 / 修改操作 | 列表查询操作 List#index | 修改列表指定位置元素值 )

文章目录 一、列表查询操作1、List#index 函数简介2、代码示例 - 列表查询3、列表查询 ValueError 报错 二、修改列表指定索引元素1、语法简介2、代码示例 - 使用正向 / 反向索引修改指定元素 一、列表查询操作 1、List#index 函数简介 列表 List 查询功能 , 通过 List#index 函…

PyTorch 深度学习 || 专题一:神经网络基础

神经网络基础 神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。 神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器…

【JAVA】双向链表详解

【JAVA】双向链表详解 双向链表的定义双向链表的初步实现(准备)双向链表的操作一. 打印链表二. 得到链表长度三. 插入操作3.1 头插法3.2 尾插法3.3 任意位置插入 四. 删除操作4.1 删除第一次出现为key的节点(3种情况)4.2 删除所以…

Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(四)

今天开始使用 vue3 ts 搭建一个项目管理的后台,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行&…

保姆级别ps bate版本下载

前言:最近的ps bete版本在抖音也是上了热搜,时不时就能刷到一个,相信大家也知道ai带来的魅力,真的很强,那我们就开始安装教程吧。 ​过程: 先打开链接:Adobe Creative Cloud | Details and pr…

使用外部工具横向移动

Smbexe、Psexec Psexec PsExec是一种轻巧的telnet代替品,可让您在其他系统上执行进程,并为控制台应用提供完整的交互性,无需手动安装客户端软件。 原理: 1、ipc$连接,释放Psexesvc.exe 2、OpenSCManager打开受害者…

如何使用ChatGPT自带插件

OpenAI的插件将ChatGPT连接到第三方应用程序。这些插件使ChatGPT能够与开发者定义的API进行交互,增强ChatGPT的能力,并使其能够执行广泛的操作。插件使ChatGPT能够做如下事情: 获取实时信息;例如,体育比分&#xff0c…

采样率(压缩比)对OMP算法的影响

前面详细分析了OMP重构算法原理以及实现,本篇主要分析采样率对OMP算法的影响。 OMP重构算法的流程为 以下分析采样率对OMP算法的影响。 先对一维信号重构进行分析,表1是OMP算法中采样率对重构的MSE和时间的对应表格: 表1:MP算法采…

04-Springbooot与Spring Cloud Alibaba搭建后端架构

1、创建Springbooot父工程 1.1、使用快速创建Springbooot工程的方式: 1.2、项目使用Maven进行管理 settings.xml,配好了阿里镜像 02-maven的安装配置_NikoWord的博客-CSDN博客 2、项目初始化配置 01-IDEA使用技巧_NikoWord的博客-CSDN博客 04-设置…

VS2010 C语言DLL项目hello world程序以及win32控制台程序调用dll示例

一、使用Visual Studio 2010编写C语言 DLL项目hello world程序 1.点击桌面 VS2010 图标,运行程序。(或者通过菜单栏打开程序) 2.点击【文件】 -> 【新建】 -> 【项目】 3.点击【VisualC】和【win32控制台应用程序】,设置好名称和存储位置&#xf…

白盒测试方法

为什么要进行白盒测试? 如果所有软件错误的根源都可以追溯到某个唯一原因,那么问题就简单了。然而,事实上一个bug 常常是由多个因素共同导致的,如下图所示。 黑盒查不到的问题 假设此时开发工作已结束,程序送交到测试…

飞腾FT2000实战开发-GPIO的配置

目录 环境: 飞腾GPIO介绍: 临时配置: 永久配置: 环境: CPU:FT2000(64位,四核) 操作系统:linux-4.4.131-20200710 内核:kylin4.0.2 飞腾GPIO介绍&#x…

JavaScript创建二维数组踩坑记录

需求:创建一个m*n且元素值为0的二维数组 碎碎念 1、 今天刷Leetcode时,遇见一个这样的需求,机智如我,定然不会通过双重for循环来创建,于是,我写了这样一行代码 const dimensionalArray new Array(m).fi…

Spring Boot 加载自定义配置文件

文章目录 一、为什么需要加载自定义配置文件二、使用PropertySource加载自定义配置文件(一)创建Spring Boot项目(二)创建自定义配置文件(三)创建自定义配置类(四)编写测试方法&#…

硅谷甄选 Blog_01-搭建后台管理系统模板

搭建后台管理系统模板分为两大步骤: 项目初始化项目配置 项目初始化 环境准备 node:v16.16.0pnpm:v7.22.0 初始化项目 全局安装pnpm指令: npm i -g pnpm项目初始化指令: pnpm create vite如下图所示进行项目的…

嵌入式BSP工程师基本任务分析

到底什么是BSP工程师呢?来看这篇文章吧 一、嵌入式系统 要明白什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)说起。维基百科上对嵌入式系统的定义如下: 嵌入式系统(Embedded System&#xff0…

5 个强大的 HTML5 API

HTML5提供了一些非常强大的JavaScript和HTML API,来帮助开发者构建精彩的桌面和移动应用程序。本文将介绍5个新型的API,希望对你的开发工作有所帮助。 1. 全屏API(Fullscreen API) 该API允许开发者以编程方式将Web应用程序全屏运…