← Back

[공부] ROS 1

Robot Operating System
썸네일

1. ROS


  • 로봇은 모터, 센서, 프로세서 등 다양한 하드웨어가 함께 동작함
  • 이때, 여러 하드웨어를 쉽고 효율적으로 운영할 수 있게 해주는 통신 시스템을 ROS(Robot Operating System)이라고 정의함(ROS 만든 애들 기준)
  • 매우 간단한 로봇의 경우 모든 하드웨어를 한 사람이 개발할 수 있지만 복잡해지면 복잡해질수록 점차 한 사람이 모든 것을 핸들링하기 어려워짐
  • 여러 사람이 하나의 작업을 하게되는 셈인데 이 경우 각자의 스타일이 다르고 어떤 규칙으로 데이터를 주고 받을 것인지 모든 것을 정하는 과정이 매우 험난함
  • 따라서 이런 문제를 해결하기 위해 하나의 표준을 제시하는 미들웨어(middleware)로 ROS가 등장함

1.1 ROS 소개


  • ROS(Robot Operating System)는 로봇 소프트웨어 개발을 위한 차세대 오픈소스 프레임워크
  • plumbing이라는 message-passing system을 이용해 통신을 제공함
  • Tools는 실행, 중단, 관측, 디버깅, 로깅, 테스팅 및 가시화 등의 기본 도구를 제공해 로봇 어플리케이션을 구축할 수 있게 함
  • Capability는 로봇 개발에 필요한 다양한 라이브러리들을 제공한다는 의미
  • Community는 활성화된 많은 유저들이 기여하고 있다는 의미 (개발, 문서화, code integration 등…)
  • 결론적으로 로봇의 제어 데이터 처리를 효율적으로 관리하고 개발하기 위한 다양한 도구와 라이브러리 제공

[AI질문] ROS2의 주요 특징은 무엇인가요?

  • 분산 노드: 작은 실행 단위(노드)를 여러 장치에 흩어 배치해 확장 가능.
  • 다중 통신:
    1. 토픽: 실시간 단방향 스트리밍
    2. 서비스: 짧은 요청‑응답
    3. 액션: 긴 작업의 피드백 지원
  • 플러그인 미들웨어: DDS 등 통신 엔진 교체로 성능·보안 최적화.
  • 설정·실시간 지원: 파라미터·런치 파일로 관리 편리, RTOS 연동으로 지연 최소화.

[AI질문] ROS2의 주요 구성요소는 무엇인가요?

  • 노드(Node): 실행 단위
  • 토픽(Topic): 메시지 스트리밍 채널
  • 서비스(Service): 동기식 요청‑응답
  • 액션(Action): 비동기 작업 + 피드백
  • 파라미터(Parameter): 설정 값 주입
  • 런치(Launch): 노드 실행 관리
  • 메시지(Message): 데이터 구조
  • 패키지(Package): 코드·설정 묶음
  • RMW 미들웨어: DDS 등 통신 엔진

  • ROS의 버전
    • ROS 1
      • 초기 버전으로 2007년에 개발 시작
      • 주요 버전: Kinetic, Melodic, Noetic 등.
      • Noetic의 경우 ROS 1의 마지막 LTS(Long Term Support) 버전으로 2025년까지 지원
    • ROS 2
      • ROS 1의 한계를 보완하기 위해 개발된 차세대 프레임워크
      • 주요 버전: Foxy, Galactic, Humble 등

1.2 ROS2의 주요 개선 사항

[AI질문] ROS2의 주요 개선 사항은 무엇인가요?

  • 분산 통신 개선: DDS 기반으로 네트워크 유연성↑
  • 실시간 지원: RTOS 연동으로 지연↓
  • 보안 기능 내장: 인증·암호화 옵션 제공
  • 멀티 언어 지원: C++, Python 외에도 다양한 언어 사용 가능
  • 파라미터·런치 강화: 동적 파라미터·모듈식 런치 파일
  • 컴포넌트 라이브러리: 노드 라이브러리화로 메모리 절약
  • ABI 안정화: 버전 업그레이드 시 호환성 유지

Quiz를 풀어봅시다.

https://forms.gle/9Ku9gDaagzwg5ch89

[공부] React 특징 및 Hook

React

[공부] ROS 2

Robot Operating System