프로그래밍/ROS2

ROS2의 핵심 개념

techwin 2024. 10. 21. 22:37

ROS1과 ROS2의 시스템 레이어

  1. 노드(Node):
    • ROS2 시스템의 기본 실행 단위
    • 독립적으로 돌아가는 프로세스로, 특정 작업을 수행
    • 다른 노드들이랑 소통하면서 전체 로봇 시스템을 구성
  2. 토픽(Topic):
    • 노드 간에 데이터를 주고받는 비동기식 통신 방식
    • 발행자가 데이터를 보내고 구독자가 받는 구조
    • 센서 데이터 같은 계속 흘러가는 정보
  3. 서비스(Service):
    • 노드 간에 요청하고 응답받는 동기식 통신 방식
    • 뭔가를 물어보고 답을 받는 식으로 작동
    • 한 번 하고 끝나는 작업
  4. 액션(Action):
    • 오래 걸리는 작업을 위한 비동기식 통신 방식
    • 목표 설정하고, 중간 상황 받고, 최종 결과 얻는 식으로 구성
    • 복잡한 로봇 동작, 예를 들면 내비게이션
  5. 파라미터(Parameter):
    • 노드의 설정 값인데, 실행 중에도 바꿀 수 있다
    • 노드가 어떻게 동작할지 조절
  6. DDS(Data Distribution Service):
    • ROS2의 통신 기반 기술
    • 여러 시스템에 퍼져 있는 데이터를 실시간으로 주고받음
  7. 패키지(Package):
    • ROS2 소프트웨어를 묶어놓은 기본 단위
    • 실행 파일, 라이브러리, 설정 파일 같은 걸 모아놓음
  8. 워크스페이스(Workspace):
    • ROS2 패키지들을 개발하고 관리하는 작업 공간

이런 개념들이 서로 얽혀서 ROS2의 분산 로봇 시스템을 만든다.  이걸로 모듈화하고, 재사용하고, 확장하기 쉬운 로봇 프로그램을 만들 수 있다.