Lanelets_ 高效的自动驾驶地图表达方式

2024-04-07 11:20

本文主要是介绍Lanelets_ 高效的自动驾驶地图表达方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Lanelets: 高效的自动驾驶地图表达方式

image

附赠自动驾驶学习资料和量产经验:链接

LaneLets是自动驾驶领域高精度地图的一种高效表达方式,它以彼此相互连接的LaneLets来描述自动驾驶可行驶区域,不仅可以表达车道几何,也可以完整表述车道拓扑,同时可以集成交通规则和人的驾驶习惯。

image

如上图所示,每个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规划算法。

image

2. Lanelets中的交通规则

开放的公共道路上存在各种各样的交通控制要素,比如红绿灯、交通标牌等。我们将这些交通规则按照一定的方式组织起来,并关联到对应的Lanelets上。行驶在Lanelets上的车辆必须遵守该Lanelets关联的交通规则。

交通规则通常由两部分内容组成:1、规则的名称和内容;2、遵守这一规则的静态信息或者参数。举个路口红绿灯的例子,它的规则为车辆必须在交通灯为红色的时候,必须停止在路口停止线前等待;它的参数为停止线和关联交通灯的位置。

这里要特别提到是没有红绿灯的十字路口,它的通行规则必须以尽可能少的阻碍其它拥有通行权的交通参与者为准则。

image

交通规则表达

在实际数据中,交通规则通过"type=regulatory element"标识,再通过名称为maneuver的tag区分不同的交通规则。

merge and cross

当maneuver=merge时,该规则的参数是:merge发生的第一个Lanelets。该规则期望车辆在进入merge的第一个Lanelets时,尽可能的与同向车道的车辆的运动速度趋同,并且保持安全距离。

当maneuver=cross时,该规则的参数是:与当前Lanelets发生cross的Lanelets,以及为了避免碰撞发生主车的停止位置。

traffic light

当maneuver=traffic light,该规则的参数是:路口的停止线和关联红绿灯的位置。该规则期望当红绿灯为红色时,车辆停止在停止线之前。

image

3. Lanelets中高效的距离计算和测量

image

image

image

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人工标注高精度地图。

image

Lanelets存储格式及编辑工具

Lanelets Map采用OSM格式存储:即文件格式采用XML格式;包含三个基础结构,nodes、ways和relations;坐标系采用WGS-84坐标系。

image

6. Lanelets在实际驾驶中的应用

自动车辆利用Lanelets地图实现状态转换状态机(State Machine)不同状态之间的转换。如下图所示,当自动驾驶车辆行驶到绑定了交通规则的Lanelets时,并且距离交通规则参数的距离小于一定阈值时,事件S被触发,提醒车辆在停止线前停下来。当自动驾驶车辆距离交通规则参数的距离大于一定距离时,事件A被触发,车辆进入路口驾驶模式。当离开路口时,事件F被触发,整个系统被重置到空闲状态。

image

为了完成周围其它车辆的驾驶行为预测,我们首先获取社会车辆周围一定范围内的所有Lanelets,然后通过社会车辆的Pose与Lanelets中心线的距离和角度阈值过滤掉主车无法到达的Lanelets,最后在自动驾驶车辆的预测范围(比如可以预测社会车辆10s的运动范围)内,以社会车辆的运动朝向和运动速度计算所有的可能运动路径,从而调整自动驾驶汽车的运动规划,以避免可能存在的碰撞行为。

参考链接

Lanelets: Efficient Map Representation for Autonomous Driving

这篇关于Lanelets_ 高效的自动驾驶地图表达方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/882464

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者