uALogParser

A tool to extract user-designated data from alog files.

To facilitate easy use of the data set, we have supplied a dependency-free C++ source file tool to parse the plain text logs into numerical arrays. It is capable of parsing log files into arrays of data in text or binary format (machine-native or matlab formats). For example, one might want to create a matrix of vehicle poses between two times or a matrix of laser scans over the duration of a tagged event. We provide instructions and examples on how to use this parsing code to extract named data.
We stress that there is nothing about our data that is tied to, or requires the use of, this parsing code. Consumers of the data are welcome to write their own parsers in a language of choice. The file parser we supply is simply a convenience (it is also quite fast). The same source file compiles into a standalone executable or a matlab mex file. In the former case arrays are written to a simple data file while in the latter arrays are returned directly to the matlab workspace. Note that to extract data there is no requirement to use or have matlab or run a particular operating system.

Download

source file

Examples

  1. Download uALogParser and compile/build it (see the above instructions for your platform).
  2. Download the Sample 1
  3. Follow the instructions for your system below (commands to be executed are in bold)

Windows Examples 
Linux Examples
Matlab Examples

Usage

uALogParser takes 2 mandatory arguments:

Argument Description
input_file This is the alog file you with to process.
extraction_parameter This is the message in the alog file you wish to extract (e.g. ODOMETRY)

Depending on whether the tool is used in mex format or standalone, there are a number of optional arguments:

Argument Description
-f or –fields A field in a message (denoted by ) you wish to extract, e.g. -f scancount. Prefix arrays with @ (e.g @Range)
-o or –output Output filename (in windows, “.txt” is automatically appended)
-t or –timespan Timespan of interest. Either enter times (in seconds) or start/end
-s or –silent Suppress messages
-w or –write Force extraction of the log time from the .alog

This code has been tested on: 
(linux) Gentoo, kernel 2.6.25, gcc versions 4.1.2 & 4.3.1
(Windows)XP, Visual Studio 2005 
(matlab) Version 2007b, Version 2008b