ICRA 2021 - Visual-Inertial SLAM and Spatial AI for Mobile Robotics (Prof. Stefan Leutenegger)

영상

  • 원본 영상 (링크)
    • @2:23:50
  • SLAM KR 발표 영상 (링크)
    • @56:00

 


Stefan Leutenegger 교수님

  • 이력
    • 취리히 공대 학석박, Roland Siegwart 교수님 랩실에서 박사학위
    • 2014년부터 영국 ICL에서 Lecturer
    • Andrew Davison 교수님과 함께 SLAMCore의 Cofounder
  • 주요 논문:
    • BRISK
    • OKVIS
    • ElasticFusion
    • SemanticFusion

 


Levels in Spatial AI

Level Task Technology Papers Outcome
Level 4 주위 물체들과의 상호작용을 이해 Object-level/dynamic mapping MID-Fusion Advanced interaction
Level 3 주변에 어떤 물체들이 있는지 이해 Semantic understanding SemanticFusion Basic interaction
Level 2 주위 빈 공간과 벽을 인식 Dense mapping ElasticFusion Collision avoidance / motion planning
Level 1 자기 자신의 3D 위치를 인식 SLAM (Sparse) OKVIS,OVKIS2 Position control

 


SLAMCore

  • 예에 회사홍보
  • SLAMCore는 영국에 있는 로보틱스 비전을 위한 소프트웨어 회사이고, Spatial AI를 구현하기 위해 힘쓰고 있습니다~~~

 


Sparse VINS problem

Visual SLAM의 기본

  • Visual SLAM의 기본적인 원리는 Camera pose와 3D landmark의 위치를 최적화 하는 것이다.
    • 모든 3D landmark에 대해서 camera pose에 대해 2D 이미지로 투영하였을 때, 투영된 landmark의 2D 위치와 해당 landmark가 관측된 feature의 위치의 차이 (i.e. 재투영 오차, reprojection error)의 합을 최소화하는 camera pose와 3D landmark의 위치를 찾는 것이다.
  • 수식 설명
    • 기호 설명
      • 는 센서 값 (i.e. 뽑힌 피쳐의 위치)
      • 는 투영 수식 (참조 링크)
      • 는 카메라 포즈
      • 은 랜드마크의 위치를 의미한다.
    • 은 3D landmark의 위치를 카메라 프레임에서 표현한 것
    • 는 카메라 프레임에서 표현된 3D landmark를 2D 이미지로 투영했을 때의 픽셀 위치
    • $는 실제 이미지에서 뽑힌 visual keypoint의 위치와 2D 이미지로 투영된 3D landmark의 픽셀 위치 오차를 의미한다.

 

Visual SLAM을 factor graph로 표현하면?

  • Visual SLAM을 factor graph로 표현하면 다음과 같은 그래프를 가진다.
  • 각각의 pose들은 따로 떨어져있다.
    • 즉, camera pose끼리는 직접적인 constraint가 전혀 없다는 것이다.
      • 실제로 Visual SLAM은 frontend에서는 feature tracking을 위해 연속적인 이미지 시퀀스가 필요하지만, graph optimisation을 할 때는 연속적인 정보가 아니여도 된다.
      • 또, 이 덕분에 모든 프레임을 사용하지 않아도 되며, 대부분의 경우 키프레임만 사용한다.
    • 이는, Visual SLAM에서는 temporal 정보가 없다는 것이다.
      • (temporal = 시간이 흐름에 따라 변화하는 정보)
  • 위 수식에서 는 멀티카메라 셋팅일 경우 카메라의 수를 뜻하고, 는 포즈의 수, 는 모든 projection의 수를 뜻한다.
    • 는 에러 값을 제곱하는 least squares optimisation을 표현한 것이다.

 

VINS를 factor graph로 표현하면?

  • IMU 센서의 속도 200/400/800Hz 정도이며, 30Hz의 카메라의 속도보다 훨씬 빠르다.
    • 즉, 카메라 프레임들 사이마다 IMU 값을 얻게 된다.
    • IMU는 speed와 bias 값들을 state로 가지고 있는데, 이 state들은 추가 연산을 통해서 pose 값으로 변환이 가능하다
      • 선형 가속도 값을 2번 적분해서 translation 값으로 바꾸고, 각속도 값을 1번 적분해서 rotation 값으로 바꿀 수 있다.
      • 이는 IMU measurement를 통해 camera pose 값들을 연속적으로 / temporal하게 이을 수 있게 된다.
    • VINS가 잘되는 이유는 이러한 temporal 정보까지 함께 최적화하기 때문이라고도 볼 수 있다.
    • IMU 센서 값은 종종 preintegration을 거친 형태를 가진다.
  • IMU 센서의 특성을 고려했을 때 단순히 speed만 구하는게 아닌 센서의 빠른 bias 변화를 예측할 수 있어야한다.
    • 즉, bias 값까지 최적화 계산으로 풀어줘야하며, 최적화 해야하는 term과 constraint가 많아진다.
    • 이 때문에 VINS는 Visual SLAM보다 기본적으로 계산량이 많다는 것을 알 수 있다.

 


OKVIS

  • 시간이 지날수록 최적화 해야하는 term들은 많이 쌓인다.
    • 실시간성을 유지하기 위해 늘어나는 계산량을 어떻게 관리할 것인지가 중요해진다.