plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.9.1
License MPL-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version main
Last Updated 2024-03-08
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.9

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.
  • Understand 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, which 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 plugins 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

The snap contains a version of PlotJuggler that can work with either ROS1 or ROS2.

Get it from the Snap Store

To install it in Ubuntu 22.04, with ROS2 support, run:

sudo snap install plotjuggler

If you are still using ROS1 (Ubuntu 20.04), install instead:

sudo snap install plotjuggler-ros

Windows Binary installer

This installer does not include ROS plugins.

Windows Installer: PlotJuggler-Windows-3.9.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

Please take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Compile from source

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

Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating PayPal or becoming 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 users to develop closed-source plugins.

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

Star History

Star History Chart

Contributors

CHANGELOG

Changelog for package plotjuggler

3.9.1 (2024-02-20)

  • embed zstd 1.5.5
  • updated lz4 1.9.4
  • PlotJuggler with Fast-CDR-2.x.x (#932)
  • fix ROS2 parser bug
  • fix #935 and #934
  • Add Sample Count to transforms
  • fix compilation in Windows
  • Contributors: Davide Faconti, Manuel Valch

3.9.0 (2024-02-04)

  • new status bar with messages from the internet
  • Merge branch \'ulog_improvement\'
  • new memes
  • quick file reload!
  • transforms have now default values from previous
  • add icons to dialog Delete Series
  • cleanup and fix ULOG
  • add ULOG parameters as 1 sample timeseries
  • fix issue #929 : numerical truncation
  • bypass truncation check
  • Fixed parsing JointState messages (#927)
  • Contributors: Davide Faconti, Martin Pecka

3.8.10 (2024-01-26)

  • Fix issue #924: crash when loading rosbag with std_msgs/Empty
  • Allow ZMQ plugin to work as server
  • Link against Abseil for macOS builds & improve macOS compile docs #845 (#905)
  • fix issue in CSV #926
  • attempt to match ambiguous ros msg within package before using external known type (#922)
  • Contributors: Davide Faconti, Manuel Valch, Will MacCormack, rugged-robotics

3.8.9 (2024-01-24)

  • fix bug #924 (messages with no fields)
  • Bugfix: Wrong curvestyle is preselected (#921)
  • Contributors: Davide Faconti, Simon Sagmeister

3.8.8 (2024-01-18)

  • new update screen
  • Update README.md
  • dig diagnostic messages
  • fix snap in CI
  • Contributors: Davide Faconti

3.8.7 (2024-01-16)

  • add \"prefix and merge\" checkbox
  • fix warning \"transparent.png\"
  • fix issue #912
  • Contributors: Davide Faconti

3.8.6 (2024-01-09)

  • fix issue #906: support nanoseconds timestamp in csv
  • fix issue #904: wring ROS odometry parsing
  • add moving variance
  • Contributors: Davide Faconti

3.8.5 (2024-01-03)

  • fix issue #901
  • Contributors: Davide Faconti

3.8.4 (2023-12-20)

  • critical bug fix: #864 #856
  • Contributors: Davide Faconti

3.8.1 (2023-11-23)

  • data_tamer added to rosx_introspection
  • Contributors: Davide Faconti

3.8.0 (2023-11-12)

  • data_tamer updated This reverts commit 4ba24c591a9a84fbfb6c0329b787d73f98a2b23b.
  • CI updated
  • qwt updated
  • Merge pull request #869 from zdavkeos/step_interpolation Add \"Steps\" when drawing curves
  • Merge pull request #870 from MirkoFerrati/patch-3 Fix missing \'22\' in the new snap core22 workflow
  • Fix missing \'22\' in the new snap core22 workflow
  • Merge pull request #849 from MirkoFerrati/mirko/core22_snap update to core22, remove ros1, enable humble instead of foxy
  • Add \"Steps\" when drawing curves
  • Remove deprecated messages from foxy
  • Skip git security check for git owner inside the snap container
  • Adapt to new snapcraft syntax for core22, sort stage-packages
  • swap default snap with core22 snap for ros humble
  • duplicate the snap github action to publish new humble track
  • add snap for core22, remove ros1, enable humble
  • Merge pull request #853 from MirkoFerrati/mirko/fix_snap remove deprecated msg from snapcraft
  • Merge pull request #846 from locusrobotics/fix-catkin-build Use a more reliable method to select buildtool
  • fix
  • MCAP loader is not faster for large files
  • fix parsers names
  • extend the Toolbox plugin interface
  • mcap updated
  • remove deprecated msg from snapcraft
  • Use a more reliable method to select buildtool
  • Merge pull request #843 from faisal-shah/date-time-format-urls Add link to QDate format string
  • Add \'tab\' as a separator in the CSV loader
  • Add link to QDate format string A link to QTime format string was there, but not QDate
  • Merge pull request #840 from jbendes/zcm-improvements Zcm improvements
  • Moved away from std function for speed
  • Fixed loading of selected channels from layout
  • Merge pull request #827 from jbendes/zcm Added zcm streaming support
  • Merge pull request #834 from rinnaz/fix-protobuf-parser-leak Fix memory leak in protobuf parser
  • Made transport text box wider
  • Looking for zcm in alternate directory first
  • A bit more stable
  • Serializing and deserializing dataloader for zcm in layout
  • fix: memory leak in protobuf parser
  • Reverted change
  • Changed to ZCM_DEFAULT_URL
  • ZCM refactored
  • ZCM works, with single type file
  • Cleaner loading dialogs
  • Added progress dialog
  • Added channel selection
  • Added data loading from files
  • A bit of simplification and bug fix
  • Added zcm streaming support
  • Add missing cstdint include
  • Contributors: Davide Faconti, Faisal Shah, Jonathan Bendes, Mirko Ferrati, Paul Bovbel, Rinat Nazarov, Zach Davis, joajfreitas

3.7.0 (2023-05-19)

  • Handle protobuf maps (#824) Protobuf maps are just repeated protobuf messages with only 2 fields \"key\" and \"value\". Extract the map\'s key and use it in the series name and skip adding series for \"key\" fields to reduce the number of non useful series. Additionally don\'t include \"value\" in the series name for the value of a map.
  • add progress dialog to MCAP loading
  • new plugin: DataTamer parser
  • performance optimization in pushBack
  • more information in MCAP error
  • optimization in MoveData
  • address #820
  • Prevent runtime_error exceptions from plugins crashing the main app (#812) Catch runtime_error exceptions thrown from the plugins and skip the throwing plugins, so that the main app can continue its normal operation.
  • fix(snap): add libzstd for mcap support (#815)
  • Update README.md
  • Add a \"central difference\" method of derivative calculation (#813)
  • Updating COMPILE dependencies to install (#810) Taken from CI: https://github.com/facontidavide/PlotJuggler/blob/main/.github/workflows/ubuntu.yaml#L20-L31
  • Fix the bug where the shared library Parquet is not linked (#807) The actual path to the shared library is in [\${PARQUET_SHARED_LIB}]{.title-ref} instead of in [\${PARQUET_LIBRARIES}]{.title-ref}.
  • Add CMake into comp vars and minor format improvements (#804) Co-authored-by: Erick G. Islas Osuna <eislasosuna@netflix.com>
  • Fix for missing preferences (#795)
  • fix typos in \"tips and tricks\" cheatsheet (#798) fix a couple of minor typos in dialog text
  • Support Proto\'s That Reference Google/Protobuf (#793)
  • Fix for segfault in DataLoadCSV destructor (#784)

    • Change order of deletion for dialogs.

    - First delete child dialog [_dateTime_dialog]{.title-ref} then parent [_dialog]{.title-ref}.

  • Add CodeQL workflow (#765)

  • [bugfix] String deserialization (#780)

  • forgot throw

  • fixing nan check (#777)

  • Update Reactive Scripts on playback loop (#771)

  • fix

  • Contributors: Alistair, AndyZe, Bartimaeus-, Connor Anderson, Davide Faconti, Erick G. Islas-Osuna, Guillaume Beuzeboc, Mark Cutler, Michael Orlov, Peter St

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.9.1
License MPL-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version main
Last Updated 2024-03-08
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.9

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.
  • Understand 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, which 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 plugins 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

The snap contains a version of PlotJuggler that can work with either ROS1 or ROS2.

Get it from the Snap Store

To install it in Ubuntu 22.04, with ROS2 support, run:

sudo snap install plotjuggler

If you are still using ROS1 (Ubuntu 20.04), install instead:

sudo snap install plotjuggler-ros

Windows Binary installer

This installer does not include ROS plugins.

Windows Installer: PlotJuggler-Windows-3.9.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

Please take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Compile from source

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

Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating PayPal or becoming 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 users to develop closed-source plugins.

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

Star History

Star History Chart

Contributors

CHANGELOG

Changelog for package plotjuggler

3.9.1 (2024-02-20)

  • embed zstd 1.5.5
  • updated lz4 1.9.4
  • PlotJuggler with Fast-CDR-2.x.x (#932)
  • fix ROS2 parser bug
  • fix #935 and #934
  • Add Sample Count to transforms
  • fix compilation in Windows
  • Contributors: Davide Faconti, Manuel Valch

3.9.0 (2024-02-04)

  • new status bar with messages from the internet
  • Merge branch \'ulog_improvement\'
  • new memes
  • quick file reload!
  • transforms have now default values from previous
  • add icons to dialog Delete Series
  • cleanup and fix ULOG
  • add ULOG parameters as 1 sample timeseries
  • fix issue #929 : numerical truncation
  • bypass truncation check
  • Fixed parsing JointState messages (#927)
  • Contributors: Davide Faconti, Martin Pecka

3.8.10 (2024-01-26)

  • Fix issue #924: crash when loading rosbag with std_msgs/Empty
  • Allow ZMQ plugin to work as server
  • Link against Abseil for macOS builds & improve macOS compile docs #845 (#905)
  • fix issue in CSV #926
  • attempt to match ambiguous ros msg within package before using external known type (#922)
  • Contributors: Davide Faconti, Manuel Valch, Will MacCormack, rugged-robotics

3.8.9 (2024-01-24)

  • fix bug #924 (messages with no fields)
  • Bugfix: Wrong curvestyle is preselected (#921)
  • Contributors: Davide Faconti, Simon Sagmeister

3.8.8 (2024-01-18)

  • new update screen
  • Update README.md
  • dig diagnostic messages
  • fix snap in CI
  • Contributors: Davide Faconti

3.8.7 (2024-01-16)

  • add \"prefix and merge\" checkbox
  • fix warning \"transparent.png\"
  • fix issue #912
  • Contributors: Davide Faconti

3.8.6 (2024-01-09)

  • fix issue #906: support nanoseconds timestamp in csv
  • fix issue #904: wring ROS odometry parsing
  • add moving variance
  • Contributors: Davide Faconti

3.8.5 (2024-01-03)

  • fix issue #901
  • Contributors: Davide Faconti

3.8.4 (2023-12-20)

  • critical bug fix: #864 #856
  • Contributors: Davide Faconti

3.8.1 (2023-11-23)

  • data_tamer added to rosx_introspection
  • Contributors: Davide Faconti

3.8.0 (2023-11-12)

  • data_tamer updated This reverts commit 4ba24c591a9a84fbfb6c0329b787d73f98a2b23b.
  • CI updated
  • qwt updated
  • Merge pull request #869 from zdavkeos/step_interpolation Add \"Steps\" when drawing curves
  • Merge pull request #870 from MirkoFerrati/patch-3 Fix missing \'22\' in the new snap core22 workflow
  • Fix missing \'22\' in the new snap core22 workflow
  • Merge pull request #849 from MirkoFerrati/mirko/core22_snap update to core22, remove ros1, enable humble instead of foxy
  • Add \"Steps\" when drawing curves
  • Remove deprecated messages from foxy
  • Skip git security check for git owner inside the snap container
  • Adapt to new snapcraft syntax for core22, sort stage-packages
  • swap default snap with core22 snap for ros humble
  • duplicate the snap github action to publish new humble track
  • add snap for core22, remove ros1, enable humble
  • Merge pull request #853 from MirkoFerrati/mirko/fix_snap remove deprecated msg from snapcraft
  • Merge pull request #846 from locusrobotics/fix-catkin-build Use a more reliable method to select buildtool
  • fix
  • MCAP loader is not faster for large files
  • fix parsers names
  • extend the Toolbox plugin interface
  • mcap updated
  • remove deprecated msg from snapcraft
  • Use a more reliable method to select buildtool
  • Merge pull request #843 from faisal-shah/date-time-format-urls Add link to QDate format string
  • Add \'tab\' as a separator in the CSV loader
  • Add link to QDate format string A link to QTime format string was there, but not QDate
  • Merge pull request #840 from jbendes/zcm-improvements Zcm improvements
  • Moved away from std function for speed
  • Fixed loading of selected channels from layout
  • Merge pull request #827 from jbendes/zcm Added zcm streaming support
  • Merge pull request #834 from rinnaz/fix-protobuf-parser-leak Fix memory leak in protobuf parser
  • Made transport text box wider
  • Looking for zcm in alternate directory first
  • A bit more stable
  • Serializing and deserializing dataloader for zcm in layout
  • fix: memory leak in protobuf parser
  • Reverted change
  • Changed to ZCM_DEFAULT_URL
  • ZCM refactored
  • ZCM works, with single type file
  • Cleaner loading dialogs
  • Added progress dialog
  • Added channel selection
  • Added data loading from files
  • A bit of simplification and bug fix
  • Added zcm streaming support
  • Add missing cstdint include
  • Contributors: Davide Faconti, Faisal Shah, Jonathan Bendes, Mirko Ferrati, Paul Bovbel, Rinat Nazarov, Zach Davis, joajfreitas

3.7.0 (2023-05-19)

  • Handle protobuf maps (#824) Protobuf maps are just repeated protobuf messages with only 2 fields \"key\" and \"value\". Extract the map\'s key and use it in the series name and skip adding series for \"key\" fields to reduce the number of non useful series. Additionally don\'t include \"value\" in the series name for the value of a map.
  • add progress dialog to MCAP loading
  • new plugin: DataTamer parser
  • performance optimization in pushBack
  • more information in MCAP error
  • optimization in MoveData
  • address #820
  • Prevent runtime_error exceptions from plugins crashing the main app (#812) Catch runtime_error exceptions thrown from the plugins and skip the throwing plugins, so that the main app can continue its normal operation.
  • fix(snap): add libzstd for mcap support (#815)
  • Update README.md
  • Add a \"central difference\" method of derivative calculation (#813)
  • Updating COMPILE dependencies to install (#810) Taken from CI: https://github.com/facontidavide/PlotJuggler/blob/main/.github/workflows/ubuntu.yaml#L20-L31
  • Fix the bug where the shared library Parquet is not linked (#807) The actual path to the shared library is in [\${PARQUET_SHARED_LIB}]{.title-ref} instead of in [\${PARQUET_LIBRARIES}]{.title-ref}.
  • Add CMake into comp vars and minor format improvements (#804) Co-authored-by: Erick G. Islas Osuna <eislasosuna@netflix.com>
  • Fix for missing preferences (#795)
  • fix typos in \"tips and tricks\" cheatsheet (#798) fix a couple of minor typos in dialog text
  • Support Proto\'s That Reference Google/Protobuf (#793)
  • Fix for segfault in DataLoadCSV destructor (#784)

    • Change order of deletion for dialogs.

    - First delete child dialog [_dateTime_dialog]{.title-ref} then parent [_dialog]{.title-ref}.

  • Add CodeQL workflow (#765)

  • [bugfix] String deserialization (#780)

  • forgot throw

  • fixing nan check (#777)

  • Update Reactive Scripts on playback loop (#771)

  • fix

  • Contributors: Alistair, AndyZe, Bartimaeus-, Connor Anderson, Davide Faconti, Erick G. Islas-Osuna, Guillaume Beuzeboc, Mark Cutler, Michael Orlov, Peter St

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.9.1
License MPL-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version main
Last Updated 2024-03-08
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.9

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.
  • Understand 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, which 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 plugins 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

The snap contains a version of PlotJuggler that can work with either ROS1 or ROS2.

Get it from the Snap Store

To install it in Ubuntu 22.04, with ROS2 support, run:

sudo snap install plotjuggler

If you are still using ROS1 (Ubuntu 20.04), install instead:

sudo snap install plotjuggler-ros

Windows Binary installer

This installer does not include ROS plugins.

Windows Installer: PlotJuggler-Windows-3.9.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

Please take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Compile from source

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

Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating PayPal or becoming 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 users to develop closed-source plugins.

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

Star History

Star History Chart

Contributors

CHANGELOG

Changelog for package plotjuggler

3.9.1 (2024-02-20)

  • embed zstd 1.5.5
  • updated lz4 1.9.4
  • PlotJuggler with Fast-CDR-2.x.x (#932)
  • fix ROS2 parser bug
  • fix #935 and #934
  • Add Sample Count to transforms
  • fix compilation in Windows
  • Contributors: Davide Faconti, Manuel Valch

3.9.0 (2024-02-04)

  • new status bar with messages from the internet
  • Merge branch \'ulog_improvement\'
  • new memes
  • quick file reload!
  • transforms have now default values from previous
  • add icons to dialog Delete Series
  • cleanup and fix ULOG
  • add ULOG parameters as 1 sample timeseries
  • fix issue #929 : numerical truncation
  • bypass truncation check
  • Fixed parsing JointState messages (#927)
  • Contributors: Davide Faconti, Martin Pecka

3.8.10 (2024-01-26)

  • Fix issue #924: crash when loading rosbag with std_msgs/Empty
  • Allow ZMQ plugin to work as server
  • Link against Abseil for macOS builds & improve macOS compile docs #845 (#905)
  • fix issue in CSV #926
  • attempt to match ambiguous ros msg within package before using external known type (#922)
  • Contributors: Davide Faconti, Manuel Valch, Will MacCormack, rugged-robotics

3.8.9 (2024-01-24)

  • fix bug #924 (messages with no fields)
  • Bugfix: Wrong curvestyle is preselected (#921)
  • Contributors: Davide Faconti, Simon Sagmeister

3.8.8 (2024-01-18)

  • new update screen
  • Update README.md
  • dig diagnostic messages
  • fix snap in CI
  • Contributors: Davide Faconti

3.8.7 (2024-01-16)

  • add \"prefix and merge\" checkbox
  • fix warning \"transparent.png\"
  • fix issue #912
  • Contributors: Davide Faconti

3.8.6 (2024-01-09)

  • fix issue #906: support nanoseconds timestamp in csv
  • fix issue #904: wring ROS odometry parsing
  • add moving variance
  • Contributors: Davide Faconti

3.8.5 (2024-01-03)

  • fix issue #901
  • Contributors: Davide Faconti

3.8.4 (2023-12-20)

  • critical bug fix: #864 #856
  • Contributors: Davide Faconti

3.8.1 (2023-11-23)

  • data_tamer added to rosx_introspection
  • Contributors: Davide Faconti

3.8.0 (2023-11-12)

  • data_tamer updated This reverts commit 4ba24c591a9a84fbfb6c0329b787d73f98a2b23b.
  • CI updated
  • qwt updated
  • Merge pull request #869 from zdavkeos/step_interpolation Add \"Steps\" when drawing curves
  • Merge pull request #870 from MirkoFerrati/patch-3 Fix missing \'22\' in the new snap core22 workflow
  • Fix missing \'22\' in the new snap core22 workflow
  • Merge pull request #849 from MirkoFerrati/mirko/core22_snap update to core22, remove ros1, enable humble instead of foxy
  • Add \"Steps\" when drawing curves
  • Remove deprecated messages from foxy
  • Skip git security check for git owner inside the snap container
  • Adapt to new snapcraft syntax for core22, sort stage-packages
  • swap default snap with core22 snap for ros humble
  • duplicate the snap github action to publish new humble track
  • add snap for core22, remove ros1, enable humble
  • Merge pull request #853 from MirkoFerrati/mirko/fix_snap remove deprecated msg from snapcraft
  • Merge pull request #846 from locusrobotics/fix-catkin-build Use a more reliable method to select buildtool
  • fix
  • MCAP loader is not faster for large files
  • fix parsers names
  • extend the Toolbox plugin interface
  • mcap updated
  • remove deprecated msg from snapcraft
  • Use a more reliable method to select buildtool
  • Merge pull request #843 from faisal-shah/date-time-format-urls Add link to QDate format string
  • Add \'tab\' as a separator in the CSV loader
  • Add link to QDate format string A link to QTime format string was there, but not QDate
  • Merge pull request #840 from jbendes/zcm-improvements Zcm improvements
  • Moved away from std function for speed
  • Fixed loading of selected channels from layout
  • Merge pull request #827 from jbendes/zcm Added zcm streaming support
  • Merge pull request #834 from rinnaz/fix-protobuf-parser-leak Fix memory leak in protobuf parser
  • Made transport text box wider
  • Looking for zcm in alternate directory first
  • A bit more stable
  • Serializing and deserializing dataloader for zcm in layout
  • fix: memory leak in protobuf parser
  • Reverted change
  • Changed to ZCM_DEFAULT_URL
  • ZCM refactored
  • ZCM works, with single type file
  • Cleaner loading dialogs
  • Added progress dialog
  • Added channel selection
  • Added data loading from files
  • A bit of simplification and bug fix
  • Added zcm streaming support
  • Add missing cstdint include
  • Contributors: Davide Faconti, Faisal Shah, Jonathan Bendes, Mirko Ferrati, Paul Bovbel, Rinat Nazarov, Zach Davis, joajfreitas

3.7.0 (2023-05-19)

  • Handle protobuf maps (#824) Protobuf maps are just repeated protobuf messages with only 2 fields \"key\" and \"value\". Extract the map\'s key and use it in the series name and skip adding series for \"key\" fields to reduce the number of non useful series. Additionally don\'t include \"value\" in the series name for the value of a map.
  • add progress dialog to MCAP loading
  • new plugin: DataTamer parser
  • performance optimization in pushBack
  • more information in MCAP error
  • optimization in MoveData
  • address #820
  • Prevent runtime_error exceptions from plugins crashing the main app (#812) Catch runtime_error exceptions thrown from the plugins and skip the throwing plugins, so that the main app can continue its normal operation.
  • fix(snap): add libzstd for mcap support (#815)
  • Update README.md
  • Add a \"central difference\" method of derivative calculation (#813)
  • Updating COMPILE dependencies to install (#810) Taken from CI: https://github.com/facontidavide/PlotJuggler/blob/main/.github/workflows/ubuntu.yaml#L20-L31
  • Fix the bug where the shared library Parquet is not linked (#807) The actual path to the shared library is in [\${PARQUET_SHARED_LIB}]{.title-ref} instead of in [\${PARQUET_LIBRARIES}]{.title-ref}.
  • Add CMake into comp vars and minor format improvements (#804) Co-authored-by: Erick G. Islas Osuna <eislasosuna@netflix.com>
  • Fix for missing preferences (#795)
  • fix typos in \"tips and tricks\" cheatsheet (#798) fix a couple of minor typos in dialog text
  • Support Proto\'s That Reference Google/Protobuf (#793)
  • Fix for segfault in DataLoadCSV destructor (#784)

    • Change order of deletion for dialogs.

    - First delete child dialog [_dateTime_dialog]{.title-ref} then parent [_dialog]{.title-ref}.

  • Add CodeQL workflow (#765)

  • [bugfix] String deserialization (#780)

  • forgot throw

  • fixing nan check (#777)

  • Update Reactive Scripts on playback loop (#771)

  • fix

  • Contributors: Alistair, AndyZe, Bartimaeus-, Connor Anderson, Davide Faconti, Erick G. Islas-Osuna, Guillaume Beuzeboc, Mark Cutler, Michael Orlov, Peter St

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.9.1
License MPL-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version main
Last Updated 2024-03-08
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.9

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.
  • Understand 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, which 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 plugins 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

The snap contains a version of PlotJuggler that can work with either ROS1 or ROS2.

Get it from the Snap Store

To install it in Ubuntu 22.04, with ROS2 support, run:

sudo snap install plotjuggler

If you are still using ROS1 (Ubuntu 20.04), install instead:

sudo snap install plotjuggler-ros

Windows Binary installer

This installer does not include ROS plugins.

Windows Installer: PlotJuggler-Windows-3.9.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

Please take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Compile from source

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

Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating PayPal or becoming 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 users to develop closed-source plugins.

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

Star History

Star History Chart

Contributors

CHANGELOG

Changelog for package plotjuggler

3.9.1 (2024-02-20)

  • embed zstd 1.5.5
  • updated lz4 1.9.4
  • PlotJuggler with Fast-CDR-2.x.x (#932)
  • fix ROS2 parser bug
  • fix #935 and #934
  • Add Sample Count to transforms
  • fix compilation in Windows
  • Contributors: Davide Faconti, Manuel Valch

3.9.0 (2024-02-04)

  • new status bar with messages from the internet
  • Merge branch \'ulog_improvement\'
  • new memes
  • quick file reload!
  • transforms have now default values from previous
  • add icons to dialog Delete Series
  • cleanup and fix ULOG
  • add ULOG parameters as 1 sample timeseries
  • fix issue #929 : numerical truncation
  • bypass truncation check
  • Fixed parsing JointState messages (#927)
  • Contributors: Davide Faconti, Martin Pecka

3.8.10 (2024-01-26)

  • Fix issue #924: crash when loading rosbag with std_msgs/Empty
  • Allow ZMQ plugin to work as server
  • Link against Abseil for macOS builds & improve macOS compile docs #845 (#905)
  • fix issue in CSV #926
  • attempt to match ambiguous ros msg within package before using external known type (#922)
  • Contributors: Davide Faconti, Manuel Valch, Will MacCormack, rugged-robotics

3.8.9 (2024-01-24)

  • fix bug #924 (messages with no fields)
  • Bugfix: Wrong curvestyle is preselected (#921)
  • Contributors: Davide Faconti, Simon Sagmeister

3.8.8 (2024-01-18)

  • new update screen
  • Update README.md
  • dig diagnostic messages
  • fix snap in CI
  • Contributors: Davide Faconti

3.8.7 (2024-01-16)

  • add \"prefix and merge\" checkbox
  • fix warning \"transparent.png\"
  • fix issue #912
  • Contributors: Davide Faconti

3.8.6 (2024-01-09)

  • fix issue #906: support nanoseconds timestamp in csv
  • fix issue #904: wring ROS odometry parsing
  • add moving variance
  • Contributors: Davide Faconti

3.8.5 (2024-01-03)

  • fix issue #901
  • Contributors: Davide Faconti

3.8.4 (2023-12-20)

  • critical bug fix: #864 #856
  • Contributors: Davide Faconti

3.8.1 (2023-11-23)

  • data_tamer added to rosx_introspection
  • Contributors: Davide Faconti

3.8.0 (2023-11-12)

  • data_tamer updated This reverts commit 4ba24c591a9a84fbfb6c0329b787d73f98a2b23b.
  • CI updated
  • qwt updated
  • Merge pull request #869 from zdavkeos/step_interpolation Add \"Steps\" when drawing curves
  • Merge pull request #870 from MirkoFerrati/patch-3 Fix missing \'22\' in the new snap core22 workflow
  • Fix missing \'22\' in the new snap core22 workflow
  • Merge pull request #849 from MirkoFerrati/mirko/core22_snap update to core22, remove ros1, enable humble instead of foxy
  • Add \"Steps\" when drawing curves
  • Remove deprecated messages from foxy
  • Skip git security check for git owner inside the snap container
  • Adapt to new snapcraft syntax for core22, sort stage-packages
  • swap default snap with core22 snap for ros humble
  • duplicate the snap github action to publish new humble track
  • add snap for core22, remove ros1, enable humble
  • Merge pull request #853 from MirkoFerrati/mirko/fix_snap remove deprecated msg from snapcraft
  • Merge pull request #846 from locusrobotics/fix-catkin-build Use a more reliable method to select buildtool
  • fix
  • MCAP loader is not faster for large files
  • fix parsers names
  • extend the Toolbox plugin interface
  • mcap updated
  • remove deprecated msg from snapcraft
  • Use a more reliable method to select buildtool
  • Merge pull request #843 from faisal-shah/date-time-format-urls Add link to QDate format string
  • Add \'tab\' as a separator in the CSV loader
  • Add link to QDate format string A link to QTime format string was there, but not QDate
  • Merge pull request #840 from jbendes/zcm-improvements Zcm improvements
  • Moved away from std function for speed
  • Fixed loading of selected channels from layout
  • Merge pull request #827 from jbendes/zcm Added zcm streaming support
  • Merge pull request #834 from rinnaz/fix-protobuf-parser-leak Fix memory leak in protobuf parser
  • Made transport text box wider
  • Looking for zcm in alternate directory first
  • A bit more stable
  • Serializing and deserializing dataloader for zcm in layout
  • fix: memory leak in protobuf parser
  • Reverted change
  • Changed to ZCM_DEFAULT_URL
  • ZCM refactored
  • ZCM works, with single type file
  • Cleaner loading dialogs
  • Added progress dialog
  • Added channel selection
  • Added data loading from files
  • A bit of simplification and bug fix
  • Added zcm streaming support
  • Add missing cstdint include
  • Contributors: Davide Faconti, Faisal Shah, Jonathan Bendes, Mirko Ferrati, Paul Bovbel, Rinat Nazarov, Zach Davis, joajfreitas

3.7.0 (2023-05-19)

  • Handle protobuf maps (#824) Protobuf maps are just repeated protobuf messages with only 2 fields \"key\" and \"value\". Extract the map\'s key and use it in the series name and skip adding series for \"key\" fields to reduce the number of non useful series. Additionally don\'t include \"value\" in the series name for the value of a map.
  • add progress dialog to MCAP loading
  • new plugin: DataTamer parser
  • performance optimization in pushBack
  • more information in MCAP error
  • optimization in MoveData
  • address #820
  • Prevent runtime_error exceptions from plugins crashing the main app (#812) Catch runtime_error exceptions thrown from the plugins and skip the throwing plugins, so that the main app can continue its normal operation.
  • fix(snap): add libzstd for mcap support (#815)
  • Update README.md
  • Add a \"central difference\" method of derivative calculation (#813)
  • Updating COMPILE dependencies to install (#810) Taken from CI: https://github.com/facontidavide/PlotJuggler/blob/main/.github/workflows/ubuntu.yaml#L20-L31
  • Fix the bug where the shared library Parquet is not linked (#807) The actual path to the shared library is in [\${PARQUET_SHARED_LIB}]{.title-ref} instead of in [\${PARQUET_LIBRARIES}]{.title-ref}.
  • Add CMake into comp vars and minor format improvements (#804) Co-authored-by: Erick G. Islas Osuna <eislasosuna@netflix.com>
  • Fix for missing preferences (#795)
  • fix typos in \"tips and tricks\" cheatsheet (#798) fix a couple of minor typos in dialog text
  • Support Proto\'s That Reference Google/Protobuf (#793)
  • Fix for segfault in DataLoadCSV destructor (#784)

    • Change order of deletion for dialogs.

    - First delete child dialog [_dateTime_dialog]{.title-ref} then parent [_dialog]{.title-ref}.

  • Add CodeQL workflow (#765)

  • [bugfix] String deserialization (#780)

  • forgot throw

  • fixing nan check (#777)

  • Update Reactive Scripts on playback loop (#771)

  • fix

  • Contributors: Alistair, AndyZe, Bartimaeus-, Connor Anderson, Davide Faconti, Erick G. Islas-Osuna, Guillaume Beuzeboc, Mark Cutler, Michael Orlov, Peter St

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.9.1
License MPL-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version main
Last Updated 2024-03-08
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.9

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.
  • Understand 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, which 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 plugins 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

The snap contains a version of PlotJuggler that can work with either ROS1 or ROS2.

Get it from the Snap Store

To install it in Ubuntu 22.04, with ROS2 support, run:

sudo snap install plotjuggler

If you are still using ROS1 (Ubuntu 20.04), install instead:

sudo snap install plotjuggler-ros

Windows Binary installer

This installer does not include ROS plugins.

Windows Installer: PlotJuggler-Windows-3.9.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

Please take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Compile from source

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

Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating PayPal or becoming 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 users to develop closed-source plugins.

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

Star History

Star History Chart

Contributors

CHANGELOG

Changelog for package plotjuggler

3.9.1 (2024-02-20)

  • embed zstd 1.5.5
  • updated lz4 1.9.4
  • PlotJuggler with Fast-CDR-2.x.x (#932)
  • fix ROS2 parser bug
  • fix #935 and #934
  • Add Sample Count to transforms
  • fix compilation in Windows
  • Contributors: Davide Faconti, Manuel Valch

3.9.0 (2024-02-04)

  • new status bar with messages from the internet
  • Merge branch \'ulog_improvement\'
  • new memes
  • quick file reload!
  • transforms have now default values from previous
  • add icons to dialog Delete Series
  • cleanup and fix ULOG
  • add ULOG parameters as 1 sample timeseries
  • fix issue #929 : numerical truncation
  • bypass truncation check
  • Fixed parsing JointState messages (#927)
  • Contributors: Davide Faconti, Martin Pecka

3.8.10 (2024-01-26)

  • Fix issue #924: crash when loading rosbag with std_msgs/Empty
  • Allow ZMQ plugin to work as server
  • Link against Abseil for macOS builds & improve macOS compile docs #845 (#905)
  • fix issue in CSV #926
  • attempt to match ambiguous ros msg within package before using external known type (#922)
  • Contributors: Davide Faconti, Manuel Valch, Will MacCormack, rugged-robotics

3.8.9 (2024-01-24)

  • fix bug #924 (messages with no fields)
  • Bugfix: Wrong curvestyle is preselected (#921)
  • Contributors: Davide Faconti, Simon Sagmeister

3.8.8 (2024-01-18)

  • new update screen
  • Update README.md
  • dig diagnostic messages
  • fix snap in CI
  • Contributors: Davide Faconti

3.8.7 (2024-01-16)

  • add \"prefix and merge\" checkbox
  • fix warning \"transparent.png\"
  • fix issue #912
  • Contributors: Davide Faconti

3.8.6 (2024-01-09)

  • fix issue #906: support nanoseconds timestamp in csv
  • fix issue #904: wring ROS odometry parsing
  • add moving variance
  • Contributors: Davide Faconti

3.8.5 (2024-01-03)

  • fix issue #901
  • Contributors: Davide Faconti

3.8.4 (2023-12-20)

  • critical bug fix: #864 #856
  • Contributors: Davide Faconti

3.8.1 (2023-11-23)

  • data_tamer added to rosx_introspection
  • Contributors: Davide Faconti

3.8.0 (2023-11-12)

  • data_tamer updated This reverts commit 4ba24c591a9a84fbfb6c0329b787d73f98a2b23b.
  • CI updated
  • qwt updated
  • Merge pull request #869 from zdavkeos/step_interpolation Add \"Steps\" when drawing curves
  • Merge pull request #870 from MirkoFerrati/patch-3 Fix missing \'22\' in the new snap core22 workflow
  • Fix missing \'22\' in the new snap core22 workflow
  • Merge pull request #849 from MirkoFerrati/mirko/core22_snap update to core22, remove ros1, enable humble instead of foxy
  • Add \"Steps\" when drawing curves
  • Remove deprecated messages from foxy
  • Skip git security check for git owner inside the snap container
  • Adapt to new snapcraft syntax for core22, sort stage-packages
  • swap default snap with core22 snap for ros humble
  • duplicate the snap github action to publish new humble track
  • add snap for core22, remove ros1, enable humble
  • Merge pull request #853 from MirkoFerrati/mirko/fix_snap remove deprecated msg from snapcraft
  • Merge pull request #846 from locusrobotics/fix-catkin-build Use a more reliable method to select buildtool
  • fix
  • MCAP loader is not faster for large files
  • fix parsers names
  • extend the Toolbox plugin interface
  • mcap updated
  • remove deprecated msg from snapcraft
  • Use a more reliable method to select buildtool
  • Merge pull request #843 from faisal-shah/date-time-format-urls Add link to QDate format string
  • Add \'tab\' as a separator in the CSV loader
  • Add link to QDate format string A link to QTime format string was there, but not QDate
  • Merge pull request #840 from jbendes/zcm-improvements Zcm improvements
  • Moved away from std function for speed
  • Fixed loading of selected channels from layout
  • Merge pull request #827 from jbendes/zcm Added zcm streaming support
  • Merge pull request #834 from rinnaz/fix-protobuf-parser-leak Fix memory leak in protobuf parser
  • Made transport text box wider
  • Looking for zcm in alternate directory first
  • A bit more stable
  • Serializing and deserializing dataloader for zcm in layout
  • fix: memory leak in protobuf parser
  • Reverted change
  • Changed to ZCM_DEFAULT_URL
  • ZCM refactored
  • ZCM works, with single type file
  • Cleaner loading dialogs
  • Added progress dialog
  • Added channel selection
  • Added data loading from files
  • A bit of simplification and bug fix
  • Added zcm streaming support
  • Add missing cstdint include
  • Contributors: Davide Faconti, Faisal Shah, Jonathan Bendes, Mirko Ferrati, Paul Bovbel, Rinat Nazarov, Zach Davis, joajfreitas

3.7.0 (2023-05-19)

  • Handle protobuf maps (#824) Protobuf maps are just repeated protobuf messages with only 2 fields \"key\" and \"value\". Extract the map\'s key and use it in the series name and skip adding series for \"key\" fields to reduce the number of non useful series. Additionally don\'t include \"value\" in the series name for the value of a map.
  • add progress dialog to MCAP loading
  • new plugin: DataTamer parser
  • performance optimization in pushBack
  • more information in MCAP error
  • optimization in MoveData
  • address #820
  • Prevent runtime_error exceptions from plugins crashing the main app (#812) Catch runtime_error exceptions thrown from the plugins and skip the throwing plugins, so that the main app can continue its normal operation.
  • fix(snap): add libzstd for mcap support (#815)
  • Update README.md
  • Add a \"central difference\" method of derivative calculation (#813)
  • Updating COMPILE dependencies to install (#810) Taken from CI: https://github.com/facontidavide/PlotJuggler/blob/main/.github/workflows/ubuntu.yaml#L20-L31
  • Fix the bug where the shared library Parquet is not linked (#807) The actual path to the shared library is in [\${PARQUET_SHARED_LIB}]{.title-ref} instead of in [\${PARQUET_LIBRARIES}]{.title-ref}.
  • Add CMake into comp vars and minor format improvements (#804) Co-authored-by: Erick G. Islas Osuna <eislasosuna@netflix.com>
  • Fix for missing preferences (#795)
  • fix typos in \"tips and tricks\" cheatsheet (#798) fix a couple of minor typos in dialog text
  • Support Proto\'s That Reference Google/Protobuf (#793)
  • Fix for segfault in DataLoadCSV destructor (#784)

    • Change order of deletion for dialogs.

    - First delete child dialog [_dateTime_dialog]{.title-ref} then parent [_dialog]{.title-ref}.

  • Add CodeQL workflow (#765)

  • [bugfix] String deserialization (#780)

  • forgot throw

  • fixing nan check (#777)

  • Update Reactive Scripts on playback loop (#771)

  • fix

  • Contributors: Alistair, AndyZe, Bartimaeus-, Connor Anderson, Davide Faconti, Erick G. Islas-Osuna, Guillaume Beuzeboc, Mark Cutler, Michael Orlov, Peter St

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.9.1
License MPL-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version main
Last Updated 2024-03-08
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.9

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.
  • Understand 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, which 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 plugins 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

The snap contains a version of PlotJuggler that can work with either ROS1 or ROS2.

Get it from the Snap Store

To install it in Ubuntu 22.04, with ROS2 support, run:

sudo snap install plotjuggler

If you are still using ROS1 (Ubuntu 20.04), install instead:

sudo snap install plotjuggler-ros

Windows Binary installer

This installer does not include ROS plugins.

Windows Installer: PlotJuggler-Windows-3.9.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

Please take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Compile from source

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

Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating PayPal or becoming 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 users to develop closed-source plugins.

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

Star History

Star History Chart

Contributors

CHANGELOG

Changelog for package plotjuggler

3.9.1 (2024-02-20)

  • embed zstd 1.5.5
  • updated lz4 1.9.4
  • PlotJuggler with Fast-CDR-2.x.x (#932)
  • fix ROS2 parser bug
  • fix #935 and #934
  • Add Sample Count to transforms
  • fix compilation in Windows
  • Contributors: Davide Faconti, Manuel Valch

3.9.0 (2024-02-04)

  • new status bar with messages from the internet
  • Merge branch \'ulog_improvement\'
  • new memes
  • quick file reload!
  • transforms have now default values from previous
  • add icons to dialog Delete Series
  • cleanup and fix ULOG
  • add ULOG parameters as 1 sample timeseries
  • fix issue #929 : numerical truncation
  • bypass truncation check
  • Fixed parsing JointState messages (#927)
  • Contributors: Davide Faconti, Martin Pecka

3.8.10 (2024-01-26)

  • Fix issue #924: crash when loading rosbag with std_msgs/Empty
  • Allow ZMQ plugin to work as server
  • Link against Abseil for macOS builds & improve macOS compile docs #845 (#905)
  • fix issue in CSV #926
  • attempt to match ambiguous ros msg within package before using external known type (#922)
  • Contributors: Davide Faconti, Manuel Valch, Will MacCormack, rugged-robotics

3.8.9 (2024-01-24)

  • fix bug #924 (messages with no fields)
  • Bugfix: Wrong curvestyle is preselected (#921)
  • Contributors: Davide Faconti, Simon Sagmeister

3.8.8 (2024-01-18)

  • new update screen
  • Update README.md
  • dig diagnostic messages
  • fix snap in CI
  • Contributors: Davide Faconti

3.8.7 (2024-01-16)

  • add \"prefix and merge\" checkbox
  • fix warning \"transparent.png\"
  • fix issue #912
  • Contributors: Davide Faconti

3.8.6 (2024-01-09)

  • fix issue #906: support nanoseconds timestamp in csv
  • fix issue #904: wring ROS odometry parsing
  • add moving variance
  • Contributors: Davide Faconti

3.8.5 (2024-01-03)

  • fix issue #901
  • Contributors: Davide Faconti

3.8.4 (2023-12-20)

  • critical bug fix: #864 #856
  • Contributors: Davide Faconti

3.8.1 (2023-11-23)

  • data_tamer added to rosx_introspection
  • Contributors: Davide Faconti

3.8.0 (2023-11-12)

  • data_tamer updated This reverts commit 4ba24c591a9a84fbfb6c0329b787d73f98a2b23b.
  • CI updated
  • qwt updated
  • Merge pull request #869 from zdavkeos/step_interpolation Add \"Steps\" when drawing curves
  • Merge pull request #870 from MirkoFerrati/patch-3 Fix missing \'22\' in the new snap core22 workflow
  • Fix missing \'22\' in the new snap core22 workflow
  • Merge pull request #849 from MirkoFerrati/mirko/core22_snap update to core22, remove ros1, enable humble instead of foxy
  • Add \"Steps\" when drawing curves
  • Remove deprecated messages from foxy
  • Skip git security check for git owner inside the snap container
  • Adapt to new snapcraft syntax for core22, sort stage-packages
  • swap default snap with core22 snap for ros humble
  • duplicate the snap github action to publish new humble track
  • add snap for core22, remove ros1, enable humble
  • Merge pull request #853 from MirkoFerrati/mirko/fix_snap remove deprecated msg from snapcraft
  • Merge pull request #846 from locusrobotics/fix-catkin-build Use a more reliable method to select buildtool
  • fix
  • MCAP loader is not faster for large files
  • fix parsers names
  • extend the Toolbox plugin interface
  • mcap updated
  • remove deprecated msg from snapcraft
  • Use a more reliable method to select buildtool
  • Merge pull request #843 from faisal-shah/date-time-format-urls Add link to QDate format string
  • Add \'tab\' as a separator in the CSV loader
  • Add link to QDate format string A link to QTime format string was there, but not QDate
  • Merge pull request #840 from jbendes/zcm-improvements Zcm improvements
  • Moved away from std function for speed
  • Fixed loading of selected channels from layout
  • Merge pull request #827 from jbendes/zcm Added zcm streaming support
  • Merge pull request #834 from rinnaz/fix-protobuf-parser-leak Fix memory leak in protobuf parser
  • Made transport text box wider
  • Looking for zcm in alternate directory first
  • A bit more stable
  • Serializing and deserializing dataloader for zcm in layout
  • fix: memory leak in protobuf parser
  • Reverted change
  • Changed to ZCM_DEFAULT_URL
  • ZCM refactored
  • ZCM works, with single type file
  • Cleaner loading dialogs
  • Added progress dialog
  • Added channel selection
  • Added data loading from files
  • A bit of simplification and bug fix
  • Added zcm streaming support
  • Add missing cstdint include
  • Contributors: Davide Faconti, Faisal Shah, Jonathan Bendes, Mirko Ferrati, Paul Bovbel, Rinat Nazarov, Zach Davis, joajfreitas

3.7.0 (2023-05-19)

  • Handle protobuf maps (#824) Protobuf maps are just repeated protobuf messages with only 2 fields \"key\" and \"value\". Extract the map\'s key and use it in the series name and skip adding series for \"key\" fields to reduce the number of non useful series. Additionally don\'t include \"value\" in the series name for the value of a map.
  • add progress dialog to MCAP loading
  • new plugin: DataTamer parser
  • performance optimization in pushBack
  • more information in MCAP error
  • optimization in MoveData
  • address #820
  • Prevent runtime_error exceptions from plugins crashing the main app (#812) Catch runtime_error exceptions thrown from the plugins and skip the throwing plugins, so that the main app can continue its normal operation.
  • fix(snap): add libzstd for mcap support (#815)
  • Update README.md
  • Add a \"central difference\" method of derivative calculation (#813)
  • Updating COMPILE dependencies to install (#810) Taken from CI: https://github.com/facontidavide/PlotJuggler/blob/main/.github/workflows/ubuntu.yaml#L20-L31
  • Fix the bug where the shared library Parquet is not linked (#807) The actual path to the shared library is in [\${PARQUET_SHARED_LIB}]{.title-ref} instead of in [\${PARQUET_LIBRARIES}]{.title-ref}.
  • Add CMake into comp vars and minor format improvements (#804) Co-authored-by: Erick G. Islas Osuna <eislasosuna@netflix.com>
  • Fix for missing preferences (#795)
  • fix typos in \"tips and tricks\" cheatsheet (#798) fix a couple of minor typos in dialog text
  • Support Proto\'s That Reference Google/Protobuf (#793)
  • Fix for segfault in DataLoadCSV destructor (#784)

    • Change order of deletion for dialogs.

    - First delete child dialog [_dateTime_dialog]{.title-ref} then parent [_dialog]{.title-ref}.

  • Add CodeQL workflow (#765)

  • [bugfix] String deserialization (#780)

  • forgot throw

  • fixing nan check (#777)

  • Update Reactive Scripts on playback loop (#771)

  • fix

  • Contributors: Alistair, AndyZe, Bartimaeus-, Connor Anderson, Davide Faconti, Erick G. Islas-Osuna, Guillaume Beuzeboc, Mark Cutler, Michael Orlov, Peter St

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.0.4
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version master
Last Updated 2023-05-19
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

CI CI Join the chat at https://gitter.im/PlotJuggler/Lobby Tweet

PlotJuggler 3.0

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

Noteworthy features:

  • Simple Drag & Drop user interface.
  • Load static 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, ROS, etc.
  • Understands data formats such as JSON, CBOR, BSON, Message Pack, etc.
  • Open Rosbags and subscribe to ROS topics (both ROS1 and ROS2).
  • 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 ;)

Just "Download and Run"

On Linux, the simplest way to install PlotJuggler is through snaps:

Get it from the Snap Store

Windows Installer: PlotJuggler_WIN_Installer-2.8.4.exe

How to build

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

On Fedora:

sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-websockets-devel qt5-qtopendl-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.

Note for ROS users

To install PlotJuggler, just type:

sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros

And run it with:

roslaunch plotjuggler_ros plotjuggler.launch

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.

If you like PlotJuggler, support it.

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.

Stargazers

Stargazers over time

CHANGELOG

Changelog for package plotjuggler

3.0.4 (2020-12-04)

  • Lua ans Sol updated (c++17
  • bug fix #350 (crash in lua)
  • Contributors: Davide Faconti

3.0.2 (2020-11-28)

  • fix icon color in dark mode
  • updated to latest Qads
  • temporary fix for #349
  • link updated
  • use correct dependency
  • fix issue #348
  • Contributors: Davide Faconti

3.0.0 (2020-11-23)

  • Trying to fix issue #346
  • Massive refactoring
  • Contributors: Davide Faconti

2.8.4 (2020-08-15)

  • readme updated
  • fix issue #318
  • fix #170 : problem with ULOG parser in Windows
  • build fixes to work on ROS2 eloquent (#314)
  • add qtpainterpath.h (#313)
  • Update datastream_sample.cpp
  • Update contributors.txt
  • Fix another sprintf buffer size warning (#303)
  • Contributors: Akash Patel, Davide Faconti, Lucas, Mike Purvis

2.8.3 (2020-07-11)

  • more memes
  • \"New versione vailable\" improved
  • fix segmentation fault when tryin reconnect to ROS master
  • Contributors: Davide Faconti

2.8.2 (2020-07-07)

  • might fix issue #301
  • fix warnings
  • fix potential mutex problem related to #300
  • bug fix
  • Update package.xml
  • updated gif
  • cherry picking changes from #290
  • fix #296
  • fix issues on windows Qt 5.15
  • fix error
  • move StatePublisher to tf2
  • revert changes
  • fix warnings
  • Contributors: Davide Faconti

2.8.1 (2020-05-28)

  • fix critical bug in streaming ROS plugin
  • Contributors: Davide Faconti

2.8.0 (2020-05-24)

  • Update CMakeLists.txt
  • Added graph context menu description (#288)
  • Update FUNDING.yml
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • finished with refactoring
  • WIP: re publisher ROS2
  • added stuff to dataload_ros2
  • Update appimage_howto.md
  • fix package name
  • embrace pj_msgs (https://github.com/facontidavide/plotjuggler_msgs)
  • new clang format and fix in header_stamp usage
  • removed marl and rule editing
  • more parsers added
  • more or less working
  • save computation like a champ with plot_data in each parser
  • precompute strings only once
  • fix compilation on ROS1
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • builtin parsers added
  • Githug actions win (#284)

    • try compiling on windows
    • Update windows.yaml
    • multiple workflows

    * Update README.md Co-authored-by: daf@blue-ocean-robotics.com <Davide Faconti>

  • bug fix

  • segfault fixed in TypeHasHeader

  • removed rosdep of pj_msgs

  • added pj_msgs to ROS2

  • fix errors

  • heavy refactoring of ROS2 plugins

  • critical bug fix in ROS2 parsing

  • try to fix problem with StringTreeLeaf::toStr

  • reduce a bit allocations overhead

  • reduce memory used by the job queue of marl, with periodic flushes

  • Contributors: Davide Faconti, Ilya Petrov

2.7.0 (2020-05-03)

  • Merge branch \'ros2\' of https://github.com/facontidavide/PlotJuggler into ros2
  • added github actions for ros2
  • last fixes to DataStreamROS2
  • implemented DataLoadRosBag2
  • compile with ament/colcon
  • Contributors: Davide Faconti

2.6.4 (2020-04-30)

  • Fix the damn icons
  • marl updated
  • fix issue #281
  • catch exception in marl
  • fix backward-cpp
  • Implement feature #274
  • Implement feature #269
  • Contributors: Davide Faconti

2.6.3 (2020-04-07)

  • Fix issue #271
  • \@veimox added
  • Bugfix/executable (#264)

    • created launching script , installing and making use of it in the icon
    • ignoring temporary folders when creating binary locally
    • corrected intsallation of script

    * using PROGRAM to install it with executable permissions Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • Feature/scalable icon (#265)

    • installing icons in /usr/share and do it at any build type
    • added scalable icon

    * removed old icon Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • fix default suffix

  • Fix bug #258

  • Contributors: Davide Faconti, Jorge Rodriguez

2.6.2 (2020-02-25)

  • bug fix in IMU parser
  • added step size for the time tracker
  • fis issue #256 (new release dialog)
  • Update README.md
  • Contributors: Davide Faconti

2.6.1 (2020-02-21)

  • fix issue #253 and some cleanup
  • fix issue #254
  • Fix #251
  • Contributors: Davide Faconti

2.6.0 (2020-02-19)

  • bug fix
  • fix splashscreen delay
  • GUI refinement
  • regex filter removed. bug fix in column resize
  • new icons in CurveList panel
  • add text placeholder
  • smaller buttons
  • moved buttons to top right corner to gain more space
  • changed style (sharper corners)
  • bug fix: potential crash trying to save data into rosbag
  • more ememes #248
  • bug fix in Lua functions
  • cleanups
  • Merge branch \'lua_scripting\'
  • Adding custom parser for Imu message (issue #238)
  • remember the last value in the function editor
  • minor update
  • Both javascript and Lua langiages can be selected in preferences
  • WIP to support both QML and Lua
  • fix menu bar size of PlotJuggler
  • scripting moved to Lua
  • adding lua stuff to 3rd party libraries
  • preliminary change to support #244 (#247)
  • preliminary change to support #244
  • Update .appveyor.yml
  • Update README.md
  • Update .appveyor.yml
  • Update .appveyor.yml
  • further cleanup
  • moved files and cleanup
  • Contributors: Davide Faconti

2.5.1 (2020-02-07)

  • Fixed slow Menu Bar
  • Use ordered map, appendData needs to insert data in order (#245) Otherwise the time order may not be respected and the data is loaded incorrectly
  • prevent call of dropEvent() when not needed
  • fix issue #239
  • add include array header file to fix build error (#234)
  • Contributors: Davide Faconti, Victor Lopez, xiaowei zhao

2.5.0 (2019-12-19)

  • Fix issues #196 and #236: allow user to use deterministic color sequence
  • fix the edit button
  • fix issue #235
  • Update appimage_howto.md
  • fix timestamp problem in streaming
  • Contributors: Davide Faconti

2.4.3 (2019-11-21)

  • less dark theme
  • bug fix
  • Contributors: Davide Faconti

2.4.2 (2019-11-18)

  • multithread ROS DataLoader
  • directories moved
  • manually resizable columns of table view
  • Contributors: Davide Faconti

2.4.1 (2019-11-11)

  • considerable speed improvement when MANY timeseries are loaded
  • bug fix: slow update of left curve table
  • AppImage update
  • meme update
  • Contributors: Davide Faconti

2.4.0 (2019-11-10)

  • Tree view (#226)
  • fix issue #225
  • add version number of the layout syntax
  • fix issue #222
  • more readable plugin names
  • fix issue #221
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • minor bug fix
  • Contributors: Davide Faconti

2.3.7 (2019-10-30)

  • Dont take invisible curve into account for axis limit computation (#185)
  • consistent line width
  • do not close() a rosbag unless you accepted the dialog
  • important bug fix: stop playback when loading new data
  • fix bug in TopicPublisher
  • do complete reset of globals in custom functions
  • apply changes discussed in #220
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • cherry picking bug fix from #220 : update custom functions Thanks \@aeudes
  • Fix F10 is ambiguous (#219)
  • fix compilation and add feature #218
  • qwt updated
  • appImage instructions updated
  • Contributors: Davide Faconti, alexandre eudes

2.3.6 (2019-10-16)

  • fix issue #215
  • Contributors: Davide Faconti

2.3.5 (2019-10-11)

  • remember the size of the splitter
  • fix inveted XY
  • Contributors: Davide Faconti
  • remember last splashscreen
  • Update README.md
  • Update appimage_howto.md
  • fix warning
  • meme fixed
  • Contributors: Davide Faconti

2.3.4 (2019-10-03)

  • prepare \"meme edition\"
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • RosMsgParsers: add cast to be clang compatible (#208)
  • Update README.md
  • Update FUNDING.yml
  • Correct \"Github\" to \"GitHub\" (#206)
  • 2.3.3
  • fix issue with FMT
  • Contributors: Dan Katzuv, Davide Faconti, Timon Engelke

2.3.3 (2019-10-01)

  • removed explicit reference to Span
  • remove abseil dependency (to be tested)
  • Contributors: Davide Faconti

2.3.2 (2019-09-30)

  • always use random color in addCurveXY
  • Fix issue #204
  • Fix issue #203
  • Add missed absl Span<T> header include
  • Add missed abseil_cpp depend
  • Contributors: Davide Faconti, Enrique Fernandez

2.3.1 (2019-09-24)

  • Fix #202 use_header_stamp not initialized for built-in types
  • Merge pull request #200 from aeudes/multiple_streamer data stream topic plugin
  • new color palette
  • Allow to have working datastreamtopic plugin in more than one plotjuggler instance
  • adding covariance to Odometry msg again
  • fix issue #187
  • Fix segfault when swap plotwidget on archlinux (qt5.12.3). This bug is introduced in: 7959e54 Spurious DragLeave fixed? And produce a segfault(nullptr) in QCursor::shape() call by QBasicDrag::updateCursor(Qt::DropAction) [trigger by plotwidget.cpp:1352 drag->exec();]. It seems to me that the change of global application cursor on leave event during drag drop operation cause the problem [is it the drop widget duty to reset cursor?].
  • minor fixes related to dark theme
  • Contributors: Alexandre Eudes, Davide Faconti

2.3.0 (2019-07-11)

  • Countless changes and merges of PR.
  • Contributors: Alexandre Eudes, Davide Faconti, Juan Francisco Rasc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.0.4
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version master
Last Updated 2023-05-19
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

CI CI Join the chat at https://gitter.im/PlotJuggler/Lobby Tweet

PlotJuggler 3.0

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

Noteworthy features:

  • Simple Drag & Drop user interface.
  • Load static 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, ROS, etc.
  • Understands data formats such as JSON, CBOR, BSON, Message Pack, etc.
  • Open Rosbags and subscribe to ROS topics (both ROS1 and ROS2).
  • 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 ;)

Just "Download and Run"

On Linux, the simplest way to install PlotJuggler is through snaps:

Get it from the Snap Store

Windows Installer: PlotJuggler_WIN_Installer-2.8.4.exe

How to build

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

On Fedora:

sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-websockets-devel qt5-qtopendl-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.

Note for ROS users

To install PlotJuggler, just type:

sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros

And run it with:

roslaunch plotjuggler_ros plotjuggler.launch

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.

If you like PlotJuggler, support it.

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.

Stargazers

Stargazers over time

CHANGELOG

Changelog for package plotjuggler

3.0.4 (2020-12-04)

  • Lua ans Sol updated (c++17
  • bug fix #350 (crash in lua)
  • Contributors: Davide Faconti

3.0.2 (2020-11-28)

  • fix icon color in dark mode
  • updated to latest Qads
  • temporary fix for #349
  • link updated
  • use correct dependency
  • fix issue #348
  • Contributors: Davide Faconti

3.0.0 (2020-11-23)

  • Trying to fix issue #346
  • Massive refactoring
  • Contributors: Davide Faconti

2.8.4 (2020-08-15)

  • readme updated
  • fix issue #318
  • fix #170 : problem with ULOG parser in Windows
  • build fixes to work on ROS2 eloquent (#314)
  • add qtpainterpath.h (#313)
  • Update datastream_sample.cpp
  • Update contributors.txt
  • Fix another sprintf buffer size warning (#303)
  • Contributors: Akash Patel, Davide Faconti, Lucas, Mike Purvis

2.8.3 (2020-07-11)

  • more memes
  • \"New versione vailable\" improved
  • fix segmentation fault when tryin reconnect to ROS master
  • Contributors: Davide Faconti

2.8.2 (2020-07-07)

  • might fix issue #301
  • fix warnings
  • fix potential mutex problem related to #300
  • bug fix
  • Update package.xml
  • updated gif
  • cherry picking changes from #290
  • fix #296
  • fix issues on windows Qt 5.15
  • fix error
  • move StatePublisher to tf2
  • revert changes
  • fix warnings
  • Contributors: Davide Faconti

2.8.1 (2020-05-28)

  • fix critical bug in streaming ROS plugin
  • Contributors: Davide Faconti

2.8.0 (2020-05-24)

  • Update CMakeLists.txt
  • Added graph context menu description (#288)
  • Update FUNDING.yml
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • finished with refactoring
  • WIP: re publisher ROS2
  • added stuff to dataload_ros2
  • Update appimage_howto.md
  • fix package name
  • embrace pj_msgs (https://github.com/facontidavide/plotjuggler_msgs)
  • new clang format and fix in header_stamp usage
  • removed marl and rule editing
  • more parsers added
  • more or less working
  • save computation like a champ with plot_data in each parser
  • precompute strings only once
  • fix compilation on ROS1
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • builtin parsers added
  • Githug actions win (#284)

    • try compiling on windows
    • Update windows.yaml
    • multiple workflows

    * Update README.md Co-authored-by: daf@blue-ocean-robotics.com <Davide Faconti>

  • bug fix

  • segfault fixed in TypeHasHeader

  • removed rosdep of pj_msgs

  • added pj_msgs to ROS2

  • fix errors

  • heavy refactoring of ROS2 plugins

  • critical bug fix in ROS2 parsing

  • try to fix problem with StringTreeLeaf::toStr

  • reduce a bit allocations overhead

  • reduce memory used by the job queue of marl, with periodic flushes

  • Contributors: Davide Faconti, Ilya Petrov

2.7.0 (2020-05-03)

  • Merge branch \'ros2\' of https://github.com/facontidavide/PlotJuggler into ros2
  • added github actions for ros2
  • last fixes to DataStreamROS2
  • implemented DataLoadRosBag2
  • compile with ament/colcon
  • Contributors: Davide Faconti

2.6.4 (2020-04-30)

  • Fix the damn icons
  • marl updated
  • fix issue #281
  • catch exception in marl
  • fix backward-cpp
  • Implement feature #274
  • Implement feature #269
  • Contributors: Davide Faconti

2.6.3 (2020-04-07)

  • Fix issue #271
  • \@veimox added
  • Bugfix/executable (#264)

    • created launching script , installing and making use of it in the icon
    • ignoring temporary folders when creating binary locally
    • corrected intsallation of script

    * using PROGRAM to install it with executable permissions Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • Feature/scalable icon (#265)

    • installing icons in /usr/share and do it at any build type
    • added scalable icon

    * removed old icon Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • fix default suffix

  • Fix bug #258

  • Contributors: Davide Faconti, Jorge Rodriguez

2.6.2 (2020-02-25)

  • bug fix in IMU parser
  • added step size for the time tracker
  • fis issue #256 (new release dialog)
  • Update README.md
  • Contributors: Davide Faconti

2.6.1 (2020-02-21)

  • fix issue #253 and some cleanup
  • fix issue #254
  • Fix #251
  • Contributors: Davide Faconti

2.6.0 (2020-02-19)

  • bug fix
  • fix splashscreen delay
  • GUI refinement
  • regex filter removed. bug fix in column resize
  • new icons in CurveList panel
  • add text placeholder
  • smaller buttons
  • moved buttons to top right corner to gain more space
  • changed style (sharper corners)
  • bug fix: potential crash trying to save data into rosbag
  • more ememes #248
  • bug fix in Lua functions
  • cleanups
  • Merge branch \'lua_scripting\'
  • Adding custom parser for Imu message (issue #238)
  • remember the last value in the function editor
  • minor update
  • Both javascript and Lua langiages can be selected in preferences
  • WIP to support both QML and Lua
  • fix menu bar size of PlotJuggler
  • scripting moved to Lua
  • adding lua stuff to 3rd party libraries
  • preliminary change to support #244 (#247)
  • preliminary change to support #244
  • Update .appveyor.yml
  • Update README.md
  • Update .appveyor.yml
  • Update .appveyor.yml
  • further cleanup
  • moved files and cleanup
  • Contributors: Davide Faconti

2.5.1 (2020-02-07)

  • Fixed slow Menu Bar
  • Use ordered map, appendData needs to insert data in order (#245) Otherwise the time order may not be respected and the data is loaded incorrectly
  • prevent call of dropEvent() when not needed
  • fix issue #239
  • add include array header file to fix build error (#234)
  • Contributors: Davide Faconti, Victor Lopez, xiaowei zhao

2.5.0 (2019-12-19)

  • Fix issues #196 and #236: allow user to use deterministic color sequence
  • fix the edit button
  • fix issue #235
  • Update appimage_howto.md
  • fix timestamp problem in streaming
  • Contributors: Davide Faconti

2.4.3 (2019-11-21)

  • less dark theme
  • bug fix
  • Contributors: Davide Faconti

2.4.2 (2019-11-18)

  • multithread ROS DataLoader
  • directories moved
  • manually resizable columns of table view
  • Contributors: Davide Faconti

2.4.1 (2019-11-11)

  • considerable speed improvement when MANY timeseries are loaded
  • bug fix: slow update of left curve table
  • AppImage update
  • meme update
  • Contributors: Davide Faconti

2.4.0 (2019-11-10)

  • Tree view (#226)
  • fix issue #225
  • add version number of the layout syntax
  • fix issue #222
  • more readable plugin names
  • fix issue #221
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • minor bug fix
  • Contributors: Davide Faconti

2.3.7 (2019-10-30)

  • Dont take invisible curve into account for axis limit computation (#185)
  • consistent line width
  • do not close() a rosbag unless you accepted the dialog
  • important bug fix: stop playback when loading new data
  • fix bug in TopicPublisher
  • do complete reset of globals in custom functions
  • apply changes discussed in #220
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • cherry picking bug fix from #220 : update custom functions Thanks \@aeudes
  • Fix F10 is ambiguous (#219)
  • fix compilation and add feature #218
  • qwt updated
  • appImage instructions updated
  • Contributors: Davide Faconti, alexandre eudes

2.3.6 (2019-10-16)

  • fix issue #215
  • Contributors: Davide Faconti

2.3.5 (2019-10-11)

  • remember the size of the splitter
  • fix inveted XY
  • Contributors: Davide Faconti
  • remember last splashscreen
  • Update README.md
  • Update appimage_howto.md
  • fix warning
  • meme fixed
  • Contributors: Davide Faconti

2.3.4 (2019-10-03)

  • prepare \"meme edition\"
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • RosMsgParsers: add cast to be clang compatible (#208)
  • Update README.md
  • Update FUNDING.yml
  • Correct \"Github\" to \"GitHub\" (#206)
  • 2.3.3
  • fix issue with FMT
  • Contributors: Dan Katzuv, Davide Faconti, Timon Engelke

2.3.3 (2019-10-01)

  • removed explicit reference to Span
  • remove abseil dependency (to be tested)
  • Contributors: Davide Faconti

2.3.2 (2019-09-30)

  • always use random color in addCurveXY
  • Fix issue #204
  • Fix issue #203
  • Add missed absl Span<T> header include
  • Add missed abseil_cpp depend
  • Contributors: Davide Faconti, Enrique Fernandez

2.3.1 (2019-09-24)

  • Fix #202 use_header_stamp not initialized for built-in types
  • Merge pull request #200 from aeudes/multiple_streamer data stream topic plugin
  • new color palette
  • Allow to have working datastreamtopic plugin in more than one plotjuggler instance
  • adding covariance to Odometry msg again
  • fix issue #187
  • Fix segfault when swap plotwidget on archlinux (qt5.12.3). This bug is introduced in: 7959e54 Spurious DragLeave fixed? And produce a segfault(nullptr) in QCursor::shape() call by QBasicDrag::updateCursor(Qt::DropAction) [trigger by plotwidget.cpp:1352 drag->exec();]. It seems to me that the change of global application cursor on leave event during drag drop operation cause the problem [is it the drop widget duty to reset cursor?].
  • minor fixes related to dark theme
  • Contributors: Alexandre Eudes, Davide Faconti

2.3.0 (2019-07-11)

  • Countless changes and merges of PR.
  • Contributors: Alexandre Eudes, Davide Faconti, Juan Francisco Rasc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.0.4
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version master
Last Updated 2023-05-19
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

CI CI Join the chat at https://gitter.im/PlotJuggler/Lobby Tweet

PlotJuggler 3.0

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

Noteworthy features:

  • Simple Drag & Drop user interface.
  • Load static 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, ROS, etc.
  • Understands data formats such as JSON, CBOR, BSON, Message Pack, etc.
  • Open Rosbags and subscribe to ROS topics (both ROS1 and ROS2).
  • 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 ;)

Just "Download and Run"

On Linux, the simplest way to install PlotJuggler is through snaps:

Get it from the Snap Store

Windows Installer: PlotJuggler_WIN_Installer-2.8.4.exe

How to build

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

On Fedora:

sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-websockets-devel qt5-qtopendl-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.

Note for ROS users

To install PlotJuggler, just type:

sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros

And run it with:

roslaunch plotjuggler_ros plotjuggler.launch

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.

If you like PlotJuggler, support it.

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.

Stargazers

Stargazers over time

CHANGELOG

Changelog for package plotjuggler

3.0.4 (2020-12-04)

  • Lua ans Sol updated (c++17
  • bug fix #350 (crash in lua)
  • Contributors: Davide Faconti

3.0.2 (2020-11-28)

  • fix icon color in dark mode
  • updated to latest Qads
  • temporary fix for #349
  • link updated
  • use correct dependency
  • fix issue #348
  • Contributors: Davide Faconti

3.0.0 (2020-11-23)

  • Trying to fix issue #346
  • Massive refactoring
  • Contributors: Davide Faconti

2.8.4 (2020-08-15)

  • readme updated
  • fix issue #318
  • fix #170 : problem with ULOG parser in Windows
  • build fixes to work on ROS2 eloquent (#314)
  • add qtpainterpath.h (#313)
  • Update datastream_sample.cpp
  • Update contributors.txt
  • Fix another sprintf buffer size warning (#303)
  • Contributors: Akash Patel, Davide Faconti, Lucas, Mike Purvis

2.8.3 (2020-07-11)

  • more memes
  • \"New versione vailable\" improved
  • fix segmentation fault when tryin reconnect to ROS master
  • Contributors: Davide Faconti

2.8.2 (2020-07-07)

  • might fix issue #301
  • fix warnings
  • fix potential mutex problem related to #300
  • bug fix
  • Update package.xml
  • updated gif
  • cherry picking changes from #290
  • fix #296
  • fix issues on windows Qt 5.15
  • fix error
  • move StatePublisher to tf2
  • revert changes
  • fix warnings
  • Contributors: Davide Faconti

2.8.1 (2020-05-28)

  • fix critical bug in streaming ROS plugin
  • Contributors: Davide Faconti

2.8.0 (2020-05-24)

  • Update CMakeLists.txt
  • Added graph context menu description (#288)
  • Update FUNDING.yml
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • finished with refactoring
  • WIP: re publisher ROS2
  • added stuff to dataload_ros2
  • Update appimage_howto.md
  • fix package name
  • embrace pj_msgs (https://github.com/facontidavide/plotjuggler_msgs)
  • new clang format and fix in header_stamp usage
  • removed marl and rule editing
  • more parsers added
  • more or less working
  • save computation like a champ with plot_data in each parser
  • precompute strings only once
  • fix compilation on ROS1
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • builtin parsers added
  • Githug actions win (#284)

    • try compiling on windows
    • Update windows.yaml
    • multiple workflows

    * Update README.md Co-authored-by: daf@blue-ocean-robotics.com <Davide Faconti>

  • bug fix

  • segfault fixed in TypeHasHeader

  • removed rosdep of pj_msgs

  • added pj_msgs to ROS2

  • fix errors

  • heavy refactoring of ROS2 plugins

  • critical bug fix in ROS2 parsing

  • try to fix problem with StringTreeLeaf::toStr

  • reduce a bit allocations overhead

  • reduce memory used by the job queue of marl, with periodic flushes

  • Contributors: Davide Faconti, Ilya Petrov

2.7.0 (2020-05-03)

  • Merge branch \'ros2\' of https://github.com/facontidavide/PlotJuggler into ros2
  • added github actions for ros2
  • last fixes to DataStreamROS2
  • implemented DataLoadRosBag2
  • compile with ament/colcon
  • Contributors: Davide Faconti

2.6.4 (2020-04-30)

  • Fix the damn icons
  • marl updated
  • fix issue #281
  • catch exception in marl
  • fix backward-cpp
  • Implement feature #274
  • Implement feature #269
  • Contributors: Davide Faconti

2.6.3 (2020-04-07)

  • Fix issue #271
  • \@veimox added
  • Bugfix/executable (#264)

    • created launching script , installing and making use of it in the icon
    • ignoring temporary folders when creating binary locally
    • corrected intsallation of script

    * using PROGRAM to install it with executable permissions Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • Feature/scalable icon (#265)

    • installing icons in /usr/share and do it at any build type
    • added scalable icon

    * removed old icon Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • fix default suffix

  • Fix bug #258

  • Contributors: Davide Faconti, Jorge Rodriguez

2.6.2 (2020-02-25)

  • bug fix in IMU parser
  • added step size for the time tracker
  • fis issue #256 (new release dialog)
  • Update README.md
  • Contributors: Davide Faconti

2.6.1 (2020-02-21)

  • fix issue #253 and some cleanup
  • fix issue #254
  • Fix #251
  • Contributors: Davide Faconti

2.6.0 (2020-02-19)

  • bug fix
  • fix splashscreen delay
  • GUI refinement
  • regex filter removed. bug fix in column resize
  • new icons in CurveList panel
  • add text placeholder
  • smaller buttons
  • moved buttons to top right corner to gain more space
  • changed style (sharper corners)
  • bug fix: potential crash trying to save data into rosbag
  • more ememes #248
  • bug fix in Lua functions
  • cleanups
  • Merge branch \'lua_scripting\'
  • Adding custom parser for Imu message (issue #238)
  • remember the last value in the function editor
  • minor update
  • Both javascript and Lua langiages can be selected in preferences
  • WIP to support both QML and Lua
  • fix menu bar size of PlotJuggler
  • scripting moved to Lua
  • adding lua stuff to 3rd party libraries
  • preliminary change to support #244 (#247)
  • preliminary change to support #244
  • Update .appveyor.yml
  • Update README.md
  • Update .appveyor.yml
  • Update .appveyor.yml
  • further cleanup
  • moved files and cleanup
  • Contributors: Davide Faconti

2.5.1 (2020-02-07)

  • Fixed slow Menu Bar
  • Use ordered map, appendData needs to insert data in order (#245) Otherwise the time order may not be respected and the data is loaded incorrectly
  • prevent call of dropEvent() when not needed
  • fix issue #239
  • add include array header file to fix build error (#234)
  • Contributors: Davide Faconti, Victor Lopez, xiaowei zhao

2.5.0 (2019-12-19)

  • Fix issues #196 and #236: allow user to use deterministic color sequence
  • fix the edit button
  • fix issue #235
  • Update appimage_howto.md
  • fix timestamp problem in streaming
  • Contributors: Davide Faconti

2.4.3 (2019-11-21)

  • less dark theme
  • bug fix
  • Contributors: Davide Faconti

2.4.2 (2019-11-18)

  • multithread ROS DataLoader
  • directories moved
  • manually resizable columns of table view
  • Contributors: Davide Faconti

2.4.1 (2019-11-11)

  • considerable speed improvement when MANY timeseries are loaded
  • bug fix: slow update of left curve table
  • AppImage update
  • meme update
  • Contributors: Davide Faconti

2.4.0 (2019-11-10)

  • Tree view (#226)
  • fix issue #225
  • add version number of the layout syntax
  • fix issue #222
  • more readable plugin names
  • fix issue #221
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • minor bug fix
  • Contributors: Davide Faconti

2.3.7 (2019-10-30)

  • Dont take invisible curve into account for axis limit computation (#185)
  • consistent line width
  • do not close() a rosbag unless you accepted the dialog
  • important bug fix: stop playback when loading new data
  • fix bug in TopicPublisher
  • do complete reset of globals in custom functions
  • apply changes discussed in #220
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • cherry picking bug fix from #220 : update custom functions Thanks \@aeudes
  • Fix F10 is ambiguous (#219)
  • fix compilation and add feature #218
  • qwt updated
  • appImage instructions updated
  • Contributors: Davide Faconti, alexandre eudes

2.3.6 (2019-10-16)

  • fix issue #215
  • Contributors: Davide Faconti

2.3.5 (2019-10-11)

  • remember the size of the splitter
  • fix inveted XY
  • Contributors: Davide Faconti
  • remember last splashscreen
  • Update README.md
  • Update appimage_howto.md
  • fix warning
  • meme fixed
  • Contributors: Davide Faconti

2.3.4 (2019-10-03)

  • prepare \"meme edition\"
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • RosMsgParsers: add cast to be clang compatible (#208)
  • Update README.md
  • Update FUNDING.yml
  • Correct \"Github\" to \"GitHub\" (#206)
  • 2.3.3
  • fix issue with FMT
  • Contributors: Dan Katzuv, Davide Faconti, Timon Engelke

2.3.3 (2019-10-01)

  • removed explicit reference to Span
  • remove abseil dependency (to be tested)
  • Contributors: Davide Faconti

2.3.2 (2019-09-30)

  • always use random color in addCurveXY
  • Fix issue #204
  • Fix issue #203
  • Add missed absl Span<T> header include
  • Add missed abseil_cpp depend
  • Contributors: Davide Faconti, Enrique Fernandez

2.3.1 (2019-09-24)

  • Fix #202 use_header_stamp not initialized for built-in types
  • Merge pull request #200 from aeudes/multiple_streamer data stream topic plugin
  • new color palette
  • Allow to have working datastreamtopic plugin in more than one plotjuggler instance
  • adding covariance to Odometry msg again
  • fix issue #187
  • Fix segfault when swap plotwidget on archlinux (qt5.12.3). This bug is introduced in: 7959e54 Spurious DragLeave fixed? And produce a segfault(nullptr) in QCursor::shape() call by QBasicDrag::updateCursor(Qt::DropAction) [trigger by plotwidget.cpp:1352 drag->exec();]. It seems to me that the change of global application cursor on leave event during drag drop operation cause the problem [is it the drop widget duty to reset cursor?].
  • minor fixes related to dark theme
  • Contributors: Alexandre Eudes, Davide Faconti

2.3.0 (2019-07-11)

  • Countless changes and merges of PR.
  • Contributors: Alexandre Eudes, Davide Faconti, Juan Francisco Rasc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.0.4
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version master
Last Updated 2023-05-19
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

CI CI Join the chat at https://gitter.im/PlotJuggler/Lobby Tweet

PlotJuggler 3.0

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

Noteworthy features:

  • Simple Drag & Drop user interface.
  • Load static 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, ROS, etc.
  • Understands data formats such as JSON, CBOR, BSON, Message Pack, etc.
  • Open Rosbags and subscribe to ROS topics (both ROS1 and ROS2).
  • 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 ;)

Just "Download and Run"

On Linux, the simplest way to install PlotJuggler is through snaps:

Get it from the Snap Store

Windows Installer: PlotJuggler_WIN_Installer-2.8.4.exe

How to build

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

On Fedora:

sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-websockets-devel qt5-qtopendl-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.

Note for ROS users

To install PlotJuggler, just type:

sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros

And run it with:

roslaunch plotjuggler_ros plotjuggler.launch

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.

If you like PlotJuggler, support it.

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.

Stargazers

Stargazers over time

CHANGELOG

Changelog for package plotjuggler

3.0.4 (2020-12-04)

  • Lua ans Sol updated (c++17
  • bug fix #350 (crash in lua)
  • Contributors: Davide Faconti

3.0.2 (2020-11-28)

  • fix icon color in dark mode
  • updated to latest Qads
  • temporary fix for #349
  • link updated
  • use correct dependency
  • fix issue #348
  • Contributors: Davide Faconti

3.0.0 (2020-11-23)

  • Trying to fix issue #346
  • Massive refactoring
  • Contributors: Davide Faconti

2.8.4 (2020-08-15)

  • readme updated
  • fix issue #318
  • fix #170 : problem with ULOG parser in Windows
  • build fixes to work on ROS2 eloquent (#314)
  • add qtpainterpath.h (#313)
  • Update datastream_sample.cpp
  • Update contributors.txt
  • Fix another sprintf buffer size warning (#303)
  • Contributors: Akash Patel, Davide Faconti, Lucas, Mike Purvis

2.8.3 (2020-07-11)

  • more memes
  • \"New versione vailable\" improved
  • fix segmentation fault when tryin reconnect to ROS master
  • Contributors: Davide Faconti

2.8.2 (2020-07-07)

  • might fix issue #301
  • fix warnings
  • fix potential mutex problem related to #300
  • bug fix
  • Update package.xml
  • updated gif
  • cherry picking changes from #290
  • fix #296
  • fix issues on windows Qt 5.15
  • fix error
  • move StatePublisher to tf2
  • revert changes
  • fix warnings
  • Contributors: Davide Faconti

2.8.1 (2020-05-28)

  • fix critical bug in streaming ROS plugin
  • Contributors: Davide Faconti

2.8.0 (2020-05-24)

  • Update CMakeLists.txt
  • Added graph context menu description (#288)
  • Update FUNDING.yml
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • finished with refactoring
  • WIP: re publisher ROS2
  • added stuff to dataload_ros2
  • Update appimage_howto.md
  • fix package name
  • embrace pj_msgs (https://github.com/facontidavide/plotjuggler_msgs)
  • new clang format and fix in header_stamp usage
  • removed marl and rule editing
  • more parsers added
  • more or less working
  • save computation like a champ with plot_data in each parser
  • precompute strings only once
  • fix compilation on ROS1
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • builtin parsers added
  • Githug actions win (#284)

    • try compiling on windows
    • Update windows.yaml
    • multiple workflows

    * Update README.md Co-authored-by: daf@blue-ocean-robotics.com <Davide Faconti>

  • bug fix

  • segfault fixed in TypeHasHeader

  • removed rosdep of pj_msgs

  • added pj_msgs to ROS2

  • fix errors

  • heavy refactoring of ROS2 plugins

  • critical bug fix in ROS2 parsing

  • try to fix problem with StringTreeLeaf::toStr

  • reduce a bit allocations overhead

  • reduce memory used by the job queue of marl, with periodic flushes

  • Contributors: Davide Faconti, Ilya Petrov

2.7.0 (2020-05-03)

  • Merge branch \'ros2\' of https://github.com/facontidavide/PlotJuggler into ros2
  • added github actions for ros2
  • last fixes to DataStreamROS2
  • implemented DataLoadRosBag2
  • compile with ament/colcon
  • Contributors: Davide Faconti

2.6.4 (2020-04-30)

  • Fix the damn icons
  • marl updated
  • fix issue #281
  • catch exception in marl
  • fix backward-cpp
  • Implement feature #274
  • Implement feature #269
  • Contributors: Davide Faconti

2.6.3 (2020-04-07)

  • Fix issue #271
  • \@veimox added
  • Bugfix/executable (#264)

    • created launching script , installing and making use of it in the icon
    • ignoring temporary folders when creating binary locally
    • corrected intsallation of script

    * using PROGRAM to install it with executable permissions Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • Feature/scalable icon (#265)

    • installing icons in /usr/share and do it at any build type
    • added scalable icon

    * removed old icon Co-authored-by: Jorge Rodriguez <jr@blue-ocean-robotics.com>

  • fix default suffix

  • Fix bug #258

  • Contributors: Davide Faconti, Jorge Rodriguez

2.6.2 (2020-02-25)

  • bug fix in IMU parser
  • added step size for the time tracker
  • fis issue #256 (new release dialog)
  • Update README.md
  • Contributors: Davide Faconti

2.6.1 (2020-02-21)

  • fix issue #253 and some cleanup
  • fix issue #254
  • Fix #251
  • Contributors: Davide Faconti

2.6.0 (2020-02-19)

  • bug fix
  • fix splashscreen delay
  • GUI refinement
  • regex filter removed. bug fix in column resize
  • new icons in CurveList panel
  • add text placeholder
  • smaller buttons
  • moved buttons to top right corner to gain more space
  • changed style (sharper corners)
  • bug fix: potential crash trying to save data into rosbag
  • more ememes #248
  • bug fix in Lua functions
  • cleanups
  • Merge branch \'lua_scripting\'
  • Adding custom parser for Imu message (issue #238)
  • remember the last value in the function editor
  • minor update
  • Both javascript and Lua langiages can be selected in preferences
  • WIP to support both QML and Lua
  • fix menu bar size of PlotJuggler
  • scripting moved to Lua
  • adding lua stuff to 3rd party libraries
  • preliminary change to support #244 (#247)
  • preliminary change to support #244
  • Update .appveyor.yml
  • Update README.md
  • Update .appveyor.yml
  • Update .appveyor.yml
  • further cleanup
  • moved files and cleanup
  • Contributors: Davide Faconti

2.5.1 (2020-02-07)

  • Fixed slow Menu Bar
  • Use ordered map, appendData needs to insert data in order (#245) Otherwise the time order may not be respected and the data is loaded incorrectly
  • prevent call of dropEvent() when not needed
  • fix issue #239
  • add include array header file to fix build error (#234)
  • Contributors: Davide Faconti, Victor Lopez, xiaowei zhao

2.5.0 (2019-12-19)

  • Fix issues #196 and #236: allow user to use deterministic color sequence
  • fix the edit button
  • fix issue #235
  • Update appimage_howto.md
  • fix timestamp problem in streaming
  • Contributors: Davide Faconti

2.4.3 (2019-11-21)

  • less dark theme
  • bug fix
  • Contributors: Davide Faconti

2.4.2 (2019-11-18)

  • multithread ROS DataLoader
  • directories moved
  • manually resizable columns of table view
  • Contributors: Davide Faconti

2.4.1 (2019-11-11)

  • considerable speed improvement when MANY timeseries are loaded
  • bug fix: slow update of left curve table
  • AppImage update
  • meme update
  • Contributors: Davide Faconti

2.4.0 (2019-11-10)

  • Tree view (#226)
  • fix issue #225
  • add version number of the layout syntax
  • fix issue #222
  • more readable plugin names
  • fix issue #221
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • minor bug fix
  • Contributors: Davide Faconti

2.3.7 (2019-10-30)

  • Dont take invisible curve into account for axis limit computation (#185)
  • consistent line width
  • do not close() a rosbag unless you accepted the dialog
  • important bug fix: stop playback when loading new data
  • fix bug in TopicPublisher
  • do complete reset of globals in custom functions
  • apply changes discussed in #220
  • Merge branch \'master\' of github.com:facontidavide/PlotJuggler
  • cherry picking bug fix from #220 : update custom functions Thanks \@aeudes
  • Fix F10 is ambiguous (#219)
  • fix compilation and add feature #218
  • qwt updated
  • appImage instructions updated
  • Contributors: Davide Faconti, alexandre eudes

2.3.6 (2019-10-16)

  • fix issue #215
  • Contributors: Davide Faconti

2.3.5 (2019-10-11)

  • remember the size of the splitter
  • fix inveted XY
  • Contributors: Davide Faconti
  • remember last splashscreen
  • Update README.md
  • Update appimage_howto.md
  • fix warning
  • meme fixed
  • Contributors: Davide Faconti

2.3.4 (2019-10-03)

  • prepare \"meme edition\"
  • Merge branch \'master\' of https://github.com/facontidavide/PlotJuggler
  • RosMsgParsers: add cast to be clang compatible (#208)
  • Update README.md
  • Update FUNDING.yml
  • Correct \"Github\" to \"GitHub\" (#206)
  • 2.3.3
  • fix issue with FMT
  • Contributors: Dan Katzuv, Davide Faconti, Timon Engelke

2.3.3 (2019-10-01)

  • removed explicit reference to Span
  • remove abseil dependency (to be tested)
  • Contributors: Davide Faconti

2.3.2 (2019-09-30)

  • always use random color in addCurveXY
  • Fix issue #204
  • Fix issue #203
  • Add missed absl Span<T> header include
  • Add missed abseil_cpp depend
  • Contributors: Davide Faconti, Enrique Fernandez

2.3.1 (2019-09-24)

  • Fix #202 use_header_stamp not initialized for built-in types
  • Merge pull request #200 from aeudes/multiple_streamer data stream topic plugin
  • new color palette
  • Allow to have working datastreamtopic plugin in more than one plotjuggler instance
  • adding covariance to Odometry msg again
  • fix issue #187
  • Fix segfault when swap plotwidget on archlinux (qt5.12.3). This bug is introduced in: 7959e54 Spurious DragLeave fixed? And produce a segfault(nullptr) in QCursor::shape() call by QBasicDrag::updateCursor(Qt::DropAction) [trigger by plotwidget.cpp:1352 drag->exec();]. It seems to me that the change of global application cursor on leave event during drag drop operation cause the problem [is it the drop widget duty to reset cursor?].
  • minor fixes related to dark theme
  • Contributors: Alexandre Eudes, Davide Faconti

2.3.0 (2019-07-11)

  • Countless changes and merges of PR.
  • Contributors: Alexandre Eudes, Davide Faconti, Juan Francisco Rasc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange

plotjuggler package from plotjuggler repo

plotjuggler

Package Summary

Tags No category tags.
Version 3.9.1
License MPL-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/PlotJuggler.git
VCS Type git
VCS Version main
Last Updated 2024-03-08
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

PlotJuggler: juggle with data

Additional Links

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

PlotJuggler

windows ubuntu macos ROS1 ROS2 Tweet

Gold Sponsor: Greenzie

PlotJuggler 3.9

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.
  • Understand 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, which 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 plugins 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

The snap contains a version of PlotJuggler that can work with either ROS1 or ROS2.

Get it from the Snap Store

To install it in Ubuntu 22.04, with ROS2 support, run:

sudo snap install plotjuggler

If you are still using ROS1 (Ubuntu 20.04), install instead:

sudo snap install plotjuggler-ros

Windows Binary installer

This installer does not include ROS plugins.

Windows Installer: PlotJuggler-Windows-3.9.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

Please take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.

Compile from source

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

Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating PayPal or becoming 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 users to develop closed-source plugins.

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

Star History

Star History Chart

Contributors

CHANGELOG

Changelog for package plotjuggler

3.9.1 (2024-02-20)

  • embed zstd 1.5.5
  • updated lz4 1.9.4
  • PlotJuggler with Fast-CDR-2.x.x (#932)
  • fix ROS2 parser bug
  • fix #935 and #934
  • Add Sample Count to transforms
  • fix compilation in Windows
  • Contributors: Davide Faconti, Manuel Valch

3.9.0 (2024-02-04)

  • new status bar with messages from the internet
  • Merge branch \'ulog_improvement\'
  • new memes
  • quick file reload!
  • transforms have now default values from previous
  • add icons to dialog Delete Series
  • cleanup and fix ULOG
  • add ULOG parameters as 1 sample timeseries
  • fix issue #929 : numerical truncation
  • bypass truncation check
  • Fixed parsing JointState messages (#927)
  • Contributors: Davide Faconti, Martin Pecka

3.8.10 (2024-01-26)

  • Fix issue #924: crash when loading rosbag with std_msgs/Empty
  • Allow ZMQ plugin to work as server
  • Link against Abseil for macOS builds & improve macOS compile docs #845 (#905)
  • fix issue in CSV #926
  • attempt to match ambiguous ros msg within package before using external known type (#922)
  • Contributors: Davide Faconti, Manuel Valch, Will MacCormack, rugged-robotics

3.8.9 (2024-01-24)

  • fix bug #924 (messages with no fields)
  • Bugfix: Wrong curvestyle is preselected (#921)
  • Contributors: Davide Faconti, Simon Sagmeister

3.8.8 (2024-01-18)

  • new update screen
  • Update README.md
  • dig diagnostic messages
  • fix snap in CI
  • Contributors: Davide Faconti

3.8.7 (2024-01-16)

  • add \"prefix and merge\" checkbox
  • fix warning \"transparent.png\"
  • fix issue #912
  • Contributors: Davide Faconti

3.8.6 (2024-01-09)

  • fix issue #906: support nanoseconds timestamp in csv
  • fix issue #904: wring ROS odometry parsing
  • add moving variance
  • Contributors: Davide Faconti

3.8.5 (2024-01-03)

  • fix issue #901
  • Contributors: Davide Faconti

3.8.4 (2023-12-20)

  • critical bug fix: #864 #856
  • Contributors: Davide Faconti

3.8.1 (2023-11-23)

  • data_tamer added to rosx_introspection
  • Contributors: Davide Faconti

3.8.0 (2023-11-12)

  • data_tamer updated This reverts commit 4ba24c591a9a84fbfb6c0329b787d73f98a2b23b.
  • CI updated
  • qwt updated
  • Merge pull request #869 from zdavkeos/step_interpolation Add \"Steps\" when drawing curves
  • Merge pull request #870 from MirkoFerrati/patch-3 Fix missing \'22\' in the new snap core22 workflow
  • Fix missing \'22\' in the new snap core22 workflow
  • Merge pull request #849 from MirkoFerrati/mirko/core22_snap update to core22, remove ros1, enable humble instead of foxy
  • Add \"Steps\" when drawing curves
  • Remove deprecated messages from foxy
  • Skip git security check for git owner inside the snap container
  • Adapt to new snapcraft syntax for core22, sort stage-packages
  • swap default snap with core22 snap for ros humble
  • duplicate the snap github action to publish new humble track
  • add snap for core22, remove ros1, enable humble
  • Merge pull request #853 from MirkoFerrati/mirko/fix_snap remove deprecated msg from snapcraft
  • Merge pull request #846 from locusrobotics/fix-catkin-build Use a more reliable method to select buildtool
  • fix
  • MCAP loader is not faster for large files
  • fix parsers names
  • extend the Toolbox plugin interface
  • mcap updated
  • remove deprecated msg from snapcraft
  • Use a more reliable method to select buildtool
  • Merge pull request #843 from faisal-shah/date-time-format-urls Add link to QDate format string
  • Add \'tab\' as a separator in the CSV loader
  • Add link to QDate format string A link to QTime format string was there, but not QDate
  • Merge pull request #840 from jbendes/zcm-improvements Zcm improvements
  • Moved away from std function for speed
  • Fixed loading of selected channels from layout
  • Merge pull request #827 from jbendes/zcm Added zcm streaming support
  • Merge pull request #834 from rinnaz/fix-protobuf-parser-leak Fix memory leak in protobuf parser
  • Made transport text box wider
  • Looking for zcm in alternate directory first
  • A bit more stable
  • Serializing and deserializing dataloader for zcm in layout
  • fix: memory leak in protobuf parser
  • Reverted change
  • Changed to ZCM_DEFAULT_URL
  • ZCM refactored
  • ZCM works, with single type file
  • Cleaner loading dialogs
  • Added progress dialog
  • Added channel selection
  • Added data loading from files
  • A bit of simplification and bug fix
  • Added zcm streaming support
  • Add missing cstdint include
  • Contributors: Davide Faconti, Faisal Shah, Jonathan Bendes, Mirko Ferrati, Paul Bovbel, Rinat Nazarov, Zach Davis, joajfreitas

3.7.0 (2023-05-19)

  • Handle protobuf maps (#824) Protobuf maps are just repeated protobuf messages with only 2 fields \"key\" and \"value\". Extract the map\'s key and use it in the series name and skip adding series for \"key\" fields to reduce the number of non useful series. Additionally don\'t include \"value\" in the series name for the value of a map.
  • add progress dialog to MCAP loading
  • new plugin: DataTamer parser
  • performance optimization in pushBack
  • more information in MCAP error
  • optimization in MoveData
  • address #820
  • Prevent runtime_error exceptions from plugins crashing the main app (#812) Catch runtime_error exceptions thrown from the plugins and skip the throwing plugins, so that the main app can continue its normal operation.
  • fix(snap): add libzstd for mcap support (#815)
  • Update README.md
  • Add a \"central difference\" method of derivative calculation (#813)
  • Updating COMPILE dependencies to install (#810) Taken from CI: https://github.com/facontidavide/PlotJuggler/blob/main/.github/workflows/ubuntu.yaml#L20-L31
  • Fix the bug where the shared library Parquet is not linked (#807) The actual path to the shared library is in [\${PARQUET_SHARED_LIB}]{.title-ref} instead of in [\${PARQUET_LIBRARIES}]{.title-ref}.
  • Add CMake into comp vars and minor format improvements (#804) Co-authored-by: Erick G. Islas Osuna <eislasosuna@netflix.com>
  • Fix for missing preferences (#795)
  • fix typos in \"tips and tricks\" cheatsheet (#798) fix a couple of minor typos in dialog text
  • Support Proto\'s That Reference Google/Protobuf (#793)
  • Fix for segfault in DataLoadCSV destructor (#784)

    • Change order of deletion for dialogs.

    - First delete child dialog [_dateTime_dialog]{.title-ref} then parent [_dialog]{.title-ref}.

  • Add CodeQL workflow (#765)

  • [bugfix] String deserialization (#780)

  • forgot throw

  • fixing nan check (#777)

  • Update Reactive Scripts on playback loop (#771)

  • fix

  • Contributors: Alistair, AndyZe, Bartimaeus-, Connor Anderson, Davide Faconti, Erick G. Islas-Osuna, Guillaume Beuzeboc, Mark Cutler, Michael Orlov, Peter St

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged plotjuggler at Robotics Stack Exchange