Skip to content

Kettenhoax/quickplot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A realtime plotting tool for ROS2.

preview

installation

Add imgui_vendor and implot_vendor to your ROS2 workspace, and build with colcon. Make sure to clone the vendor packages with submodules.

usage

ros2 run quickplot quickplot [config.yaml] [--ros-args -p use_sim_time:=true]

Plot config files are intended to be hand-written and source-controlled as part of a ROS project, same as Rviz configuration.

# example to plot speed and angular velocity of a Twist message on two axes
plots:
  - axes:
      - y_min: -2
        y_max: 2
      - y_min: -0.5
        y_max: 0.5
    series:
      - source:
          topic_name: /cmd_vel
          member_path:
            - twist
            - linear
            - x
      - source:
          topic_name: /cmd_vel
          member_path:
            - twist
            - angular
            - z
        axis: 1

planned features

  • suggest auto-fit if all y values are off-plot
  • show error states on topic communication in topic list
  • warning about NaN values
  • axis unit label suggestion (e.g. m/s for twist.linear)
  • range suggestions based on suggested unit (e.g. angles -pi to pi)
  • visualize covariance matrices as heatmaps

tests

To test GUI features, use the scripts in test to publish example data.

  • test/publish_sim_twist.py publishes velocity in sim time, and a sim time clock; the application should display a warning if launched with use_sim_time:=false

  • test/publish_real_twist.py publishes velocity in real time, and a sim time clock; the application should display a warning if launched with use_sim_time:=true

  • test/unknown_type contains a Dockerfile to build an image with a message type unknown to the host system, quickplot should display a warning about a missing message type