\chapter{Description of Implementation}
\section{Measuring}
\label{sec:impl:measuring}

\todo{}

C++ code in wiselib/trunk/pc\_apps/roomba\_tests

three single applications with same base: roomba\_test (main.cc),
mean\_correction\_test (mean\_correction.cc), soft\_start\_test
(soft\_start.cc).

user interface: Qt.

manual tests (user is asked for new values every time) or automated tests (user
only asked for measured values).

1) open UART connection

2) register state callback for getting roomba sensor data

3) while(input values or cancel) { drive() / turn() }

4) drive() / turn() use wiselib::ControlledMotion<OsModel,
wiselib::RoombaModel> for moving specified angle/distance; and ask for measured
values and write to external log file, including battery status, roomba/wiselib
internal angles/distances (ticks), svn revision, floor type, roomba ID

additionally, mean correction test uses
CorrectedMeanMotion from corrected\_mean\_motion.h, implements same concept like
wiselib::ControlledMotion and takes care of target value by using the
calculated fit function .

additionally, soft start/stop test uses
SoftStartMotion from soft\_start\_motion.h, implements same
concept like wiselib::ControlledMotion and takes care of increasing/decreasing
velocity via timer.

\section{Evaluation}
\label{sec:impl:eval}
\todo{}

bash/perl scripts in wiselib/trunk/pc\_apps/roomba\_tests/logs, using gnuplot

graph.sh: create 3d plots (input value, input velocity, measured value) from
original behvaiour data, including fit function calculated by GNU R statistics
software, for {carpet floor, laminate floor} $\times$ {drive straight, turn on
spot}

graph-mean.sh: do the same for mean correction data, including fit function from
original data

graph-soft.sh: do the same for soft start/stop data, including fit function from
original data

graph-mean-soft.sh: 3d plot with mean correction and soft start/stop data, for
comparison of both

graph-errorlines.sh: create 2d plots input value -> measured value, with
multiple velocities in each graph. also split graphs up for {carpet floor,
laminate floor} $\times$ {drive straight, turn on spot}. no fit function.
