Apollo进阶课程 ⑫ | Apollo高精地图

目录

Apollo高精地图表征元素

Apollo车道模型

UTM坐标系

84坐标系

Track坐标系

Apollo opDRIVE规范

HDMAP引擎

高精地图在政策方面的挑战


原文链接:进阶课程 ⑫ | Apollo高精地图 

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

目前 Apollo 内部高精地图主要应用在高精定位环境感知决策规划仿真运行四大场景,帮助解决林荫道路GPS信号弱、红绿灯定位与感知以及十字路口复杂等导航难题。

上周阿波君为大家详细介绍了「Apollo进阶课程⑪丨Apollo地图生产技术」。

详细讲解了高精地图生产的四个环节:数据采集、数据处理、元素识别、人工验证通过全自动数据融合加工和基于深度学习的地图要素识别方法,最后进行人工验证生产的全部过程。

本周阿波君将与大家分享Apollo高精地图(高精地图的表征和规范。下面,我们一起进入进阶课程第12期。


Apollo高精地图表征元素

Apollo高精地图能够表征的元素如下图所示,包括道路、路口、交通信号灯、逻辑关系元素以及其他的道路对象元素。

                                                                                                高精地图的数据元素

道路包括左边界右边界。它可分为两个层次,一是道路级别,一是Lane(车道)级别。

每个Lane都有左边、右边界;道路也有道路边界,而且道路边界是强约束,即自动驾驶的时候,道路边界是永远不能压的。车道线理论上也是不能压的,但是如果在紧急情况下可以压车道线,比如说可以越过虚黄线进行借道超车。

路口是一个相对复杂的场景,可以进一步细分为路口边界和虚拟车道。路口边界主要用于感知。

可以通过路口的边界,对感知进行过滤。如果感知识别到的静态物体不在地图的路口边界之内,就可以暂时忽略它。虚拟车道主要是用来路口的行驶引导。

交通信号灯可以分为红绿灯和其他道路标志。高精地图会为红绿灯提供一个三维空间位置,其次也会提供红绿灯跟车道之间的关联关系,即告知当前所在车道,应该看哪个灯。

道路标志主要包括人行横道,停止线以及一些路上的文字信息。这些信息可以用于各个模块,例如感知、PNC等。

逻辑关系表述。当前,地图中各个元素之间的关系并没有嵌入到元素的表述中,而是使用overlap来表述两个元素之间的关系。

Overlap主要是用来描述两个元素的空间关系。

如下图所示,Lane和Junction在空间上有重叠,它们之间就会有Overlap。

                                                                                                Overlap关系


Apollo车道模型

                                                                                                高精地图的车道模型

上图给出了Apollo的车道模型及其相关描述元素。它与openDRIVE大致的规则是一样的,把纵向切成Section,横向还是使用Lane分割。

该车道模型包含了很多元素属性。其中Left road_sample主要用来描述中心线到两个边界的距离,该边界指的是车道线边界。

Left road sample和Right road sample主要用来表述车道中心线到道路的物理边界的距离。

路口表述:路口分为真实路口和十字路口。在实践过程中,发现除了真实路口之外,在车道数变化的时候,比如从两车道变到三车道,需要感知周围有没有车辆,在Apollo高精地图里面也把这种情况处理成一个路口。

这也是In road和Cross road的区别。

                                                                                                高精地图的Junction模型


UTM坐标系

                                                                                                高精地图的UTM坐标系

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

UTM坐标系描述的位置十分精确。目前,Apollo内部主要采用UTM坐标系。


84坐标系

84坐标系是一套全球经纬度,也是高精地图里面使用的坐标系。

在该坐标系中,把整个地球想象成是一个椭球,地面的高度是相对于椭球面的一个偏移。高由正数表示,低由负数表示。


Track坐标系

                                                                                                高精地图的Track坐标系

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


Apollo opDRIVE规范

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

类似于Road和Junction。路上的所有的地面标识都归属为Objects,所有的标牌都归属为Signal,并通过Overlap把它们关联起来,如下图所示。

                                                                                                Apollo的OpenDrive规范

Apollo的OpenDRIVE跟标准OpenDRIVE的区别主要有以下四点。

首先,元素形状的表达方式不同。

标准OpenDRIVE是基于参考线加偏移,并采用方程来描述。

Apollo里面的OpenDRIVE,都是坐标点,没有采用方程的方式。采用方程方式的好处在于数据量非常小,通过三四个参数就可以描述一个非常长的线。

采用坐标点的方式,数据量会稍微大一点。但是也有很多的好处。第一,用点表示对于下游的计算非常友好,不需要再重新通过线去做点的采样。

第二,在道路急于转弯的地方,原始的OpenDRIVE把基于Reference Line的方式还原成点的方式,会导致道路上存在毛刺。这种处理方式对于无人驾驶来说非常危险。

一旦道路出现毛刺,就会导致无人驾驶车猛打方向盘,可能直接冲到路边上去。

其次,Apollo对OpenDRIVE进行了元素类型的扩展。比如增加了禁停区,人行横道、减速带等元素的藐视。

第三是增加了一些道路元素关系的表述比如新增了Junction与Junction内元素的关联关系。

最后还增加了诸如停止线与红绿灯的关联关系,中心线到边界的距离等的描述。


HDMAP引擎

                                                                                                高精地图引擎

HDMAP引擎是Apollo里面用于从HDMAP里面提取相关元素给下游的一个模块。它的结构框图如上图所示。

HDMAP 引擎可以通过ID去检索一个元素,也可以通过空间位置查找元素,比如给定一个点和半径,可以把这个范围之内所有的红绿灯都提出来。


高精地图在政策方面的挑战

在国内,采集地图属于国家机密事项并不是任何人都可以做测绘,并不是每一家厂商或者公司都有资格采集地图。

采集地图,必须要经过国家测绘部门/安全部门的审批。

同时,测绘得到的数据需要进行加密。高程、曲率、坡度等在高精地图里面是不允许表述的,但这些数据对于无人驾驶又是必须的。如何在符合国家安全要求和技术需求之间找到平衡,这仍是自动驾驶发展所需要正视、解决的问题

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

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

相关文章

一步步编写操作系统 6 启动bochs

运行bochs 终于安装完成了,虽然这过程中有可能会出现各种各样的问题,但还是值得庆祝的,对Linux不熟的朋友第一次就搞定了这么个硬货,我理解您此时的喜大普奔之情,哈哈,给大家点赞。顺便说一句,…

Apollo技能图谱2.0焕新发布 更新7大能力91个知识点

阿波君 Apollo开发者社区 2月26日 过去的一年里,Apollo发展迅速,向智能交通不断渗透。从2.5到3.5版本,无论控制系统的升级、高清地图的泛用和车路协同技术服务的推进,无不在推动自动驾驶技术从开源向开辟商业化新格局位移。 在开…

一步步编写操作系统 07 开机启动bios

bios是如何苏醒的 bios其实一直睡在某个地方,直到被唤醒……前面热火朝天的说了bios的功能和内存布局,似乎还没说到正题上,bios是如何启动的呢。因为bios是计算机上第一个运行的软件,所以它不可能自己加载自己,由此可…

0.《沉浸式线性代数》:前言

今天介绍一本新书《immersive linear algebra》:世界上第一本具有完全交互式图形的线性代数书。本书目前已经更新完毕。 作者是:JacobStrm,Kallestrm和Tomas Akenine-Mller,全文共包含11个部分:前言和10个正文章节。内…

Apollo进阶课程 ⑬ | Apollo无人车自定位技术入门

目录 1.什么是无人车自定位系统 2.为什么无人车需要精确的定位系统 2.1 激光定位 2.2 视觉定位 2.3 惯性导航 2.4 多传感器融合定位 原文链接:进阶课程 ⑬ | Apollo无人车自定位技术入门 上周阿波君为大家详细介绍了「Apollo进阶课程⑫丨Apollo地图生产技术」…

一步步编写操作系统 08 bios跳转到神奇的内存地址0x7c00

为什么是0x7c00 计算机执行到这份上,bios也即将完成自己的历史使命了,完成之后,它又将睡去。想到这里,心中不免一丝忧伤,甚至有些许挽留它的想法。可是,这就是它的命,它生来被设计成这样&…

Apollo进阶课程⑭ | Apollo自动定位技术——三维几何变换和坐标系介绍

目录 1.三维几何变换---旋转 2.三维几何变换----平移 2.1刚体的位置和朝向 3. 坐标系 3.1 ECI地心惯性坐标系 3.2 ECFF地心地固坐标系 3.3当地水平坐标系 3.4 UTM坐标系 3.5 车体坐标系 3.6IMU坐标系 3.7 相机坐标系 3.8 激光雷达坐标系 3.9 无人车定位信息中涉及…

一步步编写操作系统 09 写个mbr

有点不好意思了,说了好久,才说到实质性的东西,好了,赶紧给客官上菜。 代码2-1(c2/a/boot/mbr.S)1 ;主引导程序2 ;------------------------------------------------------------3 SECTION MBR vstart0x7c…

【2019牛客暑期多校训练营(第二场)- F】Partition problem(dfs,均摊时间优化)

题干: 链接:https://ac.nowcoder.com/acm/contest/882/F 来源:牛客网 Given 2N people, you need to assign each of them into either red team or white team such that each team consists of exactly N people and the total competi…

Apollo进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术

目录 1.百度无人车定位进化历程 2.百度自动驾驶应用的定位技术 2.1GNSS定位技术 2.2载波定位技术 2.3激光点云定位技术 2.4视觉定位技术 原文链接:进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术 定位的目的是让自动驾驶汽车找到自身确切位置的方法…

一步步编写操作系统 10 cpu的实模式

cpu的实模式 由于mbr在实模式下工作……什么?什么是实模式?这时候有同学打断了我。我心想,这下好办了……哈哈,没有啦,开个玩笑而已。我们这里所说的实模式其实就是8086 cpu的工作环境、工作方式、工作状态&#xff0…

Ubuntu系统中使用搜狗输入法

今天介绍如何在Ubuntu中使用搜狗输入法。(Ubuntu版本为16.04) 1)登陆搜狗官网选择对应系统的搜狗输入法:http://pinyin.sogou.com/linux。 2)打开下载目录,命令行输入以下命令: sudo dpkg -i …

2.1)深度学习笔记:深度学习的实践层面

目录 1)Train/Dev/Test sets 2)Bias/Variance 3)Regularization(重点) 4)Why regularization reduces overfitting(理解) 5)Dropout Regularization(重点…

一步步编写操作系统 12 代码段、数据段、栈和cpu寄存器的关系

先说下什么是寄存器。 寄存器是一种物理存储元件,只不过它是比一般的存储介质要快,能够跟上cpu的步伐,所以在cpu内部有好多这样的寄存器用来给cpu存取数据。 先简短说这一两句,暂时离开一下主题,咱们先看看相对熟悉一…

【2019牛客暑期多校训练营(第三场)- F】Planting Trees(单调队列,尺取)

题干: 链接:https://ac.nowcoder.com/acm/contest/883/F 来源:牛客网 The semester is finally over and the summer holiday is coming. However, as part of your universitys graduation requirement, you have to take part in some …

Apollo进阶课程⑯丨Apollo感知之旅——感知概貌

原文链接:进阶课程⑯丨Apollo感知之旅——感知概貌 上周阿波君为大家详细介绍了「进阶课程⑮| Apollo无人车自定位技术入门」。 我们人类天生就配备多种传感器,眼睛可以看到周围的环境,耳朵可以用来听,鼻子可以用来嗅,…

一步步编写操作系统 13 栈

栈到底是什么玩意 cpu中有栈段SS寄存器和栈指针SP寄存器,它们是用来指定当前使用的栈的物理地址。换句话说,要想让cpu运行,必须得有栈。栈是什么?干吗用的?本节将给大家一个交待。 还记得数据结构中的栈吗?那是逻辑…

【2019牛客暑期多校训练营(第二场)- E】MAZE(线段树优化dp,dp转矩阵乘法,线段树维护矩阵乘法)

题干: 链接:https://ac.nowcoder.com/acm/contest/882/E?&headNavacm 来源:牛客网 Given a maze with N rows and M columns, where bijb_{ij}bij​ represents the cell on the i-row, j-th column. If bi,j"1"b_{i, j} …

Apollo进阶课程⑰丨Apollo感知之旅——传感器选择和安装

目录 1.激光雷达 2.相机 3.Radar毫米波 4.安装传感器 原文链接:进阶课程⑰丨Apollo感知之旅——传感器选择和安装 上周阿波君为大家详细介绍了「进阶课程⑯ Apollo感知之旅——感知概况」。 传感器是一种检测装置,能感受到被测量的信息,…

2.2)深度学习笔记:优化算法

目录 1)Mini-batch gradient descent(重点) 2)Understanding mini-batch gradient descent 3)Exponentially weighted averages 4)Understanding exponetially weighted averages 5)Bias c…