zwischenstand
authorRoland Hieber <rohieb@rohieb.name>
Tue, 5 Jul 2011 22:26:19 +0000 (00:26 +0200)
committerRoland Hieber <rohieb@rohieb.name>
Tue, 5 Jul 2011 22:26:19 +0000 (00:26 +0200)
Ausarbeitung/conclusion.tex
Ausarbeitung/experiment1.tex
Ausarbeitung/experiment2.tex
Ausarbeitung/experiment3.tex
Ausarbeitung/implementation.tex
Ausarbeitung/introduction.tex
Ausarbeitung/main.kilepr
Ausarbeitung/main.tex

index 550809b..ef18d2e 100644 (file)
@@ -1,2 +1,2 @@
 \chapter{Conclusions}
 \chapter{Conclusions}
-\todo
+\todo{. }
index bea1dc6..bf488d6 100644 (file)
 \chapter{Experiment 1: Original Movement Behaviour}
 \chapter{Experiment 1: Original Movement Behaviour}
-\todo
+\todo{}
 \section{Setup}
 
 \section{Setup}
 
-\begin{figure}[htp]
+\begin{figure}[htbp]
  \centering
  \includegraphics[width=0.45\textwidth]{./images/IMAGE_00079.jpg}
  \centering
  \includegraphics[width=0.45\textwidth]{./images/IMAGE_00079.jpg}
- \caption{Roomba with netbook}
+ \caption{Roomba with netbook\label{fig:roombasetup}}
 \end{figure}
 \end{figure}
-\begin{figure}[htp]
+\begin{figure}[htbp]
  \centering
  \includegraphics[width=0.6\textwidth]{./images/IMAGE_00148.jpg}
  \centering
  \includegraphics[width=0.6\textwidth]{./images/IMAGE_00148.jpg}
- \caption{Measuring turn angles with laser pointer}
+ \caption{Measuring turn angles with laser pointer\label{fig:laserpointer}}
 \end{figure}
 
 \end{figure}
 
-Description of experiment setup: netbook on Roomba, application
-"`roomba\_tests"' started which took care of the input values, user was asked
-to measure \& input the data. there were Turn tests and straight drive tests,
-different floor types: laminate and carpet floor.
+The test equipment consisted of a small Intel Atom netbook which was mounted on
+an iRobot Roomba~500 robot. The netbook controlled the Roomba over a
+\acs{USB}-to-serial converter plugged into the Open Interface port on the
+Roomba, and hosted as the environment for executing the Wiselib code (see
+fig.~\ref{fig:roombasetup}).
 
 
-drive tests: measuring was done with measuring tape. error perpendicular to
-roomba's viewing direction was too small to be measured.
+In the first experiment, the original movement behaviour of the Roomba was
+measured to establish a pool of data for correction approaches to work on.
+There was no error correction involved, and 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.
 
 
-velocities =  20, 50, 70, 100, 150, 200, 300, 400 mm/s \\
-distances =  20, 50, 100, 200, 500, 1000, 2000, 4000 mm
+The tests were done in two atomic drive modes: letting the Roomba drive a
+specific straight distance with a specific velocity in its viewing direction and
+letting it turn on the spot with a specific velocity about a specific angle.
+Each of the two modes was carried out on two different floor types, a laminated
+floor and a carpet floor, to see if the movement behaviour significantly
+depended on the floor type.
 
 
-turn tests: measuring with polar coordinate system of about 1~m diameter, roomba
-in the center, laser pointer points to measured value.
+The actual travelled distance of the straight drive tests were determined using
+a measuring tape with an accuracy of 1~mm. Only the distance in the Roomba's
+original viewing direction was considered, as the offset perpendicular to the
+viewing direction and a possible shift in orientation were too small to be
+measured precisely.
+
+The actual turn angles of the turn tests were determined using a DIN~A0 sheet
+of paper with a printed polar coordinate system in which a circular hole was cut
+in the center to let the Roomba's wheels touch the floor. The sheet was fixed
+on the floor, and the Roomba was aligned in the center of the paper. A 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 \definition{\cmd{roomba\_tests}} (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
+tests) and velocity it used the Wiselib implementation to move the Roomba. Then
+it asked the user to input the measured distance or angle the Roomba had moved
+and repeated the process until each combination of distance/angle and velocity
+was used. The nominal and input values were written to a log file, as well as
+the floor type, the Roomba ID, the \ac{SVN} revision the program was built
+from, the 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 \\
+\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 \\
+\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.
 
 
-velocities =  20, 50, 70, 100, 150, 200, 300, 400  mm/s\\
-turn angles =  5, 15, 30, 45, 90, 120, 180, 360, 530, 720 degree
 
 \section{Results}
 
 \section{Results}
-\begin{figure}
+
+The following graphs show the difference from the measured value to the input
+value for driving or turning with different velocities. Positive values mean
+that the Roomba had turned too much or travelled more than the target value,
+negative values mean that the Roomba had turned or travelled less.
+
+\begin{figure}[pt!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_drive_data.pdf}
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_drive_data.pdf}
- \caption{foo}
+ \caption{Original behaviour on laminated floor, straight drive tests
+  \label{fig:orig:lam:drive}}
 \end{figure}
 \end{figure}
-\begin{figure}
+\begin{figure}[pb!]
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_turn_data.pdf}
  \centering
  \includegraphics[width=\textwidth]{images/iz250flur_turn_data.pdf}
- \caption{foo}
+ \caption{Original behaviour on laminated floor, turn tests
+  \label{fig:orig:lam:turn}}
 \end{figure}
 \end{figure}
-\begin{figure}
+\begin{figure}[pt!]
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_drive_data.pdf}
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_drive_data.pdf}
- \caption{foo}
+ \caption{Original behaviour on carpet floor, straight drive tests
+  \label{fig:orig:carpet:drive}}
 \end{figure}
 \end{figure}
-\begin{figure}
+\begin{figure}[pb!]
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_turn_data.pdf}
  \centering
  \includegraphics[width=\textwidth]{images/seminarraum_turn_data.pdf}
- \caption{foo}
+ \caption{Original behaviour on carpet floor, straight drive tests
+  \label{fig:orig:carpet:turn}}
 \end{figure}
 
 \end{figure}
 
-Absolute error becomes greater with increasing velocity and input value, but
-error is smaller on carpet floor.
+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. Also slippage of the wheels on the laminated floor could be possible,
+explaining the descending
+On the other hand, rising the velocity always seems to cause the
+error to increase.
+
 \todo{statistical values, stddev?}
 \todo{statistical values, stddev?}
index c575e4d..4dc3386 100644 (file)
@@ -1,13 +1,17 @@
 \chapter{Experiment 2: Movement Behaviour with Mean Correction}
 \chapter{Experiment 2: Movement Behaviour with Mean Correction}
-\todo
+\todo{}
 
 \section{Setup}
 Fit function from data in experiment 1; algorithm determined target value for
 distance from fit function and input distance and input velocity.
 
 
 \section{Setup}
 Fit function from data in experiment 1; algorithm determined target value for
 distance from fit function and input distance and input velocity.
 
+approach: correct imprecise measurement
+
 Setup was the same as in experiment 1. Application on netbook was
 "`mean\_correction\_test"', same procedure as in first experiment.
 
 Setup was the same as in experiment 1. Application on netbook was
 "`mean\_correction\_test"', same procedure as in first experiment.
 
+expectations \& were they fulfilled?
+
 \section{Results}
 \begin{figure}
  \centering
 \section{Results}
 \begin{figure}
  \centering
@@ -31,5 +35,6 @@ Setup was the same as in experiment 1. Application on netbook was
 \end{figure}
 
 results better than in experiment 1, very accurate for laminate floor, carpet
 \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.
+floor more spread but still kind of in the middle and less deviation from ideal
+value.
 \todo{statistical values, stddev?}
 \todo{statistical values, stddev?}
index aceee64..b357daf 100644 (file)
@@ -1,14 +1,18 @@
 \chapter{Experiment 3: Movement Behaviour with Constant Start/Stop
 Acceleration}
 \chapter{Experiment 3: Movement Behaviour with Constant Start/Stop
 Acceleration}
-\todo
+\todo{}
 
 \section{Setup}
 algorithm: slowly accelerate at start over a time of 1 second, deaccelerate at
 stop. no mean correction.
 
 
 \section{Setup}
 algorithm: slowly accelerate at start over a time of 1 second, deaccelerate at
 stop. no mean correction.
 
+approach: correct slippage on the floor
+
 setup same as in experiment 1 and 2, application on netbook was
 "`soft\_start\_test"'.
 
 setup same as in experiment 1 and 2, application on netbook was
 "`soft\_start\_test"'.
 
+expectations \& were they fulfilled?
+
 \section{Results}
 \begin{figure}
  \centering
 \section{Results}
 \begin{figure}
  \centering
index 0d2c768..764d592 100644 (file)
@@ -1,6 +1,8 @@
 \chapter{Description of Implementation}
 \section{Measuring}
 \chapter{Description of Implementation}
 \section{Measuring}
-\todo
+\label{sec:impl:measuring}
+
+\todo{}
 
 C++ code in wiselib/trunk/pc\_apps/roomba\_tests
 
 
 C++ code in wiselib/trunk/pc\_apps/roomba\_tests
 
@@ -35,7 +37,7 @@ concept like wiselib::ControlledMotion and takes care of increasing/decreasing
 velocity via timer.
 
 \section{Evaluation}
 velocity via timer.
 
 \section{Evaluation}
-\todo
+\todo{}
 
 bash/perl scripts in wiselib/trunk/pc\_apps/roomba\_tests/logs, using gnuplot
 
 
 bash/perl scripts in wiselib/trunk/pc\_apps/roomba\_tests/logs, using gnuplot
 
index 0b7b036..578af57 100644 (file)
@@ -8,4 +8,4 @@ Yamauchi \cite{yamauchi}: Dead-reckoning with Evidence Grids
 
 Chong, Kleeman \cite{chongkleeman}: High-precision odometry
 
 
 Chong, Kleeman \cite{chongkleeman}: High-precision odometry
 
-\todo
\ No newline at end of file
+\todo{}
\ No newline at end of file
index 0d3af10..f5c3ee3 100644 (file)
@@ -4,7 +4,7 @@ img_extIsRegExp=false
 img_extensions=.eps .jpg .jpeg .png .pdf .ps .fig .gif
 kileprversion=2
 kileversion=2.0.85
 img_extensions=.eps .jpg .jpeg .png .pdf .ps .fig .gif
 kileprversion=2
 kileversion=2.0.85
-lastDocument=main.tex
+lastDocument=biblio.bib
 masterDocument=
 name=Project
 pkg_extIsRegExp=false
 masterDocument=
 name=Project
 pkg_extIsRegExp=false
@@ -94,12 +94,12 @@ order=-1
 
 [item:experiment1.tex]
 archive=true
 
 [item:experiment1.tex]
 archive=true
-column=28
+column=0
 encoding=UTF-8
 highlight=LaTeX
 encoding=UTF-8
 highlight=LaTeX
-line=0
+line=14
 mode=LaTeX
 mode=LaTeX
-open=true
+open=false
 order=3
 
 [item:experiment2.tex]
 order=3
 
 [item:experiment2.tex]
@@ -109,17 +109,17 @@ encoding=UTF-8
 highlight=LaTeX
 line=35
 mode=LaTeX
 highlight=LaTeX
 line=35
 mode=LaTeX
-open=true
+open=false
 order=4
 
 [item:experiment3.tex]
 archive=true
 order=4
 
 [item:experiment3.tex]
 archive=true
-column=0
+column=66
 encoding=UTF-8
 highlight=LaTeX
 encoding=UTF-8
 highlight=LaTeX
-line=35
+line=0
 mode=LaTeX
 mode=LaTeX
-open=true
+open=false
 order=5
 
 [item:images/IMAGE_00079.jpg]
 order=5
 
 [item:images/IMAGE_00079.jpg]
@@ -269,15 +269,15 @@ encoding=UTF-8
 highlight=LaTeX
 line=31
 mode=LaTeX
 highlight=LaTeX
 line=31
 mode=LaTeX
-open=true
+open=false
 order=6
 
 [item:introduction.tex]
 archive=true
 order=6
 
 [item:introduction.tex]
 archive=true
-column=61
+column=0
 encoding=UTF-8
 highlight=LaTeX
 encoding=UTF-8
 highlight=LaTeX
-line=1
+line=9
 mode=LaTeX
 open=true
 order=1
 mode=LaTeX
 open=true
 order=1
@@ -287,35 +287,45 @@ archive=true
 column=0
 encoding=UTF-8
 highlight=LaTeX
 column=0
 encoding=UTF-8
 highlight=LaTeX
-line=49
+line=10
 mode=LaTeX
 open=true
 order=0
 
 mode=LaTeX
 open=true
 order=0
 
+[item:preliminaries.tex]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
 [view-settings,view=0,item:biblio.bib]
 CursorColumn=0
 CursorLine=39
 
 [view-settings,view=0,item:experiment1.tex]
 [view-settings,view=0,item:biblio.bib]
 CursorColumn=0
 CursorLine=39
 
 [view-settings,view=0,item:experiment1.tex]
-CursorColumn=28
-CursorLine=0
+CursorColumn=0
+CursorLine=14
 
 [view-settings,view=0,item:experiment2.tex]
 CursorColumn=0
 CursorLine=35
 
 [view-settings,view=0,item:experiment3.tex]
 
 [view-settings,view=0,item:experiment2.tex]
 CursorColumn=0
 CursorLine=35
 
 [view-settings,view=0,item:experiment3.tex]
-CursorColumn=0
-CursorLine=35
+CursorColumn=66
+CursorLine=0
 
 [view-settings,view=0,item:implementation.tex]
 CursorColumn=0
 CursorLine=31
 
 [view-settings,view=0,item:introduction.tex]
 
 [view-settings,view=0,item:implementation.tex]
 CursorColumn=0
 CursorLine=31
 
 [view-settings,view=0,item:introduction.tex]
-CursorColumn=61
-CursorLine=1
+CursorColumn=0
+CursorLine=9
 
 [view-settings,view=0,item:main.tex]
 CursorColumn=0
 
 [view-settings,view=0,item:main.tex]
 CursorColumn=0
-CursorLine=49
+CursorLine=10
index 35f51c1..bde1edb 100644 (file)
@@ -6,18 +6,16 @@
 
 % FIXME hyperref setup
 
 
 % FIXME hyperref setup
 
-\newcommand{\todo}[1][\ldots]{\textcolor{red}{\index{Todo}\LARGE TODO:~#1}}
+\newcommand{\todo}[1]{\textcolor{red}{\index{Todo}\LARGE TODO:~#1}}
 \newcommand{\definition}[1]{#1} % FIXME: add to glossary and/or index
 \newcommand{\definition}[1]{#1} % FIXME: add to glossary and/or index
-
-% \begin{acronym}
-%  \acronym{GPS}{Global Positioning System}
-% \end{acronym}
+\newcommand{\cmd}[1]{\texttt{#1}} % FIXME: add to glossary and/or index
 
 \author{Roland Hieber}
 \title{Error modeling of an autonomous, mobile robot}
 % \date{July 9, 2011}
 
 \begin{document}
 
 \author{Roland Hieber}
 \title{Error modeling of an autonomous, mobile robot}
 % \date{July 9, 2011}
 
 \begin{document}
+
 \begin{titlepage}
   \vskip 60pt
   \makeatletter
 \begin{titlepage}
   \vskip 60pt
   \makeatletter
@@ -59,10 +57,17 @@ Braunschweig, den \today
 
 \tableofcontents
 \cleardoublepage
 
 \tableofcontents
 \cleardoublepage
-\listoffigures
-\cleardoublepage
+\listoffigures
+\cleardoublepage
 % \listoftables
 % \cleardoublepage
 % \listoftables
 % \cleardoublepage
+\chapter*{Table of Acronyms}
+\begin{acronym}
+ \acro{GPS}{Global Positioning System}
+ \acro{USB}{Universal Serial Bus}
+ \acro{SVN}{Subversion}
+\end{acronym}
+
 \pagenumbering{arabic}
 \pagestyle{headings}
 
 \pagenumbering{arabic}
 \pagestyle{headings}
 
This page took 0.041558 seconds and 4 git commands to generate.