[ROS] ROS란 대체 무엇일까?

HY K·2024년 8월 7일
0

ROS1

목록 보기
3/34

이번에는 ROS를 설치했으니, 당연한 수순으로 ROS가 무엇인지에 대해서 짧게 공부해보는 시간을 가지도록 하자.

ROS 관련 가장 공신력 있는 레퍼런스인 ROS 위키에서는 ROS를 다음과 같이 소개하고 있다.
https://wiki.ros.org/ROS/Introduction

💡 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 functionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers. ROS is similar in some respects to 'robot frameworks,' such as Player, YARP, Orocos, CARMEN, Orca, MOOS, and Microsoft Robotics Studio.

💡 The ROS runtime "graph" is a peer-to-peer network of processes (potentially distributed across machines) that are loosely coupled using the ROS communication infrastructure. ROS implements several different styles of communication, including synchronous RPC-style communication over services, asynchronous streaming of data over topics, and storage of data on a Parameter Server. These are explained in greater detail in our Conceptual Overview.

💡 ROS is not a realtime framework, though it is possible to integrate ROS with realtime code. The Willow Garage PR2 robot uses a system called pr2_etherCAT, which transports ROS messages in and out of a realtime process. ROS also has seamless integration with the Orocos Real-time Toolkit.

간단하게 요약하면 다음과 같이 정리할 수 있다.

💡 ROS는 로봇 응용 프로그램을 개발할 때 필요한 하드웨어 추상화, 하위디바이스 제어, 다종다양한 기능 구현, 프로세스 간의 메시지 패싱, 패키지 관리, 개발환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구를 제공한다.

즉, ROS는 로봇 응용 프로그램 개발을 위한 운영 체제와 같은 로봇 플랫폼이다. 그러면 ROS가 윈도우나 리눅스와 같은 OS의 일종인지에 대한 의문점이 생긴다. 과연 ROS는 OS의 일종일까?

정답은 그렇지 않다 이다.

ROS의 정확한 정의는 메타 운영체제(Mete-OS) 이다.

💡 메타 운영체제: 어플리케이션과 분산 컴퓨팅 자원 간의 가상화 레이더로 분산 컴퓨팅 자원을 활용하며, 스케쥴링 및 로드, 감시, 에러 처리 등을 실행하는 시스템. 윈도우나 리눅스와 같은 OS의 기능들을 활용해서 위 같은 기능들을 구현한다.

💡 또한 ROS는 추가적으로 다수의 이종 하드웨어 간의 데이터 송수신, 스케쥴링, 에러 처리 등 로봇 응용 소프트웨어에 필요한 필수 기능들을 라이브러리 형태로 제공하고 있다. 이러한 이를 소프트웨어 프레임워크라고도 부르며, 다양한 목적의 응용 패키지를 개발, 관리, 제공하고 있다.

따라서 ROS는 로봇 응용 프로그래밍을 지원하는 강력한 플랫폼이며, 동시에 로봇 생태계를 구성하는 시스템이라고 볼 수 있다.

profile
로봇, 드론, SLAM, 제어 공학 초보

0개의 댓글