rqt_graph, rqt_plot, rqt_console로 ROS 시스템 상태 한눈에 보기

대상: ROS 노드 간 데이터 흐름을 시각적으로 보고, 실시간 값과 로그 상태를 함께 점검하고 싶은 개발자
환경: Ubuntu 20.04 + ROS Noetic (Melodic, Kinetic 모두 동일 명령어 사용 가능)


1. 문제/주제 요약

ROS 기반 프로젝트를 진행하다 보면,

  • “지금 어떤 노드가 떠 있지?”
  • “토픽이 제대로 퍼블리시되고 있나?”
  • “값이 실시간으로 어떻게 변하지?”
  • “에러 로그는 어디서 보지?”

이런 기본적인 상태를 한눈에 파악하기 어렵습니다.

이럴 때 ROS에서 제공하는 시각화 도구인
rqt_graph, rqt_plot, rqt_console
세 가지를 조합하면 시스템 상태를 직관적으로 점검할 수 있습니다.


2. 원인/배경 설명

ROS는 분산 구조(노드 간 통신)로 되어 있기 때문에,
터미널에서만 확인하면 데이터 흐름을 파악하기 어렵습니다.

  • rqt_graph → 노드 간 토픽 연결 구조 시각화
  • rqt_plot → 수치형 토픽 데이터 실시간 그래프 표시
  • rqt_console → 로그(Level별) 모니터링 및 필터링

이 세 가지를 동시에 사용하면, 시스템 전체 상태를 시각적으로 모니터링할 수 있습니다.


3. 설치 및 실행 순서

(1) rqt 패키지 설치

일부는 기본 ROS 설치에 포함되지만, 없을 경우 다음 명령으로 설치:

sudo apt install ros-noetic-rqt ros-noetic-rqt-common-plugins

(2) rqt_graph – 노드/토픽 구조 보기

현재 ROS 마스터에 등록된 노드 간 통신 관계를 시각화합니다.

rqt_graph

사용 팁

  • Nodes Only: 노드 간 연결만 표시 (토픽 생략)
  • Topics Only: 토픽 중심으로 보기
  • Dead sinks/sources: 끊긴 노드 확인 가능
  • Refresh: 동적으로 업데이트

💡 실무 활용 예:
/camera_node/image_proc/image_view
이런 흐름을 시각적으로 보면 데이터 라인이 잘 이어지는지 바로 확인할 수 있습니다.


(3) rqt_plot – 토픽 데이터 실시간 그래프 보기

실시간으로 발행되는 수치형 토픽(예: 센서값, 속도, 오도메트리 등)을 그래프로 확인합니다.

rqt_plot

예시:

속도 명령(/cmd_vel)의 linear.x, angular.z 변화를 보고 싶다면
GUI에서 아래처럼 입력:

/cmd_vel/linear/x
/cmd_vel/angular/z

또는 CLI에서 바로 실행:

rqt_plot /cmd_vel/linear/x /cmd_vel/angular/z

주요 기능

  • 실시간 업데이트 (약 10Hz 정도)
  • 여러 토픽 비교 가능
  • Scale/Autoscale 기능으로 그래프 자동 조정

💡 실무 팁:
센서 드리프트나 제어 피드백 확인할 때 매우 유용합니다.
예: /odom/pose/pose/position/x vs /goal/x 비교


(4) rqt_console – 로그 모니터링 및 필터링

rosout 토픽을 구독하여 ROS 로그를 한눈에 모니터링합니다.

rqt_console

주요 기능

  • 로그 레벨별 필터링: Debug, Info, Warn, Error, Fatal
  • 패키지별 / 노드별 / 시간별 검색 가능
  • rqt_logger_level 플러그인과 연동하면,
    실행 중 노드의 로그 레벨을 실시간으로 변경 가능

💡 예시:
특정 노드에서 Error 로그만 보고 싶을 때:
Filter → “Severity = Error”, “Node = /odom_publisher”


(5) 통합 모드로 함께 실행하기

각 도구를 개별 창으로 띄워도 되지만,
rqt만 실행해도 통합 환경에서 플러그인 형태로 모두 띄울 수 있습니다.

rqt

Plugins 메뉴에서 다음 경로를 따라가면 됩니다:

  • Visualization → Graph (rqt_graph)
  • Plot → Plot (rqt_plot)
  • Logging → Console (rqt_console)

🎯 이렇게 설정해두면, rqt 하나로 토픽 흐름 + 값 변화 + 로그 상태를 모두 확인 가능.


4. 추가 팁 / 자주 하는 실수

  • rqt_graph가 아무것도 안 나올 때 →
    ROS Master가 실행 중인지(roscore) 확인하고, 토픽이 실제 발행되고 있는지 rostopic list로 점검.
  • rqt_plot이 값이 안 변할 때 →
    해당 토픽이 float, int 타입인지 확인. 문자열(string) 타입은 그래프로 표시되지 않습니다.
  • rqt_console 로그가 안 뜰 때 →
    rosout 노드가 실행 중인지 확인 (rosnode list | grep rosout)
  • 자주 쓰는 조합 예시: roscore & roslaunch my_robot bringup.launch & rqt_graph & rqt_plot /odom/pose/pose/position/x & rqt_console & → 전체 시스템 동작을 한눈에 시각화 + 로그 추적

5. 정리

도구목적주요 기능
rqt_graph시스템 구조 시각화노드-토픽 연결 관계 표시
rqt_plot데이터 변화 관찰실시간 그래프 표시
rqt_console로그 모니터링로그 필터링 및 분석

📌 요약

  • rqt_graph: 노드 연결 관계 파악
  • rqt_plot: 센서 및 제어 데이터의 실시간 변화 확인
  • rqt_console: 로그 상태와 에러 모니터링
  • rqt 하나로 세 가지 모두 통합해서 관리 가능

댓글 남기기