1. ROS란 무엇인지?
- Robot Operating System
- For building robot applications, Which contain software libraries and tools , also It's a framework.
- MiddleWare
- 노드간의 데이터통신 인터페이스를 정의함
- 로봇의 하드웨어는 XML 기술 문서를 통해 정의 가능함 ( 이게 URDF랑 관련이 있는건가?)
2. ROS 내에서 알아야하는 용어
- 패키지: ROS 소프트웨어의 기본단위. 패키지는 노드, 라이브러리, 환경 설정 파일들을 통합하는 빌드단위.
- 패키지 매니페스트: 패키지의 작성자, 라이선스, 의존성(Dependancy), 설정등을 포함하는 정보. → 안드로이드 그레이들 빌드시 필요한 매니페스트랑 같은 개념이네.
- 메타패키지: 특수한 목적을 위한 패키지 그룹 (ex: 네비게이션 스택)
- 메시지: 한 ROS 프로세서에서 다른 ROS 프로세서로 정보를 전달하는 한 형태
- 서비스: 프로세스간 요청/응답 상호 작용
- 노드 (★): 최소 단위의 실행 가능한 프로세서를 지칭하는 말. 실행 가능한 하나의 프로그램이라고 생각하면 된다.
ros는 최소한의 실행 단위로 프로그램을 나누어 작업한다. 노드는 메시지통신으로 데이터를 주고 받는다.

※ Subscriber Pattern

▶ Reference
1. https://docs.ros.org/en/galactic/
ROS 2 Documentation — ROS 2 Documentation: Galactic documentation
ROS 2 Documentation The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics proj
docs.ros.org