0. 前言 在深入剖析了Ceres、Eigen、Sophus、G2O后,以V-SLAM为代表的计算方式基本已经全部讲完。就L-SLAM而言,本系列也讲述了PCL、与GTSAM点云计算部分。之前的系列部分作者本以为已经基本讲完,但是近期突然发现还有关于Open3D的部分还没有写。趁着这次不全来形成一整个系列,方便自己回顾以及后面的人一起学习。 1. Open3D环境安装 这里将Open3D的环境安装
0. 简介 Intel的CPU和ARM的CPU都有SIMD指令,可以完成CPU 指令级的并行化。这里边主要涉及CPU的汇编的知识和一些寄存器的知识。在一些耗时的SLAM优化迭代的场合,经常出现这样的指令的优化。SSE是Intel x86架构CPU的SIMD指令的简称,NEON是ARM CPU的SIMD指令的简称。 最近在jetson的ARM架构平台下发现在移植slam的代码的时候,无法快速处理,而
0. 简介 李群李代数作为SLAM当中非常重要的一部分,作者最近才对该部分有了清晰地认知,感觉有必要放出来说一说。因为李群本身存在加法不闭合性,所以李群与李代数之间的转换需要每一个slamer人有着充分清晰地认识。 1. 李群扰动 Baker-Campbell-Hausdorff公式,这个公式作为李群相乘转到李代数的式子,我们可以看到李群的相乘会带来李代数产生高次项输出。近似为在SO(3)上,我们
0. 前言 最近一直在啃SLAM优化方面的相关知识,发现以前对于se3与sim3之间的理解不太深入,这里专门开一篇文章来整理这两者之间的区别。相似变换sim(3),尺度s与R相乘,而不是t。ORB-SLAM2中使用sim3的主要原因是考虑到单目尺度漂移,这个在第一版系统的论文中的VII。 LOOP CLOSING的Compute the Simlilarity Transformation部分有提
0. 简介 最近在看点云匹配相关的知识点,而KD树和八叉树作为点云匹配中最为重要的方法,当然需要好好看看。这里写一篇博客记录一下,便于后面回顾。(最近发现SLAM、ROS方面已经基本粗略的写了一遍,后面会针对一些重要的点去零碎的填坑)。 1. KD-Tree KD-Tree, 或称 k 维树,是计算机科学中使用的一种数据结构,用来组织表示 k 维空间中的点集合。一般在会基于 FLANN 进行快速最
0. 前言 最近无事,在想着做一些工作。正好碰巧看到了yuanguobin01作者写的Lego-Loam的改进思路系列文章,这部分看完后遗憾于作者仅仅提供了一些初步的设想,而没有系统的学习代码,为此本文打算从作者提出的几个改进点来给出自己实现的策略思路。 1. 二维轮式里程计+IMU = 三维里程计 替换 原本3D激光前端里程计 这部分作者说通过二维里程计提供位移 + IMU航姿模块提供三向角度
0. 前言 在讲完激光SLAM和视觉SLAM后,个人感觉目前对这两块的基础剖析已经较为完善了。这一次也想借着这个机会来写一下外参标定相关的东西。因为对于SLAM而言,在实现多传感器融合前,就需要对每个传感器进行标定,以便于融合的精确。当一个车上装了多个/多种传感器,而它们之间的坐标关系是需要确定的。这个工作可分成两部分:内参标定和外参标定,内参是决定传感器内部的映射关系,比如摄像头的焦距,偏心和像
0. 前言 在深入剖析了Ceres、Eigen、Sophus、G2O后,以V-SLAM为代表的计算方式基本已经全部讲完,但是就L-SLAM而言我们还差一块,那就是PCL、GTSAM点云计算部分我们还没有详细的去写,正好就这个时间,我想把这块坑给填完,来形成一整个系列,方便自己回顾以及后面的人一起学习。 GTSAM系统认知 我们在一般的认知,G2O和GTSAM都做着后端图优化的功能,而他们当中的全局
0. 前言 在深入剖析了Ceres、Eigen、Sophus、G2O后,以V-SLAM为代表的计算方式基本已经全部讲完,但是就L-SLAM而言我们还差一块,那就是PCL、GTSAM点云计算部分我们还没有详细的去写,正好就这个时间,我想把这块坑给填完,来形成一整个系列,方便自己回顾以及后面的人一起学习。 1. PCL系统认知 PCL(Point Cloud Library) 是在吸收了前人点云相关研
前言 CPU并行加速 CPU并行加速的本质就是通过硬件并发(hardware concurrency)的形式来实现。这种的操作方式是通过单个进程里多线程,从而实现共享地址空间,全局变量,指针,引用。但是这种方式相对而言更加传统,但是同时更加具有普适性。其中操作是使用以pthread为代表的多线程并行加速 pthread 这是一个pthread的简单示例代码。 class helloFromObje
0.前言 局部优化作为VSLAM当中常用的策略,其作用相当于激光SLAM中的局部地图的ICP or NDT优化(scan2localmap)。如下图所示,在VIO当中,随着时间的推移,路标特征点(landmark)和相机的位姿pose越来越多,BA的计算量随着变量的增加而增加,即使BA的H矩阵是稀疏的,也吃不消。因此,我们要限制优化变量的多少,不能只一味的增加待优化的变量到BA里,而应该去掉一些变
0. 前言 在了解SLAM的原理、流程后,个人经常实时困惑该如何去从零开始去设计编写一套能够符合我们需求的SLAM框架。作者认为Ceres、Eigen、Sophus、G2O这几个函数库无法避免,而作者在此之前已经对Ceres、Eigen、G2O做了详细的介绍,目前仍剩下Sophus还未进行详写,所以这篇文章作为这个系列的最后一篇文章,主要对Sophus函数库进行详细的阐述,来方便各位后续的开发。
0. 前言 在了解SLAM的原理、流程后,个人经常实时困惑该如何去从零开始去设计编写一套能够符合我们需求的SLAM框架。作者认为Ceres、Eigen、Sophus、G2O这几个函数库无法避免,尤其是Ceres函数库在激光SLAM和V-SLAM的优化中均有着大量的应用。作者分别从Ceres和Eigen两个函数进行了深入的解析,这一篇文章主要对G2O函数库进行详细的阐述,来方便各位后续的开发。 1.
0. 前言 在了解SLAM的原理、流程后,个人经常实时困惑该如何去从零开始去设计编写一套能够符合我们需求的SLAM框架。作者认为Ceres、Eigen、Sophus、G2O这几个函数库无法避免,尤其是Ceres函数库在激光SLAM和V-SLAM的优化中均有着大量的应用。所以作者已从Ceres作为开端,这一篇文章主要对Eigen函数库进行详细的阐述,来方便各位后续的开发。 1. Eigen示例 相较
0. 前言 在了解SLAM的原理、流程后,个人经常实时困惑该如何去从零开始去设计编写一套能够符合我们需求的SLAM框架。作者认为Ceres、Eigen、Sophus、G2O这几个函数库无法避免,尤其是Ceres函数库在激光SLAM和V-SLAM的优化中均有着大量的应用。所以作者从Ceres作为开端,来对手写SLAM开个头,来方便各位后续的开发。这里分享以为博主写的博客,个人看了感觉写的不错,对SL
本次工作 我首先参照网络上的文档整理了全部的代码,并对于C++和OpenCV的一些操作也进行了详细的注释,并写了这篇的博客进行全部的讲解,其中1-4章节是前端VIO信息,5章节是后端DBOW词袋回环,6-7章节是GPS与VIO融合,8章节是参考文献。 1. 程序入口rosNodeTest.cpp 1.1 定义内容 运行程序时,首先进入的是主程序vins_estimator/src/estimato
上一篇 featureAssociation.cpp 其次featureAssociation这一个node节点,主要是特征提取。代码中先初始化了lego_loam::FeatureAssociation,用来订阅了上一节点发出来的分割出来的点云,点云的属性,外点以及IMU消息,并设置了回调函数。其中IMU消息的订阅函数较为复杂,它从IMU数据中提取出姿态,角速度和线加速度,其中姿态用来消除重力对
上一篇 回环检测 在LOAM系列中回环检测主要存在有四种方法 传统的领域距离搜索+ICP匹配 基于scan context系列的粗匹配+ICP精准匹配的回环检测 基于scan context的回环检测 基于Intensity scan context+ICP的回环检测 在参考很多大佬的比对结果中我们发现,传统的领域距离搜索+ICP匹配是这三个方法中最耗时的,相较于基于scan context的
前言 本作者在16年大学开始接触ROS后,逐步向着机器人建图导航方面扩展,尤其是对激光雷达方向比较感兴趣,目前打算针对近阶段的SC-LEGO-LOAM进行分析讲述。从ScanContext和Lego LOAM两个部分进行分析阐述。一方面也是记录自己的学习成果,另一方面也是帮助他人一起熟悉这篇20年的经典文章。 LOAM系列发展 LOAM LOAM作为该系列的鼻祖,在前几年kitti数据集中常年霸占
决定总结最近一个月的工作,这个月在orbslam2的基础上,使用kineticV2完成了稠密点云地图的重建,实现了点云的回环,并使用octomap转换成实时的八叉树地图,导航部分已经有了思路,打算下个月所一个基于octomap的航迹生成能用在视觉的导航上。 一、传感器和依赖包安装 PC性能:Dell xps13 内存16GB 硬盘SSD:500GB 显卡:Intel iris集显 操作系统:ub
slam的基础到slam的进阶,你想到的都可以看
博客
泡泡
积分
勋章
精选经典文献阅读之--LESS-Map(长期定位轻量级和逐渐演进的语义地图方案)
经典文献阅读之--i-Octree(用于最近邻搜索的快速、轻量级和动态的八叉树)
如何插入LinK3D、CSF、BALM来直接插入各个SLAM框架中
经典文献阅读之--als_ros(移动机器人的可靠蒙特卡罗定位)
精选经典文献阅读之--Calib Anything(使用SAM的无训练标定雷达相机外参)
精选经典文献阅读之--STD(激光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 微博 微信