Category Archives: General

Anatomy of a Soccer Robot

We are not the first team to make a soccer robot. More like the first hundred thousandths. Two soccer-themed Robotex competitions have been held in Tallinn in the previous years, and the international RoboCup competition will soon celebrate its 15th anniversary. Consequently, the first thing a newborn Robotex team should do is study what kind of bicycles have been invented by our predecessors.

The anatomy of a typical soccer robot is, obviously, determined by the three tasks a robot must be capable of doing: moving around the field, detecting balls and shooting them into the opponent’s goal. The typical robot set up for solving these tasks is depicted below:

Robot's Anatomy
A typical soccer robot

Of course, just like people, all robots are different. There are lots of options to choose from for each of the parts.

Chassis

The chassis is what holds the robot parts together. There are three common approaches to chassis design.

The main functional property of the chassis (besides precision and aesthetics) is its weight. A heavy robot is in general harder to make than a light one. On the other hand, if two robots happen to collide, the lighter one will suffer most.

Wheels

Although it is possible to have a soccer robot with legs (in fact, the international Robocup competition has separate leagues for two-legged and four-legged robots), wheels provide the most efficient way for a robot to move around the field. There are two main types of wheeled robots in Robotex.

  • Differential-drive robots. This is the most straightforward type. Two wheels driven by two motors allow to drive straight, follow a path or turn on the spot.
  • Omni-wheeled robots. Those use three or four omni wheels which allow the robot to drive sideways, drive while turning, and do all kinds of fancy kinematics. There are drawbacks, though. Omniwheels are harder to control, they introduce a lot of vibration to robot’s movement and they can be somewhat “slower” because some of them will drag during driving.

Kicker and Dribbler

Dribbler
Dribbler

The “dribbler” is a rotating shaft covered with rubber. As soon as the shaft touches the ball, it makes the ball rotate in the direction of the robot, thus keeping it nearby. The dribbler can be long or short. If the dribbler is long, it will be easier for the robot to “grab” the ball yet it will introduce the danger of robot grabbing more than one ball at a time, which is in violation of Robotex rules. If the dribbler is short, the robot will have to drive exactly towards the ball.

The “kicker” is a device for kicking the ball away from the robot after it has been “picked up” by the dribbler. Although in principle one can come up with numerous ways of implementing the kicker (mechanical, pneumatical), the dominant solution uses the “coilgun” principle. The idea is to use a metal bar inside a solenoid (coil). When large current is passed through the coil, magnetic field will pull the bar forward, thus producing a “kick”. Once the current stops, a spring will pull the bar back into original position.

Coilgun

Of course, having a coilgun and a dribbler is not always necessary. There have been successful teams at Robotex, whose robot would simply ram the balls with its body. There have also been peaceful robots who did not plan to shoot any balls at all, and instead spent time protecting their own goal.

Vision system

Although some brave teams dare to make a soccer robot without a camera, the majority of soccer robots observe the field using a camera. The baseline solution here is an arbitrary webcam, capable of providing around 30fps at the resolution of 640×480, mounted in front of the robot. Those teams who believe this is not good enough, have the following options:

  • If the frames seem blurry due to excessive vibration, the Playstation 3 Eye camera, capable of producing 120 fps, might help.
  • Mounting multiple cameras will increase field of view. This, however, means multiple CPUs to handle the vision processing.
  • Finally, using a hyperbolic mirror it is possible to observe the reflection of the whole field via a single camera.

Several other sensors may be mounted on the robot to help. A gyroscope can tell the direction towards the opponent’s goal. A proximity sensor will warn about collisions. An IR receiver can sense the beacon signals from the goals (there are special beacons set up which radiate a particular signal). Finally, a combination of an IR led with a light sensor can be used to sense when the ball is in the dribbler.

The Brain

Finally, the brain of the robot should be fast enough to be able to process the frames from the camera and sensors, make decisions, send commands to the wheels and activate the kicker when necessary. The most common choice here is a laptop, preferably a small one, such as the Asus EeePC. Alternatives include setting up a bare motherboard from a desktop computer, or using a smaller board, such as Pandaboard or Beagleboard. All those cases result in the brainpower of a single- or dual-core 1-2GHz processor, which are typically enough for a robot with a single camera.

Hello Robotex!

Robotex soccer

Among all the subjects in the University of Tartu, to which a typical technically-minded student can be exposed to, the “Robotex course” (or “Robotics practice”, as it isĀ  formally called) might easily be the most demanding and the most exciting one. The aim of the course is to make a team and build a robot to compete in the upcoming Robotex competition. The theme of the competition varies from year to year, although for the last several years it has been fixed to “soccer”. The robot has to shoot as many balls from the field to the opponent robot’s goal.

The course starts in September, the competition is at the end of November, and most participants typically come having no clue about robotics whatsoever. As a result, the overall learning curve is enormously steep, the amount of work required from each team member is an order of magnitude greater than in any regular university course, and the value of teamwork is paramount. The final weeks before the contest hold a promise of numerous sleepless nights, they say.

This blog belongs to one of such teams – team codenamed “Telliskivi” (“The Brick”, in Estonian, which is supposed to highlight the simplicity of the original robot design). There are four of us here:

  • Andreas, a first year Computer Engineering student,
  • Konstantin, a PhD student in Computer Science,
  • Reiko, a master’s student in Computer Engineering,
  • and Taavi, a master’s student in Machine Engineering

We hope that our fine mix of expertise in various fields will help us make a great robot for the upcoming competition.

In the following posts we’ll gradually tell you about our progress, the problems we have on the way and the solutions we come up with. Stay tuned, feel free to comment.