系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理

文章目录

  • 系列文章目录
  • 前言
  • 一、地图层的定义
    • (1)地图的泛型内容
  • 二、地图的图层划分【核心】
    • 1.高精度点云图层 --提供地图、感知、定位数据
      • (1)特征点云地图
      • (2)三维重建
      • .......
    • 2.语义图层:包含矢量化、语义化等的电子导航地图,提供给规划模块使用
      • (1)矢量地图
      • (2)语义地图
      • ......
    • 3.其他形式的地图:通过地图转换,给规划模块提供代价地图等API支持
      • (1)障碍物占据图层
        • (1)二维占据栅格地图
        • (2)三维占据栅格地图
        • (3)三维八叉树地图
        • (4)体素哈希地图【voxel hashing】
      • (2)costmap代价图层
      • (3)ESDF Map【Euclidean Signed Distance Functions】(欧氏距离场地图)
      • (4)TSDF Map【截断有符号距离函数地图】
      • (5)Voronoi Diagram Map【韦诺数字地图】
      • (6)Free-space Roadmap【自由空间的概率路线图】
      • (7)高程图【我少用】
    • 4.可视化图层:包含一系列中间结果的可视化,供工作人员测试审查地图!
  • 参考资料

前言

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!

本文先对地图的理解及地图的类型介绍做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章


提示:以下是本篇文章正文内容

一、地图层的定义

地图把真实世界的环境信息处理成高精度、数字化、语义化,同时可以被定位的一系列图层,【防盗标记–盒子君hzj】地图层主要分为定位图层、语义图层、可视化图层

(1)地图的泛型内容

(1)地图的数据结构(data structure)
(2)地图的融合方法(fusion method).
.
.

二、地图的图层划分【核心】

1.高精度点云图层 --提供地图、感知、定位数据

(1)特征点云地图

特点:地图数据是一个无序的,没有办法直接进行索引查询,必须用PCL库进行处理

拼接点云,最后构成地图。这种做法很简单,【防盗标记–盒子君hzj】但点云地图通常规模很大,所以一个pcd文件也会很大。点云地图提供了很多不必要的细节,在位姿存在误差时,会导致地图出现明显的重叠,光有点是不能够用于导航的

生成地图的工具:http://pointclouds.org/
高精度地图概览:https://blog.csdn.net/Travis_X/article/details/104617352

建立稠密点云图可以说和SLAM方向很相向了,【防盗标记–盒子君hzj】具体看我简单论述的slam,包括二维激光slam、三维激光slam、视觉slam、三维重建

转战一下~

(2)三维重建

用于基于RGBD的3D视觉图像重建
https://www.robots.ox.ac.uk/~victor/infinitam/

.
.

2.语义图层:包含矢量化、语义化等的电子导航地图,提供给规划模块使用

(1)矢量地图

一般就是矢量地图–提供人工的绘制的车道,交通标志等信息
autoware的开源项目就是用这个

【防盗标记–盒子君hzj】建立矢量地图的方法我写在其他博客转战一下!

(2)语义地图


加了标签的地图,用于表达道路大致信息,百度高德地图,是深度学习和SLAM融合的未来

3.其他形式的地图:通过地图转换,给规划模块提供代价地图等API支持

(1)障碍物占据图层

–提供给hybrid A*做路径探索【提供障碍物查找,进而建立搜索节点图】(二维像素地图、二维栅格地图、三维八叉树地图、三维体素地图)

(1)二维占据栅格地图

(用数组结构的方法进行地图障碍物数据存储)

特点:非常稠密(消耗大量内存)、结构化、可以直接进行索引查询(O(1))
生成地图的工具:https://github.com/ANYbotics/grid_map
.
.

(2)三维占据栅格地图

(用数组结构的方法进行地图障碍物数据存储)

个人觉得很少用,占内存太大了

(3)三维八叉树地图

(用树状结构的方法进行地图障碍物数据存储)

(1)为什么使用八叉树地图
点云地图通常规模很大,对应的pcd文件也会很大,并且其中存在许多不必要的细节,比如说地毯的褶皱、阴暗处的影子,这些都会在地图中占用空间,【防盗标记–盒子君hzj】由于空间被占用为了在有限的内存中使用而不得不降低分辨率,从而导致地图的质量下降

三维占据栅格地图的改进(可以设置分辨率),离散的(省内存)、结构化的、不可以直接进行索引查询,要用搜索树的方法索引查询

点云地图不能直接用于导航,而八叉树地图可以用于导航
.
.

(2)八叉树地图的定义
可以将三维空间建模分割成许多的小方块,如果将每个小方块的每个面切成两片,那么这个小方块就会变成同样大小的八个小方块.将该步骤不断重复,直到最后的方块大小达到建模的最高精度.在该过程中,将"从一个节点展开成八个子节点",那么,整个空间从最大空间细分到最小空间的过程,就是一棵八叉树
.
.

(3)八叉树表示地图的原理
八叉树实际的数据结构就是一个树根不断地往下扩,每次分成八个枝,直到叶子为止。叶子节点代表了分辨率最高的情况。例如分辨率设成0.01m,【防盗标记–盒子君hzj】那么每个叶子就是一个1cm见方的小方块了

在八叉树中,节点存储它是否被占据的信息,当某个方块的所有子节点都被占据或不被占据时,就没必要展开这个节点.每个小方块都有一个数描述它是否被占据。在最简单的情况下,可以用0-1两个数表示(太简单了所以没什么用)。通常还是用0~1之间的浮点数表示它被占据的概率。0.5表示未确定,越大则表示被占据的可能性越高,反之亦然。由于它是八叉树,那么一个节点的八个孩子都有一定的概率被占据或不被占据了.

在八叉树中,我们用概率来表达一个叶子是否被占据。为什么不直接用0-1表达呢?因为在对环境的观测过程中,由于噪声的存在,某个方块有时可能被观测到是“占据”的,过了一会儿,在另一些方块中又是“不占据”的。有时“占据”的时候多,有时“不占据”的时候多。这一方面可能是由于环境本身有动态特征(例如桌子被挪走了),另一方面(多数时候)可能是由于噪声

将三维空间建模分割成许多的小方块,如果将每个小方块的每个面切成两片,那么这个小方块就会变成同样大小的八个小方块。将该步骤不断重复,【防盗标记–盒子君hzj】直到最后的方块大小达到建模的最高精度。在该过程中,将"从一个节点展开成八个子节点",那么,整个空间从最大空间细分到最小空间的过程,就是一棵八叉树
.
.
.
(4)构建八叉树地图
深蓝学院运动规划之Octomap讲解视频:
https://www.bilibili.com/video/BV1cQ4y1P7Xh?from=search&seid=5989513482820660839

开源工具
http://wiki.ros.org/octomap_server

生成地图的工具
https://octomap.github.io/
https://github.com/OctoMap/octomap
http://wiki.ros.org/octomap
https://blog.csdn.net/LOVE1055259415/article/details/79911653
https://www.bilibili.com/video/BV17w411R7Ca?spm_id_from=333.999.0.0
https://blog.csdn.net/Travis_X/article/details/89305574

例程1:转换pcd到octomap
https://github.com/gaoxiang12/octomap_tutor

例程2:加入色彩信息
octomap提供了ColorOcTree类,能够帮你存储颜色信息

例程3:更好的拼接与转换
拼接很多帧的octomap
.
.

(4)体素哈希地图【voxel hashing】

(用哈希表的方法进行地图障碍物数据存储)

(1)特点:非常离散(超级省内存)、结构化、不可以直接进行索引查询,要用哈希表的方法索引查询

(2)生成地图的工具:
https://github.com/niessner/VoxelHashing

(3)参考连接
https://github.com/niessner/VoxelHashing
.
.

(2)costmap代价图层

提供0~255的优化代价

参考ROS的navigation功能包,【防盗标记–盒子君hzj】请转战我另外一个博客

(3)ESDF Map【Euclidean Signed Distance Functions】(欧氏距离场地图)


(1)ESDF地图的作用
使用ESDF的梯度下降的方法做轨迹优化是使得算法复杂程度,时间和空间复杂度下降的一种手段

(2)欧式距离场的距离和梯度
欧式距离场的梯度含义是障碍物指向该栅格的方向,距离的含义是障碍物到栅格的距离,有了长度和方向就可以把ESDF看成一个人工势场了【防盗标记–盒子君hzj】
欧式距离场图层 --提供给路径规划优化
梯度方向图层 --提供给路径规划优化

(3)欧式距离场和曼哈顿距离场的几何表示
欧式距离场一个是两点间的距离和方向,曼哈顿距离场是网格地图纵横的折线最小距离和方向

(4)构建构建欧氏距离场地图
https://blog.csdn.net/Travis_X/article/details/115506278
【VoxBlox全局地图】
https://github.com/ethz-asl/voxblox
【FIESTA局部地图】
https://github.com/HKUST-Aerial Robotics/FIESTA
【TRR’s Local Map】
https://github.com/HKUST-Aerial Robotics/Teach-Repeat-Replan
.
.
.

(4)TSDF Map【截断有符号距离函数地图】

(截断距离场函数地图)

对应开源工程OpenChisel
https://github.com/personalrobotics/OpenChisel
.
.
.

(5)Voronoi Diagram Map【韦诺数字地图】


(1)特点
适合超大规模的路径规划

(2)对应开源工程
https://github.com/ethz-asl/mav_voxblox_planning
.
.

(6)Free-space Roadmap【自由空间的概率路线图】


随机采样的概率路线图,【防盗标记–盒子君hzj】用凸多面体来表示路径点,再进行连接

开源工具
https://github.com/HKUST-Aerial-Robotics/Teach-Repeat-Replan

对应开源工程
https://github.com/HKUST-Aerial-Robotics/Teach-Repeat-Replan

(7)高程图【我少用】

那条什么机器狗的github有用过好像

4.可视化图层:包含一系列中间结果的可视化,供工作人员测试审查地图!

一般就是可视化组件支持实现

参考资料

https://blog.csdn.net/Travis_X/article/details/114241945

(1)地图的理解及地图的类型介绍相关推荐

  1. 0 地图常见的几种服务类型

    常见的地图服务分为: WMS.WFS.WCS.WPS.WMTS.TMS.WMSC服务 WMS服务,全称是Web Map Service (web地图服务),动态地图服务,在ArcGIS中我们经常利用理 ...

  2. 织梦html的网站地图怎么制作,网站地图如何制作?网站地图的制作与提交方法...

    一.网站地图的种类 1.用户地图:给用户看的地图,用户地图可以理解为平常大家看到的网站导航. 2.蜘蛛地图:给蜘蛛看的地图,给蜘蛛也做一个网站导航,方便蜘蛛像用户一样方便抓取网页. 二.制作网站地图 ...

  3. 地图与WebGIS、地图的作用、数字地图的应用

    全文一张图,内容全靠编. 地图的作用 数千年来,地图在人类活动中发挥了重要作用.世界由彼此具有地理(即空间)关系的事物组成,虽然地图可以是世界的精确复制品,但通常情况下并不是.地图是包含世界事物表示的 ...

  4. 开发地图编辑器_使用地图编辑器开发地图

    存在XML映射以将源XML文档转换为目标XML文档. 映射编辑器获取在"映射编辑器"中创建的映射,并生成XSL文件以在运行时执行实际的XML转换. 在WebSphere Integ ...

  5. WebGIS 瓦片地图引擎实现之——地图瓦片加载计算原理介绍

    1. 背景 1.1 地图瓦片之前 在地图瓦片技术使用之前,用户使用在线地图,一般都是客户端把将要显示的地理范围传送到服务端,服务器端将地理范围内的地理数据都查询出来,然后在服务端按照预先定义的专题地图 ...

  6. wms地图绘制工具_GeoServer地图开发解决方案(四):发布Web地图服务(WMS)篇

    GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过 GeoS ...

  7. 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

    [百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快 ...

  8. power bi 地图_如何使用Power BI创建地理地图-填充地图和气泡地图

    power bi 地图 该项目 (The project) This is the first article of a series dedicated to discovering geograp ...

  9. java 地图坐标转换_百度地图坐标和高德地图坐标转换代码 Java实现

    最近做项目需要百度地图坐标转换到高德地图坐标,高德官方也给出了转换接口(百度地图也给出了转换接口) http://lbs.amap.com/api/javascript-api/reference/l ...

  10. android坐标画图软件下载,地图坐标app下载-地图坐标软件下载v4.8.15 安卓版-西西软件下载...

    地图坐标app是一款免费好用的地图坐标显示软件,用户只需要地图上轻轻一点就可以得知目标位置的经纬度和地址等信息,同时还能通过短信等方式与他人共享.此外,地图坐标app还为用户提供了距离测量.当前卫星导 ...

最新文章

  1. python mainloop函数_python中的mainloop()函数
  2. 页面添加锚点后如何点击不改变URL?
  3. 跟我学AI建模:分子动力学仿真模拟之DeepMD-kit框架
  4. 小程序入门学习21--前端小程序开发及数据渲染
  5. html向php传中文没有值,php - 为什么我的PHP / HTML表单没有向我发送数据 - SO中文参考 - www.soinside.com...
  6. python货币转化为资本的前提_深度剖析比特币背后的技术细节
  7. 微信小程序影视评论交流平台系统毕业设计毕设(6)开题答辩PPT
  8. rca接口_新手小白必读 1分钟看懂同轴和光纤音频接口
  9. 微型计算机鼠标连接,解决无线鼠标重新对码问题
  10. 部署YApi时,出现报错信息:Accessing non-existent property ‘count‘ of module exports inside circular dependency
  11. 基于JAVA社区老人健康服务跟踪系统计算机毕业设计源码+数据库+lw文档+系统+部署
  12. ffmpeg Unknown encoder ‘libx264‘
  13. ETH 2.0新纪元开启,究竟能带来什么?
  14. linux 拼图游戏,王牌拼图红包版
  15. 从硬盘启动计算机就卡住了,电脑插入U盘启动盘就卡住该怎么解决
  16. 偶然发现,Javascript中双重否定的写法
  17. Excel一键将-替换为--的批量操作
  18. matlab win32错误,尝试运行Matlab-Compiler-Runtime应用程序时Windows 7中出现SxS错误
  19. android 设置铃声文件夹在哪里,Android 设置铃声的文件夹
  20. vs15 preview5 离线安装包

热门文章

  1. 服务器改了密码 网页打不开了,为什么用户中心里的修改密码网页打不开
  2. OpenCV/Python/dlib眨眼检测
  3. C语言如何打印扑克牌花色(红桃、梅花、黑桃、方片)
  4. 天地图key申请_国家地理信息公共服务平台 天地图
  5. 高德视觉技术中心招聘计算机视觉研发(社招/校招/实习岗位)
  6. 淘客外卖返利 优惠券 小程序公众号 电影票话费分销淘宝客CPS系统
  7. 攻防演练中防守方的骚姿势
  8. metrics 指标分析——你不在意的p99和p999
  9. ROS入门(十)——两只小乌龟(乌龟跟随C++实现)
  10. android高德地图语音,高德地图导航组件没有导航语音声音