ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used fuctionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers.
참고: http://www.ros.org/wiki/

📍로보틱스 소프트웨어 개발을 전세계 레벨에서 공동 작업 가능하도록 생태계를 구축하는 것!!
엄밀하게 말해서 운영체제는 아님!
운영 체제 (Operating System)
ROS (Robot Operating System)
정확히 정의된 용어는 아니지만, 어플리케이션과 분산 컴퓨팅 자원간의 가상화 레이어로 분산 컴퓨팅 자원을 활용하여, 스케쥴링 및 로드, 감시, 에러 처리 등을 실행하는 시스템
즉, 윈도우/리눅스/안드로이드와 같은 전통적인 운영체제는 아님. 오히려 ROS는 기존의 전통적인 운영체제(리눅스, 윈도우즈, OS-X, 안드로이드)를 이용
기존 운영체제의 프로세스 관리 시스템, 파일 시스템, 유저 인터페이스, 프로그램 유틸(컴파일러, 스레드 모델 등)을 사용하고 있다. 이에 추가적으로 다수의 이기종 하드웨어간의 데이터 송수신, 스케쥴링, 에러 처리 등 로봇 응용 소프트웨어 개발을 위한 필수 기능들을 라이브러리 형태로 제공
로봇 소프트웨어 프레임워크를 기반으로 다양한 목적의 응용 프로그램을 개발, 제공하고 있으며 유저들이 개발한 패키지 또한 유통하는 생태계(echosystem)을 갖추고 있음


스마트폰과 달리 로봇은 하드웨어가 엄청 다양하기 때문에 하나의 OS가 각기 다른 요구사항을 만족할 수 없음!
➡️ 그래서 원하는 하드웨어에 원하는 OS를 설치한뒤, ROS를 추가적으로 설치해서 쓰는 메타운영체제 형태가 로봇 소프트웨어 플랫폼에 유리




메시지 파싱 기능
메시지의 기록 및 재생
메시지 사용으로 인한 다양한 프로그래밍 언어 사용 가능
분산 매개 변수 시스템
로봇에 대한 표준 메시지 정의
로봇 기하학 라이브러리
로봇 기술 언어
- 로봇의 물리적 특성을 설명하는 XML 문서 기술
진단 시스템
센싱/인식
내비게이션
매니퓰레이션
Command-Line Tools
RViz
RQT
Gazebo
자세한 내용은 아래의 6강에서 다룸
https://velog.io/@bbirong/6.-ROS-%EB%8F%84%EA%B5%AC