모션 소프트웨어경로계획 소프트웨어 개발로봇 충돌회피
출제기준 좌표3·1·3·2
3과목 · 모션 소프트웨어

이동로봇 충돌회피

경로계획 소프트웨어 개발로봇 충돌회피
# 모션소프트웨어
01

📌 개요

  • 이동로봇은 사람·카트·다른 로봇이 오가는 열린 공간을 달림 → 지도에 없는 장애물을 센서로 감지하고 피하거나 멈추는 능력이 안전의 핵심
  • 지역 경로계획이 "어디로 피할까"라면, 이 노트는 감지 수단, 안전 거리·시간의 정량 계산, 동적 장애물 예측이라는 안전 관점
  • 시험 출제 포인트: 센서별 특성, 충돌 예측 시간(TTC)과 안전 정지거리 계산, 코스트맵 팽창, 속도 장애물 개념
02

📖 핵심 개념

장애물 감지 센서

  • 충돌회피의 시작 = 감지
  • 센서마다 장단점이 달라 여러 센서를 조합(중복 안전) 하는 것이 일반적
센서 방식 특징
LiDAR(라이다) 레이저 반사 시간(ToF) 거리 정확, 넓은 시야각. 유리·거울 등 투명/반사면에 취약
초음파 센서 음파 반사 저렴, 유리도 감지. 분해능 낮고 근거리 위주
뎁스 카메라 스테레오/구조광/ToF 3차원 형상 인식, 낮은 장애물·튀어나온 물체 감지. 조명 영향
범퍼(접촉 스위치) 물리 접촉 최후의 안전 수단 — 닿으면 즉시 정지. 접촉 후에야 감지
  • 산업 현장 AGV/AMR: 안전 인증된 LiDAR(안전 스캐너) 로 로봇 전방에 보호 영역(Protective Field)경고 영역(Warning Field) 을 설정 — 경고 영역 침입 시 감속, 보호 영역 침입 시 비상정지
  • 속도가 빠를수록 영역을 크게 잡음

정적 장애물 vs 동적 장애물

  • 정적 장애물: 움직이지 않는 것(벽, 선반, 세워 둔 팔레트). 지도·코스트맵에 반영하고 전역 계획에서 피한다
  • 동적 장애물: 움직이는 것(사람, 지게차, 다른 로봇). 위치만이 아니라 속도(어디로 가는지)까지 고려해야 하며, 실시간 감지·예측이 필수다

코스트맵과 팽창 — "가까이 가지 않기"의 구현

ROS 내비게이션의 코스트맵(Costmap) 은 격자지도 위에 충돌 위험 비용을 입힌 지도다.

  • 치명(Lethal) 영역: 장애물 셀 자체 — 로봇 중심이 들어가면 확정 충돌

  • 내접원 충돌 영역: 장애물로부터 로봇 내접 반경 이내 — 사실상 충돌

  • 팽창(Inflation) 영역: 그 바깥으로 거리에 따라 지수적으로 감소하는 비용을 부여 — 경로계획기가 자연스럽게 장애물에서 떨어진 길을 선호하게 만든다

  • 센서로 새 장애물이 잡히면 코스트맵이 실시간 갱신 → 지역 계획기(DWA 등)가 갱신된 코스트맵을 보고 회피

  • 감지 → 코스트맵 갱신 → 지역 계획의 회피가 이동로봇 충돌회피의 기본 루프

얼마나 위험한가 ① — 충돌 예측 시간 (TTC)

  • 동적 장애물의 위험도를 정량화하는 가장 간단한 지표 = 충돌 예측 시간(TTC, Time To Collision)
  • 현재의 상대속도가 유지된다고 가정할 때 충돌까지 남은 시간:
TTC = \frac{d}{v_{rel}}
  • (d: 현재 거리, v_{rel}: 접근하는 상대속도)
  • TTC가 임계값보다 작으면 감속·정지·회피 기동을 시작
  • 서로 접근하지 않으면(v_{rel} \le 0) TTC는 무한대, 즉 충돌 위험 없음으로 봄

얼마나 위험한가 ② — 안전 정지거리

  • "이 속도로 달려도 되는가"는 정지거리로 판단
  • 위험을 인지하고 완전히 멈출 때까지 로봇이 나아가는 거리는:
d_{stop} = \underbrace{v \cdot t_{react}}_{\text{반응(공주) 거리}} + \underbrace{\frac{v^2}{2a}}_{\text{제동 거리}}
  • 반응 거리: 감지·판단·명령 전달에 걸리는 반응시간 t_{react} 동안 그대로 진행하는 거리
  • 제동 거리: 감속도 a로 속도 v에서 0까지 줄이는 동안의 거리 — 속도의 제곱에 비례하므로 속도를 절반으로 줄이면 제동 거리는 1/4이 된다

안전 스캐너의 보호 영역 크기를 속도에 따라 바꾸는 이유가 바로 이 식이다: 빠르게 달릴수록 d_{stop}이 길어지므로 더 먼 곳부터 감지해야 한다.

동적 장애물 회피 — 속도 장애물 (Velocity Obstacle)

  • 움직이는 장애물은 "지금 위치"가 아니라 "속도"를 기준으로 피해야 함

  • 속도 장애물(VO, Velocity Obstacle) 은 이 아이디어의 표준 개념

  • 장애물의 속도가 유지된다고 가정할 때, 로봇이 그 속도를 선택하면 언젠가 충돌하게 되는 로봇 속도들의 집합을 속도 공간에 그린 것

  • 로봇은 자신의 속도 공간에서 VO 밖의 속도를 고르면 충돌하지 않는다

  • 여러 로봇이 서로를 피하는 상황으로 확장한 것이 RVO(Reciprocal VO)·ORCA이며, 다중 로봇 군집 주행에 쓰인다

DWA(→ 이동로봇 지역 경로계획)가 "지금 장애물 위치" 기준의 평가라면, VO 계열은 "장애물의 미래 궤적"까지 반영한 회피라는 차이를 기억하자.

충돌회피 대응의 단계

실무 시스템은 위험도에 따라 대응을 계층화한다.

  1. 경로 회피: 여유가 있으면 지역 계획기가 돌아가는 경로 생성
  2. 감속: 경고 영역 침입, TTC 감소 시 속도 스케일 다운
  3. 정지: 보호 영역 침입, TTC 임계 미만 시 정지
  4. 접촉 정지: 범퍼 감지 시 즉시 비상정지 (최후 수단)
03

📊 다이어그램 · 수식

이동로봇 충돌회피 기본 루프

DIAGRAM
flowchart LR
    S["센서
LiDAR·초음파·뎁스카메라"] --> D["장애물 감지·추적
위치 + 속도 추정"] D --> C["코스트맵 갱신
치명 + 팽창 영역"] D --> R["위험도 평가
TTC·안전 영역"] C --> L["지역 경로계획 (DWA 등)
회피 경로·속도 결정"] R -- "위험 높음" --> E["감속 → 정지 → 비상정지"] L --> V["속도 명령 (v, ω)"]

핵심 계산식

충돌 예측 시간:

TTC = \frac{d}{v_{rel}}

안전 정지거리 (반응 거리 + 제동 거리):

d_{stop} = v\,t_{react} + \frac{v^2}{2a}

예: v = 1\,\text{m/s}, t_{react} = 0.5\,\text{s}, a = 0.5\,\text{m/s}^2이면 d_{stop} = 1 \times 0.5 + \dfrac{1^2}{2 \times 0.5} = 0.5 + 1.0 = 1.5\,\text{m}

04

🎯 핵심 요약 · 암기 포인트

익힘 0 / 10카드를 눌러 뒤집고, 앞면에서 아는지 표시하세요.
Q · 1
접촉해야만 장애물을 감지하는 최후의 안전 수단 센서는?
A
범퍼(접촉 스위치) — 감지 즉시 비상정지
Q · 2
안전 LiDAR 스캐너의 두 영역과 대응은?
A
경고 영역(Warning Field) 침입 시 감속, 보호 영역(Protective Field) 침입 시 비상정지
Q · 3
동적 장애물이 정적 장애물과 다른 점은?
A
위치뿐 아니라 속도(이동 방향)까지 고려해 예측 기반으로 회피해야 한다
Q · 4
코스트맵 팽창(inflation) 영역의 역할은?
A
장애물 주변에 거리에 따라 감소하는 비용을 부여해 경로계획기가 장애물에서 떨어진 경로를 선호하게 만든다
Q · 5
충돌 예측 시간(TTC) 계산식은?
A
TTC = 거리 d ÷ 상대속도 v_rel (상대속도가 접근 방향일 때)
Q · 6
안전 정지거리의 두 구성 요소는?
A
반응 거리(v × 반응시간) + 제동 거리(v² / 2a)
Q · 7
제동 거리는 속도와 어떤 관계인가?
A
속도의 제곱에 비례 — 속도를 2배로 하면 제동 거리는 4배
Q · 8
속도 장애물(Velocity Obstacle)이란?
A
장애물 속도가 유지될 때 로봇이 선택하면 충돌하게 되는 로봇 속도들의 집합 — 이 집합 밖의 속도를 고르면 안전
Q · 9
다중 로봇이 서로 회피하도록 VO를 확장한 기법은?
A
RVO(Reciprocal Velocity Obstacle), ORCA
Q · 10
이동로봇 충돌 대응의 단계적 순서는?
A
경로 회피 → 감속 → 정지 → 접촉(범퍼) 비상정지
05

✏️ 예상문제

1. 전방 10 m 거리의 장애물에 로봇이 상대속도 2 m/s로 접근하고 있다. 충돌 예측 시간(TTC)은?

① 2초 ② 5초 ③ 10초 ④ 20초

정답 및 해설

정답: ② TTC = d / v_{rel} = 10 / 2 = 5초. 상대속도가 유지된다는 가정 아래 충돌까지 남은 시간이다.

2. 속도 1 m/s로 주행하는 로봇의 반응시간이 0.5초, 감속도가 0.5 m/s²일 때 안전 정지거리는?

① 1.0 m ② 1.25 m ③ 1.5 m ④ 2.0 m

정답 및 해설

정답: ③ 반응 거리 = 1 \times 0.5 = 0.5 m, 제동 거리 = \dfrac{1^2}{2 \times 0.5} = 1.0 m 합계 0.5 + 1.0 = 1.5 m. 속도가 빨라지면 제동 거리가 제곱으로 늘어나므로 보호 영역도 그만큼 커져야 한다.

3. 속도 장애물(Velocity Obstacle, VO)에 대한 설명으로 옳은 것은?

① 장애물의 현재 위치만을 기준으로 회피 방향을 정한다 ② 선택하면 미래에 충돌하게 되는 로봇 속도의 집합을 속도 공간에 표현한 것이다 ③ 정적 장애물 전용 기법이다 ④ 지도 작성에 사용되는 격자 표현법이다

정답 및 해설

정답: ② VO는 장애물의 속도가 유지된다고 가정하고 "이 속도를 고르면 언젠가 부딪힌다"는 속도들의 집합이다. 로봇은 VO 밖의 속도를 선택해 동적 장애물을 예측적으로 회피한다. 위치 기준 회피(①)와 대비되는 것이 핵심이다.

4. ROS 코스트맵에서 장애물 주변에 팽창(inflation) 영역을 두는 목적으로 옳은 것은?

① 지도 데이터 압축 ② 센서 잡음 필터링 ③ 경로계획기가 장애물로부터 여유를 둔 경로를 선호하도록 비용을 부여 ④ 로봇의 최고 속도 제한

정답 및 해설

정답: ③ 팽창 영역은 장애물에서 멀어질수록 감소하는 비용을 격자에 입혀, 최소 비용 경로를 찾는 계획기가 자연스럽게 장애물과 거리를 둔 길을 고르게 만든다. 로봇 크기 보정(구성공간 팽창)과 안전 여유 확보를 겸한다.

5. 이동로봇의 장애물 감지 센서에 대한 설명으로 옳지 않은 것은?

① LiDAR는 거리 측정이 정확하지만 유리 같은 투명면에 취약하다 ② 초음파 센서는 저렴하고 유리도 감지할 수 있다 ③ 뎁스 카메라는 3차원 형상을 인식해 낮은 장애물 감지에 유리하다 ④ 범퍼는 장애물이 닿기 전에 미리 감지하는 비접촉 센서다

정답 및 해설

정답: ④ 범퍼는 물리적으로 접촉해야 동작하는 접촉식 센서로, 다른 센서가 모두 놓쳤을 때의 최후 안전 수단이다. 접촉 감지 즉시 비상정지시킨다.

06

🔗 관련 노트

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