ROS - 로봇 운영체제 ROS (유튜브 ROS 강의 Chapter2. 로봇 운영체제 ROS)
ROS

ROS - 로봇 운영체제 ROS (유튜브 ROS 강의 Chapter2. 로봇 운영체제 ROS)

ROS (Robot Operationg System)

  • 정확히는 운영체제가 아니지만 로봇을 위한 운영체제
  • 실질적으로 소프트웨어 프레임워크, 미들웨어임
  • 오픈소스, 메타 운영체제 기반
  • 노드간에 메시지 교환 방법으로 복잡합 프로그램을 잘게 나눠 공동 개발 가능
  • 명령어 도구, 시각화 도구 Rviz, GUI 도구 모음 RQT, 3차원 시뮬레이터 Gazebo 지원
  • 로보틱스에서 많이 사용되는 모델링, 센싱, 인식, 내비게이션, 매니퓰레이션 기능 지원
  • 로보틱스 생태계(하드웨어 모듈 + 운영체제 + 앱[서비스] + 유저) 형성 가능

 

ROS의 진정한 목적

  • 로보틱스 소프트웨어 개발을 전세계 레벨에서 공동 작업 가능하도록 생태계를 구축하는 것

 

메타 운영체제 (Meta-Operating System)

  • 정확하게 정의된 용어가 아니지만, 어플리케이션과 분산 컴퓨팅 자원 간의 가상화 레이어로 분산 컴퓨팅 자원을 활용하여, 스케쥴링 및 로드, 감시, 에러 처리 등을 실행하는 시스템이라 볼 수 있음(운영체제가 아니지만 운영체제처럼 동작하는 어플리케이션)
  • 윈도우, 리눅스, 안드로이드와 같은 전통적인 운영체제가 아니지만, 전통적인 운영체제를 이용하고 있음 
  • 로봇 응용 소프트웨어 개발을 위한 필수 기능들을 라이브러리 형태로 제공하고 있음
  • 로봇, 센서, 앱 ↔ 메타 운영체제

 

다른 디바이스 간의 통신 지원

  • 운영체제가 다 다르고 디바이스가 달라도 ROS을 사용하면 서로 간의 통신이 가능함

 

ROS를 사용 가능한 운영체제

  • 리눅스, 윈도우 등 기존 운영체제에서 사용 가능
  • 일부 OS에는 기능 제한사항이 있을 수 있음 (안드로이드, iOS의 경우 부분적 사용 가능)
  • MCU(아두이노)같은 경우 시리얼통신, 블루투스, LAN 경유로 통신할 수 있는 라이브러리 제공
  • 기본적으로 우분투, OS X 에서 권장

 

ROS의 구성 (지원 API)

영상 내 (https://wiki.ros.org/APIs)

 

ROS의 특징

  • 통신 인프라
    • 노드 간 데이터 통신을 제공
    • 메시지 파싱 기능
    • 메시지의 기록 및 재생 (데이터를 저장하고 필요시에 재사용 가능, 저장된 메시지를 기반으로 반복적인 실험 가능)
    • 메시지 사용으로 인한 다양한 프로그래밍 언어 사용 가능 (각 노드는 서로 다른 언어로 작성 가능)
    • 분산 매개 변수 시스템 (시스템에서 사용 되는 변수를 글로벌 키값으로 작성하여 공유 및 수정하여 실시간으로 반영)
  • 로봇 관련 다양한 기능
    • 로봇에 대한 표준 메시지 정의 (센서, 내비게이션 데이터 등의 표준 메시지를 정의)
    • 로봇 기하학 라이브러리 (상대적 좌표를 트리화 시키는 TF 제공)
    • 로봇 기술 언어 (로봇의 물리적 특성을 설명하는 XML 문서 기술)
    • 진단 시스템 (상태를 한눈에 파악할 수 있는 진단 시스템 제공)
    • 센싱/인식 (센서 드라이버 등 라이브러리 제공)
    • 내비게이션 (로봇의 포즈 추정, 위치 추정 제공)
    • 매니퓰레이션 (GUI 형태의 매니퓰레이션 Tools 제공 (MoveIt!)
  • 다양한 개발 도구
    • 로봇 개발에 필요한 다양한 개발 도구를 제공
    • Command-Line Tools (GUI 없이 제공되는 명령어로만 로봇 엑세스)
    • RViz (3D 시각화 툴 제공, 센서 데이터를 시각화, 로봇 외형과 계획된 동작을 표현)
    • RQT (그래픽 인터페이스 개발을 위한 QT 기반 프레임 워크 제공)
    • Gazebo (물리 엔진을 탑재, 3차원 시뮬레이터)

 

ROS 릴리즈 버전 선택

  • 운영체제: 최신 LTS 버전의 우분투, 3개월 이후 사용 권장 (5년 지원, 안정성 고려)
  • ROS: 최신 LTS버전, 나온지 3개월 이후 사용 권장 (안정성 고려)
  • Gazebo: "gazebosim.org" 정보 확인 후 사용

 

참고 영상: https://youtu.be/KcIUl3WH-C8