[ROS] ROS 기초(1) ROS란?

happy_quokka·2023년 10월 1일
0

ROS

목록 보기
1/25

🤖ROS(Robot Operating System)란?

  • ROS 공식 홈페이지
  • 오픈소스 로봇 운영체제
  • 로봇 소프트웨어를 개발하는데 필요한 소프트웨어 프레임워크
  • 소프트웨어 모듈 + 라이브러리 집합 + 도구 집합
  • 자동차 제어를 위한 미들웨어(OS 위에서 돌아가는 SW)

📍ROS 특징

  • 로봇 SW를 만들기 위한 코드의 재사용이 용이한 환경 제공이 목표
    • 다양한 프로그래밍 언어 지원
    • 표준화된 ROS 인터페이스를 따르는 HW, SW를 연결 가능
    • 대규모 실행 시스템 & 프로세스에도 적용 가능
  • 다양한 도구(RVIZ, RQT 등)들을 함께 제공
  • 다양한 OS 환경 에서 통일된 방법으로 상호작용을 구현하는 것이 가능

🛠ROS가 제공하는 도구들

RVIZ

  • 시각화 도구 : 센서 데이터를 비롯한 주변 환경 변화를 시각화

RQT

  • QT 기반의 GUI 응용 개발 도구
  • 노드 연결 정보를 그래프로 표현 (노드 통신할 때 많이 사용한다)

GAZEBO

  • 물리 엔진 기반의 3차원 시뮬레이터

📚ROS 배포판(버전)

  • ROS Melodic Morenia : LTS(Long Term Support) -> 저자는 이 버전 사용
  • ROS Lunar Loggerhead
  • ROS Kinetic Kame : LTS
  • ROS Indigo lgloo

📒ROS 기본 용어

마스터 (master)

  • 서로 다른 노드들 사이의 통신을 총괄 관리
  • 전체에 딱 1개
  • ROS core라고 부른다

노드 (node)

  • 실행 가능한 최소의 단위, 프로세스
  • ROS에서 발생하는 통신의 주체
  • HW 장치, SW 모듈에 node 하나씩 할당

토픽 (topic)

  • node들이 주고 받는 것
  • topic 안에 들어있는 실제 데이터를 '메시지'라고 한다

발행자 (publisher)

  • topic에 메시지를 담아 외부로 송신하는 node
  • ex) 센서, 카메라, 알고리즘 등

구독자 (subscriber)

  • topic에 담긴 메시지를 수신하는 node
  • ex) 액츄에이터 제어기, 데이터 시각화 도구 등

패키지 (package)

  • 하나 이상의 노드와 노드의 실행을 위한 정보 등을 묶어 놓은 단위
  • 노드, 라이브러리, 데이터, 파라미터 등을 포함

0개의 댓글