网站设计客户对接流程,东莞网站搭建哪家强,优化营商环境评价,深圳小区封闭最新通知Lanelets: 高效的自动驾驶地图表达方式 附赠自动驾驶学习资料和量产经验#xff1a;链接
LaneLets是自动驾驶领域高精度地图的一种高效表达方式#xff0c;它以彼此相互连接的LaneLets来描述自动驾驶可行驶区域#xff0c;不仅可以表达车道几何#xff0c;也可以完整表述车…Lanelets: 高效的自动驾驶地图表达方式 附赠自动驾驶学习资料和量产经验链接
LaneLets是自动驾驶领域高精度地图的一种高效表达方式它以彼此相互连接的LaneLets来描述自动驾驶可行驶区域不仅可以表达车道几何也可以完整表述车道拓扑同时可以集成交通规则和人的驾驶习惯。 如上图所示每个Lanelet由left bound和right bound组成left/right bound有一系列点序列组成因此可以以任意精度逼近任意车道形状。
1. 用于Routing的Lanelets Graph
为了能够基于Lanelets进行路径规划我们可以构建Lanelets邻接图结构。当Lanelets A的左右边界的终点与Lanelets B的左右边界的起点相同时我们就称Lanelets A和Lanelets B是相邻接的。
如下图所示图(右)是对图(左)构建的Graph同时将每个Lanelets的长度作为Graph Edge的权重。基于该Graph我们就可以采用Dijkstra算法实现从任意起点到终点的路径规划。当然读者也可以给Graph Edge赋予道路边界类型、权重因子等属性从而实现其它类型的Routing规划算法。 2. Lanelets中的交通规则
开放的公共道路上存在各种各样的交通控制要素比如红绿灯、交通标牌等。我们将这些交通规则按照一定的方式组织起来并关联到对应的Lanelets上。行驶在Lanelets上的车辆必须遵守该Lanelets关联的交通规则。
交通规则通常由两部分内容组成1、规则的名称和内容2、遵守这一规则的静态信息或者参数。举个路口红绿灯的例子它的规则为车辆必须在交通灯为红色的时候必须停止在路口停止线前等待它的参数为停止线和关联交通灯的位置。
这里要特别提到是没有红绿灯的十字路口它的通行规则必须以尽可能少的阻碍其它拥有通行权的交通参与者为准则。 交通规则表达
在实际数据中交通规则通过typeregulatory element标识再通过名称为maneuver的tag区分不同的交通规则。
merge and cross
当maneuvermerge时该规则的参数是merge发生的第一个Lanelets。该规则期望车辆在进入merge的第一个Lanelets时尽可能的与同向车道的车辆的运动速度趋同并且保持安全距离。
当maneuvercross时该规则的参数是与当前Lanelets发生cross的Lanelets以及为了避免碰撞发生主车的停止位置。
traffic light
当maneuvertraffic light该规则的参数是路口的停止线和关联红绿灯的位置。该规则期望当红绿灯为红色时车辆停止在停止线之前。 3. Lanelets中高效的距离计算和测量 4. 开源的Lanelets地图加载库-libLanelet
libLanelet使用Boost C代码库实现它提供了读取、加载和查询XML文件的功能使用RTree检索查询空间要素的功能使用诸如Dijkstra进行Routing路线规划的功能
随着地图范围的不断扩张Lanelets的数量会快速膨胀为了提升数据检索的速度libLanelets使用RTree对Lanelets进行检索可以做到在O(logn)时间内实现对任意Object的查询。
Github代码路径https://github.com/phbender/liblanelet
5. Lanelets高精度地图生成
Top-View Map生成
我们利用立体图像技术将车辆周围的3D点投影到地面上再利用轨迹将这些3D投影点聚合起来形成全局的鸟瞰图。然后利用这些鸟瞰图使用OSM Editor人工标注高精度地图。 Lanelets存储格式及编辑工具
Lanelets Map采用OSM格式存储即文件格式采用XML格式包含三个基础结构nodes、ways和relations坐标系采用WGS-84坐标系。 6. Lanelets在实际驾驶中的应用
自动车辆利用Lanelets地图实现状态转换状态机(State Machine)不同状态之间的转换。如下图所示当自动驾驶车辆行驶到绑定了交通规则的Lanelets时并且距离交通规则参数的距离小于一定阈值时事件S被触发提醒车辆在停止线前停下来。当自动驾驶车辆距离交通规则参数的距离大于一定距离时事件A被触发车辆进入路口驾驶模式。当离开路口时事件F被触发整个系统被重置到空闲状态。 为了完成周围其它车辆的驾驶行为预测我们首先获取社会车辆周围一定范围内的所有Lanelets然后通过社会车辆的Pose与Lanelets中心线的距离和角度阈值过滤掉主车无法到达的Lanelets最后在自动驾驶车辆的预测范围(比如可以预测社会车辆10s的运动范围)内以社会车辆的运动朝向和运动速度计算所有的可能运动路径从而调整自动驾驶汽车的运动规划以避免可能存在的碰撞行为。
参考链接
Lanelets: Efficient Map Representation for Autonomous Driving