ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SLAM이란?
    SLAM 2020. 9. 3. 10:43

    1. SLAM이란?

    SLAM

    = Simultaneous Localization and Mapping

    = 위치 추정과 (Localization) 주변 지도 작성 (Mapping)

     

     


    2. SLAM의 탄생 배경

    SLAM은 컴퓨터 비전 기술과 로봇 기술의 융합으로 인해 탄생한 위치 추정 기술이다.

    1970년대에는 초기의 자동차 및 Rover 자율주행 기술의 연구가 활발하던 때 였다.

    자율주행 기술에 있어서 장애물을 피하는건 중요하고, 장애물을 잘 피하기 위해서는 현재 Rover의 위치가 어디에 있는지 정확하게 파악하는 것이 중요했다.

     

    이전의 Rover의 위치 추정 기술은 Odometry라는 기술로 바퀴를 이용했다.

    Rotary encoder를 통해 바퀴의 회전 수를 측량하고, 여기에 바퀴의 둘레 길이를 곱해서 Rover의 총 이동거리를 계산해내는 방식이였다.

    하지만 이 방식은 평평하지 않은 땅으로 인해 바퀴가 헛도는 경우 오차가 급격하게 쌓였기 때문에 정확하지 못했다.

    때 마침 연구자들은 화성탐사 Rover에 대한 관심이 굉장히 많았고, 화성의 바닥은 고르지 않기 때문에 이쪽 분야 연구가 굉장히 인기가 많았다.

     

    1980년, Moravec의 연구를 통해 카메라를 사용해서 6자유도 위치를 추정하는 기술에 대해 알게되었다.

    Moravec의 알고리즘은 바퀴를 전혀 사용하지 않았기 때문에 바퀴가 헛돌거나 미끌어졌을 때의 단점이 없었고, 이는 더 높은 정확도를 내게 해줬다.

    또, 동시에 카메라를 이용해서 실시간으로 자신의 위치추정을 할 수 있다는 새로운 기술 분야를 제시하였다.

    이 기술 분야에 대해 추후 Nister 라는 연구자가 카메라로 odometry를 할 수 있으니 'Visual odometry'라고 부르게 되었고, 지금까지도 사용하고 있는 이름이다.

    카메라로 자신의 위치를 추정하는 Visual Odometry 기술은 시간이 지나면서 영상처리 연구, 카메라 연구, 컴퓨터 연구를 통해 다양한 방면으로 발전하게 되었다.

     

    Visual odometry는 시간이 지나면서 오차가 누적된다는 단점이 있었는데, 이는 카메라가 긴 거리를 이동하면 누적된 위치추정 오차로 인해 부정확해지게 되었다.

    연구자들은 넓은 공간에서도 (global scale) 위치추정이 잘 되게 하기 위해, 이미 한번 방문한 곳을 다시 찾아오면 위치 정보를 보정할 수 있는 Loop closure 기술과 같은 기술을 연구하게 되었다.

    이러한 기술들이 Visual odometry 기술에 더해지면서 넓은 공간에서도 정확한 위치추정 + 지도작성이 가능해지게 된 기술이 SLAM 이라고 볼 수 있다.

     

     

    참고 cv-learn.com/SLAM-f16a75f894ca48d3aa851bca99ec7cce

     

     

     

     

    => 간략하게 정리 하자면

    Odometry : 바퀴로 로봇이 움직일 때
    바퀴의 회전 수를 측량하고, 여기에 바퀴의 둘레 길이를 곱해서 Rover의 총 이동거리를 계산하는 방식

    - 한계 : 평평하지 않은 땅으로 인해 바퀴가 헛도는 경우 오차가 급격하게 쌓임

     

    Visual Odometry(VO) : 카메라를 장착한 Odometry

    단순하게 매 프레임마다 나의 상대적 위치를 계산해 누적함으로써, 시작점으로부터 현재 나의 위치를 계산하는 방식

    - 한계 : 카메라로 부터 들어온 이미지에 노이즈가 낀다거나, 실시간으로 계산해야 하는 특성 상 알고리즘이 유사값을 계산하면서 위치추정에 오차가 생기게 된다. 매 프레임마다 이 오차 역시 함께 누적되기 때문에, 시간이 오래 지나거나 이동거리가 길어지면 부정확해지게 된다.

    이 때문에 Visual odometry는 locally consistent 하다고 한다. (근접 거리에서만 정확하다)

     

     


    3. VO vs SLAM

     

    SLAM = VO + Loop closure + Graph optimisation

    SLAM은 VO에 Loop closure 기법과 Graph optimisation 기법을 추가하여, 위치 정보를 보정해주고 오차를 제거해주는 기능을 가지고 있다.

    이를 통해 SLAMGlobal consist함을 이뤄냈다. (global scale에서도 정확하다)

     

     

     

    Loop closure : 이전에 내가 있었던 위치에 다시 돌아오게 될 때, 지금까지의 궤적을 보정함으로써 오차를 제거한다.

     

    Graph optimisation

     

     

     

     

    Visual Odometry는 움직이면서 에러가 누적되고, 코너를 돌 때 특히나 더 에러가 누적된다. 사각형 모양의 궤적을 그렸음에도 불구하고 지나온 위치를 그렸을 때 사각형 모양이 나오지 않는다. Visual SLAM은 Loop closure + graph optimisation을 통해 이미 지나온 위치를 인식해서 loop 를 그려줌으로써 실제로 움직인 사각형 모양의 궤적을 그려준다.

     

     

     

    => 결과적으로

     

    Visual odometry :  Locally consistent

    SLAM : Global consist

     

     

     

     

     

     

    'SLAM' 카테고리의 다른 글

    VIO, IMU, INS  (0) 2020.09.03
Designed by Tistory.