ROS 2

ROS 2 Tutorials : Understanding nodes

정지홍 2024. 12. 31. 15:03

background

  • 1. ros 2 graph
    • 다음에 배울 몇몇 튜토리얼에서, ROS 2 graph라고 언급되는 것을 만드는 series of core ROS 2 개념을 배울것이다.
    • ROS graph는 동일한 시간에, 같이 data를 processing하는 network of ROS 2의 요소이다. 
      이것은 모든 executables와 connections들을 모두 맵핑하여 시각화하는 것이 포함한다.

출처: ros2 documentation: jazzy의 tutorials/beginner/understanding nodes

 

Tasks

  • 1. 우선 turtlesim을 실행시킨다.
    • turtlesim이 package이름이며, turtlesim_node가 executable이다.
ros2 run turtlesim turtlesim_node
  • 2.  실행중인 노드의 이름을 확인해본다.
    • 위에서 turtlesim노드를 실행시켰었음.
ros2 node list

이렇게 출력 될거임

  • 3. 거북이를 움직이는 명령어를 입력하고, 실행중인 노드를 조회한다.
# 새로운 터미널에 입력
ros2 run turtlesim turtle_teleop_key
# 기존 터미널에 입력
ros2 node list

이제 2개가 출력 될거임

  • 4. remapping
    • remapping이란?
      • remapping은 기존에 default로 설정된 node properties( node name , topic names , service names등)을 사용자가 변경할 수 있다. 
        앞의 튜토리얼에서는 turtle_teleop_key를 turtle1에서 turtle2로 변경하였다.
    • 아래의 명령어를 입력하자. 그러면 새로운 turtlesim창이 하나 더 나올 것 이다.
    • __node:=my_turtle을 사용하여, 기본 노드 이름인 turlesim_node를 my_turtle로 변경하였다.
# 이 명령어는 turtlesim 패키지의 기본 노드인 turtlesim_node를 실행하면서, 노드의 이름을 my_turtle로 변경한다.
# __node:=my_turtle 인자를 통해서 노드 이름을 재맵핑해서, 여러개의 노드를 실행할 때 충돌 피함이 가능
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

node list가 하나 더 추가 됨

  • 5. 노드에 대한 정보 확인
    • 이렇게 조회하여, ros graph의 connections들로 다른 node와 어떻게 interact하는지 볼 수 있다.
ros2 node info node_name

my_turtle 노드에 대한 정보
처음 실행했던 turtlesim노드에 대한 정보

 

 

summary

  • 이번에는 turtlesim package를 이용하여 utilized하여 새로운 node를 생성하였다.
  • 또한, ros2 node list를 사용하여 active한 node의 이름들을 조회하였다.
    그리고, ros node info를 이용하여, 특정한 노드에 대한 정보를 조회하였다.
    • 이 tool은  complex한 현실세계의 로봇 시스템의 flow of data  이해하기 위해서 필수적이다.

 

 

 

 

이것 터틀봇4에 대한 node info