算法推导
文章平均质量分 91
推导一些常用算法
陋室逢雨
leatherwang@foxmail.com
欢迎交流!
展开
-
OpenVINS与MSCKF_VIO RK4积分对比
VIO系统在使用IMU测量值进行状态预测时,需要将连续时间的微分方程离散化为差分方程,离散化的本质是积分,根据数值积分近似程度不同,常用的有欧拉法、中点法和四阶龙格库塔法等,OpenVINS和MSCKF_VIO虽然都使用RK4积分,但具体代码实现却有所区别原创 2022-09-12 13:55:59 · 1015 阅读 · 2 评论 -
【OpenVINS】(一)ZUPT
参考:Measurement Update Derivations » Zero Velocity Update在典型的自主汽车场景中,传感器系统将在停止灯处变得静止,其中动态物体(例如交叉路口的其他车辆)可能会快速损坏系统,通过零速检测识别当前车辆处于静止状态,以暂停特征跟踪,来避免定位系统崩溃1. Inertial-based Detection1.1 误差构造当车辆静止(对于车辆匀速直线运动这种case可以通过速度幅值检测剔除),加速度和角速度先验值都是0,先验也是一种观测,所以构造.原创 2021-10-03 12:27:29 · 3485 阅读 · 0 评论 -
【ESKF】(一)IMU运动学方程离散化
《Quaternion kinematics for error-state kalman filter》1. 三种状态true-state真实状态值,包含高斯噪声,用于EKF作为状态变量使用nominal-state无(不考虑)噪声的状态值,可以是估计值(不考虑噪声)、预测值(不考虑噪声)在预测阶段,由高频的IMU测量值预测得到当前的nominal-state x\mathbf xx,nominal state没有考虑噪声项,因此会存在累计误差,这些误差被堆积到error-state.原创 2021-10-03 12:16:15 · 1136 阅读 · 0 评论 -
导数、梯度、雅可比和海森矩阵
参考:Jacobian matrix and determinant1. DerivativeDerivative can be defined on functions of a single variable (f:R→Rf: \mathbb{R} \rightarrow \mathbb{R}f:R→R).2. GradientGradient is a multi-variable generalization of the derivative (f:Rn→Rf: \mathbb{R}^.原创 2018-04-20 11:23:06 · 864 阅读 · 0 评论 -
【TSVD】(一)range、null space 和 rank
在做非线性问题的优化时,难免会遇到一些自由度不可观的问题,如果这个自由度在理论上就是不可观的(比如,不管怎么运动都无法令这个自由度从不可观变成可观),那么在优化的时候就要单独地把这个自由度设置成fixed.如果这个自由度理论上是可观的,而这并不表示该自由度在现实中一定是可观的(比如,需要满足一定的运动条件才能令这个自由度可观),也就是,对该自由度约束越多,可观性越强,反之亦然.那么在优化中如何自动判定当前自由度是否可观呢?可观时,更新该自由度,不可观时,fixed该自由度. 下面介绍的TSVD就是为了.原创 2020-11-08 11:00:01 · 8131 阅读 · 0 评论 -
VSLAM之图像预处理
wiki、opencv、《计算机视觉–算法与应用》、《数字图像处理_冈萨雷斯》借用书中一句话以表对图像预处理的看法:有些人可能认为计算视觉研究范围不应该包括图像处理,但是多数计算机视觉应用为了获得满意的结果,需要考虑图像的预处理!对于颜色空间、卷积(注意,需要反转180度)、图像增强和图像复原的区别、相机3A技术等不在这里赘述了一、空间滤波参见opencv中的Smoothing Im...原创 2019-03-30 09:58:18 · 1336 阅读 · 0 评论 -
四元数
参考:[1]《Quaternion kinematics for error-state kalman filter》[2]《Indirect Kalman Filter for 3D Attitude Estimation》[3]《SLAM十四讲》旋转向量( the rotation vector or the angle-axis vector)和欧拉角可以使用3个量描述旋转,虽没...原创 2018-12-06 16:29:46 · 2361 阅读 · 3 评论 -
常见的特殊矩阵及分解(二)
1、特征分解(Eigen decomposition),又叫谱分解(Spectral decomposition),是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法.注意,只有对可对角化矩阵才可以施以特征分解.A 是一个 N×NN×NN×N 的方阵,且有 NNN 个线性无关的特征向量 qi(i=1,…,N)q_{i} (i = 1, \dots, N)qi(i=1,…,N) 。这样...原创 2018-12-09 15:42:57 · 3927 阅读 · 1 评论 -
常见的特殊矩阵及分解(一)
参考:维基百科正交矩阵正交矩阵(orthogonal matrix)是一个方块矩阵 QQQ,其元素为实数,而且行与列皆为正交的单位向量,使得该矩阵的转置矩阵为其逆矩阵:QT=Q−1⇔QTQ=QQT=IQ ^ { T } = Q ^ { - 1 } \Leftrightarrow Q ^ { T } Q = Q Q ^ { T } = IQT=Q−1⇔QTQ=QQT=I正交矩阵的行列式值...原创 2018-12-08 16:11:03 · 12627 阅读 · 1 评论 -
【MVG】(一)2D射影几何
参考:计算机视觉中的多视图几何、中科院模重所-视觉基础介绍视觉SLAM中常用的射影变换有:2D欧式变换(如,平面内运动的机器人)、2D仿射变换(SVO中用来恢复图像块用的)、2D射影变换(我们平常说的单应矩阵就是它,对它分解可得到R和t)、3D欧式变换(SLAM中主要解决的问题之一,估计相机的3维运动)、3D相似变换(单目SLAM中会遇到,由尺度漂移造成)等1、2D射影几何照相机的成像...原创 2018-10-19 16:37:41 · 2255 阅读 · 1 评论 -
【MVG】(二)RANSAC计算单应矩阵
多视图几何、orb-slam2注释版、【程序员眼中的统计学(11)】卡方分布的应用orb-slam2中在初始化的时候会同时估计H矩阵和F矩阵,使用的都是DLT算法,即根据一组匹配点(如,八点法、四点法),直接使用SVD求得线性解,而不是使用优化的方式,所以求得H举着或者F矩阵,跟选取的这组点有很大关系,如果这组点全部都是内点还好,如果存在外点那么得到H矩阵就会偏差很大,而这种情况是很常见的,...原创 2018-10-31 14:39:40 · 4636 阅读 · 2 评论 -
SLAM中基于滤波与优化的方法的联系
参考书:slam十四讲着重理解作者是如何将滤波的方法和优化的方法统一到贝叶斯的框架下的.经典SLAM模型: {xk=f(xx−1,uk)+wkzk,j=h(yj,xk)+vk,j{xk=f(xx−1,uk)+wkzk,j=h(yj,xk)+vk,j\left\{\begin{matrix}x_k=f(x_{x-1},u_k)+w_k \\z_{k,j}=h(y_j,x_...原创 2018-08-12 17:23:50 · 5653 阅读 · 1 评论 -
【EKF】(二)预测与更新
参考书:概率机器人、Probabilistic RoboticsEKF定位实现步骤:预测修正(包括:测量预测、估计更新)下面使用里程计测量机器人的运动输入,路标测量(距离、角度、编号),地图由路标点在世界坐标系下的位置构成。1、预测步骤(Prediction Step)1) KF模型和EKF模型 KF模型: xk=Akxk−1+Bkuk+wkzk=Ckxk...原创 2018-07-14 20:58:10 · 3873 阅读 · 1 评论 -
【EKF】(一)多传感器融合
典型的非线性函数关系包括平方关系、对数关系、指数关系、三角函数关系等,对非线性系统的滤波问题,常用的处理办法是利用线性化技巧将其转化为一个近似的线性滤波问题,其中应用最广泛的方法是EKF。EKF与KF的区别 EKF依然建立在输入噪声和测量噪声均为高斯的前提下。高斯噪声的好处是它的e指数形式使得高斯与高斯的卷积、乘法结果依然是高斯。线性化 对非线性函数 fff 和 hhh 在 X^k...原创 2018-07-10 10:33:40 · 9037 阅读 · 2 评论 -
最优化中的线性求解方法
参考书: 最优化、矩阵分析凸集 设集合 C⊆RnC⊆RnC \subseteq R^n ,如果 CCC 中任取两点的任意组合仍然属于 CCC,那么称集合 CCC 为凸集 直观地看,任取集合中两点所连成的线段仍然属于这个集合,这个集合即为凸集凸函数 设 f:C⊆Rn→R1f:C⊆Rn→R1f:C \subseteq R^n \rightarrow R^1 ,其中 CCC 为凸集,若对...原创 2018-05-18 16:39:27 · 2063 阅读 · 1 评论 -
QQ图判断一个分布是否为正态分布
一、正态QQ图的原理QQ图通过把测试样本数据的分位数与已知分布相比较,从而来检验数据的分布情况。[1]分位数:亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点。常用的有一个分位数叫,百分位数,它是指如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。QQ图是一种散点图,对应于正态分布的QQ图,就是由标准正态分布的分位原创 2018-01-27 10:01:56 · 97940 阅读 · 6 评论