38
CVPR 2014 Visual SLAM Tutorial Efficient Inference Michael Kaess [email protected] The Robotics Institute Carnegie Mellon University

CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Embed Size (px)

Citation preview

Page 1: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

CVPR 2014 Visual SLAM Tutorial Efficient Inference

Michael Kaess [email protected]

The Robotics Institute

Carnegie Mellon University

Page 2: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 2 CVPR14: Visual SLAM Tutorial

The Mapping Problem (t=0)

Robot

Landmark

Landmark Measurement

Onboard sensors: – Wheel odometry – Inertial measurement unit

(gyro, accelerometer) – Sonar – Laser range finder – Camera – RGB-D sensors

Page 3: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 3 CVPR14: Visual SLAM Tutorial

The Mapping Problem (t=1)

Robot

Landmark 1 Landmark 2

Odometry measurement

Landmark measurement

Page 4: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 4 CVPR14: Visual SLAM Tutorial

The Mapping Problem (t=n-1)

Robot

Landmark 1 Landmark 2

Odometry measurement

Landmark measurement

Page 5: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 5 CVPR14: Visual SLAM Tutorial

The Mapping Problem (t=n)

Odometry measurement

Landmark measurement

Mapping problem is incremental !

Page 6: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 6 CVPR14: Visual SLAM Tutorial

Factor Graph Representation

Robot pose

Landmark position Landmark measurement

Odometry measurement

Page 7: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 7 CVPR14: Visual SLAM Tutorial

Factor Graph Representation

Pose

Point Point measurement

Page 8: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 8 CVPR14: Visual SLAM Tutorial

Nonlinear Least-Squares

Repeatedly solve linearized system (GN)

A 𝜕ℎ𝑖𝜕x

�x�

b ℎ𝑖 (x�)

argminx� ℎ𝑖 x Ξ2

𝑖

Gaussian noise

argmin𝑥 𝐴𝑥 − 𝑏 2

poses points

Page 9: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 9 CVPR14: Visual SLAM Tutorial

Solving the Linear Least-Squares System

ATA A

Measurement Jacobian

Information matrix

Normal equations

Solve: argmin𝑥 𝐴𝑥 − 𝑏 2

𝐴𝑇𝐴𝑥 = 𝐴𝑇𝑏

Page 10: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 10 CVPR14: Visual SLAM Tutorial

Solving the Linear Least-Squares System

•Can we simply invert ATA to solve for x?

• Yes, but we shouldn’t… The inverse of ATA is dense -> O(n^3)

•Can do much better by taking advantage of sparsity!

ATA Information matrix

Normal equations

𝐴𝑇𝐴𝑥 = 𝐴𝑇𝑏

Page 11: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 11 CVPR14: Visual SLAM Tutorial

Solving the Linear Least-Squares System

R

ATA Information matrix

Square root information matrix

Normal equations

Matrix factorization

Solve: argmin𝑥 𝐴𝑥 − 𝑏 2

𝐴𝑇𝐴𝑥 = 𝐴𝑇𝑏

𝐴𝑇𝐴 = 𝑅𝑇𝑅

A

Measurement Jacobian

Page 12: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 12 CVPR14: Visual SLAM Tutorial

Matrix – Square Root Factorization

•QR on A: Numerically More Stable

•Cholesky on ATA: Faster

A QR R

Cholesky R ATA

Page 13: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 13 CVPR14: Visual SLAM Tutorial

Solving by Backsubstitution

After factorization: RTR x = ATb

• Forward substitution RTy = ATb, solve for y

•Backsubstition R x = y, solve for x

RT

R

Page 14: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 14 CVPR14: Visual SLAM Tutorial

Full Bundle Adjustment

•Graph grows with time: – Have to solve a sequence of increasingly larger BA problems – Will become too expensive even for sparse Cholesky

F. Dellaert and M. Kaess, “Square Root SAM: Simultaneous localization and mapping via square root information smoothing,” IJRR 2006

From Strasdat et al, 2011 IVC “Visual SLAM: Why filter?”

Page 15: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 15 CVPR14: Visual SLAM Tutorial

Keyframe Bundle Adjustment

•Drop subset of poses to reduce density/complexity •Only retain “keyframes” necessary for good map

•Complexity still grows with time, just slower

Page 16: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 16 CVPR14: Visual SLAM Tutorial

Filter

•Keyframe idea not applicable: map would fall apart • Instead, marginalize out previous poses

– Extended Kalman Filter (EKF)

•Problems when used for Visual SLAM: – All points become fully connected -> expensive – Relinearization not possible -> inconsistent

Page 17: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 17 CVPR14: Visual SLAM Tutorial

Incremental Solver

•Back to full BA and keyframes:

•New information is added to the graph •Older information does not change •Can be exploited to obtain an efficient solution!

Page 18: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 18 CVPR14: Visual SLAM Tutorial

Incremental Smoothing and Mapping (iSAM)

Solving a growing system: – R factor from previous step – How do we add new measurements?

Key idea: – Append to existing matrix factorization – “Repair” using Givens rotations

R

R’

New measurements ->

[Kaess et al., TRO 08]

Page 19: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 19 CVPR14: Visual SLAM Tutorial

Update and solution are O(1) Are we done? BA is nonlinear… iSAM requires periodic batch factorization to relinearize Not O(1), we need iSAM2!

[Kaess et al., TRO 08]

Incremental Smoothing and Mapping (iSAM)

Page 20: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 20 CVPR14: Visual SLAM Tutorial

Fixed-lag Smoothing

•Marginalize out all but last n poses and connected landmarks

– Relinearization possible

• Linear case •Nonlinear: need iSAM2

Fixed lag

Cut here to marginalize

plus some fillin

Page 21: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 21 CVPR14: Visual SLAM Tutorial

Matrix vs. Graph

Measurement Jacobian Factor Graph

Information Matrix

Markov Random Field Square Root Inf. Matrix

x0 x1 x2 xM ...

lN l1 l2 ...

...

x0 x1 x2 xM ...

lN l1 l2 ...

...

R

A

ATA

?

Page 22: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 22 CVPR14: Visual SLAM Tutorial

iSAM2: Variable Elimination – Small Example

•Choose ordering: l1, l2, x1, x2, x3

• Eliminate one node at a time

p(l1,x1,x2) = p(l1|x1,x2) p(x1,x2)

x3 x2 x1

l2 l1 p(l1,x1,x2)

[Kaess et al., IJRR 12]

Page 23: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 23 CVPR14: Visual SLAM Tutorial

iSAM2: Variable Elimination – Small Example

•Choose ordering: l1, l2, x1, x2, x3 • Eliminate one node at a time

p(l1|x1,x2)

p(x1,x2)

p(l1,x1,x2) = p(l1|x1,x2) p(x1,x2)

x3 x2 x1

l2 l1

[Kaess et al., IJRR 12]

Page 24: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 24 CVPR14: Visual SLAM Tutorial

iSAM2: Variable Elimination – Small Example

•Choose ordering: l1, l2, x1, x2, x3 • Eliminate one node at a time

p(l2,x3) = p(l2|x3) p(x3)

x3 x2 x1

l2 l1

[Kaess et al., IJRR 12]

Page 25: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 25 CVPR14: Visual SLAM Tutorial

iSAM2: Variable Elimination – Small Example

•Choose ordering: l1, l2, x1, x2, x3 • Eliminate one node at a time

p(x1,x2) = p(x1|x2) p(x2)

x3 x2 x1

l2 l1

[Kaess et al., IJRR 12]

Page 26: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 26 CVPR14: Visual SLAM Tutorial

iSAM2: Variable Elimination – Small Example

•Choose ordering: l1, l2, x1, x2, x3 • Eliminate one node at a time

p(x2,x3) = p(x2|x3) p(x3)

x3 x2 x1

l2 l1

[Kaess et al., IJRR 12]

Page 27: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 27 CVPR14: Visual SLAM Tutorial

iSAM2: Variable Elimination – Small Example

•Choose ordering: l1, l2, x1, x2, x3 • Eliminate one node at a time

p(x3)

x3 x2 x1

l2 l1

[Kaess et al., IJRR 12]

Page 28: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 28 CVPR14: Visual SLAM Tutorial

iSAM2: Bayes Tree Data Structure

Step 2: Find cliques in reverse elimination order:

Step 1

[Kaess et al., IJRR 12]

Page 29: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 29 CVPR14: Visual SLAM Tutorial

iSAM2: Bayes Tree Data Structure

Step 2: Find cliques in reverse elimination order:

Step 1

[Kaess et al., IJRR 12]

Page 30: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 30 CVPR14: Visual SLAM Tutorial

iSAM2: Bayes Tree Example

How to update with new measurements / add variables?

Manhattan dataset (Olson)

[Kaess et al., IJRR 12]

Page 31: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 31 CVPR14: Visual SLAM Tutorial

iSAM2: Updating the Bayes Tree

Add new factor between x1 and x3

[Kaess et al., IJRR 12]

Page 32: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 32 CVPR14: Visual SLAM Tutorial

iSAM2: Updating the Bayes Tree

Add new factor between x1 and x3

[Kaess et al., IJRR 12]

Page 33: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 33 CVPR14: Visual SLAM Tutorial

iSAM2: Bayes Tree for Manhattan Sequence [Kaess et al., IJRR 12]

Page 34: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial
Page 35: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 35 CVPR14: Visual SLAM Tutorial

Backup slides

Page 36: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 36 CVPR14: Visual SLAM Tutorial

Relevant Publications • D. Rosen, M. Kaess, and J. Leonard, “RISE: An incremental trust-region method for

robust online sparse least-squares estimation,” IEEE Trans. on Robotics (TRO), 2014, to appear.

• M. Kaess, H. Johannsson, R. Roberts, V. Ila, J. Leonard, and F. Dellaert, “iSAM2: Incremental smoothing and mapping using the Bayes tree,” Intl. J. of Robotics Research (IJRR), vol. 31, no. 2, pp. 217–236, Feb. 2012.

• M. Kaess, V. Ila, R. Roberts, and F. Dellaert, “The Bayes tree: An algorithmic foundation for probabilistic robot mapping,” in Intl. Workshop on the Algorithmic Foundations of Robotics (WAFR), Singapore, Dec. 2010, pp. 157–173.

• M. Kaess, A. Ranganathan, and F. Dellaert, “iSAM: Incremental smoothing and mapping,” IEEE Trans. on Robotics (TRO), vol. 24, no. 6, pp. 1365–1378, Dec. 2008.

• F. Dellaert and M. Kaess, “Square Root SAM: Simultaneous localization and mapping via square root information smoothing,” Intl. J. of Robotics Research (IJRR), vol. 25, no. 12, pp. 1181–1204, Dec. 2006.

Page 37: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Retaining Sparsity: Variable Ordering

Fill-in depends on elimination order:

ATA R Default ordering (poses, landmarks)

Ordering based on COLAMD heuristic [Davis04]

(best order: NP hard)

factor

permute

factor

[Dellaert and Kaess, IJRR 06]

Page 38: CVPR 2014 Visual SLAM Tutorial Efficient Inferencefrc.ri.cmu.edu/...Tutorial-CVPR14-A22-Incremental.pdf · CVPR 2014 Visual SLAM Tutorial Efficient Inference ... Visual SLAM Tutorial

Michael Kaess 38 CVPR14: Visual SLAM Tutorial

Greedy approach Arbitrary placement of newest variable

Variable Reordering – Constrained COLAMD

Much cheaper!

Constrained Ordering Newest variables forced to the end

Number of affected variables: low high