
SLAM
文章平均质量分 82
无人的回忆
怕了,就输了
展开
-
一文看尽4种SLAM中零空间的维护方法
文章目录写在前面ReferenceEKF-Base方法对零空间的维护First-Estimate-Jacobian方法锦囊1. 不依赖IMU的运动方程,从头推导理想情况下的状态传递方程锦囊2. 使用理想的观测矩阵,从前到后推导能观性矩阵中的某一行,总结出零空间应该是怎么样的锦囊3. 对同一变量使用第一次预测出的值作为观测方程的线性化点——FEJObservability-Constraint 方法锦囊1. 根据IMU运动方程,推导误差状态转移方程的闭式解,并用该理想情况下的转移矩阵传递初始的零空间锦囊2.原创 2021-01-02 09:05:44 · 1447 阅读 · 1 评论 -
MSCKF(五)——Observability-Constrainted方法
文章目录ReferenceNotationIMU状态传递方程MSCKF2.0的传递方程MSCKF1.0的传递方程OC-KF的系统状态传递方程第一组第三组第二组小结相邻时刻的状态转移矩阵t1 时刻的状态转移矩阵t2 时刻的状态转移矩阵t1 到 t2 时刻的状态转移矩阵视觉部分的观测方程理想情况下能观性的分析在 t 时刻,系统零空间是如何的相邻时刻间系统的零空间是如何传播的t 时刻传播过来的零空间是否是观测矩阵的零空间小结OC-KF对于零空间的处理OC-KF想做什么?修改状态转移矩阵Φ^(t,t−1)\hat{原创 2020-12-03 22:26:45 · 894 阅读 · 0 评论 -
MSCKF(四)——能观性分析
文章目录写在前面ReferenceNotationIMU误差状态传播公式的回顾 IMU误差状态传播公式的再推导旋转部分的推导速度部分的推导位移部分的推导状态传递的传递方程MSCKF的观测模型能观性分析理想情况下的能观性矩阵小结实际情况下的能观性矩阵状态转移矩阵观测矩阵能观矩阵的构建First-Estimate-Jacobian关于零空间的一些理解总结 写在前面讲实话,笔者之前就听说过很多关于SLAM系统的能观性、或者说一致性的分析,最开始的切入点当然是大名鼎鼎的First-Es.原创 2020-11-21 20:41:27 · 1449 阅读 · 4 评论 -
MSCKF(三)——更新部分
ReferenceA Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation. MSCKF1.0的论文;Quaternion Kinematics for Error-State KF. 关于四元数以及ESKF的论文;Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight. S-MSCKF对应的论文;https://github.c原创 2020-11-05 13:21:19 · 1520 阅读 · 0 评论 -
MSCKF(二)——预测部分
文章目录ReferenceEKF的状态变量构建坐标系的表示问题位姿表示方式IMU状态变量的表示方式带相机位姿的状态变量表示方式MSCKF位姿估计——估计的变量是什么?MSCKF位姿估计——状态变量的估计IMU姿态的传导(Propagation)IMU的运动方程IMU状态积分Camera姿态的传导MSCKF位姿估计——预测阶段(predict)IMU误差状态的微分方程IMU误差状态传递过程的推导IMU误差状态的预测部分Camera误差状态的预测部分k+1帧之前的Camera自身的协方差更新k+1帧之前的IMU原创 2020-10-26 21:11:04 · 1122 阅读 · 0 评论 -
MSCKF(一)——四元数的两种表示
MSCKF(一)——四元数的两种表示文章目录MSCKF(一)——四元数的两种表示写在前面Reference缘起——旋转的主动性(Active)和被动性(Passive)旋转方向的定义被动旋转主动旋转结论乱入——四元数对于旋转的表示Hamilton四元数表示法Hamilton四元数表示法的缺陷Shuster四元数表示法Shuster表示法是如何解决Hamilton的缺陷的统一——如何使用两种四元数旋转的主动性与被动性上旋转的方向上总结 写在前面最近看MSCKF方法,发现里面的旋转表示与笔原创 2020-10-26 20:19:25 · 925 阅读 · 2 评论 -
VINS-Mono(三)——滑动窗口优化
文章目录Reference滑动窗口之边缘化Schur Complement在边缘化中的作用Markov BlanketGraph-based SLAM边缘化线性化点的固定边缘化之后的优化问题的稀疏性边缘化对优化问题的影响VINS-Mono所采用的稀疏化策略一般性稀疏化策略总结 ReferenceDecoupled, Consistent Node Removal and Edge Sparsification for Graph-based SLAM 关于边缘化很好的一篇文章Infor原创 2020-09-02 06:54:06 · 2416 阅读 · 0 评论 -
VINS-Mono(二)——优化问题建模
ReferenceVINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator.Quaternion Kinematics for Error-State KF. 视觉部分的优化问题建模视觉部分的问题就是一个BA问题,不过与纯视觉不同,这里涉及到两个坐标系之间的变换,分别是camera坐标系C和IMU坐标系(通常认为这个是机体坐标系)b,同时因为整个过程中使用的是逆深度表示空间中的Landma原创 2020-07-05 22:45:02 · 377 阅读 · 0 评论 -
Cartographer ROS安装记录
Referencehttps://google-cartographer-ros.readthedocs.io/en/latest/compilation.html#building-installationhttps://github.com/PointCloudLibrary/pcl/issues/3104 写在前面安装Carto真的太不容易了,纵然梯子在手,也有很多奇奇怪怪的问题,这里做一下记录,希望可以帮助到更多的小伙伴。 安装必要的依赖项ROS原创 2020-07-14 14:06:03 · 1681 阅读 · 3 评论 -
VINS-Mono(一)——IMU预积分及系统初始化
ReferenceVINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator.Quaternion Kinematics for Error-State KF. 预积分的推导预积分是VINS-Mono中十分重要的一个步骤,主要涉及的是IMU的运动方程,下面对这部分进行一个简单的推导,主要使用的是ESKF中的方法,采用简单的欧拉法在连续时域下进行推导。ESKF这部分详细可以参照参考【2】,原创 2020-07-02 10:07:41 · 2041 阅读 · 0 评论 -
SLAM线特征学习(1)——基本的线特征表示与优化推导
ReferencePlucker Coordinates for Lines in the Space.Structure-From-Motion Using Lines: Representation, Triangulation and Bundle Adjustment. 本文深度参考这篇论文多视图几何.https://zhuanlan.zhihu.com/p/65674067 关于线特征很好的解读. 直线的自由度3D空间中的直线有4个自由度,通常认为一条线由两个点或者面原创 2020-06-17 16:52:09 · 2946 阅读 · 1 评论 -
一文总结SLAM中的深度滤波问题
写在前面本文会比较长,因为本身这部分就比较复杂,笔者自身加入了自己的一些思考和理解,不对的地方请及时指出,一同进步。ReferenceSemi-Dense Visual Odometry for a Monocular Camera. LSD-SLAM深度滤波的论文https://www.zybuluo.com/lancelot-vim/note/412293 讲解LSD-SLAM中深度滤波的博客https://blog.youkuaiyun.com/kokerf/article/details/7800原创 2020-05-13 07:51:35 · 1992 阅读 · 0 评论 -
DSO(5)——零空间的计算与推导
写在前面这部分的代码着实很难,一方面论文中几乎没有提这个事情,另一方面这部分的参考资料也确实是比较少,网上能搜索到的基本都是讨论FEJ对零空间的保持问题,所以笔者在看这一部分的时候,着实很艰难,写这篇笔记的时候也是因为自己的觉得理论和公式推导至少能说服我自己了,因此才写出来,不对的地方也希望小伙伴们能够指出来,大家一起进步。Reference这次先把自己参考的文章列出来,自己平时是不太喜欢...原创 2020-03-25 22:40:39 · 5816 阅读 · 9 评论 -
深入理解SLAM中的Marginalization
写在前面本文主要是对于Decoupled, Consistent Node Removal and Edge Sparsification for Graph-based SLAM前半部分的解读,论文可谓是短小精悍,个人花了很多时间去学习和理解,文章中不乏会有一些理解不到位的情况,欢迎各位大神们拍砖,一起学习进步。Abstract基于图优化的SLAM方法已经取得了成功,但是图的大小会随着时...原创 2020-02-26 14:01:10 · 4027 阅读 · 0 评论 -
DSO(4)——窗口优化
写在前面窗口优化这部分的代码量和理论瞬间就特别多,各种函数和方法也相对很多,边总结边梳理吧。变量和结构EnergyFunctionframes拿着前端的keyframesHM,bM是边缘化之后的先验信息adHost,adTarget,向量空间的矩阵伴随,TwhT_w^hTwh->ThtT_h^tTht,TwtT_w^tTwt->ThtT_h^tTht;adHT...原创 2020-02-16 16:25:32 · 2597 阅读 · 10 评论 -
DSO(3)——帧间跟踪
写在前面上一篇记录了DSO的初始化阶段,本文主要记录下对于新帧的追踪,即tracking,整个部分其实不是很难,主要的思路也简单,就是由粗到细的进行光度误差的最小化,以此来计算位姿。特点虽然都是最小化光度误差,这里先列出DSO做的很不同的地方:放弃使用了像素块的方法,这个个人深有感触,一般而言虽然像素块的大小不大,但是耐不住点多啊,多数情况下如果用像素块的话这个地方就变成了十分花费时间...原创 2020-01-17 17:33:38 · 1863 阅读 · 2 评论 -
DSO(2)——初始化阶段
写在前面DSO的初始化着实是十分的难看懂,个人总结为以下三个原因:没有采用常规的(很大程度上是因为笔者目光比较短浅)本质矩阵或者单应性矩阵求解位姿、三角化初始的landmark确定尺度,而是直接作为一个优化问题进行优化(恩,又知道了一种初始化方式);本身的光度模型就比较麻烦,而且有些公式也没有采用常规的方法(又是目光短浅),所以初看起来会比较“反常识”;作者写代码确实很厉害,基本上优化过...原创 2020-01-07 11:47:54 · 2797 阅读 · 2 评论 -
DSO(1)——DSO论文详细解读
Direct Sparse OdometryAbstract本文提出了一个较为新颖的直接稀疏里程计(DSO)。整个系统包含了完整的直接法(最小光度误差)模型,状态包含相机的位姿,逆深度。为了达到实时运算,算法去除了直接法添加先验的做法,取而代之的是从整个图像上均匀的采样关键点。最后,整个系统添加了完整的光度标定,考虑了曝光时间,镜头渐晕以及非线性响应函数(这些基本上都是相机的参数)。In...原创 2019-12-27 10:07:02 · 5770 阅读 · 4 评论 -
SVO论文笔记
写在前面最近看了一下SVO的论文,发现原来在N年前就已经有这么优秀的VO了,甚是惭愧,因此发奋总结了其论文中的要点,有些问题先埋着,需要看完代码进行补充。SVO的框架结构SVO的整体框架如下图,可以看到整个SVO的结构是由两个线程构成的,第一个线程有三个主要的操作,a. Sparse Model-based Image Alignment; b. Feature Alignment; c....原创 2018-11-16 11:32:46 · 1201 阅读 · 0 评论 -
VINS-Mono预积分公式推导
写在前面最近看了ESKF之后,收获蛮大的,特别是对于四元数的残差的推导,感觉给出了一个很标准的推导方式,因此就趁热打铁,把VINS中的预积分部分残差推导了一下,也算是对上了VINS中imu_factor.h中的代码部分。残差设状态变量为x=[Pi,Pj,Vi,Vj,Qi,Qj,Bai,Baj,Bgi,Bgj]x=[Pi,Pj,Vi,Vj,Qi,Qj,Bai,Baj,Bgi,Bgj]x=[P...原创 2018-11-19 09:43:09 · 2773 阅读 · 2 评论 -
ESKF(error-state Kalman Filter)总结
写在前面前段时间看了一下ESKF的相关知识,VIO中(VINS)用的还是挺多的,特此总结先验知识——四元数四元数的基本表示形式,这个还是蛮重要的,主要有以下几种表示形式Q=a+bi+cj+dkQ=a+bi+cj+dkQ=a+bi+cj+dkq=qw+q‾vq=q_w+\overline q_vq=qw+qvq=[qwqv]q=\begin{bmatrix} q_w \\ ...原创 2018-12-02 19:21:14 · 20626 阅读 · 17 评论 -
Iterated Kalman Filter(IKF/IEKF)总结
写在前面本篇内容主要介绍一下IKF的原理,IKF作为KF的一种变体,和EKF一样,主要是为了解决非线性问题。两者相比较而言,在精度上,IKF要比EKF好一些,但是花费的计算代价要稍大一些,当IKF仅仅进行一次迭代的话相当于EKF。 更新阶段的问题表示在更新阶段,主要涉及到如下几个变量当前状态xxx,对应的协方差矩阵PPP;当前状态的估计x‾\overline{x}x,对应...原创 2019-05-22 14:56:44 · 6555 阅读 · 0 评论 -
AI-IMU Dead-Reckoning论文总结
AI-IMU Dead-Reckoning Martin论文出处论文:https://arxiv.org/abs/1904.06064代码:https://github.com/mbrossar/ai-imu-dr 整体介绍a. 本文主要提出了一种方法,能够仅仅使用IMU的航位推算得到较为精准的轨迹,如下图所示:b. 该方法只适用于像汽车一样只能向前跑的系统,因为这样的系...原创 2019-05-31 15:19:00 · 7842 阅读 · 28 评论 -
g2o学习——g2o整体框架
写在前面进来对g2o优化库进行了学习,虽然才模仿着写了两个例程,但是对于整个g2o的理解和使用方面还是多了不少的感触,特此写下博客,对这些天的学习进行记录。g2o的整体结构说到整体的结构,不得不用一张比较概括的图来说明:这张图最好跟着画一下,这样能更好的理解和掌握,例如我第一次看的时候根本没有注意说箭头的类型等等的细节。那么从图中我们其实比较容易的就看出来整个库里面较为重要的类之间的继承以及包含关...原创 2018-02-13 15:39:58 · 3175 阅读 · 1 评论