MSCKF学习笔记

(1) IMU简介:测量物体三轴姿态角及加速度的装置。一般IMU包括三轴陀螺仪及三轴加速度计

IMU通常包含陀螺仪(Gyroscope)、加速度计(Accelermeters)

现代的陀螺仪(MEMS)输出的是旋转变化率(Rotational Rate),而不是Rotation本身,所以需要对陀螺仪的输出对时间积分才能得到朝向信息,在积分的过程中,随着时间的积累,误差也会持续累积,最终使得朝向发生偏移(Drift)。

加速度计也是同理,可以提供一定程度上的相对定位。

推荐一本书:概率机器人

无处不在的小土-pr_chapter5 (gaoyichao.com)

对于机器人的运动,增大不确定的程度,可以使算法更具有鲁棒性,很好的应对一些不成立的假设。

书中提出的概率速度模型:

 (2)EKF-SLAM

[PR-3]ArUco EKF SLAM 扩展卡尔曼SLAM - 知乎 (zhihu.com)

首先,对系统建模,首先建立运动模型

 通过该方程可以估计得出均值的估计结果。

对比拓展卡尔曼滤波标准公式:

状态的方差更新:

 测量模型的建立:测量值,可以用传感器直接测量得到的参数值。

通过使用视觉里程计(前端),可以得到相对于机器人的三维坐标。

第i个路标点的观测模型

 展开形式:

 确定了如此一些固定参数,直接套用EKF流程即可:

 由路标点和机器人位姿的均值获取。对每个观测到的路标点进行上述操作就完成了观测更新。

(3)MSCKF

相关参考链接:

MSCKF那些事(一)MSCKF算法简介 - 知乎 (zhihu.com)

MSCKF笔记(二):融合IMU的ESKF后端 - 知乎 (zhihu.com)

notes (xinliang-zhong.vip)

为什么要用error-state

error-state与常规的状态量相比有如下优势:

  1. IMU相关应用里, 常用四元数表示旋转. 四元数的error-state是旋转向量, 是3维的, 避免了自由度的冗余以及由此带来的协方差矩阵的奇异性,也避免了在滤波或优化中引入额外的约束(例如四元书模长为1, 旋转矩阵为正交阵)
  2. error-state接近于0,也就不会出现万向锁的问题
  3. error-state很小, 所以二阶项可以忽略,给求导带来的了便利
  4. error的变化很缓慢, 不像nominal-state会有大幅度的变化(这个大幅变化已经体现在nominal-state积分过程中了).所以在实际应用中 KF correction的频率可以远低于 KF prediction. 例如IMU的频率高于相机, 只有在有图像输入,即观测到视觉误差时才进行 correction, 而更多没有视觉输入的时刻仅仅进行 prediction(即IMU propagation)

逆深度的概念:

1.实际想表达的是:这个场景深度大概是5-10米,可能有一些更远的点,但近处肯定不会小于相机焦距(或者认为深度不会小于0).这个分布并不是像高斯分布那样,形成一个对称的形状。它的尾部可能稍长,而负数区域则为零。(类似于灯光照射模型)

2.无法描述距离很远的点

相机路标点的模型,更符合“逆深度”高斯模型,具有较好的数值稳定性。

前端:基于光流匹配的前端,比较常见,没用太多技巧

后端:IMU+视觉紧耦合

标定:

解放双手——相机与IMU外参的在线标定 - 计算机视觉life - 博客园 (cnblogs.com)

(4条消息) 相机与IMU联合标定_熊猫飞天的博客-CSDN博客_相机imu联合标定(离线标定)

后端详解:

notes (xinliang-zhong.vip)

MSCKF笔记(二):融合IMU的ESKF后端 - 知乎 (zhihu.com)

msckf相关资料

(5条消息) 理论一、MSCKF算法简介_贵在坚持,不忘初心的博客-CSDN博客_msckf算法

运动模型建立(运动方程得到参数的估计值)\rightarrow 状态增广(当有新的图像帧来到时,进行状态增加和协方差矩阵搭建)\rightarrow 观测模型建立()\rightarrow EKF更新(计算卡尔曼增益K,用残差更新系统状态,更新协方差矩阵P)

滤波器更新机制:

更新的条件:(1)丢失特征(2)滤波器中的帧数达到满状态

更新基本方法:联合概率分布变为边缘分布和条件概率分布

(1)情况下,直接使用基本方法更新即可

(2)情况下,apply a keyframe selection strategy similar to the two-way marginalization method,Based on the relative motion between the second latest camera state and its previous one, either the second latest or the oldest camera state is selected for removal. The selection procedure is executed twice to find two camera states to remove.

翻译一下就是:对于帧流,选定运动较小的或者是最后一帧进行边缘化,重复两次

 选定去除某一帧后,对其三角化后的所有特征进行边缘化

 

(1)定义滤波器状态参数

旋转实际上只有三个自由度,而且四元数必须是单位单位四元数,那这样额外的约束会使得协方差矩阵奇异,所以我们定义error IMU状态如下:

 上述参数,滑窗里边有N个相机姿态的时候,整个误差状态向量为:

 (2)建立运动模型:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值