The worksheetDownload the PDF
Answers

7.5 Ball physics

Hands and feet · Robot club · about 20 min

BugBotLab

What this lesson is about

Rolling, friction, bouncing, and measuring power against distance.

Questions 6 marks in all

  1. [1 mark]The box is 23 to 31 cm ahead of the ball, closer than a kick goes. What is the right tool?

    1. AHold it with the gripper, carry it there and open the jaws
    2. BKick it, since the ball stops where you aim
    3. CPush it with the flat front of the robot
    4. DKick it twice as gently
    Answer: A. A kick always goes about 45 cm, and pushing a round ball with a flat front sends it skidding sideways. A released ball stays put.
  2. [1 mark]Why does every kick travel about the same distance?

    1. AThe spring gives the same speed each time, and friction takes the same fraction away
    2. Bkick() measures the distance and brakes the ball
    3. CThe mat has a line the ball stops on
    4. DThe servo turns for exactly 45 cm
    Answer: A. Same starting speed, same friction, same distance. Change the surface and the distance changes.
  3. [1 mark]What does this program print?

    for width in [46, 23]:
        print(width, "px ->", round(4 * 92 / width), "cm")
    Answer:
    46 px -> 8 cm
    23 px -> 16 cm

    Half the width, twice the distance: 46 px is 8 cm away and 23 px is 16 cm away.

  4. [1 mark]You carry the ball and stop with the robot's centre 22 cm up the mat, then open the jaws. About how far up the mat is the ball, in whole cm?

    Answer: 29 (accept within 1). The ball ends about 7 cm ahead of the centre: 3.5 cm of robot, the jaws, and half a ball. 22 + 7 = 29.
  5. [1 mark]A wall returns the ball with about half its speed, and how far a ball rolls is proportional to its speed. A ball hits the wall moving fast enough to roll another 20 cm. About how far does it roll back, in whole cm?

    Answer: 10 (accept within 1). Half the speed gives half the distance: about 10 cm.
  6. [1 mark]A friend measured 45 cm on their smooth mat. Your mat is carpet. What kick distance should your program use?

    1. AMeasure it on your own mat, because friction depends on the surface
    2. B45 cm, because the spring is the same
    3. C90 cm, because carpet is twice as rough
    4. DIt cannot be known, so do not kick
    Answer: A. The number you measure is the number for your mat. Robots that play ball games learn their arena by measuring.

The task: stop in the box

The box is 23 to 31 cm ahead of the ball, closer than a kick goes. Get the ball to stop in it: carry it there with the gripper and let go.

# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()

# kick: one turn of the kicker winds the spring and lets it go
kick()
# pause 5 s (the robot keeps doing what it was told)
wait(5)

The hint students can ask for: The box is 23 to 31 cm ahead of the ball, too close for a kick. Carry the ball there instead: close the jaws on it, drive forward, and open them where you want it to stay.

A solution

from bugbot import *
connect()
gripper("close")
forward(40, distance=28)
gripper("open")
wait(2)

Any program that meets the task's checks is marked correct in the simulator; this is one way, not the only way.