ROS

ROS (Robot OS) 소개

dpswlsldj 2021. 3. 8. 12:12
728x90

ROS는 Robot을 위해 개발된 Linux 기반의 OS(Operation System) 입니다.

 

Stanford 대학의 학생들로부터 시작되었으며 Willow Garage사를 거쳐 현재는 OSRF/Open Robotics에서 소스를 관리하고 있습니다.

 

ROS는 로봇을 위한 오픈 소스 메타 운영 시스템입니다. 하드웨어 추상화, 저수준 장치 제어, 일반적으로 사용되는 기능 구현, 프로세스 간 메시지 전달 및 패키지 관리를 포함하여 운영 체제에서 기대할 수있는 서비스를 제공합니다. 또한 여러 컴퓨터에서 코드를 얻고, 빌드하고, 작성하고, 실행하기위한 도구와 라이브러리를 제공합니다. ROS는 Player, YARP, Orocos, CARMEN, Orca, MOOS 및 Microsoft Robotics Studio와 같은 '로봇 프레임 워크'와 일부 측면에서 유사합니다. ROS 런타임 "그래프"는 다음을 사용하여 느슨하게 결합 된 프로세스의 피어-투-피어 네트워크 (잠재적으로 컴퓨터에 분산 됨)입니다.

http://wiki.ros.org/ROS/Introduction

 

각 Node를 기반으로 Node 간 통신을 하는 것이 기본 컨셉이며, 이 Node 사이에는 message가 오가게 됩니다. 이 특정 message를 수/발신하기 위해 Publish/Subscribe 모델을 사용합니다.

 

하나의 Node 또는 여러개를 모아둔 것을 Package라고 합니다. Node 간의 통신은 하나의 Package 내에서 이루어질 수도 있고, 다른 Package의 Node와의 통신을 할 수도 있습니다.

 

또한, 다른 OS 상에 존재하는 ROS Node와도 통신을 할 수 있습니다. 이러한 특성을 ROS 측에서는 Meta OS라고 정의를 하였습니다.

 

사용하는 언어에는 크게 Python과 C++이 있고, rviz, gazebo 등의 시뮬레이터를 지원합니다.

 

 

https://docs.ros.org/en/foxy/Tutorials/Understanding-ROS2-Nodes.html

 

ROS를 거쳐 현재는 ROS2 가 release 되고 있으며, ROS2의 각 버전들은 아래와 같습니다.

 

Ubuntu와 동일하게 LTS 버전들이 존재하지만 아직 그렇게 길게 지원받지는 못하고 있습니다.

 

최신의 LTS 버전인 F (Foxy Fitzroy) 버전은 2023년 5월까지만 공식 지원됩니다.

 

https://en.wikipedia.org/wiki/Robot_Operating_System

 

 

ROS 개발 시 도움이 될만한 사이트들입니다.

 

ROS Wiki

  - wiki.ros.org/ko/ROS/Tutorials

 

ROS Foxy document

  - docs.ros.org/en/foxy/

 

로보티즈 유튜브

  - www.youtube.com/c/ROBOTISOpenSourceTeam

  - 표윤석 박사님 강의자료 : www.youtube.com/playlist?list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw

 

'ROS' 카테고리의 다른 글

ROS2 Foxy Fitzroy 설치 (Ubuntu 20.04)  (0) 2021.03.12