• Stars
    star
    3,742
  • Rank 11,333 (Top 0.3 %)
  • Language
    C++
  • License
    Mozilla Public Li...
  • Created about 8 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Time Series Visualization Tool that you deserve.

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.7

PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.

Noteworthy features:

  • Simple Drag & Drop user interface.
  • Load data from file.
  • Connect to live streaming of data.
  • Save the visualization layout and configurations to re-use them later.
  • Fast OpenGL visualization.
  • Can handle thousands of timeseries and millions of data points.
  • Transform your data using a simple editor: derivative, moving average, integral, etc…
  • PlotJuggler can be easily extended using plugins.

PlotJuggler

Data sources (file and streaming)

  • Load CSV files.
  • Load ULog (PX4).
  • Subscribe to many different streaming sources: MQTT, Websockets, ZeroMQ, UDP, etc.
  • Understands data formats such as JSON, CBOR, BSON, Message Pack, etc.
  • Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
  • Supports the Lab Streaming Layer, that is used by many devices.
  • Easily add your custom data source and/or formats...

Transform and analyze your data

PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, that allows you to create Multi-input / Single-output functions using a scripting language based on Lua.

If you are not familiar with Lua, don't be afraid, you won't need more than 5 minutes to learn it ;)

Tutorials

To learn how to use PlotJuggler, check the tutorials here:

Tutorial 1 Tutorial 2 Tutorial 3

Supported plugins

Some plugin can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.

Please submit specific issues, Pull Requests and questions on the related Github repository:

If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins

Installation

Binary installers

Note that these installers do not include ROS plugins.

Linux AppImage (compatible with Ubuntu 20.04 or later): PlotJuggler-3.6.0-x86_64.AppImage

Windows Installer: PlotJuggler-Windows-3.6.0-installer

Debian packages for ROS User

Install the ROS packages with:

sudo apt install ros-$ROS_DISTRO-plotjuggler-ros

To launch PlotJuggler on ROS, use the command:

rosrun plotjuggler plotjuggler

or, if are using ROS2:

ros2 run plotjuggler plotjuggler

ROS plugins are available in a separate repository: https://github.com/PlotJuggler/plotjuggler-ros-plugins

Refer to the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Install with Snap

This massive file will install a version of PlotJuggler that can work with both ROS1 and ROS2.

Get it from the Snap Store

sudo snap install plotjuggler

When launching you have two options available:

  • plotjuggler.ros to load the ROS1 plugins
  • plotjuggler.ros2 to load the ROS2 plugins

In addition, the command plotjuggler is an alias to plotjuggler.ros. If you'd prefer to alias plotjuggler.ros2 instead, you can do so with the command sudo snap set plotjuggler ros-plugin-version=2. Revert it simply replacing 2 with 1. Note that this also affect the desktop launcher.

Compile from source

You can find find the detailed instructions here: COMPILE.md.

Sponsorship and commercial support

PlotJuggler required a lot of work to be developed; my goal is to build the most intuitive and powerfull tool to visualize data and timeseries.

If you find PlotJuggler useful, consider making a donation on PayPal or become a Github Sponsor.

If you need to extend any of the functionalities of PlotJuggler to cover a specific need or to parse your custom data formats, you can receive commercial support from the main author, Davide Faconti.

License

PlotJuggler is released under the Mozilla Public License Version 2.0, which allows user to develop closed-source plugins.

Please note that some third party dependencies (including Qt) use the GNU Lesser General Public License.

Stargazers

Stargazers over time

Contributors

More Repositories

1

CPP_Optimizations_Diary

Tips and tricks to optimize your C++ code
C++
964
star
2

Bonxai

Fast, hierarchical, sparse Voxel Grid
C++
513
star
3

rosbag_editor

Create a rosbag from a given one, using a simple GUI
C++
357
star
4

ros_msg_parser

Deserialized any ROS messages, even if you don't know its type. Successor of ros_type_introspection.
C++
79
star
5

ros_type_introspection

Deserialize ROS messages that are unknown at compilation time
C++
59
star
6

cpp_swiss_army_knife

A collection of nice and tiny C++ libraries
38
star
7

PointCloudProcessing

C++
29
star
8

ros2_logging_fmt

C++
25
star
9

ros-docker-gazebo

Shell
24
star
10

ros2_introspection

C++
18
star
11

rosx_introspection

Deserialize any ROS message, without compilation time information.
C++
12
star
12

type_introspection_tests

Tests and examples related to https://github.com/facontidavide/ros_type_introspection
C++
11
star
13

PluginLoader

C++ plugin manager based on https://github.com/ros/class_loader
C++
8
star
14

SerializeMe

C++ helper functions to deserialize data from a buffer
C++
8
star
15

ProtectedValue

C++
7
star
16

SafeCppAny

Extension of std::any with small object optmization and safe numeric conversion.
C++
6
star
17

rqt_console_plus

Alternative implementation of rqt_console for ROS
C++
5
star
18

CanMove

CANOpen master library.
C++
5
star
19

ros_msg_parser-release

C++
4
star
20

ROS_msg_to_PCL

C++
4
star
21

CppUnits11

Implementation of type safe units in C++11
C++
2
star
22

mcap_editor

2
star
23

AsyncSignals

Proof of concept implementation of signals pushed on a separate event loop
C++
2
star
24

plotjuggler-release

2
star
25

cost_map_core

Code extracted from https://github.com/stonier/cost_map
C++
2
star
26

QtTreeEditor

1
star
27

btcpp_sample_project

1
star
28

Meanshift

Implementation of MeanShift algorithm (including Qt Demo)
C++
1
star
29

BOR_laser_test

Programming test. Convert LaserScan
1
star
30

QtChaiScript

QT front-end for ChaiScript
C++
1
star
31

PCL_VoxelGrid_enhanced

C++
1
star
32

Blackboard

WIP implementation of a blackboard. To be used with Behavior-Tree
C++
1
star
33

TimeseriesLogger

WORK IN PROGRESS. C++ header-only library to log numerical values. Low overhead and low latency guaranteed.
C++
1
star
34

rosbag_editor-release

1
star
35

Barcelona-Cpp-Meetups

1
star
36

facontidavide

1
star
37

StringTree

C++
1
star