포스트

ROS : 로봇 운영체제 시스템(운영체제 아님)

1. ROS란?

The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it’s all open source.

  • Robot Operating System의 약자

  • 모바일 로봇 및 자율주행 관련 응용 프로그램 개발을 위한 오픈소스 플랫폼

  • 운영체제가 아닌, 로봇 시스템에서 실행할 소프트웨어를 개발하기 위한 프레임 워크를 제공하는 오픈 소스 라이브러리 및 도구 세트
  • 모바일 로봇 및 자율주행 분야에서 다양한 응용분야에서 사용됨
  • 로봇 팔, 드론, 자동차, 로봇 진단, 로봇 감시 등

2. 개발 배경

EricBegerKeenanWyrobek

  • 스탠포드 대학에서 2007년 ROS의 첫번째 부분이 개발됨
    • 로봇 공학 연구소에서 일하는 박사 과정 학생인 Eric Beger와 Keenan Wyrobek이 개발
    • 로봇 개발에 많은 사람들이 어려움을 겪는것을 보고 개발
      • 간단한 센서 하나를 제어하기 위해서 학습해야할 내용이 너무 많다
    • PR1을 하드웨어 프로토타입으로 구축하고, 여기에 소프트웨어 작업을 시작함
    • 2007년 1월에 시작되었으며 ROS 코드의 첫 번째 커밋은 2007년 11월 7일 SourceForge에 이루어짐
  •  최초의 공식 ROS 배포판인 ROS Box Turtle은 2010년 3월 2일에 출시
    • ROS가 공용 버전 패키지 세트와 함께 공식적으로 배포된 최초의 사례

3. ROS 장점 및 특징

  1. 오픈 소스
    • 누구나 무료로 사용, 수정, 배포 가능
  2. 다양한 센서 지원
    • LiDAR, 스테레오, 열 및 RGB 카메라, 힘/토크 센서, 모터 컨트롤러 등
  3. 크로스 플랫폼 지원
  4. 로봇 시스템을 빠르게 개발할 수 있도록 많은 도구와 라이브러리 제공
  5. 다양한 프로그래밍 언어 지원
    • Python, C++ Matlab, Ruby 등

4. ROS 구성 요소

  • 노드(Node), 토픽(Topic), 메시지(Message)등의 구성 요소로 이루어짐
    • 노드는 ROS 시스템에서 실행되는 프로세스
    • 토픽은 노드 사이에서 데이터를 전송하기 위한 방법
    • 메시지는 토픽에서 전송되는 데이터의 형식을 정의

5. ROS의 단점

  • 대규모 시스템에서 성능 문제
  • ROS의 툴박스가 너무 방대하여 초기 설정에 대한 학습 곡선이 높다
  • ROS 안정성 문제
  • 모든 코드나 데이터들을 통신기반으로 커뮤니케이션하도록 하기 때문에, 
    태생적으로 엄청난 오버헤드를 부담해야 하는 치명적인 단점이 있다
    • 이를 극복하기 위해 직접 개발하는 회사들도 있음

6. 대체 프레임워크

  • LCM
  • ZeroMQ
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.