本文提出了一种紧耦合的多传感器(雷达-惯导-相机)融合算法,将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. 机器学习PAL基本概念

    机器学习PAL基本概念 本文介绍PAI-Studio.PAI-DSW及PAI-EAS的基本概念. PAI-Studio PAI-DSW PAI-EAS

  2. Python脚本语言写法

    Python脚本语言写法 脚本语言的开始行,是指文件中的代码用什么可执行程序去运行它,就这么简单. #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的pyth ...

  3. 共享CUDA内存

    共享CUDA内存 进程间共享 此功能仅限于Linux. 将设备阵列导出到另一个进程 使用CUDA IPC API,可以与同一台计算机上的另一个进程共享设备阵列.为此,请使用.get_ipc_handl ...

  4. CVPR2020:训练多视图三维点云配准

    CVPR2020:训练多视图三维点云配准 Learning Multiview 3D Point Cloud Registration 源代码和预训练模型:https://github.com/zgo ...

  5. 特斯拉Tesla Model 3整体架构解析(下)

    特斯拉Tesla Model 3整体架构解析(中) Tesla Computer Unit 特斯拉已经开发了一个由自动驾驶仪和信息计算机组成的定制"液冷双计算平台"."他 ...

  6. springMVC异常处理(自定义异常)HandlerExceptionResolver

    注:本篇的异常主要指的是controller.service和dao层中执行方法抛出的异常. 一.为什么要处理异常? 因为如果我们不处理异常,异常信息就会直接抛出给浏览器,于是浏览器页面就直接显示异常 ...

  7. Windows7 如何添加excel,word到鼠标右键

    1.添加word到鼠标右键新建 首先Windows键+R---->输入regedit并回车------>看到HKEY_CLASSES_ROOT展开------>找到.doc展开--- ...

  8. DOS命令行(2)——Windows磁盘维护与管理

    预备知识 1 -- 磁盘 1.磁盘分区 主磁盘分区.扩展磁盘分区.逻辑分区 主磁盘分区是物理磁盘的一部分,它像物理上独立的磁盘那样工作.对于基本启动记录(MBR)的磁盘,在一个基本磁盘上最多可以创建四 ...

  9. Java基础-封装和继承

    @ 目录 Java基础知识(封装和继承) 一. 封装 1.1 封装的目的 1.2 封装的好处 1.3 封装的步骤 1.4 封装的例子 1.5 小结 二. 继承 2.1 继承的介绍 2.2 生活中的继承 ...

  10. java入门了解、安装jdk及软件的选择

    ​ ​学习编程,一些必要的dos命令还是需要掌握的. 以下只是列出常用的: cd 目录路径: 进入一个目录 cd .. 进入父目录 dir 查看本目录下的文件和子目录列表 cls 清除屏幕命令 上下键 ...