지금 문의

ROS 로봇 운영 체제 개요 및 핵심 사항

ROS Robot Operating System Overview and Key Points

ROS 시스템 설계 목표

로봇 공학이 빠르게 발전하고 복잡성이 증가함에 따라 코드 재사용성과 모듈성에 대한 요구가 점점 더 시급해졌습니다. 일부 오픈 소스 로봇 시스템은 이러한 요구를 적절히 충족하는 데 어려움을 겪어 왔습니다. 2007년에 Willow Garage는 오픈 소스 로봇 운영 체제(ROS)를 출시하여 로봇 연구 커뮤니티에서 빠르게 학습과 채택의 물결을 일으켰습니다.

The ROS system originated from a collaboration between a 2007 project at Stanford University’s Artificial Intelligence Laboratory and Willow Garage’s Personal Robots Program. After 2008, development was led by Willow Garage. With the remarkable feats of early ROS robots like the PR2—such as folding clothes, plugging in devices, and preparing breakfast—ROS gained increasing attention. Willow Garage expressed its ambition to leverage open-source development to transform PR2 into a “universal” robot.

PR2 came with a hefty price tag, retailing for $400,000 in 2011. It is now primarily used for research. Equipped with two arms, each featuring seven joints, PR2’s end effectors are grasping grippers. Mobility is provided by four wheels mounted on its base. High-resolution cameras, laser rangefinders, inertial measurement units, tactile sensors, and other advanced sensing equipment are mounted on the PR2’s head, chest, elbows, and grippers. Two 8-core computers at the base serve as the control and communication hub for the robot’s hardware. Both computers run Ubuntu and ROS.

ROS 설계 목표

ROS는 오픈 소스이며 로봇의 보조 운영체제 역할을 합니다. 하드웨어 추상화, 저수준 드라이버 관리, 공유 기능 실행, 프로그램 간 메시징, 패키지 관리 등 운영체제와 유사한 기능을 제공합니다. 또한 멀티 로봇 협업 프로그램을 획득, 구축, 작성 및 실행하기 위한 도구와 라이브러리도 제공합니다. ROS는 오픈 소스이며 로봇의 백엔드 운영 체제 또는 보조 운영 체제 역할을 합니다. 하드웨어 추상화, 저수준 드라이버 관리, 공유 기능 실행, 프로그램 간 메시징, 패키지 관리 등 운영체제와 유사한 기능을 제공합니다. 또한 다중 로봇 협업 프로그램을 획득, 구축, 작성 및 실행하기 위한 유틸리티 프로그램과 라이브러리도 제공합니다.

ROS의 주요 기능

ROS 런타임 아키텍처는 ROS 통신 모듈을 활용하여 모듈 간에 느슨하게 결합된 피어 투 피어 네트워크 연결을 설정하는 처리 프레임워크입니다. 서비스 기반 동기식 RPC(원격 프로시저 호출) 통신, 토픽 기반 비동기 데이터 흐름 통신, 매개변수 서버의 데이터 저장 등 여러 통신 유형을 구현합니다. 그러나 ROS 자체에는 본질적으로 실시간 기능이 없습니다.

ROS의 주요 특징은 다음과 같이 요약할 수 있습니다:

  • 피어 투 피어 설계

ROS를 사용하는 시스템은 여러 개의 별개의 호스트에 걸쳐 존재하며 피어 투 피어 토폴로지를 통해 작동 중에 통신하는 일련의 프로세스로 구성됩니다. 중앙 서버를 기반으로 하는 소프트웨어 프레임워크도 다중 프로세스 및 다중 호스트 환경의 이점을 얻을 수 있지만, 컴퓨터가 서로 다른 네트워크를 통해 연결될 때 중앙 데이터 서버와 관련된 문제가 발생합니다. ROS를 사용하는 시스템은 여러 다른 호스트에 존재하는 일련의 프로세스로 구성되며 피어 투 피어 토폴로지를 통해 작동 중에 통신합니다. 중앙 서버를 기반으로 하는 소프트웨어 프레임워크도 다중 프로세스 및 다중 호스트 환경의 이점을 얻을 수 있지만, 이러한 프레임워크에서는 컴퓨터가 서로 다른 네트워크를 통해 연결될 때 중앙 데이터 서버에 문제가 발생합니다.

  • 다국어 지원

코드를 작성할 때 많은 프로그래머는 특정 프로그래밍 언어를 선호하는 경향이 있습니다. 이러한 선호도는 각 언어로 프로그래밍하는 데 소요되는 시간, 디버깅 효율성, 구문, 실행 효율성, 다양한 기술적 및 문화적 고려 사항과 같은 요소에서 비롯됩니다. 이러한 문제를 해결하기 위해 ROS는 언어 중립적인 프레임워크로 설계되었습니다. 이제 ROS는 C++, Python, Octave, LISP 등 다양한 언어를 지원하며, 다른 언어를 위한 여러 인터페이스 구현도 포함하고 있습니다.

ROS의 고유성은 주로 더 깊은 수준보다는 메시지 통신 계층에서 나타납니다. 엔드투엔드 연결 및 구성은 대부분의 주요 프로그래밍 언어에 대해 잘 문서화된 구현을 포함하는 XML-RPC 메커니즘을 사용하여 구현됩니다. 저희는 다른 언어에 C를 기반으로 한 인터페이스를 제공하기보다는 각각의 구문 규칙에 따라 다양한 언어에서 보다 자연스럽게 ROS가 구현되는 것을 목표로 합니다. 그러나 특정 경우에는 기존 라이브러리를 활용하여 새로운 언어에 대한 지원을 캡슐화하는 것이 편리합니다. 예를 들어 Octave 클라이언트는 C++ 래퍼 라이브러리를 사용하여 구현됩니다.

To support cross-language development, ROS employs a simple, language-agnostic interface definition language (IDL) to describe message exchanges between modules. The IDL uses concise text to define each message’s structure and allows message composition. For example, the following diagram illustrates a point message described using IDL:

각 언어에 대한 코드 생성기는 해당 네이티브 코드 파일을 생성합니다. 메시지 전송 및 수신 중에 ROS는 이러한 파일을 자동으로 컴파일하고 병렬로 실행합니다. 따라서 프로그래밍 시간을 크게 절약하고 오류를 줄일 수 있습니다. 3줄의 IDL 파일은 137줄의 C++ 코드, 96줄의 Python 코드, 81줄의 Lisp 코드, 99줄의 Octave 코드로 자동 확장됩니다. 간단한 텍스트 파일에서 메시지가 자동으로 생성되므로 새로운 메시지 유형을 쉽게 열거할 수 있습니다. 이 글을 쓰는 시점에 알려진 ROS 기반 코드 라이브러리에는 400개 이상의 메시지 유형이 포함되어 있습니다. 이러한 메시지는 센서 데이터를 전송하여 사물이 주변 환경을 감지할 수 있도록 합니다.

그 결과 언어에 구애받지 않고 메시지를 처리할 수 있어 여러 언어를 자유롭게 혼합하고 일치시킬 수 있습니다.

  • 간소화 및 통합

기존의 대부분의 로봇 공학 소프트웨어 엔지니어링 프로젝트에는 프로젝트 외부에서 재사용할 수 있는 드라이버와 알고리즘이 포함되어 있습니다. 안타깝게도 여러 가지 이유로 인해 대부분의 코드의 중간 계층이 지나치게 복잡하여 기능을 추출하고 프로토타입 제작 외에 적용하기가 어렵습니다.

이러한 추세에 대응하기 위해 모든 드라이버와 알고리즘을 ROS 종속성으로부터 독립된 독립형 라이브러리로 점진적으로 발전시킬 것을 권장합니다. ROS로 구축된 시스템은 각 모듈 내의 코드를 개별적으로 컴파일할 수 있는 모듈성을 특징으로 합니다. 컴파일에 사용되는 CMake 도구는 미니멀리즘의 개념을 용이하게 합니다. ROS는 기본적으로 라이브러리 내에서 복잡한 코드를 캡슐화하여 라이브러리 기능을 시연하기 위한 작은 애플리케이션만 생성합니다. 이를 통해 간단한 코드를 프로토타이핑을 넘어 포팅하고 재사용할 수 있습니다. 새로운 장점으로는 코드가 라이브러리에 분산되어 있을 때 단위 테스트가 훨씬 쉬워진다는 점입니다. 하나의 테스트 프로그램으로 라이브러리 내의 여러 기능을 검증할 수 있습니다.

ROS는 기존의 수많은 오픈 소스 프로젝트의 코드를 활용합니다. 예를 들어, 플레이어 프로젝트에서 드라이버, 모션 제어 및 시뮬레이션 코드를, OpenCV에서 비전 알고리즘을, OpenRAVE에서 계획 알고리즘을 비롯한 다양한 코드를 차용합니다. 각 사례에서 ROS는 다양한 구성 옵션을 제공하고 최소한의 래퍼와 수정을 적용하면서 소프트웨어 구성 요소 간의 데이터 통신을 용이하게 합니다. ROS는 커뮤니티 유지 관리를 통해 다른 소프트웨어 라이브러리의 업데이트와 애플리케이션 패치를 소스 코드에 통합하여 지속적으로 발전하고 있습니다.

  • 종합 툴킷

복잡한 ROS 소프트웨어 프레임워크를 관리하기 위해 대규모 개발 및 런타임 환경을 구축하는 대신 커널로 설계하여 다양한 ROS 구성 요소를 컴파일하고 실행하는 수많은 유틸리티를 활용했습니다. 이러한 도구는 소스 코드 구조 구성, 구성 매개변수 검색 및 설정, 엔드투엔드 토폴로지 연결 시각화, 대역폭 사용량 측정, 정보 데이터의 생생한 묘사, 문서 자동 생성 등 다양한 작업을 처리합니다. 컨트롤러 모듈을 위한 글로벌 클록 및 레코더와 같은 핵심 서비스를 테스트했지만, 모든 코드를 모듈화하는 것을 목표로 하고 있습니다. 효율성 손실은 안정성과 관리 복잡성 감소라는 이점보다 훨씬 더 크다고 생각합니다.

  • 무료 오픈 소스

모든 ROS 소스 코드는 공개적으로 공개됩니다. 이는 필연적으로 모든 수준의 ROS 소프트웨어에서 디버깅을 촉진하고 오류를 지속적으로 수정할 수 있을 것이라고 믿습니다. Microsoft Robotics Studio 및 Webots와 같은 비오픈소스 소프트웨어도 많은 장점을 가지고 있지만, 오픈소스 플랫폼은 여전히 대체할 수 없다고 생각합니다. 이는 모든 수준의 하드웨어와 소프트웨어를 동시에 설계하고 디버깅할 때 특히 그렇습니다. 모든 ROS 소스 코드는 공개적으로 공개됩니다. 이는 필연적으로 모든 수준의 ROS 소프트웨어에서 디버깅을 촉진하고 오류를 지속적으로 수정할 수 있을 것이라고 믿습니다. Microsoft Robotics Studio 및 Webots와 같은 비오픈소스 소프트웨어도 많은 장점을 가지고 있지만, 저희는 오픈소스 플랫폼을 대체할 수 없다고 생각합니다. 특히 모든 수준의 하드웨어와 소프트웨어를 동시에 설계하고 디버깅할 때 더욱 그렇습니다.

시중에서 판매되는 대표적인 ROS 로봇

시중에 출시된 ROS를 사용하는 대표적인 로봇은 이 오픈 소스 프레임워크가 다양한 애플리케이션을 어떻게 지원하는지 보여줍니다. 예를 들어 모바일 로봇 such as TurtleBot and Husarion ROS bot are widely used for education and research; service robots like Fetch and PR2 highlight advanced manipulation and navigation capabilities; while industrial platforms such as Clearpath’s Husky demonstrate ROS integration in rugged environments. These examples reflect the flexibility and scalability of ROS in both academic and commercial robotics.

다음은 대표적인 4족 보행 ROS 로봇, 바퀴 달린 ROS 로봇, 추적형 ROS 로봇의 목록입니다.

Best Quadruped Robots Powered by ROS

경찰 이름 국가 로봇 사진 애플리케이션 공식 웹사이트
유니트리 로보틱스 중국 유니트리 로보틱스  교육, 연구 및 산업 업무 https://www.unitree.com/go2
Boston Dynamics 미국 보스턴 다이내믹스 산업 검사 https://bostondynamics.com/products/spot/

ROS를 사용하는 상위 5가지 바퀴 달린 로봇

경찰 이름 국가 로봇 사진 플레이로드 공식 웹사이트
MiR 덴마크 MiR 로봇 600kg https://www.mobile-industrial-robots.com
로봇닉 로봇 스페인 로봇닉 자동화 로봇 150kg https://bostondynamics.com/products/spot/
Robotnik 스페인 250kg
클리어패스 로보틱스 캐나다 클리어패스 로보틱스 100kg https://clearpathrobotics.com
Fdata 로봇 중국 농업용 로봇 A025 1000KG https://www. fdatabot.com

Best Tracked Robots with ROS Integration

경찰 이름 국가 로봇 사진 애플리케이션 공식 웹사이트
슈퍼드로이드

로봇

캐나다 슈퍼드로이드 로봇  전술 로봇 전술 로봇 https://www.superdroidrobots.com/store/tracked-robots
Your Custom Mobile Robot Solution Starts Here

China-based OEM/ODM manufacturer — AMR, AGV, warehouse automation. From design and R&D to global delivery.

  • 10+ years manufacturing AMRs & AGVs
  • Custom solutions deployed in 50+ countries
  • Free project evaluation & ROI analysis
  • Engineer reply within 24 hours
문의 양식

로봇 공학 전문가, 다양한 로봇, 작업을 더 효율적으로 만드는 로봇, 모바일 로봇, 잔디 깎는 로봇을 포함한 로봇을 탐구하는 데 열정적입니다.