Started work on Our Solution and Perception

This commit is contained in:
2018-08-06 22:08:56 +02:00
parent c4cd4f07e4
commit be93fdda38
3 changed files with 75 additions and 14 deletions

View File

@@ -0,0 +1,46 @@
\section{Ball detection}
The very first task that needed to be accomplished was to detect the ball,
which is uniformly red-colored and measures about 6 cm in diameter. We decided
to use a popular algorithm based on color segmentation. The idea behind this
algorithm is to find the biggest red area in the image and assume that this is
the ball. First, the desired color needs to be defined as an interval of HSV
(Hue-Saturation-Value) values. After that, the image itself needs to be
transformed into HSV colorspace, so that the regions of interest can be
extracted into a \textit{binary mask}. The contours of the regions can then be
identified in a mask, and the areas of the regions can be calculated using the
routines from the OpenCV library. The center and the radius of the region with
the largest area are then determined and are assumed to be the center and the
radius of the ball.
It is often recommended to eliminate the noise in the binary mask by applying a
sequence of \textit{erosions} and \textit{dilations}, but we found, that for
the task of finding the \textit{biggest} area the noise doesn't present a
problem, whereas performing erosions may completely delete the image of the
ball, if it is relatively far from the robot and the camera resolution is low.
For this reason it was decided not to process the binary mask with erosions and
dilations, which allowed us to detect the ball even over long distances.
The advantages of the presented algorithm are its speed and simplicity. The
major downside is that the careful color calibration is required for the
algorithm to function properly. If the HSV interval of the targeted color is
too narrow, then the algorithm might miss the ball; if the interval is too
wide, then other big red-shaded objects in the camera image will be detected as
the ball. A possible approach to alleviate these issues to a certain degree
will be presented further in this chapter. To conclude, we found this algorithm
to be robust enough for our purposes, if the sensible color calibration was
provided.
\section{Goal detection}
The goal detection presented itself as a more difficult task. The color of the
goal is white, and there are generally many white areas in the image from the
robot camera, which have area larger than that of the image of the goal, for
example the white field lines and the big white wall in the room with the
field. To deal with the multitude of the possible goal candidates, we
propose the following algorithm.
First, all contours around white areas are extracted by using a procedure
similar to that described in the section on ball detection. Only $N$ contours
with the largest areas are considered further (in our experiments it was
empirically determined that $N=5$ provides good results).

View File

@@ -40,38 +40,45 @@
\preface
%\input{Acknowledgements/Acknowledgements}
% \input{Acknowledgements/Acknowledgements}
\generatebody %generates table of contents, list of figures and list of tables.
\generatebody % generates table of contents, list of figures and of tables.
%\input{Introduction/Introduction}
% \input{Introduction/Introduction}
\setstretch{1.2} % set line spacing
\input{introduction}
\input{tools}
\input{solintro}
\input{perception}
\input{jonas}
% body of thesis comes here
%\input{Body/SoftwareTools} %this loads the content of file SoftwareTools.tex in the folder Body.
%\todo{SoftwareTools} %this is how you add a todo, it will appear in the list on page 2, and in orange in the margin where you add it.
%\input{Body/Setup}
% \input{Body/SoftwareTools} %this loads the content of file SoftwareTools.tex
% in the folder Body.
% \todo{SoftwareTools} %this is how you add a todo, it will appear in the list
% on page 2, and in orange in the margin where you add it.
% \input{Body/Setup}
% \todo{Setup}
%\input{Body/Perception}
%\todo{Perception}
%\input{Body/Modeling}
%\todo{Modeling}
%\input{Body/Motion}
% \input{Body/Perception}
% \todo{Perception}
% \input{Body/Modeling}
% \todo{Modeling}
% \input{Body/Motion}
%\input{Body/Behavior}
% \input{Body/Behavior}
%\input{Conclusion/Conclusion}
% \input{Conclusion/Conclusion}
\begin{appendices}
%\input{Appendix/BehaviorImplementation}
\end{appendices}
% Bibliography, see https://de.sharelatex.com/learn/Bibliography_management_with_bibtex#Bibliography_management_with_Bibtex
% Bibliography, see
% https://de.sharelatex.com/learn/Bibliography_management_with_bibtex#Bibliography_management_with_Bibtex
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{IEEEtran}
\bibliography{Bibliography/Bibliography}

View File

@@ -0,0 +1,8 @@
\chapter{Our solution}
To achieve our objective, we identified ten big milestones that needed to be
completed. These milestones can roughly be grouped into perception, approach
planing, approach and the kick. In this chapter we will give our solutions to
the problems posed by each of the milestones, and at the end the resulting goal
scoring strategy will be presented. We will now start with the lower level
perception milestones and will gradually introduce higher level behaviors.