RoboCup 2018 – Galacticos

This is the web page of the Mexican team Galacticos for RoboCup 2018.

Imanol, Oscar, Baltazar and Rafael from team Galácticos in the Mexican Robotics Tournament 2018

By winning the FIRST PLACE in the RoboCup Junior Soccer Lightweight category of the Mexican Robotics Tournament (Torneo Mexicano de Robótica, TMR 2018), the Galacticos team received the Honor of representing Mexico in RoboCup 2018, in Montreal, Canada, from June 18 to 22.

Below is a description of the data presented in the team poster for RoboCup 2018.

Title / Identification

Team name Galácticos
Country Mexico
Subligue RoboCup Junior Soccer Lightweight
Students (age), roll Julio Rafael Sandria Sánchez (16), software
Oscar Imanol Sandria Alfaro (17), hardware
Oscar Enrique Delgadillo Ochoa (16), mecanics
Baltazar Cervantes García (17), electronics
Mentor Julio César Sandria Reynoso
Institution Instituto de Robotica de Xalapa
Poster: Team Galácticos – México – RoboCup Junior Soccer Lightweight (DOI:


In this poster, we describe the soccer robots with which we started working since 2015 and that until this year we have been able to dominate, and return to RoboCup for the second time. We use Arduino technology because it is low cost, is easy to use and it has a wide variety of libraries to use sensors and other devices. We describe a significant improvement that allowed us to return to international competition after three years of ups and downs in the Mexican Robotics Tournament.

Method / Robot Production


Robot structure: Our robots are composed of three circular bases of MDF wood of 21.5 cm in diameter, which allow us to organize electronic components. Bases are laser cut and have a slit to take the ball to the front. We choose MDF wood because it is a lightweight material, economical, simple to handle and we can quickly perform perforations or cuts for adjustments necessary to improve the robots. Bases are joined by means of screws, spacers and nuts.

Control board: We use an Arduino  Mega 2560 board to carry out the data collection of the sensors, their processing and control of the motors.

Light sensors: To detect the white line that delimits the game field we use 12 leds and 10K ohms photoresistors connected to analog inputs of the Arduino Mega board.

Mobility: Each robot has 4 direct current motors, economical and easily acquired in our country, and 4 omnidirectional wheels that allows its movement in any direction, thus achieving that the robot has better control.

H Bridge Shield: The 4 DC motors are controlled by an H Bridge Shield mounted on the Arduino Mega board. To avoid the overheating of the integrated circuits, we place a heat sink and a fan on this component.

Infrared sensor: To locate the infrared ball we use an IR Seeker V2 sensor from HiTechnic, compatible with LEGO Mindstorms NXT/EV3, which is communicated by I2C with the Arduino board.

Compass sensor: To guide the robot towards the opposite goal, we use a compass sensor HMC5883L which communicates via I2C with Arduino.

Ultrasonic sensor: To complement the location of the robot calculating distances to the sides, the front and back, we use four ultrasonic sensors HC-SR04.

LCD screen: We use an LCD screen connected via I2C to Arduino, to observe the values of the various sensors when we need it, mainly for calibration on the field. To reduce weight of the robot, we removed ir for matches.

Wireless communication: To communicate the two robots to each other and thus achieve a game without interfering with each other we are using XBee S2C modules from DigiKey or bluetooth HC-05 modules.

Power source: We use 8 AA batteries that added 9.6 to 12 Volts depending on whether they were rechargeable or alkaline. But, we detected that the Arduino board was frequently restarted due to the excessive current consumption of all the electronic components. We are currently using a LiPo rechargeable battery from 11.1 Volts to 3300 mA with which Arduino is no longer restarted.


In the first base we place 4 direct current motors, also here are the light sensors placed in the form of a cross.

In the second base, an Arduino Mega board is strategically placed, fastened with two screws with their respective nuts; a circuit of our own design where most of the electronic components are connected to obtain energy, the infrared sensor in the lower part adhered with hot silicone and the energy source fastened with velcro and a screw. In this base we made several cuts to reduce weight making the design lighter.

In the third base, 4 ultrasonic sensors are located pointing to the sides, in front and back, stuck with silicone in the wood; 1 compass sensor fixed with a screw on the upper part for better operation; a fan that cools H Bridge  that overheats due to the battery; 1 Wireless module and 3 switches, 1 for power-up, 1 for use of Arduino EEPROM memory and 1 for pause; It should be noted that in this base we also made a rectangular cut to remove weight.


Our robots were programmed in C/C++ language through the Arduino software. We include libraries for the proper use of the compass sensor, ultrasonic sensors, the H bridge shield, the I2C connection, the LCD screen, and the Arduino EEPROM memory.

At the end of the program we have defined the functions used in the previous parts. These functions include different displacement movements, sensor configurations, automatic calibration of light and compass sensors, among others.

In general, the robots are programmed so that when they are switched on, depending on the EEPROM switch, they perform an automatic calibration of sensors or read the calibration values of the EEPROM memory. After the calibration, each robot is programmed to advance towards the IR ball when it detects it to the front, if it does not detect the ball backs down, if it detects it to one side, it moves in that direction. In the first days of June 2018, we began to plan strategies for one robot to work as a goalkeeper and the other as a forward, as well as wireless communication between them

Awards won by our Team

  • First place in the Mexican Robotics Tournament 2014.
  • Superteam World Champions in RoboCup 2014, Brazil.
  • Second place in the Mexican Robotics Tournament 2015.
  • Third place in the National Robotics Festival 2016, Portugal.
  • First place in the Mexican Robotics Tournament 2018.
  • First place in the National Robotics Festival 2018, Portugal.

Sensors used for each robot

12 Light sensors of own construction that use an LED and a photoresistor.
1 Infrared sensor IR Seeker V2.
1 Compass sensor HMC5882L.
4 Ultrasonic sensors HC-SR04.

Time and cost of development

The two robots that we used in the 2018 Mexican Robotics Tournament were built in approximately three months.

After that tournament and in order to participate in the National Robotics Festival 2018 in Portugal, and RoboCup 2018, we built two new robots, which have taken us another three months to build and improve.

The cost of each robot is approximately $400 USD.

Data / Results / Discussion

In 2014 we started to compete with soccer robots made with Lego Mindstorms NXT. To be more competitive internationally, in 2015 we started making soccer robots with Arduino technology, creating our own light sensors to detect the white line of the playing field.

A significant advance for the calibration of the light sensors that helped us to return to RoboCup, was the automatic calibration and use of the EEPROM memory of Arduino. In previous years (2015 and 2016) we made a manual calibration on the test field, placing each sensor of the robot on the green color and on the white line to write in paper the readings and obtain an intermediate value or threshold. Something that was not appropriate because the readings changed radically from the test field to the competition field. In 2017 we started to do tests to achieve an automatic calibration, until we achieved it this year using the EEPROM memory of Arduino and a switch.

For automatic calibration, we turn the EEPROM switch on, place the robot behind the white line, turn it on and the robot advances taking 30 readings with each of the 12 light sensors. For each sensor the program takes the maximum and minimum values, and calculates the intermediate value which it uses as a threshold. The values ​​of the light sensors and initial direction of the compass sensor are stored in the EEPROM of Arduino Mega. After calibration, we set the EEPROM switch to off; In this way, if the robot leaves the field for a few seconds or up to a minute, we can turn it off and the threshold values ​​of the sensors are preserved. When we return it to the playing field, it reads the threshold values ​​of light and compass sensors from the EEPROM memory.

A serious problem that we had three weeks before RoboCup 2018, was with the compass sensor, since we were using the HMC5883L (GY-273), which some of us damaged them by not being careful when screwing them. When the purchased replacements arrived, they did not work, until we discovered that they did not have the HMC5883L chip, but the QMC5883, which requires a different Arduino library.

Photos / Images

Our poster include images and graphics representing the team’s robots. Images and graphics are original and available for non-commercial reuse with modification as per the creative commons license (



Club de Robótica de Xalapa