Representing a belief as a thousand samples, and what that buys over a mean and a variance.
[1 mark]Why did particle filters take over robot localisation from filters that assume Gaussian noise?
- ARange sensors have likelihoods full of spikes and floors that do not fit a Gaussian, and a particle filter only needs to evaluate the likelihood
- BParticle filters always use less computation than a Kalman filter
- CParticle filters give the same answer on every run, which makes them easier to debug
- DParticle filters need fewer samples as the state gets more dimensions
[1 mark]Why is a particle filter hopeless for estimating the configuration of a 12 degree of freedom arm?
- AThe number of particles needed grows exponentially with the number of dimensions of the state
- BAn arm's motion model is nonlinear, which a particle filter cannot handle
- CThe measurement model of an arm is Gaussian, so a Kalman filter is always better
- DParticles can only represent positions, not joint angles
[1 mark]Particles are spread evenly along x from 0 to 200 cm. What is the standard deviation (the spread) of their x values, in cm, to one decimal place?
[1 mark]What does this program print?
xs = [10.0, 10.0, 10.0, 190.0, 190.0, 190.0]
N = len(xs)
mean = sum(xs) / N
spread = (sum((x - mean) ** 2 for x in xs) / N) ** 0.5
print(mean, spread)
[1 mark]Which of these are genuine costs of a particle filter?
Tick every answer that is true.
- AEvery particle is moved and weighted every tick
- BThe particles needed grow exponentially with the state's dimensions
- CTwo runs give slightly different answers, which makes debugging harder
- DIt needs a motion model that is linear or can be differentiated
- EIt can only represent a belief with one peak
[1 mark]Why must some particles start near the true pose?
- AThe filter only ever reweights and copies the guesses it has, so it cannot invent a guess near the truth
- BParticles far from the truth make the weights sum to more than one
- CDistant particles slow the motion update down
- DThe weighted mean is only defined when a particle is within one sigma of the truth
Make a cloud spread evenly over the whole mat and print particles:, mean x: and spread x:.
from bugbot import *
import random
connect()
N = 600
Plan your program here, then type it in and press Run.

Do it on the robot
www.bugbotlab.com/learn/u7-2-a-cloud-of-guesses/
The simulator checks it and tells you when it passes. Nothing to install, no account.