LeGO-LOAM : Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain

LeGO-LOAM : Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain

  • Author Tixiao Shan and Brendan Englot
  • 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems(IROS),Madrid,Spain,October 1-5,2018

논문 선정 기준

  • 기선정한 Lidar SLAM논문이 개념 설명 위주의 리뷰논문이라 그 외 추가적인 기술이 없는지 궁금했음.
  • 본 논문은 기선정한 논문을 Reference로 삼아 더 효과적인 방안을 Proposed함.
  • 구글 학술검색 기준 인용횟수 278

    • [Abstract]
    • [1. Introduction]
    • [2. System Hardware]
    • [3. Lightweight Lidar Odometry And Mapping]
    • [4. Experiments]
    • [5. Conclusion And Discussion]

Abstract


  • Proposed : LeGO-LOAM(Lightweight and Ground-Optimized Lidar Odometry And mapping method)
  • 목적 : ground vehicle의 실시간 6-DOF pose 추정
  • 특징
    • 저전력 임베디드 시스템 -> lightweight
    • segmentation and optimization 단계에서 ground plane활용 -> ground에 최적화
    • 기존의 LOAM과 비교했을 때 비용은 절감되고 정확도는 상승
  • 과정
    • Point cloud를 segmentation해서 noise를 필터링
    • 필터링 된 상태에서 feature extraction -> 고유한 edge and planar feature 확보
    • ??(Levenberg-Marquardt optimization method로 연속적인 스캔에서 6-DOF transformation의 다양한 구성요소 해결)
    • KITTI dataset으로 실험

1. Introduction


지능형 로봇의 기능 중에 map 구축이나 state를 추정하는 건 가장 기본적인 전제 조건 중 하나임. 실시간성이 보장되는 6-DOF SLAM을 위해 vision기반 SLAM이나 Lidar 기반 SLAM등 열시미 시도해 왔음. 둘의 특성은 다음과 같음

종류특징
Vision SLAMloop-closure detection에 좋음. 근데 조명이나 관점이 변화하는 거에 민감해서 이것만 사용하는 건 신뢰성이 낮음
Lidar SLAM야간에도 기능할 수 있고 고해상도여서 장거리 환경의 미세한 디테일까지도 포착할 수 있음

이 논문에선 Lidar-based에 주목함.

두 Lidar scan간의 transformation을 찾기 위한 가장 일반적인 approach는 ICP(Iterative closet point)방식임. point-wise 수준에서 대응관계를 찾음으로써 stopping기준이 만족될 때 까지 반복적으로 두 개의 point set를 정렬함. scan에 점이 많이 포함될 경우, ICP는 계산비용 높아질 수 있음. 그래서 효율성과 정확성을 위해 변형된 ICP방식들이 제안되었음. (참고문헌 [3]~[8]까지 다양한 ICP소개)

feature-based의 matching 방식은 환경으로부터 대표적인 feature만을 추출함으로 계산량이 적어 주목받고 있음. (이러한 feature들은 효과적으로 matching하고 point-of-view가 변하지 않음.)(시점 고정인게 뭐가 좋지?) 많은 detector들이 간단하고 효율적인 기술로 point cloud에서 feature를 추출하는 방식으로써 제안되었음. (참고문헌 [9]~[12])

2. System Hardware


3. Lightweight Lidar Odometry And Mapping


3.A. System Overview

proposed된 framework의 overview는 Fig1과 같음.
image
Lidar의 Point Cloud로 3D정보를 input으로 받고, 6DOF의 Pose estimation을 output으로 출력함. 전체 System은 5개의 module로 나뉨.

Procedure 
SegmentationSingle scan의 point cloud를 가져와서 Range image위에 투영하고 분할함
Feature extraction분할된 Point cloud에서 Feature extraction
Lidar odometryConsecutive scan과 관련된 변환을 찾기 위해 이전 모듈로부터 추출한 feature를 사용함
Lidar mappingfeatrue들을 global point cloud map에 registration
Transform integrationLidar odometry와 lidar mapping의 pose추정 결과를 통합하고 최종 pose 추정을 출력

proposed된 system은 기존 일반화 된 LOAM의 framework와 관련하여 지상차량(Ground vehicle)의 효율성과 정확성을 추구함.

3.B. Segmentation

image 시각 t에서 얻은 Point cloud를 Pt라 할 때, 그 안의 각 Point들이 pi(p1,p2,p3 …)임.
Pt는 range image에 먼저 투영. 이 때, 사용하는 하드웨어인 VLP-16은 수평해상도 0.2◦, 수직해상도 2◦ 이므로 range image의 해상도는 1800 X 16 image

Pt내의 유효한 pi는 range image에서 unique pixel로 표시됨. range value ri는 pi와 관련있는 값으로 pi부터 센서까지의 유클라디안 거리. 일반적으로 땅은 경사져있고 평평하지 않음. segmentation하기 전 range image에 ground plane을 추정하는 column-wise를 수행하여 gound point를 추출함. 그리고나서, ground를 나타낼 수 있는 ground point는 따로 분류되어 segmentation에 사용하지 않음.

그런 다음, image-based segmentation method가 range image에 적용되어 group point를 여러 cluster로 분류함. 같은 cluster의 point에는 같은 label이 할당됨. 기억해야할 건, 앞에서 따로 분류했던 ground point는 특수한 유형의 cluster임. point cloud에 segmentation을 적용하는 것은, processing 효율과 featrue extraction의 정확도를 향상시킴. 로봇이 noisy한 환경에서 작동한다고 할 때를 생각해보면, 나뭇잎 같이 작은 사물들은 두 번 scan한다고 두 번 다 연속적으로 관찰되지 않으므로 이는 사소하고 신뢰할 수 없는 featrue임. 따라서, segment된 point cloud에서, cluster내의 점이 30개 미만인 cluster를 생략하면 빠르고 신뢰할 수 있는 feature extraction이 가능함. 다음 그림이 segmentation 전후를 나타낸거임. image

(Fig2-a) original에는 주변 초목에서 얻은 신뢰할 수 없는 Point들을 포함하고 있음
(Fig2-b) ground point는 빨간색으로 표현하고, segmentation한 이후의 point cloud라서 큰 사물들의 point만 남음. 그리고 이 점들만 range image에 저장됨.

이러한 점들로부터 3가지 특성을 얻을 수 있고 이후의 module에 활용할거임
(1) ground point 및 segmented point의 label
(2) range image의 column,row index
(3) range value

3.C. Feature Extraction

Feature extraction 과정은 [20]과 유사하지만, (원형의?)raw point cloud가 아닌 ground point와 segmented point에서 feature를 extraction한다는 점이 다름. S를 range image의 같은 행에 있는 연속적인 point pi의 집합이라고 해보자.

(이해 ㄴㄴ)S에 속한 point의 절반은 pi의 양쪽에 있음.(?)
본 논문에서 |S|를 10으로 설정(S에 속한 point수? 먼 의미?)

segmentation동안 계산된 range value를 이용해 S에 속한 pi의 roughness를 평가할 수 있음. image

  • 각 점들의 센서와의 거리가 일정할수록(차이가 적을수록) roughness가 작음.
  • S가 작다는 건 같은 row에 속한 point가 적다는 거니까 연속성이 떨어짐 –> roughness 증가?
  • r이 작다는 건 각 pi부터 센서까지의 거리가 멀다는 건데 그러면 왜 roughness가 증가? 먼상관..

모든 방향으로부터 feature를 균등하게 extraction하기 위해, range image를 horizontal하게 나눠서 여러 개의 균등한 sub-image로 만듦. 그런 다음, sub image 각 행의 point를 c값에 따라서 분류함. threshold c_th를 사용해서 만약에 c값이 c_th보다 크면 edge point라하고, c값이 c_th보다 작으면 planar point임. 이 부분은 [20]과 비슷함

  • c가 크다는건 rough한거니까 edge, 작으면 smooth한거니까 planar

그 다음 할일임. 일단 6개의 sub-image로 나누니까 각 sub image resolution은 300x16임.

  1. range image의 sub image에서 각 row마다 edge 및 planar feature point를 선택
    image
    최대 c를 갖는 edge feature points. 이는 ground에 속하지 않음.
image
최소 c를 갖는 planar feature point. 이는 ground로 label되거나 segmented point임.
  1. 모든 sub image에서 구한 edge 및 planar feature의 집합
    image

image

  1. sub image(이 sub image는 뭐임)에서 각 row마다 edge 및 planar feature를 선택.
    image
    최대 c를 갖는 edge feature. 이는 ground에 속하지 않음.
image
최소 c를 갖는 planar feature point. 이는 ground로 label되거나 segmented point임.
  1. 이 과정을 거쳐 얻은 모든 edge 및 planar feature image
    image
    image
  • edge featrue는 ground나 segmented point면 안되고 planar feature는 ground나 segmented point여도 ㄱㅊ? 차이가 머임?

image 먼솔?

3.D. Lidar Odometry

Lidar Odometry는 두 번의 연속적인 스캔 사이에서 센서의 움직임을 추정함. point-to-edge와 point-to-plane의 scan-matching을 사용해 두 scan간의 변환을 수행함. 즉, 시각 t-1일 때의 스캔 feature set에서 시각t일 때의 feature point에 해당하는 feature를 찾아야 함. 이러한 대응 관계를 찾는 자세한 절차는 [20]에서 보면되고, 우리는 이 feature matching의 정확도와 효율을 향상 시키기 위한 방법을 소개함.

3.D.1. Label Matching

segmentation이후에 시각 t에서의 feature는 각각의 label로 encoding되기 때문에, 우리는 시각 t-1의 feature point집합에서 이와 대응되는 label을 찾기만 하면됨. 먼저, 시각 t에서의 Planar feature에 있어서, 시각 t-1에서 ground points로 label되어있는 point들만이 대응하는 planar patch를 찾는데에 사용됨. 시각 t에서의 Edge feature는, 그것에 대응하는 edge line이 segment된 cluster로 얻은 시각t-1의 feature set에 있음. 이런 방식으로 대응관계를 찾는 것은 matching의 정확도를 높여줌. 즉, 두 스캔 사이에서 동일한 개체에 대한 matcing 일치가 더 많이 발견됨. 이 절차는 잠재적인 correspondence의 후보들을 좁혀줌.

3.D.2. Two-step L-M optimization

[20]에서는, 현재 scan으로부터 구한 edge 및 planar point간의 거리와 그것들이 preveious scan과 갖는 대응관계를 나타낸 비선형표현식을 단일 comprehensive distance vector로 compile한다. 두 연속된 scan간의 최소 거리 변환을 착기위해 Levenberg-Marquardt Method를 사용한다. 여기서 소개하는 L-M 최적화 method에서는 최적 변환 T를 다음의 2단계에 거쳐 찾아낸다.
어쩌구저쩌구

3.E. Lidar Mapping

lidar mapping module은 어쩌구 저쩌구

LeGO-LOAM이 [20]과 다른점은 최종 cloud map을 어떻게 저장하는지임. single point cloud map으로 저장하는게 아니고