Skip to main content

DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.

Project description

DearBagPlayer

DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.

Quick Start

Install dependencies:

pip install dearpygui numpy
pip install --extra-index-url https://rospypi.github.io/simple/ rosbag

Install DearBagPlayer:

pip install dearbagplayer

Run DearBagPlayer:

dearbagplayer

See features below to take a quick look at the main features.

This project is still under developing, see TODO for future work. Currently DearBagPlayer only supports topics that contain data entities with type of int, float, bool and lists or tuples with fixed size.

Dependencies

  • Windows 10 or at least Ubuntu 18.04 LTS
  • Python 3 - Tested on Python 3.9, should work on other Python 3 versions as well
  • DearPyGui
  • NumPy
  • rosbag

Features

Load data from rosbag files

Load up to 10 bag files each time to load data into the data pool.

Drag to plot

Select entities first and drag them to the plot area, drop to plot. Three types of plot enabled:

  • Time series plot (drag and drop directly)
  • XY plot (with ctrl key)
  • Data vs. travel distance plot (with shift key)

Flexible timeline modification

  • Play forward/backward
  • Modify play speed
  • Sync timestamp by drag timeline
  • Play in loop

Zoom in/out at runtime, create new plot tab, delete and clear plots

  • Zoom in/out at runtime
  • Create new plot tab
  • Delete single plot by right-click button of the legend
  • Clear all plots in the activated plot tab with one click

TODO

  • DearBagPlayer
    • Data pool:
      • Get message struct from rosbag
      • Get information of all the topics in a rosbag file
      • Load and maintain a data dict for each topic (especially with different timestamps)
      • Create selectable items for each message entity that has the type of int, float or bool
      • Select bag files (up to 10 each time) to load data into the data pool
      • Select dragged topic when it is not yet selected
      • Add widgets to specify topics to read from bag files (currently it has the feature of specifying topics in code)
    • Drag and drop callbacks to plot:
      • Drag time series to plot
      • Drag XY plot (drop with ctrl key)
      • Drag data vs. travel distance plot (drop with shift key)
    • Timeline management:
      • Play forward/backward
      • Modify play speed (-5 to 5)
      • Sync timestamp by drag timeline
      • Drag timestamp in a time series plot and sync timeline
      • Add button to enable/disable playing in loop
    • Plots:
      • Create new plot tab with 2x2 subplots
      • Enable drop callbacks (single time series)
      • Enable drop callbacks (XY plot)
      • Enable drop callbacks (Data vs. travel distance)
      • Clear all plots in the activated plot tab with one click
      • Create new plot tab with one click
      • Enable closing plot tab
      • Enable closing all series in a plot tab
      • Enable renaming plot tab
      • Resize at runtime
      • Split plots vertically or horizontally at runtime
      • Copy plots or save to files
    • Enable live streaming
    • Enable publishing
    • Save and load config files
    • Packaging
      • Convert DearBagPlayer to a Python package
      • Add entry point for CLI usage
      • Configure setup
      • Release to PyPI

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DearBagPlayer-0.1.2.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

DearBagPlayer-0.1.2-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file DearBagPlayer-0.1.2.tar.gz.

File metadata

  • Download URL: DearBagPlayer-0.1.2.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.7

File hashes

Hashes for DearBagPlayer-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e5b385d29d18f084e15cf8f359767d65d8d614d581a031c70e6b334fe5e3c5d8
MD5 c0ce1529f82744b60ed206b356e098ff
BLAKE2b-256 27c4942471d6b2f2bf9094da8bb8337279d2d8f4192c18ea0e2b0827c8f41c3d

See more details on using hashes here.

File details

Details for the file DearBagPlayer-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: DearBagPlayer-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.7

File hashes

Hashes for DearBagPlayer-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f924f40dff4cdd031d09a85762afb7ed55e0f9fcdbbd6a51ce74fbc9e2226d66
MD5 2532233f93ae968f3d9ccdfcde2eca30
BLAKE2b-256 0d449c7d56a1ae703df171d8344c4294cc6b972f22adfcc908dfff203b5d8168

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page