文章目录

  • 1.引言
  • 2.lanelet2特点
  • 3.数据结构
    • 3.1 Points
    • 3.2 Linestrings
    • 3.3 Polygon
    • 3.4 Lanelets
    • 3.5 Areas
    • 3.6 regElem (Regulatory elements )
  • 4.软件模块
    • 4.1 Core
    • 4.2 Traffic Rules
    • 4.3 Physical
    • 4.4 Routing
    • 4.5 Matching
    • 4.6. Projection
    • 4.7. IO
  • 5.OSM高精度地图
    • 5.1. Node
    • 5.2. Way
    • 5.3. Relation
    • 5.4. Tag
    • 5.5 OSM编辑软件JOSM

1.引言

Autoware目前使用的高精度地图以前是Vector Map Format(VMF),现在已经是lanelet格式。Lanelet2是一个C++库,用于处理在自动驾驶情况下的地图数据。 它兼容并扩展了之前的lanelets库, 能够利用高清地图数据,以有效应对复杂交通情况下车辆所面临的挑战。 灵活性和可扩展性是应对未来地图挑战的一些核心原则。
lanelet2代码链接

2.lanelet2特点

Lanelet2地图层次划分:
• 物理层(physical layer,可观测到的真实元素)
• 关联层(relational layer,与物理层相关联的车道,区域以及交通规则)
• 拓扑层(topological layer)
设计Lanelet2地图基于以下原则:

  1. 通过与可观察对象相关联来验证地图上的所有信息。
  2. 地图需要覆盖到所有可能区域,包括道路外的部分。
  3. 地图上各个车道和区域之间的交互作用必须是可识别和可理解的。必须能找出在哪些车道之间可能发生变道,或者在哪里可能由于交叉车道而引起冲突。
  4. 必须包含有关road user使用的区域的信息以及适用于他们的交通规则。
  5. 必须区分交通规则的来源及其对road user的影响。
  6. 可扩展性/模块化。
  7. 容易修改和更新
    Lanelet2格式基于Liblanelet已知的格式,并设计为可在基于XML的OSM数据格式上表示,该格式的编辑器和查看器可公开使用。但是,我们认为地图的实际数据格式无关紧要,并且可以互相转换,只要可以确保该格式可以无损地传输到内部表示即可, 因此能够轻松转换为其他格式。
    地图存储的时候,最重的是准确性,一般用无损地理坐标系(经纬度)。而在加载地图时,为了能够进行有效计算,将其转换为平面投影系,比如UTM系,但是高度信息也十分重要。

3.数据结构

3.1 Points

points由ID,3d坐标和属性组成,是唯一存储实际位置信息的元素,ID必须是唯一的。其他基本元素都是直接或者间接由points组成的。在Lanelet2中,Points本身并不是有意义的对象,Points仅与Lanelet2中的其他对象一起使用有意义。

3.2 Linestrings

线串是两个或者多个点通过线性插值生成的有序数组,用来描述地图元素的形状。线串可以是虚线,它可以通过高度离散化实现,来描述任何一维形式,并应用于地图上的任何可物理观察到的部分。与样条曲线相比,线串可以高效计算,并且可以用来描述尖角,最终转化为非线性微分方程的求解问题。

线串必须至少包含一个点才能有效,并且不能自相交。它们不能重复包含点(即,不允许p1-> p2-> p2-> p3)。线串必须始终具有type属性,以便可以确定其用途。

3.3 Polygon

多边形与线串非常相似,但形成一个Area。隐式假定多边形的第一个点和最后一个点被连接以闭合形状。
多边形很少用于传输地图信息(交通标志除外)。相反,它们通常用作将有关区域的自定义信息添加到地图(例如,感兴趣区域)的一种手段。

3.4 Lanelets

Lanelets定义了发生定向运动时,地图车道的原子部分。原子表示沿当前lanelet行驶时,有效的交通规则不会改变,而且与其他Lanelet的拓扑关系也不会更改。

lanelet可以引用表示适用于该lanelet的交通规则的regulatory elements。多个lanelet可以引用同一regElem。必须始终始终可以直接从车道上确定车道的当前速度限制。可以通过引用SpeedLimit监管元素或标记小车的位置来完成。在这种情况下,假定道路类型的最大速度(例如,如果位置是德国城市,则为最大50公里/小时)。

3.5 Areas

Areas是地图上没有方向或者是无法移动的部分区域,比如路标,停车位,绿化带等。他们由一条或者多条linestring组成的闭合的区域。Area也有相关联的regulatory elements。

3.6 regElem (Regulatory elements )

regElem是表达交通规则的通用方式,它们由适用的lanelet或Area引用。在应用的时候,regElem 会和一个或者多个Lanelets、Areas相关联。regElem是动态变化的,意味着它只是在某些条件下是有效的。
诸如限速,道路优先级规则、红绿灯等,交通规则有许多不同的类型,因此每个regElem的准确结构大都不一样。他们通常引用定义规则的元素(例如交通标志),并在必要时引用取消规则的元素(例如速度区末尾的标志)。

通常,regElem元素由通常表示规则类型的标签(即交通信号灯regElem)和有关对此规则具有特定作用的可观察事物的特定信息(例如交通信号灯本身和停车线)组成。 其他类型的regElem是通行权和交通标志regElem。

4.软件模块

4.1 Core

此模块包含所有的图元和以上描述的图层,并且还包括几何计算,比如计算中心线,距离和重叠区域等

4.2 Traffic Rules

根据不同的road user类型和国家,来解释相应的交通规则。

4.3 Physical

可以直接访问物理层元素。

4.4 Routing

根据交通规则,创建路由图,来确定精准的行驶路线。也可能通过组合相邻的Areas和lanelets来构建易通行区域。

4.5 Matching

用来给road user分配lanelets或者基于传感器的观测来确定可能的行驶方向。

4.6. Projection

提供全球地理坐标系到局部平面坐标系的准换

4.7. IO

用于从各种地图格式(特别是OSM格式)读取和写入地图。

5.OSM高精度地图

OSM—OpenStreetMap是lanelet2软件输出地图的标准格式。

首先,看一下OpenStreetMap的数据结构:

OpenStreetMap的元素(数据基元)主要包括三种:点(Nodes)、路(Ways)和关系(Relations),这三种原始构成了整个地图画面。其中,Nodes定义了空间中点的位置;Ways定义了线或区域;Relations(可选的)定义了元素间的关系。

5.1. Node

node通过经纬度定义了一个地理坐标点。同时,还可以height=标示物体所海拔;通过layer= 和 level=,可以标示物体所在的地图层面与所在建筑物内的层数;通过place= and name=*来表示对象的名称。同时,way也是通过多个点(node)连接成线(面)来构成的。

5.2. Way

通过2-2000个点(nodes)构成了way。way可表示如下3种图形事物(非闭合线、闭合线、区域)。对于超过2000 nodes的way,可以通过分割来处理。
Open polyline way(非闭合线):收尾不闭合的线段。通常可用于表示现实中的道路、河流、铁路等。
Closed polyline closed way(闭合线):收尾相连的线。例如可以表示现实中的环线地铁。
Area area(区域):闭合区域。通常使用landuse=* 来标示区域等。

5.3. Relation

一个Relation可由一系列nodes, ways 或者其他的relations来组成,相互的关系通过role来定义。一个元素可以在relation中被多次使用,而一个relation可以包含其他的relation。

5.4. Tag

标签不是地图基本元素,但是各元素都通过tag来记录数据信息。通过’key’ and a 'value’来对数据进行记录。例如,可以通过highway=residential来定义居住区道路;同时,可以使用附加的命名空间来添加附加信息,例如:maxspeed: winter=*就表示冬天的最高限速。

5.5 OSM编辑软件JOSM

下面介绍一下osm的离线编辑器——JOSM。
JOSM 特色:最原汁原味的编辑器。最适合使用GPS轨迹绘图和在已有地图添加细节。有大量插件可以自动化常用操作
JOSM软件下载链接

地图显示:


地图编辑:

左边的工具栏:

这几个节点(nodes)常用的操作,第一个为:选择已有节点;第二个是:添加新节点;第三个是:地图的操作。下面几个比较简单,试一下就会了。在这也看出了nodes在osm中的重要性。

无人驾驶算法学习(十五):高精度地图数据存储框架Lanelet2相关推荐

  1. [Python从零到壹] 十五.文本挖掘之数据预处理、Jieba工具和文本聚类万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. Java 数据结构和算法(十五):无权无向图

    Java数据结构和算法(十五)--无权无向图 前面我们介绍了树这种数据结构,树是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合,把它叫做"树"是因为它看起 ...

  3. PyTorch框架学习十五——可视化工具TensorBoard

    PyTorch框架学习十五--可视化工具TensorBoard 一.TensorBoard简介 二.TensorBoard安装及测试 三.TensorBoard的使用 1.add_scalar() 2 ...

  4. C++学习 十五、类继承(1)基类,派生类,访问权限,protected

    C++学习 十五.类继承(1)基类,派生类 前言 类继承 类的关系与继承 基类, 派生类 基类 派生类 构造函数,析构函数 文件位置 访问权限 protected 后记 前言 本篇开始学习C++类的继 ...

  5. OpenGL入门学习(十五)

    OpenGL入门学习[十五] 这次讲的所有内容都装在一个立方体中,呵呵. 呵呵,绘制一个立方体,简单呀,我们学了第一课第二课,早就会了. 先别着急,立方体是很简单,但是这里只是拿立方体做一个例子,来说 ...

  6. Linux学习十五 DNS基础服务

    Linux学习十五 DNS基础服务 DNS服务基础 BIND 伯利克Internet 域名服务 主要执行程序:/usr/sbin/named 系统服务:named 默认端口: TCP/UDP 53 主 ...

  7. 2000+停车场高精度地图数据,这家图商拿下首个合资品牌量产

    高精度地图作为高阶智能驾驶的关键组成部分,同时,前装市场正在进入传统导航向高精度导航(辅助高阶ADAS落地)的快速导入期. 高工智能汽车研究院监测数据显示,2021年中国市场(不含进出口)乘用车前装标 ...

  8. FreeSql (十五)查询数据

    FreeSql在查询数据下足了功能,链式查询语法.多表查询.表达式函数支持得非常到位. IFreeSql fsql = new FreeSql.FreeSqlBuilder().UseConnecti ...

  9. OpenCV与图像处理学习十五——LBP纹理特征(含代码)

    OpenCV与图像处理学习十五--LBP纹理特征(含代码) 一.LBP介绍 二.LBP原理 三.代码应用 一.LBP介绍 LBP(Local Binary Pattern, 局部二值模式) , 是一种 ...

最新文章

  1. 2D和3D机器视觉检测技术的优势和局限性
  2. c#与access建立连接用作登录_Linux网络配置 | FTP 实战-虚拟用户登录
  3. JetBrains 加入 .NET 基金会
  4. redux ngrx_另一个减少Redux(NGRX)应用程序样板的指南
  5. js 延迟几秒执行ifarme_Node.js调试之llnode篇
  6. 云计算实战系列八(存储管理I)
  7. iframe中的右键 禁止_网站排名优化中必须要注意的事项
  8. 编程小工具总结(一) 取色器
  9. 芬兰开放「线上 AI 速成班」,全球网民均可注册【智能快讯】
  10. flex布局(弹性布局)
  11. redis突然宕机数据会丢失吗
  12. 阿里巴巴Mysql规范
  13. 360如何查看计算机配置文件,win7中怎么查看路由器配置文件config.bin
  14. netbackup备份mysql_NetBackup备份Oracle数据库失败-nbu
  15. 渗透测试之---xss-labs闯关【1-14关】
  16. document.forms[0].submit();和document.forms[0].action = ““;问题
  17. 跨站脚本攻击(XSS)详解
  18. maven是干嘛的?
  19. C语言算法之将十进制数转换成二进制数
  20. 雅思N、NG专项(目标是保证一个都不错)

热门文章

  1. FOC中有感--霍尔传感器角度判定的理解
  2. 多播网络(Multicast)应用权限
  3. 【安全】【测试思路】基于Burpsuite工具中的intruder执行暴力破解
  4. 基于AIE的贵州省FVC提取
  5. 72 R baging和boosting比较
  6. 扫描文件的软件有哪些?
  7. 微信公众号实现简易的物联网控制(一)
  8. 网页开发 net java_.net web开发技术路线图
  9. NAS论文阅读小记一
  10. 浅谈 BI 分析师的定位、案例、成长