ros2 node list·info

지금 내 컴퓨터에서는 노드가 몇 개나 돌고 있을까?

준비

터미널 세 개를 엽니다

①에서 거북이를, ②에서 키보드 노드를 띄웁니다(2강 4·5편). 두 창은 켜 둔 채로, ③에서 노드를 살피는 명령을 칩니다.

새 터미널마다 ROS 2 설정이 source 되어 있어야 합니다(2강 3편).

목록

node list로 이름을 봅니다

③에서 ros2 node list를 치면 지금 돌고 있는 노드의 이름이 한 줄에 하나씩 나옵니다. 1편에서 본 두 노드, /turtlesim과 /teleop_turtle입니다.

줄의 순서는 그때그때 다를 수 있습니다.

끄면

노드를 끄면 목록에서 빠집니다

목록은 지금 이 순간 살아 있는 노드만 보여 줍니다. ②에서 Ctrl+C로 키보드 노드를 끄고 다시 ros2 node list를 치면 /teleop_turtle이 사라집니다.

끈 노드가 목록에서 바로 안 사라지면 몇 초 뒤 다시 칩니다(ros2 daemon 캐시). 확인했으면 ②에서 키보드 노드를 다시 띄워 둡니다.

자세히

node info로 속을 봅니다

ros2 node info /turtlesim은 이 노드가 무엇을 받고 무엇을 내보내는지 보여 줍니다. Subscribers는 받아 보는 토픽, Publishers는 내보내는 토픽입니다.

긴 줄과 일부 줄은 …로 줄였습니다. 서비스와 액션은 7강과 9강에서 봅니다.

그림으로

받는 것과 내보내는 것

info의 목록을 그림으로 옮기면 이렇습니다. /turtlesim은 /turtle1/cmd_vel로 움직이라는 명령을 받고, /turtle1/pose로 자기 위치를 쉬지 않고 내보냅니다.

받기와 내보내기를 ROS에서는 구독과 발행이라고 부릅니다. 바로 다음 3편의 주제입니다.

하나 더

같은 프로그램을 다른 이름으로

같은 실행 파일을 하나 더 띄우면 노드 이름이 겹쳐 헷갈립니다. 새 터미널의 ros2 run 명령 끝에 --ros-args --remap __node:=my_turtle을 붙이면 노드 이름만 바꿔 띄웁니다. 거북이 창도 하나 더 열립니다.

이렇게 이름을 바꾸는 것을 리매핑이라고 합니다(9편). 확인했으면 이 창은 Ctrl+C로 닫습니다. 8편에서 다시 띄웁니다.

다음 편

노드끼리는 어떻게 이야기를 주고받을까요?

3편토픽은 방송이다 3강 목록