본문으로 건너뛰기

M15.01 · 오도메트리·로컬라이제이션·매핑·SLAM 구분

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • odometry, localization, mapping, SLAM에서 알려진 입력과 추정할 위치·지도 및 출력을 구분한다.
  • 합성 1D 랜드마크와 이동 관측으로 위치·지도를 계산하고 미지 문제의 전역 모호성을 설명한다.
  • 과업과 지도 상태에 맞는 문제를 선택하고 평가·실패·미상의 근거를 제시한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M09의 구동/센서·odom/map/clock과 M02/M14의 좌표 기초를 연결한다. 랜드마크/상대 관측·전역 기준과 모호성을 본문에서 보충한다. 기본은 합성 표/종이 계산이며 실제 SLAM/localization·ROS/장비를 실행하지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

무엇을 알고 무엇을 추정하는지 먼저 나눈다

로봇이 얼마나 움직였는지, 지도 어디에 있는지, 주변 지도가 어떤지는 관련되지만 다른 질문이다. odometry는 연속 운동 관측을 누적해 상대 이동/궤적을 추정한다. localization은 주어진 기준/지도에서 현재 pose를 추정하는 위치 추정이다. mapping은 센서 관측을 공간에 연결해 환경 지도를 만드는 문제다. SLAM은 Simultaneous Localization and Mapping으로 위치/궤적과 지도를 함께 추정한다.

지도와 위치 중 무엇이 미지수인가: Odometry → Localization → Mapping → SLAM.그림 원본 크기로 보기

그림 M15.01-1. 각 칸은 서로 다른 역할/근거다. 나란히 비교할 항목이며 위아래가 시간 순서를 뜻하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.

문제 정의에서 '알고 있다'는 입력을 고정해 계산한다는 뜻이며 실제로 오차가 전혀 없다는 뜻은 아니다. mapping 설명에서 pose를 입력으로 주는 기본 경우와 pose도 미지인 SLAM을 구별한다. 실제 시스템은 odometry·위치/지도 추정 모듈을 결합할 수 있으므로 네 단어를 서로 배타적인 프로그램 종류라고 외우지 않는다. 어떤 모듈이 어떤 관측/기준을 사용해 무엇을 출력하는지 적는다.

지도는 점/랜드마크, 점유 격자나 여러 frame의 관계 등 다양한 표현이 가능하다. pose는 위치와 방향이고, 센서는 직접 전역 pose를 읽기보다 광선 거리/영상 특징·각속도 등 관측을 제공한다. 데이터 연관은 새 관측이 기존 지도/관측의 어느 물체/표면과 대응하는지 판단하는 과정이다. 같은 모양의 문이나 반복된 복도를 잘못 연결하면 기하 계산이 맞아도 잘못된 위치/지도를 만들 수 있다.

odometry는 이동을 이어 가지만 참 위치는 아니다

바퀴 각도·영상/IMU로 추정한 이동을 이전 상태에 더하면 새 위치/방향이 나온다. 각 단계의 오차/미끄럼·바이어스/보정·시간 정합 문제가 누적되어 drift가 생길 수 있다. 여기서 drift는 기준에 대한 추정의 누적적인 어긋남이다. 연속적이고 매끄러운 odom 궤적이 곧 전역 정확도라는 뜻은 아니다.

M09.04의 odom은 연속 로컬 운동의 기준이고 map은 장기 전역 보정을 담을 수 있는 기준이다. odom과 map을 연결하는 보정은 추정기의 출력이며 map 이름이 참값을 보장하지 않는다. simulator world pose를 odom 대신 주입한 경우와 실제 센서로 이동을 추정한 경우도 기록에서 구별한다. 지도/위치의 입력으로 무엇을 미리 제공했는지 공개해야 결과 범위를 판단할 수 있다.

알려진 지도에서 위치를 계산한다

기초 계산을 위해 1차원 +x 방향만 사용한다. 로봇 방향은 알려져 있고 정적 랜드마크는 로봇 앞의 +x에 있다. x_R은 로봇 위치(m), x_L은 랜드마크 위치(m), 거리 관측은 z=x_L−x_R≥0으로 정의한다. 동일 ID의 랜드마크와 같은 시각/축·오차 없는 거리라는 합성 가정이다. 실제 거리만 있고 방향/대응이 없으면 이렇게 유일하게 풀리지 않을 수 있다.

지도에 x_L=5 m가 알려져 있고 z=3.2 m를 관측하면 x_R=5−3.2=1.8 m다. odometry가 같은 시각의 x_R을 2.0 m로 추정했다면 두 추정 차이는 0.2 m다. 알려진 지도/관측으로 위치를 보정하는 localization의 작은 예다. 같은 축의 단순 병진으로 map pose=1.8/odom pose=2.0을 연결한다면 map→odom 이동은 −0.2 m다.

Nav2 AMCL Jazzy 공식 설명은 알려진 지도와 2D laser로 pose를 추정하는 확률적 localization 모듈이라고 설명한다. 위 뺄셈은 AMCL의 입자/확률 알고리즘을 실행한 것이 아니다. 실제 관측 오차·초기 모호성/가림과 지도 불일치에서는 후보/불확실성·현재 근거를 함께 관리한다.

알려진 위치로 환경을 연결한다

다른 mapping 입력에서 로봇의 알려진 위치가 첫 시각 1 m/다음 시각 2 m이고 같은 정적 랜드마크의 거리가 각각 4/3 m라면 지도 위치는 1+4=5와 2+3=5 m로 일치한다. 서로 다른 센서 관측을 공통 지도에 연결한 예다. pose를 입력으로 제공했기 때문에 위치를 동시에 미지로 풀었다는 SLAM 성과로 쓰지 않는다.

두 번째 거리가 3.3 m라면 지도 후보가 5.3 m로 달라진다. 센서 잡음/동적 물체·pose/시간/대응 오류 등 대안이 있다. 두 점의 평균 5.15 m를 적는 것만으로 원인이 사라지지는 않는다. 관측 모델/불확실성과 대응·기준을 확인하고 어떤 자료를 지도에 넣을지 정한다. 지도는 관측된 영역의 표현이며 가려진 구역을 자동으로 안다는 뜻도 아니다.

SLAM에서는 지도와 궤적이 함께 움직일 수 있다

이번에는 x_R0/x_R1과 x_L이 모두 미지라고 하자. 상대 이동 관측은 x_R1−x_R0=1 m이고 거리 관측은 첫 4 m/다음 3 m다. 관계식은 x_L−x_R0=4, x_L−x_R1=3이다. x_R0=0을 기준으로 정하면 (x_R0,x_R1,x_L)=(0,1,4)가 된다.

하지만 (100,101,104)도 같은 이동/거리 관계를 만족한다. 모든 위치에 같은 상수를 더해도 상대 관측이 같기 때문이다. 이런 전역 기준의 자유도를 gauge라고 부른다. 기준 원점을 정해 상대 지도/궤적을 만들 수 있고 그것 자체가 실패는 아니다. 외부 좌표에서의 절대 위치가 필요하면 추가 기준/정합·불확실성을 확인해야 한다. 2D/3D에서는 전역 회전 등의 자유도도 문제 설정에 따라 남는다.

SLAM은 이동/센서 관계를 결합해 일관된 궤적/지도를 추정한다. 과거 장소를 다시 보았다고 판단하는 loop closure가 전역 일관성의 근거를 줄 수 있지만 대응이 틀리면 지도를 잘못 보정할 수 있다. 이 단위는 고급 최적화를 가정하지 않고 어떤 미지를 연결하는지 이해하는 단계다. 평면 예를 모든 지형/센서·3D 문제로 일반화하지 않는다.

slam_toolbox Jazzy 공식 README는 2D SLAM과 pose graph, 기존 자료를 사용하는 localization 등 서로 다른 mode를 설명한다. 따라서 패키지 이름에 SLAM이 있다고 모든 실행이 미지 지도/위치의 동시 추정인 것은 아니다. 사용한 mode·초기 지도/궤적·센서/보정/clock과 실제 출력 범위를 기록한다. 이 교재 활동은 해당 패키지를 실행하지 않는다.

과업에 맞는 입력과 독립 근거를 선택한다

이미 검증된 지도를 두고 로봇 pose를 찾으려면 localization 문제로 시작할 수 있다. 센서 pose를 알고 환경을 기록하려면 mapping, 환경/궤적을 함께 모르면 SLAM의 전제를 검토한다. odometry는 각각에 이동 입력이나 로컬 제어 기준을 제공할 수 있다. 환경이 바뀌면 기존 지도의 유효성/동적 관측을 확인하고 자동으로 올바르게 갱신될 것이라 가정하지 않는다.

대칭 복도/무특징 벽·가림, 다른 물체를 같은 랜드마크로 연결함, 오래된 TF/시간·센서 외부 보정과 바퀴 미끄럼은 모호성/실패를 만들 수 있다. 현재 표본만으로 구분되지 않으면 한 pose를 참값처럼 발표하지 않고 여러 가능성/미상과 필요한 관측을 남긴다. 정지/다른 시점·시야의 추가 관측이나 별도 기준이 어떤 모호성을 줄이는지 설명한다.

평가에서는 지도의 보기 좋은 모양/토픽 존재와 실제 위치 정확도를 분리한다. frame/시각·전역 정합 기준을 고정하고 독립 위치/거리·재방문/새 조건의 잔차와 실패/분모를 기록한다. 알고 있는 pose/지도를 평가 입력에 넣었다면 그 사실을 공개한다. 기존 4.3 TF와 6.1 Reality Gap을 연결하자. 아래 활동의 완료는 실제 SLAM 지도 생성/실물 위치 추정의 성공과 별도다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

입력은 세 묶음이다. 알려진 지도에서는 x_L=5 m, z=3.2 m, odom 위치 2.0 m가 주어진다. 알려진 pose를 이용하는 경우 로봇 위치는 1 m와 2 m, 대응하는 거리는 4 m와 3 m다. 미지 SLAM에서는 상대 이동 1 m와 거리 관측 4 m, 3 m만 주어진다. 모든 관측은 같은 정적 랜드마크의 ID를 가리키고 방향은 +x로 알려졌다고 가정한다.

  1. 네 문제에서 알려진 입력/추정량과 odom/map·센서 관측/기준의 역할을 표로 나눈다.
  2. localization/mapping 계산과 미지 문제의 두 전역 이동 해를 구하고 가정/불확실성의 범위를 적는다.
  3. 알려진 지도 운용/새 공간·모호한 복도/지도 변경에서 문제 선택·추가 관측/평가/미상 근거를 제안한다.

관찰은 문제/입출력, 계산, 선택/검증으로 나눈다. 막히면 알려진 양을 먼저 표시하고 거리의 두 끝점·방향을 적는다. 실제 ROS/지도 프로그램은 필요하지 않다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

이미 알려진 지도에서 2D laser로 pose를 찾는다. 이것은 어떤 문제인가? odometry/mapping/SLAM의 알려진 입력과 미지도 비교하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

같은 +x/정적 ID 규약에서 알려진 랜드마크 x_L=10 m/거리 6 m면 로봇 위치는 얼마인가? 알려진 로봇 x_R=3 m/거리 7 m의 mapping 결과와, 둘 다 미지일 때 남는 모호성도 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

패키지 이름이 slam_toolbox이고 map 토픽이 있으니 미지 지도/전역 위치를 실제로 정확히 추정했다고 한다. 필요한 mode/입력·평가/실패 근거를 제안하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.