A Robust and Modular Multi-Sensor Fusion ApproachApplied to MAV Navigation

众所周知,将来自多个传感器的信息融合用于机器人导航导致增加的鲁棒性和准确性。然而,在现场部署之前准确校准传感器集合以及传感器中断,不同的测量速率和延迟,使得多传感器融合成为挑战。因此,为了简单起见,大多数系统都没有利用所有可用的传感器信息。例如,在需要将机器人从室内转移到室外的任务中,忽视全球定位系统(GPS)信号是常态,这些信号一旦在室外就可以免费获得,而是仅依靠传感器馈送(例如,视觉和激光)连续可用。 当然,这是以牺牲实际部署的稳健性和准确性为代价的。本文介绍了一个通用的框架,称为Multi-Sensor-FusionExtended Kalman Filter(MSF-EKF),能够处理来自理论上无限数量的不同传感器和传感器类型的延迟,相对和绝对测量,允许自我校准传感器套件。MSF-EKF的模块化允许无缝处理附加/丢失的传感器信号的编程操作,同时采用增加了迭代EKF(IEKF)更新的状态缓冲方案,以允许传播的有效再线性化以获得绝对和相对状态更新的近似最佳线性化点。我们使用配备有GPS接收器的微型飞行器(MAV)以及视觉,惯性和压力传感器来演示我们在室外导航实验中的方法。

I. INTRODUCTION

在研究和工业应用中,精确和一致的定位是移动机器人的许多领域的核心问题。在需要有效解决方案的推动下,文献目前拥有大量的状态估计方法。然而,针对车载传感器套件的不同选择,所采用的框架紧密地针对手头的任务而定制。 例如,GPS馈送的使用是在开放(GPS可访问)空间中操作的平台的本地化的常用且方便的方法。相反,在GPS拒绝的环境中,通常采用基于视觉或激光的方法。 然而,跨越具有不同传感器信号可用性和适用性的域的转变仍然是一个具有挑战性的问题。

在本文中,我们提出了一种有效的方法来解决状态估计中无缝传感器馈送集成的问题。我们将重点放在基于转子的微型飞行器(MAV)上,因为它们最能够在不同的领域中行动和穿越,同时由于其高灵活性和对有效载荷和计算能力的限制而带来了微妙的挑战。

B. Self-Calibration of Sensors and Scale estimation

在导航框架中,通常以高速率估计对机器人控制至关重要的任何车辆状态,这对于诸如MAV的平台尤其重要。在典型情况下,以几百赫兹到2千赫的速率达到的惯性测量与较低速率的外部感知更新(~5-90赫兹)融合,来自例如GPS或视觉上的太阳能,以减轻漂移。常见的融合方法基于扩展(EKF)[13]或Unscented(UKF)卡尔曼滤波器[14]的间接公式。 在[10]中,表明可以以相同的方式估计额外的利息数量; 例如,本体感受器的固有校准,自体和外传感器之间的外部校准,以及来自外部传感器过程的未知量,例如单眼SLAM系统的标度和漂移。对于传感器间校准的研究,我们参考我们早期的工作[17]。

单眼视觉惯性框架的准确性由正确的尺度估计决定。在图1中,我们展示了第一个350米的MAV飞行800米飞行,速度高达4米/秒,在草地上。为了突出尺度误差,我们绘制了x和y方向上的估计和地面实况与行进距离的关系。左图强调了比例估计中的误差约为5%,而右图则在比例误差最小化时显示相同的数据。这证明了融合其他公制信息来源的潜在好处,这些信息可以在长期任务中产生更准确的估算。

在这里,我们采用这个想法来实现传感器套件的在线自校准。 此外,我们调整我们的框架来处理相对测量,以避免我们以前工作的缺点:在[16]中,局部地图被认为是无噪声的,这导致状态估计不一致。

C. Relative and absolute pose measurements

在[16]中,我们讨论了状态的不可观测性,例如视觉惯性导航系统中SLAM框架和世界框架之间的相对位置和偏航。这个问题通常通过在估计过程中固定各个状态并将视觉SLAM算法的姿势估计应用为伪绝对测量来解决[3],[14],[15]。然而,已经表明[11]应用来自视觉测试系统的相对姿态估计作为伪绝对测量导致次优估计,因为视觉测距系统(或基于关键帧的SLAM)计算的姿势的不确定性 具有有限数量的关键帧)是相对而非绝对数量。这导致不一致并且不允许估计器校正视觉SLAM系统中的漂移。在这里,我们通过采用随机克隆[12]来避免这个问题,它允许我们仅在相对上下文中包含相对测量,这也意味着我们不再将比例因子的局部估计(通常受漂移和跳跃影响)纳入 全球位置估计。这与我们之前的工作形成了鲜明的对比,其中最新的尺度估计应用于全球姿态更新,这意味着规模的小规模漂移将错误地导致全球位置估计的大幅变化。

译文:A Robust and Modular Multi-Sensor Fusion ApproachApplied to MAV Navigation的更多相关文章

  1. Sensor fusion(传感器融合)

    From Wikipedia, the free encyclopedia 来自维基百科,免费的百科Sensor fusion is combining of sensory data or data ...

  2. Udacity carnd2 Sensor Fusion, Extended Karman Filter (English)

    Extended Karman Filter Zhenglei 2018 January This is a project to estimate the car position from Lid ...

  3. 2016CVPR论文集

    http://www.cv-foundation.org/openaccess/CVPR2016.py ORAL SESSION Image Captioning and Question Answe ...

  4. CVPR2016 Paper list

    CVPR2016 Paper list ORAL SESSIONImage Captioning and Question Answering Monday, June 27th, 9:00AM - ...

  5. 三维重建7:Visual SLAM算法笔记

    VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...

  6. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

  7. 相机IMU融合四部曲(三):MSF详细解读与使用

    相机IMU融合四部曲(三):MSF详细解读与使用 极品巧克力 前言 通过前两篇文章,<D-LG-EKF详细解读>和<误差状态四元数详细解读>,已经把相机和IMU融合的理论全部都 ...

  8. A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehicles in GPS-Denied Environments

    A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehi ...

  9. 斯坦福CS课程列表

    http://exploredegrees.stanford.edu/coursedescriptions/cs/ CS 101. Introduction to Computing Principl ...

随机推荐

  1. Spring源码窥探之:FactoryBean

    1. 定义Fish实体类 /** * @author 70KG * @Title: Fish * @Description: * @date 2018/7/22下午5:00 * @From www.n ...

  2. centos 环境下安装maven

    安装Maven Maven的下载地址:http://maven.apache.org/download.cgi这里以最新的3.2.3版本为例进行安装,在这之前需要确保机器上已经安装了JDK. 首先下载 ...

  3. mysql sum的多条件求和

    1.无条件求和 sum(字段名): 2.多条件求和 sum(IF(c1>0, c1, 0)); (IF(o.is_cod=0,o.order_amount-IF(b.back_status> ...

  4. IP地址与Mac地址绑定错误

    有个application,有时候可以正常访问,有时候又返回404错误,百思不得其解.刚开始以为是文件夹权限问题,折腾了好久. 后来没在服务器上monitor到包,所以猜想是到了错误的mac地址,用a ...

  5. Spring入门(一)——IOC

    1. IOC定义 Inversion of Control,减低计算机代码间的耦合度,对象的创建交给外部容器完成,不用再new了 2. 流程 2.1 创建Bean对象 package bean; pu ...

  6. PHP常用的变量检查函数和获取某个变量的类型

    定义变量 $a = 100; 1.gettype($a) #检查变量的类型 输出integer 2.settype($a, 'double') #设置$a变量为double类型 3. is_array ...

  7. Vijos 1057 盖房子

    二次联通门 : Vijos 1057 盖房子 /* Vijos 1057 盖房子 简单的dp 当前点(i, j)所能构成的最大的正方形的边长 为点(i - 1, j - 1)与(i, j - 1), ...

  8. 20190710用控制台启动一个wcf服务

    快速阅读 如何用控制台启动一个wcf服务,已经wcf的配置和在类库中如何实现 . wcf类库 用vs新建一个类库,引用system.ServiceModel 定义接口实现服务契约和操作契约 [Serv ...

  9. FIS3

    #npm install -g cnpm --registry=https://registry.npm.taobao.org#cnpm install -g fis3 npm install fis ...

  10. java.util之一:ArrayList

    ArrayList是java中的线性结构的一种表示方法,在java中使用频率非常高,下面来一步一步分析其底层的实现.(JDK1.8) 一.构造函数 ArrayList的构造函数有三个,分别如下, 我们 ...