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

이동로봇 지도 작성

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

📌 개요

  • 지도 = 전역 경로계획의 입력이자 위치인식의 기준
  • 이동로봇의 지도 작성(Mapping) = 센서로 관측한 주변 환경을 컴퓨터가 다룰 수 있는 데이터 구조로 표현하는 일 → 어떤 표현을 고르느냐가 메모리·계산량·활용 방법을 결정
  • 시험 출제 포인트: 격자지도(점유 확률, 미지 영역 0.5)·특징지도·위상지도의 비교, 격자 해상도와 메모리의 관계
02

📖 핵심 개념

지도는 왜 필요한가

  • 전역 경로계획: 지도가 있어야 출발→목표의 길을 미리 찾을 수 있다 (→ 이동로봇 전역 경로계획)
  • 위치인식: "센서로 본 모습"과 "지도"를 대조해 내가 어디 있는지 알아낸다 (→ 이동로봇 위치인식)
  • 지도가 없다면? 위치인식과 지도 작성을 동시에 해야 한다 — 그것이 SLAM이다

지도 표현 방법 ① — 격자지도 (Occupancy Grid Map)

  • 공간을 일정 크기의 격자 셀(cell) 로 잘게 나누고, 셀마다 점유 확률(Occupancy Probability) — 그 자리에 장애물이 있을 확률 — 을 저장하는 방식

  • 이동로봇 실무에서 가장 널리 쓰임

  • 1에 가까움 = 점유(장애물), 0에 가까움 = 비점유(빈 공간)

  • 아직 관측하지 못한 미지(Unknown) 영역은 0.5 — "있는지 없는지 모른다"의 확률적 표현 (단골 출제)

  • 장점: 경로계획(A* 등)·충돌 검사에 바로 사용 가능, 임의 형상 표현 가능, 센서 융합이 자연스러움

  • 단점: 메모리 사용량이 크다 — 해상도(셀 크기)를 높일수록 급증

해상도와 메모리 (계산 포인트)

2차원 격자에서 셀 한 변의 길이를 절반으로 줄이면(해상도 2배) 셀 개수는 4배(2^2), 3차원이라면 8배(2^3)가 된다. 같은 100 m × 100 m 공간도 셀 10 cm면 백만 셀, 5 cm면 4백만 셀이다.

  • 셀 값은 관측이 쌓일 때마다 베이즈 규칙으로 갱신 — 확률 곱셈을 덧셈으로 바꿔 주는 로그 오드(log-odds) 표현을 써서 셀마다 값을 더하고 빼는 것만으로 갱신
  • 3차원 환경은 같은 아이디어를 팔진트리(octree)로 구현한 OctoMap이 대표적

지도 표현 방법 ② — 특징지도 (Feature Map)

  • 환경 전체가 아니라 구별되는 특징(랜드마크, Landmark)의 위치만 저장하는 방식

  • 기둥, 코너, 반사판, 시각 특징점 등이 랜드마크가 됨

  • 장점: 데이터가 매우 간결하다 (랜드마크 좌표 목록이 전부), EKF 기반 위치인식·SLAM과 궁합이 좋다

  • 단점: 랜드마크가 없는 곳은 표현하지 못하므로 빈 공간 정보가 없어 경로계획에 바로 쓰기 어렵다

지도 표현 방법 ③ — 위상지도 (Topological Map)

  • 기하학적 좌표 대신 장소(노드)와 연결 관계(간선) 만 담는 그래프 지도

  • "방 A — 복도 — 방 B"처럼 지하철 노선도와 같은 발상

  • 장점: 메모리가 극히 적고, 넓은 환경에서 빠른 경로 탐색(그래프 탐색)이 가능하며, "어느 방으로 가라" 같은 상위 작업 계획과 잘 맞는다

  • 단점: 정밀한 기하 정보(장애물의 정확한 위치·거리)가 없어 정밀 주행·회피에는 부적합

실무에서는 격자지도(정밀 주행) + 위상지도(층·구역 간 계획) 를 섞은 하이브리드 지도도 흔하다.

세 표현의 비교

구분 격자지도 특징지도 위상지도
저장 내용 셀별 점유 확률 랜드마크 좌표 장소 노드 + 연결 간선
메모리 크다 작다 매우 작다
기하 정밀도 높다 (해상도만큼) 랜드마크 위치만 낮다
주 용도 경로계획·충돌 검사 EKF 위치인식/SLAM 대규모·상위 수준 계획

지도 작성 과정 (포즈를 알고 있을 때)

위치를 아는 상태에서의 지도 작성(Mapping with Known Poses)은 다음 반복이다.

  1. 현재 로봇 포즈에서 센서(주로 LiDAR) 관측 획득
  2. 관측을 월드 좌표계로 변환변환행렬이 그대로 쓰인다
  3. 센서 빔이 통과한 셀은 "비점유" 쪽으로, 부딪힌 셀은 "점유" 쪽으로 확률 갱신 (역센서 모델, Inverse Sensor Model)
  4. 로봇이 이동하며 1~3을 반복 → 지도가 점점 채워진다

현실에서는 포즈 자체에 오차가 있으므로(오도메트리 드리프트), 정확한 지도를 만들려면 SLAM이 필요하다.

지도 파일의 형태 (ROS 예)

  • ROS의 map_server는 격자지도를 이미지 파일(PGM) + 메타데이터(YAML) 로 저장
  • YAML에는 해상도(m/셀), 원점 좌표, 점유/비점유 판정 임계값이 들어 있음 — "지도 = 이미지 + 좌표 정보"라는 감각을 잡아 두자
03

📊 다이어그램 · 수식

지도 표현의 분류

DIAGRAM
graph TD
    A["이동로봇 지도 표현"] --> B["격자지도
셀별 점유 확률
(경로계획 표준)"] A --> C["특징지도
랜드마크 좌표 목록
(EKF 계열과 궁합)"] A --> D["위상지도
노드·간선 그래프
(대규모·상위 계획)"] B --> E["3D 확장: OctoMap
(팔진트리)"]

점유 확률의 로그 오드 갱신

확률 p의 로그 오드는

l = \log\frac{p}{1-p}

이며 (p=0.5 \leftrightarrow l=0, 즉 미지 상태), 셀마다 관측이 들어올 때 로그 오드를 덧셈으로 누적한다:

l_t = l_{t-1} + l_{sensor} \qquad (\text{점유 관측이면 } +,\ \text{통과 관측이면 } -)

곱셈(베이즈 갱신)을 덧셈으로 바꿔 계산을 가볍게 만든 것이 핵심이다.

격자 수 계산

한 변 L인 정사각형 영역을 셀 크기 r로 나누면:

\text{셀 수} = \left(\frac{L}{r}\right)^2 \quad \text{(2차원)}

예: 100\,\text{m} \times 100\,\text{m}, 셀 0.05\,\text{m}(100/0.05)^2 = 2000^2 = 4 \times 10^6 셀.

04

🎯 핵심 요약 · 암기 포인트

익힘 0 / 10카드를 눌러 뒤집고, 앞면에서 아는지 표시하세요.
Q · 1
격자지도(Occupancy Grid Map)란?
A
공간을 격자 셀로 나누고 셀마다 장애물이 있을 점유 확률을 저장하는 지도
Q · 2
격자지도에서 아직 관측하지 못한 영역의 점유 확률은?
A
0.5 (점유인지 비점유인지 모르는 상태)
Q · 3
격자지도의 장점과 단점은?
A
경로계획·충돌 검사에 바로 쓸 수 있지만 메모리 사용량이 크다
Q · 4
2차원 격자지도에서 셀 크기를 절반으로 줄이면 셀 수는?
A
4배로 증가 (3차원이면 8배)
Q · 5
특징지도(Feature Map)란?
A
랜드마크(기둥·코너·반사판 등)의 위치만 저장하는 간결한 지도 — EKF 계열과 궁합이 좋다
Q · 6
위상지도(Topological Map)란?
A
장소를 노드, 연결 관계를 간선으로 표현한 그래프 지도 — 메모리가 적고 대규모 환경의 상위 계획에 유리
Q · 7
위상지도의 단점은?
A
정밀한 기하 정보가 없어 정밀 주행·장애물 회피에 부적합하다
Q · 8
역센서 모델(inverse sensor model)에 따른 격자 갱신 규칙은?
A
센서 빔이 통과한 셀은 비점유 쪽으로, 부딪힌 셀은 점유 쪽으로 확률을 갱신
Q · 9
점유 확률 갱신에 로그 오드(log-odds)를 쓰는 이유는?
A
베이즈 갱신의 곱셈을 덧셈으로 바꿔 계산을 단순화하기 위해 (p=0.5 ↔ l=0)
Q · 10
3차원 점유 지도의 대표 자료구조는?
A
OctoMap (팔진트리 기반 점유 격자)
05

✏️ 예상문제

1. 점유 격자지도(Occupancy Grid Map)에서 아직 한 번도 관측되지 않은 영역의 셀 값으로 가장 적절한 것은?

① 0 ② 0.5 ③ 1 ④ −1

정답 및 해설

정답: ② 점유 확률 0은 "확실히 빈 공간", 1은 "확실히 장애물"이므로, 아무 정보가 없는 미지 영역은 중간값 0.5로 둔다. 로그 오드로는 0에 해당한다.

2. 2차원 격자지도의 셀 한 변 길이를 10 cm에서 5 cm로 줄이면 전체 셀 개수는 몇 배가 되는가?

① 2배 ② 4배 ③ 8배 ④ 16배

정답 및 해설

정답: ② 한 변당 셀 수가 2배가 되고 2차원이므로 2^2 = 4배. 3차원 지도라면 2^3 = 8배가 된다. 해상도를 올릴수록 메모리가 급증하는 이유다.

3. 장소를 노드로, 장소 간 연결 관계를 간선으로 표현하는 지도는?

① 격자지도 ② 특징지도 ③ 위상지도 ④ 포인트클라우드 지도

정답 및 해설

정답: ③ 위상지도(topological map)는 지하철 노선도처럼 연결 관계만 담는 그래프 지도다. 메모리가 적고 대규모 환경의 경로 탐색이 빠르지만, 정밀한 기하 정보가 없다.

4. 격자지도 작성 시 역센서 모델(inverse sensor model)의 갱신 규칙으로 옳은 것은?

① 센서 빔이 통과한 셀은 점유 쪽으로 갱신한다 ② 센서 빔이 부딪힌 셀은 비점유 쪽으로 갱신한다 ③ 빔이 통과한 셀은 비점유, 부딪힌 셀은 점유 쪽으로 갱신한다 ④ 모든 셀을 동일하게 0.5로 유지한다

정답 및 해설

정답: ③ 레이저가 지나갔다면 그 경로는 비어 있다는 뜻이고, 반사되어 돌아왔다면 그 끝점에 장애물이 있다는 뜻이다. 이 관측을 로그 오드 덧셈으로 셀에 누적한다.

5. EKF 기반 위치인식·SLAM과 궁합이 좋고, 랜드마크의 좌표 목록만으로 환경을 표현하는 지도는?

① 격자지도 ② 특징지도 ③ 위상지도 ④ 코스트맵

정답 및 해설

정답: ② 특징지도는 상태 벡터에 랜드마크 좌표를 넣어 추정하는 EKF 계열 기법과 자연스럽게 맞는다. 다만 빈 공간 정보가 없어 경로계획에는 격자지도가 따로 필요하다.

06

🔗 관련 노트

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