\section{Ball Detection} \label{p sec 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 \cite{ball-detect}. 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) \cite{hsv} 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 \cite{contours}, 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. \begin{figure}[ht] \includegraphics[width=\textwidth]{\fig ball-detection} \caption[Ball detection]{Ball detection. On the right is the binary mask} \label{p figure ball-detection} \end{figure} It is sometimes recommended \cite{ball-detect} 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 from the mask, 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 a careful color calibration is required for the algorithm to function properly. If the HSV interval of the targeted color is too narrow, the algorithm might miss the ball; if the interval is too wide, 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 the section \ref{p sec field detect}. To conclude, we found this algorithm to be robust enough for our purposes, if a sensible color calibration was provided.