checkpoint
[bachelor-thesis/written-stuff.git] / Ausarbeitung / experiment2.tex
index ba75ff5..0851f70 100644 (file)
@@ -1,57 +1,72 @@
-\chapter{Experiment 2: Movement Behaviour with Mean Correction}
+\chapter{Experiment 2: Movement Behavior with Mean Correction}
 \todo{}
+\label{sec:exp2}
 
 As presumed in Section \ref{exp1:results}, errors in the Roomba's movements
 could originate from imprecise measurement of the Roomba's internal sensors or
 in the Wiselib implementation. So a natural approach to correct this sort of
 errors would be to average the results for each data point from Experiment 1,
-find a function that fits the mean measured error depending of the
-target velocity and target distance or angle as well as possible, and then
-adapting either one of the target parameters so that the resulting movement
+find a function that fits the mean measured error depending on the
+target velocity and target distance or angle as well as possible, and then to
+adapt either one of the target parameters so that the resulting movement
 would most likely be the desired target value. In this experiment however, only
 the target distance resp. the target angle was adjusted, while the velocity
 remained unadjusted.
 
 Fitting the function\index{fit function} was done with \acs{GNU} R\index{GNU R}
-through a wrapper script which is explained in section~\ref{sec:impl:eval}. In
-this experiment, a linear fit of the form $o = a*v+b*i+c$ was used, with $o$
-being the measured value, $v$ the input velocity, $i$ the target distance or
-angle, and $a,b,c \in \mathbb{R}$. The fitted values \todo{how? least
-square?} for $a, b, c$ were then used in the algorithm to calculate the adapted
-target distance or angle.
+through the wrapper script \prog{graph.sh} which is explained in
+section~\ref{sec:impl:eval}. In this experiment, a 2-dimensional linear fit for
+the measured value was determined by the method of least squares, with target
+value (angle or distance) and velocity as input parameters. The fit function was
+then used in the algorithm to calculate the adapted target distance or angle.
 
 \section{Setup}
-The hardware setup was exactly the same as in Experiment 1. However, in this
-experiment the application \cmd{mean\_correction\_test} was used to measure
-data. It did exactly the same as the application from Experiment 1, except that
-it adapted the target distance resp. target angle according to the algorithm
-described above.
+The hardware setup was exactly the same as in Experiment~1. However, in this
+experiment the application \prog{mean\_correction\_test} (described in
+Section~\ref{sec:impl:mean} was used to measure data.
 
 \section{Results}
+\label{sec:exp2:results}
 \begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_drive-mean_data.pdf}
- \caption{Behaviour with mean correction on laminated floor, straight drive
-tests}
+ \caption{Behavior with mean correction on laminated floor, straight drive
+movements}
 \end{figure}
 \begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_turn-mean_data.pdf}
- \caption{Behaviour with mean correction on laminated floor, turn tests}
+ \caption{Behavior with mean correction on laminated floor, turn movements}
 \end{figure}
 \begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_drive-mean_data.pdf}
- \caption{Behaviour with mean correction on carpet floor, straight drive
-tests}
+ \caption{Behavior with mean correction on carpet floor, straight drive
+movements}
 \end{figure}
 \begin{figure}[p!]
  \centering
- \includegraphics[width=\textwidth]{images/seminarraum_drive-mean_data.pdf}
- \caption{Behaviour with mean correction on carpet floor, turn tests}
+ \includegraphics[width=\textwidth]{images/seminarraum_turn-mean_data.pdf}
+ \caption{Behavior with mean correction on carpet floor, turn movements}
 \end{figure}
 
-results better than in experiment 1, very accurate for laminate floor, carpet
-floor more spread but still kind of in the middle and less deviation from ideal
-value.
-\todo{statistical values, stddev?}
+For laminated floors, the results are actually better than in Experiment~1,
+apart from a huge increase of the absolute error for small input values (50~cm,
+5 and 20 degrees). As the error for this values is far into the negative
+range, it means that the Roomba has even turned to or driven in the wrong
+direction. The reason for that is most probably the fit function, which is below
+zero for these target values. Apart from that, higher target values or
+velocities correlate with a higher (absolute) error, just as already mentioned
+for the original behavior, which is caused by accumulating errors. However,
+when it comes to different velocities, the error is not as far distributed as it
+is for the original behavior. This makes the behavior of the Roomba more
+predictable over different velocities. Apparently, mean correction
+significantly improves the accuracy of the Roomba's general movement in this
+case.
+
+For carpet floors, the data shows not much difference to the original
+behavior, apart from the already mentioned large absolute error for small
+target values. Due to the steep drop of the error for large target values, it
+could maybe help to apply a quadratic regression for the determination of a fit
+function, in order to better represent the measured data. However, this is a
+matter for more detailed research and is not covered in this thesis.
This page took 0.027743 seconds and 4 git commands to generate.