Role
Solo build · Python, Tkinter
Stack
Python · Tkinter · Git
Why I built it
Omniwheel robots can move in any direction, which makes them popular in robot soccer. I built this simulation to understand how they move, and to test how different control settings change a robot's behaviour before trying them on real hardware.
The idea
A desktop app that shows two robots and a ball on a soccer field, and lets you change the physics and control settings while the simulation runs.

Key features
- Physics simulation - omniwheel movement, ball movement and field friction.
- PID controls - set P, I and D values separately for the player's robot and the enemy's robot.
- Field settings - change the field friction while the simulation runs.
- Path display - show or hide each robot's path.
- Robot field of view - show or hide what each robot can see.
- Match display - a live score and timer.
- Simulation controls - start, pause and stop buttons.
How it works
- Python handles the physics calculations and robot control.
- Tkinter draws the field, robots and control panel.
Impact
- Learn by testing - users can see straight away how PID values and friction change a robot's movement.