updated graphs for which two fit on one side
[bachelor-thesis/written-stuff.git] / Ausarbeitung / experiment1.tex
index fd46738..4b77f70 100644 (file)
@@ -1,12 +1,12 @@
 \chapter{Experiment 1: Original Movement Behaviour}
-
+\label{sec:exp1}
 In the first experiment, the Roomba's original movement behaviour is
 measured to get an overview of the errors that occur while moving, and to
 establish a pool of data for correction approaches to work on later.
 There was no error correction involved (apart from any possible error
 correction the Roomba itself implements in its underlying logic, and which is
 not known to anyone except iRobot). To achieve this, the Wiselib Roomba Control
-is used to access the Roomba over the \ac{ROI}\index{\acs{ROI}}.
+is used to access the Roomba over the \ac{ROI}\index{Roomba Open Interface}.
 
 \section{Setup}
 \begin{figure}[htbp]
@@ -23,17 +23,17 @@ is used to access the Roomba over the \ac{ROI}\index{\acs{ROI}}.
 The test equipment consisted of a small x86 \index{netbook} netbook which was
 mounted on an iRobot Roomba~530\index{Roomba} robot, as seen in
 Figure~\ref{fig:roombasetup}. The netbook controlled the Roomba over a
-\acs{USB}-to-serial converter plugged into the Open Interface \index{\acs{ROI}}
-port on the Roomba, and hosted as the environment for executing the Wiselib
-\index{Wiselib} code.
+\acs{USB}-to-serial converter plugged into the \ac{ROI}\index{Roomba
+Open Interface} port on the Roomba, and hosted as the environment for
+executing the Wiselib \index{Wiselib} code.
 
 In this experiment, the Roomba started right off with the full velocity the
 movement was executed with; so there was no control to adhere a constant
 acceleration when starting or stopping the movement. As mentioned before, due to
-limitations in the \acs{ROI}\index{\acs{ROI}} it is only possible to explicitly
-start and stop the Roomba's movements at different times, so the Wiselib's
-implementation of the Roomba control code first starts the Roomba's movement,
-keeps track of the turned angle and dcovered distance, and then stops
+limitations in the \ac{ROI}\index{Roomba Open Interface} it is only possible to
+explicitly start and stop the Roomba's movements at different times, so the
+Wiselib's implementation of the Roomba control code first starts the Roomba's
+movement, keeps track of the turned angle and dcovered distance, and then stops
 the Roomba if these values exceed the target values.
 
 The tests were done in two atomic drive modes: letting the Roomba walk a
@@ -59,7 +59,7 @@ center of the paper. A laser pointer\index{laser pointer} attached to the Roomba
 pointed to the current orientation on the paper, as shown in
 Fig.~\ref{fig:laserpointer}. The accuracy for these tests was 1~degree.
 
-After the initial setup, the application \prog{roomba\_tests} (see
+After the initial setup, the application \prog{roomba\_test} (see
 section~\ref{sec:impl:measuring}) was started on the netbook for half-automatic
 testing. It used a predefined array of nominal distances, angles and velocities
 and for each pair of distance (for straight drive tests) or angle (for turn
@@ -72,21 +72,20 @@ from, the battery status\index{battery status}, and other internal
 implementation-specific values.
 
 For the straight drive tests, the arrays with predefined values were:\\
-\begin{tabular}[h!]{ll}
-  Distances: & 20, 50, 100, 200, 500, 1000, 2000, and 4000~mm \\
-  Velocities: & 20, 50, 70, 100, 150, 200, 300, and 400~mm/s \\
+\begin{tabular}{@{}ll@{}}
+Distances: & 20, 50, 100, 200, 500, 1000, 2000, and 4000~mm \\
+Velocities: & 20, 50, 70, 100, 150, 200, 300, and 400~mm/s
 \end{tabular}
 
-For the turn tests, the arrays with predefined values were:\\
-\begin{tabular}[h!]{ll}
-  Turn angles: & 5, 15, 30, 45, 90, 120, 180, 360, 530, and 720~degree \\
-  Velocities: & 20, 50, 70, 100, 150, 200, 300, and 400~mm/s \\
+For the turn tests, the arrays with predefined values were: \\
+\begin{tabular}{@{}ll@{}}
+Turn angles: & 5, 15, 30, 45, 90, 120, 180, 360, 530, and 720~degree \\
+Velocities: & 20, 50, 70, 100, 150, 200, 300, and 400~mm/s
 \end{tabular}
-According to the implementation of the Wiselib Roomba control,
-the velocities were given in mm/sec and referred to the distance the wheels
-travelled when the Roomba turned on the spot, which was a circle of 230~mm in
-diameter.
 
+According to the implementation of the Wiselib Roomba control, the velocities
+were given in mm/sec and referred to the distance the wheels travelled when the
+Roomba turned on the spot, which was a circle of 230~mm in diameter.
 
 \section{Results}
 \label{exp1:results}
@@ -98,49 +97,46 @@ plots show multiple test runs; given are the minimum, the maximum and the
 arithmetic mean\index{arithmetic mean} of all results for a data point.
 
 \todo{clearpage, cleardoublepage?}
-%\clearpage
 \begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_drive_data.pdf}
- \caption{Original behaviour on laminated floor, straight drive tests
+ \caption{Original behaviour on laminated floor, straight drive movements
   \label{fig:orig:lam:drive}}
 \end{figure}
 \begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_turn_data.pdf}
- \caption{Original behaviour on laminated floor, turn tests
+ \caption{Original behaviour on laminated floor, turn movements
   \label{fig:orig:lam:turn}}
 \end{figure}
 \begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_drive_data.pdf}
- \caption{Original behaviour on carpet floor, straight drive tests
+ \caption{Original behaviour on carpet floor, straight drive movements
   \label{fig:orig:carpet:drive}}
 \end{figure}
 \begin{figure}[p!]
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_turn_data.pdf}
- \caption{Original behaviour on carpet floor, straight drive tests
+ \caption{Original behaviour on carpet floor, turn movements
   \label{fig:orig:carpet:turn}}
 \end{figure}
 
-Figure~\ref{fig:orig:lam:drive} shows that the error becomes greater
-with increasing input distance when driving straight on the
-laminated floor, however, in Fig.~\ref{fig:orig:carpet:drive} we see the
-opposite effect on the carpet floor, the error decreases with greater input
-distance. This could happen due to imprecise measurement of distances in either
-the Roomba's sensors or the Wiselib implementation that controls the Roomba, or
-both, adding up over the time the movement continues. Also slippage of the
-wheels on the laminated floor could be possible, as well as slowdown through
-the carpet floor, explaining why the error increases on the laminated floor, but
-decreases into negative values on the carpet floor when the distance grows.
+Figure~\ref{fig:orig:lam:drive} shows that the error becomes greater with
+increasing input distance when driving straight on the laminated floor, however,
+in Figure~\ref{fig:orig:carpet:drive} we see the opposite effect on the carpet
+floor, the error decreases with greater input distance. This could happen due to
+imprecise measurement of distances in either the Roomba's sensors or the Wiselib
+implementation that controls the Roomba, or both, adding up over the time the
+movement continues. Also slippage of the wheels on the laminated floor could be
+possible, as well as slowdown through the carpet floor, explaining why the error
+increases on the laminated floor, but decreases into negative values on the
+carpet floor when the distance grows.
 
 On the other hand, rising the velocity always seems to cause the
 error to increase.
 
 The same effects also apply for turn tests. Additionally, there could be errors
-resulting from false assumptions about the Roomba's wheelbase\index{wheelbase}
+resulting from false assumptions about the Roomba's wheel base\index{wheel base}
 diameter, resulting in false calculations of the circle the Roomba's wheels
 describe while turning, and therefore leading to false results.
-
-\todo{statistical values, stddev?}
This page took 0.030299 seconds and 4 git commands to generate.