합동회사 코무라소프트
KF101

그림과 손계산으로 이해하는 칼만 필터

1차원 스칼라 버전에 한정하여 그림 → 직관 → 손계산 → 코드 순으로 진행하는 입문 코스입니다. 각 장 중간에 숫자를 손으로 따라가는 소문제를 배치하였고, 채점과 진행 상황 저장은 모두 브라우저 안에서 완결됩니다.

그림 → 직관 → 손계산 → 코드 총 56문제 브라우저 내 채점 localStorage 저장
소요 시간
3~4시간
문제 수
총 56문제
형식
7장 + 소문제 + 시뮬레이터
비용
무료

이 강좌의 특징

각 장 중간에 숫자를 손으로 따라가는 소문제를 배치
예측 분산, 칼만 게인, 갱신 후 추정값을 그 자리에서 직접 계산해 확인합니다. 곳곳에서 손을 움직여야 하므로 대충 훑어 읽기 어려운 구성입니다.
그림 → 손계산 → 시뮬레이터 → 코드 순으로 진행
제5장의 시뮬레이터와 제6장의 최소 구현에서 같은 소재를 단계적으로 확인하므로 식과 동작이 쉽게 연결됩니다.
모든 채점과 저장이 브라우저 내에서 완결
소문제와 종합 연습은 서버 전송 없이 채점하며, 답안과 진척도는 이 브라우저의 localStorage에만 저장됩니다.

이 강좌에서 쓰는 식은 5개뿐

본 강좌에서는 대상이 움직이지 않는다(위치가 변하지 않는다)고 가정하는 정상 상태 모델을 사용합니다. 그래서 예측식이 x̂⁻ = x̂라는 최소 형태가 됩니다.

x̂⁻ = x̂
정상 상태 모델의 예측. 직전 추정값을 그대로 사용합니다.
P⁻ = P + Q
예측 분산의 갱신. 모델의 불확실성만큼 커집니다.
K = P⁻ / (P⁻ + R)
칼만 게인. 예측과 관측 중 어느 쪽을 얼마나 믿을지를 정합니다.
x̂ = x̂⁻ + K(z − x̂⁻)
추정값 갱신. 관측으로 예측을 수정합니다.
P = (1 − K)P⁻
분산 갱신. 관측을 받아들인 만큼 추정의 불확실성이 작아집니다.

기호의 의미: Q는 모델의 불확실성(예: 정지 대상을 가정하는 경우 실제 움직임과 모델 사이의 차이의 분산), R은 관측의 불확실성(예: GPS의 흔들림이 ±5 m라면 R ≈ 25), P는 추정값의 불확실성입니다.

장 구성

학습 요령

  1. 먼저 본문을 읽고, 바로 아래의 이해 체크를 즉시 풉니다
  2. 막히면 힌트를 보기 전에 먼저 식의 의미를 말로 다시 풀어 봅니다
  3. 제5장의 시뮬레이터(동작을 체감)와 제7장의 종합 연습(정착을 확인)은 목적이 다르므로, 반드시 둘 다 진행합니다

시작 전 전제

  • 고등학교 수준의 평균과 분산 감각이면 충분합니다.
  • 행렬은 쓰지 않습니다. 1차원 스칼라 버전에 한정합니다.
  • 외부 라이브러리는 필요 없고, 전부 정적 HTML / CSS / JavaScript입니다.