Application: rawlog-grabber

1. Description

rawlog-grabber is a command-line application which uses a generic sensor architecture to collect data from a variety of robotic sensors in real-time taking into account the different rates at which each sensor may work. All the data is time stamp-sorted and dumped into a Rawlog file.

This program creates one thread for each sensor declared in the config file and then saves the timestamp-ordered observations to a rawlog file. The valuable utility of this program is to collect datasets from mobile robots for off-line processing.

The available “sensor drivers” are all those classes derived from mrpt::hwdrivers::CGenericSensor. See also the list of sensors and devices supported by MRPT.

 

2. Usage

3. Configuration file specification

The configuration files must contain one mandatory [global] section with common parameters:

Then, a variable number of sections must follow, one for each desired sensor, with all the parameters for each of the sensor classes. The basic structure of these “sensor sections” is:

 

Some notes:

  • SECTION_NAME: All section names must be different!
  • CLASS_NAME: Valid values are names (without the namespace prefix) of all those classes derived from CGenericSensor (e.g. valid values are “CCameraSensor”,”CHokuyoURG”,…)
  • PROCESS_RATE: Set the maximum execution rate of the main loop in this sensor’s thread. Make sure it’s above the maximum number of observations the sensor is able to emit.
  • SENSOR_LABEL: An arbitrary text label that will identify the observations emitted by this sensor (it has nothing to do with the SECTION_NAME, can be totally different).

 

4. Configuration file examples

Several sample configuration files are already shipped with MRPT so you don’t have to start from scratch. Take a look at them here:

https://raw.github.com/MRPT/mrpt/master/share/mrpt/config_files/rawlog-grabber/