본문 바로가기

IoT

[ROS2] ROS2 정리

728x90

ROS (Robot Operating System)

로봇 응용프로그램을 개발할 때 필요한 오픈소스 기반 로봇 메타 OS

하드웨어 추상화, 하위 디바이스 제어, 센싱, 인식, 슬램, 네비게이션 등의 기능 구현 및 메시지 전달, 패키지 관리, 개발 환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구 제공

특징

노드 간의 데이터 통신 인터페이스 정의 및 지원

로봇 하드웨어 표현 가능한 XML 기술 문서 정의

다양한 센서 라이브러리 제공

슬램 및 네비게이션 라이브러리와 매니퓰레이션 위한 GUI 툴 제공

시각화 도구 및 그래픽 인터페이스 & 3차원 시뮬레이터 제공

ROS 구조 및 빌드 시스템

명령어

기본 : ros + 리눅스 명령어

ex) ros + ls → rosls : ROS 패키지의 파일 목록 확인

용어

  • 패키지 : ROS 소프트웨어의 기본 단위. 패키지는 노드, 라이브러리, 환경설정 파일들을 통합하는 최소의 빌드 단위이며, 배포 단위이다.
  • 패키지 매니페스트 : 패키지의 작성자, 라이선스, 의존성, 컨피그레이션 플레그 등을 포함하는 패키지 정보
  • 메타 패키지 : 이전에는 스택으로 불리웠지만, 특수한 목적을 위한 패키지 그룹을 지칭한다. 대표적인 예로 네비게이션 스택을 예로 들 수 있다.
  • 메시지 : 한 ROS 프로세서에서 다른 ROS 프로세서로 정보를 전달하는 한 형태
  • 서비스 : 프로세스간의 요청/응답 상호작용
  • Service, Service Server, Service Client
  • Node : 최소 단위의 실행 가능한 프로세서를 가리키는 용어로써 하나의 실행 가능한 프로그램으로 생각하면 된다. ROS에서는 최소한의 실행 단위로 프로그램을 나누어 작업하게 된다. 각 노드는 메시지 통신으로 데이터를 주고 받는다.
  • Package : 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은것. 또한, 패키지의 묶음을 메타패키지라 하여 따로 분리 한다.
  • Message : 메시지를 통해 노드 간의 데이터를 주고 받게 된다. 메시지는 integer, floating point, boolean와 같은 변수 형태이다. 또한, 메시지 안에 메시지를 품고 있는 간단한 데이터 구조 및 메시지들의 배열과 같은 구조도 사용할 수 있다.
  • Publisher, Subscriber, Topic
  • Action, Action Server, Action Client

728x90

'IoT' 카테고리의 다른 글

[Protocol] MQTT 프로토콜 정리  (0) 2023.12.13
[ROS2] ROS2 패키지 만들기  (0) 2023.12.13