移动机器人中常用地图

参考链接:https://zhuanlan.zhihu.com/p/346665590

1、尺度地图
具有真实的物理尺度,eg.栅格地图、点云地图,常用于SLAM、小场景路径规划
栅格地图时结构化且有序的,能够直接使用位置索引查询该位置状态,查询时间复杂度为O(1)。但栅格地图对场景进行密集的切分,内存占用较大。一种常用的栅格地图格式是PGM,PGM是Portable Gray Map的缩写。它是灰度图像格式中一种最简单的格式标准,在ROS中使用2D激光雷达和Gmapping功能包生成的栅格地图就是PGM地图,如下图:
在这里插入图片描述
Octo-map(八叉树地图)
对于三维地图,通过观察可以发现障碍物只是其中一小部分,我们可以使用一些特殊的数据结构来存储,比如八叉树(octree)。octree就是有八个子节点的树,是一种递归、轴对齐且空间间隔的数据结构,常用于3D数据的表达。

在这里插入图片描述

假设某个空间是一个立方体,这个立方体中有一个小障碍物,我们可以直接将这个立方体标记为占用状态,很显然这种方式太粗糙了,我们需要一种更精细的方法。当然可以使用三维栅格地图,将立方体分成很多个符合精度要求的小立方体,然后对障碍物所在的小立方体进行标记,但是占用内存太大,障碍物只是占据空间中很小一部分,很多空闲状态的立方体并不需要专门分配内存进行标记。

那么如何兼顾精度和内存呢?这时候就该祭出八叉树结构了。

可以将这个立方体分成八个小立方体,对包含障碍物的立方体继续进行分割,直到达到我们想要的精度为止。当某个节点的所有子节点都是占据、空闲或者未知状态时,我们可以将它和它的子节点全部剪掉,这样可以极大的减少占用的内存空间
在这里插入图片描述

但是Octomap不能直接使用索引进行查询,要按照树的结构进行递归查询,这也是一种牺牲时间换空间的方法吧。

能够减少内存的占用的地图形式还有Voxel Hashing。

Point cloud map(点云地图)
点云是一系列点的集合,使用不用方法得到的点云有不同的数据结构,根据激光测量原理得到的点云包含三维坐标和激光反射强度数据;根据视觉测量得到的点云数据包含三维坐标和颜色数据。根据点的稀疏程度不同,可以分为稀疏点云地图和稠密点云地图,稀疏地图主要用于机器人定位,稠密地图经过转换后可以导航,比较常用的转换方法是八叉树地图。

2、拓扑地图
不具备真实的物理尺度,只包含不同位置的连通关系和距离,常用于大规模的机器人路径规划
3、语义地图
在尺度地图上添加标签,常用于人机交互。高德地图

高精度地图可以为无人车提供的先验信息包括:道路曲率、航向、坡度和横坡角······
在这里插入图片描述
在开始引入之前,先提一下两个地图格式:

  1. OpenDrive

一种逻辑描述道路网的开源格式,主要在仿真器领域使用。其中OpenCRG是路面特性描述格式。OpenDRIVE Manager (OdrManager) 管理如何读取数据。
在这里插入图片描述
2. NDS:Navigation Data Standard

汽车业导航数据库标准化的格式。二者之间的转换如下图:
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值