본문 바로가기

ROS/Introduction

# 1. Introduction Of ROS

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는 최소한의 실행 단위로 프로그램을 나누어 작업한다. 노드는 메시지통신으로 데이터를 주고 받는다. 

(- 구독자 패턴이 적용된건가?? Subscribe 인터페이스가 있고, Listener가 있으니 EventHandling을 가지고 노드간 통신이 이루어 지는 느낌. 아직은 확실치 않다.)

 

※ Subscriber Pattern 

fig 2. 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

2. https://robertchoi.gitbook.io/ros/build