State estimation · University · about 30 min
The two numbers you actually choose, what they mean, and how to measure them.
[1 mark]Standing still, a depth sensor's readings have a standard deviation of 3 cm. What R should the filter use?
[1 mark]The robot can slip about 0.3 cm in one tick without the model knowing. Using the lesson's rough rule, what is Q?
[1 mark]Q is doubled and R is doubled. What happens to the Kalman gain?
[1 mark]Q is set far too small. How does the filter fail?
[1 mark]The normalised innovation squared for four fixes, with p + R = 25 each time. What does it print?
innovations = [3.0, -6.0, 4.0, -2.0] S = 25.0 nis = [v ** 2 / S for v in innovations] print(nis) print(round(sum(nis) / len(nis), 2))
[1 mark]A filter's running average of the normalised innovation squared is about 4. What does it mean?
[1 mark]Why is Q = 0 always wrong on a real machine?
Standing still, measure R and print it as measured r:. Then run the filter at two or three values of Q and print what each does.
from bugbot import * connect() readings = []
Plan your program here, then type it in and press Run.
Q = 0 and drive the robot. Watch the estimate stop listening.R depend on range: double it beyond 100 cm. Does the estimate improve?