SLAM의 세 가지 문제점과 해결 방안
SLAM의 의미
SLAM은 동시적 위치 추정 및 지도 작성이라고도 하며, 영역 내에서 장치의 위치를 추적하면서 영역을 매핑하는 프로세스입니다. 모바일 매핑을 가능하게 하면서 이를 통해 이동식 로봇이나 드론, 차량 등을 이용해 넓은 지역을 측정할 수 있어 훨씬 짧은 시간 안에 지도 제작이 가능합니다. SLAM 시스템은 데이터 수집을 단순화하면서도 실내, 실외, 공중 또는 지하의 환경을 더 잘 매핑하고 이해할 수 있는 기회를 열어 주었습니다. 이 데이터를 사용하여 기계는 현재 위치를 최상의 추정치로 계산할 수 있게 되었습니다. 몇 초마다 새로운 위치 정보가 수집되면 피쳐가 정렬되고 견적이 향상됩니다.
SLAM의 문제점과 해결 방안
하지만 이렇게 유용하고 현재도 몇몇 애플리케이션에서 사용되고 있는 기술인 SLAM이지만, 아직은 몇 가지 기술적 문제로 인해 범용적으로 채택하기는 어렵습니다. SLAM의 첫 번째 단점은 국소화 오류가 누적되어 실제 값에서 상당한 편차가 발생한다는 점입니다. SLAM은 오차 한계를 포함한 순차적 이동을 추정합니다. 오류는 시간이 지남에 따라 누적되어 실제 값에서 상당한 편차를 일으킵니다. 또한 지도 데이터가 축소되거나 왜곡되어 후속 검색이 어려워질 수 있습니다. 오류가 누적되면 로봇의 시작점과 끝점이 더 이상 일치하지 않습니다. 이를 루프 폐쇄 문제라고 합니다. 이와 같은 포즈 추정 오류는 피할 수 없습니다. 루프 폐쇄를 감지하고 누적 오류를 수정하거나 취소하는 방법을 결정하는 것이 중요합니다. 이 문제의 대책은 이전에 방문한 장소의 특징을 랜드마크로 기억하고 현지화 오류를 최소화하는 것입니다. 포즈 그래프는 오류를 수정하는 데 도움이 되도록 구성됩니다. 최적화 문제로 오류 최소화를 해결함으로써 보다 정확한 지도 데이터를 생성할 수 있습니다. 비주얼 SLAM에서는 이러한 최적화를 번들 조정이라고 합니다. SLAM의 두 번째 단점은 지역화 오류와 지도 상의 위치가 손실된다는 점입니다. 이미지 및 포인트 클라우드 매핑은 로봇의 이동 특성을 고려하지 않습니다. 경우에 따라 이 접근 방식은 불연속적인 위치 추정치를 생성할 수 있습니다. 예를 들어, 1m/s로 움직이는 로봇이 갑자기 10m 앞으로 뛰어올랐다는 계산 결과가 있을 때, 이러한 종류의 위치 지정 실패는 복구 알고리즘을 사용하거나 모션 모델을 여러 센서와 융합하여 센서 데이터를 기반으로 계산함으로써 방지할 수 있습니다. 모션 모델을 센서 융합과 함께 사용하는 방법에는 여러 가지가 있습니다. 일반적인 방법은 칼만 필터링을 사용하여 위치를 파악하는 것입니다. 대부분의 차동 구동 로봇과 4륜 차량은 일반적으로 비선형 모션 모델을 사용하기 때문에 확장 칼만 필터와 입자 필터가 자주 사용됩니다. 경우에 따라 무향 칼만 필터와 같은 보다 유연한 베이즈 필터도 사용할 수 있습니다. 일반적으로 사용되는 센서로는 IMU, 자세 및 방향 기준 시스템(AHRS), 관성 항법 시스템(INS), 가속도계 센서, 자이로 센서 및 자기 센서와 같은 관성 측정 장치가 있습니다. 차량에 부착된 휠 인코더는 주행 기록계에 자주 사용됩니다. 지역화에 실패했을 때의 복구 대책은 이전에 방문했던 장소의 랜드마크를 키프레임으로 기억하는 것입니다. 랜드마크를 검색할 때 고속으로 스캔할 수 있는 방식으로 형상 추출 프로세스가 적용됩니다. 이미지 기능을 기반으로 하는 일부 방법에는 특징 가방(BoF)과 시각 단어 가방(BoVW)이 있습니다. 최근에는 특징과의 거리를 비교하기 위해 딥 러닝이 사용됩니다. 마지막으로 SLAM의 세 번째 단점은, 이미지 처리나 포인트 클라우드 처리 및 최적화를 위한 계산이 오래 걸린다는 것입니다. 이런 계산은 일반적으로 처리 능력이 제한적인 소형 및 저 에너지 임베디드 마이크로프로세서에서 이루어진다는 것을 알아야 합니다. 정확한 현지화를 위해서는 영상 처리 및 포인트 클라우드 매칭을 고주파수로 실행하는 것이 필수적인데, 거기다가 루프 폐쇄 같은 최적화 계산은 어려운 계산 과정 중 하나입니다. 즉 내장형 마이크로컴퓨터에서 어려운 프로세싱을 어떻게 실행할 것인가 하는 부분을 해결해야 합니다. 이를 해소하기 위한 방법 중 하나는 바로 서로 다른 프로세스를 병렬로 실행하는 것입니다. 일치하는 프로세스의 사전 처리인 피쳐 추출과 같은 프로세스는 병렬화에 상대적으로 적합합니다. 처리에 다중 코어 CPU를 사용하면 단일 명령 다중 데이터(SIMD) 계산 및 임베디드 GPU가 속도를 더욱 향상할 수 있습니다. 또한 포즈 그래프 최적화는 비교적 긴 주기에 걸쳐 수행될 수 있으므로 우선순위를 낮추고 이 프로세스를 정기적으로 수행하면 성능이 향상될 수 있습니다.
댓글