Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rosbag-topic-remove-0.0.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

rosbag_topic_remove-0.0.2-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

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

Hashes for rosbag-topic-remove-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8ae946b51ed606827b2601ce5529ce8b1ea1a2bf8daa557170a6fb34155306cf
MD5 eca77c5ef2c15f9978baff6001d0421d
BLAKE2b-256 76fd76e8f2a80cf185be6b52652b1c93a9414e3edd1ea75257fb1cf0efae72ac

See more details on using hashes here.

File details

Details for the file rosbag_topic_remove-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for rosbag_topic_remove-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 63b940073873595bb1461fd41a95dece86be187c73e2a6d361261a49f227bbdd
MD5 66f42210286cfcd571bcd24da5a15f70
BLAKE2b-256 5f42771bc3aaca189fd18c104724667b7a10671c7196ea8e503ea1f735976b8d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page