Gaussian Processes, SLAM, Fast SLAM and Rao-Blackwellization

Similar documents
SLAM Part 2 and Intro to Kernel Machines

L17. OCCUPANCY MAPS. NA568 Mobile Robotics: Methods & Algorithms

Overview. EECS 124, UC Berkeley, Spring 2008 Lecture 23: Localization and Mapping. Statistical Models

Particle Filters. CSE-571 Probabilistic Robotics. Dependencies. Particle Filter Algorithm. Fast-SLAM Mapping

Particle Filter in Brief. Robot Mapping. FastSLAM Feature-based SLAM with Particle Filters. Particle Representation. Particle Filter Algorithm

ECE276A: Sensing & Estimation in Robotics Lecture 11: Simultaneous Localization and Mapping using a Particle Filter

Introduction to Mobile Robotics SLAM Landmark-based FastSLAM

Probabilistic Robotics

What is the SLAM problem?

Sensor Models / Occupancy Mapping / Density Mapping

Probabilistic Robotics. FastSLAM

Artificial Intelligence for Robotics: A Brief Summary

ME 456: Probabilistic Robotics

Final project: 45% of the grade, 10% presentation, 35% write-up. Presentations: in lecture Dec 1 and schedule:

Announcements. Recap Landmark based SLAM. Types of SLAM-Problems. Occupancy Grid Maps. Grid-based SLAM. Page 1. CS 287: Advanced Robotics Fall 2009

Kaijen Hsiao. Part A: Topics of Fascination

Autonomous Mobile Robot Design

Navigation methods and systems

IROS 05 Tutorial. MCL: Global Localization (Sonar) Monte-Carlo Localization. Particle Filters. Rao-Blackwellized Particle Filters and Loop Closing

Probabilistic Robotics

Robot Mapping. TORO Gradient Descent for SLAM. Cyrill Stachniss

Probabilistic Robotics

Robotics. Chapter 25-b. Chapter 25-b 1

Introduction to Mobile Robotics SLAM Grid-based FastSLAM. Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Diego Tipaldi, Luciano Spinello

Robot Mapping. Least Squares Approach to SLAM. Cyrill Stachniss

Graphbased. Kalman filter. Particle filter. Three Main SLAM Paradigms. Robot Mapping. Least Squares Approach to SLAM. Least Squares in General

Computer Vision Group Prof. Daniel Cremers. 4. Probabilistic Graphical Models Directed Models

(W: 12:05-1:50, 50-N202)

L15. POSE-GRAPH SLAM. NA568 Mobile Robotics: Methods & Algorithms

Simultaneous Localization and Mapping! SLAM

L10. PARTICLE FILTERING CONTINUED. NA568 Mobile Robotics: Methods & Algorithms

Introduction to Mobile Robotics. SLAM: Simultaneous Localization and Mapping

Statistical Techniques in Robotics (16-831, F10) Lecture#06(Thursday September 11) Occupancy Maps

ICRA 2016 Tutorial on SLAM. Graph-Based SLAM and Sparsity. Cyrill Stachniss

L12. EKF-SLAM: PART II. NA568 Mobile Robotics: Methods & Algorithms

Estimation of Item Response Models

Gaussian Processes for Robotics. McGill COMP 765 Oct 24 th, 2017

Markov Random Fields and Gibbs Sampling for Image Denoising

Cost Functions in Machine Learning

D-Separation. b) the arrows meet head-to-head at the node, and neither the node, nor any of its descendants, are in the set C.

ECE521 Lecture 18 Graphical Models Hidden Markov Models

Feature Detectors and Descriptors: Corners, Lines, etc.

CVPR 2014 Visual SLAM Tutorial Efficient Inference

UNIVERSITÀ DEGLI STUDI DI GENOVA MASTER S THESIS

Survey: Simultaneous Localisation and Mapping (SLAM) Ronja Güldenring Master Informatics Project Intellgient Robotics University of Hamburg

Image Processing. Filtering. Slide 1

Simultaneous Localization and Mapping

Introduction to Graphical Models

Robotic Mapping. Outline. Introduction (Tom)

K-Means and Gaussian Mixture Models

Unsupervised Learning

Bayesian Methods in Vision: MAP Estimation, MRFs, Optimization

Humanoid Robotics. Least Squares. Maren Bennewitz

CS6375: Machine Learning Gautam Kunapuli. Mid-Term Review

37. Simultaneous Localization and Mapping

Loopy Belief Propagation

Dealing with Scale. Stephan Weiss Computer Vision Group NASA-JPL / CalTech

7630 Autonomous Robotics Probabilities for Robotics

Implementation of Odometry with EKF for Localization of Hector SLAM Method

EE795: Computer Vision and Intelligent Systems

Advanced Techniques for Mobile Robotics Graph-based SLAM using Least Squares. Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz

Computer Vision Group Prof. Daniel Cremers. 4. Probabilistic Graphical Models Directed Models

08 An Introduction to Dense Continuous Robotic Mapping

Time series, HMMs, Kalman Filters

Introduction to robot algorithms CSE 410/510

Introduction to SLAM Part II. Paul Robertson

Computer Vision 2 Lecture 8

Instance-based Learning

10-701/15-781, Fall 2006, Final

FMA901F: Machine Learning Lecture 3: Linear Models for Regression. Cristian Sminchisescu

Evaluation of Moving Object Tracking Techniques for Video Surveillance Applications

Principles of Robot Motion

Robot Mapping. A Short Introduction to the Bayes Filter and Related Models. Gian Diego Tipaldi, Wolfram Burgard

Robotics. Lecture 7: Simultaneous Localisation and Mapping (SLAM)

COS Lecture 13 Autonomous Robot Navigation

Nonlinear State Estimation for Robotics and Computer Vision Applications: An Overview

Advanced Techniques for Mobile Robotics Bag-of-Words Models & Appearance-Based Mapping

Neural Network Optimization and Tuning / Spring 2018 / Recitation 3

Jurnal Teknologi PARTICLE FILTER IN SIMULTANEOUS LOCALIZATION AND MAPPING (SLAM) USING DIFFERENTIAL DRIVE MOBILE ROBOT. Full Paper

Zürich. Roland Siegwart Margarita Chli Martin Rufli Davide Scaramuzza. ETH Master Course: L Autonomous Mobile Robots Summary

Quantitative Biology II!

Machine Learning Classifiers and Boosting

Computer vision: models, learning and inference. Chapter 10 Graphical Models

Tracking Algorithms. Lecture16: Visual Tracking I. Probabilistic Tracking. Joint Probability and Graphical Model. Deterministic methods

CPSC 340: Machine Learning and Data Mining. Probabilistic Classification Fall 2017

A Brief Introduction to Bayesian Networks. adapted from slides by Mitch Marcus

CPSC 340: Machine Learning and Data Mining. Non-Parametric Models Fall 2016

Machine Learning / Jan 27, 2010

ME/CS 132: Introduction to Vision-based Robot Navigation! Low-level Image Processing" Larry Matthies"

Building Classifiers using Bayesian Networks

The Basics of Graphical Models

GTSAM 4.0 Tutorial Theory, Programming, and Applications

Image Restoration using Markov Random Fields

Statistical Techniques in Robotics (16-831, F12) Lecture#05 (Wednesday, September 12) Mapping

Lecture 20: Tracking. Tuesday, Nov 27

Machine Learning. B. Unsupervised Learning B.1 Cluster Analysis. Lars Schmidt-Thieme, Nicolas Schilling

Machine Learning A W 1sst KU. b) [1 P] Give an example for a probability distributions P (A, B, C) that disproves

Scene Grammars, Factor Graphs, and Belief Propagation

Algorithms for Markov Random Fields in Computer Vision

Trajectory Optimization

Transcription:

Statistical Techniques in Robotics (16-831, F11) Lecture#20 (November 21, 2011) Gaussian Processes, SLAM, Fast SLAM and Rao-Blackwellization Lecturer: Drew Bagnell Scribes: Junier Oliva 1 1 Comments on Gaussian Processes 11 GP vs MRF GP is like a MRF (with Gaussian RVs) with a continuous number of RVs; that is, it is extendable to an infinite number of RVs) 12 Precision Matrix GP cannot be parameterized using precision matrix P because submatrices of P do no correspond to the precision matrix of that subset of elements Ie if P is precision matrix for {a, b} then the precision matrix for {a, b, c, d, } is not [ P ] 2 About SLAM Simultaneous localization and mapping (SLAM) is one of the canonical problems in robotics A robot set down in an unknown environment with noisy odometry and sensing needs to figure out where it is in the world and learn details about the world at the same time It is a sort of chickenegg problem where the mapping problem is relatively easy given exact knowledge of the robot s location, and localizing the robot is relatively easy given a good map of the environment The challenge is found in performing these tasks simultaneously 21 Variations on the SLAM problem SLAM can be approached in two ways: Batch: Given all data, y 1:T, up front, solve for robot path x 1:T and map M all at once (we won t cover this) This approach can be thought of as a smoothing operation on our data 1 Some content adapted from previous scribes: Justin Haines, Neal Seegmiller, and Bryan Wagenknecht 1

Online/filtering: compute {x t, m t } at each timestep as data y t is received (we focus on this) This approach can be thought of as a filtering problem Note: this approch will produce a best guess for the only x t, m t not the entire trajectory If, alternatively, you are interested in the robot trajectory, calculate {x 1:t, m t } at each timestep The mapping part of SLAM can also be approached in two ways: Filling an occupancy grid M = {m 1, m 2, } (we ll come back to this) Tracking landmarks l i = (l xi, l yi ) (focus on this for now) 3 Basic Approaches to SLAM 31 Naïve approach: PF over joint The first potential solution is to build a Particle Filter to sample from the joint distribution p(r x, r y, l x1, l y1, l x2, l y2, ) This becomes bad very quickly due to the high dimensionality of the state space when landmark position is included (this example has dimension 2 + 2 l) PF doesn t scale well with dimensionality - particle sparsity means a particle that is good at describing one landmark is probably bad at describing others; thus, it will need too many particles Observation distributions/densities get very sharp due to multiplying distributions 32 X-KF over joint The next potential solution (often called the classical solution ) might be to use your favorite Kalman Filter (X-KF here could mean EKF, UKF, etc) to track all variables in one joint distribution p(r x, r y, l x1, l y1, l x2, l y2, ) This results in a big covariance matrix with the marginal gaussian distribution of each landmark contained in blocks along the covariance diagonal Off-diagonal terms are correlations from multiple landmarks appearing in the robot s view at once The motion update would look like: r [ ] x r y A r l x1 = l y1 0 t+1 2x2 2 0 I r x r y l x1 l y1 + t ɛ x ɛ y 0

where A r is the Jacobian of the motion model of the robot and ɛ x and ɛ y are gaussian noise The identity block represents the assumption that landmarks do not move over time The observation model would look like: [ ] [ rangei (rx l = xi ) 2 + (r y l yi ) 2 bearing i atan2((r y l yi ), (r x l xi )) ] [ ɛrange + ɛ bearing ] KEY ASSUMPTION: The robot must be able to differentiate landmarks 321 Potential problems with this approach The solution could be multimodal, especially with bad odometry Data association: If the robot cannot distinguish between landmarks, problems can arise with loop closure where the robot returns to a location it has already mapped In this case, the robot needs to match the landmarks with those previously observed Maximum Likelihood data association with hard thresholds is often used for this Scales as O(l 2 ) where l is number of landmarks Although this is better than the complexity of the particle filter SLAM What to use for initial landmark location, µ x0? Any guess could be arbitrarily wrong and take a long time to correct 322 Some hacks that could be helpful Use submaps (segment the large world map into smaller maps) and work with smaller chunks of the covariance matrix When a landmark is seen for the first time, initialize its µ x to the observed location, or wait until seen a couple of times and triangularize location Throw out confusing landmarks 33 Alternative: Information Filter for SLAM Information filter implementation is O(l 3 ) in the number of landmarks However, the sparse nature of the lxl matrix inversion allows the algorithm run in closer to O(l log(l)) 4 SLAM as a Bayes Net If we draw the Bayes Network representation of SLAM we get something like Figure 1 Here the data associations are presumed to be known and fixed The main intuition here is that landmarks are correlated only by observations through the path of the robot 3

Figure 1: Bayes Network representation of SLAM Robot states r i form a Markov chain and data associations (which landmarks l i are in view at each observation y i ) are presumed known and fixed Observe that the landmark locations are conditionally independent given the robot states 41 Fast SLAM factorization Investigation of the Bayes Net shows us that we can make the landmark locations independent by conditioning on the robot locations This allows us to factorize the distribution as p(y 1:t z 1:t, u 1:t ) = p(x 1:t z 1:t, u 1:t ) p(l i x 1:t, z 1:t ) Thus we can track the landmark locations independently by conditioning on the assumed robot position Fast SLAM is an algorithm that runs a particle filter in robot location space using augmented particles Each particle carries a history of its past locations r 1 r t and an individual Kalman filter (consisting of µ li and Σ li ) for each landmark l i it sees This is visualized in Figure 2 i 5 Smarter Approach: Fast SLAM 51 Fast SLAM 10 The first version of Fast SLAM runs a particle filter with augmented particles, then applies importance weighting to the particles using the latest estimates of any landmarks within view The landmarks are tracked independently in Kalman filters within each particle 4

Figure 2: Fast SLAM particles include a history of their positions and individual Kalman filters for each landmark 511 Fast SLAM 10 Algorithm 1 Motion update: for all particle i, move r i according to motion model (leave KF s for landmarks alone) r t p(r t r t 1, u t ) 2 Observation update: weight particle i by p(y associations l, r i ) N(µ y, Σ yy ) 1 p(y associations l, r i ) = [ (2π) 2 Σ yy exp 1 ] 2 (y µ y) T Σ yy (y µ y ) 3 Run KF update on each particle s estimate of landmark l 4 Resample particles 512 Timestep Complexity: O(l) Data association is O(l) (use KD tree) Memory copy is O(l) 513 Number of parameters: #particles [(2 + 3) #landmarks + 2]; (2+3) for µ, Σ, last 2 for pose 514 Occupancy Grids In theory each particle should carry its own map grid (instead of KF s) Practically this is too memory intensive, use data structure tricks: DP-SLAM Use a single map grid with data for all relevant particles in each cell 5

52 Fast SLAM 20 The problem with Fast SLAM is paricle deprivation, especially for loop closure The key is to have a smarter motion model (sampling distribution) The Fast SLAM 20 motion model is conditioned on the observation z t in addition to the control, u t 521 Fast SLAM 20 Algorithm 1 Motion update: Sample robot position from Kalman filter p(x t+1 y t+1, x t, z t ) 2 Observation update: Weight particle i by w i p(y t+1 associations l, r i ) p(x t+1 y t+1, x t ) 6 Wrap-up Topics 61 Data association If we want to be lazy with data association (or we can t label the landmarks a priori) then we can track associations within the particle Wrong assignments are corrected in retrospect for free through particle resampling For each landmark l i, sample associations from p(y l i, r) 62 Rao-Blackwell theorem The Rao-Blackwell theorem says running an algorithm that samples from a distribution on one variable p(x 1 ) then determines another variable x 2 analytically conditioned on x 1 will do no worse than an algorithm that samples from the joint distribution p(x 1, x 2 ) var [sampler(x 1, x 2 )] var [sampler(x 1 ) + does x 2 x 1 analytically] Fast SLAM is an example of Rao-Blackwellization since by using KF s inside particles, we don t have to sample landmark info from the whole joint distribution In general Rao-Blackwellized filters make for the most efficient SLAM algorithms 7 Occupancy Grid SLAM 71 DP SLAM Murphy initially proposed Fast SLAM using occupancy grid maps 2 In the simplest implementation, a complete map is stored for each particle; however, this is too memory intensive (and computa- 2 Kevin Murphy, Bayesian Map Learning in Dynamic Environments, NIPS 1999 (Neural Info Proc Systems) 6

tionally expensive to copy the maps) Researchers at Duke University proposed DP SLAM which uses dynamic programming to reduce the memory/computational requirements 3 The basic idea: If two particles share a common ancestor, both their maps will agree with the observations of that common ancestor A single occupancy grid map is stored with an observation tree at each cell (storing the observations of all particles that affect that cell) Efficient maintenance of this data structure is non-trivial Figure 3: Example of particle ancestry for DP SLAM Note that all particles at t 3 are descended from the root a as well as b at t 1 All particles at t 3 will share the observations of b and its predecessors, so these sections of the map need only be stored once 711 Loss of diversity Ideally, in order to close loops diversity must be maintained on the order of the largest loop that will ever be traversed However, DP SLAM typically only maintains diversity on the order of 2-3 meters (ie all current particles are descended from a single particle 2-3 meters back) Despite this, DP SLAM still works due to high localization accuracy 72 3D Fast SLAM Nathaniel Fairfield s research on DEPTHX 4 is an example of efficient occupancy grid SLAM in 3D An octree data structure is used to maintain hundreds of maps required by the particle filter The octree structure exploits spatial locality and temporal shared ancestry between particles to reduce the processing and storage requirements 3 http://wwwcsdukeedu/~parr/dpslam/ 4 Nathaniel Fairfield, George Kantor, and David Wettergreen, Real-Time SLAM with Octree Evidence Grids for Exploration in Underwater Tunnels, Journal of Field Robotics 2007 7

Figure 4: Illustration of loss of diversity in DP SLAM In this example, correcting the map after closing the loop around the rectangular obstacle would require diversity of paths all the way back to the root; however, the map can only be corrected over length d because the maps of all current particles share the observations of the common ancestor 8 Stochastic Gradient Descent approach to SLAM Olsen proposed as fast gradient descent approach to recovering a time sequence of robot poses 5 The steps are: 1 Marginalize out the landmarks 2 Use stochastic gradient descent to optimize pose graph 3 (if desired) Perform mapping using the optimized pose data 81 Marginalize out the landmarks Observations of landmark location relative to robot pose are converted to constraints between poses from which the same landmark was observed This results in fewer variables (no landmark variables) but more constraints The resulting pose graph will have two types of constraints: 1 temporal (odometry) constraints between poses at adjacent timesteps 2 landmark constraints between poses from which the same landmark was observed 82 Critical trick: represent the state variables as pose deltas At each iteration a single constraint is chosen at random for the update 5 Edwin Olson, John Leonard, and Seth Teller, Fast Iterative Alignment of Pose Graphs with Poor Initial Estimates, ICRA 2006 8

Figure 5: Illustration of marginalizing out a landmark The observations of landmark l 1 at poses x 2 and x 4 (left) are converted to a single pose constraint (right) Instead of representing the state variables as robot poses, represent them as the difference in pose between timesteps x 0 x 1 x 2 Robot pose is calculated by summing the pose deltas, so a change in any one pose delta affects the robot pose at all subsequent timesteps Alternatively, this change in representation can be thought of as a change in the distance metric used by gradient descent x 0 x 1 x 2 Figure 6: (left, original representation) Consider x 3 undergoes a large update due to a landmark constraint Likely many iterations will pass before o 2 or o 3 are selected, finally updating the neighboring poses (right, pose delta representation) Because a change in pose delta affects all subsequent poses, sequences of poses will update together 83 Other notes it s magic! tends to jump over local minima be clever about the learning rate (increase for loop closure, etc) this is a batch algorithm, but it can be implemented online using a sliding window/lag filter 9