zoukankan      html  css  js  c++  java
  • # LiteratureReview LeGO-LOAM

    Abstract

    我们提出了一种轻量的, ground-optimized的lidar里程计和建图方案.

    是ground-optimized, it leverages the presence of a ground plane in its segmentation and optimization step.

    我们首先用点云分割来滤出噪声, 特征提取来获得有区分度的 planar / edge 特征.

    一个two-step LM优化.

    我们用LeGO-LOAM和LOAM比较, 发现LeGO获得了类似或者更好的精度, 但是计算力少.

    1. Introduction

    视觉办法在loop detection上有优势.

    lidar在晚上也能工作. 一个经典的办法是ICP. 当点很多的时候, ICP的计算力需求很大. 有很多ICP的变种来提升它的效率. [3]使用了point-to-plane的ICP. [4] Generalized-ICP提出了两个scan的平面匹配.

    Feature-based方法也得到了更多关注. 这些特征需要适合高效的匹配, 而且对视角有不变性. 很多detector, 比如Point Feature Histograms (PFH)和Viewpoint Feature Histograms(VFH)被提出. 一个提取一般目标的特征方案用Kanade-Tomasi角点在[11]中被引入. [12]提出了提取线和面特征.

    很多用点云注册的方案也被提出了. [13]和[14]用点在局部的cluster计算的曲率来提特征点. [15]选择了有高曲率的点, 假设场景都是充满平面的. [16] 假设环境是由平面组成的, 用了plane-based registration的方法. 室外环境比如森林会限制它的应用.

    [18]提出了segmentation-based registration方案. SegMatch是第一个用点云分割的. 一个特征vector会用每个segment的eigenvalue和shape histograms来计算. 随机森林会被用来匹配. 虽然它能提供在线的位姿估计, 但是只能1Hz.

    一个低漂移的实时lidar里程计和建图方案(LOAM)在[19], [20]中被提出. LOAM做了point feature to edge/plane scan-matching来找scan之间的匹配. 特征在点和它的领域的roughness来计算. 有很高roughness度的特征是edge. 类似的, 有低roughness的点是planar feature. 实时的表现是通过把估计分体分成两块来做的. 一个算法跑高频率, 并且以低精度估计传感器速度. 另一个传感器跑低频率, 以高精度估计移动. 最后融合.


    lightweight and ground-optimized (LeGO-LOAM).

    • 平面feature会用来获得([t_z, heta_{roll}, heta_{pitch}]).
    • 剩下的平移([t_x, t_y, heta_{yaw}])通过匹配edge特征来获得。

    我们同时也集成了回环的能力。

    2. System Hardware

    VLP-16可以测100m,误差+-3cm. vertical FOV(30°)。horizontal FOV 360°。16线的resolution是2°。 horizontal angular resolution是0.1°到0.4°(根据旋转速度)。

    在这个paper里,scan rate是10Hz,angular resolution是0.2°。

    3. LightWeight LiDAR Odometry and Mapping

    A. System Overview

    image-20200405231650590

    B. Segmentation

    (P_t) 是在(t)时刻的点云. (P_t)会首先被投影到一个range image. 被投影的range image的精度是1800x16. 每个点云就变成了一个像素. value (r_i)就是欧氏距离。 因为倾斜的地形(sloped terrain)很常见,我们不会假设地面是平的。用了【22】里的column-wise evaluation,也就是ground plane estimation。在这个处理之后,代表地面的电晕就不会用来分割了。

    用了基于图像的segmentation【23】来把range image clusters。来自一个cluster的点被assign一个label。

    假设机器人的场景是充满噪声的。e.g. 树叶就是琐碎而不可依赖的特征。我们会忽略少于30个点的cluster。

    image-20200405231709478

    C. Feature Extraction

    特征提取的过程跟【20】类似。但是,不是在raw point cloud中提取,我们从ground points和segmented points里提取。

    (c=frac{1}{|S| cdotleft|r_{i} ight|}left|sum_{j in S, j eq i}left(r_{j}-r_{i} ight) ight|)

    为了平均的从各个方向来提取特征。我们把图像horizontally分为几个子图。然后我们把子图的每一行根据它的roughness排序。跟LOAM类似,我们用一个阈值(c_{th})来区分。比阈值小的(c)就是平面特征。这样就有(n_{mathbb{F}_e})个edge特征点。我们把360°的range image分为6个子图。每个子图的分辨率是300x16.(n_{F_{e}}, n_{F_{p}}, n_{mathbb{F}_{e}},) and (n_{mathbb{F}_{p}})分别是2,4,40,80.

    D. Lidar Odometry

    两个scal的平移是通过point-to-edge和point-to-plane的scan匹配。也是跟【20】一样。

    但是我们也注意到一些提升。

    1)Label Matching

    没啥东西。

    2) Two-step L-M Optimization

    在【20】里,一系列的非线性表达式(edge和平面点的距离)被编译到一个单一的comprehensive distance vector.然后用LM来找到最小距离。

    我们引入了一个2-step LM优化。

    • ([t_z, heta_{roll}, heta_{pitch}]) 使用平面做的。
    • ([t_x, t_y, heta_{yaw}]) 是用edge做的,然后把z, roll, pitch作为约束。最后融合这6个自由度。我们认为这个两步走可以减少计算时间达35%。

    E. Lidar Mapping

    lidar mapping模块匹配特征(当前的,和点云图)来refine pose,但是是在很低的频率。这里也用了LM。

    主要的区别是final点云图的存储。我们不是存储单个点云图,而是存每个特征组({ mathbb{F^t_e, mathbb{F}^t_p} })

    我们也可以集合pose-graph到LeGO里,然后调整位子。

    4. Experiment

    A. Small-scale UGV Test

    image-20200405233703011

    5. Conlusions and Discussion

    没啥。

  • 相关阅读:
    net下 Mysql Linq的使用, 更新数据,增加数据,删除数据
    mysql net连接读取结果为乱码 Incorrect string value
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    CBQW ---分组表单展示
    infopath 之绑定列表 数据源
    Office365 InfoPath 表单的设计和应用(原创)
    [转]如何管理一个远程团队
    [转]以《AI War》为例阐述AI元素概念与代码
    [转]分享AI寻径设计的射线追踪法
    [转]如何反推一个游戏
  • 原文地址:https://www.cnblogs.com/tweed/p/12652688.html
Copyright © 2011-2022 走看看