X-Git-Url: https://git.rohieb.name/bachelor-thesis/written-stuff.git/blobdiff_plain/df75c351fb7b1deeb49fa444b1bef90e13c76290..e1b31bbb160bcdaeef79f2c60f2b69d173876ff1:/Ausarbeitung/experiment2.tex

diff --git a/Ausarbeitung/experiment2.tex b/Ausarbeitung/experiment2.tex
index c575e4d..0851f70 100644
--- a/Ausarbeitung/experiment2.tex
+++ b/Ausarbeitung/experiment2.tex
@@ -1,35 +1,72 @@
-\chapter{Experiment 2: Movement Behaviour with Mean Correction}
-\todo
+\chapter{Experiment 2: Movement Behavior with Mean Correction}
+\todo{}
+\label{sec:exp2}
 
-\section{Setup}
-Fit function from data in experiment 1; algorithm determined target value for
-distance from fit function and input distance and input velocity.
+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 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 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.
 
-Setup was the same as in experiment 1. Application on netbook was
-"`mean\_correction\_test"', same procedure as in first experiment.
+\section{Setup}
+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}
-\begin{figure}
+\label{sec:exp2:results}
+\begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_drive-mean_data.pdf}
- \caption{foo}
+ \caption{Behavior with mean correction on laminated floor, straight drive
+movements}
 \end{figure}
-\begin{figure}
+\begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_turn-mean_data.pdf}
- \caption{foo}
+ \caption{Behavior with mean correction on laminated floor, turn movements}
 \end{figure}
-\begin{figure}
+\begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_drive-mean_data.pdf}
- \caption{foo}
+ \caption{Behavior with mean correction on carpet floor, straight drive
+movements}
 \end{figure}
-\begin{figure}
+\begin{figure}[p!]
  \centering
- \includegraphics[width=\textwidth]{images/seminarraum_drive-mean_data.pdf}
- \caption{foo}
+ \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.
-\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.
