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
Hashes for rosbag-topic-remove-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ae946b51ed606827b2601ce5529ce8b1ea1a2bf8daa557170a6fb34155306cf |
|
MD5 | eca77c5ef2c15f9978baff6001d0421d |
|
BLAKE2b-256 | 76fd76e8f2a80cf185be6b52652b1c93a9414e3edd1ea75257fb1cf0efae72ac |
Hashes for rosbag_topic_remove-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63b940073873595bb1461fd41a95dece86be187c73e2a6d361261a49f227bbdd |
|
MD5 | 66f42210286cfcd571bcd24da5a15f70 |
|
BLAKE2b-256 | 5f42771bc3aaca189fd18c104724667b7a10671c7196ea8e503ea1f735976b8d |