自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wuRDmemory

不踏实的板砖工

  • 博客(60)
  • 资源 (2)
  • 收藏
  • 关注

原创 一文看尽4种SLAM中零空间的维护方法

文章目录写在前面ReferenceEKF-Base方法对零空间的维护First-Estimate-Jacobian方法锦囊1. 不依赖IMU的运动方程,从头推导理想情况下的状态传递方程锦囊2. 使用理想的观测矩阵,从前到后推导能观性矩阵中的某一行,总结出零空间应该是怎么样的锦囊3. 对同一变量使用第一次预测出的值作为观测方程的线性化点——FEJObservability-Constraint 方法锦囊1. 根据IMU运动方程,推导误差状态转移方程的闭式解,并用该理想情况下的转移矩阵传递初始的零空间锦囊2.

2021-01-02 09:05:44 1156 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 665

原创 MSCKF(四)——能观性分析

文章目录写在前面ReferenceNotationIMU误差状态传播公式的回顾 IMU误差状态传播公式的再推导旋转部分的推导速度部分的推导位移部分的推导状态传递的传递方程MSCKF的观测模型能观性分析理想情况下的能观性矩阵小结实际情况下的能观性矩阵状态转移矩阵观测矩阵能观矩阵的构建First-Estimate-Jacobian关于零空间的一些理解总结 写在前面讲实话,笔者之前就听说过很多关于SLAM系统的能观性、或者说一致性的分析,最开始的切入点当然是大名鼎鼎的First-Es.

2020-11-21 20:41:27 1094 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 1268

原创 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 944

原创 MSCKF(一)——四元数的两种表示

MSCKF(一)——四元数的两种表示文章目录MSCKF(一)——四元数的两种表示写在前面Reference缘起——旋转的主动性(Active)和被动性(Passive)旋转方向的定义被动旋转主动旋转结论乱入——四元数对于旋转的表示Hamilton四元数表示法Hamilton四元数表示法的缺陷Shuster四元数表示法Shuster表示法是如何解决Hamilton的缺陷的统一——如何使用两种四元数旋转的主动性与被动性上旋转的方向上总结 写在前面最近看MSCKF方法,发现里面的旋转表示与笔

2020-10-26 20:19:25 750 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 1954

原创 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 1447 3

原创 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 314

原创 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 1751

原创 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 2452

原创 一文总结SLAM中的深度滤波问题

写在前面本文会比较长,因为本身这部分就比较复杂,笔者自身加入了自己的一些思考和理解,不对的地方请及时指出,一同进步。ReferenceSemi-Dense Visual Odometry for a Monocular Camera. LSD-SLAM深度滤波的论文https://www.zybuluo.com/lancelot-vim/note/412293 讲解LSD-SLAM中深度滤波的博客https://blog.csdn.net/kokerf/article/details/7800

2020-05-13 07:51:35 1860

原创 DSO(5)——零空间的计算与推导

写在前面这部分的代码着实很难,一方面论文中几乎没有提这个事情,另一方面这部分的参考资料也确实是比较少,网上能搜索到的基本都是讨论FEJ对零空间的保持问题,所以笔者在看这一部分的时候,着实很艰难,写这篇笔记的时候也是因为自己的觉得理论和公式推导至少能说服我自己了,因此才写出来,不对的地方也希望小伙伴们能够指出来,大家一起进步。Reference这次先把自己参考的文章列出来,自己平时是不太喜欢...

2020-03-25 22:40:39 5260 9

原创 深入理解SLAM中的Marginalization

写在前面本文主要是对于Decoupled, Consistent Node Removal and Edge Sparsification for Graph-based SLAM前半部分的解读,论文可谓是短小精悍,个人花了很多时间去学习和理解,文章中不乏会有一些理解不到位的情况,欢迎各位大神们拍砖,一起学习进步。Abstract基于图优化的SLAM方法已经取得了成功,但是图的大小会随着时...

2020-02-26 14:01:10 3353

原创 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 2294 10

原创 DSO(3)——帧间跟踪

写在前面上一篇记录了DSO的初始化阶段,本文主要记录下对于新帧的追踪,即tracking,整个部分其实不是很难,主要的思路也简单,就是由粗到细的进行光度误差的最小化,以此来计算位姿。特点虽然都是最小化光度误差,这里先列出DSO做的很不同的地方:放弃使用了像素块的方法,这个个人深有感触,一般而言虽然像素块的大小不大,但是耐不住点多啊,多数情况下如果用像素块的话这个地方就变成了十分花费时间...

2020-01-17 17:33:38 1622 2

原创 DSO(2)——初始化阶段

写在前面DSO的初始化着实是十分的难看懂,个人总结为以下三个原因:没有采用常规的(很大程度上是因为笔者目光比较短浅)本质矩阵或者单应性矩阵求解位姿、三角化初始的landmark确定尺度,而是直接作为一个优化问题进行优化(恩,又知道了一种初始化方式);本身的光度模型就比较麻烦,而且有些公式也没有采用常规的方法(又是目光短浅),所以初看起来会比较“反常识”;作者写代码确实很厉害,基本上优化过...

2020-01-07 11:47:54 2509 2

原创 DSO(1)——DSO论文详细解读

Direct Sparse OdometryAbstract本文提出了一个较为新颖的直接稀疏里程计(DSO)。整个系统包含了完整的直接法(最小光度误差)模型,状态包含相机的位姿,逆深度。为了达到实时运算,算法去除了直接法添加先验的做法,取而代之的是从整个图像上均匀的采样关键点。最后,整个系统添加了完整的光度标定,考虑了曝光时间,镜头渐晕以及非线性响应函数(这些基本上都是相机的参数)。In...

2019-12-27 10:07:02 4607 4

原创 VIO学习(1)——IMU-Model

写在前面这次来总结一下IMU的一些东西,主要包含:测量模型运动模型IMU的测量模型通常,我们将IMU的测量模型写作如下模型(注意不是观测模型):wm=wt+bw+nwam=at+ba+naw_m = w_t+b_w+n_w \\a_m = a_t+b_a+n_awm​=wt​+bw​+nw​am​=at​+ba​+na​亦即:“测量值=真值+零偏+高斯白噪声”,其中:零...

2019-12-13 13:25:58 692

原创 概率相关总结

写在前面该文会不定期的进行概率知识的查漏补缺。概率和概率密度一般的,用P(X)P(X)P(X)表示概率,ρ(x)\rho(x)ρ(x)表示概率密度。结论概率P(X)P(X)P(X)都是离散的值,X表示一系列离散的事件,对于连续的事件(例如在自然数区间上取某个数的概率),我们通常不会去计算某个确定事件的概率,因为必然是无穷小;通常我们还会说事件X的概率服从XX分布(例如正态分布),那...

2019-12-13 10:07:17 500

原创 决策树总结整理

决策树特点决策树是一种基本的分类与回归方法,是一种树形结构,由内部结点和叶节点组成,其中:内部结点表示一个特征和属性;叶节点表示最终的分类了;一个实例如下,其中椭圆为内部结点,方框为叶节点: 决策树与概率分布决策树表示在给定特征条件下类的条件概率分布,这一条件概率分布定义在对特征空间的划分上。从模型的类型上讲,决策树属于判别模型,即最终求解的是P(Y∣X)P(Y|X...

2019-07-04 11:39:28 506

原创 ThunderNet论文笔记

ThunderNet论文出处论文:https://arxiv.org/abs/1903.11752 整体介绍ThunderNet首先是一个two-stage的目标检测网络,其最大的特点是速度能够媲美one-stage网络。论文对backbone net和head net进行了较为深入的分析和对比;提出来CEM和SAM模块;网络的整体结构如下: Back...

2019-06-20 15:30:32 1258 1

原创 GAZEBO探索——给机器人加上bumper

写在前面最近在做GAZEBO的时候,遇到了给机器人添加bumper的问题,着实踩了很多坑,而且在google上查到的答案很多都不对,仅仅有一个方法给出了本质,这里特别记录一下,希望可以帮助更多的小伙伴。GAZEBO与ROS不一样首先这里必须要说清楚的一个事情就是,我们在学习ROS的时候,使用urdf文件或者xacro文件表示我们的机器人,并且ROS提供了urdf相关的一些包来可视化我们的模...

2019-06-13 20:06:40 1560 3

原创 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 6470 26

原创 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 5429

原创 SE-Net整理阅读

写在前面最近算是好不容易抽时间把这两个论文看完了,总体来说收获还是很多的,以下是自己的一些理解和整理。SE-NetSE-Net的整体思路引入了注意力的思想,即对于每个通道,用一个权重来表示该通道在下一阶段的重要性;做成了一个插入式的模块,十分方便与各个基础网络的结合。 Introduction部分这段文章中作者总结了神经网络的有点,就是...

2019-05-16 14:20:53 13061 1

原创 循环神经网络初识(1)

写在前面最近学习了一些RNN的内容,但是由于笔者之前没有接触过这方面的知识,加之学完之后觉得RNN其实是一个复杂程度不输于CNN的模块,因此在阶段学习之外进行总结一下,也算是重新巩固一下相关的知识。 循环神经网络结构传统的RNNRNN的提出很大程度上是为了长序列的检测问题,我们都知道,基于CNN的网络的输入一般都是一副当前的图像,对于一个序列而言,CNN的网络并不能很好的关联...

2019-05-05 21:13:24 277

原创 ShuffleNet V1/V2整理阅读

写在前面ShuffleNet是旷视提出的两个轻量级网络,目前来看应该是除了ThunderNet之外最快的轻量级网络了。这里主要对两个版本的论文进行阅读整理。 ShuffleNet V1Group Convolution这算是整个ShuffleNet的优化核心,Group Convolution操作早在AlexNet的时候就被拿来进行速度的优化了,其运算的过程可以参考这里,简单...

2019-04-23 12:49:44 1872

原创 SWIG和nodejs配合使用的一些问题

写在前面由于想把opencv的一些东西移植到服务器后端上,因此想使用SWIG进行代码的转换,生成一个nodejs的库,过程中遇到如下困难解决了一个上午。。。特此记录,期望可以帮助到更多的小伙伴。环境描述系统:ubuntu 1604SWIG版本:3.0.12(release 最新)nodejs版本:10.15.3(最新)npm版本:6.4.1v8版本: 6.8+问题描述开始的...

2019-04-17 12:04:56 767

原创 MobileNetV1/V2 阅读整理

Mobile Net V1MobileNet结构Depthwise Separable Convolution这个结构是整个MobileNetV1的精髓所在了,之后借鉴的论文大多数把这个结构称之为DWconv。该结构的图示如下:下述的DkD_kDk​表示核的大小;DFD_FDF​表示输入特征图的Size(一般都是正方形,非正方形的计算方式是一样的);M表示输入的通道数;N表示输出的通道...

2019-04-12 17:29:10 1086

原创 python+opencv坑记录

w,h和x,y的顺序问题opencv在python中的Mat等数据结构都是依托于numpy的,numpy的一些特性与我们的常识有些稍微违背,一些注意点如下:import numpy as npimport cv2image=cv2.imread("image.jpg",0) # image.jpg是一张640×480的图像print(image.shape)>>> ...

2019-03-21 15:57:43 328

原创 torch学习——持续补充

torch和numpy的转换重点1torch和numpy互相转换的时候,内存是共享的!因此改一个,必将修改另一个import numpy as npa = np.random.rand(4,3)print(a)array([[0.53097097, 0.39967826, 0.2925655 ], [0.41214625, 0.85092555, 0.88813825],...

2019-03-20 22:13:13 380

原创 Android Studio: Unknown host ‘android-mirror.bugly.qq.com’. You may need to adjust the proxy setting

写在前面这个问题可谓是害人不浅啊,google,百度找了好久才找到,希望记录在这里帮助更多的小伙伴。正文直接引用链接了~here总结我觉得出错的朋友很大程度上也是在HTTP Proxy上的设置没有设置为No Proxy,最后记得把这个也给设置过来...

2018-12-17 15:16:22 4004

原创 C/C++——你以为的指针?

写在前面最近写了几个程序,都用到了指针,无一例外,都被坑了一把。。。特此进行总结,警醒自己,标题也很符合我当时的感觉,以为这就是指针,反而出了错。场景首先讲一下我的应用场景,到写这个总结的时候,我遇到的总共是两个场景:有一个公共的实例A,有很多B类的实例,B实例中包含了两个A的二维指针,其中每个B实例中的其中一个二维指针可能指向A实例,但是不可能都指向。函数外部有一个C的指针,初始化...

2018-12-11 22:56:12 249

原创 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​+q​v​q=[qwqv]q=\begin{bmatrix} q_w \\ ...

2018-12-02 19:21:14 19488 17

原创 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 2646 2

原创 SVO论文笔记

写在前面最近看了一下SVO的论文,发现原来在N年前就已经有这么优秀的VO了,甚是惭愧,因此发奋总结了其论文中的要点,有些问题先埋着,需要看完代码进行补充。SVO的框架结构SVO的整体框架如下图,可以看到整个SVO的结构是由两个线程构成的,第一个线程有三个主要的操作,a. Sparse Model-based Image Alignment; b. Feature Alignment; c....

2018-11-16 11:32:46 1082

原创 C++的condition_variable

写在前面今天看到C++一个比较有意思的东西,叫做condition_variable,美其名曰条件变量,网上也看了很多讲解,这里说一下自己的理解,记录下来。condition_variable我对这个东西的理解就是一个很高级的全局标志位,标志着什么时候可以做事情了。我们先来想象一个场景,比如现在你有一堆变形金刚的零件(共享内存),这些零件可以分别组成金刚的10个部分(线程结果)。很不巧,你...

2018-10-28 00:46:24 950

原创 VSCode使用Remote VSCode插件进行远端文件同步

写在前面最近在云端申请了服务器进行DL训练,使用ssh的方式进行远端的登陆,但是两端的代码同步是一个比较大的问题,当然,最笨的方法可以双端走git的方式进行,但是其实这样也好麻烦,因此看了一下VSCode的remote edit方式,不过也踩了一些坑,特别是感觉网上的一些教程比较简单,有些东西讲的比较模糊,特地的记录一下自己的过程,希望可以帮助更多小伙伴们环境参数:vscode ub...

2018-08-27 18:50:08 28628 3

原创 ROS与GAZEBO实时硬件仿真(3)——将gazebo和ros连接起来

写在前面通过上两节的博客,相信朋友们已经对gazebo的一些标签有了较为深入的认识,但是特别是上一节,程序写完了之后发现并没有什么特别的变化。着实,到目前为止,我们只是很执拗的在rviz和gazebo之间进行显示,但是由于两个模块是完全不一样的,内部的消息机制以及驱动机制都是差的比较多的,所以要想把两者嫁接起来,中间还必须有一个转换这的角色,这就是这个博客要讲的ros_control和plug...

2018-07-15 16:54:52 21402 31

ros_client(stm32)

基于stm32的ros_client开发

2017-04-27

Pixy源码及HSV移植

里面有Pixy源码,同时有一个main文件,是将Pixy的方法移植到HSV空间了,效果还可以,可以作为参考~

2017-02-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除