본문으로 건너뛰기

TAG

#ros2_pulse

이 태그가 붙은 기사를 모았습니다. 태그는 AI 분류 단계에서 자동으로 붙고, 검수를 통과한 항목만 노출됩니다.

2건
Markus Spiske / Pexels
ROS Discourse

Ros2_pulse: Grafana 대시보드 토픽 레이트 시각화, rclpy 노드 및 대여 메시지 집계 지원 추가

ros2_pulse는 ROS 2 바이너리 수정 없이 LD_PRELOAD 프로브 방식으로 토픽별 발행·수신 속도와 노드 활성 상태를 모니터링하는 도구다. 이번 업데이트에서 rmw_take 트레이스포인트(tracepoint) 후킹을 추가해 기존에 집계되지 않던 rclpy 및 rclc 노드의 수신 카운트도 포함하게 됐다. 대여 메시지(loaned message) 지원도 추가되어 rcl_publish_loaned_message와 rcl_take_loaned_message를 래핑해 토픽별 대여 레이트를 별도로 출력한다. Jazzy 버전부터 Fast DDS가 일반 타입에도 기본으로 대여를 적용하므로, 의도치 않게 대여 경로로 전송되는 토픽을 확인할 수 있다. pulse-export는 프로브 윈도우를 Prometheus 메트릭(:9464)으로 제공하고 OTLP/HTTP 푸시도 지원해 Grafana 대시보드에서 실시간 시각화가 가능하다.

큐레이터지원 DDS 구현체가 Cyclone DDS, Fast DDS(Jazzy 이상), Connext로 한정되므로 다른 미들웨어 환경에서는 동작하지 않는다는 점에 주의가 필요하다.

Lee Campbell / Pexels
ROS Discourse

Ros2_pulse: 기본 바이너리에서 프로세스 내부 통신을 포함한 토픽별 전송률 및 노드 활성 상태 모니터링

ros2_pulse는 Jetson AGX Orin에서 동작하는 ROS 2 플래너 스택의 토픽 주기와 노드 생존 여부를 스톡 바이너리 수정 없이 감시하기 위해 개발된 오픈소스(Apache-2.0) 프로브 도구다. 기존 CLI 도구를 50 Hz, 100 KB 메시지 퍼블리셔에 적용해 측정한 결과, ros2 topic hz는 코어 하나의 7%, ros2 topic echo는 31%를 점유하는 것으로 나타났다. 인트라-프로세스(intra-process) 토픽에 hz를 연결하면 퍼블리셔가 모든 메시지를 직렬화하기 시작해 해당 프로세스의 CPU 사용률이 52% 상승했다. ros2_pulse는 이러한 측정 비용을 회피하는 구조로 설계되었으며, pulse-top 명령을 통해 토픽별 스파크라인, 인트라-프로세스 속도, 경과 시간이 포함된 경고를 실시간으로 표시한다. Humble 계열 바이너리의 컴포저블 노드 간 포인트 클라우드 트래픽을 포함한 인트라-프로세스 통신도 감시 대상에 포함된다.

큐레이터CPU 점유율 수치(7%, 31%, 52%)는 개발자가 Jetson AGX Orin 위에서 특정 메시지 크기·주기로 직접 측정한 결과이므로, 다른 하드웨어나 워크로드에서의 실제 오버헤드는 달라질 수 있다.