1 \chapter{Description of Implementation
}
5 C++ code in wiselib/trunk/pc
\_apps/roomba
\_tests
7 three single applications with same base: roomba
\_test (main.cc),
8 mean
\_correction\_test (mean
\_correction.cc), soft
\_start\_test
13 manual tests (user is asked for new values every time) or automated tests (user
14 only asked for measured values).
16 1) open UART connection
18 2) register state callback for getting roomba sensor data
20 3) while(input values or cancel)
{ drive() / turn()
}
22 4) drive() / turn() use wiselib::ControlledMotion<OsModel,
23 wiselib::RoombaModel> for moving specified angle/distance; and ask for measured
24 values and write to external log file, including battery status, roomba/wiselib
25 internal angles/distances (ticks), svn revision, floor type, roomba ID
27 additionally, mean correction test uses
28 CorrectedMeanMotion from corrected
\_mean\_motion.h, implements same concept like
29 wiselib::ControlledMotion and takes care of target value by using the
30 calculated fit function .
32 additionally, soft start/stop test uses
33 SoftStartMotion from soft
\_start\_motion.h, implements same
34 concept like wiselib::ControlledMotion and takes care of increasing/decreasing
40 bash/perl scripts in wiselib/trunk/pc
\_apps/roomba
\_tests/logs, using gnuplot
42 graph.sh: create
3d plots (input value, input velocity, measured value) from
43 original behvaiour data, including fit function calculated by GNU R statistics
44 software, for
{carpet floor, laminate floor
} $
\times$
{drive straight, turn on
47 graph-mean.sh: do the same for mean correction data, including fit function from
50 graph-soft.sh: do the same for soft start/stop data, including fit function from
53 graph-mean-soft.sh:
3d plot with mean correction and soft start/stop data, for
56 graph-errorlines.sh: create
2d plots input value -> measured value, with
57 multiple velocities in each graph. also split graphs up for
{carpet floor,
58 laminate floor
} $
\times$
{drive straight, turn on spot
}. no fit function.