lecture 17: fastslamkuipers/slides/l17-fastslam.pdflandmarks vs occupancy grids •an occupancy grid...

13
1 Lecture 17: FastSLAM CS 344R/393R: Robotics Benjamin Kuipers Landmark-Based Mapping Suppose the environment consists of a set of isolated landmarks: – Trees in the forest – Rocks in the Martian desert Treat a landmark as a point location ( x k ,y k ). • SLAM: the robot learns the locations of the landmarks while localizing itself.

Upload: others

Post on 13-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

1

Lecture 17:FastSLAM

CS 344R/393R: RoboticsBenjamin Kuipers

Landmark-Based Mapping

• Suppose the environment consists of a set ofisolated landmarks:– Trees in the forest– Rocks in the Martian desert

• Treat a landmark as a point location (xk,yk).• SLAM: the robot learns the locations of the

landmarks while localizing itself.

Page 2: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

2

“Martian” Rocky Desert

The real Martian desert

Page 3: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

3

Landmarks vs Occupancy Grids• An occupancy grid makes no assumption

about types of features.– Now we assume point landmarks, but walls and

other types of features are also possible.• An occupancy grid (typically) has fixed

resolution.– Feature models can be arbitrarily precise.

• An occupancy grid takes space and time thesize of the environment to be mapped.– A feature-based map takes space and time

reflecting the contents of the environment.

Kalman Filters for Features• A landmark feature has parameters (xi,yi).

– The robot’s pose has parameters (x,y,ϕ).– Robot plus K landmarks needs 2K+3 parameters.

• To estimate these with a Kalman filter:– The means require 2K+3 parameters.– The covariance matrix needs (2K+3)2.

• FastSLAM observes that the landmarks areindependent, given the robot’s pose.– A 2×2 covariance matrix for each landmark.– Total parameters: K(2 + 2×2) + 3

Page 4: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

4

Landmark Poses are IndependentGiven the Robot’s Pose

Bayesian Model• Robot poses: st = s1, s2, . . . st.

– (Slightly different from our usual notation.)• Robot actions: ut = u1, u2, . . . ut

• Observations: zt = z1, z2, . . . zt

• Landmarks: Θ = θ1, . . . θk

• Correspondence: nt = n1, n2, . . . nt– nt = k means zt is an observation of θk

– Assume (without loss of generality) thatlandmarks are observed one at a time.

Page 5: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

5

The SLAM Problem• Estimate p(st, Θ | zt, ut, nt) using

– action model: p(st | ut, st-1)– sensor model: p(zt | st, Θ, nt)

• Independence lets us factor

– trajectory estimation p(st | zt, ut, nt)– from landmark estimation p(θk | st, zt, ut, nt)

!

p(st," | zt ,ut ,nt )

= p(st| z

t,u

t,n

t) p(#k | s

t,z

t,u

t,n

t)

k

$

Factor the Uncertainty• Rao-Blackwellized particle filters.• Use particle filters to represent the

distribution over trajectories p(st | zt, ut, nt)– M particles

• Within each particle, use Kalman filters torepresent distribution for each landmarkpose p(θk | st, zt, ut, nt)– K Kalman filters per particle

• Each update requires O(MK) time.– Easy to improve to O(M log K).

Page 6: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

6

Balanced Tree of GaussiansIn Each Particle

InsertionsAre AlsoCheap:

O(log K)

Page 7: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

7

Importance Sampling• Sample from one distribution.

– Correct to approximate a target distribution.

Kalman Filters to EstimateLocations of Fixed Landmarks• Within the context of each particle, the

pose ROBOTW is known perfectly.

Page 8: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

8

Updating One Landmarkp(θk | st, zt, ut, nt)

• p(θk | st, zt, ut, nt) =p(θk | st, zt, nt=k)

• zt = z = (r, φ)T

• st = s = (x, y, ϕ)T

Kalman filter model:• θk,t = θk,t-1

• zt = g(st, θk,t)

Kalman Measurement Function• The measurement function z = g(s,θ) = (r,φ)T

– where s = (x, y, ϕ)T and θ = (u, v)T

• The Jacobian of g with respect to θ=(u,v)T is:

!

g(s,") =r

#

$

% & '

( ) =

(u * x)2 + (v * y)2

atan2(v * y,u * x) *+

$

% & &

'

( ) )

!

G" =(u # x) /r (v # y) /r

#(v # y) /r2 (u # x) /r2$

% &

'

( )

Page 9: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

9

Kalman Filter Update Step• Let (µt, Σt) be the mean and covariance of θk at time t.• Landmarks are fixed, so prediction step is trivial.

– θk,t = θk,t-1

!

ˆ z t = g(st ,µt"1)

G =#$ g(st ,µt"1)

Z = G%t"1G

T + R

K = %t"1G

TZ"1

µt = µt"1+ K(zt " ˆ z t )

%t = (I "KG)%t"1

• The KF correction step:– given (µt-1, Σt-1)– and pose st– and observation zt– update (µt, Σt)

• for each landmark θk

• in each particle st(m).

Implementation Hint• Alan Oursland has a Java implementation

– http://www.oursland.net/projects/fastslam/• He reports having a hard time getting it to

work, until Dieter Fox helped him tune theKalman Filter.– The observation covariance R must be very large,

so observations can match far-away landmarks.• This is an example of how personal

experience is important to replicating ideas.

Page 10: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

10

Maps and Robot Paths

Tested successfully with up to 50,000 landmarks.

FastSLAM in Victoria Park

with raw odometry FastSLAM 2.0

Page 11: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

11

FastSLAM in Victoria Park

FastSLAM 2.0 Pruning bad landmarks

Another Practical Note• In theory, FastSLAM

should scale well:O(KN log M), where– N is the number of

particles– K is the number of

landmarks observed– M is the number of

landmarks in the map• But, in practice . . .

Robert Sim, http://www.cs.ubc.ca/~simra/lci/fastslam/nonlinear.html

Page 12: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

12

A Complexity Experiment• Measure only operations independent of N.

– Take an image: O(1).– Extract and match SIFT features: O(K log S)

• K features, matched against S features in kd-tree.– Update N particles, but don’t count that cost.

Why doesn’t FastSLAM scale?

• At each frame:– K SIFT features are added to the kd-tree, and– NK landmarks are added to the FastSLAM tree.

• Memory fragmentation:– In time, nearby SIFT features are separated in

memory, so CPU cache miss rate goes up.– For large maps, page fault rate will also

increase.• So the problem is the memory hierarchy,

due to failure of locality.

Page 13: Lecture 17: FastSLAMkuipers/slides/L17-FastSLAM.pdfLandmarks vs Occupancy Grids •An occupancy grid makes no assumption about types of features. –Now we assume point landmarks,

13

Coming Attractions

• Topological mapping (3)

• Social and ethical implications– What if we succeed?