ROS2 Tutorial (Basic)
  • 교육 안내
  • ROS2 개요
  • ROS2 환경 구성
  • turtlesim, ROS2 rqt
  • 노드(Node) 이해하기
  • 토픽(Topic) 이해하기
  • 서비스(Service) 이해하기
  • 파라메터(Parameter) 이해하기
  • 액션(Action) 이해하기
  • rqt_console 을 이용해 로그 보기
  • 노드 실행하기(launch)
  • 데이터 기록 및 재생
  • ROS2 프로그래밍 시작
  • 작업공간 만들기
  • 패키지 만들기
  • 간단한 게시자와 구독자 노드 만들기
  • 간단한 서비스 및 클라이언트 작성
  • 사용자 정의 msg 및 srv 파일 생성
  • 사용자 정의 인터페이스 구현
  • 파라메터 사용하기
  • 문제 식별에 ros2doctor 사용하기
Powered by GitBook
On this page
  • 개요
  • ROS2 그래프
  • 노드 이해하기
  • 실습
  • 1. ROS2 실행
  • 2. ROS2 노드 목록
  • 3. ROS2 노드 정보

Was this helpful?

Export as PDF

노드(Node) 이해하기

저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo

Previousturtlesim, ROS2 rqtNext토픽(Topic) 이해하기

Last updated 1 year ago

Was this helpful?

개요

ROS2 그래프

ROS 그래프는 동시에 데이터를 함께 처리하는 ROS 2 요소의 네트워크입니다. 모든 실행 파일을 매핑하고 시각화하려는 경우 모든 실행 파일과 실행 파일 간의 연결을 포함합니다.

노드 이해하기

ROS의 각 노드는 예를 들어 휠 모터를 제어하거나 레이저 거리 측정기에서 센서 데이터를 게시하는 것과 같은 단일 모듈 목적을 담당해야 합니다. 각 노드는 주제, 서비스, 작업 또는 매개변수를 통해 다른 노드와 데이터를 주고받을 수 있습니다.

전체 로봇 시스템은 함께 작동하는 많은 노드로 구성됩니다. ROS 2에서 단일 실행 파일(C++ 프로그램, Python 프로그램 등)은 하나 이상의 노드를 포함할 수 있습니다.

실습

1. ROS2 실행

이 명령은 패키지에서 실행 파일을 시작합니다.

ros2 run <package_name> <executable_name>

Turtlesim을 실행하려면 새 터미널을 열고 다음 명령을 입력하십시오.

ros2 run turtlesim turtlesim_node

여기서 패키지 이름은 turtlesim이고 turtlesim_node는실행 파일 이름은 입니다 .

그러나 우리는 여전히 노드 이름을 모릅니다.

다음을 사용하여 노드 이름을 찾을 수 있습니다.ros2 node list

2. ROS2 노드 목록

ros2 node list

실행 중인 모든 노드의 이름이 표시됩니다. 이는 노드와 상호 작용하려는 경우 또는 많은 노드를 실행하는 시스템이 있고 이를 추적해야 하는 경우에 특히 유용합니다.

다른 터미널에서 turtlesim이 실행 중일 때 새 터미널을 열고 다음 명령을 입력합니다.

ros2 node list

터미널은 노드 이름을 반환합니다.

/turtlesim

다른 새 터미널을 열고 다음 명령을 사용하여 teleop 노드를 시작합니다.

ros2 run turtlesim turtle_teleop_key

여기서는 다시 turtlesim패키지를 참조 하지만 이번에는 turtle_teleop_key이라는 실행 파일을 대상으로 합니다 .

/turtlesim
/teleop_turtle

2.1 리매핑

이제 노드의 이름을 다시 할당하겠습니다 /turtlesim. 새 터미널에서 다음 명령을 실행합니다.

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

다시 turtlesim을 호출하기 때문에 또 다른 turtlesim 창이 열립니다. 그러나 이제 를 실행한 터미널로 돌아가서 다시 실행하면 세 개의 노드 이름이 표시됩니다.

/turtlesim
/teleop_turtle
/my_turtle

3. ROS2 노드 정보

이제 노드의 이름을 알았으므로 다음을 사용하여 노드에 대한 자세한 정보에 액세스할 수 있습니다.

ros2 node info <node_name>

최신 my_turtle노드를 검사하려면 다음 명령을 실행하십시오.

ros2 node info /my_turtle

ros2 node info는구독자, 게시자, 서비스 및 작업 목록을 반환합니다. 즉, 해당 노드와 상호 작용하는 ROS 그래프 연결입니다. 출력은 다음과 같아야 합니다.

/my_turtle
  Subscribers:
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /turtle1/cmd_vel: geometry_msgs/msg/Twist
  Publishers:
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /turtle1/color_sensor: turtlesim/msg/Color
    /turtle1/pose: turtlesim/msg/Pose
  Services:
    /clear: std_srvs/srv/Empty
    /kill: turtlesim/srv/Kill
    /reset: std_srvs/srv/Empty
    /spawn: turtlesim/srv/Spawn
    /turtle1/set_pen: turtlesim/srv/SetPen
    /turtle1/teleport_absolute: turtlesim/srv/TeleportAbsolute
    /turtle1/teleport_relative: turtlesim/srv/TeleportRelative
    /my_turtle/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /my_turtle/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /my_turtle/get_parameters: rcl_interfaces/srv/GetParameters
    /my_turtle/list_parameters: rcl_interfaces/srv/ListParameters
    /my_turtle/set_parameters: rcl_interfaces/srv/SetParameters
    /my_turtle/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Action Servers:
    /turtle1/rotate_absolute: turtlesim/action/RotateAbsolute
  Action Clients:

이렇게노드의 정보를 볼 수 있습니다.

에서 본 것처럼 Turtlesim 창이 열립니다 .

하면 노드 이름, 주제 이름, 서비스 이름 등과 같은 기본 노드 속성을 사용자 정의 값에 재할당할 수 있습니다. 지난 튜토리얼에서 remapping on을 사용하여 turtle_teleop_keycmd_vel 토픽을 변경했습니다 .

이전 자습서
재매핑을 사용