ROS2 노드와 데이터
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