일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- CentOS
- 정렬
- Linux
- homogenous
- 정보처리기사
- AI
- 합병
- 리눅스
- 회전 복잡도
- robotics
- Computer
- SQL
- 3dof
- 네트워크 충돌
- ROS2
- 컴퓨터구조
- sort
- 기구학
- 소스 코드 품질 분석
- humble
- 정처기
- 맥케이브
- sam2
- homogeinous
- segmentation
- Java
- 명령어
- Coding
- MIPS
- 알고리즘
- Today
- Total
UTF-404
ROS2 humble Node 이해! 본문
Understanding nodes — ROS 2 Documentation: Humble documentation
You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Kilted. Understanding nodes Goal: Learn about the function of nodes in ROS 2, and the tools to interact with
docs.ros.org
필요사항 : Ubuntu 22.04
ROS2의 Node
ROS의 각 노드는 topic, service, action 또는 매개변수를 통해 다른 노드와 데이터를 주고받을 수 있다. 아래의 그림을 보자.
완전한 로봇 시스템은 여러 노드가 함께 작동하는 구조다. ROS2에서는 하나의 실행파일 (C++, Python 프로그램 등)에 하나 이상의 노드가 포함될 수 있다.
Node 실제 실행해보기
아래의 명령을 통해 패키지에 있는 실행 파일을 실행할 수 있다. 기본 구조는 다음과 같다.
ros2 run <package_name> <executable_name>
이전에 사용했던 turtlesim을 통해 확인해 보자. turtlesim을 실행하려면 아래의 명령을 실행하면 되었다.
ros2 run turtlesim turtlesim_node
여기서 package_name
은 turtlesim
이고 , excutable_name
은 turtlesim_node
다.
하지만 아직 우리는 노드 이름이 무엇인지 정확하게 알 수 없다. 다음 명령을 통해 우리는 현재 실행 중인 노드 목록을 확인할 수 있다. 새로운 터미널을 하나 더 열어보자.
ros2 node list
ros2 node list
실행 중인 모든 노드의 이름을 표시한다. 특히 노드와 상호 작용하거나 여러 노드를 실행하는 시스템에서 노드를 확인해야 할 때 유용하다.
이제 새로운 터미널을 열어서 다음 명령어를 실행해 보자. 그리고 다시 한번 더 ros2 node list
명령도 해보자.
ros2 run turtlesim turtle_teleop_key
그럼 아래의 터미널의 ros2 node list 부분처럼 /teleop_turtle
노드가 하나 더 생긴 것을 확인할 수 있다.
Remapping
리매핑을 사용하면 노드 이름, 토픽 이름, 서비스 이름 등의 기본 노드 속성을 사용자 지정 값으로 재할당할 수 있다. 이전 글에서는 리매핑을 통해 turtle_teleop_key cmd_vel 토픽 대상을 turtle2로 변경했었다.
/turtlesim
이제 노드 이름을 다시 지정해 보자. 다음 명령어 실행하자.
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle
turtlesim을 다시 호출하면 또 다른 turtlesim 창이 열리는데, 이제 ros2 node list를 찍어보면 3개의 노드 이름이 표시되는 것을 확인할 수 있다.
ros2 노드 정보
이제 노드의 이름을 알았으니 다음 명령을 통해 노드에 자세한 정보를 확인할 수 있다.
ros2 node info <node_name>
이제 ros2 node info /my_turtle
실행하면 아래의 그림처럼 관련 정보가 뜨게 된다.
ros2 node info는 subscribers, publishers, services 그리고 액션에 관해 작업 목록을 반환한다. 즉, 해당 노드와 상호 작용하는 ROS 그래프 연결이다.
요약하자면 노드는 로봇 시스템에서 단일 모듈식 목적을 수행하는 기본적인 ROS2 요소이다. 이번에는 활성 노드 이름을 검색하고 단일 노드를 분석하는 방법에 대해 알아보았다. 이러한 도구는 복잡한 실제 로봇 시스템의 데이터 흐름을 이해하는데 필수적이다.
다음 글에서는 topic
에 대해 알아볼 것이다.
'ROS2(humble)' 카테고리의 다른 글
ROS2 turtlesim & rqt 알아보기 (1) | 2025.07.02 |
---|---|
ROS2-humble 환경 구성 (1) | 2025.07.01 |
ROS2-humble 설치 및 삭제 (1) | 2025.07.01 |
PUMA-3DOF Robot System(ROS2 + Web) (0) | 2025.04.11 |
🐢 Tf2와 URDF에 대해 알아보기!! (1) | 2025.02.16 |