ROS2 Diagnostics 정리

OpenJR·2025년 4월 17일

진단 메세지 구조 설명

ROS2 진단 메시지 시스템은 크게 Updater, Analyzer, Aggregator 세 가지 구성 요소로 이루어져 있다:

  1. Updater는 개별 하드웨어나 소프트웨어 모듈의 상태를 주기적으로 검사하고, 그 결과를 diagnostic_msgs/DiagnosticStatus 형태로 /diagnostics 토픽에 발행합니다. 보통 개별 Node로 작성되며 diagnostic_updater 패키지를 통해 구현된다.
updater.add("Battery Status", this, &MyNode::checkBatteryStatus);
updater.update();
  1. Analyzer는 Aggregator 내부에서 동작하며, 여러 진단 항목을 카테고리별로 그룹화하거나 필터링하는 역할을 한다. 별도의 노드로 만들 필요는 없으며, .yaml 설정 파일에 정의된다.
analyzers:
  hardware:
    type: diagnostic_aggregator/GenericAnalyzer
    path: Hardware
    startswith: ['/camera', '/motor']
  1. Aggregator는 여러 Updater에서 발행한 /diagnostics 토픽을 구독하여 Analyzer의 설정에 따라 이를 정리하고, 구조화된 /diagnostics_agg 토픽으로 다시 발행힌다. 이 토픽은 rqt_robot_monitor 등의 GUI 툴을 통해 시각적으로 확인할 수 있다.
profile
Jacob

0개의 댓글