The answersDownload the PDF
Worksheet

U3.3 How the error grows

Odometry and drift · University · about 30 min

BugBotLab
NameClassDate

What this lesson is about

Noise walks, bias marches, scale stretches, and a heading error rotates everything after it.

Questions 6 marks in all

  1. [1 mark]The noise error in a dead reckoning run grows as a random walk. If the run is made twice as long, by what factor does that error grow? Give two decimal places.

  2. [1 mark]Which of these errors grow in direct proportion to the time or distance driven, rather than with its square root?

    Tick every answer that is true.

    1. AHeading error from a gyro bias
    2. BPosition error from a flow scale error
    3. CError from zero-mean noise on flow()
  3. [1 mark]Gyro rates in deg/s are read while the robot stands perfectly still. What does this print?

    rates = [0.3, 0.5, 0.2, 0.4, 0.1, 0.3]
    mean = sum(rates) / len(rates)
    spread = (sum((r - mean) ** 2 for r in rates) / len(rates)) ** 0.5
    print("bias:", round(mean, 2))
    print("noise:", round(spread, 2))
    print("after 60 s:", round(mean * 60, 1))
  4. [1 mark]Using the lesson's rule that driving d with a heading error of e radians puts you about d × e to one side, this works out the sideways error over 10 metres. What does it print?

    import math
    for deg in (1, 3, 10):
        print(deg, round(1000 * math.radians(deg), 1))
  5. [1 mark]The flow sensor reads 4 percent high. How many centimetres too far does dead reckoning put the robot after a 10 m straight run?

  6. [1 mark]For this sort of ground robot over a run of a minute or two, which error source does the lesson rank as the most damaging?

    1. AHeading bias
    2. BScale error on the translation
    3. CSlip of the drive on the mat
    4. DNoise on the readings

The task: measure the gyro bias

Without moving the robot at all, print this gyro's bias as bias: 0.31, in degrees per second.

from bugbot import *
connect()

rates = []

Plan your program here, then type it in and press Run.

QR code
Do it on the robot
www.bugbotlab.com/learn/u3-3-how-error-grows/
The simulator checks it and tells you when it passes. Nothing to install, no account.

Challenges

  1. Measure the bias five times. Is it the same number each time? Is the noise?
  2. Run set_noise(3) and measure again. Which changes, the bias or the spread?
  3. Work out how long the robot can dead reckon before the bias alone costs it 10 cm, at 20 cm/s.