First session: make every student reach a replay
Aim for a working feedback loop before teaching strategy. Students should finish the session able to edit a line, run check, watch a short match and explain a turn. The one-page quickstart is the handout; the full handbook is a reference.
Before the lesson
- Test the arena address from a second computer on the classroom network.
- Prepare Python 3.11+ and a code editor on each machine, or arrange a shared setup period.
- Download and unzip the kit. Verify
python --version, install the kit and runrobosoccer --version. - Resolve permissions, virtual environments and command PATH issues together before the timed activity.
- If a machine is not ready, use the website editor or pair that student with a ready machine. Do not make installation the whole lesson.
The kit's full handbook has installation fallbacks. In a virtual environment, using its Python explicitly avoids shell activation issues: on Windows use .venv\Scripts\python -m robosoccer ...; on macOS/Linux use .venv/bin/python -m robosoccer .... Keep the server running on the organizer's machine throughout the session.
Live session plan: about 45 minutes
| Time | Do together | Evidence before moving on |
|---|---|---|
| 0–10 min | Confirm Python and kit, create my_bot.py, run robosoccer check my_bot.py | Everyone has a PASS or a partner with one. |
| 10–18 min | Copy the short quickstart chaser and run the command below | Each pair opens a replay against chaser. |
| 18–25 min | Point to the bearing diagram; try positive and negative turn rates | Students predict left/right correctly. |
| 25–35 min | Change turn multiplier 4.0 to 1.0, one change per run | Students describe how the approach changes. |
| 35–42 min | Try stopping when the ball is absent, then restore search; turn noise on | Students identify an empty camera frame. |
| 42–45 min | Save the working file and one sentence about a replay observation | Everyone has a starting point for next session. |
robosoccer check my_bot.py
robosoccer run my_bot.py --vs chaser --perfect-sensors --half-seconds 5 --watchAsk “where is the ball relative to this robot's nose?” before introducing angle conversion. A positive bearing and a positive turn are both left. Delay IMU/map coordinates, saved state and radio until the earlier controls are comfortable. If local execution is unavailable, use My bot's check, then submit a classroom match and review a completed replay together. It uses normal noisy sensors, so use the diagram to explain the intended turn before comparing the replay.
Next sessions
Follow the student lessons: kicking and fixed roles; reference frames and memory; simple radio; then robust radio. Use the robust helper only after students have observed missing, delayed and out-of-order data. Ask them to explain each repair with a paper example before pasting the code. There is no need for a 50-bot load test for this class.