0. 简介 现有很多LiDAR里程计都依赖于某种形式的ICP估计帧间位姿,例如CT-ICP, LOAM等。现有的系统设计需要对机器人的运动(CT-ICP)和环境的结构(LeGO-LOAM)有一些特定的假设。而且几乎没有系统能够不需要调参(例如特征提取、面特征拟合、法向量估计、畸变矫正)就能用于不同的场景、不同的LiDAR、不同的运动模式、以及不同种类的机器人。为此《KISS-ICP: In De
0. 简介 作为一个SLAMer来说,整个SLAM过程可以分为预处理(包含相机、激光的畸变去除,以及IMU的预积分都属于这部分操作),前端优化(这部分主要做的就是帧间匹配【scan-to-scan】,帧与地图匹配【scan-to-submap】,划窗优化,提取关键帧),后端优化(回环检测,后端地图优化)这些步骤。而上面这些我已经讲了很多了,比如划窗优化这块也是给出了对应的代码,我们这里将从cer
0. 简介 对于视觉而言,想要获得比较精细的地图信息,这离不开地图的三维重建。三维重建(3D Reconstruction)的定义就是,从一堆二维图像中恢复物体的三维结构,并进行渲染,最终在计算机中进行客观世界的虚拟现实的表达。一般的步骤如下 输入无序图像 Unstructured Images 图像对齐(Assoc.),筛选图像,构建场景图(也称为连接图)。 稀疏
0. 简介 之前我们在之前的博客中说了很多关于如何通过帧与地图匹配完成重定位,从而完成位置识别的。同时也有一篇专门用于介绍重定位的博客《定位解析与思考》。目前基于LiDAR的位置识别方法通常是基于无序点或距离像等点云的表示。这些方法实现了很高的检索召回率,但在视图变化或场景变化的情况下,它们的性能可能会下降。而《BEVPlace: Learning LiDAR-based Place Recog
0. 简介 神经隐式表示近年来在SLAM中,特别是在稠密视觉SLAM中,成为一种流行的表示方法。然而,此前在这一方向上的工作要么依赖于RGB-D传感器,要么需要单独的单目SLAM方法进行相机跟踪,并且不能产生高精度、高密度3D场景重建。在本文中,我们提出了NICER-SLAM,这是一个稠密的RGB SLAM系统,同时优化相机位姿和分层神经隐式地图表示,这也允许高质量的新视图合成。 为了促进地图
0. 简介 在slam当中,我们在回环的时候会使用关键帧的概念,而关键帧怎么样去可视化,并将可视化的关键帧在RVIZ中显示,对于我们理解这一概念非常重要,当然目前有很多SLAM算法中已经插入了这一点,但是这一点的操作仍然值得我们去了解学习。一般在论文中我们称这类方法为Covisibility Graph可视化,它是一个无向有权图(graph),这个概念最早来自2010的文章《Closing Lo
0. 简介 在之前,作者曾经转过一篇《一文详解ORB-SLAM3》的文章。那篇文章中提到了ORB-SLAM3是一个支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行。与ORB-SLAM2相比,ORB-SLAM3在处理大视差和长时间未观测到的场景时效果更好。它还提供了更准确的帧间运动估计和更快的处理速度。此外,ORB-SLAM3还支持更多的传感
0. 简介 我们在日常使用激光SLAM算法的时候,常常会发现现有的算法只会和一些比较经典或者前作去进行比较,很多时候我们更希望对主流的激光SLAM方法进行性能比较。之前作者转载过一篇文章《常见不同3D激光SLAM方案对比》。但是对比的算法有限。现在瑞典Lule科技大学评估9种最常用的激光SLAM方法。我们下面主要来看一下性能对比部分的内容。 1. 总览所有激光slam 所有SLAM方法,所需
0. 简介 我们知道,在SLAM中,最主要也最关键的就是如何对我们设计出来的非线性问题进行求解,并计算出最优解。而在这个过程中我们用的最多的就是Ceres,之前作者在《SLAM本质剖析-Ceres》。而我们这一篇文章就来讨论一下如何使用Ceres来完成常见的优化。 1. Ceres中点到点的距离残差 下面的部分就是我们最常用的两个点到点的计算公式,其中Eigen_MAKE_ALIGNED_O
0. 简介 作为SLAM中常用的方法,其原因是因为SLAM观测不只考虑到当前帧的情况,而需要加入之前状态量的观测。就比如一个在二维平面上移动的机器人,机器人可以使用一组传感器,例如车轮里程计或激光测距仪。从这些原始测量值中,我们想要估计机器人的轨迹并构建环境地图。为了降低问题的计算复杂度,位姿图方法将原始测量值抽象出来。具体来说,它创建了一个表示机器人姿态的节点图,以及表示两个节点之间的相对变换
0. 简介 对于Gazebo而言,我们知道其是可以通过与ROS的连接完成机器人建图导航的,那我们是否可以通过Unity来完成相同的工作呢,答案是肯定的。这一讲我们就来讲述使用Unity的“Turtlebot3”模拟环境,来运行ROS2中的“Navigation 2”以及“slam_toolbox”。 1. 代码编译 安装步骤如下所示,首先先下载“Navigation 2 SLAM Examp
0. 简介 这几个月,博主已经从SLAM算法的使用向着算法的数学推导进行了记录和分享,之前也分享了李群李代数关注核心一文,从现象中解释了李群和李代数表达的含义。但是这还不够,所以这次作者作为SLAM本质剖析的番外,来介绍李群李代数的微分和导数。 1. 旋转点求导 李群或者李代数上叠加微小量的情况呢?传统的求导过程中,我们常见的做法是对自变量添加一个微小值来进行: f'(x) =
0. 简介 SLAM算法在加入回环检测与修正后,效果会显著提高。而很多人就会思考,有没有一个比较稳健的方法,能够让机器人跟丢之后重新找回当前的姿态。虽然二者目的不同,重定位主要为了恢复姿态估计,而回环为了解决飘移,提高全局精度。但是二者在匹配帧上可以共享一些算法。 1. 视觉重定位回顾 比如说对于单目VSLAM算法用的比较多的还是基于BoW的匹配方案(ORB-SLAM,VINS等),也有基于
0. 简介 在面对二维与三维之间的转换时,我们常常会困惑该如何去转换,在G2O中存在有理想的坐标转换工具,但是在Sophus中却缺乏这样的手段。之前在Sophus处简要的介绍了一下SE(2)与SE(3)的转换,最近发现之前的文章这部分需要拿出来详细的说一说。 1. 欧拉角与旋转向量 欧拉角、旋转向量、四元数和旋转矩阵是Sophus中常常提到的几个名词,欧拉角和旋转向量是类似的,SO(3)的旋
0. 简介 视觉里程计最近几年越来越受到学术界以及工业界的认可,以ORB和VINS为代表的视觉SLAM已经可以满足绝大多数场景,而OV2SLAM在其他VSLAM中脱颖而出,其实时性以及具体的回环性能在测试中都得到了认可。下面我们就来看一下《OV2SLAM : A Fully Online and Versatile Visual SLAM for Real-Time Applicatio
0. 简介 PCL作为目前最为强大的点云库,内部存在有大量集成好的算法。而对于数据量大、非同源、含大量噪声且部分重叠的激光点云与影像重建点云,其稀疏程度、噪声程度等不同,非重叠区域的面积很大。真实场景的点云尤其是影像重建点云噪声较多,提取的法向量误差也很大,有的时候NDT和ICP并不能形成良好的匹配,这个时候我们该怎么样评估通过IPC或NDT算出的变换矩阵来估算出算法的精度呢?这个时候就需要通过
0. 简介 作为常用的配准方法,ICP和NDT两种匹配被广泛应用于激光雷达的点云配准方法中。我们知道IPC的匹配主要是描述了点到点的匹配方法,而无法胜任点到面以及面到面的匹配,而本博客主要就是将向读者分析《Generalized-ICP》这篇论文,GICP可以通过点到点的距离作为损失函数求解point-to-point的损失函数,点到局部目标点局部拟合的平面距离作为point-to-pl
0. 简介 对于ROS1而言,rqt和plotjuggler是我们最常用的工具,这两个工具:rqt中嵌入了很多有用的小工具,但是它需要播放离线包,没有办法对离线包进行实时的分析。而plotjuggler支持对离线bag包进行分析,但是不支持可视化的工具,这两个各有千秋。而近年来,有更多的工作开始落实在可视化上。 1. SLAMer常用的可视化开源库 opengl:Open Graph
0. 简介 boost作为C++中最常用的第三方库,很多SLAMer都在使用Geometry中的库。Geometry库里面拥有大量的开源算法。可以省去大量的重复造轮子的时间。虽然有《Boost程序库完全开发指南》这系列的书来学习Boost中的时间与日期、内存管理、工具类、字符串与文本处理、正确性测试、容器与数据结构、数学与数字、操作系统相关、回调函数、并发编程、设计模式这11个主要的部分。但是G
0. 简介 激光雷达作为自动驾驶中最常用的传感器之一,由于其深度感知特性优良,这也让以激光SLAM为主的SLAM方法被广泛应用。但是我们发现在人员密集,车辆密集的场景经常会造成点云定位效果不佳,而这些情况传统滤波方法是没有办法解决的。本篇将主要围绕着深度学习的方法来讲述激光雷达分割的问题。 1. SLAM配准与建图 无论哪种点云配准方式(点到点/点到特征/点到栅格/NDT),都是基于静态假设
slam的基础到slam的进阶,你想到的都可以看
博客
泡泡
积分
勋章
精选经典文献阅读之--KISS-ICP(简单准确且鲁棒的激光里程计)
精选三大后端优化方法(Ceres&G2O&>SAM)
精选视觉三维重建第一课
精选经典文献阅读之--LBEVPlace(鸟瞰图的LiDAR的位置识别)
精选经典文献阅读之--NICER-SLAM (RGB神经隐式的稠密的SLAM)
精选如何在SLAM中绘制关键帧的关联
精选ORB-SLAM3整体流程详解
经典文献阅读之--Evaluation of Lidar-based 3D SLAM algorithms (激光SLAM性能比较)
Ceres 常用的优化手段
位姿图优化(Ceres& G2O& GTSAM)
Unity-ROS与Navigation 2(四)
SLAM本质剖析番外-李群李代数的微分和导数
重定位解析与思考
Sophus降维、升维与欧拉角、旋转向量的爱恨情仇
经典文献阅读之--OV2SLAM(高速视觉slam)
PCL 点云配准衡量指标
经典论文阅读之-GICP(ICP大一统)
ROS1可视化利器---Webviz
SLAM本质剖析-Boost之Geometry函数大全(一)
激光雷达动态障碍物滤除-调研与展望
自动驾驶-激光雷达预处理/特征提取
PCL补充之滤波、提取、配准方法
VSLAM特征之线特征&面特征
cartographer中的反光板定位
SLAM 中的 Kalman Filter 推导
Scan Context回环检测解读和使用
一看就懂的单目特征点恢复深度信息(三角化)
SLAM之划窗优化
SLAM本质剖析-Boost
Cartographer中的线程池操作
基于Sophus的Ceres优化
从LVI-SAM来看激光与视觉的紧耦合系统
大型点云地图裁剪及定位的通用流程
SLAM—逆深度
SLAM本质剖析-Open3D
矩阵并行加速之NENO与SSE
李群李代数关注核心
sim3相较于se3的好处
点云聚类及匹配(KD-Tree & OCTree)
LEGO-LOAM改进思路以及代码
SLAM外参标定
SLAM本质剖析-GTSAM
SLAM本质剖析-PCL
SLAM各种并行加速方法
紧耦合后端非线性优化-局部优化(Marginalization)
SLAM本质剖析-Sophus
SLAM本质剖析-G2O
SLAM本质剖析-Eigen
SLAM本质剖析-Ceres
VINS-FUSION 前端后端代码全详解
SC-LEGO-LOAM 扩展以及深度解析(三)
SC-LEGO-LOAM 扩展以及深度解析(二)
SC-LEGO-LOAM 扩展以及深度解析(一)
使用ORBSLAM2进行kineticV2稠密建图,实时转octomap建图以及导航
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信