Remove topics from rosbags
Project description
rosbag-topic-remove
Filter out topics from a rosbag
Use case
Say you have too much topics in a rosbag (ROS1 or ROS2) and that you want to keep a copy of this rosbag without data from a specific sensor. rosbag-topic-remove
will :
- Filter out topics based on their name
- Filter out topics based on glob-like wildcard patterns
- Preserve your original rosbag
Installation
rosbag-topic-remove
can be installed from PyPi :
pip install rosbag-topic-remove
Usage
rosbag-topic-remove
can be used both as a command line application and in Python code.
Command line
A basic use of rosbag-topic-remove
is to simply call it from the command line.
rosbag-topic-remove /path/to/rosbag -t /topic/to_delete
rosbag-topic-remove /path/to/rosbag -t *sensor*
Here are all the CLI options of rosbag-topic-remove
:
$ rosbag-topic-remove -h
usage: rosbag-topic-remove [-h] [-o OUTBAG] [-t TOPICS [TOPICS ...]] [-f]
inbag
positional arguments:
inbag Input bag
options:
-h, --help show this help message and exit
-o OUTBAG, --output OUTBAG, --outbag OUTBAG
Filtered bag
-t TOPICS [TOPICS ...], --topics TOPICS [TOPICS ...]
Topics to remove from the rosbag
-f, --force Force output file overwriting
Python Code API
You can also call rosbag-topic-remove
directly into your Python code :
from rosbag_topic_remove import BagTopicRemover
data_path = "path/to/a/rosbag.bag" # ROS1
data_path = "path/to/a/rosbag" # ROS2
rbag_rem = BagTopicRemover(data_path)
# Change the input bag
rbag_rem.inbag = "path/to/another/rosbag"
# Remove /cmd_vel
rbag_rem.remove("/cmd_vel")
# Remove /cmd_vel
rbag_rem.remove("/cmd_vel")
# Remove all camera info topics
rbag_rem.remove("/*/camera_info")
# Remove all topics from the IMU and from the GPS
rbag_rem.remove(("/imu/*", "/gps/*"))
# Export a rosbag with all topics filtered
rbag_rem.export("path/to/save/this/filtered/rosbag.bag") # ROS1
rbag_rem.export("path/to/save/that/filtered/rosbag") # ROS2
Contributing
Pull requests are welcome and don't hesitate to open issues
(Recommended) flit is used to package this module. Development packages can be installed using flit
:
python -m venv venv
source venv/bin/activate
pip install flit
flit install
(Alternative) Development requirements can be installed using pip :
python -m venv venv
source venv/bin/activate
pip install -r requirements/requirements-dev.txt
Acknowledgements
This package relies strongly on rosbags
for working with rosbags. Hats off to the team at Ternaris for developing and maintaining it.
License
This project is licensed under a MIT license
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rosbag-topic-remove-0.0.2.tar.gz
.
File metadata
- Download URL: rosbag-topic-remove-0.0.2.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ae946b51ed606827b2601ce5529ce8b1ea1a2bf8daa557170a6fb34155306cf |
|
MD5 | eca77c5ef2c15f9978baff6001d0421d |
|
BLAKE2b-256 | 76fd76e8f2a80cf185be6b52652b1c93a9414e3edd1ea75257fb1cf0efae72ac |
File details
Details for the file rosbag_topic_remove-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: rosbag_topic_remove-0.0.2-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63b940073873595bb1461fd41a95dece86be187c73e2a6d361261a49f227bbdd |
|
MD5 | 66f42210286cfcd571bcd24da5a15f70 |
|
BLAKE2b-256 | 5f42771bc3aaca189fd18c104724667b7a10671c7196ea8e503ea1f735976b8d |