오늘 끝나면

SLAM

  • SLAM의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 SLAM이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

내가 어디 있고 지도는 어떻게 생겼나 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

Physical AI · 16

어디 있고
어디 있나

지도도 없고 내 위치도 모른다. 둘 다 처음부터 만들어야 한다.
라이다와 카메라로 벽을 찍어 지도를 그리고 동시에 내 자리를 추정한다.
돌수록 오차가 쌓이는데, 아까 본 곳에 다시 오면 맞춰서 편다. 이게 SLAM이다.

P.01Physical AI · 16

SLAM, 위치추정과 지도작성을 동시에

처음 가는 건물에 로봇을 떨군다고 해 보자. 지도도 없고 GPS도 안 잡힌다.

풀어야 할 게 두 개다.
하나는 위치추정(localization), 이 방 안 어디에 내가 있나다.
하나는 지도작성(mapping), 이 방은 어떻게 생겼나다.

근데 둘이 서로 물고 있다. 내 위치를 알아야 벽을 제자리에 그리고, 지도가 있어야 내 위치를 가늠한다.
어느 하나가 공짜로 주어지지 않는다. 알이 먼저냐 닭이 먼저냐 문제다.

SLAM은 이 둘을 따로가 아니라 한꺼번에 푸는 기법이다. Simultaneous Localization And Mapping.
이동하면서 매 순간 “내 위치 추정”과 “지도 갱신”을 같이 돌린다. 그래서 동시(simultaneous)다.

닭이 먼저냐 알이 먼저냐, 둘을 같이 푼다
두 문제가 서로 물려 있다
위치추정

내가 어디 있나

지도가 있어야 가늠한다

지도작성

여긴 어떻게 생겼나

내 위치를 알아야 그린다

서로 의존, 닭이냐 알이냐
SLAM

둘을 한꺼번에 (Simultaneous)

P.02Physical AI · 16

라이다·카메라로 특징점을 추적한다

위치를 알려면 기준이 필요하다. SLAM은 주변에서 다시 알아볼 만한 점을 기준으로 삼는다.

센서는 보통 둘이다.
라이다(LiDAR)는 레이저를 쏴 벽까지 거리를 직접 잰다. 정확한 점구름(point cloud)을 뱉는다.
카메라는 영상에서 모서리나 무늬 같은 특징점(feature)을 뽑는다. 싸고 정보가 풍부하다.

핵심은 추적이다. 한 프레임의 특징점을 다음 프레임에서 다시 찾아 짝짓는다.
같은 모서리가 화면에서 왼쪽으로 밀렸으면, 로봇이 오른쪽으로 움직인 것이다.
이렇게 특징점이 어떻게 움직였나로 내 이동을 거꾸로 계산한다. 라이다는 점구름 정합으로, 카메라는 비주얼 오도메트리로 한다.

그 특징점들을 좌표에 차곡차곡 쌓은 게 곧 지도다.
위치추정과 지도작성이 같은 특징점 위에서 동시에 굴러가는 것이다.

모서리·기둥 같은 눈에 띄는 점을 잡아 따라간다
특징점 추적, 같은 점을 다음 프레임에서 다시 찾는다
로봇은 오른쪽으로
이전 프레임 특징점다음 프레임, 왼쪽으로 밀림

점이 왼쪽으로 밀린 양으로 로봇이 얼마나 오른쪽으로 갔나를 역산한다.

P.03Physical AI · 16

돌리며 지도를 그려 보기

로봇이 방 둘레를 한 바퀴 돌며 라이다 사거리 안의 벽을 점으로 찍는다. 점선은 진짜 경로, 파란 선은 로봇이 스스로 믿는 추정 경로다.

드리프트를 키우면 바퀴가 미끄러진다고 치고 매 스텝 작은 오차를 누적한다.
추정(파랑)이 진짜(회색)에서 점점 벌어지고, 그 위에 찍힌 벽 점들도 같이 휜다. 위치가 틀리면 지도도 틀린다.

한 바퀴 다 돌면 출발점으로 돌아온다. 같은 벽을 다시 보는 순간, 처음 본 자리와 지금 본 자리를 맞붙여 그동안 쌓인 오차를 펴서 맞춘다.

로봇을 주행시켜 벽을 찍고 · 드리프트를 보고 · 루프로 보정
SLAM 데모 · 돌리며 지도 그리기
진짜 경로추정 경로벽 점(지도)
바퀴 미끄럼, 누적오차(드리프트) 세기5
0 = 안 미끄러짐12 = 많이 휨
진행

0%

둘레 따라 한 바퀴 도는 중

누적오차

213px

출발점이 어긋난 거리 = 누적오차.

추정(파랑)이 진짜(회색)에서 벌어질수록 벽 점도 따라 휜다. 위치와 지도는 한 몸이다.

P.04Physical AI · 16

누적오차와 루프 클로저

이동을 거리와 각도로 더해 위치를 잡는 걸 오도메트리(odometry)라 한다. 근데 매번 미세하게 틀린다.

한 스텝의 오차는 작다. 근데 계속 더하면 쌓인다.
이게 드리프트(drift)다. 바퀴 미끄럼과 센서 오차가 누적돼 추정이 한쪽으로 서서히 휜다.
오래 돌수록 진짜 위치에서 멀어지고, 지도도 같이 비틀린다.

해결의 열쇠는 “전에 본 곳을 다시 알아보기”다.
출발점에 돌아왔는데 지도상으론 어긋나 있으면, 그 어긋난 거리가 그동안 쌓인 누적오차다.
이 재방문 인식을 루프 감지(loop detection)라 한다.

어긋남을 잡았으면 되돌린다. “여기와 저기는 같은 자리”라는 제약을 걸고 전 경로에 오차를 분산해 편다.
이게 루프 클로저(loop closure)다. 한 점의 일치로 누적된 휨을 한 번에 보정한다. SLAM이 길게 돌고도 정확한 비결이다.

조금씩 휜 경로가 출발점에서 다시 만나 펴 맞춰진다
누적오차에서 루프 클로저로
어긋남 = 누적오차출발점

루프 클로저는 “여기와 출발점은 같은 자리”라는 제약을 걸고 벌어진 거리를 전 경로에 나눠 편다.

한 점의 일치가 그동안 쌓인 휨을 한 번에 잡는다.

P.05Physical AI · 16

자율주행과 청소로봇이 사는 법

SLAM은 논문 속 얘기가 아니다. 지금 집과 도로에서 돌고 있다.

로봇청소기는 라이다로 방 지도를 그리며 어디를 닦았고 어디가 남았나를 안다.
그래서 같은 데를 또 안 닦고 빠진 데 없이 훑는다. 지도 없이 무작정 돌던 옛 모델과 갈리는 지점이다.

자율주행차는 미리 만든 고정밀 지도(HD map) 위에 라이다와 카메라 SLAM으로 차선 단위까지 자기 위치를 맞춘다.
드론과 AR 헤드셋, 창고 로봇도 같은 원리로 공간을 이해한다.

SLAM은 “내가 어디 있나”와 “여긴 어떻게 생겼나”를 동시에 푸는 일이다. 이 지도와 위치가 잡혀야 어디로 갈지 정하는 경로 계획이 가능해진다.

Q. SLAM이 동시에 하는 두 가지는?자기 위치 추정(localization)지도 작성(mapping)이다.
둘은 서로 물려 있다. 위치를 알아야 벽을 제자리에 그리고, 지도가 있어야 위치를 가늠한다.
그래서 따로 못 풀고 한꺼번에(simultaneous) 풀어야 한다. 그게 이름의 S다.
오래 돌면 쌓이는 누적오차는 전에 본 곳을 다시 알아보는 루프 클로저로 편다.
둘 다 SLAM으로 자기 위치를 알고 길을 만든다
SLAM이 도는 현장
로봇청소기라이다 SLAM방 지도 그리며 닦은 곳·남은 곳 구분
자율주행차라이다·카메라HD맵 위에 차선 단위로 자기 위치 맞춤
AR 헤드셋비주얼 SLAM방을 인식해 가상 물체를 제자리에 고정
창고 로봇실내 자율선반 사이 위치를 알고 물건까지 길 잡음

공통점은 자기 위치를 알고, 동시에 공간 지도를 만든다는 것이다.

3줄 요약

  1. 1내가 어디 있고 지도는 어떻게 생겼나
  2. 2SLAM은 하드웨어 → 제어·비전 → 로보틱스·RL → LLM 연동 → 자율주행·프로젝트 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

SLAM

내가 어디 있고 지도는 어떻게 생겼나

센서

빛·거리·온도 같은 물리 신호를 숫자로 바꾸는 부품

액추에이터

전기 신호를 움직임으로 바꾸는 부품(모터 등)