The answersDownload the PDF
Worksheet

U1.2 A command is a request

The robot as a system · University · about 25 min

BugBotLab
NameClassDate

What this lesson is about

Open loop on real hardware: gain that is not 1, a dead band, a lag, and a robot that curves.

Questions 6 marks in all

  1. [1 mark]What does forward(60) actually ask for?

    1. AThe motors driven at 60 percent
    2. BA speed of 60 cm/s
    3. CExactly 60 percent of the catalogue top speed of 20 cm/s, which is 12 cm/s
    4. DA move of 60 cm
  2. [1 mark]Asked to drive 60 cm forward, the robot finishes to one side of where it started and a few degrees off heading. Which of the four effects in the lesson explains that?

    1. ACoupling
    2. BDead band
    3. CLag
    4. DGain
  3. [1 mark]A robot's measured forward speed is 7 cm/s at command 40 and 17 cm/s at command 80. Using the straight line through those two points, what command gives 12 cm/s?

  4. [1 mark]For the same line (7 cm/s at command 40, 17 cm/s at command 80), at what command does the line predict zero speed?

  5. [1 mark]The measurement program waits 1.0 s after each forward() before it starts averaging flow(). Why?

    1. AThe speed rises over about a quarter of a second, so readings taken during the rise would underestimate the settled speed
    2. Bflow() only produces a new reading once a second
    3. CThe deadman needs a second to reset before readings are valid
    4. DIt lets the battery voltage recover after the previous step
  6. [1 mark]Which description of open loop control matches the lesson?

    1. AActing on the command and hoping, which only works on a stiff, repeatable, unloaded machine
    2. BMeasuring the result and correcting as you go
    3. CKeeping an estimate of the state rather than a commanded position
    4. DRunning the loop without any wait() so it goes as fast as possible

The task: how fast is this robot?

Measure this robot's top forward speed in centimetres per second and print it as top speed: 18.4. Measure it, do not look it up.

from bugbot import *
connect()

forward(100)
wait(1.0)

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

QR code
Do it on the robot
www.bugbotlab.com/learn/u1-2-commands-are-requests/
The simulator checks it and tells you when it passes. Nothing to install, no account.

Challenges

  1. Measure the sideways top speed and the top turn rate the same way.
  2. Find the dead band: the smallest command that moves the robot at all.
  3. Fit a straight line to the table above (speed against command) and use it to predict the command for 12 cm/s. Test the prediction.