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

머니퓰레이터 충돌회피

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

📌 개요

  • 머니퓰레이터는 팔 전체가 움직임 → 손끝뿐 아니라 팔꿈치·링크 몸통까지 장애물이나 자기 자신과 충돌 가능
  • 충돌회피 = 계획된 경로의 안전성 검사(충돌 검사) + 충돌 없는 경로 생성 또는 실시간 회피
  • 시험 출제 포인트: 충돌의 종류(자기충돌 포함) / 경계 볼륨의 종류와 계산량 / 넓은 단계·좁은 단계 검사 / 협동로봇의 안전 방식(ISO/TS 15066)
02

📖 핵심 개념

무엇과 부딪히는가 — 충돌의 세 종류

  • 환경 충돌: 작업대, 벽, 치공구 등 주변 장애물과의 충돌
  • 자기충돌(Self-collision): 로봇의 링크끼리 부딪히는 것 — 팔을 접다가 팔뚝이 몸통에 닿는 경우. 다관절 로봇에서 반드시 검사해야 한다
  • 인간과의 충돌: 협동로봇(Cobot) 환경에서 사람과의 접촉 — 안전 규정의 영역

충돌 검사 ① — 기하 모델의 단순화: 경계 볼륨

  • 정밀한 3D 형상(수만 개 삼각형 메시)끼리 직접 교차 검사하면 계산량 감당 불가
  • 그래서 물체를 단순한 도형으로 감싸서(경계 볼륨, Bounding Volume) 검사
경계 볼륨 형태 특징
구(Sphere) 중심+반지름 검사 가장 단순·빠름 (중심 거리 < 반지름 합), 빈 공간 많음(보수적)
AABB(Axis-Aligned Bounding Box) 축 정렬 상자 검사 간단, 물체가 회전하면 상자를 다시 계산
OBB(Oriented Bounding Box) 방향 있는 상자 물체에 밀착, 검사 비용은 증가
캡슐(Capsule) 원기둥+반구 가늘고 긴 로봇 링크 모델링에 적합 — 실무 표준

일반적으로 단순할수록 검사는 빠르지만 실제 형상과의 틈(여유 공간)이 커서 보수적이고, 밀착할수록 정확하지만 느리다.

충돌 검사 ② — 넓은 단계와 좁은 단계

검사 자체도 두 단계로 나눠 계산을 아낀다.

  1. 넓은 단계(Broad Phase): 단순한 경계 볼륨으로 "충돌 가능성이 있는 쌍"만 빠르게 골라내고, 명백히 먼 쌍은 걸러낸다
  2. 좁은 단계(Narrow Phase): 살아남은 후보 쌍에 대해서만 정밀한 형상으로 실제 충돌 여부·침투 깊이·최소 거리를 계산한다

대부분의 쌍은 넓은 단계에서 걸러지므로 전체 계산량이 크게 줄어든다.

경로 수준의 충돌회피 — 구성공간에서의 계획

머니퓰레이터의 충돌 없는 경로 생성은 구성공간(조인트 공간)에서 이루어진다.

  • 구성공간의 각 점 = 로봇의 자세 하나. 충돌이 나는 자세들의 집합이 C-space 장애물
  • 6~7자유도 로봇의 구성공간은 6~7차원이라 격자 탐색은 불가능 → 샘플링 기반 기법(RRT, PRM) 이 표준 (→ 이동로봇 전역 경로계획)
  • 샘플링된 자세와 자세 사이 이동 구간마다 충돌 검사기를 호출해 안전한 간선만 연결한다
  • 경로가 다 만들어지면 경유 자세 사이를 짧게 쪼개 다시 검사한다 — 양 끝이 안전해도 중간에 스칠 수 있기 때문

또한 검사 시 실제 형상보다 안전 여유(Safety Margin) 만큼 부풀려 검사해, 모델 오차·제어 오차를 흡수한다.

실시간(온라인) 충돌회피

계획해 둔 경로 밖에서 장애물이 움직이면 실시간 대응이 필요하다.

  • 포텐셜 필드 기반 반발: 장애물 근처 링크에 가상의 척력을 걸어 경로를 실시간으로 밀어낸다 (→ 이동로봇 지역 경로계획의 포텐셜 필드와 같은 원리)
  • 여유자유도 활용: 7축 로봇이라면 말단 작업을 유지한 채 팔꿈치만 움직여 회피할 수 있다 — 여유자유도의 대표 활용처
  • 속도 스케일링: 장애물이 가까워질수록 로봇 전체 속도를 줄이고, 임계 거리 이내면 정지

협동로봇의 안전 — 사람과의 충돌 관리

  • 협동로봇(Collaborative Robot)은 펜스 없이 사람 곁에서 일함 → 충돌을 "피하거나, 부딪혀도 다치지 않게" 관리해야 함

  • ISO/TS 15066(협동로봇 안전 기술사양)이 정의하는 협동 운전의 대표 방식:

  • 안전 정격 감시 정지(Safety-rated Monitored Stop): 사람이 협동 공간에 들어오면 로봇이 감시 상태로 정지

  • 핸드 가이딩(Hand Guiding): 작업자가 로봇을 직접 손으로 잡고 움직여 교시

  • 속도·분리 감시(Speed and Separation Monitoring): 사람과의 거리를 센서로 계속 재서, 가까울수록 감속하고 최소 분리 거리에서 정지

  • 동력·힘 제한(Power and Force Limiting): 접촉이 일어나도 다치지 않도록 로봇의 힘·압력 자체를 제한 (접촉 감지 시 즉시 정지)

03

📊 다이어그램 · 수식

충돌 검사 파이프라인

DIAGRAM
flowchart LR
    A["모든 물체 쌍
(링크-링크, 링크-장애물)"] --> B["넓은 단계
경계 볼륨으로 후보 선별"] B -- "충돌 가능 쌍만" --> C["좁은 단계
정밀 형상 검사
최소 거리·침투 깊이"] C --> D{"안전 여유 확보?"} D -- "예" --> E["경로 승인"] D -- "아니오" --> F["경로 수정
재계획 / 실시간 회피 / 감속·정지"]

구 경계 볼륨의 충돌 조건 (가장 단순한 검사)

중심이 c_1, c_2이고 반지름이 r_1, r_2인 두 구가 충돌할 조건:

\| c_1 - c_2 \| \le r_1 + r_2

거리 계산 한 번이면 끝나므로 넓은 단계 검사에 애용된다. 안전 여유 \delta를 두려면 \|c_1 - c_2\| \le r_1 + r_2 + \delta로 검사한다.

04

🎯 핵심 요약 · 암기 포인트

익힘 0 / 10카드를 눌러 뒤집고, 앞면에서 아는지 표시하세요.
Q · 1
자기충돌(self-collision)이란?
A
로봇의 링크끼리 서로 부딪히는 것 — 다관절 머니퓰레이터에서 환경 충돌과 별도로 반드시 검사해야 한다
Q · 2
경계 볼륨(Bounding Volume)을 쓰는 이유는?
A
정밀한 3D 형상 대신 단순한 도형으로 감싸 충돌 검사 계산량을 줄이기 위해
Q · 3
경계 볼륨 중 충돌 검사가 가장 단순한 것은?
A
구(Sphere) — 중심 간 거리가 반지름의 합 이하인지만 확인
Q · 4
가늘고 긴 로봇 링크의 모델링에 적합한 경계 볼륨은?
A
캡슐(Capsule, 원기둥+양끝 반구)
Q · 5
넓은 단계(broad phase) 검사의 목적은?
A
단순한 경계 볼륨으로 충돌 가능성 있는 쌍만 빠르게 골라내 정밀 검사 대상을 줄이는 것
Q · 6
머니퓰레이터 충돌회피 경로계획에 샘플링 기반 기법(RRT 등)을 쓰는 이유는?
A
구성공간이 6~7차원 고차원이라 격자 기반 탐색이 불가능하기 때문
Q · 7
안전 여유(safety margin)를 두는 이유는?
A
기하 모델 오차와 제어 오차를 흡수해 아슬아슬한 경로를 방지하기 위해
Q · 8
여유자유도 로봇의 실시간 충돌회피 방식은?
A
말단 작업 포즈를 유지한 채 남는 자유도(팔꿈치)만 움직여 장애물을 피한다
Q · 9
ISO/TS 15066의 협동 운전 방식 4가지는?
A
안전 정격 감시 정지, 핸드 가이딩, 속도·분리 감시, 동력·힘 제한
Q · 10
속도·분리 감시(Speed and Separation Monitoring)란?
A
사람과의 거리를 실시간 측정해 가까울수록 감속하고 최소 분리 거리 이내면 정지하는 방식
05

✏️ 예상문제

1. 경계 볼륨(bounding volume) 중 두 물체의 충돌 검사가 가장 단순하고 빠른 것은?

① 구(Sphere) ② OBB(Oriented Bounding Box) ③ 볼록 껍질(Convex Hull) ④ 삼각형 메시(Triangle Mesh)

정답 및 해설

정답: ① 구는 "중심 간 거리 ≤ 반지름의 합" 한 번의 거리 계산으로 검사가 끝난다. ②→③→④ 순으로 형상에 밀착해 정확해지지만 계산량이 늘어난다.

2. 충돌 검사를 넓은 단계(broad phase)와 좁은 단계(narrow phase)로 나누는 이유로 옳은 것은?

① 좁은 단계에서 충돌 가능성이 없는 쌍을 걸러내기 위해 ② 넓은 단계에서 대부분의 쌍을 빠르게 걸러내 정밀 검사 횟수를 줄이기 위해 ③ 두 단계가 서로 다른 로봇을 검사하기 위해 ④ 넓은 단계에서 침투 깊이를 정밀하게 계산하기 위해

정답 및 해설

정답: ② 넓은 단계는 단순 경계 볼륨으로 후보를 선별하고(걸러내기), 좁은 단계가 남은 후보만 정밀 검사한다. ①과 ④는 두 단계의 역할을 서로 바꿔 서술했다.

3. 6자유도 머니퓰레이터의 충돌 없는 경로 생성에 RRT·PRM 같은 샘플링 기반 기법이 주로 사용되는 이유는?

① 구성공간이 고차원이어서 격자 기반 탐색이 사실상 불가능하기 때문 ② 최단 경로가 항상 보장되기 때문 ③ 충돌 검사가 필요 없기 때문 ④ 지도가 필요 없기 때문

정답 및 해설

정답: ① 6차원 구성공간을 격자로 나누면 셀 수가 지수적으로 폭발한다(차원의 저주). 샘플링 기법은 무작위 표본으로 공간을 탐사해 이 문제를 피한다. 샘플·간선마다 충돌 검사는 여전히 필요하므로 ③은 틀리다.

4. 로봇의 링크끼리 서로 부딪히는 충돌을 가리키는 용어는?

① 환경 충돌 ② 자기충돌(self-collision) ③ 특이점 충돌 ④ 동적 충돌

정답 및 해설

정답: ② 팔을 접을 때 팔뚝이 몸통에 닿는 것처럼 로봇 자신의 링크 간 충돌을 자기충돌이라 하며, 다관절 로봇의 충돌 검사에서 환경 충돌과 함께 반드시 포함해야 한다.

5. ISO/TS 15066이 정의하는 협동로봇 운전 방식 중, 접촉이 발생하더라도 사람이 다치지 않도록 로봇의 힘과 압력 자체를 제한하는 방식은?

① 안전 정격 감시 정지 ② 핸드 가이딩 ③ 속도·분리 감시 ④ 동력·힘 제한

정답 및 해설

정답: ④ 동력·힘 제한(Power and Force Limiting)은 접촉을 전제로 힘·압력을 인체 무해 수준으로 제한하는 방식이다. ③ 속도·분리 감시는 접촉이 일어나기 전에 거리 기반으로 감속·정지하는 방식이라는 점과 구분해야 한다.

06

🔗 관련 노트

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