来源 | 知乎@yc zhang、当SLAM遇见小王同

知圈 | 进“汽车HMI社群”请加微信15221054164,备注HMI

在大规模场景下的地图构建时候,纯激光雷达传感器无法很好的完成地图构建工作,这时需要考虑使用不同的传感器,获取多种数据来进行传感器的融合,实现位姿的矫正,最终完成复杂大规模场景下的地图构建,这种方法也被称之为多传感器融合。本篇文章要讲述的是发表在ICRA2020上的一篇多传感器融合实现点云地图构建的文章。涵盖的知识面有:ESKF,IKF,IMU,Quaternion等。论文地址:https://arxiv.org/abs/1907.02233视频演示

1、论文概览 

R-LINS的本质是一个以机器人为中心的激光惯导状态估计器。它使用以下两种传感器来估计机器人的运动姿态:6轴 IMU:高频,聚焦自身运动,不采集外界环境数据 3D LiDAR:低频,聚焦车体运动,采集外界环境数据 这两种传感器想必大家都不陌生。但是,这两个传感器在复杂大规模领域里,单独的依靠自己的数据是很难实现地图构建的。所以,为了能够在具有挑战性的环境下也能保持鲁棒性和计算效率,本文使用了迭代的误差状态卡尔曼滤波器(ESKF)来通过重复生成新的对应特征来递归的修正机器人的状态信息。为了防止滤波发散和降低计算成本,本文采用了一种新的以机器人为中心的公式,该公式重新定义了一个移动的局部帧的状态估计量,而不是像标准的以世界为中心的LIO中的固定全局帧的状态估计量。这里需要注意的是,LINS和LIO的区别如下:本篇文章相比于LIO,降低了计算的时间消耗,是第一个使用ESKF的LIO框架。2、雷达里程计分类 现在基于激光雷达里程计的划分主要有三大类:纯雷达模型 松耦合的LiDAR-IMU模型 紧耦合的LiDAR-IMU模型 下面将依次介绍下对应的模型。

2.1、纯雷达模型

一般来说纯雷达的里程计模型大部分都是基于帧间匹配的,主要分为两大类:基于迭代最近点法(ICP) 基于正态分布变换(NDT) 所以,现阶段基于迭代最近点法的纯雷达模型,比较出名的是LOAM框架,主要为LOAM和LeGO-LOAM而基于正态分布变换的纯雷达模型,比较出名的是HDL-Localization。这些算法都是基于单独的激光雷达传感器数据而进行的里程计推演,实现地图构建。2.2、松耦合的LiDAR-IMU模型 纯雷达模型使用的传感器是激光雷达,可以很好的探测到外界的环境信息。但是,同样的,也会受到这些信息的干扰,再长时间的运算中会产生一定的累计误差。为了防止这种误差干扰到后续的地图构建中,需要使用另一种传感器来矫正机器人自身的位姿信息。在实际使用中,为了矫正激光雷达传感器所得到的位姿信息,一般使用的是IMU传感器。IMU传感器由于是自身运动估计的传感器,所以,采集的都是自身运动的姿态信息。可以很好的矫正激光雷达里程计的位姿信息。所以,通常使用激光雷达和惯导来进行数据融合,实现姿态信息的矫正,这种模型也被称之为LiDAR-Inertial Odometry(LIO) 。这里主要介绍的是松耦合的LiDAR-IMU模型。高斯粒子滤波就是比较常见的松耦合模型。松耦合模型由于是对两个传感器的数据直接进行使用,得到新的姿态解算后的数据,并没有构建新的损失函数,所以,得到的结果相对来说也不是特别的精准。但是,由于其模型简单,可以快速实现,所以,松耦合的多传感器融合模型,也有着自己的用处。2.3、紧耦合的LiDAR-IMU模型紧耦合饿到多传感器融合模型,是将各个传感器的数据都输入到了一个模型之中,构建约束关系,使用优化方法最小化约束,得到最终的结果。其方法可以分为:基于优化的紧耦合模型 基于EKF的紧耦合模型 基于优化的紧耦合模型目前比较热门的是LIO算法。基于EKF的紧耦合模型目前比较热门的是LIOM算法。本文提出的基于迭代ESKF的R-LINS是基于EKF模型的变种的一种紧耦合模型。由于EKF模型是将非线性模型局部线性化,所以,对于雷达观测约束这种典型的非线性模型而言,容易出现性能低下甚至发散的情况,所以,需要使用一种针对非线性模型的卡尔曼滤波模型来替换EKF。本文使用的是误差状态卡尔曼滤波模型(ESKF)来最小化非线性约束,从而实现姿态的更新,这也是R-LINS的一个创新点。3、LiDAR-Inertial建图 本章节将着重讲解LiDAR和IMU传感器融合实现地图构建的部分。本文的系统架构如图所示:一共分为三大块:特征提取:从原始点云中提取稳定的特征 LIO:状态传递和状态更新模块组成,使用迭代ESKF,输出纯里程数据和不失真的点云特征 地图构建:细化纯里程数据,得到全局位姿信息并输出全局地图 其中,特征提取使用的是LeGO-LOAM部分的特征提取模块,LIO模块和之前的LIO论文不一样,改变了ESKF作为约束优化的方法,地图构建使用的是LeGO-LOAM部分的地图构建模块。由于本文的重点是LIO模块,所以,这里直接略过了特征提取和地图构建,只讲解LIO模块的内容。这里用到了一个迭代卡尔曼滤波。迭代卡尔曼滤波器主要目的在于克服EKF线性化过程中对高阶误差的舍弃而造成的估计不准确。“迭代“主要是指在量测更新过程中添加了一步迭代,直到状态收敛。

3.1、状态定义

这里和VIO中表示使用误差向量中的局部重力不同。我们使用估计的roll和pitch,将重力从世界帧转换到局部帧,来获取重力信息。本文使用的方法会更加合理一点,假设在极短的时间内,roll和pitch不会急剧变化,则在地图闭环后,得到的结果有着很小的漂移,就可以得到比较精准的重力信息了。

3.2、状态递推

可以推导得到:其中,有个关系,大家需要注意:估计值 = 测量值 - 偏差通过上面的公式(1),我们可以得到

3.3、状态更新 

我们知道,卡尔曼滤波(KF)是有着五大方程的,分别是:预测:状态预测方程,协方差预测方程更新:状态更新方程,协方差更新方程 卡尔曼增益方程 误差状态卡尔曼滤波(ESKF)也有着上面的五大方程组。唯一的区别在于卡尔曼滤波针对的是物体的运动状态,而误差状态卡尔曼滤波针对的是物体运动状态的误差状态。在前面3.2部分,我们已经得到了状态预测方程(公式2)和协方差预测方程(公式3)。剩下的就是要得到状态更新方程,协方差更新方程和卡尔曼增益方程了。本文用的是迭代卡尔曼滤波(IKF)。这里就可以将状态更新问题变成了一个优化问题这里其实就是LOAM的点线距离和点面距离的公式了:所以,上面的式子其实可以拆解为:这样看的话,其实就能理解上面公式是什么意思了。其中,ESKF的卡尔曼增益方程和状态更新方程:这就是迭代的卡尔曼滤波和常规的卡尔曼滤波的区别之处。当迭代终止的时候,假定终止下标为 ,我们就可以算出协方差更新方程为:

3.4 状态合成 

我们前面算出来的是以机器人为中心的参照系下的位姿信息。所以,为了得到全局坐标信息,需要进行状态合成,合成公式为:

3.5、初始化 

我们使用的传感器为IMU和激光雷达,所以有一些参数信息需要提前知晓:4、地图构建通过前面的部分,我们已经得到了每个时刻精准的状态估计信息。就可以使用LeGO-LOAM进行地图构建,得到全局地图。但是也有一些不同。本文使用地图构建模块导出的roll和pitch作为LIO模块的反馈输入,这种策略被证明可以有效地提高系统的鲁棒性。本文来自知乎:https://zhuanlan.zhihu.com/p/134621840

imu 里程计融合_多传感器融合 RLINS概述相关推荐

  1. 特征级融合_多传感器融合理论

    多传感器融合理论 多传感器信息融合(Multi-sensor Information Fusion,MSIF),就是利用计算机技术将来自多传感器或多源的信息和数据,在一定的准则下加以自动分析和综合,以 ...

  2. imu 里程计融合_地图影像与IMU及里程计集成的探测车定位

    1.序列影像与IMU及里程计集成定位 行星表面巡视探测中,探测车依靠IMU和里程计组合的航迹推算能够获取连续稳定的定位结果,然后行驶过程中的车轮打滑以及IMU长时间工作带来的偏移严重影响了定位精度.基 ...

  3. imu 里程计融合_轮式里程计(Wheel Odometry)以及惯性导航(IMU)数据

    对于众多机器人应用来说,自定位以及基于航位推测(Dead-reckoning, DR)估计的里程计信息是非常重要的.一般来说,要设计一个有效的里程计系统是十分困难的. 一.惯性导航单元(Inertia ...

  4. 工作小笔记——机器人底盘上里程计和惯导的融合

    前言 本文针对双轮差动模型的底盘,简单描述里程计和IMU融合的方案. 1. 融合的输入信息 1.1 里程计信息 里程计得到的是原始的轮速信息,之后通过双轮差速模型转换得到车体线速度和角速度,假设: 车 ...

  5. ffmpegframegrabber 时间戳不同步_多传感器融合中的时间硬同步1-论文阅读

    前言 阅读硕士论文<自动驾驶中多传感器集成同步控制器设计与实现>,该论文为自动驾驶设计了一套时间同步控制器,涉及到的细节非常丰富,可以为多传感器融合中的时间同步提供设计思路. 主要内容 为 ...

  6. 最新开源Faster-LIO:快速激光IMU里程计

    作者丨半闲居士@知乎 来源丨https://zhuanlan.zhihu.com/p/468628910 编辑丨点云PCL 文章:Faster-LIO: Lightweight Tightly Cou ...

  7. IMU/光电鼠标/轮式编码器的多传感器融合(非线性卡尔曼滤波)

    各传感器分析 imu 对于平面移动机器人(如扫地机器人),IMU只需要一般只需要使用陀螺仪的偏航角(YAW),陀螺仪的偏航角有时间漂移的误差存在,一般分为系统漂移误差(offset)和随机时间漂移误差 ...

  8. concat特征融合_深度特征融合---理解add和concat之多层特征融合

    一.如何理解concat和add的方式融合特征 在各个网络模型中,ResNet,FPN等采用的element-wise add来融合特征,而DenseNet等则采用concat来融合特征.那add与c ...

  9. 多传感器融合定位四-3D激光里程计其四:点云线面特征提取

    多传感器融合定位四-3D激光里程计其四:点云线面特征提取 1. 点云线面特征提取 1.1 按线数分割 1.2 计算曲率(重要!) 1.3 按曲率大小筛选特征点 2. 基于线面特征的位姿变化 2.1 帧 ...

  10. 多传感器融合定位三-3D激光里程计其三:点云畸变补偿

    多传感器融合定位三-3D激光里程计其三:点云畸变补偿 1. 产生原因 2. 补偿方法 Reference: 深蓝学院-多传感器融合 多传感器融合定位理论基础 文章跳转: 多传感器融合定位一-3D激光里 ...

最新文章

  1. Spring Boot 启动载入数据 CommandLineRunner
  2. 服务器root账号用户名和密码忘记了,宝塔忘记后台管理员账号密码怎么办?教你用这条命令轻松搞定...
  3. linux的manual手册不存在,在 Linux 命令行下使用“原力”
  4. vue + vue-router +axios + element UI + PHP + CodeIgniter + Mysql 项目管理系统
  5. linux分区_如何扩展Linux系统根分区
  6. [翻译+分析总结] nnU-Net for Brain Tumor Segmentation
  7. Excel十八个快捷键
  8. 腾讯cdn设置 php,教你利用腾讯云 cdn 加速网站静态资源
  9. 等比例压缩图片文件大小
  10. 调用聚合数据新闻头条API
  11. python爬虫时爬虫爬数据时出现“访问本页面,请开启JavaScript并刷新该页”
  12. Mac OS X中virtualenv里python shell无法使用光标键问题的解决
  13. 杀戮空间2服务器协议,杀戮空间2服务器设置
  14. 自定义配置log日志
  15. java tostring格式化日期_Java格式化日期的三种方式
  16. 递归算法和文件队列算法----实现多级文件夹的遍历,删除和复制操作
  17. 项目维护几年了,为啥还这么卡?
  18. 2021.2.27课程摘要(逻辑教育-王劲胜)
  19. STM32 移植FreeModbus详细过程
  20. TensorFlow的MNIST手写数字分类问题 基础篇

热门文章

  1. phpmyadmin误删表后如何恢复
  2. 关于C++类回调函数中传进成员变量的方法
  3. literal和meta的意义和用法
  4. SQL Server字符串处理函数大全
  5. [转]winform控件webbrowser和js脚本互调
  6. redis 安装填坑记录
  7. 判断数组类型的4种方法
  8. Solr系列三:solr索引详解(Schema介绍、字段定义详解、Schema API 介绍)
  9. 宜信正式开源其 AIOps 落地三大利器
  10. 【原创】MySql常见出错解决