首页 > 其他分享 >SLAM中的各种地图

SLAM中的各种地图

时间:2024-07-26 16:19:17浏览次数:12  
标签:Map 各种 语义 地图 栅格 SLAM 点云

 

1、地图的不同分类方式

地图有多种不同的分类方式,网上有不少帖子介绍各种各样的地图,但并没有非常完整的总结地图应该怎么分类。论文[1]中将地图分成以下几种:拓扑地图、度量地图、度量-语义地图和混合地图。我觉得按照这种方式进行归类相对比较科学。

1.1 拓扑地图

拓扑地图(Topological Map)使用节点和边来表示环境,其中节点表示重要位置(如拐角、门口),边表示这些位置之间的可达路径。拓扑地图注重表示环境的连接关系,而不是具体的几何细节。这种地图表示方法适用于大型、复杂环境中的高效路径规划和导航。个人简单理解为,是一种表示拓扑关系、不存在准确距离信息的地图,例如:我家地图是,客厅在中间,周围连着卧室、书房、厨房、卫生间,书房又连着阳台。

1.2 度量地图/尺度地图/几何地图

度量地图(Metric Map)或几何地图(Geometric Map)是SLAM种较为常用的一种表示方法,常见的点云(PointCloud)、八叉树地图(OctoMap)、栅格地图(Grid Map)等都属于度量地图,下一节会展开介绍。个人简单的理解为,能够从这个地图中获取具体的尺度信息,例如某个点距离某个点多远、XXX障碍物面积有多大。

根据地图的稠密程度,度量地图还可进一步分为:稀疏地图、稠密地图。稀疏地图例如视觉SLAM建立的特征点地图,是稀疏的,一般多用于自身定位而难以直接导航;而RGBD或LiDAR可以建立稠密地图。

根据地图是连续的还是离散的,还可进一步分为:离散地图、连续地图。栅格地图、体素地图(Voxel Map)就是典型的离散地图,把空间进行了划分,然后离散化表达;连续地图是采用高斯过程或者NeRF方式建立的地图。

离散地图(左)与连续地图(右)

1.3 语义地图

语义地图(Semantic Map)是包含了语义信息的地图,语义信息可以是物体的种类、姿态和形状等描述。例如,无人驾驶需要知道地图中那些是车道、哪些是障碍。需要注意的是,只要包含于语义信息就可以算是语义地图,尺度地图、拓扑地图也可以是语义地图。

带语义信息的点云地图(左)和带语义信息的拓扑地图(右)

1.4 混合地图与多层级地图

混合地图(Hybrid Map)是一种结合多种地图表示的地图,例如在大范围导航时,我们可能既需要拓扑信息(从客厅到卧室),又需要尺度信息(走多少米),这就需要混合地图。

分层级地图(Hierarchy Map)顾名思义,是多层次的地图表示,通过将环境信息组织成不同层次以提高数据管理和处理的效率。例如无人驾驶时,顶层地图表示全局的道路网络,底层表示局部的道路详细结构,可以理解成“分辨率”从粗到细的过程,以适应不同的任务需求。

2、尺度地图细分

2.1 特征地图

特征地图(Feature Map)是仅保留特征的地图,常见于视觉SLAM。一些场景,例如水下的定位放置一些标志物,这样建立的地图就是特征点地图。视觉SLAM一般提取特征点匹配后建立特征点地图。除了点特征意外,线特征和面特征也可以建立地图,但也属于是特征地图的一种。

左:水下声呐建立的声呐目标特征点地图;中:vSLAM建立的特征点地图;右:线+面特征地图

2.2 点云地图

点云地图(Point Cloud Map)是利用点云形式表示地图,常见的激光雷达SLAM建立的都是点云地图。

2.3 栅格地图

栅格地图(Grid Map)将空间划分为均匀的网格,每个网格存储一个值,表征地图的属性。一种常见的方式,用三种状态:占用、空闲、未知,表示某个栅格是否被占用,这种表达方式称作“占用栅格地图”(Occupancy Grid Map),机器人导航常用栅格地图,在“空闲”栅格中规划运动轨迹。

一般来说,栅格地图指的是二维平面地图

2.4 体素地图

体素地图(Voxel Map)可以理解为三维的栅格地图,当然也包括占用体素地图(Occupancy Grid Map)。如果是无人机这类的导航,一般需要用到3D的栅格地图。和点云地图相比,体素地图的“分辨率”更低,对点云地图进行了离散化。

室内场景的占用栅格地图(左)和用于无人机导航的占用栅格地图(右)

2.5 高程地图

高程地图(Elevation Map)也称2.5D地图。如果是平坦地面、二维场景,用栅格地图就可以;如果是无人机,需要用到三维场景体素地图;但如果是无人车在非平坦路面运行、或者是四足/轮式机器人在野外的行进,需要对地形进行建模,常用的方式就是高程地图,例如经典的elevation mapping就是建立的高程地图[2]。在栅格地图的基础上增加了一个维度即高度。

2.6 神经辐射场地图

神经辐射场地图(Neural Radiance Fields, NeRF)是一种新兴的三维场景表示和渲染技术,通过神经网络隐式地表示三维空间中的颜色和密度场。其特点是高精度、连续表示、数据驱动。具体可参考[6]。

2.x 八叉树地图、ikdtree地图、哈希地图等

这些我认为不属于具体的地图表征形式,只是地图存储的数据结构。具体来说:

  • 八叉树地图(Octree Map)是利用八叉树数据结构存储体素地图,可以节省数据存储空间。具体实现例如 OctoMap[3]
  • ikdtree地图是动态kd-tree的地图,存储的是原始点云形式,由Fastlio2[4]采用,专门用于处理点云数据的高效存储、增量更新和查询
  • 哈希地图(Hash Map)使用哈希函数将二维或者三维空间坐标映射到哈希表中,用于存储和检索空间信息,节省存储空间,存取速度快,可以存储点云地图、体素地图

除此之外,还有其他改进例如i-octree[5]等,不展开介绍。

3、一些讨论

这里记录一些自己学习的困惑,或者其他地方的讨论。

3.1 为什么要关注地图的表示?

对于最基础的SLAM而言,实现了定位与建图任务就可以了。但问题是,建立的地图要干什么、如何服务后面的任务?如果不加以考虑、忽视建图,就完全是一个定位过程了。所以,需要根据后续任务决定建立什么地图。

3.2 无人驾驶的高精度地图是什么?

个人简单总结,就是:尺度地图的绝对坐标精度更高,所包含的道路交通信息元素丰富细致。按照第一部分的分类,应该数据多层级地图。

4、小结

本文整理了一些SLAM领域常见的地图,但并没有细致讨论每种地图的优缺点以及应用场景。

参考文献

[1] Survey on Active Simultaneous Localization and Mapping: State of the Art and New Frontiers

[2] GitHub - ANYbotics/elevation_mapping: Robot-centric elevation mapping for rough terrain navigation

[3] https://octomap.github.io/

[4] FAST-LIO2: Fast Direct LiDAR-inertial Odometry

[5] zhujun:【ICRA 2024】i-Octree:快速、轻量级的动态八叉树

[6] LONER: LiDAR Only Neural Representations for Real-Time SLAM

https://zhuanlan.zhihu.com/p/708050126

 

标签:Map,各种,语义,地图,栅格,SLAM,点云
From: https://www.cnblogs.com/Gaowaly/p/18325624

相关文章

  • Appium各种定位及操作
    前提设置:fromappiumimportwebdriver#模拟器/真机已经被电脑识别到(adbdevices)#字典#1、设置终端参数项desired_caps={"platformName":"Android","platformVersion":"6.1.1","appPackage":"com.ss.android.ar......
  • openvslam 三角化
    https://blog.csdn.net/michaelhan3/article/details/89483148一:三角化的提出三角化最早由高斯提出,并应用于测量学中。简单来讲就是:在不同的位置观测同一个三维点P(x,y,z),已知在不同位置处观察到的三维点的二维投影点X1(x1,y1),X2(x2,y2),利用三角关系,恢复出三维点的深度信......
  • 使用python3拼接rgb.txt与depth.txt为associate.txt(适用于GCNV2_SLAM中TUM数据集的运
    这里以GCNV2_SLAM中TUM数据集的运行为例子:安装gnv2_slam可以参考:GCNv2_SLAM-CPU详细安装教程(ubuntu18.04)-CSDN博客首先下载数据集ComputerVisionGroup-DatasetDownload下载后通过该命令解压:tar-xvfrgbd_dataset_freiburg1_desk.tgz打开后,你可以发现:在该数据集......
  • 气压高度传感器 - 从零开始认识各种传感器【第十五期】
    气压高度传感器|从零开始认识各种传感器1、什么是气压高度传感器 气压高度传感器是通过气压的变化来测量所处高度的传感器,它在测量的过程中不易受到障碍物的影响,测量高度范围广,可进行绝对海拔高度测量和相对高度测量。目前智能手机及智能穿戴设备上也大多集成了气压传感......
  • 如何学习Python:糙快猛的大数据之路(学习地图)
    在这个AI和大数据主宰的时代,Python无疑是最炙手可热的编程语言之一。无论你是想转行还是提升技能,学习Python都是一个明智之选。但是,该如何开始呢?今天,让我们聊聊"糙快猛"的Python学习之道。什么是"糙快猛"学习法?"糙快猛"学习法,顾名思义,就是:糙:不追求完美,允许存......
  • 羽毛球比赛记分程序需求流程之用户故事和用户地图
    1. 史诗级的大用户故事:-作为羽毛球比赛的相关人员(运动员、教练、裁判、赛事组织者、观众等),我希望系统能提供一个全面、精准、易用的羽毛球比赛记分程序,以便能让我更好地参与和享受羽毛球比赛。2. 中用户故事:-运动员:-中用户故事1:-作为运动员,我希望系统能准确记录比赛得......
  • 微信小程序 - 最新详细实现集成腾讯地图配置流程及使用教程,基于腾讯位置服务做地图标
    前言网上的教程代码太乱了,并且很少有真实请求的示例,本文提供优质配置教程及示例源码。在微信小程序开发中,详解实现接入腾讯地图教程,后台配置完整流程及使用教程,附带腾讯地图显示渲染和地图标记点,获取本机当前定位省市区或精确的经纬度,IP属地定位获取城市名称/市区名,将经......
  • 乒乓球比赛计分系统需求流程—用户故事、用户故事地图
    计应222_杜晓瑾_2210502012乒乓球比赛计分系统需求流程—用户故事、用户故事地图一、大用户故事作为某乒乓球赛事主办方,我希望建造一个乒乓球比赛计分系统,以便更好地让裁判、选手和观众看到他们的比赛成绩。二、中用户故事1、作为一名裁判,我希望能有一个软件系统,以便让我们抽......
  • 各种聚类方法的聚类思想介绍及其优缺点
    聚类是一种无监督学习方法,旨在将数据集中的样本划分为若干个组,使得同一组内的样本相似度最大,而不同组之间的样本相似度最小。以下是几种常见的聚类方法及其思想、优缺点的介绍:1.K-means聚类聚类思想:K-means将数据分成K个簇,每个簇由一个中心(质心)代表。算法通过迭代优化,......
  • 乒乓球比赛计分程序用户故事与用户地图
    一、用户故事1.史诗级大用户故事:重塑乒乓球赛事体验故事背景:在乒乓球这项传统而充满激情的运动中,一场由科技驱动的变革正在悄然发生。随着“智慧乒乓”计分系统的诞生,传统的计分员角色逐渐与智能技术相融合,共同为运动员、裁判员、赛事组织者以及观众带来前所未有的赛事体验。 ......