A two-arm robotic goalkeeper that tracks and blocks soccer balls.


The term project of this years ‘2.12 Introduction to Robotics’ competition at MIT was inspired by the soccer world cup. Twelve striker and goalie teams competed against each other in both direct playoffs and individual evaluations. In the final, our robot ‘Tim Howard’ successfully saved all shots on the goal and emerged as the winner of the competition! Furthermore, I was awarded the ‘Most Valuable Engineer Award’ of my team.

Our robot has two arms, each covering approximately half of the workspace (the goal). This reduces the distance each arm has to move and places the singularity away from the center. A lightweight structure and belt and pulley constructions lead to high speed performance by minimizing inertia.

A vision system localizes the ball on the field. I programmed a Kalman Filter to track the ball’s state and predict the position and time at which it would enter the goal. Even the bouncing motion can be simulated. The robot then generates a trajectory and moves its hands to the impact point to block the ball.

Estimation and Control

Most of our code was written in Python with some preliminary testing on an Arduino-like microcontroller. A complete copy is accessible on our repository.

As the head algorithm and software developer, I was mainly involved in estimation and control aspects of the robot. This project extended my Python programming skills, especially with respect to hardware interfacing, network communication and object-oriented programming.