-
Notifications
You must be signed in to change notification settings - Fork 2
Configuration:DataStorage
The data recorder is the main module for recording ROS messages and storing the results in one place.
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
.
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 defaultfs
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 withID
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 withID
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 withID
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, uselocalhost
if the current destination device equals the recording device, otherwiseusername@IP
should be provided here.