[论文阅读]4DRadarSLAM: A 4D Imaging Radar SLAM System for Large-scale Environments

 

目录

 

1.摘要和引言:

2. 系统框架:

2.1 前端:

2.2 回环检测:

2.3 后端:

3.实验和分析:

4.结论


1.摘要和引言:

这篇论文介绍了一种名为“4DRadarSLAM”的新型4D成像雷达SLAM系统,旨在提高大规模环境下的定位与地图构建性能。与传统的基于激光雷达的SLAM系统相比,该系统在恶劣天气条件下表现更佳。它包括前端、回环检测和后端三个主要部分:前端通过扫描匹配计算里程计数据,回环检测模块识别回环,后端则构建并优化姿态图。该系统的显著特点是考虑了每个点的概率分布,从而改善性能。论文中还展示了在不同平台和数据集上的实验结果,证明了该系统的准确性、鲁棒性和实时性。此外,为了进一步促进相关研究,研究者将系统代码开源。https://github.com/zhuge2333/4DRadarSLAM

引言部分介绍了同步定位与地图构建(SLAM)的重要性,并指出在恶劣天气条件下,基于激光雷达的SLAM系统可能会受到限制。因此,近年来越来越多的关注转向了稳健的毫米波雷达测距(mmWave Radar)。然而,大多数研究集中在2D或3D雷达上,而关于4D雷达(x, y, z, 多普勒)的研究相对较少。4D雷达是一种相对较新的技术,其收集的点云比3D激光雷达更嘈杂和稀疏,这使得从4D雷达的点云中提取有效的几何特征更具挑战性。因此,直接将3D激光雷达SLAM方法应用于4D雷达SLAM并不可行。论文提出了一个针对4D成像雷达的完整SLAM系统,包括前端、回环检测和后端。

2. 系统框架:

4DRadarSLAM系统分三个主要模块:前端、回环检测和后端。在前端模块中,使用4D雷达点云作为输入,估计里程计数据并生成关键帧。回环检测模块评估每个新的关键帧,以确定是否能形成回环。在后端,构建并使用g2o优化姿态图,从而生成优化后的姿态作为输出。整个系统旨在通过这些模块协同工作,提高SLAM系统在大规模环境中的性能和准确性。 

2.1 前端:

预处理阶段:需要过滤掉动态物体。可以利用雷达的多普勒速度信息来识别这些物体。在这项研究中,作者使用一种在文献[33]中提出的线性最小二乘法来估计雷达的自我速度。通过估计的多普勒速度和自我速度,他们能够确定物体的真实速度。这一过程有助于提高SLAM系统对环境的理解和处理能力,尤其是在动态和复杂的场景中。 

 Scan-to-Scan matching: 输入是上一关键帧(Fk)和新的一帧(Pt)。目标是找到从t到k的转换矩阵(Ttk)。由于4D雷达点云的噪声较大,直接提取几何特征(如边缘和平面)并不容易。我们发现,与 ICP 和 NDT 相比,GICP 算法可以输出更可接受的结果。初始转换矩阵设置为上一次的转换矩阵(Ttk-1)。提出了一种新的算法,称为自适应概率分布-GICP(APDGICP),它在 GICP 算法中考虑了每个点的空间概率分布。根据雷达手册,点的测距不确定性为 σr = 0.00215r,其中 r 和 σr 分别是测量的距离和不确定性。方位角和仰角精度分别为 0.5° 和 1.0°,这导致了球坐标系中方位角和仰角方向的不确定性,近似为 σa ≈ sin(0.5°)r 和 σe ≈ sin(1.0°)r。由此产生的概率分布如下图所示,类似于一个椭球体(橙色),一个轴指向原点,三个半轴长度分别为 σr(距离)、σa(方位角)和 σe(仰角)。

关键帧选择:第一帧被指定为固定关键帧,而后续关键帧的确定取决于是否满足以下两个条件之一:1. 当前帧和上一关键帧之间的平移量超过阈值 δt; 2. 当前帧和上一关键帧之间的旋转量超过阈值 δr。阈值参数根据经验设置如下:δt = 0.5m 或 2m,δr = 15°。第 k 个和第 k+1 个关键帧之间的扫描到扫描匹配结果作为 SE(3) 二元边添加到位姿图中。

2.2 回环检测:

此步骤的目的是确定每个关键帧是否构成了一个回环。首先,通过预过滤步骤基于四个规则识别潜在的环路,包括距离限制、空间接近性、高度差限制和姿态角限制。接着,利用强度扫描上下文模块来进一步筛选潜在的闭环候选。最后,为确保几何一致性,采用里程计检查步骤,以防止后端姿态图优化中的几何不一致问题。通过这些步骤,系统能有效识别并确认回环,从而增强SLAM系统的精度和可靠性。 

2.3 后端:

基于前端里程计、闭环检测和GPS信号(如果可用)构建姿态图。关键帧在姿态图中表示为节点,节点之间的边代表里程计约束。当确定闭环时,将其作为约束(二元边)添加。如果有GPS信号,也可以将其作为单元边加入姿态图中,其协方差直接从GPS数据获得。最后,使用g2o库优化姿态图,得出优化的姿态。

3.实验和分析:

这里包括了对系统的前端和后端性能的定量分析,以及使用五个不同数据集的实验结果。实验显示,在小规模数据集上,APDGICP(自适应概率分布GICP)在前端性能上优于GICP,而在大规模数据集上GICP表现更好。准确的环路闭合显著提高了精度,尤其是在后端优化时。此外,使用GPS数据的后端优化进一步提高了系统的性能。文章还包括了对这些方法在不同数据集上轨迹的可视化比较,以及各个算法步骤的效率分析。

4.结论

在这篇论文中,为4D成像雷达引入了一个完整的SLAM系统,该系统由三个模块组成:前端、回环检测和后端。在前端,估计了雷达自身速度以去除动态物体,并提出了APDGICP算法,该算法考虑了原始GICP中每个点的概率分布,用于扫描到扫描匹配。在回环检测中,引入了几种回环过滤方法,并使用强度扫描上下文来查找回环候选。实现了一个里程计检查模块,以确定最佳回环。在后端,基于前端里程计、检测到的回环和GPS数据构建位姿图。使用自己收集的数据集进行了大量实验,这些数据集涵盖了各种环境和速度,包括结构化和非结构化、小规模和大规模环境、低速和中速。我们提出的系统在笔记本电脑上实现了实时性能,相对误差(RE)为2.05%、0.0052deg/m,绝对轨迹误差(ATE)为2.35m。未来的工作包括:融合4D雷达和IMU以实现更鲁棒的SLAM。

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

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

相关文章

若依CRUD搬砖开始,Java小白入门(十)

背景 经过囫囵吞枣的学习若依框架,对于ruoyi-framework,common,安全,代码生成等模块都看了一圈,剩余的调度模块,这个暂时不深入,剩余的是ruoyi-system,就是用mybatis完成的&#xf…

linux usb 驱动之urb

linux 内核中的 USB 代码和所有的 USB 设备通讯使用称为 urb 的东西( USB request block). 这个请求块用 struct urb 结构描述并且可在 include/linux/usb.h 中找到. 一个 urb 用来发送或接受数据到或者从一个特定 USB 设备上的特定的 USB 端点, 以一 种异步的方式. 它用起来非…

063:vue中一维数组与三维数组联动,类似购物车增减

第063个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeM…

04MyBatis核心配置文件

mybatis-config.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><enviro…

服务发现Discovery

对于注册进eureka里面的微服务&#xff0c;可以通过服务发现来获得该服务的信息 1、 修改cloud-provider-payment8001的controller import com.my.springcloud.utils.RestResponse; import com.my.springcloud.entities.Payment; import com.my.springcloud.service.PaymentSe…

【深入学习Java虚拟机】

1.类的加载&#xff0c;连接&#xff08;验证、准备、解析&#xff09;与初始化。 类的加载指的是将类的 .class 文件中的耳机子数据读入到内存中&#xff0c;将其放在运行时数据去的方法区内&#xff0c;然后再兑取创建一个java.lang.Class 对象&#xff0c;用来封装类在方法…

K8S API访问控制之RBAC利用

前言 K8S对于API的访问安全提供了访问控制&#xff0c;主要为4个阶段&#xff0c;本文为第二个阶段——鉴权的RBAC。RBAC是基于角色的访问控制&#xff0c;使用kubeadm安装集群1.6版本以上的都默认开启了RBAC。本文主要研究集群可能存在的利用点及相对应的利用手法。 API访问…

【JAVA】final、finally、finalize 有什么区别?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 final&#xff1a; finally&#xff1a; finalize&#xff1a; 结语 我的其他博客 前言 在Java中&#xff0c;final、f…

【网络工程师】三层交换机与HSRP

一、三层交换机 1、三层交换机 三层路由器 二层交换机 2、三层路由引擎是可以关闭或开启的 conf t ip routing 开启三层路由功能 no ip routing 关闭 3、三层交换机的优点 与单臂路由相比&#xff1a; 1&#xff09;解决了网络瓶颈的问题 2&#xff09;解决了单点故障&a…

使用flet创建todo应用

使用 Flet 在 Python 中创建待办事项应用 Create To-Do app in Python with Flet 翻译官网教程https://flet.dev/docs/tutorials/python-todo&#xff0c;对一些地方进行了注释和修改。 安装flet Python版本需要3.8及以上&#xff0c;使用pip安装&#xff1a; pip install…

test fuzz-01-模糊测试(Fuzz Testing)入门 Atheris、Jazzer、jqf、kelinci、FLA、libfuzzer 对比

拓展阅读 开源 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) 开源 Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) test fuzz-01-模糊测试&#xff08;Fuzz Testing&#xff09; test fuzz-…

【MySQL】MySQL事务基础概述与隔离级别

MySQL事务基础概述与隔离级别 在数据库管理系统中&#xff0c;事务是一组原子性的操作&#xff0c;要么全部执行成功&#xff0c;要么全部失败。MySQL事务的四个基本特性&#xff0c;即ACID&#xff08;原子性、一致性、隔离性、持久性&#xff09;&#xff0c;对于数据的可靠…

代码随想录算法训练营day6|242.有效的字母异位词、349.两个数组的交集、202.快乐数

哈希表理论基础 建议&#xff1a;大家要了解哈希表的内部实现原理&#xff0c;哈希函数&#xff0c;哈希碰撞&#xff0c;以及常见哈希表的区别&#xff0c;数组&#xff0c;set 和map。 什么时候想到用哈希法&#xff0c;当我们遇到了要快速判断一个元素是否出现集合里的时…

Unity Urp 渲染管线 创建透明材质球

按照以上方式设置后就可以得到一个透明的材质球 Tips&#xff1a;Blending mode &#xff1a; alpha 和 Blending mode &#xff1a; additive都是完全透明效果具体差异暂时不知道

模型创建与nn.Module

一、网络模型创建步骤 二、nn.Module 下面描述了在 PyTorch 中常见的一些属性和功能&#xff0c;用于存储和管理神经网络模型的参数、模块、缓冲属性和钩子函数。 parameters&#xff1a;用于存储和管理 nn.Parameter 类的属性。nn.Parameter 是一种特殊的张量&#xff0c;它被…

在做题中学习(44):无重复字符的最长字串

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;同向双指针————“滑动窗口” 思路&#xff1a;如下图&#xff0c;当right进窗口后&#xff0c;就出现了a重复&#xff0c;所以在left出窗口时时&#xff0c;需要跳到第一个a 后面的位置&…

【QML COOK】- 004-添加动画

1. 编辑main.qml import QtQuickWindow {width: 800height: 800visible: truetitle: qsTr("Hello World")Image {id: backgroudanchors.fill: parentsource: "qrc:/Resources/Images/arrow.png"Behavior on rotation {NumberAnimation {duration: 1000}}}…

C语言-蓝桥杯算法提高VIP-产生数

题目描述 给出一个整数 n 和 k 个变换规则。 规则&#xff1a; 一位数可变换成另一个一位数&#xff1a; 规则的右部不能为零。 例如&#xff1a;n234。有规则&#xff08;k&#xff1d;2&#xff09;&#xff1a; 2&#xff0d;> 5 3&#xff0d;> 6 上面的整数…

Master01节点免密钥登录其他节点

1、执行命令 ssh-keygen -t rsa&#xff0c;一直敲回车 2、for i in k8s-master01 k8s-node01 k8s-node02;do ssh-copy-id -i .ssh/id_rsa.pub $i;done 输入yes和对应节点密码

【CSS】首个字符占用多行,并自定义样式

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>首字母大写</title><style&…