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.