无人驾驶算法学习(十五):高精度地图数据存储框架Lanelet2 |
您所在的位置:网站首页 › 高精度地图的实现方式有 › 无人驾驶算法学习(十五):高精度地图数据存储框架Lanelet2 |
文章目录
1.引言2.lanelet2特点3.数据结构3.1 Points3.2 Linestrings3.3 Polygon3.4 Lanelets3.5 Areas3.6 regElem (Regulatory elements )
4.软件模块4.1 Core4.2 Traffic Rules4.3 Physical4.4 Routing4.5 Matching4.6. Projection4.7. IO
5.OSM高精度地图5.1. Node5.2. Way5.3. Relation5.4. Tag5.5 OSM编辑软件JOSM
1.引言
Autoware目前使用的高精度地图以前是Vector Map Format(VMF),现在已经是lanelet格式。Lanelet2是一个C++库,用于处理在自动驾驶情况下的地图数据。 它兼容并扩展了之前的lanelets库, 能够利用高清地图数据,以有效应对复杂交通情况下车辆所面临的挑战。 灵活性和可扩展性是应对未来地图挑战的一些核心原则。 lanelet2代码链接 2.lanelet2特点Lanelet2地图层次划分: • 物理层(physical layer,可观测到的真实元素) • 关联层(relational layer,与物理层相关联的车道,区域以及交通规则) • 拓扑层(topological layer) 设计Lanelet2地图基于以下原则: 通过与可观察对象相关联来验证地图上的所有信息。地图需要覆盖到所有可能区域,包括道路外的部分。地图上各个车道和区域之间的交互作用必须是可识别和可理解的。必须能找出在哪些车道之间可能发生变道,或者在哪里可能由于交叉车道而引起冲突。必须包含有关road user使用的区域的信息以及适用于他们的交通规则。必须区分交通规则的来源及其对road user的影响。可扩展性/模块化。容易修改和更新 Lanelet2格式基于Liblanelet已知的格式,并设计为可在基于XML的OSM数据格式上表示,该格式的编辑器和查看器可公开使用。但是,我们认为地图的实际数据格式无关紧要,并且可以互相转换,只要可以确保该格式可以无损地传输到内部表示即可, 因此能够轻松转换为其他格式。 地图存储的时候,最重的是准确性,一般用无损地理坐标系(经纬度)。而在加载地图时,为了能够进行有效计算,将其转换为平面投影系,比如UTM系,但是高度信息也十分重要。 3.数据结构 3.1 Pointspoints由ID,3d坐标和属性组成,是唯一存储实际位置信息的元素,ID必须是唯一的。其他基本元素都是直接或者间接由points组成的。在Lanelet2中,Points本身并不是有意义的对象,Points仅与Lanelet2中的其他对象一起使用有意义。 3.2 Linestrings线串是两个或者多个点通过线性插值生成的有序数组,用来描述地图元素的形状。线串可以是虚线,它可以通过高度离散化实现,来描述任何一维形式,并应用于地图上的任何可物理观察到的部分。与样条曲线相比,线串可以高效计算,并且可以用来描述尖角,最终转化为非线性微分方程的求解问题。 多边形与线串非常相似,但形成一个Area。隐式假定多边形的第一个点和最后一个点被连接以闭合形状。 多边形很少用于传输地图信息(交通标志除外)。相反,它们通常用作将有关区域的自定义信息添加到地图(例如,感兴趣区域)的一种手段。 3.4 LaneletsLanelets定义了发生定向运动时,地图车道的原子部分。原子表示沿当前lanelet行驶时,有效的交通规则不会改变,而且与其他Lanelet的拓扑关系也不会更改。 Areas是地图上没有方向或者是无法移动的部分区域,比如路标,停车位,绿化带等。他们由一条或者多条linestring组成的闭合的区域。Area也有相关联的regulatory elements。 regElem是表达交通规则的通用方式,它们由适用的lanelet或Area引用。在应用的时候,regElem 会和一个或者多个Lanelets、Areas相关联。regElem是动态变化的,意味着它只是在某些条件下是有效的。 诸如限速,道路优先级规则、红绿灯等,交通规则有许多不同的类型,因此每个regElem的准确结构大都不一样。他们通常引用定义规则的元素(例如交通标志),并在必要时引用取消规则的元素(例如速度区末尾的标志)。 此模块包含所有的图元和以上描述的图层,并且还包括几何计算,比如计算中心线,距离和重叠区域等 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. Nodenode通过经纬度定义了一个地理坐标点。同时,还可以height=标示物体所海拔;通过layer= 和 level=,可以标示物体所在的地图层面与所在建筑物内的层数;通过place= and name=*来表示对象的名称。同时,way也是通过多个点(node)连接成线(面)来构成的。 通过2-2000个点(nodes)构成了way。way可表示如下3种图形事物(非闭合线、闭合线、区域)。对于超过2000 nodes的way,可以通过分割来处理。 Open polyline way(非闭合线):收尾不闭合的线段。通常可用于表示现实中的道路、河流、铁路等。 Closed polyline closed way(闭合线):收尾相连的线。例如可以表示现实中的环线地铁。 Area area(区域):闭合区域。通常使用landuse=* 来标示区域等。 一个Relation可由一系列nodes, ways 或者其他的relations来组成,相互的关系通过role来定义。一个元素可以在relation中被多次使用,而一个relation可以包含其他的relation。 标签不是地图基本元素,但是各元素都通过tag来记录数据信息。通过’key’ and a 'value’来对数据进行记录。例如,可以通过highway=residential来定义居住区道路;同时,可以使用附加的命名空间来添加附加信息,例如:maxspeed: winter=*就表示冬天的最高限速。 下面介绍一下osm的离线编辑器——JOSM。 JOSM 特色:最原汁原味的编辑器。最适合使用GPS轨迹绘图和在已有地图添加细节。有大量插件可以自动化常用操作 JOSM软件下载链接 地图显示:
左边的工具栏: 这几个节点(nodes)常用的操作,第一个为:选择已有节点;第二个是:添加新节点;第三个是:地图的操作。下面几个比较简单,试一下就会了。在这也看出了nodes在osm中的重要性。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |