Gold Sponsor: Greenzie
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.
- 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...
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 ;)
To learns how to use PlotJuggler, check the tutorials here:
https://slides.com/davidefaconti/decks/plotjuggler
Linux AppImage (compatible with Ubuntu 18.04 or later: PlotJuggler-3.1.2-x86_64.AppImage
Windows Installer: PlotJuggler-Windows-3.1.1-installer
Install the debian packages using:
sudo apt install ros-<distro>-plotjuggler-ros
Alternatively, you may download the Snaps version that include the ROS1 plugins:
Clone the repository as usual:
git clone --recurse-submodules https://github.com/facontidavide/PlotJuggler.git
The only binary dependency that you need installed in your system is Qt5. On Ubuntu, the debians can be installed with the the command:
sudo apt -y install qtbase5-dev libqt5svg5-dev libqt5websockets5-dev libqt5opengl5-dev libqt5x11extras5-dev
On Fedora:
sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-websockets-devel qt5-qtopendl-devel qt5-qtx11extras-devel
Then compile using cmake (qmake is NOT supported):
mkdir build; cd build
cmake ..
make
sudo make install
Note: the plugins need to be installed in the same folder of the executable.
To install PlotJuggler, just type:
sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros
I added a fix that will be available in the next release.
To launch PlotJuggler on ROS, use the command:
rosrun plotjuggler plotjuggler
or, if are using ROS2:
ros2 run plotjuggler plotjuggler
Since version 3.x, ROS plugins have been moved to a separate repository:
https://github.com/PlotJuggler/plotjuggler-ros-plugins
Refer to the instructions in the this repository if you want to compile PJ and its ROS plugins from source.
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 use PlotJuggler at work, your company can support the development of those specific features they need.
Contact me for more details.