Odometry and drift · University · about 45 min
Two metres of driving, one landmark, and an estimate that has to stay honest.
[1 mark]Put the long lap program in order.
Number the lines 1 to 5 to put them in the right order.
Stop in the home zone and keep updating while stoppedSteer towards (0, 0) in your own estimated frame, still updating every tickDrive the outward part of the lap, updating the odometry every tickStand still and average the gyro rate to learn the biasPrint my x and my y[1 mark]The example program calls step(4) after stop(). Why keep updating the odometry while the robot is stopped?
[1 mark]The lap is marked to within 10 cm after 200 cm of driving. If heading error were the only source, what is the largest heading error you could afford, in degrees to one decimal place?
[1 mark]An uncalibrated gyro has a bias of 0.4 deg/s. How many seconds does it take to build up a 2.9 degree heading error, to one decimal place?
[1 mark]Which of the steps in the lesson is optional?
[1 mark]The same lap driven in the other direction ends with a noticeably different error. What is the most likely cause?
Two metres of driving, back into the home zone under your own navigation, with my x: and my y: printed at the end and within 10 cm of the truth.
from bugbot import * import math connect() DT = 0.1 # calibrate, then drive the lap, updating every tick
Plan your program here, then type it in and press Run.
set_noise(0.5), 1 and 2, and plot the final error against the noise level. Is it a straight line?