개요

로봇 소프트웨어를 모듈화, 재사용, 확장 가능하게 만드는 미들웨어

핵심 내용

Topic : 노드 간 메시지를 주고받는 통신 채널; 데이터 종류별로 구분 Node : 기능 단위로 나뉜 작은 프로그램; 하나의 노드는 센서 제어, 모터 구동, 인식 등 특정 역할을 수행 Publisher : 특정 topic에 메시지를 보내는 노드 Subscriber : 특정 topic의 메시지를 받는 노드

사용한 이유

  1. 모듈식 설계 : 하드웨어와 알고리즘을 모듈화
  2. 멀티 로봇 지원 : 분산 통신, Qos 제어
  3. 실시간 시스템 : RTOS 통합, 산업용 로봇에 적합
  4. 보안 강화 : DDS를 통한 인증/암호화

ROS1과의 차별점

ROS1ROS2
자체 TCP/UDPDDS (Data Distribution Service) 기반
실시간성 미지원실시간성 지원 (RTOS) 가능
리눅스 중심리눅스, Windows, macos, RTOS
보안 없음DDS 보안 기능 지원
멀티스레드 제한적노드 레벨 멀티스레딩 가능