ROS 핵심 기능
- 노드간 통신을 기반으로 전체 시스템을 구동시킴
하드웨어 제조사하 제공하는 ROS 노드들
ROS 통신
- 토픽 방식 통신
- 일방적이고 지속적인 메세지 전송
- 발행자-구독자 구조
- 일대 다수, 다대 다수 통신도 가능
- 서버 방식 통신
- 요청시, 요청한 데이터 전송
- 서버-클라이언트 구조
- 양방향 통신, 일회성 통신
ROS 배포판
LTS: long trem support
→ 안정화된 버전에 대하여 지속적으로 서포트함을 의미함
Ubuntu LTS
- 18.04 LTS (codename: bionic)
- 20.04 LTS (codename: Focal)
- 22.04 LTS (codename: jammy)
ROS1 LTS
- kinetic (with ubuntu 18.04)
- melodic (with ubuntu 18.04)
- notic (with ubuntu 20.04)
ROS2 LTS
- humble (with ubuntu 22.04)
*ROS 버전별 지원하는 패키지가 달라짐에 유의
https://ubuntu.com/blog/ros-foxy-ros-melodic-eol
우분투 버전에 따른 ROS 버전. ubuntu 20.04를 사용하므로 notic을 설치함.
ROS 기본 용어
- 마스터
- 노드간 통신을 총괄 관리
- ROS Core라 불림
- 노드
- 토픽을 주고받는 통신 주체
- 실행가능한 최소단위의 프로세스
- 하드웨어 장치에 하나씩 또는 소프트웨어 모듈에 하나씩
- 토픽
- 주고받는 메세지
- 예: 센서데이터, 카메라 이미지, 명령
- 발행자 노드
- 토픽(Topic)을 만들어 보내는 노드
- 예: 정보수집센서, 카메라
- 구독자 노드
- 토픽(Topic)을 받는 노드
- 예: 모터제어기, 정보수집 SW모듈
- 패키지
- 하나 이상의 노드와 노트 실행을 위한 정보등을 묶어놓은 것
- 노드, 라이브러리, 데이터, 실행파일(configration) 등을 포함
ROS 기본 명령어
ROS 주요 명령어
ROS에서 제공하는 쓸만한 도구