이 게시글은 장형기님의 SLAM 기술면접 질문 100선에 대한 제 나름대로의 답을 정리한 것입니다.
Relocalization이란, SLAM에서 로봇 위치 추정이 실패하거나 끊긴 상황에서, 해당 환경 내에서 다시 자신의 위치를 정확하게 찾아내는 과정을 말합니다.
Tracking 실패: 카메라가 빠르게 움직이거나, 조도가 급변해서 특징점을 찾지 못하거나 lidar point cloud가 부족할 때 현재 위치를 추정할 수 없게 될 수 있습니다.
단절 구간: 센서가 데이터가 한동안 들어오지 않아 localization을 진행하지 못하다가 다시 localization을 진행할 경우 relocalization을 해야합니다.
Map data 참조
Map data에서 현재 scan과 맞는 key frame을 찾거나 descriptor를 찾습니다.
Pose 추정
검색된 descriptor나 key frame과의 매칭을 통해 현재 pose를 추정합니다.
재연결
새로운 추정 포즈를 SLAM 알고리즘에 다시 전달해, 정상적인 Tracking과 맵 업데이트를 재개합니다.
Scan context: scan context는 gpu를 사용하지 않고 place recognition을 할 수 있어 매우 자주 활용되는 기법입니다. 주변 사물의 높이를 descriptor로 만들어서 비교하여 현재 위치를 찾습니다.
Feature matching: feature간의 직접적 matching 점수를 통해 place recognition을 하는 경우도 있습니다.
아직까지는 현재 위치를 추정하는 기술이 초기 포즈의 각도나 위치에 따라 정확도 차이가 크기 때문에 이를 해결하려는 노력이 많이 진행되고 있습니다.
지금까지 localization에서 필수적인 relocalization을 알아보았습니다.
localization을 처음 시작할 때도 똑같은 과정을 하긴 하지만 relocalization과는 맞지 않는 것 같아서 설명에는 넣지 않았습니다. 또 한 센서가 들어오지 않을 때 나머지 센서로 매칭하는 알고리즘도 있지만 그것도 뭔가.. Relocalization이라기엔 말이 안맞는 것 같아서 넣지 않았습니다.
감사합니다.