The answersDownload the PDF
Worksheet

U1.7 Project: write the data sheet

The robot as a system · University · about 45 min

BugBotLab
NameClassDate

What this lesson is about

Characterise the robot you were given and print the figures the rest of the course will use.

Questions 6 marks in all

  1. [1 mark]Put the steps of one data sheet experiment in order.

    Number the lines 1 to 5 to put them in the right order.

    1. Wait past the transient, about 3 tau
    2. Stop, and let the robot settle
    3. Take several readings and average them
    4. Stop, and let it settle again before the next experiment
    5. Apply the input
  2. [1 mark]Why must the robot settle again after each experiment before the next one starts?

    1. AOtherwise the next measurement is taken while the robot is still coasting, so it measures the previous experiment
    2. BThe deadman needs half a second to reset
    3. CThe flow sensor has to re-zero between experiments
    4. DThe battery needs time to recover
  3. [1 mark]Why does each student measure their own data sheet rather than use a shared one?

    1. AEach BugBot is built with its own gain on each axis, gyro bias and flow scale, fixed for the run
    2. BThe values change continuously during a run, so a shared sheet would be out of date within seconds
    3. CThe shared data sheet is in different units
    4. DThe simulator only reports speeds that have been measured in the same run
  4. [1 mark]These are the settled readings from two experiments: forward speed from flow() and turn rate from imu(). What does this print?

    readings = [19.4, 18.9, 19.6, 19.1, 19.0]
    rates = [-112.0, -115.5, -113.0, -114.5, -112.5]
    v_max = sum(readings) / len(readings)
    w_max = sum(rates) / len(rates)
    print("v_max:", round(v_max, 1))
    print("w_max:", round(abs(w_max), 1))
  5. [1 mark]A command is walked up in steps of 5, recording the settled flow() speed at each. Anything above 1 cm/s counts as moving. What does this print?

    table = [(5, 0.0), (10, 0.1), (15, 2.4), (20, 3.6), (25, 4.9)]
    for power, v in table:
        if v > 1.0:
            print("dead band:", power)
            break
  6. [1 mark]The settled() helper waits 1.0 s after applying an input before reading. With a time constant of about 0.25 s, is that long enough?

    1. AYes: 1.0 s is 4 tau, past the 3 tau at which the response is 95 percent settled
    2. BNo: a response needs about 10 tau to settle
    3. CNo: 1.0 s is shorter than one time constant
    4. DYes, but only because the deadman stops the robot after half a second anyway

The task: the data sheet

Measure all four and print them, one per line, exactly like this: The whole run has ninety seconds, which is plenty for four experiments and nowhere near enough to be careless.

from bugbot import *
connect()

# measure, do not assume

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

QR code
Do it on the robot
www.bugbotlab.com/learn/u1-7-project-a-data-sheet/
The simulator checks it and tells you when it passes. Nothing to install, no account.

Challenges

  1. Add the sideways top speed, and say why it is not the same as the forward one.
  2. Repeat the whole data sheet three times and report each figure as a mean and a spread.
  3. Run the data sheet at set_noise(3). Which figure survives the noise best, and which is worst? That ranking tells you which measurements to trust on a real robot.