The answersDownload the PDF
Worksheet

7.5 Ball physics

Hands and feet · Robot club · about 20 min

BugBotLab
NameClassDate

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
  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
  3. [1 mark]What does this program print?

    for width in [46, 23]:
        print(width, "px ->", round(4 * 92 / width), "cm")
  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?

  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?

  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

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)

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

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

Challenges

  1. Kick five times from the same spot (Reload between) and print the five distances. The simulator gives the same number each time; on the real robot, how repeatable is the spring?
  2. Write carry_to(cm) that carries the ball a given distance ahead and lets go, and test it on the box.
  3. Kick the ball against the top wall so it comes back and stops within 10 cm of you.