RAWLOG-EDIT(1)

πŸ“¦
version 2.14.7 Β· 3 versions
, in debian trixie

okay bestie, sit down, hydrate, because we're about to talk about rawlog-edit β€” a manual page from section 1 of the Mobile Robot Programming Toolkit (MRPT). It's a command-line tool for messing with robotic datasets, aka rawlogs, and honestly? it does so much. πŸ’…


🌸 NAME 🌸

rawlog-edit β€” command-line robotic datasets (rawlogs) manipulation tool


✨ SYNOPSIS ✨

rawlog-edit  [--undistort] [--rename-externals] [--stereo-rectify
             <SENSOR_LABEL,0.5>] [--camera-params <SENSOR_LABEL
             ,file.ini>] [--sensors-pose <file.ini>]
             [--generate-3d-pointclouds] [--cut] [--export-2d-scans-txt]
             [--export-txt] [--export-rawdaq-txt] [--recalc-odometry]
             [--export-anemometer-txt] [--export-enose-txt]
             [--export-odometry-txt] [--export-imu-txt]
             [--export-gps-all] [--export-gps-txt]
             [--export-gps-gas-kml] [--export-gps-kml] [--keep-label
             <label[,label...]>] [--remove-label <label[,label...]>]
             [--list-range-bearing] [--remap-timestamps <a;b>]
             [--list-timestamps] [--list-poses] [--list-images] [--info]
             [--de-externalize] [--externalize] [-q] [-w] [--odo-D <D>]
             [--odo-KR <KR>] [--odo-KL <KL>] [--to-time <T1>]
             [--from-time <T0>] [--to-index <N1>] [--from-index <N0>]
             [--text-file-output <out.txt>] [--rectify-centers-coincide]
             [--image-size <COLSxROWS>] [--txt-externals]
             [--image-format <jpg,png,pgm,...>] [--out-dir <.>] [-p
             <mylib.so>] [-o <dataset_out.rawlog>] -i <dataset.rawlog>
             [--] [--version] [-h]

look at all those flags. it's giving ✨options✨. it's giving main character energy. Don't panic β€” we're gonna walk through every single one of them, no cap. 🫢


πŸŽ€ USAGE EXAMPLES πŸŽ€

Okay so before we get into the deep lore, here's a lil taste test of what this thing can do, because reading a wall of flags with zero context is a crime and I refuse to let you do that to yourself. πŸ’–

πŸ‘€ Quick overview of a dataset file

rawlog-edit --info -i in.rawlog

βœ‚οΈ Cut the entries [1000,2000] into another rawlog file

rawlog-edit --cut --from-index 1000 --to-index 2000 \
             -i in.rawlog -o out.rawlog

βœ‚οΈ Cut the entries from the beginning up to timestamp 1281619819

rawlog-edit --cut --to-time 1281619819 \
             -i in.rawlog -o out.rawlog

πŸ“€ Export all suitable observations to TXT/CSV files

rawlog-edit --export-txt -i in.rawlog

🌍 Generate a Google Earth KML file with the GPS data in a dataset

rawlog-edit --export-gps-kml -i in.rawlog

🚫 Remove all observations named "REAR_LASER"

rawlog-edit --remove-label REAR_LASER -i in.rawlog -o out.rawlog

🫢 Remove all observations not named "REAR_LASER"

rawlog-edit --keep-label REAR_LASER -i in.rawlog -o out.rawlog

πŸ“¦ Convert all images to external storage mode

rawlog-edit --externalize -i in.rawlog -o out.rawlog

πŸ“¦πŸ“¦ Same vibe, but you pick the image format

rawlog-edit --externalize --image-format jpg -i in.rawlog \
             -o out.rawlog

See? Not scary at all. It's just a girlboss binary doing exactly what you tell it to, and there is so much more where that came from. πŸ¦‹

πŸ’– DESCRIPTION πŸ’–

okay bestie, so rawlog-edit is a command-line application to inspect AND manipulate robotic dataset files in the "rawlog" standardized format. it's basically a whole glow-up studio for your robot's data and honestly? she eats. πŸ’…βœ¨

These are the supported arguments and operations, and no, we are not skipping a single one:

  • --undistort β€” Op: Undistort all images in the rawlog. 🫢
  • --rename-externals β€” Op: Renames all the external storage file names within the rawlog. (it doesn't change the external files, which may even not exist β€” so don't panic if they're ghosts πŸ‘»)
  • --stereo-rectify <SENSOR_LABEL,0.5> β€” Op: creates a new set of external images for all CObservationStereoImages with the given SENSOR_LABEL, using the camera parameters stored in the observations (which must be a valid calibration, no fake ones bestie) and with the given alpha value. Alpha can be -1 for auto, or otherwise be in the range [0,1] (see OpenCV's docs for cvStereoRectify).
    • Requires: -o (or --output)
    • Optional: --image-format to set image format (default=jpg),
    • --image-size to resize output images (example: --image-size 640x480)
  • --camera-params <SENSOR_LABEL,file.ini> β€” Op: change the camera parameters of all CObservationImage's with the given SENSOR_LABEL, with new params loaded from the given file, section '[CAMERA_PARAMS]' for monocular cameras, or '[CAMERA_PARAMS_LEFT]' and '[CAMERA_PARAMS_RIGHT]' for stereo. πŸŽ€
    • Requires: -o (or --output)
  • --sensors-pose <file.ini> β€” Op: batch change the poses of sensors from a rawlog-grabber-like configuration file that specifies the pose of sensors by their sensorLabel names. it's giving ✨batch magic✨
    • Requires: -o (or --output)
  • --generate-3d-pointclouds β€” Op: (re)generate the 3D pointclouds within CObservation3DRangeScan objects that have range data.
    • Requires: -o (or --output)
  • --cut β€” Op: Cut a part of the input rawlog. βœ‚οΈ iconic
    • Requires: -o (or --output)
    • Requires: At least one of --from-index, --from-time, --to-index, --to-time. Use only one of the --from-* and --to-* at once.
    • If only a --from-* is given, the rawlog will be saved up to its end. If only a --to-* is given, the rawlog will be saved from its beginning.
  • --export-2d-scans-txt β€” Op: Export 2D scans to TXT files.
    • Generates two .txt files for each different sensor label of 2D scan observations, one with the timestamps and the other with range data.
    • The generated .txt files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --export-txt β€” Op: Generic export observations to TXT/CSV files.
    • Generates one .txt file for each different sensor label of all observation classes that supports the export-to-txt API.
    • The generated .txt files will be saved in the same path than the input rawlog, as <rawlog_filename>_<sensorLabel>.txt.
  • --export-rawdaq-txt β€” Op: Export raw DAQ readings to TXT files.
    • Generates one .txt file for each different sensor label + DAQ task. The generated .txt files will be saved in the same path than the input rawlog.
  • --recalc-odometry β€” Op: Recomputes odometry increments from new encoder-to-odometry constants.
    • Requires: -o (or --output)
    • Requires: --odo-KL, --odo-KR and --odo-D.
  • --export-anemometer-txt β€” Op: Export anemometer readigns to TXT files. 🌬️
    • Generates one .txt file for each different sensor label of an anemometer observation in the dataset. The generated .txt files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --export-enose-txt β€” Op: Export e-nose readigns to TXT files. πŸ‘ƒ
    • Generates one .txt file for each different sensor label of an e-nose observation in the dataset. The generated .txt files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --export-odometry-txt β€” Op: Export absolute odometry readings to TXT files.
    • Generates one .txt file for each different sensor label of an odometry observation in the dataset. The generated .txt files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --export-imu-txt β€” Op: Export IMU readings to TXT files.
    • Generates one .txt file for each different sensor label of an IMU observation in the dataset. The generated .txt files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --export-gps-all β€” Op: Generic export all kinds of GPS/GNSS messages to separate TXT files. πŸ›°οΈ
    • Generates one .txt file for each different sensor label and for each message type in the dataset, with a first header line describing each field.
  • --export-gps-txt β€” Op: Export GPS GPGGA messages to TXT files.
    • Generates one .txt file for each different sensor label of GPS observations in the dataset. The generated .txt files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --export-gps-gas-kml β€” Op: Export GPS paths to Google Earth KML files coloured by the gas concentration. 🌈
    • Generates one .kml file with different sections for each different sensor label of GPS observations in the dataset. The generated .kml files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --export-gps-kml β€” Op: Export GPS paths to Google Earth KML files.
    • Generates one .kml file with different sections for each different sensor label of GPS observations in the dataset. The generated .kml files will be saved in the same path than the input rawlog, with the same filename + each sensorLabel.
  • --keep-label <label[,label...]> β€” Op: Remove all observations not matching the given sensor label(s). Several labels can be provided separated by commas. keep only the ones you love πŸ’–
    • Requires: -o (or --output)
  • --remove-label <label[,label...]> β€” Op: Remove all observation matching the given sensor label(s). Several labels can be provided separated by commas. blocked. removed. not in my house. 🚫
    • Requires: -o (or --output)
  • --list-range-bearing β€” Op: dump a list of all landmark observations of type range-bearing.
    • Optionally the output text file can be changed with --text-file-output.
  • --remap-timestamps <a;b> β€” Op: Change all timestamps t replacing it with the linear map 'a*t+b'. The parameters 'a' and 'b' must be given separated with a semicolon.
    • Requires: -o (or --output)
  • --list-timestamps β€” Op: generates a list with all the observations' timestamp, sensor label and C++ class name.
    • Optionally the output text file can be changed with --text-file-output.
  • --list-poses β€” Op: dump a list of all the poses of the observations in the dataset.
    • Optionally the output text file can be changed with --text-file-output.
  • --list-images β€” Op: dump a list of all external image files in the dataset. πŸ“Έ
    • Optionally the output text file can be changed with --text-file-output.
  • --info β€” Op: parse input file and dump information and statistics. the vibe check πŸ”
  • --de-externalize β€” Op: the opposite that --externalize: generates a monolitic rawlog file with all external files integrated in one.
    • Requires: -o (or --output)
  • --externalize β€” Op: convert to external storage.
    • Requires: -o (or --output)
    • Optional: --image-format, --txt-externals
  • -q, --quiet β€” Terse output. no yapping mode 🀫
  • -w, --overwrite β€” Force overwrite target file without prompting. she's bold. she doesn't ask. πŸ’…
  • --odo-D <D> β€” Distance between left-right wheels (meters), used in --recalc-odometry.
  • --odo-KR <KR> β€” Constant from encoder ticks to meters (right wheel), used in --recalc-odometry.
  • --odo-KL <KL> β€” Constant from encoder ticks to meters (left wheel), used in --recalc-odometry.
  • --to-time <T1> β€” End time for --cut, as UNIX timestamp, optionally with fractions of seconds.
  • --from-time <T0> β€” Starting time for --cut, as UNIX timestamp, optionally with fractions of seconds.
  • --to-index <N1> β€” End index for --cut
  • --from-index <N0> β€” Starting index for --cut
  • --text-file-output <out.txt> β€” Output for a text file
  • --rectify-centers-coincide β€” In stereo rectification, force that both image centers after coincide after rectifying. πŸ‘―
  • --image-size <COLSxROWS> β€” Resize output images
  • --txt-externals β€” When externalizing CObservation3DRangeScan objects, switched from binary files (default) to plain text.
  • --image-format <jpg,png,pgm,...> β€” External image format
  • --out-dir <.> β€” Output directory (used by some commands only)
  • -p <mylib.so>, --plugins <mylib.so> β€” Single or comma-separated list of .so/.dll plugins to load for additional user-supplied classes
  • -o <dataset_out.rawlog>, --output <dataset_out.rawlog> β€” Output dataset (*.rawlog)
  • -i <dataset.rawlog>, --input <dataset.rawlog> β€” (required) Input dataset (required) (*.rawlog) β€” yes bestie, she's REQUIRED, you literally cannot skip her 🫢
  • --, --ignore_rest β€” Ignores the rest of the labeled arguments following this flag.
  • --version β€” Displays version information and exits.
  • -h, --help β€” Displays usage information and exits.

πŸ› BUGS πŸ›

Please report bugs at https://github.com/MRPT/mrpt/issues β€” do it, she deserves the feedback fr fr πŸ’€


πŸ‘€ SEE ALSO πŸ‘€

The GUI program RawLogViewer, and the application wiki pages at https://www.mrpt.org/ β€” iykyk, go read the wiki, it's a whole rabbit hole 🌸


πŸ’œ AUTHORS πŸ’œ

rawlog-edit is part of the Mobile Robot Programming Toolkit (MRPT), and was originally written by the MAPIR laboratory (University of Malaga). πŸŽ“ absolute icons

This manual page was written by Jose Luis Blanco <joseluisblancoc@gmail.com>.


This program is free software; you can redistribute it and/or modify it under the terms of the BSD License.

On Debian GNU/Linux systems, the complete text of the BSD License can be found in `/usr/share/common-licenses/BSD'.


okay that's the whole page bestie, you made it to the end and I'm so proud of you πŸ₯ΉπŸ«Ά this was rendered by perl v5.40.1, dated 2025-03-21, and it's the RAWLOG-EDIT(1) manual page β€” go forth and edit some rawlogs, you absolute main character βœ¨πŸ‘‘πŸ’–

πŸ“¦ where this page comes from