SLAM 기술이 적용된 AGV 데이터 처리 방식, 장시간 자율적으로 움직인다

트렌드
2026-05-19

AGV의 위치 파악 문제와 SLAM의 필요성


자동화된 물류 센터의 AGV는 스스로 자신의 위치를 정확히 알아야 목표 지점으로 이동할 수 있습니다. GPS는 실내 환경에서 작동하지 않으므로, AGV는 센서로 수집한 주변 정보만을 사용하여 위치를 파악해야 합니다.

초기에는 바퀴의 회전 수를 세어 이동 거리를 계산하는 방식(주행 거리 기반 위치 추정)을 사용했습니다. 하지만 바퀴 미끄러짐, 불균등한 가속, 바닥의 불규칙성 때문에 오차가 계속 누적됩니다. 몇 시간이 지나면 실제 위치와 계산된 위치의 차이가 수 미터에 달할 수 있습니다.

SLAM(동시 위치 파악과 지도 작성)은 로봇이 주변을 관찰하면서 동시에 자신의 위치를 파악하고 지도를 만드는 기술입니다. 로봇이 같은 장소를 다시 방문할 때 "이 모양은 전에 봤다"고 인식하면서 누적된 오차를 보정할 수 있습니다. 이것이 AGV가 장시간 자율적으로 움직일 수 있게 하는 핵심 기술입니다.

SLAM의 기본 원리와 두 가지 핵심 문제

SLAM은 실제로는 두 가지 밀접하게 연결된 문제의 동시 해결입니다.

위치 추정 문제는 "현재 내가 어디에 있는가?"라는 질문입니다. AGV가 센서로 주변을 관찰했을 때, 그 정보가 지도의 어느 위치와 일치하는가를 찾아야 합니다. 예를 들어 "오른쪽에 벽이 있고 앞에 기둥이 있다"는 관찰이 지도의 어느 부분과 맞는가를 파악합니다.

지도 작성 문제는 "내 주변에 무엇이 있는가?"라는 질문입니다. AGV가 여행하면서 벽, 기둥, 물품 배치 같은 환경 정보를 수집하여 지도를 만들어야 합니다. 처음에는 지도가 없으므로 첫 번째 관찰부터 시작하여 점진적으로 지도를 구축합니다.

이 두 문제의 딜레마는 "정확한 위치가 없으면 정확한 지도를 만들 수 없고, 정확한 지도가 없으면 위치를 정확히 파악할 수 없다"는 것입니다. SLAM은 두 가지를 동시에 반복적으로 개선하면서 수렴시킵니다.

센서 데이터 수집과 특징점 추출



SLAM 시스템은 센서로부터 얻은 원시 데이터를 의미 있는 특징으로 변환하는 것부터 시작합니다.

LiDAR는 레이저로 주변 거리를 측정하여 포인트 클라우드를 생성합니다. 한 번의 스캔에 수백 개에서 수천 개의 거리 데이터가 포함됩니다. 이 방대한 데이터를 모두 처리하면 계산량이 너무 많아져 실시간 처리가 어려워집니다. 따라서 점 클라우드에서 특징점(코너, 모서리 같이 눈에 띄는 부분)을 추출하여 수십 개에서 수백 개 정도로 압축합니다.

카메라 영상도 마찬가지입니다. 고해상도 이미지 전체를 저장하면 방대한 양의 데이터가 됩니다. 대신 특징점 검출 알고리즘(SIFT, ORB 같은 방법)을 사용하여 영상에서 특징점을 찾고특징 주변의 작은 영역 정보만 저장합니다.

특징점의 선택이 SLAM의 성공을 좌우합니다. 조명이 바뀌거나 물품이 약간 이동해도 특징점(예: 기둥의 모서리)은 남아있기 때문에 강인한 인식이 가능합니다.

스캔 매칭과 상대 이동 계산

AGV가 이동하면서 새로운 센서 데이터(새로운 스캔)를 얻을 때마다 이전 스캔과 비교하여 로봇이 얼마나 이동했는가를 파악합니다. 이를 스캔 매칭이라 부릅니다.

ICP(Iterative Closest Point) 알고리즘은 두 점 클라우드 간의 가장 좋은 정렬 방식을 찾습니다. 방법은 직관적입니다. 첫 번째 스캔의 각 점에 대해 두 번째 스캔에서 가장 가까운 점을 찾고, 이 대응 관계로부터 로봇의 이동(회전과 평행이동)을 계산합니다. 계산된 이동을 적용한 후 다시 가까운 점들을 찾고 이동을 재계산하는 식으로 반복하면서 정렬 오차를 줄입니다.

특징점 매칭은 특징점들의 설명자(주변 이웃의 특성을 수치로 나타낸 정보)를 비교하여 서로 다른 스캔에서 같은 특징점을 찾습니다. 일단 대응되는 특징점들을 찾으면 ICP와 유사한 방식으로 로봇의 이동을 계산합니다.

그래프 기반 SLAM 구조



▲ 위치 그래프의 구성과 루프 폐쇄 감지

SLAM 시스템은 로봇의 모든 이전 위치들을 노드(마디)로 표현합니다. 예를 들어 로봇이 10번 스캔했다면 10개의 노드가 존재합니다. 이 노드들을 간선(연결)으로 연결하는데, 간선에는 "노드 A에서 노드 B로 이동할 때 전진 0.5미터, 왼쪽으로 10도 회전했다"는 정보(상대 이동)를 저장합니다. 이렇게 형성된 노드와 간선의 집합이 위치 그래프입니다. SLAM의 핵심은 루프 폐쇄(Loop Closure) 감지입니다. 로봇이 같은 장소를 다시 방문할 때 그것을 감지하는 것입니다. 예를 들어 로봇이 1시간 후 출발점 근처로 다시 돌아왔을 때, "이 센서 데이터는 출발점에서 본 데이터와 유사하다"는 것을 인식합니다. 이를 루프 폐쇄라 부르고, 이 정보를 그래프에 추가하면 누적된 위치 오차를 한 번에 보정할 수 있습니다.

▲ 그래프 최적화와 전체 위치 조정

루프 폐쇄가 감지되면 최적화 알고리즘이 전체 그래프의 모든 노드들의 위치를 미세 조정합니다. 목표는 모든 간선의 오차를 최소화하는 것입니다. 예를 들어 "A에서 B로의 상대 이동"이 A의 위치와 B의 위치로부터 계산되는 값과 일치하도록 조정합니다. 루프 폐쇄로 얻은 새로운 제약 조건이 추가되면, 전체 그래프가 일관성 있게 재조정됩니다. 이 과정을 통해 초기의 누적된 오차가 큰 폭으로 감소합니다.

지도의 표현 방식과 선택

SLAM에서 생성되는 지도는 여러 방식으로 표현될 수 있으며, 각각 다른 용도와 효율성을 가집니다.

포인트 클라우드 지도는 3차원 점들의 집합으로 환경을 표현합니다. 모든 센서 데이터를 축적하면 매우 상세하고 풍부한 정보를 가진 지도가 됩니다. 그러나 저장 용량이 크고 처리가 느리다는 단점이 있습니다.

격자 지도는 실내 환경을 정사각형 칸(그리드)들로 나누고, 각 칸을 "통행 가능", "장애물", "미탐사" 같은 상태로 표시합니다. 이는 로봇의 경로 계획에 매우 효과적이고, 저장 공간도 포인트 클라우드보다 훨씬 적습니다.

위상 지도는 공간을 "지점"과 "경로"로 단순화합니다. 예를 들어 "구역 A에서 출발하여 복도를 통해 구역 B에 도달할 수 있다" 식으로 표현합니다. 이는 고수준의 경로 계획에는 효과적이지만 세밀한 장애물 회피에는 부족합니다.

멀티 센서 데이터 통합과 신뢰도 평가



현대의 AGV는 LiDAR, 카메라, IMU, 휠 엔코더 같은 여러 센서를 탑재하고, 각각의 강점을 활용하는 통합 SLAM을 구현합니다.

LiDAR 기반 SLAM은 거리 측정의 높은 정확도 때문에 실내 산업 환경에 가장 널리 사용됩니다. 특히 빠른 처리 속도와 견고성이 장점입니다. 다만 특정 재질(투명한 유리, 검은색 표면)에서는 신호 반사가 약해 측정이 어려울 수 있습니다.

시각 기반 SLAM은 카메라로부터의 특징점 매칭을 기반으로 하며, 색상 정보와 텍스처를 활용하여 LiDAR만으로는 구분하기 어려운 물체들을 구분할 수 있습니다. 그러나 조명 변화에 민감하다는 단점이 있습니다.

IMU는 회전 움직임을 매우 정확하게 감지하여 로봇의 방향 추정에 특히 유용합니다. 카메라나 LiDAR만으로는 회전을 파악하기 어려운 상황(예: 칙칙한 환경)에서 IMU가 핵심적인 역할을 합니다.

휠 엔코더는 바퀴의 회전 수를 세어 이동 거리를 계산하는데, 단기적으로는 매우 정확하지만 누적 오차가 크다는 특징이 있어 다른 센서들과의 융합이 필수적입니다.

실시간 처리와 계산 효율성



SLAM은 강력하지만 계산 집약적인 작업입니다. 모든 스캔 데이터를 처리하고 그래프를 최적화하려면 상당한 프로세싱 파워가 필요합니다.

스캔 다운샘플링은 포인트 클라우드의 점 개수를 줄여서 처리 속도를 높이는 기법입니다. 예를 들어 LiDAR가 초당 수천 개의 점을 생성하지만, 의미 있는 정보는 훨씬 적으므로 인접한 점들을 합치거나 신뢰도가 낮은 점들을 제거하면 정확도 손실을 최소화하면서 처리 속도는 크게 향상됩니다.

계층적 최적화는 중요한 부분은 정교하게, 덜 중요한 부분은 빠르게 처리합니다. 예를 들어 로봇의 현재 위치 주변은 세밀하게 최적화하지만, 오래 전 위치는 대략적으로만 조정함으로써 전체 계산량을 줄입니다.

인크리멘탈 최적화는 모든 데이터를 다시 처리하는 대신 새로운 데이터만 추가로 처리합니다. 이는 실시간 SLAM에 매우 중요하며, 임베디드 프로세서의 제한된 성능에서도 시스템이 작동할 수 있게 합니다.

이전글
이전글
다음글
다음글
목록보기