background image

RoboIME: From the top of Latin America to

RoboCup 2018

Carla S. Cosenza, Gustavo C. K. Couto, Lucas Germano, Lucas G. Corrˆ

ea,

Luciano de S. Barreira, Luis D. P. de Farias, Luis R. L. Rodrigues, Jo˜

ao G. O.

C. de Melo, Matheus Bozza, Matheus P. de Souza, Nicolas S. M. M. de

Oliveira, Onias C. B. Silveira, Rebeca P. dos Reis, Renan P. de Souza, Sergio

G. S. Dias, Yugo Nihari and Paulo F. F. Rosa

Instituto Militar de Engenharia, Rio de Janeiro, Brasil

rpaulo@ime.eb.br

http://roboime.com.br

Abstract.

This paper describes the electronic, mechanical and software

designs developed by the RoboIME Team in order to join the RoboCup
2018. The overall concepts are in agreement with the rules of Small
Size League 2018. This is the fifth time RoboIME participates in the
RoboCup.

1

Introduction

RoboIME is a Small-Size team from the Instituto Militar de Engenharia, IME,
located in Rio de Janeiro, Brazil. This is the ninth time the team takes part in
competitions, being the best result first place in the Latin American Robotics’
Competition 2017, two second places in RoboCup Brazil Open 2011 and in Latin
American Robotics Competition 2012.

All students that work in the SSL project are members of the Laboratory of

Robotics and Computational Intelligence at IME. Team’s previous works were
used as reference [2] [3] [1], as well as the help from former members of the team
as consultants and tutors.

This article describes the team’s general information and improvement in the

most recent semester, since our previous TDPs for RoboCup 2017 have detailed
explanations on our previous changes. This article is organized as follows: soft-
ware in section 2, embedded eletronics in section and mechanical design in
section 4. Conclusions and future works are discussed in section 5.

2

Software Project

This paper reports the main improvements and changes since 2017 RoboCup
project.

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

2

2.1

Passing State

One of the big changes of the software project was the introduction of a passing
state that is used in the indirect and direct kicks. When this state happens the
striker takes its position using the Inverse Best-y, described in section 2.1. The
attacker waits for the striker arrive in its position to execute the pass. Then the
striker tries to intercept the ball. When the ball is near the striker, touches a
robot or goes out of the field, the personalities can change and therefore the
striker becomes the attacker (see the dynamic personalities in [3]).

Inverse Best-y:

The inverse best-y calculates the best position for the striker

to receive the pass. In order to do that, the intersection of the attacker line
and the goal line are calculated. The attacker line is the line that contains the
position of the attacker and whose slope is the tangent of the angle bisector of
the biggest gap of robots. This angle is calculated from the beginning of the
defense area to the opposite lower corner of the field (see figure 1). This line
gives the best direction in which the attacker can kick the ball. The goal line is
the line that contains the center of the goal and whose slope is the tangent of the
bisector of the biggest gap of robots, calculated from the attacker and the corner
on the opposite side of the striker and close to the enemy’s side (see figure 2). For
the calculation of this line, robots on the ally field side are not considered. This
line gives the best direction in which the striker can kick the ball without any
interference. The intersection of the two lines will give a point with a free path
from the attacker and a free path to the goal, which is essentially the objective
of the pass (see figure 3).

2.2

Personalities

For the advancement of the AI, some changes were made to the personalities
(see Personalities in [3] in order to have a better understanding on how the
personalities work).

Attacker:

Now, when an enemy robot has the ball possession and it is located

at the ally side of the field, the attacker’s target point is set at the position of
this robot. This offensive behaviour enables a dispute for the ball possession,
since the two of them will stay face to face trying to kick the ball to the other
side.

Defender:

When an enemy with possession of the ball approaches the wall

of robots, one of the defenders also assumes the same offensive behavior as
described in the attacker’s item, in order to kick the ball away from the ally’s
goal.

Goalie:

The change in the goalie is that the radius of the semicircle it follows

is bigger, allowing it to protect a bigger area of the goal.

Striker:

The striker now assumes a man-marking behavior when an enemy

robot has the ball possession, which is determined by whether the ball is
closest to an ally or enemy. First, it is calculated for each enemy robot its

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

3

(a) Area considered for calculation

(b) Attacker line calculated

Fig. 1: Calculation of the attacker line

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

4

(a) Area considered for calculation

(b) Calculation of the goal line

Fig. 2: Calculation of the goal line

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

5

Fig. 3: Final result of the Inverse Best-Y

distance from the ally’s goal and from the robot which has ball control. The
one which presents the smallest addition of these two results is considered
the most dangerous enemy. Then, it is applied the GoTo method to position
the striker properly between the enemy which has the ball and the most
dangerous one. This position is set next to this last robot mentioned, along
the vector that links these two enemies. The striker is oriented in order to
kick the ball away from the man-marked robot, in case the most dangerous
one receives a pass from the other.

2.3

Test Module

In order to help test infield and during the timeouts, the test module was devel-
oped. There are three major testing modules, as described as follows:

Kick Test: The Kick Test is used to test the kick with controlled magnitude.
It is possible to generate a log with kicking performance data (such as ball
positions and the kick’s magnitude in each observable moment of the test),
which is useful for calibrating the kick for passing.

Dribbler Test: Used for turning the dribbler on.

Control Test: The Control Test works by setting a sequence of waypoint
coordinates, creating a circuit and making a robot perform it. Even being
this simple, it was the best improvement observed for testing, since it allows
any robot movement impairing issues be quickly detected.

2.4

Control

Obstacle Avoidance

In order to avoid collision with other robots, the Potential

Field algorithm is used (further reading can be found at [4]). For every ally
robot, it is computed the other robots’ influence described by the potential

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

6

field model. Furthermore, the ally robot’s velocities are hence updated. Even
though this algorithm doesn’t guarantee the robot won’t be trapped in a local
minimum, it is simple to implement and it has been shown to be an efficient
approach for obstacle avoidance in highly dynamic environments. In order to
achieve an optimized trajectory and to avoid problems that may occur with
the Potential Field approach, a rapidly exploring random tree (RRT) based
algorithm is currently being developed for critical roles, such as the attacker and
the striker.

3

Electronics Project

Since the RoboCup 2017, a lot of effort has been put into making the electronic
project more robust. Standardizing the production of the boards proved to be an
improvement in the board’s reliability. Also, the modularization of the project
proved once again to be useful, enabling to remove a defective robot mid-game,
debug it, and put it back in action within a few minutes. The LARC 2017
competition was very useful to test the changes in the project.

3.1

Firmware

The firmware was improved from a bare metal code that ran with hardware
interruptions to execute the communication and the wheel controls, to a real
time operating system. FreeRTOS was chosen due to its ample support in online
community and its robustness.

Previously, the firmware in the transmitter was the same as the one in the

robots, being the connection to a serial port the trigger to call some functions
instead of others. This was also changed with the addition of the FreeRTOS
tasks, in order to make the code clearer and more readable.

With such architecture, new additions to the code are easier to make, not

having to know the whole flow of the code, just the particular module being
modified.

The transmitter’s firmware consists of two main tasks, responsible for reading

the USB COM port and transmitting its commands through the NRF24l01P and
the other responsible for reading and writing in the command line for debugging
purposes.

The robot’s firmware has a task for receiving the commands from the trans-

mitter, another for controlling the four wheels’ speeds, a third for activating the
kicks and check for the ball sensor and a fourth for transmitting back data for
the software.

Kick Strength

One major contribution of the LARC 2017 was the kick strength

modelling. After several tests using the camera system and controlling the time
the capacitor discharges in the coil, the data was collected and it was possible to
develop a simple equation that, with the time the capacitor discharges, estimates
the ball’s speed.

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

7

Robot Communication

One big improvement from RoboCup 2017’s project

to RoboCup 2018’s is the addition of communication from the robots to the AI
software. Previously, due to difficulties in the firmware configuration and hard-
ware limitations, information from the robots could not be transmitted to the AI.
For example, if the ball sensor is activated or not or even if it is working. With
such limitation fixed, this forward-backward communication becomes possible,
enabling more possibilities for the IA system.

3.2

Control

Maintaining the robot at the expected speed or position is very important so that
the software project is able to work properly. To try to keep the robots moving
as expected, there are several routines to check or filter the results obtained from
the vision system and the robots themselves.

Dealing with a non-ideal movement

In cooperation with the each wheel’s

speed being controlled, it is important to control the overall direction that the
robot follows. Wheels accelerate differently from each other. One wheel achieving
the final speed before the others can compromise the entire movement of the
robot, changing its direction due to the robot’s rotation. Incremental acceleration
of the robot with the slower one acting as the leader is a possible solution to
this problem, therefore acceleration should be sacrificed over overall trajectory
precision.

3.3

Board Designs

RoboIME’s hardware platform kept its same structure, as seen in figure 4.

Fig. 4: Picture showing all boards: the kicker module at the top, the stamp
module at the center, five motor modules at the sides and one communication
module at the corner. Beneath all, the main board.

The motor module remained unchanged since the last competition, proving

itself to be very reliable, with only few remaining problems during the games,
either in the RoboCup or LARC.

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

8

Stamp module

This module is responsible for performing all the logical func-

tions, serving as a brain for the electronic system. The module is a commercially
available board - the STM32F4-Discovery; it is a development kit that aggregates
an Arm Cortex M4 microcontroller with a series of peripherals like a debugger,
a motion sensor, two push buttons and two USB plugs.

This year STM electronics changed the main microcontroller in STM32F4-

Discovery kit from the the STM32F407VGT6 to the STM32F411VET6, that
will obligate some changes in timers configuration due to differences between
them.

Main Board

The Main Board, figure 5, provides physical support to the other

modules and connection between them and the robot’s actuators, sensors and
battery. Most of the main board is composed of simple routes and planes making
these connections. But it also implements some important circuits:

Fig. 5: Main board’s block diagram

Firstly, the protective and regulation circuit that uses a tank capacitor and

a resettable fuse to limit and to regulate the power delivered to each motor
module. The circuit also implements the INA220, a current sensor that reads
the current delivered to each motor module and communicates with the stamp
board using

I

2

C

. Secondly, the simple circuit transforms the two cell lithium

polymer battery voltage into 5V in order to feed the stamp board. It also allows
the battery voltage to be read by the stamp board using the sensor class.

The design of this board was also improved for the LARC 2017. The through-

hole capacitors and simple fuses were substituted by SMD capacitors and modern
SMD resettable fuses. The power routes were changed to planes, and the INA220
was added to make it possible for the stamp board to control the current delivered
to each motor module.

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

9

Kicker module

This module stores power in two electrolytic capacitors of

2200

µ

F, 200V using a DC-DC step-up circuit controlled by the MC34063 IC,

that transforms the 7/8V DC of the battery supply into a 180V DC power supply
to charge the capacitors. It also uses two IRFP4868PBF Power MOSFETs driven
by an IR4427 Mosfet driver to close the high voltage circuit, that releases the
power stored in the capacitors to one of the coils. The stamp board can also
control the kick speed, controlling the signal duration sent to the mosfet driver.

Besides, a problem concerning the switching of the IRFP4868PBF, was cor-

rected by running simulations. Through that tool, it was possible to determine
the cause of some failures on switching and correct it with an improved design.
By adding a boost circuit capable of turning the 7V battery voltage to 12-15V,
which is a more efficient switching voltage.

4

Mechanical Project

The mechanical project still is developed using CAD (Computer Aided De-
sign) and CAM (Computer Aided Manufacturing) softwares. Therefore, the team
members are involved on the conception but also on the machining itself. CNC
milling, CNC lathe and 3D printing were used for the manufacturing of the new
parts.

The participation in the RoboCup 2017 in Japan made it possible to no-

tice many opportunities of improvements of the mechanical project, not only
because of the real experience of the matches but also because of the exchange
of information with other teams. Next, it will be described the improvements
made since the competition at Nagoya and also the planning for the RoboCup
2018.

4.1

Wheels transmission system

One of the major issues that occurred during RoboCup 2017 happened on the
wheels transmission system. The gear utilized to transmit movement from the
engines to the wheels was made through 3D printing by a stereolithographic
process. However, the resin was not strong enough; and, match after match, it
was noticed the wear of the gears teeth until the moment when the movement
was not transmitted at all. The machining difficulty was due to the distance
between consecutive teeth being less than 1mm. Despite that, it was possible to
machine it by combining the use of a 0.6mm diameter drill and a 1mm diameter
end mill (see figure 6). The new gears were used on LARC 2017 and did not
present any problems.

4.2

Wheels components machined with aluminum

The omni-directional wheels are composed of 18 small wheels perpendicularly
coupled around a bigger wheel. The robot’s wheels utilized during RoboCup 2017
were composed of plastic components. In order to improve the precision of the

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

10

Fig. 6: The machined metal gear.

movement and cease warping problems, new parts were machined in aluminum:
the small wheels, as well as the internal and external parts of the bigger wheel.
Figure shows the difference between the old and the new wheels.

(a) Old wheel made in plastic

(b) Machined aluminum wheel

Fig. 7: Changes in the wheels

4.3

Dribbler

The dribbler is composed of an engine, a transmission system, a roller that makes
the ball dribble, and it lateral mounting, named dribble arms.

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

11

Dribble arms

The dribble arms used at RoboCup 2017 were made by 3D

printing with ABS plastic. Due to the impacts with the ball and with other
robots, the components would eventually break or the LEDs and sensors placed
inside the arms would get damaged, since the plastic presented some malleability.
Having that in mind, it was noticed the necessity of changing the material of
these parts from plastic to aluminum. The machining of the aluminum dribbler
arms was made through CNC milling. Also, each arm, which was composed of
two parts, was simplified to one part, in order to make the manufacturing process
easier.

Another observed problem was that the low kick would impact the ball only

if it was well positioned. However, during a game this was not so usual. Con-
sequently many kicks were not made. The solution to this issue involved the
backward positioning of the whole dribbler system, which increased the chances
of impact of the low kick with the ball, even when the ball was not at the best
position.

Roller

For the 2018 RoboCup a new roller utilizing silicon rubber was devel-

oped. The manufacturing process started with 3D printing a plastic mold. After
that, the mold was filled with silicon rubber in liquid state. The addition of cat-
alyzer solidified the material after a few hours inside the mold. The roller design
includes two helical cavities that make the ball go to the center when it spins,
optimizing the ball possession (see figure 8).

Fig. 8: Roller made with silicon rubber

pdftohtml_folder/2018_TDP_RoboIME-html.html
background image

12

4.4

Kick sensor protector

The sensor and LEDs failure occurred not only due to the ABS plastic malleabil-
ity, but also because they were laterally exposed to impacts, which could damage
the wire terminations. The developed solution consisted on a lateral protector
with a cavity for placing the wires, protecting them from direct impacts. On
LARC 2017, 3D printed protectors were utilized, made with ABS plastic (see
figure 9). Both the LEDs and sensors have shown no any mechanical damage
after the competition. Therefore, machining the protectors on aluminum are not
a priority for RoboCup 2018, although this still is a possibility to increase the
hardiness of the robots.

Fig. 9: Sensor and LEDs protector

4.5

Mechanism for fast removal of the cover

RoboCup 2017 proved that our solution for the cover for the robots was far