Name | DearBagPlayer JSON |
Version |
0.3.0
JSON |
| download |
home_page | None |
Summary | DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python. |
upload_time | 2024-09-18 19:46:24 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | MIT |
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:
```shell
pip install dearbagplayer # from https://pypi.org/
```
Run DearBagPlayer:
```shell
dearbagplayer
```
See [features](#Features) below to take a quick look at the main features.
Example rosbag files can be found in [Magic-wei/DearBagPlayerDemoData](https://github.com/Magic-wei/DearBagPlayerDemoData) for people who would like to try DearBagPlayer. See more details about the examples there.
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 20.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": null,
"name": "DearBagPlayer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "DearPyGui, Visualization, rosbag",
"author": null,
"author_email": "Wei Wang <wei.wang.bit@outlook.com>",
"download_url": "https://files.pythonhosted.org/packages/ed/a1/f033bcb9240ba4f488951b56c41c2222e6f429bb13bda8f5da0eba0c236d/dearbagplayer-0.3.0.tar.gz",
"platform": null,
"description": "# DearBagPlayer\nDearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.\n\n## Quick Start\n\nInstall dependencies:\n\n```shell\npip install dearpygui numpy\npip install --extra-index-url https://rospypi.github.io/simple/ rosbag\n```\n\nInstall DearBagPlayer:\n\n```shell\npip install dearbagplayer # from https://pypi.org/\n```\n\nRun DearBagPlayer:\n\n```shell\ndearbagplayer\n```\n\nSee [features](#Features) below to take a quick look at the main features.\n\nExample rosbag files can be found in [Magic-wei/DearBagPlayerDemoData](https://github.com/Magic-wei/DearBagPlayerDemoData) for people who would like to try DearBagPlayer. See more details about the examples there.\n\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.**\n\n## Dependencies\n\n- Windows 10 or at least Ubuntu 20.04 LTS\n- Python 3 - Tested on Python 3.9, should work on other Python 3 versions as well\n- [DearPyGui](https://github.com/hoffstadt/DearPyGui)\n- NumPy\n- rosbag\n\n## Features\n\n### Load data from rosbag files\n\nLoad up to 10 bag files each time to load data into the data pool.\n\n<img src=\"./images/open_bags.gif\" style=\"width:80%;\" />\n\n### Drag to plot\n\nSelect entities first and drag them to the plot area, drop to plot. Three types of plot enabled:\n\n- Time series plot (drag and drop directly)\n- XY plot (with `ctrl` key)\n- Data vs. travel distance plot (with `shift` key)\n\n<img src=\"./images/drag_to_plot.gif\" style=\"width:80%;\" />\n\n### Flexible timeline modification\n\n- Play forward/backward\n- Modify play speed\n- Sync timestamp by drag timeline\n- Play in loop\n\n<img src=\"./images/timeline.gif\" style=\"width:80%;\" />\n\n### Zoom in/out at runtime, create new plot tab, delete and clear plots\n\n- Zoom in/out at runtime\n- Create new plot tab\n- Delete single plot by right-click button of the legend\n- Clear all plots in the activated plot tab with one click\n\n<img src=\"./images/other_features.gif\" style=\"width:80%;\" />\n\n\n\n## TODO\n\n- DearBagPlayer\n - [x] Data pool:\n - [x] Get message struct from rosbag\n - [x] Get information of all the topics in a rosbag file\n - [x] Load and maintain a data dict for each topic (especially with different timestamps)\n - [x] Create selectable items for each message entity that has the type of int, float or bool\n - [x] Select bag files (up to 10 each time) to load data into the data pool\n - [x] Select dragged topic when it is not yet selected\n - [ ] Add widgets to specify topics to read from bag files (currently it has the feature of specifying topics in code)\n - [ ] Create custom series from selected topics\n - [x] Drag and drop callbacks to plot:\n - [x] Drag time series to plot\n - [x] Drag XY plot (drop with `ctrl` key)\n - [x] Drag data vs. travel distance plot (drop with `shift` key)\n - [x] Create error popup if XY plot or data vs travel distance series come from different rosbag files\n - [ ] Timeline management:\n - [x] Play forward/backward\n - [x] Modify play speed (-5 to 5)\n - [x] Sync timestamp by drag timeline\n - [x] Add button to enable/disable playing in loop\n - [ ] Add hotkeys to play/pause/stop\n - [ ] Plots:\n - [x] Create new plot tab with 2x2 subplots\n - [x] Enable drop callbacks (single time series)\n - [x] Enable drop callbacks (XY plot)\n - [x] Enable drop callbacks (Data vs. travel distance)\n - [x] Clear all plots in the activated plot tab with one click\n - [x] Create new plot tab with one click\n - [x] Enable closing plot tab\n - [x] Enable closing all series in a plot tab\n - [x] Enable renaming plot tab\n - [x] Resize at runtime\n - [x] Split plots vertically or horizontally at runtime\n - [ ] Copy plots or save to files\n - [ ] Enable live streaming\n - [ ] Enable publishing\n - [ ] Save and load config files\n - [x] Packaging\n - [x] Convert DearBagPlayer to a Python package\n - [x] Add entry point for CLI usage\n - [x] Configure setup\n - [x] Release to PyPI\n\n## License\n\n[MIT License](./LICENSE)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python.",
"version": "0.3.0",
"project_urls": {
"Bug Tracker": "https://github.com/Magic-wei/DearBagPlayer/issues",
"Homepage": "https://github.com/Magic-wei/DearBagPlayer"
},
"split_keywords": [
"dearpygui",
" visualization",
" rosbag"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fba30899881fe60573f7797643164ddab4e0855c7034a54212347c02313a453e",
"md5": "37b19a9b3b5e0cb217a39199e30cfb4e",
"sha256": "d167e449edfc8b457db9eecefab2f192d953cc6d9417a5c5e038a73423090385"
},
"downloads": -1,
"filename": "DearBagPlayer-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "37b19a9b3b5e0cb217a39199e30cfb4e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 21390,
"upload_time": "2024-09-18T19:46:23",
"upload_time_iso_8601": "2024-09-18T19:46:23.606472Z",
"url": "https://files.pythonhosted.org/packages/fb/a3/0899881fe60573f7797643164ddab4e0855c7034a54212347c02313a453e/DearBagPlayer-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eda1f033bcb9240ba4f488951b56c41c2222e6f429bb13bda8f5da0eba0c236d",
"md5": "82c36f5db6c6089b38ad018cc99e1828",
"sha256": "d626e7ecd9b1a060546845afd904245a9b26faccfae52b23900506fc4341f5e9"
},
"downloads": -1,
"filename": "dearbagplayer-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "82c36f5db6c6089b38ad018cc99e1828",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 18054,
"upload_time": "2024-09-18T19:46:24",
"upload_time_iso_8601": "2024-09-18T19:46:24.966865Z",
"url": "https://files.pythonhosted.org/packages/ed/a1/f033bcb9240ba4f488951b56c41c2222e6f429bb13bda8f5da0eba0c236d/dearbagplayer-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-18 19:46:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Magic-wei",
"github_project": "DearBagPlayer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "dearbagplayer"
}