Skip to content

Configuration:DataStorage

Martin Scheiber edited this page Jan 18, 2023 · 2 revisions

Data Storage Configuration

The data recorder is the main module for recording ROS messages and storing the results in one place.

Data Recording Node

In general, the flight stack communicates with the data recorder to start and stop the recording and storing process. This node requires four arguments to function properly:

Argument Description Launchfile Parameter
recording script script used for recording topics rec_script_file
recording command arguments passed to the recroding script rec_cmd
storing script script used for storing the recording files store_script_file
storing command arguments passed to the storing script store_cmd

The recording script is executed when the recording node is requested to start the recording. The storing script is executed when the recording node is requested to stop the recording.

By default, the recording and storing script used in the CNS Flight Stack record all sensor messages and node topics from all relevant modules and create a tarball with the ROS bagfiles and ROS logs in ${HOME}/recordings/final.

Recording Configuration

We provide a recording script that groups the recording into several different modules based on the message types.

This script requires the group argument, which can be one of the following

  • dev1_full all topics typically on device 1, i.e. flight stack, mavros sensors, motion capture sensors
  • dev1_sensors all sensor topics from device 1
  • dev1_cam camera only on device 1
  • dev1_calib IMU and camera topics on device 1

If you require different topics than the default provided ones, please adjust the corresponding group or create a new one. Additionally we recommend setting up a configuration workspace in which you place your modified scripts.

Further, you can adjust the recording directories for local and media devices with command line arguments (i.e., the rec_cmd):

  • -l PATH: absolute path to the local media device, by default ${HOME}/recordings
  • -m PATH: absolute path to the external media device, by default local path
  • -p PREFIX: prefix for the recorded bagfiles, by default fs

Storing Configuration

We provide multiple storing scripts that move the recorded bagfiles and logs to a final destination. You can choose to use the script for [single-device] or multi-device setups. Both scripts can take arguments (i.e., store_cmd) which specify the local and external media locations, as well as the final destination directory:

  • -l PATH: absolute path to the local media device, by default ${HOME}/recordings. Use -l ID PATH in the multi-device setup with ID being the device no.
  • -m PATH: absolute path to the external media device, by default ${HOME}/recordings. Use -m ID PATH in the multi-device setup with ID being the device no.
  • -r PATH: absolute path to the ROS log folder, by default ${HOME}/.ros/log. Use -r ID PATH in the multi-device setup with ID being the device no.
  • -d PATH: absolute path to the destination folder, by default ${HOME}/recodings/final.
  • -z: compress data before storing it in the final location
  • -i DEV0 DEV1 DEV2 ... DEVn: multi-device only login information list for all devices, use localhost if the current destination device equals the recording device, otherwise username@IP should be provided here.