최대 1 분 소요

10. 노드와 데이터 통신


목차


정의

이름 정의 예시
노드(Node) 최소 단위의 실행 가능한 프로세스 영상 출력 카메라 드라이버 노드 필터링하는 필터 노드, 영상 특징점 추출 노드, 물건 검출 노드, 검출 위치로 로봇 경로 만드는 노드
메시지(Message) 노드 사이 주고 받는 입출력 데이터(Integer, Floating point, Boolean, String) 토픽(Topic), 서비스(Service), 액션(Action), 파라미어(Parameter)

Node 실행 : ros2 run

노드 실행

ros2 run <특정 패키지> <특정 노드>

$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key

노드 그래프 보기 : (동작중인 노드 확인)

rqt_graph

노드 목록 : (동작중인 node list 보기)

ros2 node list

$ ros2 node list

// 밑 결과
/rqt_gui_py_node_28168
/teleop_turtle
/turtlesim

노드명 변경 실행 : 같은 노드 일시

! 동일 노드 복수개 실행시, 같은이름으로 실행 된다. → 노드명 변경 권장

$ ros2 run turtlesim turtlesim_node __node:=new_turtle
// new_turtle 이라는 노드 생성 (재할당)

노드 정보 : ros2 node info

ros2 node info <node_name>

$ ros2 node info /teleop_turtle

//결과
/teleop_turtle
  Subscribers:
    /parameter_events: rcl_interfaces/msg/ParameterEvent
  Publishers:
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /turtle1/cmd_vel: geometry_msgs/msg/Twist
  Service Servers:
    /teleop_turtle/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /teleop_turtle/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /teleop_turtle/get_parameters: rcl_interfaces/srv/GetParameters
    /teleop_turtle/list_parameters: rcl_interfaces/srv/ListParameters
    /teleop_turtle/set_parameters: rcl_interfaces/srv/SetParameters
    /teleop_turtle/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients:

  Action Servers:

  Action Clients:
    /turtle1/rotate_absolute: turtlesim/action/RotateAbsolute