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