패키지란?
- ROS2에서 소프트웨어 구성의 기본 단위
- 특정 ROS2 프로그램에 포함된 모든 파일, 즉 모든 CPP 파일, Python 파일, 설정 파일, 파라미터 파일을 가지고 있음
- ROS2 프로그램을 패키지로 구성하면 다른 개발자/사용자와 훨씬 쉽게 공유 가능함
- 패키지 유형
- Python Package
- C++ Package
노드란?
- 노드는 ROS2에서 연산을 수행하는 최소 단위의 실행 프로세스
- 전체 로봇 시스템은 많은 노드로 구성됨
- ROS2에서는 단일 launch 파일에 하나 이상의 노드(C++ 또는 Python 프로그램 등)가 포함될 수 있음
- 각 노드는 특정 작업을 담당하며, 여러 노드가 서로 통신하며 복잡한 로봇 시스템을 구성
- 예: 휠 모터 제어용 노드, 레이저 거리 측정기 제어용 노드 등등
- 통신 방식
- Topic: 발생/구독 모델을 사용한 비동기 통신
- Service: 요청/응답 모델을 사용한 동기 통신
- Action: 장기 실행 작업을 위한 비동기 통신
- Parameters: 노드의 구성 값을 저장하고 공유
Lanch 파일이란?
- 여러 ROS2 노드와 그 매개변수를 정의하고 실행하는 스크립트
- 목적
- 복잡한 로봇 시스템의 여러 컴포넌트를 쉽게 시작
- 노드 실행 순서 관리
- 실행 시 매개변수 설정
- 조건부 실행 및 이벤트 처리
- 파일 형식
- Pyrthon (.py)
- XML (.xml)
- YAML (.yaml)