머니퓰레이터 충돌회피
📌 개요
- 머니퓰레이터는 팔 전체가 움직임 → 손끝뿐 아니라 팔꿈치·링크 몸통까지 장애물이나 자기 자신과 충돌 가능
- 충돌회피 = 계획된 경로의 안전성 검사(충돌 검사) + 충돌 없는 경로 생성 또는 실시간 회피
- 시험 출제 포인트: 충돌의 종류(자기충돌 포함) / 경계 볼륨의 종류와 계산량 / 넓은 단계·좁은 단계 검사 / 협동로봇의 안전 방식(ISO/TS 15066)
📖 핵심 개념
무엇과 부딪히는가 — 충돌의 세 종류
- 환경 충돌: 작업대, 벽, 치공구 등 주변 장애물과의 충돌
- 자기충돌(Self-collision): 로봇의 링크끼리 부딪히는 것 — 팔을 접다가 팔뚝이 몸통에 닿는 경우. 다관절 로봇에서 반드시 검사해야 한다
- 인간과의 충돌: 협동로봇(Cobot) 환경에서 사람과의 접촉 — 안전 규정의 영역
충돌 검사 ① — 기하 모델의 단순화: 경계 볼륨
- 정밀한 3D 형상(수만 개 삼각형 메시)끼리 직접 교차 검사하면 계산량 감당 불가
- 그래서 물체를 단순한 도형으로 감싸서(경계 볼륨, Bounding Volume) 검사
| 경계 볼륨 | 형태 | 특징 |
|---|---|---|
| 구(Sphere) | 중심+반지름 | 검사 가장 단순·빠름 (중심 거리 < 반지름 합), 빈 공간 많음(보수적) |
| AABB(Axis-Aligned Bounding Box) | 축 정렬 상자 | 검사 간단, 물체가 회전하면 상자를 다시 계산 |
| OBB(Oriented Bounding Box) | 방향 있는 상자 | 물체에 밀착, 검사 비용은 증가 |
| 캡슐(Capsule) | 원기둥+반구 | 가늘고 긴 로봇 링크 모델링에 적합 — 실무 표준 |
일반적으로 단순할수록 검사는 빠르지만 실제 형상과의 틈(여유 공간)이 커서 보수적이고, 밀착할수록 정확하지만 느리다.
충돌 검사 ② — 넓은 단계와 좁은 단계
검사 자체도 두 단계로 나눠 계산을 아낀다.
- 넓은 단계(Broad Phase): 단순한 경계 볼륨으로 "충돌 가능성이 있는 쌍"만 빠르게 골라내고, 명백히 먼 쌍은 걸러낸다
- 좁은 단계(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): 접촉이 일어나도 다치지 않도록 로봇의 힘·압력 자체를 제한 (접촉 감지 시 즉시 정지)
📊 다이어그램 · 수식
충돌 검사 파이프라인
flowchart LR
A["모든 물체 쌍
(링크-링크, 링크-장애물)"] --> B["넓은 단계
경계 볼륨으로 후보 선별"]
B -- "충돌 가능 쌍만" --> C["좁은 단계
정밀 형상 검사
최소 거리·침투 깊이"]
C --> D{"안전 여유 확보?"}
D -- "예" --> E["경로 승인"]
D -- "아니오" --> F["경로 수정
재계획 / 실시간 회피 / 감속·정지"]구 경계 볼륨의 충돌 조건 (가장 단순한 검사)
중심이 c_1, c_2이고 반지름이 r_1, r_2인 두 구가 충돌할 조건:
거리 계산 한 번이면 끝나므로 넓은 단계 검사에 애용된다. 안전 여유 \delta를 두려면 \|c_1 - c_2\| \le r_1 + r_2 + \delta로 검사한다.
🎯 핵심 요약 · 암기 포인트
✏️ 예상문제
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)은 접촉을 전제로 힘·압력을 인체 무해 수준으로 제한하는 방식이다. ③ 속도·분리 감시는 접촉이 일어나기 전에 거리 기반으로 감속·정지하는 방식이라는 점과 구분해야 한다.
🔗 관련 노트
- 머니퓰레이터 경로계획 — 회피의 대상이 되는 경로 생성
- 이동로봇 전역 경로계획 — RRT·PRM 등 샘플링 기반 계획
- 로봇 역기구학 해석 — 여유자유도를 활용한 회피
- 이동로봇 충돌회피 — 이동로봇 쪽의 충돌회피
- _MOC 모션소프트웨어