1 분 소요

노드(Node)는 최소 단위의 실행 가능한 프로세스를 가리키는 용어이다. ROS에서는 보통 최소한의 실행 단위로 프로그램을 나누어 작업을 진행하며, 노드들이 연동되는 ROS 시스템을 위해서는 노드와 노드 사이에 입출력 데이터를 서로 주고 받을 수 있도록 설계해야만 한다. 여기서 주고받는 데이터를 메시지(Message)라고 하며, 메시지를 주고받는 통신 방법에 따라 토픽(Topic), 서비스(Service), 액션(Action), 파라미터(Parameter) 로 나눌 수 있다.

기본적으로 노드를 실행시키는 방법에는 다음과 같다.

  • 하나의 노드를 실행
    ros2 run
    
  • 하나 이상의 노드 실행
    ros2 launch
    

1. 토픽 (Topic):

  • 개념: 토픽은 메시지를 주고받을 수 있도록 하는 통신 메커니즘 중 하나이다. 노드 간에 비동기식 통신을 할 수 있다.
  • 활용: 여러 노드가 동일한 토픽에 메시지를 발행(Publish)하고, 다른 노드가 해당 토픽을 구독(Subscribe)하여 메시지를 수신한다.
  • 예시: 센서 데이터, 로봇 위치 정보 등을 주고받을 때 사용된다.

2. 서비스 (Service):

  • 개념: 서비스는 두 노드 간에 요청(Request)와 응답(Response)를 통해 통신하는 메커니즘이다. 동기식 통신을 제공한다.
  • 활용: 클라이언트 노드가 서버 노드에게 요청을 보내고, 서버는 해당 요청에 응답한다.
  • 예시: 로봇 팔을 특정 위치로 이동시키는 요청과 응답, 서비스 호출을 통한 계산 등이 있다.

3. 액션 (Action):

  • 개념: 액션은 장기적이거나 중단 가능한 목표를 가진 비동기식 통신 메커니즘입니다. 행동에 대한 목표를 설정하고, 그 목표를 달성하기 위한 상태 정보를 주기적으로 제공한다.
  • 활용: 액션은 일반적으로 서비스보다 더 복잡하고 지속적인 작업을 수행할 때 사용된다.
  • 예시: 로봇이 특정 지점으로 이동하도록 명령하고, 그 동안의 진행 상태를 주기적으로 확인할 수 있다.

4. 파라미터 (Parameter):

  • 개념: 파라미터는 노드의 동작을 제어하거나 설정하기 위한 값들을 저장하는 메커니즘이다.
  • 활용: 노드의 동작에 영향을 미치는 설정 값들을 저장하고, 런타임 중에 업데이트할 수 있다.
  • 예시: 로봇 속도, 센서 감도, 주행 경로 등을 파라미터로 설정할 수 있다.

태그:

카테고리:

업데이트: