ROS2(Robot Operating System)
개요
로봇 소프트웨어를 모듈화, 재사용, 확장 가능하게 만드는 미들웨어
핵심 내용
Topic : 노드 간 메시지를 주고받는 통신 채널; 데이터 종류별로 구분 Node : 기능 단위로 나뉜 작은 프로그램; 하나의 노드는 센서 제어, 모터 구동, 인식 등 특정 역할을 수행 Publisher : 특정 topic에 메시지를 보내는 노드 Subscriber : 특정 topic의 메시지를 받는 노드
사용한 이유
- 모듈식 설계 : 하드웨어와 알고리즘을 모듈화
- 멀티 로봇 지원 : 분산 통신, Qos 제어
- 실시간 시스템 : RTOS 통합, 산업용 로봇에 적합
- 보안 강화 : DDS를 통한 인증/암호화
ROS1과의 차별점
| ROS1 | ROS2 |
|---|---|
| 자체 TCP/UDP | DDS (Data Distribution Service) 기반 |
| 실시간성 미지원 | 실시간성 지원 (RTOS) 가능 |
| 리눅스 중심 | 리눅스, Windows, macos, RTOS |
| 보안 없음 | DDS 보안 기능 지원 |
| 멀티스레드 제한적 | 노드 레벨 멀티스레딩 가능 |