自主机器人运动规划|地图相关概念总结

news2024/10/6 7:53:29

自主机器人运动规划|地图相关概念总结

  • 地图表示
    • 占用栅格地图
    • 八叉树地图(Octo-map)
    • Voxel hashing(哈希表地图)
    • 点云地图
    • TSDF map
    • ESDF map

地图表示

地图分成两个模块:

  • 地图装在数据的数据结构
  • 地图信息融合方法

在这里插入图片描述

占用栅格地图

使用最为广范的是 Occupancy grid map 占用栅格地图
在这里插入图片描述
3D栅格地图
在这里插入图片描述
2D栅格地图

在这里插入图片描述
2.5d栅格地图

占用栅格地图的特点:

  • 最稠密的
  • 结构化的
  • 直接坐标索引查询

栅格地图资源:https://github.com/ANYbotics/grid_map

八叉树地图(Octo-map)

数据结构
在这里插入图片描述
这样的地图数据结构的好处就是可以形成下面的数据类型
在这里插入图片描述
可以把上面的正方体考虑为房间,很多地方没有障碍物,则不需要分那么细,有障碍物的地方可以分的细一点。
这样可以减小计算资源消耗

八叉树地图特点:

  • 稀疏的
  • 结构化的
  • 直接坐标索引查询

基于八叉树的资源:
https://octomap.github.io
在这里插入图片描述
在这里插入图片描述
用八叉树表示点云地图示例
在这里插入图片描述
用八叉树表示不同分辨率点云物体

Voxel hashing(哈希表地图)

与八叉树的思想类似
Voxel的意思就是一个三维的grid
hashing 意思就是用哈希表的形式 把地图存储起来
在这里插入图片描述
上图是一个相机对一个障碍物曲面的观测,仅把在障碍物上的格子加入内存,如上面的蓝色和红色的正方格,具体加入内存的方式是用哈希表的方式,把格子的坐标xyz通过函数映射成哈希键值,有了哈希键值则可插入表中,相当于字典查询的方式,进行地图查询。

哈希表地图特点:

  • 最稀疏的
  • 结构化的
  • 直接坐标索引查询

Voxel hashing 的公开资源:https://github.com/niessner/VoxelHashing

这种地图用的最多的就是在基于RGBD深度相机,构建稠密的地图。
在这里插入图片描述
可以参考 infiniTAM的开源工程 http://www.robots.ox.ac.uk/~victor/infinitam/

点云地图

传感器最基本的,原始测量的一个集合。最大的特点就是无序的,不可以进行点索引的查找。

点云可以用来表示障碍物稠密的信息。

点云地图特点:

  • 无序的
  • 没有索引坐标
    在这里插入图片描述
    点云资源 PCL : http://pointclouds.org/

TSDF map

TSDF的全称是:Truncated Signed Distance Functions 截断的有符号距离函数地图(TSDF map )

在这里插入图片描述
如上图,有一个相机在对环境进行一个观测,前方有一个曲面
TSDF会假设曲面和相机直接有一个距离场,相机和曲面之间的距离场里都是正直,表示点到障碍物距离最近的距离。
在曲面后面的,也有一个距离场,每个点也同样表示到障碍物最近的距离,但是是负值。
距离用不用的颜色表示,就形成了下面的图
在这里插入图片描述
Truncated 代表的是有截断的
意思就是:相机视场角之外的值是不关心的,并且障碍物距离范围一定的值才是关心的,距离远的点也是不关心的。所以上面的图在离相机很近和视场角之外的点,都没有形成颜色。
在这里插入图片描述
典型的应用是 OpenChisel
https://github.com/personalrobotics/OpenChisel 提供了完整的前端的相机信息融合到后端的出TSDF 地图的工程。

ESDF map

ESDF的全称是 Euclidean Signed Distance Functions 欧式带符合的距离函数

ESDF和前面说的TSDF的区别就是:ESDF没有截断,关心所有距离场的值

在这里插入图片描述
颜色越深,红色表示离障碍物越近,绿色表示离障碍物越远

开源工具有:

  • VoxBlox 以尽量短时间建立 ESDF地图的工具
    https://github.com/ethz-asl/voxblox
  • FIESTA 精度和性能超过VoxBlox
    https://github.com/HKUST-Aerial-Robotics/FIESTA
  • TRR’s Local Map
    完整的无人机自主飞行资源,里面用到的相当于构建局部的ESDF地图,FIESTA相当于增量构建全局的ESDF地图
    https://github.com/HKUST-Aerial-Robotics/Teach-Repeat-Replan

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用PyTorch训练模型识别captcha库生成的验证码

目录 制作训练数据集 用Dataloader加载自定义的Dataset 训练模型 识别验证码 总结与提高 源码下载 在本节,我们将使用深度学习框架PyTorch来训练模型去识别一种难度稍大一点的数字字母混合验证码(我们可以使用第三方库captcha生成这种验证码&#…

4.2 换元积分法

思维导图: 学习目标: 学习换元积分法时,可以遵循以下几个步骤: 理解换元积分法的基本思想:将一个复杂的积分变成一个简单的积分,通过引入一个新的变量来实现。 掌握换元积分法的基本公式:如果…

reviewSpringBoot

1.springboot简介说明 Springboot简化新Spring应用的初始搭建以及开发过程 SpringBoot是基于Spring的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 SpringBoot集成了绝大部分目前流行的开发框架,就像…

FISCO-BCOS链节点黑名单对共识的影响

目录一、前言二、测试过程三、PBFT一、前言 目的:在fisco-bcos(v2.8.0)环境下,测试黑名单对节点共识的影响。 部署搭建四节点的链,并部署console: https://fisco-bcos-documentation.readthedocs.io/zh_…

3 个自定义防抖 Hooks 的实现原理

前言— 本文通过实现 useDebounceFn、useDebounce、useDebounceEffect 3 种自定义防抖 Hooks,来介绍在日常开发过程中自定义 Hooks 的思路及实现,帮助大家完成通用 Hooks 来提高开发效率。 防抖— 防抖的概念已经司空见惯了,这里稍作简单介…

00后也太卷了吧!进厂起薪18K,原来面试时候都说了这些......

都说00后躺平了,但是有一说一,该牛的还是牛。 这不,前段时间公司来了个00后,工作都没两年,跳槽起薪18K。本来还以为是个年少有为的技术大牛呢,结果相处一个月下来发现技术也就那样。 问起他是如何做到和老…

Java Web学习路线

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Java Web ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正&a…

(四)栈—中缀表达式转后缀表达式

一、基本介绍 二、应用实例 将中缀表达式"1((23)x4)-5" 转换为 后缀表达式"1 2 3 4 x 5 -" 思路: 1.初始化两个栈:运算符栈s1和存储中间结果的栈s2; 2.从左至右扫描中缀表达式&#x…

【c++初阶】第九篇:vector(常用接口的使用 + 模拟实现)

文章目录vector介绍vector的使用vector的定义vector iterator(迭代器) 的使用begin和endrbegin和rendvector 空间增长问题size和capacityreserve和resize(重点)测试vector的默认扩容机制emptyvector的增删查改push_back和pop_backinsert和erasefindswapo…

GPT-4创造者:第二次改变AI浪潮的方向

OneFlow编译 翻译|贾川、杨婷、徐佳渝 编辑|王金许 一朝成名天下知。ChatGPT/GPT-4相关的新闻接二连三刷屏朋友圈,如今,这些模型背后的公司OpenAI的知名度不亚于任何科技巨头。 不过,就在ChatGPT问世前,Ope…

Verilog Tutorial(10)如何实现可复用的设计?

写在前面在自己准备写verilog教程之前,参考了许多资料----FPGA Tutorial网站的这套verilog教程即是其一。这套教程写得不错,只是没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。这是网站原文:h…

【敬伟ps教程】平移、缩放、移动、选区

文章目录平移抓手工具旋转抓手缩放工具移动工具详解选区选区工具详解平移 抓手工具 当打开一张大图时,可以通过修改底部的百分比或使用抓手工具(H或在任何时候按住空格键来使用抓手工具)来查看更多细节 使用抓手工具时滚动所有打开的文档&…

几何的显式表示 - 曲线和曲面

点云:list of points(x, y, z) 将点云变成多边形的面,从而在计算机中输出多边形网格:Polygon Mesh 就是 拆成小三角 贝塞尔曲线 定义曲线只要满足起止点即可,P1,P2决定了它要往哪个方向弯 de Ca…

STM32 HAL库PID控制电机 第三章 PID控制双电机

STM32 HAL库PID控制电机 第三章 PID控制双电机 注:本文含全部PID控制代码,保证可以运行,如不能运行可以留言回复 1 基础配置 1.1 编码器电路图及配置 引脚定时器通道PA0TIM2_CH1PA1TIM2_CH2PB6TIM4_CH1PB7TIM4_CH2因此需要把TIM2、TIM4配置为编码器模式。在STM32CubeMX中…

如何在react中处理报错

本文为 360 奇舞团前端工程师翻译 原文地址:https://www.developerway.com/posts/how-to-handle-errors-in-react我们都希望我们的应用能稳定、完美运行,并且能够考虑到每一个边缘情况。但是现实情况是,我们是人,是人就会犯错&…

【区块链】走进web3的世界-DApp如何快速接入wall

在web3中,wall是您进入区块链的一个标识,每个用户使用的wall都不近相同,因此接入更多的wall是很有必要的,从用户角度来说,非必要情况下,我是不愿意去额外下载wall的。因此今天我们来聊一下,DApp…

手把手教你搭建 Docker API 未授权漏洞环境

环境:ubuntu 16.04 我是在虚拟机中安装了ubuntu 16.04的环境,里面暂时没有docker、ssh远程、vim等。 1. 更换国内源 直接输入docker 这里没有安装,那安装下 sudo apt install docker.io 开始安装 因为我没有修改源,所以这个速…

数据的表示和存储1

目录 数制和编码 信息的二进制编码 数值数据的表示 进制计数制 定点数和浮点数 定点数的编码表示 原码表示 补码表示 求特殊数的补码 求真值的补码 求补码的真值 移码表示Excess (biased) notiion C语言中的整数 无符号整数(unsigned integer) 带符号整数&#xff0…

QT sql查询模型,视图显示

SQL模型定义定义sql查询模型查询设置格式创建视图并显示setHeaderData() 函数定义 SQL 查询模型(QSqlQueryModel)是 Qt 提供的一种数据模型,用于执行 SQL 查询并返回结果集。它继承自 QSqlTableModel 类,可以使用 QSqlQuery 对象执…

【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录

文章目录1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置4.公网访问测试5.结语1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是网上…