year=2010,
}
-@INPROCEEDINGS{506902,
+@INPROCEEDINGS{yamauchi,
author={Yamauchi, B.},
booktitle={Robotics and Automation, 1996. Proceedings., 1996 IEEE International Conference on}, title={Mobile robot localization in dynamic environments using dead reckoning and evidence grids},
year={1996},
doi={10.1109/ROBOT.1996.506902},
ISSN={1050-4729},}
-@INPROCEEDINGS{351095,
+@INPROCEEDINGS{borenstein,
author={Borenstein, J.},
booktitle={Robotics and Automation, 1994. Proceedings., 1994 IEEE International Conference on}, title={The CLAPPER: a dual-drive mobile robot with internal correction of dead-reckoning errors},
year={1994},
year = {1994}
}
-@INPROCEEDINGS{606708,
+@INPROCEEDINGS{chongkleeman,
author={Kok Seng Chong and Kleeman, L.},
booktitle={Robotics and Automation, 1997. Proceedings., 1997 IEEE International
Conference on}, title={Accurate odometry and error modelling for a mobile
--- /dev/null
+\chapter{Conclusions}
+\todo
--- /dev/null
+\chapter{Experiment 1: Original Movement Behaviour}
+\todo
+\section{Setup}
+
+\begin{figure}[htp]
+ \centering
+ \includegraphics[width=0.45\textwidth]{./images/IMAGE_00079.jpg}
+ \caption{Roomba with netbook}
+\end{figure}
+\begin{figure}[htp]
+ \centering
+ \includegraphics[width=0.6\textwidth]{./images/IMAGE_00148.jpg}
+ \caption{Measuring turn angles with laser pointer}
+\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.
+
+drive tests: measuring was done with measuring tape. error perpendicular to
+roomba's viewing direction was too small to be measured.
+
+velocities = 20, 50, 70, 100, 150, 200, 300, 400 mm/s \\
+distances = 20, 50, 100, 200, 500, 1000, 2000, 4000 mm
+
+turn tests: measuring with polar coordinate system of about 1~m diameter, roomba
+in the center, laser pointer points to measured value.
+
+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}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/iz250flur_drive_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/iz250flur_turn_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/seminarraum_drive_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/seminarraum_turn_data.pdf}
+ \caption{foo}
+\end{figure}
+
+Absolute error becomes greater with increasing velocity and input value, but
+error is smaller on carpet floor.
+\todo{statistical values, stddev?}
--- /dev/null
+\chapter{Experiment 2: Movement Behaviour with Mean Correction}
+\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.
+
+Setup was the same as in experiment 1. Application on netbook was
+"`mean\_correction\_test"', same procedure as in first experiment.
+
+\section{Results}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/iz250flur_drive-mean_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/iz250flur_turn-mean_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/seminarraum_drive-mean_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/seminarraum_drive-mean_data.pdf}
+ \caption{foo}
+\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?}
--- /dev/null
+\chapter{Experiment 3: Movement Behaviour with Constant Start/Stop
+Acceleration}
+\todo
+
+\section{Setup}
+algorithm: slowly accelerate at start over a time of 1 second, deaccelerate at
+stop. no mean correction.
+
+setup same as in experiment 1 and 2, application on netbook was
+"`soft\_start\_test"'.
+
+\section{Results}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/iz250flur_drive-soft_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/iz250flur_turn-soft_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/seminarraum_drive-soft_data.pdf}
+ \caption{foo}
+\end{figure}
+\begin{figure}
+ \centering
+ \includegraphics[width=\textwidth]{images/seminarraum_drive-soft_data.pdf}
+ \caption{foo}
+\end{figure}
+
+same or even worse deviation as in original behaviour...
+\todo{statistical values, stddev?}
--- /dev/null
+\chapter{Description of Implementation}
+\section{Measuring}
+\todo
+
+C++ code in wiselib/trunk/pc\_apps/roomba\_tests
+
+three single applications with same base: roomba\_test (main.cc),
+mean\_correction\_test (mean\_correction.cc), soft\_start\_test
+(soft\_start.cc).
+
+user interface: Qt.
+
+manual tests (user is asked for new values every time) or automated tests (user
+only asked for measured values).
+
+1) open UART connection
+
+2) register state callback for getting roomba sensor data
+
+3) while(input values or cancel) { drive() / turn() }
+
+4) drive() / turn() use wiselib::ControlledMotion<OsModel,
+wiselib::RoombaModel> for moving specified angle/distance; and ask for measured
+values and write to external log file, including battery status, roomba/wiselib
+internal angles/distances (ticks), svn revision, floor type, roomba ID
+
+additionally, mean correction test uses
+CorrectedMeanMotion from corrected\_mean\_motion.h, implements same concept like
+wiselib::ControlledMotion and takes care of target value by using the
+calculated fit function .
+
+additionally, soft start/stop test uses
+SoftStartMotion from soft\_start\_motion.h, implements same
+concept like wiselib::ControlledMotion and takes care of increasing/decreasing
+velocity via timer.
+
+\section{Evaluation}
+\todo
+
+bash/perl scripts in wiselib/trunk/pc\_apps/roomba\_tests/logs, using gnuplot
+
+graph.sh: create 3d plots (input value, input velocity, measured value) from
+original behvaiour data, including fit function calculated by GNU R statistics
+software, for {carpet floor, laminate floor} $\times$ {drive straight, turn on
+spot}
+
+graph-mean.sh: do the same for mean correction data, including fit function from
+original data
+
+graph-soft.sh: do the same for soft start/stop data, including fit function from
+original data
+
+graph-mean-soft.sh: 3d plot with mean correction and soft start/stop data, for
+comparison of both
+
+graph-errorlines.sh: create 2d plots input value -> measured value, with
+multiple velocities in each graph. also split graphs up for {carpet floor,
+laminate floor} $\times$ {drive straight, turn on spot}. no fit function.
\chapter{Introduction}
\todo{motivation, importance of dead reckoning, what was done?}
+
+\chapter{Related work}
+Borenstein, Feng \cite{umbmark}: Benchmark for mobile robots
+
+Yamauchi \cite{yamauchi}: Dead-reckoning with Evidence Grids
+
+Chong, Kleeman \cite{chongkleeman}: High-precision odometry
+
+\todo
\ No newline at end of file
[General]
+def_graphic_ext=
+img_extIsRegExp=false
+img_extensions=.eps .jpg .jpeg .png .pdf .ps .fig .gif
+kileprversion=2
+kileversion=2.0.85
lastDocument=main.tex
+masterDocument=
+name=Project
+pkg_extIsRegExp=false
+pkg_extensions=.cls .sty .bbx .cbx .lbx
+src_extIsRegExp=false
+src_extensions=.tex .ltx .latex .dtx .ins
+
+[Tools]
+MakeIndex=
+QuickBuild=
[document-settings,item:biblio.bib]
Bookmarks=
Mode=BibTeX
ReadWrite=true
+[document-settings,item:experiment1.tex]
+Bookmarks=
+Encoding=UTF-8
+Highlighting=LaTeX
+Indentation Mode=normal
+Mode=LaTeX
+ReadWrite=true
+
+[document-settings,item:experiment2.tex]
+Bookmarks=
+Encoding=UTF-8
+Highlighting=LaTeX
+Indentation Mode=normal
+Mode=LaTeX
+ReadWrite=true
+
+[document-settings,item:experiment3.tex]
+Bookmarks=
+Encoding=UTF-8
+Highlighting=LaTeX
+Indentation Mode=normal
+Mode=LaTeX
+ReadWrite=true
+
+[document-settings,item:implementation.tex]
+Bookmarks=
+Encoding=UTF-8
+Highlighting=LaTeX
+Indentation Mode=normal
+Mode=LaTeX
+ReadWrite=true
+
+[document-settings,item:introduction.tex]
+Bookmarks=
+Encoding=UTF-8
+Highlighting=LaTeX
+Indentation Mode=normal
+Mode=LaTeX
+ReadWrite=true
+
[document-settings,item:main.tex]
Bookmarks=
Encoding=UTF-8
[item:biblio.bib]
archive=true
-column=11
+column=0
encoding=UTF-8
highlight=BibTeX
-line=5
+line=39
mode=BibTeX
+open=true
+order=2
+
+[item:conclusion.tex]
+archive=true
+column=7471201
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:experiment1.tex]
+archive=true
+column=28
+encoding=UTF-8
+highlight=LaTeX
+line=0
+mode=LaTeX
+open=true
+order=3
+
+[item:experiment2.tex]
+archive=true
+column=0
+encoding=UTF-8
+highlight=LaTeX
+line=35
+mode=LaTeX
+open=true
+order=4
+
+[item:experiment3.tex]
+archive=true
+column=0
+encoding=UTF-8
+highlight=LaTeX
+line=35
+mode=LaTeX
+open=true
+order=5
+
+[item:images/IMAGE_00079.jpg]
+archive=true
+column=6619246
+encoding=
+highlight=
+line=0
+mode=
open=false
order=-1
+[item:images/IMAGE_00148.jpg]
+archive=true
+column=7471142
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/iz250flur_drive-mean_data.pdf]
+archive=true
+column=1668236335
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/iz250flur_drive-soft_data.pdf]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/iz250flur_drive_data.pdf]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/iz250flur_turn-mean_data.pdf]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/iz250flur_turn-soft_data.pdf]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/iz250flur_turn_data.pdf]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/seminarraum_drive-mean_data.pdf]
+archive=true
+column=102
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/seminarraum_drive-soft_data.pdf]
+archive=true
+column=1768226918
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/seminarraum_drive_data.pdf]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/seminarraum_turn-mean_data.pdf]
+archive=true
+column=0
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/seminarraum_turn-soft_data.pdf]
+archive=true
+column=32512
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:images/seminarraum_turn_data.pdf]
+archive=true
+column=7471201
+encoding=
+highlight=
+line=0
+mode=
+open=false
+order=-1
+
+[item:implementation.tex]
+archive=true
+column=0
+encoding=UTF-8
+highlight=LaTeX
+line=31
+mode=LaTeX
+open=true
+order=6
+
+[item:introduction.tex]
+archive=true
+column=61
+encoding=UTF-8
+highlight=LaTeX
+line=1
+mode=LaTeX
+open=true
+order=1
+
[item:main.tex]
archive=true
column=0
encoding=UTF-8
highlight=LaTeX
-line=43
+line=49
mode=LaTeX
open=true
order=0
[view-settings,view=0,item:biblio.bib]
-CursorColumn=11
-CursorLine=5
+CursorColumn=0
+CursorLine=39
+
+[view-settings,view=0,item:experiment1.tex]
+CursorColumn=28
+CursorLine=0
+
+[view-settings,view=0,item:experiment2.tex]
+CursorColumn=0
+CursorLine=35
+
+[view-settings,view=0,item:experiment3.tex]
+CursorColumn=0
+CursorLine=35
+
+[view-settings,view=0,item:implementation.tex]
+CursorColumn=0
+CursorLine=31
+
+[view-settings,view=0,item:introduction.tex]
+CursorColumn=61
+CursorLine=1
[view-settings,view=0,item:main.tex]
CursorColumn=0
-CursorLine=43
+CursorLine=49
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
-\usepackage{hyperref,color,url,acronym}
+\usepackage{hyperref,color,url,acronym,graphicx}
% FIXME hyperref setup
\vspace*{1cm}
Ich versichere, die vorliegende Arbeit selbstständig und nur unter Benutzung
der angegebenen Hilfsmittel angefertigt zu haben.
+
\vspace*{3cm}
-Braunschweig, den \today%
+Braunschweig, den \today
+
\selectlanguage{english}
\pagestyle{headings}
\cleardoublepage
\pagenumbering{arabic}
\pagestyle{headings}
+% chapters
\input{introduction}
\input{preliminaries}
-
-\chapter{Experiment 1: Original Movement Behaviour}
-\section{Setup}
-\section{Results}
-\todo
-\chapter{Experiment 2: Movement Behaviour with Mean Correction}
-\section{Setup}
-\section{Results}
-\todo
-\chapter{Experiment 3: Movement Behaviour with Constant Starting Accelleration}
-\section{Setup}
-\section{Results}
-\todo
-\chapter{Conclusions}
-\todo
+\input{experiment1}
+\input{experiment2}
+\input{experiment3}
+\input{conclusion}
+\input{implementation}
\bibliographystyle{plain}
\bibliography{biblio}
Open Interface is used to control the Roomba's movements from a netbook which is
running Wiselib code.
-\todo{picture of Roomba/netbook setup}
-
\section{Wiselib}
The \definition{Wiselib}\cite{wiselib} is a C++ algorithm library for sensor
networks, containing for example algorithms for routing, localization and time