本文提出了一种紧耦合的多传感器(雷达-惯导-相机)融合算法,将IMU测量、稀疏视觉特征、提取的激光点融合。提出的算法在时间和空间上对三个异步传感器进行在线校准,补偿校准发生的变化。贡献在于将检测和追踪的激光surf/边特征和观测到的稀疏特征点以及IMU数据用MSCFK框架融合,仅仅采用单线程实现,实现了6自由度的位姿估计。雷达特征包括点和线面,在户外和室内环境都进行了实验,目前最好的VIOL里程计。

LIC-FUSION

A.状态向量

状态向量主要包括\(k\)时刻的IMU状态、IMU和相机之间的外参、IMU和激光雷达之间的外参、滑动窗口中过去\(m\)个相机帧对应的IMU状态、\(n\)个雷达帧对应的IMU状态。分别见公式(1)到(6)。当前时刻IMU状态包括全局坐标系到IMU的位姿四元数、IMU在全局坐标系中的速度、位置,重力和加速度的偏差。外参状态向量包括两个传感器之间的位姿变换。由于传感器延迟、时钟偏移或者数据传输延迟,作者估计了不同传感器与IMU之间的时间偏移(即以IMU为基准),假设存在一个时间偏移量,对其进行纠正,见公式(7)-(8)。参考文献[18]。状态估计值、偏差值、估计值的定义及更新见公式(10),注意旋转不能直接加法。

B.IMU传播

IMU运动学方程见公式(11)-(15)。

C.状态增强

当系统接收到新的一帧图像或者雷达数据,IMU将状态传递到当前时刻,同时也更新窗口中的IMU状态,为了标定不同传感器之间的时间偏移,将估计当前IMU时间,见公式(16),协方差矩阵见公式(17)。雅克比的推导见公式(18)(19)。

D.测量模型

1)雷达特征测量

雷达特征选取曲率比较低或者高的部分,分别对应着边和面。通过使用投影到最近的帧寻找最近的对应特征进行追踪,使用kd-tree快速查找,即将i+1帧的特征点投影到i帧上。而帧间位姿变换可以通过雷达i+1-IMU-Global-IMU-雷达i,具体推导见公式(21)-(23)。追踪完成后,在之前的两帧scan中找到两个边特征,这两个最近的特征应该在相邻的ring上,假设这两个边特征和当前帧的变特征对应物理世界中同一条边,则重投影的误差可以用当前帧的特征线到之前两个线的距离表示,见公式(24)。

对该距离进行线性化,加上高斯白噪声,需要求距离对状态向量的雅克比矩阵,为了实现扩展卡尔曼滤波更新,需要知道距离测量的协方差,由于该距离不是直接测量,因此需要用上文的相关帧上点的协方差进行传递,计算公式见公式(27)。使用基于马氏距离的概率方法将外点去除,见公式。

同理,对于投影的平面surf特征,在其他帧找到三个对应的surf特征,假设是在相同的物理平面上进行采样。测量残差为重投影的特征点和三个对应点形成平面的距离,协方差和马氏距离测试与边特征相似。

2)视觉特征测量

给定一个新的图像,提取FAST特征,使用KLT光流进行追踪,一旦视觉特征丢失或者追踪在滑动窗口之外,使用当前相机位姿进行三角化3D点。已知了3D视觉特征,残差可以用公式(28)和(29)表示,主要就是线性化。这里零空间和在线标定没看懂,二者有什么联系?

E.测量简练

在线性化雷达和视觉特征测量后,可以采用扩展卡尔曼滤波更新,而视觉和雷达的残差可以统一公式,由于测量量太多,采用Givens旋转对测量hessian矩阵进行QR分解后。线性的测量残差可以用标准EKF进行更新。

问题

MSCKF nullspace projection to remove this dependency 啥意思

滑动窗口为什么不维护相机位姿

论文阅读:LIC-Fusion: LiDAR-Inertial-Camera Odometry的更多相关文章

  1. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  2. [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion

    [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 (1 ...

  3. 论文阅读LR LIO-SAM

    Abstract 紧耦合lidar inertial里程计, 用smoothing和mapping. 1. Introduction 紧耦合lidar-inertial里程计. 紧耦合的lidar i ...

  4. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

  5. BITED数学建模七日谈之三:怎样进行论文阅读

    前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...

  6. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  7. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  8. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  9. 论文阅读(Lukas Neumann——【ICCV2017】Deep TextSpotter_An End-to-End Trainable Scene Text Localization and Recognition Framework)

    Lukas Neumann——[ICCV2017]Deep TextSpotter_An End-to-End Trainable Scene Text Localization and Recogn ...

  10. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

随机推荐

  1. 多目标跟踪:CVPR2019论文阅读

    多目标跟踪:CVPR2019论文阅读 Robust Multi-Modality Multi-Object Tracking  论文链接:https://arxiv.org/abs/1909.0385 ...

  2. PyTorch中的MIT ADE20K数据集的语义分割

    PyTorch中的MIT ADE20K数据集的语义分割 代码地址:https://github.com/CSAILVision/semantic-segmentation-pytorch Semant ...

  3. Kubernetes 实战——有状态应用(StatefulSet)

    一.简介 有状态实例:新实例和旧实例需要有相同的名称.网络标识和状态 无状态实例:可随时被替换 1. ReplicaSet 和有状态 Pod ReplicaSet 通过 Pod 模板创建多个 Pod ...

  4. 面试官:MySQL的可重复读级别能解决幻读问题吗?

    引言 之前在深入了解数据库理论的时候,了解到事务的不同隔离级别可能存在的问题.为了更好的理解所以在MySQL数据库中测试复现这些问题.关于脏读和不可重复读在相应的隔离级别下都很容易的复现了. 但是对于 ...

  5. 深入理解 sync.Once 与 sync.Pool

    深入理解 sync.Once 与 sync.Pool sync.Once 代表在这个对象下在这个示例下多次执行能保证只会执行一次操作. var once sync.Once for i:=0; i & ...

  6. 把新建的vue项目上传到码云

    1:在码云上建一个仓库(使用Readme文件初始化这个项目的勾取消掉) 2:在项目文件中打开git命令窗口(如下图),命令git init 初始化git仓库 运行之后有一个.git文件夹 现在用vsc ...

  7. 在vue中下拉框切换事件中改新建表单中的一个值,页面不显示

    事件中改新建表单中的一个值,页面不显示,当另一个对象值发生改变时,这个页面上的值才会显示 由于新建表单是弹窗,在弹出时会重新给每个字段重新赋值,在赋值时没给这个字段赋值(常见新加功能时,加了一个字段, ...

  8. CapsuleAO实现的学习

    正是一个炎夏,又到了整活的好时候.最近抽些时间研究下CapsuleAO,记述实践体会. 1.简介 这是一个通过在角色骨骼上绑定虚拟胶囊体并以数学方法实现胶囊近似的AO环境光遮蔽效果的方法, 当角色处于 ...

  9. ceph-csi源码分析(2)-组件启动参数分析

    更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(2)-组件启动参数分析 ceph-csi组件的源码分析分为五部分: ...

  10. SpringBoot Validation优雅的全局参数校验

    前言 我们都知道在平时写controller时候,都需要对请求参数进行后端校验,一般我们可能会这样写 public String add(UserVO userVO) { if(userVO.getA ...