모션 소프트웨어이동지능 소프트웨어 개발로봇 지도 작성 및 위치인식
출제기준 좌표3·2·1·2
3과목 · 모션 소프트웨어

이동로봇 위치인식

이동지능 소프트웨어 개발로봇 지도 작성 및 위치인식
# 모션소프트웨어
01

📌 개요

  • 경로를 아무리 잘 계획해도 "지금 내가 지도의 어디에 있는가"를 모르면 따라갈 수 없음
  • 위치인식(Localization) = 지도와 센서 관측을 대조해 로봇의 포즈 (x, y, \theta)를 추정하는 기술 → 자율주행의 출발점
  • 시험 반복 출제: 오도메트리의 누적 오차, 위치인식 문제의 세 종류(추적·전역·납치), 칼만 필터와 파티클 필터(MCL)의 비교
02

📖 핵심 개념

위치인식 문제의 세 종류

같은 "내 위치 찾기"라도 난이도가 다른 세 문제로 구분한다.

  • 위치 추적(Position Tracking, 지역 위치인식): 초기 위치를 아는 상태에서 움직이는 동안 위치를 계속 갱신. 가장 쉬움
  • 전역 위치인식(Global Localization): 초기 위치를 전혀 모르는 상태에서 지도 전체 중 내가 어딘지 찾아내기. 후보가 여러 곳일 수 있음
  • 납치 로봇 문제(Kidnapped Robot Problem): 로봇이 (사람이 들어 옮기는 등) 자기도 모르게 순간이동한 상황을 스스로 알아채고 재인식하기. 가장 어려움 — "내 추정이 틀렸을 수도 있다"는 의심 능력이 필요하다

오도메트리와 추측항법 — 그리고 누적 오차

  • 오도메트리(Odometry) = 바퀴 엔코더로 잰 바퀴 회전량을 적분해 이동량을 추정하는 방법

  • 추측항법(Dead Reckoning) = 이런 식으로 내부 센서만으로 위치를 이어 붙이는 항법

  • 장점: 센서가 저렴하고 갱신이 빠르며 짧은 구간에서는 꽤 정확하다

  • 치명적 단점: 오차가 누적된다(Drift) — 바퀴 미끄러짐, 바퀴 지름 오차, 요철 등이 작은 오차를 만들고, 적분 과정에서 한 번 생긴 오차는 사라지지 않고 계속 쌓인다

  • 그래서 오도메트리는 "짧은 시간의 이동량 예측"으로만 쓰고, 외부 관측(LiDAR·카메라·랜드마크)으로 주기적으로 보정해야 함

  • 이 "예측 + 보정" 구조가 확률적 위치인식의 뼈대

확률적 위치인식의 뼈대 — 베이즈 필터

로봇 위치를 하나의 점이 아니라 확률 분포(믿음, Belief) 로 관리하고, 두 단계를 반복한다.

  1. 예측(Prediction): 모션 모델 — "바퀴가 이만큼 돌았으니 아마 여기쯤 있을 것" (오도메트리 사용, 불확실성 증가)
  2. 갱신(Correction/Update): 관측 모델 — "센서로 보니 벽이 이렇게 보인다. 지도와 대조하면 이 위치가 더 그럴듯하다" (불확실성 감소)

이 구조를 구현하는 대표적인 두 필터가 칼만 필터와 파티클 필터다.

구현 ① — 칼만 필터 (KF / EKF)

칼만 필터(Kalman Filter) 는 믿음을 가우시안(정규분포) 하나 — 평균(추정치)과 공분산(불확실성) — 로 표현하고 예측·갱신을 수식으로 최적 수행한다.

  • 원형 칼만 필터는 선형 시스템 전용 → 로봇 운동은 비선형(삼각함수)이므로, 현재 추정점 주변에서 선형화하여 적용한 확장 칼만 필터(EKF, Extended Kalman Filter) 를 쓴다
  • 장점: 계산이 가볍고 정밀하다 (연속 추적에 강함)
  • 한계: 분포가 단봉(unimodal) — 봉우리가 하나뿐이라 "후보가 여러 곳"인 전역 위치인식을 표현하지 못한다. 초기 위치를 아는 위치 추적에 적합

구현 ② — 파티클 필터 / 몬테카를로 위치인식 (MCL)

  • 파티클 필터(Particle Filter) 는 믿음을 수백~수천 개의 파티클(입자 = 위치 가설) 로 표현
  • 이를 위치인식에 적용한 것이 몬테카를로 위치인식(MCL, Monte Carlo Localization) — ROS의 AMCL이 대표 구현

동작 사이클:

  1. 예측: 각 파티클을 오도메트리만큼 이동 (+잡음)
  2. 가중치 계산: 각 파티클 위치에서 "지도가 이렇게 보여야 하는데" vs 실제 센서 관측의 일치도를 가중치로 부여
  3. 리샘플링(Resampling): 가중치가 높은 파티클은 여러 개로 복제되고 낮은 파티클은 사라진다 → 파티클 무리가 점점 실제 위치로 모인다
  • 장점: 다봉(multimodal) 분포 표현 가능 → 전역 위치인식 가능. 무작위 파티클을 계속 조금씩 뿌리면 납치 로봇 문제에도 대응. 비선형·비가우시안에 강함
  • 단점: 파티클 수만큼 계산량이 늘고, 정밀도가 파티클 수에 좌우된다
구분 EKF 파티클 필터(MCL)
믿음의 표현 가우시안 1개 (평균+공분산) 파티클 다수
분포 형태 단봉만 다봉 가능
전역 위치인식·납치 대응 어려움 가능
계산량 적다 파티클 수에 비례

관측 보정의 재료 — 스캔 매칭과 랜드마크

  • 스캔 매칭(Scan Matching): 현재 LiDAR 스캔을 지도(또는 직전 스캔)와 가장 잘 겹치는 위치·방향으로 정합해 포즈를 보정. ICP(Iterative Closest Point)가 대표 알고리즘
  • 랜드마크 관측: 반사판·마커·자연 특징 등 위치를 아는 랜드마크와의 거리·방위를 이용해 보정
  • 센서 융합: 엔코더 + IMU(자이로)로 예측을 개선하고, LiDAR·카메라로 보정하는 다중 센서 구성이 실무 표준
03

📊 다이어그램 · 수식

예측-갱신 사이클

DIAGRAM
flowchart LR
    P["예측 (모션 모델)
오도메트리로 이동량 반영
불확실성 증가"] --> U["갱신 (관측 모델)
센서 관측 vs 지도 대조
불확실성 감소"] U --> P O["엔코더·IMU"] --> P S["LiDAR·카메라·랜드마크"] --> U

차동 구동 로봇의 오도메트리 갱신

선속도 v, 각속도 \omega로 짧은 시간 \Delta t 동안 이동하면:

\begin{aligned} x_{t+1} &= x_t + v\,\Delta t \cos\theta_t \\ y_{t+1} &= y_t + v\,\Delta t \sin\theta_t \\ \theta_{t+1} &= \theta_t + \omega\,\Delta t \end{aligned}

좌우 바퀴 속도 v_R, v_L, 바퀴 간격 L인 차동 구동에서는:

v = \frac{v_R + v_L}{2}, \qquad \omega = \frac{v_R - v_L}{L}

이 식을 반복 적용(적분)하므로, 매 단계의 작은 측정 오차가 누적된다.

베이즈 필터의 개념 구조

\underbrace{bel(x_t)}_{\text{현재 믿음}} = \eta \cdot \underbrace{p(z_t \mid x_t)}_{\text{관측 모델(갱신)}} \cdot \int \underbrace{p(x_t \mid u_t, x_{t-1})}_{\text{모션 모델(예측)}} \, bel(x_{t-1}) \, dx_{t-1}

(수식 암기보다 "예측으로 퍼뜨리고, 관측으로 좁힌다"는 구조를 이해하는 것이 중요하다.)

04

🎯 핵심 요약 · 암기 포인트

익힘 0 / 10카드를 눌러 뒤집고, 앞면에서 아는지 표시하세요.
Q · 1
위치인식 문제의 세 종류는?
A
위치 추적(초기 위치 앎), 전역 위치인식(초기 위치 모름), 납치 로봇 문제(이동당한 것을 자각·재인식)
Q · 2
오도메트리(Odometry)란?
A
바퀴 엔코더의 회전량을 적분해 로봇의 이동량·위치를 추정하는 방법
Q · 3
오도메트리의 치명적 단점은?
A
바퀴 미끄러짐 등의 오차가 적분 과정에서 계속 누적된다 (드리프트)
Q · 4
확률적 위치인식이 반복하는 두 단계는?
A
예측(모션 모델, 불확실성 증가) → 갱신(관측 모델, 불확실성 감소)
Q · 5
칼만 필터는 믿음(belief)을 어떻게 표현하는가?
A
가우시안 분포 하나 — 평균(추정치)과 공분산(불확실성)
Q · 6
EKF(확장 칼만 필터)를 쓰는 이유는?
A
로봇 운동 모델이 비선형이므로 현재 추정점 주변에서 선형화해 칼만 필터를 적용하기 위해
Q · 7
칼만 필터 계열이 전역 위치인식에 부적합한 이유는?
A
가우시안은 단봉(봉우리 하나) 분포라 여러 위치 후보를 동시에 표현할 수 없다
Q · 8
몬테카를로 위치인식(MCL)의 원리는?
A
위치 가설인 파티클 다수를 뿌리고, 예측 → 관측 일치도로 가중치 부여 → 리샘플링을 반복해 실제 위치로 수렴시킨다
Q · 9
MCL이 납치 로봇 문제에 대응하는 방법은?
A
무작위 파티클을 계속 소량 추가해 전혀 다른 위치도 후보로 살려 둔다
Q · 10
스캔 매칭(Scan Matching)이란?
A
현재 LiDAR 스캔을 지도와 가장 잘 겹치도록 정합해 포즈를 보정하는 것 (대표 알고리즘: ICP)
05

✏️ 예상문제

1. 바퀴 엔코더 기반 오도메트리에 대한 설명으로 옳지 않은 것은?

① 바퀴 회전량을 적분하여 이동량을 추정한다 ② 짧은 구간에서는 비교적 정확하다 ③ 시간이 지나면 오차가 자동으로 상쇄되어 사라진다 ④ 바퀴 미끄러짐은 오차의 주요 원인이다

정답 및 해설

정답: ③ 오도메트리의 오차는 적분 과정에서 계속 누적되며 저절로 사라지지 않는다. 그래서 LiDAR·카메라 등 외부 관측으로 주기적인 보정이 반드시 필요하다.

2. 로봇이 작동 중 사람에 의해 다른 곳으로 옮겨졌을 때, 이를 스스로 알아채고 위치를 다시 찾아야 하는 문제는?

① 위치 추적 문제 ② 전역 위치인식 문제 ③ 납치 로봇 문제 ④ 경로계획 문제

정답 및 해설

정답: ③ 납치 로봇 문제(kidnapped robot problem)는 자신의 추정이 완전히 틀렸을 가능성을 감지하고 회복해야 하므로 위치인식 문제 중 가장 어렵다. 초기 위치만 모르는 것은 ② 전역 위치인식이다.

3. 확장 칼만 필터(EKF) 기반 위치인식과 비교한 몬테카를로 위치인식(MCL)의 특징으로 옳은 것은?

① 믿음을 가우시안 분포 하나로 표현한다 ② 다봉(multimodal) 분포를 표현할 수 있어 전역 위치인식이 가능하다 ③ 파티클 수와 무관하게 계산량이 일정하다 ④ 선형 시스템에만 적용할 수 있다

정답 및 해설

정답: ② MCL은 파티클들로 임의 형태의 분포를 표현하므로 여러 위치 후보를 동시에 유지할 수 있다. ①은 칼만 필터의 특징이고, 계산량은 파티클 수에 비례하며(③), 비선형에도 강하다(④).

4. 파티클 필터의 리샘플링(resampling) 단계에서 일어나는 일로 옳은 것은?

① 모든 파티클이 동일한 가중치를 얻는다 ② 관측과 잘 일치하는 파티클은 복제되고, 일치하지 않는 파티클은 제거된다 ③ 파티클이 지도 전체에 균일하게 다시 뿌려진다 ④ 오도메트리 정보가 삭제된다

정답 및 해설

정답: ② 리샘플링은 가중치(관측 일치도)에 비례해 파티클을 다시 뽑는 과정이다. 좋은 가설은 여러 개로 복제되고 나쁜 가설은 도태되어, 파티클 무리가 실제 위치 주변으로 수렴한다.

5. 차동 구동 로봇의 좌우 바퀴 속도가 v_R = 1.2 m/s, v_L = 0.8 m/s이고 바퀴 간격이 L = 0.4 m일 때, 로봇의 선속도 v와 각속도 \omega는?

v = 1.0 m/s, \omega = 1.0 rad/s ② v = 2.0 m/s, \omega = 0.5 rad/s ③ v = 1.0 m/s, \omega = 0.5 rad/s ④ v = 0.4 m/s, \omega = 1.0 rad/s

정답 및 해설

정답: ① v = (v_R + v_L)/2 = (1.2 + 0.8)/2 = 1.0 m/s \omega = (v_R - v_L)/L = (1.2 - 0.8)/0.4 = 1.0 rad/s 오른쪽 바퀴가 더 빠르므로 로봇은 왼쪽으로 회전한다.

06

🔗 관련 노트

로봇소프트웨어개발기사 필기 · 학습 교재출제기준 2025.1.1 – 2027.12.31