Forschungsverbund für Selbstorganisierte Robotik
Datenfiles

Daten files von unseren Controllern

In den Unterverzeichnissen befinden sich Datenfiles die während der Simulation verschiedener Roboter und Kontrollern aufgenommen wurden.

Format

Das Format ist Zeilenweise und im gnuplot style. Konkret:
# Kommentar #C Feldname1 Feldname2 Feldname3 ... wert1 wert2 wert3 ... wert1 wert2 wert3 ... wert1 wert2 wert3 ... wert1 wert2 wert3 ... . . .
Das Zahlenformat ist die übliche Fliesskommadarstellung mit e Schreibweise.

Benutzung

Man kann die Dateien direkt in gnuplot verwenden. Wir haben ein Tool namens "guilogger" entwickelt, welchen interaktive Betrachung der Dateien mit gnuplot erlaubt.

Organisation

Die Unterverzeichnisse (im Menu) entsprechen den Robotern, die benutzt wurden. Dort befinden sich dann i.A. gepackte tar-Archive (tgz) mit den Log-files. Diese sind mit
tar -xvzf dateiname.tgz
zu entpacken. Um nicht zu große Logdateien zu bekommen sind diese in Stücken à 10000 bis 25000 Datensätzen unterteilt. Zusätzlich befindet sich in der .head Datei die Kommentare und in der .fieldnames Datei die Zeile mit den Feldnamen (#C Feldname1 Feldname2 ...)

Erzeugung

Die Datenfiles wurden mittels unserer Simulationsumgebung erzeugt. Das heisst die ODE-Simulation sollte wie folgt gestartet werden.
./start -f 1
Anschliesend wird die Logdatei in kleinere Stuecke zerhackt, und die Kommentare und Feldnamen zusätzlich extrahiert. Das geschieht mit diesem shellscript.
./splitlogfiles.sh filename.log number_of_lines_per_file
Danach wurden alle Dateien in ein Verzeichniss kopiert und mit
tar -cvzf tararchivname.tgz verzeichnis
gepackt.

Auswählen von Spalten

Zum Auswählen von Spalten steht folgendes perl Skript bereit: ./selectcolumns.pl.
selectcolumns.pl
gibt folgende Selbstauskunft:
Usage: selectrows.pl fieldpatterns < logfile > newlogfile fieldpatterns: regular expressions that match field descriptions in #C line please note that some special characters have to be quoted, see below. Example: "x\[" "C\[0\]" the file (newlogfile) will contain all sensor values x[..] and the first row of the controller matrix C[0][..] Hint: If you want to get rid of the comment lines then use: | grep -v "^#" > newlogfile
Also zum extrahieren der Sensor und Motor Werte aus der Datei Sphere.log führt folgendes ans Ziel:
./selectcolumns.pl "x\[" "y\[" < Sphere.log > Sphere.xy.log