- ROS (Robot Operating System 2)
- 정의: 로봇 애플리케이션 개발을 위한 오픈소스 메타 운영체제(Middleware)
- 로봇 시스템에서의 역할:
- 하드웨어 추상화(Hardware Abstraction): 서로 다른 제조사의 센서와 모터를 표준화된 인터페이스로 제어
- 분산 컴퓨팅 구조: 여러 개의 프로그램을 독립된 프로세스(Node)로 실행하여 복잡성 해결
- 강력한 생태계: SLAM, 내비게이션, 매니퓰레이션 등 전 세계 개발자가 검증한 라이브러리 즉시 활용 가능
- 산업적 가치: 개발 기간 단축 및 '행동형 AI' 구현을 위한 표준 데이터 파이프라인 제공
- ROS2의 핵심 아키텍처: DDS (Data Distribution Service)
- DDS란?: 산업 표준 실시간 데이터 분산 서비스로, ROS2의 통신 기반 아키텍처
- 핵심 장점:
- 탈중앙화 (No Master): ROS1과 달리 중앙 서버가 없어 특정 지점의 결함이 전체 시스템 마비로 이어지지 않음 (Reliability)
- QoS (Quality of Service) 설정: 네트워크 환경에 따라 데이터 전송의 우선순위, 유실 시 재전송 여부 등을 세밀하게 제어
- 실시간성 보장: 엄격한 시간 제약이 필요한 산업 현장에서 데이터 지연 최소화
- 시스템의 최소 단위: 노드(Node)
- 개념: 특정 기능을 수행하는 개별 실행 프로세스
- 특징:
- 로봇 시스템은 수십 개의 노드가 유기적으로 연결된 집합체
- 예: Lidar Node (데이터 수집) → Slam Node (지도 생성) → Nav Node (경로 계획)
- 장점: 특정 노드에 오류가 발생해도 다른 노드는 정상 작동하며, 유지보수 및 디버깅이 용이함
- Topic (발행/구독 모델)
- 구조: Publisher(발행자)가 특정 Topic으로 데이터를 보내면, Subscriber(구독자)가 이를 수신
- 메커니즘: 비동기식(Asynchronous) 단방향 통신
- 용도: 연속적이고 주기적인 데이터 스트리밍
- 예: 센서 데이터(거리, 영상), 로봇 상태 정보(배터리 잔량, 현재 좌표)
- 핵심: 수신자가 데이터를 받았는지 확인하지 않고 계속 던지는 '방송' 형태
- Service (요청/응답 모델)
- 구조: Service Client가 요청을 보내면 Service Server가 처리 후 응답을 반환
- 메커니즘: 동기식(Synchronous) 양방향 통신 (응답이 올 때까지 대기)
- 용도: 일회성 명령 및 상태 조회
- 예: 로봇 조명 On/Off, 시스템 파라미터 값 변경, 특정 시점의 센서 값 요청
- 핵심: 명령이 성공적으로 수행되었는지 즉각적인 피드백이 필요한 경우 사용
- Action (임무 수행 모델)
- 구조: Goal(목표), Feedback(중간 보고), Result(최종 결과)의 3단계 구조
- 메커니즘: 비동기식 양방향 통신 (장시간 소요되는 작업에 최적화)
- 주요 기능:
- Feedback: 작업 진행률(예: "목적지까지 70% 이동함")을 실시간으로 공유
- Cancel: 작업 도중 위험 감지 시 명령 취소(Preempt) 가능
- 용도: * 로봇의 물리적 이동, 물건 집기, 복잡한 AI 시나리오 실행
- 핵심: **'행동형 AI'**가 로봇에게 내리는 복합적인 명령을 관리하는 가장 중요한 수단
통신 방식 비교표
| 구분 | Topic | Service | Action |
| 통신 방식 | 비동기 (1:N) | 동기 (1:1) | 비동기 (1:1) |
| 데이터 흐름 | 단방향 연속 스트리밍 | 양방향 (요청-응답) | 양방향 (목표-피드백-결과) |
| 피드백 | 없음 | 결과만 응답 | 중간 과정 및 최종 결과 |
| 주요 사례 | 센서 데이터 전송 | 설정 변경, 단순 조회 | 로봇 주행, 팔 제어 |