Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
guilogger Directory Reference

A tool to customize online gnuplot windows online.

More...

Directory dependency graph for guilogger:
guilogger

Files

file  guilogger/README
 This file is used for the doxygen documentation.
 

Detailed Description

A tool to customize online gnuplot windows online.

Features

One can send data in "channels" (a channel is more or less a variable observed over time equipped with a label) per pipe to the guilogger. Guilogger provides a seperate window where you can choose which of the channels should be displayed in which window. According to your selection your data will be plotted online.
Furthermore guilogger gives the opportunity to save your data "channels" in a file together with the labels you selected for the channels.
To do something useful with these logfiles guilogger allows you to watch them again and navigate through the logfile. Once you found a valuable figure you can use the gnuplot commands generated by guilogger. Copy this command in a console where gnuplot is running and you receive your figure and can save it to disk.

Here you can see a screenshot of the guilogger window with 9 channels. The used labels range from "x[0]" to "y[2]". The top three boxes after the word "Channels" are useless at the moment.

screenshot.png

Usage
You start guilogger by typing guilogger and the right parameters. For working in pipe mode you type -m pipe. An additional -l enables the logging to a file.
One can also you can view a logfile with guilogger -m file -f filename.log where filename.log is the name of the logfile. Guilogger can also read from serial port with guilogger -m serial -p portnumber. This information is summarized in the parameter listing, which you can get by typing

guilogger --help


guilogger parameter listing
-m [mode] mode = serial | pipe (default) | file
-p [port] port = serial port to read from
-f [file] input file; only viewing, no streaming
-l turns logging on (writing to file)
–help displays this message.

Format
Here the BNF of the Logging Format:

<STREAM> := <LINE> <STREAM> | <LINE>
<LINE> := <CMDLINE> | <COMMENTLINE> | <DATALINE>
<CMDLINE> := #C <CHANNELLABEL>*<ENDLINE>
| #IN <STRING><ENDLINE>
| #I [<String>] D <CHANNELLABEL> <STRING><ENDLINE>
| #<CHAR> <STRING><ENDLINE>
<COMMENT> := # <STRING><ENDLINE>
<CHANNELLABEL> := <STRING_W/O_WHITESPACE>
<DATALINE> := <FLOAT> <FLOAT>*

* means multiple occurences separated by space. The number of Channellabels should be the same as the number of data values. The cmd lines starting with #I [XXX] D assign a description to each channel. Vector or matrix channels should have the format name[i] or name[i,j]. To give a discription to the entire matrix or vector channel use "name_" in the #I D line.

Here one example:

# This is a comment
# the following lines are a command lines for other programs and are ignored by guilogger
# the following lines attribute names to channels
#IN MYRobot1
#I [test] D x[0] first sensor
#I [test] D y_ motor values
#I [test] D eps learning rate
# the following line defined our channels
#C n1 x[0] y[0] y[1] eps
-0.3 0.424253 0.112 10e-5
0.1 -1.2 0.231 0.00