로봇과 자율주행의 눈을 속이는 아웃라이어를 극복하는 방법
자율주행 자동차나 로봇 청소기가 복잡한 환경을 돌아다닐 때, 가장 중요한 작업 중 하나는 바로 자신이 어디에 있는지 정확히 파악하는 위치 추정입니다. 이를 위해 로봇은 카메라나 라이다 센서로 주변 환경을 스캔하고, 이를 바탕으로 이동 경로를 지도에 기록합니다. 이때 사용하는 수학적 도구가 바로 포즈 그래프 최적화(Pose Graph Optimization, PGO)입니다. 하지만 현실 세계는 완벽하지 않습니다. 센서 노이즈가 발생하거나, 잘못된 데이터가 입력되는 경우가 허다합니다. 이를 우리는 아웃라이어(Outlier)라고 부릅니다. 오늘 살펴볼 Robust M-Estimator와 Switchable Constraints는 바로 이 아웃라이어라는 방해꾼으로부터 로봇의 지능을 지켜주는 강력한 방패입니다.
포즈 그래프 최적화와 아웃라이어의 위험성
포즈 그래프 최적화는 로봇이 이동하며 얻은 위치 정보들을 노드(Node)로, 노드 간의 상대적인 이동 관계를 엣지(Edge)로 연결하여 전체 경로를 최적화하는 과정입니다. 비유하자면 수많은 퍼즐 조각을 맞춰 전체 그림을 완성하는 것과 같습니다. 그런데 만약 누군가 퍼즐 조각 하나를 잘못된 위치에 강제로 끼워 넣는다면 어떻게 될까요? 전체 그림은 순식간에 왜곡되고 맙니다.
로봇 공학에서 아웃라이어는 주로 잘못된 루프 클로저(Loop Closure) 탐지에서 발생합니다. 예를 들어, 로봇이 이전에 방문했던 장소를 다시 방문했다고 착각하여 잘못된 위치 정보를 엣지로 연결하는 경우입니다. 이 잘못된 엣지가 최적화 과정에 포함되면 로봇의 전체 지도는 비틀어지거나 완전히 붕괴됩니다. 이를 방지하기 위해 우리는 아웃라이어에 강한 수학적 기법을 도입해야 합니다.
Robust M Estimator가 데이터를 대하는 태그
가장 고전적이면서도 효과적인 방법은 M-Estimator를 활용하는 것입니다. 일반적인 최소 제곱법(Least Squares)은 오차가 커질수록 그 영향력을 제곱으로 반영합니다. 즉, 아웃라이어가 발생하면 오차가 매우 크기 때문에 전체 최적화 결과에 엄청난 악영향을 미칩니다. M-Estimator는 이 오차 반영 비율을 다르게 설정하여 문제를 해결합니다.
M Estimator의 주요 유형
- Huber Loss: 오차가 일정 수준 이하면 제곱으로 계산하고, 그 이상이면 선형으로 계산합니다. 완만한 아웃라이어 처리에 적합합니다.
- Cauchy Loss: 오차가 아주 커지면 반영 비중을 급격히 줄입니다. 강한 아웃라이어에 매우 효과적입니다.
- Tukey Biweight: 일정 임계치를 넘어서는 오차는 아예 영향력을 0으로 만들어 버립니다. 데이터가 매우 불확실할 때 강력한 무기가 됩니다.
이 방법들은 오차가 큰 데이터의 가중치를 자동으로 낮추어 시스템이 아웃라이어를 무시하도록 유도합니다. 하지만 M-Estimator는 아웃라이어가 너무 많거나, 데이터의 신뢰도가 처음부터 낮을 경우에는 한계가 있습니다. 이때 등장하는 것이 바로 스위처블 컨스트레인트입니다.
Switchable Constraints가 제공하는 유연한 선택
스위처블 컨스트레인트(Switchable Constraints)는 마치 회로의 스위치와 같습니다. 각 엣지에 ‘스위치 변수’를 하나씩 달아주는 방식입니다. 이 스위치는 0과 1 사이의 값을 가지며, 최적화 과정에서 이 값이 1에 가까우면 해당 엣지를 신뢰한다는 뜻이고, 0에 가까우면 해당 엣지를 아웃라이어로 간주하여 무시한다는 의미가 됩니다.
스위처블 컨스트레인트의 작동 원리
- 각 엣지에 가중치 변수를 추가합니다.
- 최적화 함수에 이 스위치 변수가 0으로 향하도록 유도하는 페널티 항을 추가합니다.
- 시스템은 전체 경로의 일관성을 유지하면서, 동시에 스위치 변수를 조정하여 어떤 엣지가 가장 큰 모순을 일으키는지 스스로 판단합니다.
- 결과적으로 아웃라이어로 판명된 엣지는 스위치가 0이 되어 최적화 계산에서 자연스럽게 배제됩니다.
이 방법은 M-Estimator보다 훨씬 지능적입니다. 단순히 오차의 크기만 보는 것이 아니라, 전체적인 그래프의 정합성을 보면서 ‘이 정보가 전체 그림에 도움이 되는가?’를 판단하기 때문입니다.
현장에서의 적용 방법과 전문가의 조언
실제 로봇 개발 현장에서 이 두 가지 기법을 적용할 때는 다음과 같은 전략이 필요합니다.
비용 효율적인 구현 전략
로봇의 하드웨어 자원은 한정되어 있습니다. 복잡한 최적화 알고리즘을 매 순간 실행하는 것은 배터리 소모와 연산 지연을 초래합니다.
- 초기 단계에서는 단순한 Huber Loss를 사용하여 가벼운 최적화를 수행합니다.
- 루프 클로저가 의심되거나 지도의 왜곡이 감지되는 구간에서만 Switchable Constraints를 활성화하여 정밀 검사를 진행합니다.
- 이미 아웃라이어로 판명된 엣지는 즉시 그래프에서 삭제하여 다음 계산의 부하를 줄입니다.
흔한 오해 바로잡기
많은 초보 개발자가 “Robust M-Estimator만 쓰면 모든 아웃라이어가 해결된다”고 생각합니다. 하지만 이는 사실이 아닙니다. M-Estimator는 오차가 큰 데이터를 ‘줄이는’ 것이지 ‘삭제’하는 것이 아닙니다. 따라서 아웃라이어가 데이터 세트의 30% 이상을 차지할 정도로 많다면 시스템은 결국 실패하게 됩니다. 반면 스위처블 컨스트레인트는 더 많은 파라미터를 최적화해야 하므로 계산 시간이 늘어납니다. 따라서 상황에 맞는 적절한 혼합 사용이 필수적입니다.
자주 묻는 질문과 답변
질문: M-Estimator와 스위처블 컨스트레인트 중 무엇을 선택해야 할까요?
답변: 간단한 경로 계획이나 센서 노이즈가 적은 환경이라면 M-Estimator로 충분합니다. 하지만 복잡한 도심 환경이나 센서 오류가 잦은 환경이라면 스위처블 컨스트레인트를 추천합니다.
질문: 스위처블 컨스트레인트를 쓰면 계산 속도가 너무 느려지지 않나요?
답변: 맞습니다. 최적화해야 할 변수가 늘어나기 때문입니다. 이를 해결하기 위해 최적화가 필요한 특정 노드 주변에만 스위치 변수를 적용하는 ‘국소적 최적화’ 기법을 사용하세요.
질문: 아웃라이어를 아예 발생하지 않게 할 수는 없나요?
답변: 센서의 한계와 외부 환경의 변화 때문에 100% 방지는 불가능합니다. 따라서 아웃라이어가 발생한다는 전제하에 이를 얼마나 잘 걸러내고 무시할 수 있는지를 설계하는 것이 로봇 공학의 핵심입니다.
로봇의 판단력을 높이는 설계 철학
강건한 포즈 그래프 최적화는 단순히 수학적인 기교가 아닙니다. 이는 로봇이 자신의 감각을 의심하고, 어떤 정보가 진실인지 스스로 판단하게 만드는 지능의 영역입니다. M-Estimator는 데이터의 거친 면을 다듬어 주는 역할을 하며, 스위처블 컨스트레인트는 정보의 진위 여부를 판별하는 판사 역할을 합니다. 이 두 가지를 적절히 조화시킨다면, 당신의 로봇은 어떠한 복잡하고 혼란스러운 환경 속에서도 자신의 위치를 잃지 않고 정확하게 임무를 수행할 수 있을 것입니다. 기술을 구현할 때는 항상 시스템의 성능과 연산 자원 사이의 균형을 고려하며, 단계적으로 알고리즘을 고도화해 나가는 것이 가장 현명한 접근 방식입니다.