ROS_1) 개념

한우진·2023년 4월 17일
0

ROS

목록 보기
1/6

ROS(Robot Operating System)

ROS란?

오픈소스 로봇 운영체제

  • 소스 무료 공개
  • 개방형 구조
  • 활발한 커뮤니티 활동(질문하면 바로 답변을 받을 수 있을 정도)

로봇 소프트웨어를 개발하는데 필요한 소프트웨어의 집합체

  • 소프트웨어 프레임워크(Software Framework)

메타 운영체제(Meta OS), 미들웨어(Middleware)

  • 소프트웨어 모듈 + 라이브러리 집합 + 도구 집합
  • 스마트폰에는 Android가 있는 것 처럼 각종 센서와 모터를 편하게 사용할 수 있도록 한다
  • Android처럼 Linux를 기반으로 하는 미들웨어

프로토타입에 적합한 미들웨어이다

  • 현대자동차나 다른 자동차 회사들은 실제로 이 미들웨어로 개발하지 않는다
  • 자율주행 자동차를 쉽고 빠르게 프로토타입 처럼 찍어내기에는 유용하다
  • 최적화가 되어있지 않다는 단점이 있음

ROS 구성도


ROS의 특징

로봇 SW를 만들기 위한 코드의 재사용이 용이한 환경제공을 목표로 함

  • 다양한 프로그래밍 언어를 지원한다(C++, Python)
  • 표준화된 ROS 인터페이스를 따르는 HW, SW를 엮기 쉬움
  • HW, SW 부품을 조립해 응용할 수 있다
  • 대규모 실행 시스템, 프로세스에도 적용 가능

다양한 도구 제공

  • RVIZ, Gazebo, RQT 등등

다양한 OS 환경에서 통일된 방법으로 상호작용을 구현할 수 있다

  • Linux, OS X, Windows, Raspbian, QNX, RTOS, Android, IOS 등
  • 표준화된 통신 프로토콜을 따르는 다른 기종들간의 메시지 교환이 가능

ROS가 제공하는 Tool

RVIZ

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

출처 : https://docs.fetchrobotics.com/visualization.html

RQT

  • Qt 기반의 GUI 응용 개발 도구
  • 노드연결 정보를 그래프로 표현(정보를 시각화해서 간단하게 몰 수 있다)
  • 사용자 상호작용을 UI 갖춘 응용 개발에 적용

출처 : https://enssionaut.com/board_robotics/957

GAZEBO

  • 물리 엔진 기반의 3차원 시뮬레이터
  • 시뮬레이터 제작과 모델링에 이용된다

출처 : https://www.clearpathrobotics.com/assets/guides/kinetic/ros/Drive%20a%20Husky.html


ROS 버전

디저트 이름을 붙이는 Android 처럼 ROS도 Melodic, Lunar, Kinetic, Indigo 등등이 있다.


ROS 핵심 기능

노드간 통신을 기반으로 전체 시스템을 구동

  • 하드웨어 부품 또는 소프트웨어 모듈에 노드가 하나씩 할당된다

각각의 노드들은 하나씩의 하드웨어 부품과 소프트웨어 부품을 맡아 관리하고 그 정보들은 마스터의 도움을 받아서 메시지를 주고 받는다

TCP/UDP 통신을 통해서 서로 분리된 하드웨어들 장치 안에 있는 노드들도 하나의 단일 시스템으로 작동할 수 있다(먼 거리 통신도 가능)

0개의 댓글