经典文献阅读之--D-Map(无需射线投射的高分辨率激光雷达传感器的占据栅格地图)

0. 简介

占用地图是机器人系统中推理环境未知和已知区域的基本组成部分。《Occupancy Grid Mapping without Ray-Casting for High-resolution LiDAR Sensors》介绍了一种高分辨率LiDAR传感器的高效占用地图框架,称为D-Map。该框架引入了三个主要创新来解决占用地图的计算效率挑战。首先,我们使用深度图像来确定区域的占用状态,而不是传统的射线投射方法。其次,我们在基于树的地图结构上引入了一种高效的树上更新策略。这两种技术避免了对小单元的冗余访问,显著减少了需要更新的单元数量。第三,我们通过利用LiDAR传感器的低误报率,在每次更新时从地图中删除已知单元。这种方法不仅通过减小地图大小提高了框架的更新效率,还赋予了它一种有趣的递减特性,我们称之为D-Map。为了支持我们的设计,我们提供了深度图像投影的准确性和占用更新的时间复杂度的理论分析。此外,我们在公共和私有数据集上进行了广泛的基准实验,使用了各种LiDAR传感器。我们的框架在与其他最先进方法相比的同时,展示了卓越的效率,同时保持了可比较的映射精度和高内存效率。我们展示了D-Map在手持设备和携带高分辨率LiDAR的航空平台上进行实时占用地图的两个真实世界应用。此外,我们在GitHub上开源了D-Map的实现

在这里插入图片描述

图1. 我们提出的框架D-Map作为自主无人机探索古堡任务中的实时高分辨率占据地图模块。(a) 无人机采集的高保真度点云。(b) 场景的鸟瞰图。© 航空平台携带了一台128通道激光雷达(OS1-128)来执行探索任务。本文的附带视频可在Youtube上观看:youtu.be/m5QQPbkYYnA。

1. 主要贡献

在这项工作中,我们提出了一种新颖的映射框架,有效解决了基于激光雷达的占据地图中的上述问题。我们的贡献可以总结如下:

  • 我们提出了一种基于深度图像投影的占据状态确定方法,以减轻传统射线投射技术中的计算负载。这种基于投影的方法可以对任意大小的单元进行占据状态的确定,从而在大规模环境中实现后续的高效更新。
  • 我们提出了一种基于混合地图结构的新颖的树上更新策略,以提供计算和内存效率之间的卓越平衡混合地图结构将未知空间存储在八叉树上,从而实现对大规模未知空间的内存高效表示,而占据空间则存储在哈希网格地图上。在效率方面,所提出的策略允许在八叉树上确定大单元的占据状态,从而避免对小单元进行不必要的更新,提高了效率。
  • 我们利用激光雷达测量的低误报率,直接在每次更新时删除具有确定状态(即占据或空闲)的单元。这种方法使我们的地图结构具有递减性质,因此我们将我们的框架称为D-Map,提供更高的计算效率和更少的内存使用。
  • 我们对所提出的占据状态确定方法的准确性进行了深入分析,并对D-Map中的更新和查询的时间复杂度进行了分析。具体而言,我们推导出了一个分析函数,用于量化与深度图像分辨率相关的准确性损失。对D-Map上的更新的时间复杂度分析为我们相对于依赖射线投射的最先进方法的卓越性能提供了理论支持。
  • 我们在Github上提供了D-Map的实现:github.com/hku-mars/D-Map,以促进我们工作的可复现性和进一步的发展。

2. 综述

图2展示了提出的D-Map框架的概述。橙色块中勾勒的地图结构在第V-A节中进行了解释。它由两部分组成:占用地图和未知地图。绿色块表示占用更新策略的流程。在每次更新时,从传感器姿态处的点云生成深度图像(详见第IV-A节)。随后,在深度图像上构建2D段树,以实现高效的占用状态确定(详见第IV-B节和第IV-C节)。更新未知地图的整个过程在第V-B节中进行了描述,并总结如下。单元提取模块从八叉树上按照从最大到最小的尺寸收回未知单元,将它们投影到深度图像上,并确定它们的占用状态。确定为已知的单元直接从地图中移除,而未知的单元保留下来,而未确定的单元则被分割成更小的单元以进一步确定占用状态。这种由粗到细的过程可以直接对大单元进行更新,而无需查询每个小单元。此外,已知单元的移除赋予了我们的框架递减属性,从而在计算和内存方面提供了高效性。

在这里插入图片描述

图2. D-Map的框架概述。蓝色块显示了D-Map的输入,包括点云和相应的传感器里程计。
橙色块是D-Map的占据地图结构,由一个哈希网格地图和一个八叉树组成,用于维护占据空间和未知空间。占据更新策略显示在绿色块中,该策略从八叉树中提取感知区域内的单元格,并根据使用深度图像的占据状态确定方法进行操作。

3. 深度图像上的占用状态确定

本节描述了如何从传入的点云栅格化深度图像,并确定其占用状态。

3.1 深度图像栅格化

为了确定占用状态,由激光雷达传感器捕获的点云被栅格化成当前传感器姿态下的深度图像。为确保状态确定的准确性,深度图像的分辨率应足够小,以便从地图到深度图像的单元格的投影区域大于一个像素。如图3所示,我们使用以下方程确定深度图像分辨率 ψ m a p ψ_{map} ψmap相对于地图分辨率d和激光雷达的检测范围 R R R

在这里插入图片描述

然而,高分辨率地图将导致一个巨大尺寸的高分辨率深度图像,其中许多像素为空,这是由于点云数量远远小于深度图像的尺寸所致。为了解决这个问题,我们通过LiDAR角分辨率来限制深度图像的分辨率,这是激光雷达发射和接收的两个激光脉冲之间的最小角度。具体来说,我们定义标准深度图像分辨率 ψ I ψ_I ψI

在这里插入图片描述

其中 ψ l i d a r ψ_{lidar} ψlidar 是激光雷达的角分辨率。请注意,为了定义简单起见,我们不区分垂直和水平角分辨率。此外,当相邻点投影到同一像素时,我们保留最小深度值。

3.2 2-D Segment Tree

为了确定地图中单元格的占用状态,采用了一个两步过程,首先将单元格投影到深度图像上,然后比较投影深度与相应区域的最小和最大深度值。由于单元格在深度图像上的投影区域随单元格位置而变化,因此采用了2-D段树结构来加快对深度图像上最小和最大值的高效查询,具体如下所述。段树是一种完全平衡的二叉树,通过表示一组区间来高效提供范围查询[53]。图4描述了通过1-D段树查询最小值的过程。段树通过递归地将数组一分为二来构建,直到每个节点包含一个单独的元素。由于段树上的每个节点表示数组的一个区间,因此在构建过程中预处理区间中的值的总体信息,如最小值和最大值,以加速后续查询。在查询时,段树使用一部分节点(图4中的着色节点)检索查询区间的最小表示。结果是通过总结从检索节点中获取的信息,比直接查询更少的操作得到的。在1-D段树上的查询时间复杂度为 O ( l o g N ) O(log N) O(logN),其中N是离散数组中的元素数量,而直接查询的时间复杂度为 O ( N ) O(N) O(N)。将1-D段树扩展为2-D结构的方法涉及构建“段树的段树”,如[54]中提出的。外层的段树通过行来分割2-D数组,对外部段树的每个节点,构建一个1-D内部段树来维护覆盖行的列信息。2-D段树上的查询首先搜索外部树,找到代表被查询区域覆盖的行的节点,然后遍历相应节点上的内部段树,以检索被覆盖的列。最后,从检索节点上存储的信息中总结出被查询区域的结果。在2-D数组大小为 N × M N×M N×M的情况下,2-D段树上的查询时间复杂度为 O ( l o g N l o g M ) O(log N log M) O(logNlogM),而直接查询的时间复杂度为 O ( N 2 ) O(N^2) O(N2)。给定从点云光栅化的深度图像,我们构建了一个2-D段树来维护每个树节点上的最小和最大深度值,分别表示为 d M i n dMin dMin d M a x dMax dMax。此外,我们还跟踪了在每个节点覆盖区域内由点云占据的像素数量,表示为 d S u m dSum dSum

在这里插入图片描述

图3. 该图说明了地图分辨率 d d d、检测范围 R R R和深度图分辨率 ψ m a p ψ_{map} ψmap之间的空间关系。

在这里插入图片描述

图4. 该图示例了在一维段树上快速查询像素范围[2, 7]内最小值的示例。从段树的根节点开始,范围查询沿着树递归搜索,直到当前节点范围完全被查询范围覆盖为止,此时将返回在树构建过程中保存在节点上的节点范围的最小值。在这个示例中,范围[2, 7]导致四个节点分别表示范围[2, 2],[3, 4],[5, 6]和[7, 7]。范围的最小值可以高效地从这四个节点中获取,而不是计算数组中的六个元素。

3.3 占用状态确定(重点内容)

我们以五个单元格为例介绍了我们确定单元格占用状态的方法原理,如图5所示,编号从1到5。我们首先根据单元格是否完全位于激光雷达感知区域内对其进行分类。如图5(b)中的俯视图所示,Grid 1、Grid 2和Grid 3完全位于感知区域内,而Grid 4和Grid 5只有部分位于其中。在完全位于感知区域内的单元格中,Grid 3由于位于观察环境中所有物体的前方而被确定为已知;Grid 1由于位于物体后方而被确定为未知。Grid 2的占用状态仍未确定,因为其一部分位于物体前方,另一部分位于物体后方。对于部分位于感知区域内的单元格,Grid 5由于位于物体后方而被确定为未知。虽然位于物体前方,但Grid 4的占用状态由于其位置并非完全位于感知区域内而仍未确定。

…详情请参照古月居

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

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

相关文章

jQuery中的ready()函数:优雅地处理页面加载事件

在前端开发中,精确控制JavaScript脚本的执行时机对于保证页面元素被正确操作至关重要。传统上,开发者依赖于原生JavaScript的window.onload事件来确保页面所有资源(包括图片、脚本等)加载完毕后再执行特定代码。然而,这…

信息化系统建设运维服务方案(投标)Word原件

《信息化系统运维服务方案》(原件可获取) 1.项目情况 2.服务简述 2.1服务内容 2.2服务方式 2.3服务要求 2.4服务流程 2.5工作流程 2.6业务关系 2.7培训 3.资源提供 3.1项目组成员 3.2服务保障 软件全套精华资料包清单部分文件列表: 工作安排任…

ICode国际青少年编程竞赛- Python-2级训练场-坐标入门

ICode国际青少年编程竞赛- Python-2级训练场-坐标入门 1、 d Item.x - Dev.x Dev.step(d)2、 d Item.y - Dev.y Dev.step(d)3、 d Dev.y - Item.y Dev.step(d)4、 d Item[0].x - Dev.x Dev.step(d) Dev.step(-d) Dev.turnRight() d Item[1].y - Dev.y Dev.step(d)…

Jetson Orin NX L4T35.4.1平台自启动时间优化调试记录2

基于上一篇继续记录 Jetson Orin NX L4T35.4.1平台自启动时间优化调试记录1-CSDN博客 1. 测试UEFI 延时5s问题 [2024-03-19 11:51:04] L4TLauncher: Attempting Direct Boot [2024-03-19 11:51:09] EFI stub: Booting Linux Kernel... debug UEFI 在 11:51:04和11:51:09之…

电商数据接口|如何获取电商数据?

随着互联网的发展,电商的运营方式也逐渐数据化,在大数据的影响下,电商领域很大程度上改变了传统的运营模式。很多商家如今都非常重视数据,并将数据贯穿于整个店铺的运营之中。 那么,具体来说电商大数据有哪些妙用呢&a…

商务分析方法与工具(十):Python的趣味快捷-公司财务数据最炫酷可视化

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

Spring boot使用websocket实现在线聊天

maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spr…

软件2班20240513

第三次作业 package com.yanyu;import java.sql.*; import java.util.ResourceBundle;public class JDBCTest01 {public static void main(String[] args) {ResourceBundle bundle ResourceBundle.getBundle("com/resources/db");// ctrl alt vString driver …

高端智能终端RK3399主板在配送机器人项目的应用,支持免费定制

基于高端智能终端主板IoT-3399E推出了系列配送机器人&#xff0c;面向各类线下门店的配送服务。配送机器人可实现智能识别、精准配送、自动避障、自主调度系统、语音播报、信息互动等功能&#xff0c;大幅提升服务效率&#xff0c;为消费者带来更加便捷、智能的服务体验。 核心…

MySQL删除篇

文章目录 deletetruncatedrop delete delete from product ; 使用场景&#xff1a;一般正常删除数据&#xff0c;可回滚&#xff0c;不删除表结构 truncate truncate table product;使用场景:快速清空表数据&#xff0c;不可回滚&#xff0c;不删除表结构 drop drop tabl…

RK3568/RK3588智慧校园AI盒子方案,电子班牌,出入口管制,数字化校园等,支持鸿蒙,支持免费定制

智慧校园解决方案基于物联网、人工智能等新兴技术&#xff0c;为师生构建智能化校园环境&#xff0c;涵盖了校园安全、智慧教室、考勤管理、智慧食堂等多个场景&#xff0c;从工作、学习到生活&#xff0c;带来更人性化、更便捷、更高效的服务。 方案架构 方案特点 全面感知校园…

驾驭多云环境,加速AI创新丨Animbus Cloud 8.3.0 算力调度平台升级发布

大模型开启全球新一轮AI浪潮&#xff0c;伴随算力规模的爆发增长以及计算技术的多元创新&#xff0c;需要更稳定、高效、敏捷的异构计算基础设施&#xff0c;才能充分发挥对算力能力的重要支撑。 作为开放智能云边架构引领者&#xff0c;九州未来凭借多年的技术积累、实践沉淀…

2024-05-09 问AI: 在深度学习中,什么是模型检查点?

文心一言 在深度学习中&#xff0c;“模型检查点”&#xff08;Model Checkpoint&#xff09;是指训练过程中的一个保存点&#xff0c;它包含了模型在那一特定时刻的权重、配置和优化器的状态等信息。这种技术允许在训练被中断时&#xff0c;或者想要从某个点开始继续训练时&a…

JNI传递ByteArray参数错误

JNI传递ByteArray参数使用如下方式出现异常&#xff1a; jsize length env->GetArrayLength(data);jbyte* initBytes env->GetByteArrayElements(data, nullptr);char* initBuffer new char[length];memcpy(initBuffer, initBytes, length);env->ReleaseByteArrayE…

深入理解Python对象的字符串表示:`__str__`与`__repr__`的区别与应用

在Python编程中&#xff0c;我们经常需要将对象转换为字符串形式&#xff0c;无论是为了打印输出还是进行字符串操作。Python提供了两种特殊的方法来定义对象的字符串表示形式&#xff1a;__str__和__repr__。本文将详细讲解这两种方法的区别、用途以及如何在实际编程中使用它们…

BA112协议网关促进楼宇自控系统与OPC UA平台集成

在当今智能化建筑的潮流下&#xff0c;楼宇自控系统的发展已成为建筑行业的重要趋势。然而&#xff0c;由于不同厂商生产的楼宇自控设备使用的通信协议多样&#xff0c;导致了设备之间的互联互通存在困难。为了解决这一问题&#xff0c;钡铼技术最新推出了BACnet转OPC UA网关BA…

企业网站慎用免费SSL证书!OV证书才是首选

市面上有很多免费证书提供&#xff0c;免费的SSL证书更适用于个人博客、学生学习、测试等应用场景。如果您的网站是企业网站一定慎用免费的SSL证书&#xff0c;而是选择企业级的OV证书。 一&#xff0e;免费SSL证书的风险 1安全性&#xff1a;免费SSL证书通常只提供基本的加密…

景区AR导览导航语音播报小程序系统开发源码搭建

开发景区AR导览导航语音播报小程序系统需要以下步骤&#xff1a; 1. 确定需求&#xff1a;明确系统需要实现的功能&#xff0c;如AR导览、导航、语音播报等。 2. 设计系统架构&#xff1a;根据需求设计系统的架构&#xff0c;包括前端和后端。前端需要实现AR导览、导航、语音…

中学数学研究杂志中学数学研究杂志社中学数学研究编辑部2024年第4期目录

教学纵横 高中数学选择性必修课程函数主线分析 柳双;吴立宝; 1-4 贯彻新课程理念 促学习能力提升——以“三角函数诱导公式”教学为例 陆雨轩; 4-6《中学数学研究》投稿&#xff1a;cn7kantougao163.com 对高中数学新课标教材新增知识点的价值分析 钱伟风;刘瑞美; …

2024电商数据资料汇总

2024年跨境电商&#xff1a;连接全球市场的新纪元 随着全球数字化进程的不断推进&#xff0c;跨境电商已经成为了国际贸易的重要组成部分。2024年&#xff0c;跨境电商行业迎来了一系列挑战和机遇&#xff0c;塑造了全新的市场格局。 跨境电商市场规模的持续扩大 2024年&…