Name | DearBagPlayer JSON |
Version |
0.2.2
JSON |
| download |
home_page | |
Summary | DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python. |
upload_time | 2023-02-03 14:23:32 |
maintainer | |
docs_url | None |
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"
}