RoboCup Mid-Sized League

Melbourne University Penguins


The main aim was to design a highly modular system, creating a robotics research platform that can be easily adapted to a large range of research tasks.

These robotic platforms are designed to be able to compete in the F2000 Mid Sized league of Robocup. They have ball handling devices that can be positioned at any angle around the robot. A large emphasis was placed on ease of transportation and each robot can be easily packed down to a fraction of its assembled size. The robots can be assembled and disassembled rapidly, to help with on-the-fly repairs.


The robots consist of a custom made chassis, a ball handling device and electrical payloads.


The chassis is constructed out of 3mm sheet aluminium. A dual wheel differential drive system is used, with a pair of casters to balance the robot. Above the drive system resides a tube mounted upwards acting as a pivot for supporting the ball handling mechanism. On top of the tube is an aluminium frame, covered by high density polyethylene (HDPE), to encase the remaining electrical payload. At the top of the payload case is a length of polycarbonate tubing with an omni directional mirror mounted on top and camera below.

The chassis currently weighs between 10 and 12 kilograms depending on the laptop being used. The chassis is circular, with a 30 cm diameter. The total height of the robot is 85cm.

Ball Handling Device

The ball handling device consists of a 'leg' that can be rotated 360 degrees around the body of the robot, with a rubber coated aluminium block at the end for controlling the ball. A kick is achieved by rotating the 'leg' around the body of the robot and making contact with the ball.

There is a rotating rubber-covered fibreglass shell around the outside of the chassis that is capable of spinning the ball on its vertical axis. This is useful for controlling the ball especially when changing directions.

The ball handling motors and the drive motors are powered by 14.4v 9Ah Ni-MH batteries.


The electrical payload consists of a laptop with an IEEE 802.11b compliant Wireless LAN card to transmit data between robots. The robot uses a USB Logitech Quickcam 4000 camera for image acquisition. The processing of the image is carried out by the laptop. There is a custom built motor controller that is also connected via the USB bus.

Control System

The motor controller consists of an Atmel Mega128 micro-controller, and a FTDI RS232 to USB bridge. All real time control of the motors are controlled by the micro-controller. The control law used is trajectory tracking. The motor controller can be given up to 10 directives, each consisting of a pair of coordinates, an angle, and an ideal velocity.

The micro-controller implements a kinematic model to plot an ideal path through the coordinates, and drives the motors to achieve the required path. The laptop occasionally sends the micro-controller the location of the robot to eliminate accumulative errors that may arise from the feedback system attached to the wheels.

Vision System

The vision system is based around the Logitech Quickcam 4000 camera mounted under an omni-vision mirror. The Quickcam 4000 is a fully featured web cam, with a high quality CCD sensor. It can capture 15fps at a resolution of 640 x 480. The image processing is carried out on the laptop.

From this point the image is processed differently depending on the situation. If the robot is in pursuit, (controlling or tackling the ball) it locally processes the image to calculate its path. Otherwise the angle, colour and size information is transmitted to the off field coach. The off field coach collates the information it receives and attempts to generate a world map, which is then made available to each on-board computer.


The laptops used to power the robots run Linux.

Low Level Daemons

These daemons are used to communicate between devices, do basic image processing, logging and triangulation.


These functions are invoked as needed. They are small programs that do tasks such as move to a location, intercept ball, and control ball. To improve performance, all actions are loaded at start up, and are paused / un-paused as required.

Game Play

These are the functions that select which action to run.


The GUI is run on the coach machine, which permits the visualisation of information from the different robots.