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

Similar documents
Least Squares and SLAM Pose-SLAM

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

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

g2o: A General Framework for Graph Optimization Rainer Kümmerle Giorgio Grisetti Hauke Strasdat Kurt Konolige Wolfram Burgard

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

Humanoid Robotics. Least Squares. Maren Bennewitz

Robot Mapping. Graph-Based SLAM with Landmarks. Cyrill Stachniss

Robot Mapping. TORO Gradient Descent for SLAM. Cyrill Stachniss

Robot Mapping. Graph-Based SLAM with Landmarks. Cyrill Stachniss

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

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

Introduction to Mobile Robotics SLAM Landmark-based FastSLAM

Introduction to Mobile Robotics Multi-Robot Exploration

Practical Course WS 2010 Simultaneous Localization and Mapping

Introduction to Mobile Robotics Iterative Closest Point Algorithm. Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Kai Arras

From Least-Squares to ICP

Robot Mapping. Hierarchical Pose-Graphs for Online Mapping. Gian Diego Tipaldi, Wolfram Burgard

The Efficient Extension of Globally Consistent Scan Matching to 6 DoF

Probabilistic Robotics

Graph-Based SLAM (Chap. 15) Robot Mapping. Hierarchical Pose-Graphs for Online Mapping. Graph-Based SLAM (Chap. 15) Graph-Based SLAM (Chap.

Practical Course WS12/13 Introduction to Monte Carlo Localization

TORO - Efficient Constraint Network Optimization for SLAM

CVPR 2014 Visual SLAM Tutorial Efficient Inference

Probabilistic Robotics

(Sparse) Linear Solvers

First scan matching algorithms. Alberto Quattrini Li University of South Carolina

(Sparse) Linear Solvers

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

Basics of Localization, Mapping and SLAM. Jari Saarinen Aalto University Department of Automation and systems Technology

Humanoid Robotics. Monte Carlo Localization. Maren Bennewitz

CS 395T Lecture 12: Feature Matching and Bundle Adjustment. Qixing Huang October 10 st 2018

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

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

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

Robot Mapping. Grid Maps. Gian Diego Tipaldi, Wolfram Burgard

Robot Mapping. SLAM Front-Ends. Cyrill Stachniss. Partial image courtesy: Edwin Olson 1

A Tree Parameterization for Efficiently Computing Maximum Likelihood Maps using Gradient Descent

Probabilistic Robotics

Graph-Based SLAM and Open Source Tools. Giorgio Grisetti

Probabilistic Robotics

Efficient Sparse Pose Adjustment for 2D Mapping

Localization and Map Building

Camera calibration. Robotic vision. Ville Kyrki

Efficient Estimation of Accurate Maximum Likelihood Maps in 3D

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

Probabilistic Robotics. FastSLAM

Localization, Mapping and Exploration with Multiple Robots. Dr. Daisy Tang

COS Lecture 13 Autonomous Robot Navigation

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

Analysis, optimization, and design of a SLAM solution for an implementation on reconfigurable hardware (FPGA) using CńaSH

Introduction to Mobile Robotics Path Planning and Collision Avoidance

Spring Localization II. Roland Siegwart, Margarita Chli, Martin Rufli. ASL Autonomous Systems Lab. Autonomous Mobile Robots

CS 664 Structure and Motion. Daniel Huttenlocher

A comparison of Algorithms for Sparse Matrix. Real-time Multibody Dynamic Simulation

AMS526: Numerical Analysis I (Numerical Linear Algebra)

Spring Localization II. Roland Siegwart, Margarita Chli, Juan Nieto, Nick Lawrance. ASL Autonomous Systems Lab. Autonomous Mobile Robots

Introduction to Mobile Robotics

Evaluation of Pose Only SLAM

Convex Optimization / Homework 2, due Oct 3

3D Point Cloud Processing

Iterative Methods for Linear Systems

Subgraph-preconditioned Conjugate Gradients for Large Scale SLAM

Robotic Mapping. Outline. Introduction (Tom)

Tracking system. Danica Kragic. Object Recognition & Model Based Tracking

Introduction to Mobile Robotics

What is the SLAM problem?

GTSAM 4.0 Tutorial Theory, Programming, and Applications

Uncertainties: Representation and Propagation & Line Extraction from Range data

Robotic Perception and Action: Vehicle SLAM Assignment

Multiview Stereo COSC450. Lecture 8

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

Humanoid Robotics. Projective Geometry, Homogeneous Coordinates. (brief introduction) Maren Bennewitz

Computational Fluid Dynamics - Incompressible Flows

Università degli Studi di Padova. Graph-Based Simultaneous Localization And Mapping Using a Stereo Camera

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

Smoothing and Mapping using Multiple Robots

Simultaneous Localization and Mapping

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

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

Iterative Methods for Solving Linear Problems

Contents. I Basics 1. Copyright by SIAM. Unauthorized reproduction of this article is prohibited.

g 2 o: A General Framework for Graph Optimization

Probabilistic Robotics Course. Multi-Point Registration

Today MAPS AND MAPPING. Features. process of creating maps. More likely features are things that can be extracted from images:

CS545 Contents IX. Inverse Kinematics. Reading Assignment for Next Class. Analytical Methods Iterative (Differential) Methods

Numerical Linear Algebra

AMS527: Numerical Analysis II

Gaussian Processes, SLAM, Fast SLAM and Rao-Blackwellization

OPPA European Social Fund Prague & EU: We invest in your future.

3-D Tomographic Reconstruction

Perception. Autonomous Mobile Robots. Sensors Vision Uncertainties, Line extraction from laser scans. Autonomous Systems Lab. Zürich.

Lecture 9. Introduction to Numerical Techniques

Advanced Topics in Digital Communications Spezielle Methoden der digitalen Datenübertragung

Experimental Analysis of Dynamic Covariance Scaling for Robust Map Optimization Under Bad Initial Estimates

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018

Announcements. Edges. Last Lecture. Gradients: Numerical Derivatives f(x) Edge Detection, Lines. Intro Computer Vision. CSE 152 Lecture 10

Rigid Body Transformations

EKF Localization and EKF SLAM incorporating prior information

Numerical Analysis I - Final Exam Matrikelnummer:

Transcription:

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

SLAM Constraints connect the poses of the robot while it is moving Constraints are inherently uncertain Robot pose Constraint

SLAM Observing previously seen areas generates constraints between non-successive poses Constraints are inherently uncertain Robot pose Constraint

Idea of Graph-Based SLAM Use a graph to represent the problem Every node in the graph corresponds to a pose of the robot during mapping Every edge between two nodes corresponds to a spatial constraint between them Graph-Based SLAM: Build the graph and find a node configuration that minimize the error introduced by the constraints

Graph-Based SLAM in a Nutshell Every node in the graph corresponds to a robot position and a laser measurement An edge between two nodes represents a spatial constraint between the nodes KUKA Halle 22, courtesy of P. Pfaff

Graph-Based SLAM in a Nutshell Every node in the graph corresponds to a robot position and a laser measurement An edge between two nodes represents a spatial constraint between the nodes KUKA Halle 22, courtesy of P. Pfaff

Graph-Based SLAM in a Nutshell Once we have the graph, we determine the most likely map by moving the nodes

Graph-Based SLAM in a Nutshell Once we have the graph, we determine the most likely map by moving the nodes like this

Graph-Based SLAM in a Nutshell Once we have the graph, we determine the most likely map by moving the nodes like this Then, we can render a map based on the known poses

The Overall SLAM System node positions raw data Graph Construction (Front-End) graph (nodes & edges) Graph Optimization (Back-End) today Interleaving process of front-end and back-end A consistent map helps to determine new constraints by reducing the search space This lecture focuses only on the optimization part

The Graph It consists of n nodes x=x 1:n Each node x i is a 2D or 3D transformation (the pose of the robot at time t i ) A constraint e ij exists between the nodes x i and x j if the robot observed the same part of the environment from x i and x j and constructs a virtual measurement about the position of x j seen from or an odometry measurement connects both poses.

The Graph It consists of n nodes x=x 1:n Each node x i is a 2D or 3D transformation (the pose of the robot at time t i ) A constraint e ij exists between the nodes x i and x j if the robot observed the same part of the environment from x i and x j and constructs a virtual measurement about the position of x j seen from or an odometry measurement connects both poses. Measurement from x i x i x j Measurement from x J

The Graph It consists of n nodes x=x 1:n Each node x i is a 2D or 3D transformation (the pose of the robot at time t i ) A constraint e ij exists between the nodes x i and x j if the robot observed the same part of the environment from x i and x j and constructs a virtual measurement about the position of x j seen from or an odometry measurement connects both poses. x i x j The edge represents the position of x j seen from x i, based on the observations

The Graph It consists of n nodes x=x 1:n Each node x i is a 2D or 3D transformation (the pose of the robot at time t i ) A constraint e ij exists between the nodes x i and x j if the robot observed the same part of the environment from x i and x j and constructs a virtual measurement about the position of x j seen from or an odometry measurement connects both poses. x i X i+1 The edge represents the odometry measurement

The Edge Information Matrices Observations are affected by noise We use an information matrix Ω ij for each edge to encode the uncertainty of the edge The bigger Ω ij, the more the edge matters in the optimization procedure Questions: What do the information matrices look like in case of scan-matching vs. odometry? What should these matrices look like in a long, featureless corridor?

Pose Graph observation of from edge error nodes according to the graph

Pose Graph observation of from edge error nodes according to the graph Goal:

SLAM as a Least Squares Problem The error function looks suitable for least squares error minimization

SLAM as a Least Squares Problem The error function looks suitable for least squares error minimization Questions: What is the state vector? Specify the error function!

SLAM as a Least Squares Problem The error function looks suitable for least squares error minimization Questions: What is the state vector? One block for each node of the graph Specify the error function!

The Error Function The generic error function of a constraint characterized by a mean z ij and an information matrix Ω ij is a vector of the same size as x i measurement x j in the reference of x i The error as a function of all the state x: The error function is 0 when

The Overall Error Minimization Procedure Define the error function Linearize the error function Compute its derivative Set the derivative to zero Solve the linear system Iterate this procedure until convergence

Linearizing the Error Function We can approximate the error functions around an initial guess x via Taylor expansion

Derivative of the Error Function Does one error function e ij (x) depend on all state variables?

Derivative of the Error Function Does one error function e ij (x) depend on all state variables? No, only on x i and x j Is there any consequence on the structure of the Jacobian?

Derivative of the Error Function Does one error function e ij (x) depend on all state variables? No, only on x i and x j Is there any consequence on the structure of the Jacobian? Yes, it will be non-zero only in the rows corresponding to x i and x j!

Jacobians and Sparsity The error function e ij of one constraint depends only on the two parameter blocks x i and x j Thus, the Jacobian will be 0 everywhere but in the columns of x i and x j.

Consequences of the Sparsity To apply least squares, we need to compute the coefficient vectors and the coefficient matrices: The sparse structure of J ij will result in a sparse structure of H This structure reflects the adjacency matrix of the graph

Illustration of the Structure Non-zero only at x i and x j

Illustration of the Structure Non-zero only at x i and x j Non-zero on the main diagonal at x i and x j

Illustration of the Structure Non-zero only at x i and x j Non-zero on the main diagonal at x i and x j... and at the blocks ij,ji

Illustration of the Structure + + + + + +

Consequences of the Sparsity An edge of the graph contributes to the linear system via its coefficient vector b ij and its coefficient matrix H ij. The coefficient vector is: It is non-zero only at the indices corresponding to x i and x j

Consequences of the Sparsity The coefficient matrix of an edge is: Is non zero only in the blocks i,j.

Sparsity Summary An edge between x i and x j in the graph contributes only to the i th and the j th blocks of the coefficient vector, blocks ii, jj, ij and ji of the coefficient matrix. The resulting system is sparse and can be computed by iteratively accumulating the contribution of each edge Efficient solvers can be used Sparse Cholesky decomposition (with COLAMD) Conjugate Gradients many others

The Linear System Vector of the states increments: Coefficient vector: System Matrix: The linear system is a block system with n blocks, one for each node of the graph.

Building the Linear System x is the current linearization point Initialization For each constraint: Compute the error Compute the blocks of the Jacobian: Update the coefficient vector: Update the system matrix:

Algorithm x: the initial guess While (!converged) <H,b> = buildlinearsystem(x); Δx = solvesparse(h Δx = -b); x += Δx;

How to Solve the Linear System? Linear system Can be solved by matrix inversion (in theory) In practice: Cholesky factorization QR decomposition Iterative methods such as conjugate gradients (for large systems) In Octave, use the backslash operator delta_x = -H\b!

Example on the Blackboard

Trivial 1D Example Two nodes and one observation BUT???

What Went Wrong? The constraint only specifies a relative constraint between both nodes Any poses for the nodes would be fine as long a their relative coordinates fit One node needs to be fixed constraint that sets x 1 =0

Exercise Consider a 2D graph where each pose x i is parameterized as Consider the error function Compute the blocks of the Jacobian J Hint: write the error function by using rotation matrices and translation vectors

Conclusions The back-end part of the SLAM problem can be effectively solved with least squares error minimization The H matrix is typically sparse This sparsity allows for efficiently solving the linear system One of the state-of-the-art solutions to compute the maximum likelihood estimate