【Vector-Map-路径规划(0)】卷首语

因为城市NOA 的开发过程中,十字路口这类场景非常不好处理,个人对路径规划没有什么基础,只知道深度优先,广度优先,A*,Dijkstra等算法,不知道在矢量地图中如何使用?因此花几天时间读几篇论文看看到底在NOA 中的十字路口需要什么样的地图?

什么是矢量地图?

我基于论文《VectorMapNet: End-to-end Vectorized HD Map Learning 》的输出来看,

In VectorMapNet, we represent map elements as a set of polylines that are easily linked to downstream tasks (e.g., motion forecasting), and model these polylines with a set prediction framework. The overview of our idea is presented in the Figure above.

论文中说,在矢量地图中,我们表征地图元素作为一系列的几何线,它们是容易去连接下游任务的,例如运动预测,编码这些几何线与一系列的预测任务。

These map elements include but are not limited to road boundaries, lane dividers, and pedestrian crossings, which are critical for autonomous driving.

输出包括道路边沿,车道线和人行横道。

在这里插入图片描述

看图片右边的情况,经过Polyline Generator 后,输出Polyline。这是由关键点+类别组成的。这就和车道线的关键点检测方法有点类似了。

在这里插入图片描述

在这里插入图片描述
图片中 最右边的是VectorMapNet 输出的矢量地图。我们看中间的HDMapNet,这个的表达形式有点不同。
HAMapNet 论文中是这样说的

The overview of HDMapNet. Four modules parameterize HDMapNet: a perspective view image encoder, a neural view transformer in image branch, a pillar-based point cloud encoder, and a map element decoder. The output of the map decoder has 3 branches: semantic segmentation, instance detection and direction classification, which are processed into vectorized HD map.

输出的是三个分支:语义分割,实例检测和方向分类。然后被后处理变成矢量地图。HAMapNet 是对每个分割后的像素的实例和方向进行了分类。然后再通过后处理成矢量地图。

对于“vector map 路径规划”的问题

如果提问的是代码开发问题,我们可以提供一个基于常见库(如OpenCV或类似的地图处理库)的路径规划解决方案和实例代码。

路径规划的解决方案

1、数据准备:首先,你需要一份vector map数据,通常这种数据是地理信息系统(GIS)数据的一种形式。这些数据可以包含道路网络、地形信息等。

2、路径规划算法:选择合适的路径规划算法,如Dijkstra算法、A*算法等。这些算法可以从起点到终点计算出最优路径。

3、地图处理:使用计算机视觉或GIS相关库处理vector map数据,提取道路网络等信息。

4、实现路径规划:在处理过的地图数据上应用路径规划算法,得到路径。

实例代码

import cv2  # 用于图像处理,可替换为专门的地图处理库
import graph_search  # 假设的图形搜索库,用于路径规划算法
 
# 加载vector map数据,转换为可用于计算的格式
vector_map_data = load_vector_map()  # 假设的函数,实际中需要读取和处理数据
 
# 提取道路网络等信息
roads = extract_roads_from_vector_map(vector_map_data)
 
# 构建图模型,节点为路网交叉点,边为路段
graph = build_graph_from_roads(roads)
 
# 定义起点和终点
start_point = ...  # 用户输入或其它方式获取
end_point = ...  # 同上
 
# 使用图形搜索库找到路径
path = graph_search.find_path(graph, start_point, end_point)
 
# 输出或使用路径
print(path)  # 或根据需要进一步处理和使用路径信息

这段代码是一个非常简化的示例。整体上感觉,需要一份可靠的矢量地图就可以实现规划了。

文章目录

  • 什么是矢量地图?
  • 对于“vector map 路径规划”的问题
    • 路径规划的解决方案
  • 全局的规划目录
  • 局部的规划目录
  • Open Planner 工程目录
  • fast_planner工程目录
  • lane_planner(使用vector_map)实战目录
  • 车道选择流程目录

全局的规划目录

(A1)【全局路径规划】基于定位的全局航线的录制方法
(A2)【全局路径规划】曲线拟合的方法–Dubins曲线与Reeds-Shepp曲线
(A3)【全局路径规划】图搜索的路径探索方法–DFS\BFS\DFS-ID、贪心算法、Dijkstra和A*、JPS、.hybird A*、
(A4)【全局路径规划】基于采样的方法–RRT类算法、PRM算法、Lattice planner等
(A5)【全局路径规划】基于地图的方法–vector_map、Voronoi_map
(A6)【全局路径规划】智能算法的方法–蚁群算法、动态规划DP等
(A7)【全局路径规划】覆盖式路径规划

局部的规划目录

(B1)【路径插值与抽稀篇】路径插值与抽稀方向–线性/双线性插值、步距抽稀、等长抽稀、垂直限制抽稀、道格拉斯-普克(Douglas-Peuker)DPR抽稀、去除共线点抽稀等

(B2)【路径平滑篇】路径平滑滤波与拟合–算术方法、优化理论方法、滤波器方法、曲线拟合方法(三五次样条曲线、贝塞尔曲线、B样条曲线)、基于地图方法等

(B4.1)【轨迹优化篇】基于曲线实现速度规划、基于逻辑实现速度规划
(B4.2)【轨迹优化篇】线性加权轨迹代价损失评分,轨迹多选一方法–DWA_planner、Open_Planner、lexicographic_planner
(B4.3)【轨迹优化篇】基于控制的方法实现轨迹避障
(B4.4)【轨迹优化篇】基于优化理论,梯度下降迭代优化使得轨迹形变方法–Teb_planner、MinimumSnap轨迹生成与优化、无人机的硬软约束后端轨迹优化
(B4.5)【轨迹优化篇】基于地图的方法–VFH、VFH+、VFH*算法
(B4.6)【轨迹优化篇】基于Frenet车道线坐标系,采用DP、QP速度解耦进行局部规划–EM_planner

Open Planner 工程目录

(C1)论文解读《Open Source Integrated Planner for Autonomous Navigation in Highly Dynamic Environments》
(C2)工程解读

fast_planner工程目录

(D1)前端kinodynamic A* 动力学路径搜索
(D2)后端轨迹优化。BSPline 曲线拟合+非线性优化
(D3)碰撞检测
(D4)控制指令

lane_planner(使用vector_map)实战目录

(E1)apollo的OpenDRIVE格式
(E2)Autoware使用的lanelet2格式
(E3)Autoware的lane_planner(使用vector_map)

车道选择流程目录

(F1) 调研

  • 接受多条路径
  • 计算所有路径的当前位置的最近傍点
  • 最近傍点的车道和现在行驶的路线设定
  • 检测当前路径的左右路径
  • 将当前路径最近傍点的车道变更标志作为该路径的车道变更标志保持
  • 寻找最近邻右转或左转的标志点,生成艾尔米内插的路线,将该点和预定变更车道的车道的目标点定义为车道变更用的路径
  • 不变更车道时,将当前路径、最近傍点、车道变更标志分别publish
  • 更改车道时,分别对车道变更用的路径、与之相对的最近傍点、车道变更标志进行publish

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LangChain系列】2. 一文全览LangChain数据连接模块:从文档加载到向量检索RAG,理论+实战+细节

本文学习 LangChain 中的 数据连接(Retrieval) 模块。该模块提供文档加载、切分,向量存储、检索等操作的封装。最后,结合RAG基本流程,我们将利用LangChain实现RAG的基本流程。 0. 模块介绍 在前面文章中我们已经讲了…

ssm042在线云音乐系统的设计与实现+jsp

在线云音乐系统的设计与实现 摘 要 随着移动互联网时代的发展,网络的使用越来越普及,用户在获取和存储信息方面也会有激动人心的时刻。音乐也将慢慢融入人们的生活中。影响和改变我们的生活。随着当今各种流行音乐的流行,人们在日常生活中经…

MySQL 连接查询

目录 连接查询 命令格式: 内连接: 等值连接: 格式: 非等值连接: 格式: 外连接: 左连接: 格式: 结果: 右连接: 格式: 结果: 全外连…

D-LinkNAS 远程命令执行漏洞(CVE-2024-3273)RCE漏

声明: 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 简介 D-LinkNAS是由D-Link公司制造的网络附加存储设备。…

01 SQL基础 -- 初识数据库与安装

一、初识数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。该数据集合称为数据库(Database, DB)。用来管理数据库的计算机系统称为数据库管理系统(Database Management System, DBMS) 1.1 DBMS 的种类 DBMS 主要通过数据的保存格式…

公众号答疑集锦(4月)之IE,二维声纳,hypack处理内河多波束

1、Inertial Explorer这款软件怎么导出txt或csv格式的轨迹文件? 答:https://mp.weixin.qq.com/s/Rtl_3YJjDQblyVPLXjAmhA。 问:软件需要一个EGM96-World.wpg格式的文件,就是IE这家公司特有的文件格式。我登录他们官网&#xff0…

JAVAEE之Spring AOP

1. AOP概述 AOP是Spring框架的第⼆⼤核⼼(第⼀⼤核⼼是IoC) 1.1 什么是AOP? • Aspect Oriented Programming(⾯向切⾯编程) 什么是⾯向切⾯编程呢? 切⾯就是指某⼀类特定问题, 所以AOP也可以理解为⾯向特定⽅法编程. 什么是⾯向特定⽅法编…

OpenHarmony南向开发-Docker编译环境

Docker环境介绍 OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完成复杂的开发环境准备工作。两种Docker环境及适用场景如下: 独立Docker环境:适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。 基于HPM的Docker…

宏定义(超级详细)

宏定义在编程里面也有十分重要的作用,下面我就来详细介绍一下: 宏的特点 宏主要特点是它在预编译的时候就会被数字或者代码字符替换掉。这样可以将一些重复的变量替换掉,方便我们进行修改,只需要修改宏定义就行了。 宏的几大类…

《一》Qt的概述

1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。 1.2 Qt的发展史 1991年 Qt最早由芬兰奇趣科技开发 1996年 进入商业领域&#x…

2024年mathorcup(妈妈杯)数学建模C题思路-物流网络分拣中心货量预测及人员排班

# 1 赛题 C 题 物流网络分拣中心货量预测及人员排班 电商物流网络在订单履约中由多个环节组成,图 ’ 是一个简化的物流 网络示意图。其中,分拣中心作为网络的中间环节,需要将包裹按照不同 流向进行分拣并发往下一个场地,最终使包裹…

matlab conv2

MATLAB卷积conv、conv2、convn详解-CSDN博客

全面学习SpringCloud框架指南

要深入学习Spring Cloud框架,你需要系统地掌握其核心组件和概念,并了解如何在实际项目中应用这些知识。以下是一些关键的学习点和相应的学习内容: 一共分为10个模块包括: 1、微服务架构基础: 理解微服务架构的概念和优势。 学习单体架构向微服务架构演进的过程。 掌握…

IE浏览器清理缓存工具

有些项目可能因为浏览器缓存导致使用异常,比如登陆异常。这里提供清除浏览器痕迹的工具,以IE浏览器为例,痕迹的默认存放位置为: C:\Users\Ro\AppData\Local\Microsoft\Windows\Temporary Internet Files 新建bat或者cmd批处理文件…

【LeetCode热题100】189. 轮转数组(数组)

一.题目要求 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 二.题目难度 中等 三.输入样例 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: …

【学习】企业做等保测评有何意义

等保测评是指对信息系统的安全性进行评估和保障的一种标准,其全称为“信息安全等级保护测评”。随着信息技术的不断发展和应用,信息安全问题越来越受到人们的关注。为了保障信息系统的安全,国家制定了一系列的安全等级保护标准,而…

【优选算法专栏】专题四:前缀和(二)

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…

gitee上传出现git did not exit cleanly (exit code 1)的错误

在最后push的时候出现下面的结果: 出现这个错误的原因有好多种,目前介绍博主遇到的两种: 在第一次进行push操作的时候,需要输入用户名和密码,如果输入错误,则最后可能会出现上述报错 解决方法:…

智慧InSAR专题———模拟数据实现现实场景异常形变点识别(项目讲解)

续上篇 文章目录 (一项技术的复现,我们应该有打破砂锅问到底的态度,我找到了这篇文章的一些灵感来源,包括算法和编程以及专业知识等,对我而言也是受益匪浅)1. 数据准备1.1 A deep learning approach to de…

基于STM32F103单片机的时间同步项目

一、前言 本项目为前一个时间同步项目的更迭版本,由于之前的G031开发板没有外部晶振,从机守时能力几乎没有,5秒以上不同步从机时间就开始飞了。在考虑成本选型后,选择了带有外部有缘晶振的STM32F103C8T6最小单片机,来作为本次项目的开发平台。 G031时间同步链接: 基于ST…