작업 시나리오별 소프트웨어 구현기술
📌 개요
- 시나리오 완성 후 → "이 단계를 어떤 소프트웨어 기술로 구현할 것인가"를 매핑할 차례
- 시나리오의 각 단계는 이동·조작·인식·상호작용 중 하나로 분류 → 각각 대응하는 기술 계열 존재
- 시험 출제 포인트: 시나리오 유형별 필요 기술 매칭, 시나리오 전체의 순서를 관리하는 작업 실행 구조 — 유한 상태 기계(FSM)와 행동 트리(Behavior Tree)
📖 핵심 개념
시나리오 단계 → 기술 매핑 (시험 단골)
① 이동(내비게이션) 시나리오 — "픽업대까지 이동한다"
- 지도 작성 (→ 이동로봇 지도 작성) · 위치인식 (→ 이동로봇 위치인식) · SLAM (→ 이동로봇 SLAM)
- 전역 경로계획 (→ 이동로봇 전역 경로계획) + 지역 경로계획·회피 (→ 이동로봇 지역 경로계획, 이동로봇 충돌회피)
② 조작(매니퓰레이션) 시나리오 — "부품을 집어 조립한다"
- 기구학·역기구학 (→ 로봇 기구학 해석, 로봇 역기구학 해석)
- 머니퓰레이터 경로계획·충돌회피 (→ 머니퓰레이터 경로계획, 머니퓰레이터 충돌회피)
- 파지(그리핑) 계획, 힘 제어(끼워 맞춤·연마 등 접촉 작업)
③ 인식 시나리오 — "물품이 실렸는지 확인한다", "사람을 발견한다"
- 물체 인식·검출, 사람 감지·추적 — 인지지능 알고리즘 (→ 인지지능 알고리즘 설계)
- 센서 데이터 처리·융합 (→ 로봇센싱 알고리즘 설계)
④ 상호작용(HRI) 시나리오 — "도착을 알리고 수령을 확인받는다"
- 음성 안내·인식, GUI, 제스처 — HRI 기술 (→ HRI 소프트웨어 설계, HRI 인터페이스)
⑤ 원격 관제·연동 시나리오 — "관제 서버에 상태를 보고한다"
- 서버·클라이언트 통신 (→ 서버 프로그램, 클라이언트 프로그램), 모니터링 (→ 로봇 모니터링 프로그램)
작업 실행 구조 — 시나리오를 소프트웨어로 (핵심)
- 개별 기술이 있어도 "순서대로, 상황 따라" 실행하는 지휘자가 필요
시나리오의 흐름(정상·대안·예외)을 코드로 옮기는 대표 구조 두 가지:
① 유한 상태 기계 (FSM, Finite State Machine)
- 시스템을 상태(State) 들과 전이(Transition, 사건에 의한 상태 변경) 로 모델링 — "대기 → (주문) → 이동 중 → (도착) → 전달 중 → (완료) → 복귀"
- 장점: 직관적, 현재 상태가 명확, 검증 용이 — 시나리오의 상태 다이어그램을 거의 그대로 구현
- 단점: 상태·전이가 많아지면 조합 폭발로 복잡해지고 수정이 어려워진다 (스파게티 전이)
② 행동 트리 (BT, Behavior Tree)
- 행동을 트리 구조로 조합: 시퀀스 노드(자식을 차례로 — 하나라도 실패하면 실패), 셀렉터 노드(성공할 때까지 자식을 차례로 시도 — 폴백/대안), 조건 노드, 행동 노드
- 각 노드는 성공/실패/실행 중을 반환하며 주기적으로 평가(tick)된다
- 장점: 모듈화·재사용 우수(서브트리 재사용), 대안·예외 처리를 셀렉터로 자연스럽게 표현, 대규모에서 FSM보다 유지보수 유리 — 게임 AI에서 유래해 현대 로봇 작업 제어의 주류
- FSM vs BT: 작은 문제엔 FSM이 단순 명쾌, 시나리오가 크고 예외가 많으면 BT가 유리
③ 태스크 플래너(작업 계획기): 목표를 주면 행동 순서를 자동 생성하는 상위 기술 — 작업지능의 영역 (→ 작업지능 소프트웨어 설계)
구현기술 선정 기준
- 실시간성 요구: 회피는 ms급 반응 필요 → 반응층에, 계획은 느려도 됨 → 숙고층에 배치 (→ 제어 구조 3계층)
- 정확도 vs 연산 자원: 고정밀 인식은 연산이 무겁다 — 탑재 컴퓨터 사양과 저울질 (→ 로봇 시스템 최적화)
- 기존 자산 활용: 프레임워크·오픈소스 패키지의 검증된 구현을 우선 검토 (→ 로봇 소프트웨어 프레임워크)
- 안전 요구 수준: 안전 관련 기능은 단순·검증 가능한 기술 선택 (복잡한 학습 모델보다 확실한 센서 기반 정지)
매핑 결과의 문서화
- 시나리오 단계별로 "필요 기능 — 담당 모듈 — 사용 기술 — 성능 요구"를 표로 정리 → 그대로 소프트웨어 기능 명세와 모듈 구성의 초안
- 이 표가 아키텍처 설계(로봇 소프트웨어 아키텍처 모델링)의 입력
📊 다이어그램 · 수식
시나리오 유형별 기술 계열
flowchart TD
SC["작업 시나리오"] --> N["이동
지도·위치인식·경로계획·회피"]
SC --> M["조작
기구학·모션계획·파지·힘제어"]
SC --> P["인식
물체·사람 인식, 센서 융합"]
SC --> H["상호작용
음성·GUI·제스처"]
SC --> T["관제 연동
서버·클라이언트·모니터링"]
N & M & P & H & T --> EX["작업 실행 구조
(FSM / 행동 트리)"]FSM과 행동 트리의 개념 비교
flowchart LR
subgraph FSM["유한 상태 기계"]
S1["대기"] -- 주문 --> S2["이동 중"] -- 도착 --> S3["전달 중"] -- 완료 --> S4["복귀"]
S2 -- 경로 막힘 --> S5["재계획"] --> S2
end
subgraph BT["행동 트리"]
SEL["셀렉터: 하나가 성공할 때까지"] --> SEQ1["시퀀스: 주행→전달"]
SEL --> ALT2["폴백: 재계획 후 재시도"]
SEL --> SAFE["최후: 안전 정지·알림"]
end🎯 핵심 요약 · 암기 포인트
✏️ 예상문제
1. "픽업대까지 이동한다"라는 시나리오 단계의 구현에 필요한 기술로 가장 거리가 먼 것은?
① 위치인식(SLAM) ② 전역·지역 경로계획 ③ 장애물 충돌회피 ④ 역기구학 해석
정답 및 해설
정답: ④ 이동 시나리오는 지도·위치인식·경로계획·회피의 내비게이션 기술 계열이 담당한다. 역기구학은 머니퓰레이터 조작 시나리오의 기술이다.
2. 시스템을 "대기 → 이동 중 → 전달 중 → 복귀"처럼 상태와 사건에 의한 전이로 모델링하는 작업 실행 구조는?
① 행동 트리 ② 유한 상태 기계(FSM) ③ 파이프라인 ④ 블랙보드
정답 및 해설
정답: ② 상태(state)와 전이(transition)의 그물로 동작을 기술하는 것이 FSM이다. 시나리오의 상태 다이어그램을 거의 그대로 코드로 옮길 수 있다.
3. 행동 트리(Behavior Tree)에서 자식 노드들을 차례로 시도하다가 하나라도 성공하면 성공을 반환하는 — 대안(폴백) 표현에 쓰이는 노드는?
① 시퀀스 노드 ② 셀렉터 노드 ③ 조건 노드 ④ 리프 노드
정답 및 해설
정답: ② 셀렉터(폴백) 노드는 "정상 방법 → 실패하면 대안 → 그것도 실패하면 안전 정지"처럼 우선순위 있는 대안 시도를 자연스럽게 표현한다. 시퀀스는 반대로 자식이 모두 성공해야 성공이다.
4. 작업 실행 구조 선택에 대한 설명으로 가장 적절한 것은?
① 상태가 적고 단순한 작업에도 반드시 행동 트리를 써야 한다 ② FSM은 상태·전이가 많아질수록 관리가 쉬워진다 ③ 시나리오가 크고 예외·대안이 많으면 모듈화와 재사용에 유리한 행동 트리가 유리하다 ④ 행동 트리는 예외 처리를 표현할 수 없다
정답 및 해설
정답: ③ 작은 문제엔 FSM이 단순 명쾌하고, 규모가 커지면 FSM은 전이 조합 폭발로 어려워져 서브트리 재사용과 폴백이 자연스러운 행동 트리가 주류가 된다.
5. 시나리오 단계별 구현기술 선정 기준으로 옳지 않은 것은?
① ms급 반응이 필요한 회피 기능은 반응 계층에 배치한다 ② 인식 정확도와 탑재 컴퓨터의 연산 자원을 저울질한다 ③ 검증된 프레임워크·오픈소스 구현의 활용을 검토한다 ④ 안전 정지 기능은 가장 복잡하고 최신의 학습 모델로 구현하는 것이 원칙이다
정답 및 해설
정답: ④ 안전 관련 기능일수록 단순하고 결정적이며 검증 가능한 기술을 쓰는 것이 원칙이다. 동작을 보장하기 어려운 복잡한 학습 모델은 안전의 최후 보루로 부적합하다.
🔗 관련 노트
- 로봇 작업 시나리오 작성 — 매핑의 입력이 되는 시나리오
- 로봇 소프트웨어 아키텍처 모델링 — 매핑 결과가 입력되는 다음 단계
- 로봇 소프트웨어 구조 설계 — 3계층 구조와 기술 배치
- 작업지능 소프트웨어 설계 — 태스크 플래닝의 상세
- 로봇 소프트웨어 프레임워크 — 기존 자산 활용
- _MOC 로봇소프트웨어구조설계