The answersDownload the PDF
Worksheet

U3.4 Calibration

Odometry and drift · University · about 30 min

BugBotLab
NameClassDate

What this lesson is about

Measuring the gyro bias and the flow scale, and taking both out of the estimate.

Questions 6 marks in all

  1. [1 mark]A robot is driven exactly 100 cm, and its integrated flow says 96 cm. What scale factor should multiply future readings? Give three decimal places.

  2. [1 mark]A gyro with a bias of 0.3 deg/s is integrated over five 0.1 s ticks, once raw and once with the bias subtracted. What does this print?

    DT = 0.1
    bias = 0.3
    rates = [0.3, 0.3, 30.3, 30.3, 0.3]
    raw = cal = 0.0
    for r in rates:
        raw += r * DT
        cal += (r - bias) * DT
    print(round(raw, 2), round(cal, 2))
  3. [1 mark]Why calibrate the gyro before the flow scale?

    1. ACalibrating the scale means driving, and steering with an uncalibrated gyro curves the path and corrupts the distance being measured
    2. BCalibrating the gyro needs the robot to move, so it has to come first while the path is known
    3. CThe order does not matter, because the two errors are independent
    4. DThe flow scale depends on the heading, so it changes after every turn
  4. [1 mark]What is the name for recalibrating an inertial sensor at every moment the vehicle is known to be still, as a shoe-mounted pedestrian tracker does once per step?

  5. [1 mark]Which of these can calibration not fix?

    Tick every answer that is true.

    1. AA gyro bias that drifts with temperature and time
    2. BSlip between the drive and the mat
    3. CErrors the model has no name for
    4. DA constant gyro bias
    5. EA constant flow scale error
  6. [1 mark]Why can the flow scale not be calibrated using only the robot's own sensors?

    1. AIt needs a true distance from outside, such as a tape measure, a wall at a known place or a landmark
    2. BThe flow sensor cannot be read while the robot is moving
    3. CThe gyro has to be recalibrated at the same time
    4. DIntegrating flow() twice would give the scale directly

The task: a calibrated lap

Calibrate the gyro, then dead reckon at least 120 cm with turns in it. Print bias:, my x: and my y:. The position tolerance is tighter than the uncalibrated task, so the calibration has to be real.

from bugbot import *
import math
connect()

DT = 0.1
# stand still first and learn the bias

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

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

Challenges

  1. Run the same lap with and without the bias correction and report both errors.
  2. Calibrate the flow scale against a wall at a known distance, using distance().
  3. Recalibrate the gyro every time the robot stops. Does it help over a two minute run?