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