From: Roland Hieber Date: Fri, 24 Jun 2011 04:14:13 +0000 (+0200) Subject: "hacked" version, now with graphics X-Git-Url: https://git.rohieb.name/bachelor-thesis/written-stuff.git/commitdiff_plain/df75c351fb7b1deeb49fa444b1bef90e13c76290 "hacked" version, now with graphics --- diff --git a/Ausarbeitung/biblio.bib b/Ausarbeitung/biblio.bib index 6099fa6..5b47e6b 100644 --- a/Ausarbeitung/biblio.bib +++ b/Ausarbeitung/biblio.bib @@ -15,7 +15,7 @@ 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}, @@ -27,7 +27,7 @@ keywords={ELDEN learning system;adaptive place network;dead reckoning;dynamic en 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}, @@ -45,7 +45,7 @@ ISSN={},} 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 diff --git a/Ausarbeitung/conclusion.tex b/Ausarbeitung/conclusion.tex new file mode 100644 index 0000000..550809b --- /dev/null +++ b/Ausarbeitung/conclusion.tex @@ -0,0 +1,2 @@ +\chapter{Conclusions} +\todo diff --git a/Ausarbeitung/experiment1.tex b/Ausarbeitung/experiment1.tex new file mode 100644 index 0000000..bea1dc6 --- /dev/null +++ b/Ausarbeitung/experiment1.tex @@ -0,0 +1,57 @@ +\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?} diff --git a/Ausarbeitung/experiment2.tex b/Ausarbeitung/experiment2.tex new file mode 100644 index 0000000..c575e4d --- /dev/null +++ b/Ausarbeitung/experiment2.tex @@ -0,0 +1,35 @@ +\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?} diff --git a/Ausarbeitung/experiment3.tex b/Ausarbeitung/experiment3.tex new file mode 100644 index 0000000..aceee64 --- /dev/null +++ b/Ausarbeitung/experiment3.tex @@ -0,0 +1,35 @@ +\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?} diff --git a/Ausarbeitung/images/IMAGE_00079.jpg b/Ausarbeitung/images/IMAGE_00079.jpg new file mode 100644 index 0000000..cdc43c7 Binary files /dev/null and b/Ausarbeitung/images/IMAGE_00079.jpg differ diff --git a/Ausarbeitung/images/IMAGE_00148.jpg b/Ausarbeitung/images/IMAGE_00148.jpg new file mode 100644 index 0000000..8e4b82e Binary files /dev/null and b/Ausarbeitung/images/IMAGE_00148.jpg differ diff --git a/Ausarbeitung/images/iz250flur_drive-mean_data.pdf b/Ausarbeitung/images/iz250flur_drive-mean_data.pdf new file mode 100644 index 0000000..5200c27 Binary files /dev/null and b/Ausarbeitung/images/iz250flur_drive-mean_data.pdf differ diff --git a/Ausarbeitung/images/iz250flur_drive-soft_data.pdf b/Ausarbeitung/images/iz250flur_drive-soft_data.pdf new file mode 100644 index 0000000..0c8f573 Binary files /dev/null and b/Ausarbeitung/images/iz250flur_drive-soft_data.pdf differ diff --git a/Ausarbeitung/images/iz250flur_drive_data.pdf b/Ausarbeitung/images/iz250flur_drive_data.pdf new file mode 100644 index 0000000..f263e6d Binary files /dev/null and b/Ausarbeitung/images/iz250flur_drive_data.pdf differ diff --git a/Ausarbeitung/images/iz250flur_turn-mean_data.pdf b/Ausarbeitung/images/iz250flur_turn-mean_data.pdf new file mode 100644 index 0000000..e6e2a81 Binary files /dev/null and b/Ausarbeitung/images/iz250flur_turn-mean_data.pdf differ diff --git a/Ausarbeitung/images/iz250flur_turn-soft_data.pdf b/Ausarbeitung/images/iz250flur_turn-soft_data.pdf new file mode 100644 index 0000000..e52cd32 Binary files /dev/null and b/Ausarbeitung/images/iz250flur_turn-soft_data.pdf differ diff --git a/Ausarbeitung/images/iz250flur_turn_data.pdf b/Ausarbeitung/images/iz250flur_turn_data.pdf new file mode 100644 index 0000000..276fb7d Binary files /dev/null and b/Ausarbeitung/images/iz250flur_turn_data.pdf differ diff --git a/Ausarbeitung/images/seminarraum_drive-mean_data.pdf b/Ausarbeitung/images/seminarraum_drive-mean_data.pdf new file mode 100644 index 0000000..eafcb05 Binary files /dev/null and b/Ausarbeitung/images/seminarraum_drive-mean_data.pdf differ diff --git a/Ausarbeitung/images/seminarraum_drive-soft_data.pdf b/Ausarbeitung/images/seminarraum_drive-soft_data.pdf new file mode 100644 index 0000000..59df0a0 Binary files /dev/null and b/Ausarbeitung/images/seminarraum_drive-soft_data.pdf differ diff --git a/Ausarbeitung/images/seminarraum_drive_data.pdf b/Ausarbeitung/images/seminarraum_drive_data.pdf new file mode 100644 index 0000000..089c42f Binary files /dev/null and b/Ausarbeitung/images/seminarraum_drive_data.pdf differ diff --git a/Ausarbeitung/images/seminarraum_turn-mean_data.pdf b/Ausarbeitung/images/seminarraum_turn-mean_data.pdf new file mode 100644 index 0000000..e69de29 diff --git a/Ausarbeitung/images/seminarraum_turn-soft_data.pdf b/Ausarbeitung/images/seminarraum_turn-soft_data.pdf new file mode 100644 index 0000000..e69de29 diff --git a/Ausarbeitung/images/seminarraum_turn_data.pdf b/Ausarbeitung/images/seminarraum_turn_data.pdf new file mode 100644 index 0000000..825e1b9 Binary files /dev/null and b/Ausarbeitung/images/seminarraum_turn_data.pdf differ diff --git a/Ausarbeitung/implementation.tex b/Ausarbeitung/implementation.tex new file mode 100644 index 0000000..0d2c768 --- /dev/null +++ b/Ausarbeitung/implementation.tex @@ -0,0 +1,58 @@ +\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 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. diff --git a/Ausarbeitung/introduction.tex b/Ausarbeitung/introduction.tex index fe7fc6f..0b7b036 100644 --- a/Ausarbeitung/introduction.tex +++ b/Ausarbeitung/introduction.tex @@ -1,2 +1,11 @@ \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 diff --git a/Ausarbeitung/main.kilepr b/Ausarbeitung/main.kilepr index 0c8be1b..0d3af10 100644 --- a/Ausarbeitung/main.kilepr +++ b/Ausarbeitung/main.kilepr @@ -1,5 +1,20 @@ [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= @@ -9,6 +24,46 @@ Indentation Mode=normal 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 @@ -19,28 +74,248 @@ ReadWrite=true [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 diff --git a/Ausarbeitung/main.tex b/Ausarbeitung/main.tex index 935b53b..35f51c1 100644 --- a/Ausarbeitung/main.tex +++ b/Ausarbeitung/main.tex @@ -2,7 +2,7 @@ \usepackage[utf8x]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman,english]{babel} -\usepackage{hyperref,color,url,acronym} +\usepackage{hyperref,color,url,acronym,graphicx} % FIXME hyperref setup @@ -47,8 +47,10 @@ \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 @@ -64,23 +66,14 @@ Braunschweig, den \today% \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} diff --git a/Ausarbeitung/preliminaries.tex b/Ausarbeitung/preliminaries.tex index 64b8e4f..06701fd 100644 --- a/Ausarbeitung/preliminaries.tex +++ b/Ausarbeitung/preliminaries.tex @@ -34,8 +34,6 @@ mobile robot to conduct the experiments described afterwards. For that, the 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