\page bag_processing Bag Processing
The bag processing package provides several helper tools for handling bagfiles.
For each script, run rosrun bag_processing script_name.py -h
for further details and
usage instructions.
Applies either CLAHE or standard histogram equalization to images in a bagfile.
Prints gaps above provided maximum time for a bagfile and topic using either message header times or bag receive times. Also prints stats for the time differences for messages with the provided topic in the bagfile.
Analyze clock skew LLP->MLP and HLP->MLP. Inputs an ars_default.bag
containing the /mgt/sys_monitor/time_sync
topic.
Join two CSV files by timestamp. (After creating the CSV files by exporting a message topic from a bag.)
Prints stats for a numeric field of a topic in a bagfile.
Creates a new bagfile with grayscale and color images for the provided bags using their bayer encoded images. If no bags are provided, runs conversion for each bag in the current directory.
Detect bad topics that the rosbag
API can't handle. (The main problem so
far has been rosjava
messages that have incomplete message definition
dependency information that causes rosbag
to raise an exception when it
tries to deserialize the message.)
Master script to apply all passes of processing needed to fix our legacy
bag files. The actual processing steps are found in
Makefile.rosbag_fix_all
. The strategy is explained in [1].
[1] https://github.com/nasa/astrobee/blob/develop/doc/general_documentation/maintaining_telemetry.md
Merges bagfiles with given prefix in the current directory. Creates merged bagfiles for each provided bag prefix or for each prefix in the current directory if none are provided.
Tool that applies rules to fix bag files, as specified in
rosbag_rewrite_types_rules.json
. It performs two types of fix:
-
Fix incomplete message definition metadata, as written by
rosjava
nodes. Which topics to fix is specified in thefix_message_definition_topic_patterns
field of the rules file. -
For message types whose definition changed in a way that makes migration infeasible, changes the message type name to be the "frozen" type name, so that migration is not needed. Which message types to fix is specified in the
rename_types
field of the rules file.
This script is normally invoked by rosbag_fix_all
.
Takes a minimal sample from each message in a bag for compatibility testing. If the full bags are multiple gigabytes in size and are not needed for basic backward compatibility testing.
Interactively splices a bagfile at selected timestamps to create multiple smaller bagfiles, which when combined span the original bagfile. Iterates through the bagfile images to allow the user to select splice points.
Filter rosbag
messages based on topic. Like a subset of rosbag filter
functionality, but more robust to incomplete message definitions because
it doesn't need to deserialize the messages to filter on topic.
Creates a new bagfile with trimmed start and end times from a provided bagfile.
Verify correctness of a ROS bag, as output by rosbag_fix_all.py. This performs some simple checks that are not part of the standard "rosbag check".
This is not a standalone script. It is a library that provides utility functions to be used in *.bmr bag migration rules to help with migrating legacy messages that contain an enumerated field where the label numbering has changed.
Contains the decoding files for the haz cam extended topics. These were generated with data from the robot checkout activities and ISAAC activities using the scripts in \ref picoflexx_python