轻量化固态激光雷达的三维定位与建图

2023-05-16

点云PCL免费知识星球,点云论文速读。

文章:Lightweight 3-D Localization and Mapping for Solid-State LiDAR

作者:Han Wang, Chen Wang, and Lihua Xie

编译:点云PCL

代码:https://github.com/wh200720041/ssl_slam.git

欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。

论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。

摘要

LiDAR传感器由于在同步定位和建图(SLAM)中的重要作用,已成为最重要的感知设备之一,现有的SLAM方法主要针对大型机器人经常采用的机械式激光雷达传感器,最近,固体激光雷达变得流行起来,因为它为小型机器人提供了一种经济高效且重量轻的解决方案,与机械式激光雷达相比,固态激光雷达传感器具有更高的更新频率和角度分辨率,但也具有更小的视场(FoV),这对现有的激光雷达SLAM算法来说是非常具有挑战性的。因此,有必要为这种新型传感装置提供一种更为稳健且计算效率更高的SLAM方法。为此,我们提出了一种新的固态激光雷达传感器SLAM框架,包括特征提取、里程估计和概率地图构建,在仓库机器人和手持设备上对所提出的方法进行了评估,在实验中,使用Intel L515固体激光雷达证明了我们方法的准确性和效率,结果表明,我们的方法能够提供精确的定位和高质量的地图。我们在网站上公布了源代码:https://github.com/wh200720041/ssl_slam.git

aafc11396232ba7261b85c1b787c4e38.png

图1:仓库环境中的室内定位和建图示例,该方法被集成到用于仓库运行的AGV中,该方法能够在嵌入式微型计算机上提供实时定位和稠密建图。

主要贡献

在这项工作中,作者提出了一种新的轻型固体激光雷达SLAM框架,包括特征提取、里程计估计和概率地图构建,受现有激光雷达SLAM方法(如LOAM和lego-LOAM)的启发,我们提出了一种新的旋转变体特征提取方法,该方法利用水平和垂直曲率。该方法在移动平台上提供了实时定位,为了评估其性能,我们进行了全面的实验。

本文的主要贡献如下:

  • 我们提出了一个全SLAM固体激光雷达框架,目标是解决小视场、高更新频率的感知系统,并将提出的方法开源。

  • 我们提出了一种改进的特征提取策略,能够在显著旋转下搜索一致的特征,此外,李代数用于迭代姿态估计,因此姿态以无奇异性格式存储对所提出的方法进行了全面的评价。更具体地说,我们将Intel L515固态激光雷达集成到AGVs中,并在复杂的仓库环境中测试所提出的方法。

  • 该方法能够提供实时定位,并且在旋转情况下具有鲁棒性。

主要内容

该系统由三个主要模块组成,即特征提取、里程计估计和概率地图构建。

cf72a3c2b61cb4b1437898133b9e7641.png

图2:所提出方法的系统概述,它包括三个主要模块:特征提取、里程计估计和概率图构建,分别以黄色、蓝色和红色突出显示

A. 特征提取

固态激光雷达将所有传感器集成在单个硅芯片上,无需移动部件,与机械激光雷达相比,它通常具有更高的分辨率和更新频率,因此,计算量可能比较大,无法匹配原始点云,受LOAM的启发,我们利用了更高效的边缘和平面匹配,在处理数据之前,根据测量的距离去除噪声点,据观察,由于反射强度较低,最大检测范围附近的读数通常较不准确,因此我们对这些噪声点进行了预处理滤波。

B.里程计位姿估计

里程计估计是基于历史激光扫描点在全局坐标系下估计机器人当前姿势的任务,传统的轨迹估计方法是扫描点到扫描点的匹配或扫描到地图的匹配,“扫描帧到扫描帧”配准方法将当前帧与最后一帧对齐,然而,与局部地图相比,单个激光扫描帧包含的周围信息较少,从长远来看会导致漂移,因此,我们使用扫描帧到地图的匹配来提高性能,为了降低计算量,采用了滑动窗口方法,利用相邻帧的边缘特征和平面特征构建局部特征地图。

迭代法进行里程计估计的过程伪代码如下

cfcf6a0682f7a80181c220ad8e403377.png

C. 概率地图

构造全局地图一般通常比较大,并且在计算上无法使用每一帧对其进行更新,因此,我们只使用关键帧来更新和重建地图,根据以下标准选择关键帧:

(1)如果机器人的位移足够显著(即大于预定义阈值)。

(2)如果旋转角度(包括横滚、俯仰、偏航角变化)变化较大。

(3)如果经过的时间超过某个时间段,在实践中,旋转和平移阈值是基于传感器的FoV定义的,而最小更新率是基于处理器的计算能力定义的,为了提高搜索效率,使用八叉树构造全局地图。

实验

A. 实验设备

该方法首先在配备VICON系统的房间中进行了评估,然后,它在用于仓库操作的自动引导车辆(AGV)上实现,我们分析了该方法的性能,并与现有的激光雷达SLAM进行了比较,为了进一步说明该方法的鲁棒性,还将该方法集成到用于三维扫描的手持设备中,在我们的实验中,使用Intel Realsense L515进行演示,这是一个小型视场固态激光雷达,它比智能手机更小、更轻,因此可以在许多移动机器人平台上使用。该算法使用C++实现,并在Ubuntu 18.04和ROS 上实现。

B.性能评估和比较

为了评估定位结果,我们的方法与VICON系统提供的真值进行比较,机器人由手动控制,在尺寸为4m×4m的VICON室内移动,结果如图3所示,其中地面真值的轨迹和我们的方法分别以红色和绿色绘制,平均计算时间为每帧31ms,该方法实现了5cm的平移误差,与广泛用于激光雷达SLAM的LOAM进行了比较,根据L515的传感器特性改变LOAM中的垂直角度和水平角度输入,同时保持边缘和平面特征的数量不变。LOAM的结果以橙色绘制,很明显,当旋转较大时,LOAM会发生跟踪损失,而我们的方法仍然能够精确跟踪。

3dfff89814eb6798dd350b404d9d8a25.png

图3:提出的方法与LOAM和地面真值之间的比较,当转速较高时,LOAM会失去跟踪,而所提出的方法能够精确跟踪,以米为单位。

C.仓库机器人的性能

在仓库环境中运行的AGV上评估该算法,在一家先进的工厂里,机器人应该能够自动运输、加工和装配产品,这就要求机器人在具有移动操作员和其他机器人的复杂且高度动态的环境中有效地定位自身。在本实验中,所提出的方法被集成到工业AGV中,如图4所示环境中。

89685f80a8c851582ec51254eb3d63c4.png

图4:仓库环境中的室内定位和建图示例,(a) AGV平台用于仓库运行,前端安装有固态激光雷达,重建的地图显示在中间,我们随机挑选了两个地方进行说明,(b) 和(d)是原始相机视图。(c) 和(e)基于所提出的方法重建场景,轨迹以绿色绘制

e19330f2b2409c78a9d8b2fecd1880b0.png

图5:在手持式扫描仪上集成所提出的方法,(a) 使用固态激光雷达作为感知系统的轻型手持式扫描仪。(b) 定位和建图结果,轨迹以绿色绘制。

固体激光雷达返回水平方向,我们记录角度偏差,当最终角度偏差大于10度时,考虑跟踪丢失的情况,该方法与A-LOAM进行比较,结果如表二所示,可以看出,与A-LOAM相比,该方法具有更高的成功率。

2862628857840ff6d1a251273090bbaf.png

总结

在本文中,我们提出了一个全SLAM的固态激光雷达系统框架,它是一种新兴的激光雷达系统,与传统的机械式激光雷达相比,具有更高的更新频率和更小的视场,该系统主要包括旋转不变性特征提取、里程计估计和概率地图构建。该方法能够在嵌入式微型PC机上支持实时定位和稠密地图构建,已经进行了全面的实验来评估该方法,包括在仓库AGV和手持移动设备上的实验,结果表明,该方法能够在高频下提供可靠、准确的定位和建图,它可以在大多数移动平台上实现,如无人机和手持式扫描仪,并且公开了源代码。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:

如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作:群主微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

ee06b7e3f1d012c5196d6055f8bee276.gif

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

轻量化固态激光雷达的三维定位与建图 的相关文章

  • 调试工具之UDP/TCP网络调试助手NetAssist

    参考文章列表 xff1a https blog csdn net zhzht19861011 article details 4545260 https blog csdn net qq 29350001 article details 7
  • idea第一次新建SpringBoot项目报错 Error:(3, 32) java: 程序包org.springframework.boot不存在

    跟着网上的教程第一次创建SpringBoot xff0c 创建好之后他们都可以直接写Controller类 xff0c 然后运行就能从localhost访问hello word了 但是我再第一次创建之后 xff0c 出现下面的情况 Erro
  • 本地socket的select用法

    学习socket的select用法 xff0c 下面代码大部分是从网上借鉴的 xff0c 只不过把网络部分的socket改为了本地socket xff0c 并加了一些自己测试用的语句 xff0c 如果有冒犯之处请联系我 xff0c 我立马删
  • C/C++程序编译过程详解

    C C 43 43 程序编译过程详解 C语言的编译链接过程要把我们编写的一个c程序 xff08 源代码 xff09 转换成可以在硬件上运行的程序 xff08 可执行代码 xff09 xff0c 需要进行编译和链接 编译就是把文本形式源代码翻
  • realsense435i运行vins-mono,标定部分

    相机标定 1 安装kalibr xff1b 参考 xff1a https blog csdn net wangbaodong070411209 article details 112248834 https blog csdn net we
  • TX2入门教程软件篇-安装python3.6+

    sudo add apt repository ppa jonathonf python 3 6 sudo apt get update sudo apt get install python3 6 增加python3两个版本的优先级 su
  • Ubuntu 16.04使用Wireshark 抓包分析USB Audio Class 设备流程

    0 前言 为了分析usb麦克风的交互流程 xff0c 需要进行usb抓包 1 安装相关插件 安装usbmon sudo addgroup usbmon sudo gpasswd a USER usbmon echo 39 SUBSYSTEM
  • QT5.5实现串口通信

    QT5 1以上版本自带QtSerialPort集成库 xff0c 只要在头文件中集成 include lt QtSerialPort QSerialPort gt include lt QtSerialPort QSerialPortInf
  • “JTAG Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.” 解决方案

    最近在调试一块GD32F107RCT6 xff0c 无法进行下载 错误提示 xff1a JTAG Warning T bit of XPSR is 0 but should be 1 Changed to 1 1 判断BOOT0 BOOT1
  • Windows无法访问Ubuntu Samba 解决方案

    好久没用Windows访问Ubuntu的共享文件 xff0c 忘记了密码 xff0c 重装Samba后提示Windows无法访问 可以打开文件但是无法访问 查看log var log samba log 192 168 1 39 smbd
  • keil C数组声明问题

    C语言中 xff0c 我们声明一个一维数组 xff0c 可以用以下几种方法 int buf 3 int buf 61 0 int buf 3 61 1 2 3 但是今天在keil中 使用int buf 61 0 这种方式进行声明 xff0c
  • 初学QML之qmlRegisterType

    qmlRegisterType 是一个可以将C 43 43 实现的类在QML中调用的 xff0c 连接C 43 43 和QML的一个工具 首先来看QtAssistant的介绍 int qmlRegisterType const char u
  • 在IDEA中引入jQuery无效

    在idea开发前端页面中 xff0c 引入jQuery后 xff0c 使用 会出现下划线 xff0c 提示未定义 虽然不影响使用 xff0c 运行后可以得到正常结果 xff0c 但还是看的很不爽 解决办法 xff1a Preferences
  • Asterisk WebRTC 搭建指南

    1 WebRTC简介 WEBRTC是一个开源项目 xff0c 其宗旨是让WEB浏览器通过简单的JavaScript具备实时通信 Real Time Communications RTC 的能力 WEBRTC目前支持JS和HTML5 xff0
  • UDP三种通讯方式

    单播 xff1a 单播用于两个主机之间的端对端通信 组播 xff1a 组播用于对一组特定的主机进行通信 广播 xff1a 广播用于一个主机对整个局域网上所有主机上的数据通信 单播实现 发送端 public class SendDemo pu
  • ArduPilot——如何对飞控LOG进行简易振动分析

    版权声明 xff1a 本文为博主原创博文 xff0c 未经允许不得转载 xff0c 若要转载 xff0c 请说明出处并给出博文链接 首先 xff0c 你得先有一架可以飞的且刷的是ArduPilot飞控代码的无人机和地面站Misson Pla
  • SITL Simulator —— ArduPilot —— Windows

    版权声明 xff1a 本文为博主原创博文 xff0c 未经允许不得转载 xff0c 若要转载 xff0c 请说明出处并给出博文链接 参考网页 xff1a http ardupilot org dev docs sitl native on
  • ArduCopter——ArduPilot——航点导航WPNav(一)

    版权声明 xff1a 本文为博主原创博文 xff0c 未经允许不得转载 xff0c 若要转载 xff0c 请说明出处并给出博文链接 现如今 xff0c 四旋翼飞行器已经从几年前的遥控航模变成真正可以超视距操控的无人机 xff0c 离不开伟大
  • 多频超声波清洗换能器用于高精密清洗系统

    多频超声波清洗换能器因加工方式和工作要求不同 xff0c 超声波换能器的工作方式可分为连续工作和脉冲式工作 xff0c 不同的工作方式对换能器的要求是不同的 连续式工作是不停机工作 xff0c 工作电流不是很大 xff0c 一般使用在清洗方

随机推荐

  • 超声波发生器电源控制电路线路板设计

    超声波发生器电源控制电路线路板是由匹配电容 xff0c 驱动变压器 xff0c 高功率的IGBT功率管 xff0c 匹配电感盒MOS管组成 xff0c 所有的组件一目了然 xff0c 零部件少 xff0c 故障率低 xff0c 造价成本低
  • 洗碗机超声波换能器振子设计

    超声波的声波是一种可以穿透液体和固体的声学化学能量 xff0c 超声波的污染非常小穿透力强 xff0c 所以人们就想到了用它来清洗餐具 xff0c 于是乎超声波洗碗机就应运而生了 洗碗机超声波换能器振子作为超声波洗碗机的三大组件之一 xff
  • 超声波清洗机电路板线路板设计

    在我们日常生活中遇见的超声波清洗设备 xff0c 大多是使用低频率或低功率的超声波 xff0c 而且由于被清洗件尺寸往往较小 xff0c 所以清洗槽的尺寸往往也较小 xff0c 清洗槽内壁高度一般不高于400mm 这类清洗机清洗物品涉及范围
  • 在Mac中开发STM32单片机

    想要在Mac下开发32单片机 xff0c 又不想装虚拟机的同学可以看看 使用工具 xff1a CLion xff08 JetBrains家族一员 xff09 STM32CubeMX xff08 配置芯片 xff0c 生成初始化代码 xff0
  • 超声波电路板驱动线路设计

    超声波电路板驱动线路通电交流电压220V 10 xff0c 电源电压需稳定 体积小 占用空间小 功率大 清洗效果好 自动化程度高 超声波电路板驱动线路驱动超声清洗换能器依次启动低频初洗 中频精洗 换水 高频漂洗 排水等工序 超声波发生器的输
  • 小型超声波PCB电路板设计

    小型超声波PCB电路板通过自动频率跟踪技术 PWM调功控制技术 电容阻抗匹配技术来匹配超声波清洗换能器 小型超声波PCB电路板在驱动负载工作时 xff0c 负载参数会发生变化 xff0c 这就是需要小型超声波PCB电路板能及时捕捉到新的谐振
  • 压电陶瓷超声波换能器设计

    压电陶瓷超声波换能器是值由电能通过压电陶瓷片转化为机械能 xff0c 通过结构件放大传播出去的一种机械运动 压电陶瓷超声波换能器的压电陶瓷片尺寸越大 xff0c 输出的功率越大 xff0c 相应的频率越低 xff0c 而尺寸越小频率相对应的
  • 数字式小型超声波清洗机设计

    数字式小型超声波清洗机可以超声 加热 定时LED数码显示 xff0c 整机为不锈钢结构 使用新型加热方式 xff0c 有效提升加热效果 xff1b 结构工艺上提升防漏水等级 xff0c 同时兼容无效热能导出结构 xff1b 压花处理不锈钢工
  • 超声波清洗振板盒带发生器设计

    超声波清洗振板盒带发生器投入式清洗 xff0c 方便携带移动使用 xff1b 时间可调 xff1a 1 99分钟可调 xff0c 可常开 xff1b 功率可调 xff1a 10 100 可调 xff1b 304外壳 xff1a SUS304
  • PE塑料超声波焊接机设备设计

    聚乙烯 xff08 polyethylene xff0c 简称PE xff09 是乙烯经聚合制得的一种热塑性树脂 在工业上 xff0c 也包括乙烯与少量 烯烃的共聚物 聚乙烯无臭 xff0c 无毒 xff0c 手感似蜡 xff0c 具有优良
  • jetson nx fan auto pwm

    参考 xff1a Jetson Nano PWM自动调速 Ay yzx的博客 CSDN博客 代码 xff1a usr bin env python import os import commands from the path of thi
  • 关于github px4 gps 驱动的开发的总结

    源码编译上边已经写过文章了 遇到的几个问题 1 解决虚拟机不能共享文件夹的问题 一开始虚拟机的更新 vmware tools 是灰色的 xff0c 不能点 xff0c 然后通过关掉虚拟机 xff0c 然后再开启的时候 xff0c 在没有启动
  • 解决Android Studio 安装gradle失败、很慢

    拉取新的项目工程是 xff0c 总是会遇到gradle 下载特别特别慢 xff0c 而且经常都是等了很久最终还以失败告终 这时 xff0c 我们可以使用浏览器自己去下载gradle xff0c 或者找同事要一份相同版本的gradle xff
  • 基于数传电台的多主通讯系统的实现

  • JNI基础简介

    导读 在前面的几篇文章中 xff0c 笔者介绍了C 43 43 中的指针 引用 智能指针 多线程 类型转换 异常处理等相关知识点 xff0c 如果想要熟练掌握 xff0c 并能在实际项目中运用 xff0c 光是看肯定是毫无用处 xff0c
  • C++ class

    namespace 在变量或函数前面加上命名空间 xff0c 用来区分其它位置中的同名函数或变量 span class token macro property span class token directive keyword incl
  • realsense r200使用过程记录

    realsense r200 相机 采用的结构光 43 双目立体视觉 xff0c 使用可以使用室外场景 xff0c 但是有些注意的事项 xff0c 该款相机在sdk 方面貌似总有些bug 相比之前的测过的zed astra kinectv1
  • 从io模型到ppc,tpc,reactor,preactor

    所有的系统I O都分为两个阶段 xff1a 等待就绪和操作 读就是等待系统可读和真正的读 写就是等待系统可写和真正的写 1 网络io模型 这是我们常见的一张图 1 传统的bio 就是同步阻塞的 当调用socket read的时候 会阻塞 直
  • ip校验和 及 udp校验和 的计算方法

    一 ip校验和的计算 计算方法 1 ip包头 共20个字节 按照每16个bit作为一个值依次进行相加 2 将计算结果的进位加到低16位上 3 将结果取反 ip包头的内存内容 eg 45 00 00 20 0F B8 00 00 80 11
  • 轻量化固态激光雷达的三维定位与建图

    点云PCL免费知识星球 xff0c 点云论文速读 文章 xff1a Lightweight 3 D Localization and Mapping for Solid State LiDAR 作者 xff1a Han Wang Chen