User:Andrea Censi/Sandbox

The 2D scan matching problem can be expressed as: {\em given two sets of 2D data (i.e. a reference scan and a current scan), determine a set of 2D transformations (a translation $$T$$ and a rotation $$\phi$$) that makes the scan data overlapping the reference data.}

The typical input for a scan matching algorithm is composed by: \begin{enumerate} \item the output of a 2D range sensor (e.g. a laser range finder) representing the contour of the visible environment around the sensor; \item a reference scan representing the environment in which the robot moves and that can vary depending on the application (e.g. a pre-built map,      a previous scan, etc.). \end{enumerate}

\paragraph{Scan matching for localization}

In global localization, the robot must localize itself on a map much larger than the single sensor scan, without an initial guess of the robot position. The problem can be solved using a first step (scan matching) for getting a set of candidate poses (an approximation of $p(x_t|y_t,m)$, where      $x_t$ is the robot pose at time $t$, $y_t$ is the current sensor reading and $m$ the available map), then by employing a filtering method to discriminate between those \cite{FoBuDe99,FoBuTh99}.

Scan matching turns the localization problem in a pattern-matching problem with some peculiarities: a range finder scan has particular geometric properties (radial ordering) and a sensor error model, moreover an underlying world model should be taken into account: the world can have changed since the map was created (dynamic elements      such as doors, people, etc. are always present). The output of a scan matching method for this problem must be multi-modal.

\paragraph{Scan matching for SLAM}

Scan matching is used in most SLAM methods that use a non-feature based, "dense" representation of the environment.

The odometry readings of a robot are typically corrupted by both systematic and random noise. Scan matching can be used to eliminate systematic noise, therefore it is possible to build approximately locally consistent maps (the residual error is still unbounded).

A less naive interpretation: for methods who phrase the SLAM problem as a filtering problem \cite{HanBurFo-03}, a scan matching procedure can be seen as a computation of a probability distribution. Let $u_t$ be the encoder data, $y_t$ the sensor reading, $m_t$ the map estimated at time $t$ and $x_t$ the pose estimate. If two successive scans are matched, the matcher approximates $ p(x_t | x_{t-1}, u_{t-1}, y_t, y_{t-1}) $; if a scan is matched against a map, the matcher approximates $p(x_t | x_{t-1}, u_{t-1}, y_t, m_{t-1})$.

An analytical and multi-modal expression of the distribution would be desirable. Most of the scan matching methods provide only one answer (the peak of the distribution), while others provide a measure of the variance. Multi-modality is important because it provides a hook to perform explicit handling of ambiguities or uncertainty in the mapping process; however most of the current methods employ a mono-modal scan matcher and overcome this problem by other means \cite{grisetti05icra}.

\section{Related work}

Many techniques have been proposed for scan matching in the past years; however, a definitive solution does not exist because scan matching is used in a vast range of operative conditions.

Scan matching methods differ largely based on the availability of      a guess of the solution with relatively tight bounds (e.g. pose tracking) or the complete lack of a guess (e.g. global localization). In addition to this, not all methods provide a multi-modal solution.

Another distinction can be made with respect to the assumptions about the sensor data: presence of sensor noise and feature-richness of the environment. Feature-based scan matching is      computationally more efficient, but suffers from two limitations: \begin{itemize} \item features must exist in the environment, \item feature extraction produces information loss. \end{itemize} On the other hand, dense scan matching is more robust to noise but can be very costly.

\vspace{2cm}

%%%% MATCHING LOCALE % We distinguish between \em{local} and \em{global} matching, depending % whether relatively tight bounds for the solutions are available.

We first list some scan matching approaches that need a guess of the solution to operate. \paragraph{Methods needing a guess of the solution} % \subsection{Local matching} %% LOCALE feature: a bizzeffe If the environment is rich in roto-translations-invariant features (corners, straight walls~\cite{GuSc96}) and these are preserved notwithstanding the sensor noise, then it is possible to do simple filtering on the scan, extract them and find a solution, sometimes in closed form and linear time with respect to the number of points in the scan ~\cite{Kurt3d}. This approach has been proved to be efficient and robust when sufficient features are present in the environment.

%% LOCALE poco rumore: famiglia ICP In unstructured environments with relatively low noise, it is possible to employ algorithms of the ICP family \cite{LuMil-94} that do not assume the existence of features. These employs a two-step process: first, a series of heuristic correspondences between points in the two scans is established. Then a roto-translation that approximately satisfies the series of constraints is found. The solution is obtained by iteratively executing the two steps until the error drops below a given threshold. In order to achieve convergence, such an approach requires the two scans to be taken at close enough positions. Modifications of the original algorithm allow for efficient implementations. \cite{icp-okddtrees}

%% LOCALE rumore: denso iterativo If data noise is higher, there exists dense methods that search in the solution space and do not require the establishment of any feature-to-feature or point-to-point correspondence. In \cite{Haehnel02Mapping} the solution is searched by performing gradient descent on a score function. Such a function is built by convolving the reference scan with a Gaussian kernel and then correlating it with the sensor scan. This approach has been subsequently refined in \cite{Biber03} by defining a closed form for a potential function that can be minimized using the Newton algorithm. These approaches require a number of iterations that depends on the input configuration and the entity of the error.

\paragraph{Methods performing a global search } %%%% MATCHING GLOBALE % \subsection{Global matching} %% FEATURE: noi con esempio delle linee In theory any ``local'' matcher can be (inefficiently) used for a global search. As for the iterative approaches, one can use as initial guesses random points that represent a fine sampling of the solutions space - finer than the realignment margins of the local scan matcher. Analogously, with features based matcher, a combinatorial approach to feature correspondences can be employed. However, methods specifically designed for global search have better performance.

%% ICP e correlazione In \cite{LuMil-94} a technique for dealing with arbitrary orientation errors has been proposed. This is done by computing an histogram of the local best fitting tangent lines in the two scans to align. Assuming a small translational error, the rotational invariance of such a normal histogram allows to determine the heading component of the two scans. The translational pose component is then computed by minimizing the distance among correspondent scan points.

In \cite{Weiss94} a correlation based approach that is well suited in polygonal environments is presented. The orientation of each scan point is found and the circular histogram of these is build. Then the rotation is found by correlating the normal histograms. This can be done since the relative angles of a set of lines does not change when changing the reference system. Once the heading is known, the translational component of the displacement is recovered by determining pairs of non parallel lines in the reference scan, and computing the translational error among the normal directions of those lines. Both these methods need that point orientation be extracted from data therefore are not reliable to sensor noise.

%% Konolige In \cite{KoCh99} global localization is performed by using a two-dimensional correlation operator. This method evaluates every point in the search space and is therefore very robust to noise. Nevertheless, it can be implemented efficiently by the use of processor-specific SIMD (single instructions, multiple data) extensions.