노드 보기

ROS 2에서 Real-Time Quality (RTQ) 관련 그래프를 시각화하려면 다음 방법을 사용할 수 있습니다.

1. rqt_graph 실행 (토픽 및 노드 연결 보기)

ROS 2에서 rqt 패키지를 사용하여 노드와 토픽 간 연결을 확인할 수 있습니다.

ros2 run rqt_graph rqt_graph

이 명령어를 실행하면, 현재 실행 중인 ROS 2 노드와 토픽의 연결 구조를 그래프로 볼 수 있습니다.


2. rqt_plot 실행 (토픽 데이터 그래프)

특정 ROS 2 토픽의 데이터를 실시간으로 그래프로 보고 싶다면 rqt_plot을 사용할 수 있습니다.

  1. 토픽 확인: 먼저 사용할 토픽 목록을 확인합니다.

    ros2 topic list
    

  2. 토픽 메시지 타입 확인:

    ros2 topic info /example_topic
    

  3. rqt_plot 실행:

    ros2 run rqt_plot rqt_plot
    

  4. 그래프에 추가할 토픽 입력:
    GUI 창이 뜨면 Add Topic 버튼을 눌러 /example_topic/data 같은 특정 데이터를 추가하여 그래프로 볼 수 있습니다.


3. ROS 2 Foxglove Studio 사용 (고급 시각화)

**Foxglove Studio**는 ROS 2의 메시지 데이터를 시각적으로 분석할 수 있는 강력한 툴입니다.

설치 후 실행:

ros2 launch foxglove_bridge foxglove_bridge
이후 Foxglove Studio를 실행하고, WebSocket을 통해 데이터를 시각화할 수 있습니다.


4. rqt_reconfigure (RTQ 조정)

RTQ 관련 매개변수를 조정하고 싶다면 rqt_reconfigure를 사용할 수도 있습니다.

ros2 run rqt_reconfigure rqt_reconfigure
이 명령어를 실행하면, 동적으로 매개변수를 조정할 수 있는 GUI가 나타납니다.


5. Matplotlib을 사용하여 직접 그래프 시각화

만약 RTQ 데이터를 직접 처리해서 그래프를 그리고 싶다면, Python을 활용할 수도 있습니다.

예제 코드:

import matplotlib.pyplot as plt
import rclpy
from rclpy.node import Node
from std_msgs.msg import Float32

class RTQGraph(Node):
    def __init__(self):
        super().__init__('rtq_graph_node')
        self.subscription = self.create_subscription(Float32, '/rtq_data', self.listener_callback, 10)
        self.data = []

    def listener_callback(self, msg):
        self.data.append(msg.data)
        if len(self.data) > 100:
            self.data.pop(0)
        plt.clf()
        plt.plot(self.data)
        plt.pause(0.01)

def main(args=None):
    rclpy.init(args=args)
    node = RTQGraph()
    plt.ion()
    while rclpy.ok():
        rclpy.spin_once(node)
    plt.ioff()
    plt.show()
    node.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()
이 코드를 실행하면 /rtq_data 토픽에서 수신된 데이터를 실시간으로 그래프로 표시할 수 있습니다.


정리

  • rqt_graph: ROS 2 노드 및 토픽 연결 구조 확인
  • rqt_plot: 특정 토픽 데이터를 실시간 그래프로 보기
  • Foxglove Studio: 고급 ROS 2 데이터 시각화
  • rqt_reconfigure: RTQ 관련 매개변수 조정
  • Matplotlib + Python: 직접 그래프를 생성하여 커스텀 시각화

어떤 방법이 필요한지 알려주시면 더 구체적인 가이드를 제공해 드리겠습니다! 🚀