DearBagPlayer


NameDearBagPlayer JSON
Version 0.2.2 PyPI version JSON
download
home_page
SummaryDearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.
upload_time2023-02-03 14:23:32
maintainer
docs_urlNone
author
requires_python>=3.9
license
keywords dearpygui visualization rosbag
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DearBagPlayer
DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.

## Quick Start

Install dependencies:

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

Install DearBagPlayer:

```
pip install dearbagplayer
```

Run DearBagPlayer:

```shell
dearbagplayer
```

See [features](#Features) below to take a quick look at the main features.

This project is still under developing, see [TODO](#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](https://github.com/hoffstadt/DearPyGui)
- NumPy
- rosbag

## Features

### Load data from rosbag files

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

<img src="./images/open_bags.gif" style="width:80%;" />

### 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)

<img src="./images/drag_to_plot.gif" style="width:80%;" />

### Flexible timeline modification

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

<img src="./images/timeline.gif" style="width:80%;" />

### 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

<img src="./images/other_features.gif" style="width:80%;" />



## TODO

- DearBagPlayer
  - [x] Data pool:
    - [x] Get message struct from rosbag
    - [x] Get information of all the topics in a rosbag file
    - [x] Load and maintain a data dict for each topic (especially with different timestamps)
    - [x] Create selectable items for each message entity that has the type of int, float or bool
    - [x] Select bag files (up to 10 each time) to load data into the data pool
    - [x] 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)
    - [ ] Create custom series from selected topics
  - [x] Drag and drop callbacks to plot:
    - [x] Drag time series to plot
    - [x] Drag XY plot (drop with `ctrl` key)
    - [x] Drag data vs. travel distance plot (drop with `shift` key)
    - [x] Create error popup if XY plot or data vs travel distance series come from different rosbag files
  - [ ] Timeline management:
    - [x] Play forward/backward
    - [x] Modify play speed (-5 to 5)
    - [x] Sync timestamp by drag timeline
    - [x] Add button to enable/disable playing in loop
    - [ ] Add hotkeys to play/pause/stop
  - [ ] Plots:
    - [x] Create new plot tab with 2x2 subplots
    - [x] Enable drop callbacks (single time series)
    - [x] Enable drop callbacks (XY plot)
    - [x] Enable drop callbacks (Data vs. travel distance)
    - [x] Clear all plots in the activated plot tab with one click
    - [x] Create new plot tab with one click
    - [x] Enable closing plot tab
    - [x] Enable closing all series in a plot tab
    - [x] Enable renaming plot tab
    - [x] Resize at runtime
    - [x] Split plots vertically or horizontally at runtime
    - [ ] Copy plots or save to files
  - [ ] Enable live streaming
  - [ ] Enable publishing
  - [ ] Save and load config files
  - [x] Packaging
    - [x] Convert DearBagPlayer to a Python package
    - [x] Add entry point for CLI usage
    - [x] Configure setup
    - [x] Release to PyPI

## License

[MIT License](./LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "DearBagPlayer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "DearPyGui,Visualization,rosbag",
    "author": "",
    "author_email": "Wei Wang <wei.wang.bit@outlook.com>",
    "download_url": "https://files.pythonhosted.org/packages/6d/38/c35b91448952eae89bdda57019c9d27f0f25f58ddc2e14b79523d558a4a5/DearBagPlayer-0.2.2.tar.gz",
    "platform": null,
    "description": "# DearBagPlayer\r\nDearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.\r\n\r\n## Quick Start\r\n\r\nInstall dependencies:\r\n\r\n```shell\r\npip install dearpygui numpy\r\npip install --extra-index-url https://rospypi.github.io/simple/ rosbag\r\n```\r\n\r\nInstall DearBagPlayer:\r\n\r\n```\r\npip install dearbagplayer\r\n```\r\n\r\nRun DearBagPlayer:\r\n\r\n```shell\r\ndearbagplayer\r\n```\r\n\r\nSee [features](#Features) below to take a quick look at the main features.\r\n\r\nThis project is still under developing, see [TODO](#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.**\r\n\r\n## Dependencies\r\n\r\n- Windows 10 or at least Ubuntu 18.04 LTS\r\n- Python 3 - Tested on Python 3.9, should work on other Python 3 versions as well\r\n- [DearPyGui](https://github.com/hoffstadt/DearPyGui)\r\n- NumPy\r\n- rosbag\r\n\r\n## Features\r\n\r\n### Load data from rosbag files\r\n\r\nLoad up to 10 bag files each time to load data into the data pool.\r\n\r\n<img src=\"./images/open_bags.gif\" style=\"width:80%;\" />\r\n\r\n### Drag to plot\r\n\r\nSelect entities first and drag them to the plot area, drop to plot. Three types of plot enabled:\r\n\r\n- Time series plot (drag and drop directly)\r\n- XY plot (with `ctrl` key)\r\n- Data vs. travel distance plot (with `shift` key)\r\n\r\n<img src=\"./images/drag_to_plot.gif\" style=\"width:80%;\" />\r\n\r\n### Flexible timeline modification\r\n\r\n- Play forward/backward\r\n- Modify play speed\r\n- Sync timestamp by drag timeline\r\n- Play in loop\r\n\r\n<img src=\"./images/timeline.gif\" style=\"width:80%;\" />\r\n\r\n### Zoom in/out at runtime, create new plot tab, delete and clear plots\r\n\r\n- Zoom in/out at runtime\r\n- Create new plot tab\r\n- Delete single plot by right-click button of the legend\r\n- Clear all plots in the activated plot tab with one click\r\n\r\n<img src=\"./images/other_features.gif\" style=\"width:80%;\" />\r\n\r\n\r\n\r\n## TODO\r\n\r\n- DearBagPlayer\r\n  - [x] Data pool:\r\n    - [x] Get message struct from rosbag\r\n    - [x] Get information of all the topics in a rosbag file\r\n    - [x] Load and maintain a data dict for each topic (especially with different timestamps)\r\n    - [x] Create selectable items for each message entity that has the type of int, float or bool\r\n    - [x] Select bag files (up to 10 each time) to load data into the data pool\r\n    - [x] Select dragged topic when it is not yet selected\r\n    - [ ] Add widgets to specify topics to read from bag files (currently it has the feature of specifying topics in code)\r\n    - [ ] Create custom series from selected topics\r\n  - [x] Drag and drop callbacks to plot:\r\n    - [x] Drag time series to plot\r\n    - [x] Drag XY plot (drop with `ctrl` key)\r\n    - [x] Drag data vs. travel distance plot (drop with `shift` key)\r\n    - [x] Create error popup if XY plot or data vs travel distance series come from different rosbag files\r\n  - [ ] Timeline management:\r\n    - [x] Play forward/backward\r\n    - [x] Modify play speed (-5 to 5)\r\n    - [x] Sync timestamp by drag timeline\r\n    - [x] Add button to enable/disable playing in loop\r\n    - [ ] Add hotkeys to play/pause/stop\r\n  - [ ] Plots:\r\n    - [x] Create new plot tab with 2x2 subplots\r\n    - [x] Enable drop callbacks (single time series)\r\n    - [x] Enable drop callbacks (XY plot)\r\n    - [x] Enable drop callbacks (Data vs. travel distance)\r\n    - [x] Clear all plots in the activated plot tab with one click\r\n    - [x] Create new plot tab with one click\r\n    - [x] Enable closing plot tab\r\n    - [x] Enable closing all series in a plot tab\r\n    - [x] Enable renaming plot tab\r\n    - [x] Resize at runtime\r\n    - [x] Split plots vertically or horizontally at runtime\r\n    - [ ] Copy plots or save to files\r\n  - [ ] Enable live streaming\r\n  - [ ] Enable publishing\r\n  - [ ] Save and load config files\r\n  - [x] Packaging\r\n    - [x] Convert DearBagPlayer to a Python package\r\n    - [x] Add entry point for CLI usage\r\n    - [x] Configure setup\r\n    - [x] Release to PyPI\r\n\r\n## License\r\n\r\n[MIT License](./LICENSE)\r\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.",
    "version": "0.2.2",
    "split_keywords": [
        "dearpygui",
        "visualization",
        "rosbag"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "37f46ab99d112ff5fce530c95059f784c732f57c7003db4289904e361554692d",
                "md5": "f08f08122754b1e9a2942671cedddd1c",
                "sha256": "dc562234ec6a6cf347aadeba23009c2dafb8816d99496f6162b07a780323c476"
            },
            "downloads": -1,
            "filename": "DearBagPlayer-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f08f08122754b1e9a2942671cedddd1c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 17418,
            "upload_time": "2023-02-03T14:23:28",
            "upload_time_iso_8601": "2023-02-03T14:23:28.956537Z",
            "url": "https://files.pythonhosted.org/packages/37/f4/6ab99d112ff5fce530c95059f784c732f57c7003db4289904e361554692d/DearBagPlayer-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d38c35b91448952eae89bdda57019c9d27f0f25f58ddc2e14b79523d558a4a5",
                "md5": "240afe1bd860a14070bb0f915dfb493b",
                "sha256": "954822ad7f23a3542acfeb26c6625ec07bdce85613f408df6fe229f5feb9e395"
            },
            "downloads": -1,
            "filename": "DearBagPlayer-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "240afe1bd860a14070bb0f915dfb493b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 15816,
            "upload_time": "2023-02-03T14:23:32",
            "upload_time_iso_8601": "2023-02-03T14:23:32.123713Z",
            "url": "https://files.pythonhosted.org/packages/6d/38/c35b91448952eae89bdda57019c9d27f0f25f58ddc2e14b79523d558a4a5/DearBagPlayer-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-02-03 14:23:32",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "dearbagplayer"
}
        
Elapsed time: 0.03555s