final tweaks
[bachelor-thesis/written-stuff.git] / Ausarbeitung / experiment2.tex
1 \chapter{Experiment 2: Movement Behavior with Mean Correction}
2 \label{sec:exp2}
3
4 As presumed in Section \ref{exp1:results}, errors in the Roomba's movements
5 could originate from imprecise measurement of the Roomba's internal sensors or
6 in the Wiselib implementation. So a natural approach to correct this sort of
7 errors would be to average the results for each data point from Experiment 1,
8 find a function that fits the mean measured error depending on the
9 target velocity and target distance or angle as well as possible, and then to
10 adapt either one of the target parameters so that the resulting movement
11 would most likely be the desired target value. In this experiment however, only
12 the target distance resp. the target angle was adjusted, while the velocity
13 remained unadjusted.
14
15 Fitting the function\index{fit function} was done with \acs{GNU} R\index{GNU R}
16 through the wrapper script \prog{graph.sh} which is explained in
17 section~\ref{sec:impl:eval}. In this experiment, a 2-dimensional linear fit for
18 the measured value was determined by the method of least squares, with target
19 value (angle or distance) and velocity as input parameters. The fit function was
20 then used in the algorithm to calculate the adapted target distance or angle.
21
22 \section{Setup}
23 The hardware setup was exactly the same as in Experiment~1. However, in this
24 experiment the application \prog{mean\_correction\_test} (described in
25 Section~\ref{sec:impl:mean} was used to measure data.
26
27 \section{Results}
28 \label{sec:exp2:results}
29 \begin{figure}[p!]
30 \centering
31 \includegraphics[width=\textwidth]{images/iz250flur_drive-mean_data.pdf}
32 \caption{Behavior with mean correction on laminated floor, straight drive
33 movements}
34 \end{figure}
35 \begin{figure}[p!]
36 \centering
37 \includegraphics[width=\textwidth]{images/iz250flur_turn-mean_data.pdf}
38 \caption{Behavior with mean correction on laminated floor, turn movements}
39 \end{figure}
40 \begin{figure}[p!]
41 \centering
42 \includegraphics[width=\textwidth]{images/seminarraum_drive-mean_data.pdf}
43 \caption{Behavior with mean correction on carpet floor, straight drive
44 movements}
45 \end{figure}
46 \begin{figure}[p!]
47 \centering
48 \includegraphics[width=\textwidth]{images/seminarraum_turn-mean_data.pdf}
49 \caption{Behavior with mean correction on carpet floor, turn movements}
50 \end{figure}
51
52 For laminated floors, the results are actually better than in Experiment~1,
53 apart from a huge increase of the absolute error for small input values (50~cm,
54 5 and 20 degrees). As the error for this values is far into the negative
55 range, it means that the Roomba has even turned to or driven in the wrong
56 direction. The reason for that is most probably the fit function, which is below
57 zero for these target values. Apart from that, higher target values or
58 velocities correlate with a higher (absolute) error, just as already mentioned
59 for the original behavior, which is caused by accumulating errors. However,
60 when it comes to different velocities, the error is not as far distributed as it
61 is for the original behavior. This makes the behavior of the Roomba more
62 predictable over different velocities. Apparently, mean correction
63 significantly improves the accuracy of the Roomba's general movement in this
64 case.
65
66 For carpet floors, the data shows not much difference to the original
67 behavior, apart from the already mentioned large absolute error for small
68 target values. Due to the steep drop of the error for large target values, it
69 could maybe help to apply a quadratic regression for the determination of a fit
70 function, in order to better represent the measured data. However, this is a
71 matter for more detailed research and is not covered in this thesis.
This page took 0.050355 seconds and 5 git commands to generate.