Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added lecture_14/algorithm_fig1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified lecture_14/main.pdf
Binary file not shown.
95 changes: 91 additions & 4 deletions lecture_14/main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
\usepackage[sc]{mathpazo}
\usepackage[ruled]{algorithm2e}
\usepackage{enumitem}
\usepackage{hyperref}

\renewcommand{\sfdefault}{kurier}

Expand Down Expand Up @@ -59,8 +60,19 @@

\section{Introduction}

During the last lecture, we covered an important class of SLAM algorithms based on EKF. However, one main issue with EKF-SLAM is that it tends to scale quite poorly with the number of features. Furthermore, this method relies on a linearization process performed globally, which is only efficient when the estimate is close to the truth.
In this lecture, we cover two additional algorithms for SLAM that don't suffer from these limitations: graph-based SLAM and particle-filter SLAM. We give a very quick overview of graph SLAM before moving on to particle-filter SLAM, often referred to in literature as Fast-SLAM. This will give us a good overview of the different techniques used in localization.
During the last lecture, we covered an important class of SLAM algorithms based on EKFs. However, one main issue with EKF-SLAM is that it tends to scale quite poorly with the number of features. In general, EKF has squared complexity; in supposing we have on the scale of hundreds or more landmarks, this becomes computationally prohibitive. Furthermore, this method relies on a linearization process performed globally, which is only efficient when the estimate is close to the truth. If non-linearities are large, this can cause the divergence of our filter.

Also, a key issue is that we might assign "fake" landmarks and once it is done we keep them for granted. To fix this, an approach would consist in using a provisional list approach by waiting several iterations before putting a landmark in the state.

In this lecture, we cover two additional algorithms for SLAM that don't suffer from these limitations: graph-based SLAM and particle-filter SLAM. We give a very quick overview of graph SLAM before moving on to particle-filter SLAM, often referred to in literature as Fast-SLAM, an extension of Monte Carlo. This will give us a good overview of the different techniques used in localization.

\textbf{Learning Objectives:}
\begin{itemize}
\item Develop insight into solving full-scale SLAM problem, as opposed to the online-SLAM problem that was previously addressed. In full-scale SLAM, we estimate $p(x_{1:t},m,c_t|z_{1:t},u_{1:t})$
\item Gain intuition in addressing full-scale SLAM problem via graph SLAM and fast SLAM
\item Decompose these SLAM approaches into their fundamental mathematical formulation
\item Understand the computational demands of these approaches, and distinguish scenarios regarding most appropriate SLAM implentation
\end{itemize}

\section{Graph SLAM}

Expand Down Expand Up @@ -386,15 +398,90 @@ \section{Fast-SLAM Algorithm}
\label{alg:fastslam}
\end{algorithm}

\newpage
\section {EKF SLAM with unknown correspondences}

We want to add discussion of EKF SLAM with unknown correspondences. We are still doing localization, but this time, the robot starts with a map of landmarks that does not change over the course of its run. So the difference is when the robot gets a range and bearing measurement, it will not know to which landmark that measurement corresponds.

Below we will explain firstly the process for extimating the correspondence between measurements and landmarks and present the correspondence algorithm on its own. Then we will show how the correspondence estimation algorithm can be integrated with EKF localization algorithm we have learned before.

\subsection {Measurement Correspondence Intro}

When our robot gets a measurement to a nearby landmark, it can use that information to refine its estimate of its pose. In this current problem, we are no longer directly telling the robot to which landmark each measurement corresponds. Without knowledge of this correspondence measurements are basically useless to our robot. So our robot needs a way to estimate the correspondence between its measurements and the landmarks in its map. One way it can do this is through maximum likelihood data association.

\subsection {Maximum Likelihood Data Association}

In maximum likelihood data association, the robot computes the probability that its current measurement corresponds to every landmark in its map. It then chooses the landmark with the highest probability of correspondence and assumes it is the correct association. This can be written as

\begin{equation}
\hat{c}_t^=argmax_{c}p(z_t|c_{1:t},m,z_{1:t-1},u_{1:t})
\end{equation}

In other words, given the robot's past measurement corresponcences, map, past measurements and past control inputs, we can get which landmark has the highest probability of producing measurement.

In practice, we find this by calculating the expected measurement and measurement covariance for every landmark in the map. We can then use these to calculate the measurement probability for every landmark and then select the landmark with the highest probability. The algorithm goes as follows:

\begin{figure}[H]
\centering
\includegraphics[width=0.7\columnwidth]{algorithm_fig1}
\caption{Algorithm}
\end{figure}

There are alternative methods that are more robust to incorrect associations. Multi-Hypothesis Tracking is one of those, but the maximum likelihood method is the simplest.

\section{ROS packages with SLAM implementations}
Below, we have compiled a list of the most popular ROS packages with SLAM implementations with short description based on the information available on wiki.ros.org and openslam-org.gihub.io.
\begin{enumerate}
\item Gmapping: Implementation of OpenSlam's Gmapping which provides a 2-D occupancy grid based on a laser scan and a pose data. It uses Rao-Blackwellized particle filer which allows to solve the simultaneous localization and mapping problem where each particle represents an individual map of the environment.
\item TinySlam: The simplest and lightweight SLAM implementation based on laser range data and odometry
\item MRPT (Mobile Robot Programming Toolkit, C++) based packages:
\begin{enumerate}
\item EKF SLAM 2D: EKF-based package. It uses range-bearing sensors, odometry, 2D robot pose and 2D landmarks.
\item EKF SLAM 3D: EKF-based package. It uses range-bearing sensors, odometry, 6D robot pose and 3D landmarks.
\item GRAPH SLAM 2D: single robot or multi-robot pose-only graphSLAM. It uses laser scans and odometry.
\item ICP SLAM 2D: ICP-based package (Iterative Closest Points). It uses 2D laser scans. Builds only small to midsized maps. Larger maps requires more advanced implementations
\item RBPF SLAM: Rao Blackwellized based package. Uses range-only.
\end{enumerate}
\item Hector SLAM: LIDAR based SLAM that can be used without odometry. It can be used on robots with roll/pitch motion of the sensor, robot and both.
\item RGBD SLAM: uses RGB-D cameras (e.g. Microsoft Kinect).
\end{enumerate}


\section {Summary}

We have introduced 3 different implementations of SLAM, which are Gaussian SLAM (based on EKF and KF), Graph SLAM, and Fast SLAM (based on particle filter).

EKF SLAM assumes that all uncertainties follow a Gaussian distribution, and is therefore well understood and easy to compute. It is the best linear estimator that works especially well when uncertainty is low. However, because it is a unimodal estimate, it works poorly when uncertainties are high. When a point far from the mean is pushed through linearization, it will yield inaccurate estimates.

Graph SLAM provides the best possible estimate based on an optimization problem that models all uncertainties as spring stiffnesses, and finds the minimum energy of the network. Exploiting matrix sparsity leads to efficient solutions, but can still be computationally complex when solving a full SLAM problem, leading to difficult implementation.

Fast SLAM is the most natural representation of multimodal beliefs, able to handle any non-parametric distribution. It is the easiest to implement, relying on conditional independence to factorize the distribution to speed up computation. However, the problem does not scale well in large dimensions, and a large sample of particles is required for good convergence. Naive implementation is intractable due to the excessively large number of particles. A way to tackle this issue would be to use multiple filters; one estimator for trajectory and one for each landmark.

\section {Other Resources/Additional Reading}
\begin{itemize}
\item \textbf{Books:}
\item Probabilistic Robotics (Intelligent RObotics and Autonomous Agents Series) - Sbeastian Thrun, Wolfram Burgard, and Dieter Fox
\item Simultaneous Localization and Mapping - Exactly Sparse Information Filters (New Frontiers in Robotics) - Zhan Wang, Shoudong Hang, Gamini Dissanayake
\item 3D Robotic Mapping: The Simultaneous Localization and Mapping Problem with Six Degrees of Freedom - Andreas Nuchter
\item \textbf{Open Source Software Packages:}
\item \href{https://www.openslam.org/}{https://www.openslam.org/} :contains a comprehensive list of SLAM software
\item \href{http://www.robots.ox.ac.uk/~gk/PTAM/}{http://www.robots.ox.ac.uk/~gk/PTAM/}: Visual SLAM
\item \href{https://developers.google.com/tango/developer-overview}{https://developers.google.com/tango/developer-overview}: Project Tango
\item \href{http://www.rawseeds.org/home/}{http://www.rawseeds.org/home/}: collection of benchmarked datasets
\item \href{https://vision.in.tum.de/research/vslam/lsdslam?redirect=1}{https://vision.in.tum.de/research/vslam/lsdslam?redirect=1} : Large-Scale Direct Monocular SLAM
\item \href{http://www.informatik.uni-freiburg.de/data/chairs/ais/openslam-the-resource-for-open-source-slam-implementations}{http://www.informatik.uni-freiburg.de/data/chairs/ais/openslam-the-resource-for-open-source-slam-implementations}: University of Freiburg
\end{itemize}

\section {References}
\begin{enumerate}[label={[\arabic*]}]
\item R. Siegwart, I. R. Nourbakhsh, D. Scaramuzza.Introduction to Autonomous Mobile Robots. MIT Press, 2nd Edition, 2011
\item S. Thrun, W. Burgard, and D. Fox. Probabilistic robotics. MIT press, 2005.
\item ROS (Robot Operating System) Documentation wiki.ros.org
\item OpenSLAM https://openslam-org.github.io/
\item EKF Localization With Unknown correspondence http://andrewjkramer.net/intro-to-the-ekf-step-2/


\subsubsection*{Contributors}
Winter 2019: [Your names here]
Winter 2019: Colin Shi, Bernard Lange, Paul Planeix, William Brannon, Sherry (Xuejiao) Li, Akash Singhal
\\
Winter 2018: Bo Kim, Matt Subrahmanyam, Ianis Bougdal-Lambert, Michelle Zhang, Barrett Weiss, Eric Ballouz

Expand Down