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 |