Node

jngeun·2021년 3월 31일
0

Ros

목록 보기
1/4

참고 링크 : 오로카 8강

🌸노드와 메시지 통신

노드 : 최소 단위 실행 가능한 프로세스
메세지 : 노드와 노드 사이에 입력과 출력으로 서로 주고 받는 데이터(int, float, bool, str)

메세지 통신 : 메세지를 주고 받는 방식

  • 토픽
  • 서비스
  • 액션
  • 파라미터

🌸노드

#특정 노드 실행
$ ros2 run [패키지명][노드명]

#동일 노드를 복수개 실행할 때 노드명 변경해서 실행
$ ros2 run [패키지명][노드명] __node : new_turtle

#여러개의 노드 실행
$ ros2 launch

#노드와 노드간의 메시지 통신을 그래프 형태로 표시
$ rqt_graph

#실행되고 있는 노드 목록 표시
$ ros2 node list

#노드 정보 확인
#지정된 노드의 publishers, subscriber, service, action, parameter 정보 확인 가능
$ ros2 node info [노드명]

🌸메시지 통신

토픽

  • 토픽 : 비동기식 단방향 메시지 송수신 방식
  • msg 메시지 형태의 메시지를 발간하는 publish와 메시지를 구독하는 subscriber로 구성
  • 1 : N / N : 1 / N : N 통신이 가능
  • Ros에서 널리 쓰이는 통신 방식

서비스

  • 서비스 : 동기식 양방향 메시지 송수신 방식
  • 특정 요청을 하는 클라이언트단과 요청 받은 일을 수행하는 서버 단과의 통신
  • 서비스 요청 및 응답은 앞에서 언급한 msg메시지의 변형으로 srv메시지

액션

  • 액션 : 비동기식 + 동기식 양방향 메시지 송수신 방식
  • 액션 목표 Goal를 지정하는 Action client
  • 액션의 목표를 받아 특정 테스크를 수행하면서 중간 결괏값에 해당되는 Action feedback과 최종 결괏값에 해당되는 Action result를 전송하는 Action server
  • 메시지는 msg의 변형인 action 메시지

파라미터

  • 각 노드에 파라미터 관련 parameter server를 실행시켜 외부의 parameter client간의 통신으로 파라미터를 변경하는 것으로 서비스와 동일
  • 노드 내 매개변수 or 글로벌 매개변수를 서비스 메시지 통신 방법을 사용하여 노드 내부 또는 외부에서 쉽게 지정하거나 변경할 수 있고 쉽게 가져와서 사용할 수 있다.

0개의 댓글