Juric 2021 - A Comparison of Graph Optimization Approaches for Pose Estimation in SLAM

Juric 2021 - A Comparison of Graph Optimization Approaches for Pose Estimation in SLAM 논문의 리뷰입니다.

 


목적

 


실험환경

  • 인텔 8코어 i7-6700HQ. 2.60GHz
    • 16GB 램
    • Ubuntu 20.04
  • g2o, ceres-solver, GTSAM은 Levenberg-Marquardt (L-M) solver 사용
  • SE-Sync는 Riemannian trust-region 기법 (RTR) 사용 (L-M 미지원)
  • 100 iteration만 가능
    • Early stop
      • L-M의 경우 까지 떨어지면 early-stop.
      • RTR의 경우 까지 떨어지면 early-stop.

 


데이터셋

  • Real-world
    • INTEL, MIT, Garage, Cubicle, Rim
  • Simulation
    • M3500 (a,b,c), Sphere-a, Torus, Cube

아래는 각각의 데이터셋이 가지고 있는 node와 edge들 (i.e. constraints들의 수)

 


실험 결과

  • 빨간색: 제일 빠른 프레임워크
    • SE-Sync가 제일 많은 빨간색을 가짐
  • 초록색: 가장 정확한 프레임워크
    • SE-Sync가 제일 많은 초록색을 가짐
  • 파란색: 값은 잘 나오지만, 시각화해서 보면 완전 잘못된 결과 (i.e. local minima converge)
    • Ceres와 GTSAM이 파란색이 많은 편

 


결론

  • SE-Sync
    • 가장 빠른 프레임워크
      • 다른 프레임워크에 비해 몇십배~몇백배 빠른 경우도 있었다.
      • 추가적인 verification step을 거치면 global optimality도 얻을 수 있다.
  • g2o
    • 제일 오래 걸리는 편
    • 간단한 2D 데이터셋에서는 잘 됨
  • Ceres
    • 모든 면에서 딱 중간 - 적당히 빠르고, 적당히 정확함.
  • GTSAM
    • SE-Sync랑 성능이 동급
    • 하지만 노이즈가 섞여있을 때 local minima에 빠짐.

기본적으로 SE-Sync를 쓰는게 제일 좋을듯.
탄탄한 frontend를 기반으로 좋은 initial guess가 보장된다면 GTSAM을 사용해도 무방.