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편에서 다시 띄웁니다.
다음 편