<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>AIS: Artificial Intelligent Soccer</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ricardo Alfaro</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Maximiliano Aubel</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pablo Yañez</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pablo Reyes</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tomás</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rodenas</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicolás Hernandez</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Felipe Pinto</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sung Hee Kim</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tania Barrera</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Torres</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ignacio Vicencio</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jorge Alvarez</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Felipe Osorio</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sebastian</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Castillo</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>8 Abstract This paper describes the current development status of our SSL team, AIS. Throughout 9 this document, we present the design and implementation we have got so far, showing the 10 electrical, mechanical and software topics involved in our work, which were designed according to 11 satisfy the RoboCup rules. In addition of giving details on the current development, we present 12 some insights on the main challenges that have been identified and tackled in recent years with the 13 consolidation of this team, in order to foster other forming groups around the globe.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        43 Drive System
44 Mechanical locomotion of robots is based on 4 omnidirectional wheels, which are currently
3D45 printed in PLA. Each wheel is designed with 55 mm of diameter and 15 sub-wheels of 13.5 mm of
46 diameter, so the robot can move in all directions. Also, each one of the 55 mm diameter wheel has
47 a set of 15 mini metal V grove guide pulley rail ball bearing wheels. Each wheel is driven by a Maxon
48 EC45 30 Watts motor [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and an L6235 driver for 3-phase brush-less DC motor [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which enables us
49 to program a velocity control for each motor, ensuring that the robot moves to our desired setpoint
50 speed.
51 Hardware
52 Each robot is controlled by a PIC MX440F256H using Pinguino Development board. This model was
53 chosen because of its simplicity, versatility and peripherals features. It has shown an acceptable
54 performance, letting us accomplish communication, movement, and playing skills. The peripherals
55 also replace a lot of external electronics needed to control the motors and dribbler.
56 Peripherals
57 ADC conversion
58 The ease of implementation of this kind of modules allows us to control wheel speed and orientation
59 through an L6235 driver using DAC conversion. Additionally using ADC conversion we can measure
60 the wheel speed, allowing us to implement a PID control on velocities for each wheel.
61 I2C
62 As mentioned before, we use an L6235 driver, which communicates with the PIC through its I2C
63 module.
64 UART
65 The UART module allows us to develop serial communication between the PIC and our APC220
66 RF module, which will send and receive data from the centralized decision maker placed on the
67 computer. Additionally, we use an FTDI connected to our UART communication module to watch
68 data of interest.
69 GPIO
70 The general purpose Input/Output pins let us program easily, in general, any other significant
71 settings, i.e. set the wheel break and direction pins or activate the kick routine.
72 Kicker
73 The circuit that is shown in Figure 3 is used for the kicking system. This consists of a chip charger
74 controller with regulation which is a controller of flyback of high voltage, raising the voltage from
75 24 [V] to 100 [V] on a capacitor of 2400uF and, therefore, storing an energy of 244 [J]. The time of
76 charge of the capacitor takes up to 3 seconds to reach the voltage setpoint and can be regulated to
77 kick with different intensities.
      </p>
      <p>V_TRANS
VCC
C1</p>
      <p>C2</p>
      <p>C3 C4</p>
      <p>C5 +
GND
VCC</p>
      <p>VCC
V_TRANS</p>
      <p>GND
Signal</p>
      <p>R1
R2
R3
R4
R5
R6
78 Dribbler
79 According to RoboCup rules, the robot is allowed to cover up to 20% of the ball. Experimentally, it
80 has been proved that it is easier to catch the ball when the dribbler has a slight curve to center the
81 ball on its own. So, this design involves two diameters, D1 and D2, and based on this information,
82 maximum height possible is calculated obtaining the following expression:</p>
      <p>
        H = u 41 .D2.2d + D2/ + D1.4pd * 2d * D1/ + 4pd2.1 * p// + d2 ; (1)
83 where d and p corresponds to the ball diameter and maximum coverage of the ball, whose
84 relation is illustrated in Figure 4.
85 Our team uses the engine MAXON EKC1 16, BRUSHLESS, 30 WATT, SENSORLESS, handled by an
86 ESC LettleBee opto 6s. 1APF30212A
87 Both the engine and roller join using2a gear system with ratio 1:1, configuration that let us drive
88 and automatically center the ball with a 3D-printed support structure.
89 Communication
90 For communication, we use an RF module consisting of an APC220 which is a low-cost NRF Athena
91 that integrates an embedded high-speed microprocessor and high-performance IC that creates
92 a transparent UART/TTL interface. It is a 430 MHz system capable of transmitting up to 1000
93 meters. We send every single robot data through a common channel as hexadecimal packages
94 in order to achieve better transmission bytes. Each robot receives and decodes the data in a pic
95 microcontroller.
96 Kinematic model and wheel speed control
97 In order to maintain the expected velocity and position, we applied PID control [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] on every wheel
98 once the setpoint speed is calculated for every robot. To accomplish this task, our control system
99 sends a velocity vector V = [vx; vy; v ]T to each robot, multiplying then its kinematic model matrix
100 W , defined by the geometry of the robots, obtaining
      </p>
      <p>
        u = V T W = [u1; u2; u3; u4]T = r;
101 where u is the wheel velocity vector, which divided by r (radius of the wheel), it is possible to
102 obtain the angular velocities of the wheels, . This is the reference variable to the control speed
103 system shown in Figure 6, and by obtaining direct measure from the hall sensors of the motor we
104 can obtain the input error variable to the PID. Then, the controller generates a PWM as output in
105 order to set the wheel speed. It is important to note that is treated as an absolute value because
106 the direction is set by enabling or disabling certain pins on the driver controller.
107 Software
108 Diagram depicted in Figure 7 shows a general overview of the system, where we implement a
109 high-level AI decision making in order to decide which is the best action to take from a set of high
110 level preprogrammed plays based on the game state that comes just from the vision receiver.
111 Then we have a low-level path planning algorithm to choose the best path in order to execute the
112 play avoiding obstacles. This is implemented on the desktop computer in charge of making the
113 centralized decisions for every robot.
114 High level AI
115 The higher order AI level computes at each processing cycle the best actions to be performed for
116 each robot. This action is chosen by selecting a game-play from a pre-defined static pool. This
117 fundamental part of the system’s architecture is shown in Figure 8, introducing four identifiable
118 processes. First, there is a SceneRater which analyze and encapsulates all the relevant information
119 from the game field for choosing a game-play. Then, that information is used for actually selecting
120 the specific game-play through the block named as PlayChooser, weighting each detected event for
121 deciding whether an attacking strategy or a defensive one should be used, and which one in detail
122 must be performed. Once a game-play is chosen, then a RoleAssigner block is in charge of coherently
123 distribute the roles associated to that game-play, as well as selecting which robots should assume
124 each position. Finally, each position must be run by the robots, a process managed through time by
125 an Executer block.
126 Then, as shown in Figure 8 which depicts the diagram of the algorithm implemented as the top
127 hierarchy intelligence architecture, the processing cycle starts with the receiving of new data either
128 from the vision system or the referee. As illustrated, four blocks are implemented and processed
129 in order: SceneRater, PlayChooser, RoleAssigner, which is executed just if the current play has
130 changed, and the Executer block.
131 Specifically, the SceneRater evaluates conditions as which team has the ball, whether a team has
132 or not high and middle chances of making an annotation, the partial position of the ball in the field,
133 which team is closer to the ball, among others relevant features.
134 The PlayChooser, after receiving the vector of detected events, evaluates all pre-defined
game135 plays, each one of them rating differently the events detected. Offensive plays rate with higher
136 values the detection of the ball in the enemy team area, and even more if the ball is close to the
137 enemy goal area. Coherently, defensive plays strongly rate when the enemy team has the ball and
138 even more if they have an opportunity for shooting to the team goal area.
139 Each game-play is described by a set of roles, one role for each agent, introduced in a priority
140 order in case of using fewer robots than the maximum allowed. Each role considers a set of actions
141 to be developed by the agent, as moving, receiving or giving a pass or shooting to the goal area.
142 To do so, the architecture includes the Executer block, which is in charge of evaluating if either
143 an action has finished or not, managing the changing of steps and computing the next step of an
144 action execution for each robot.
145 In order to simulate the robotic team coordination, and test different multi-agent algorithms,
146 we make use of GrSim [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], software that has been very helpful to test game strategies.
147 Low-level path planning
148 Under the high-level plays, we run a path planning algorithm to find the best way of executing these
149 tasks. We have tested different methods looking for a suitable algorithm which gives good results
150 at the moment of avoiding obstacles.
151 The first method tested was Potential Field algorithms [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This proposes a potential field
152 representation for obstacles and target, using sources for the prior and sink for the latter. In this
153 way, vector trajectories are generated avoiding obstacles and leading the agent to the target, as we
154 let a ball fall down. A disadvantage of this method is that we could obtain local minimums without
155 reaching the target.
156 The best method tested was Rapidly-Exploring Random Trees (RRTs)which consists on expanding
157 a tree on the target zone, avoiding to add nodes that could produce collisions with targets. The
158 added points to the tree are randomly chosen with probability p in a straight line to the target,
159 and with probability .1 * p/ selecting a random point on the space, making more exploration and
160 avoiding to get stuck on a different location to the target.
161 For improving its performance, we have implemented and tested some of the algorithms based
162 on RRT, way-points, smoothing and some extensions like RRT* presented on 2011 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
163 Conclusions
164 Although we tackled several challenges prior to our participation at the Robot Soccer World Cup
165 2018, such as discarding low-level path planning algorithms due to local optimums according
166 to some remarks described throughout this document, and despite efforts about testing game
167 strategies on a simulated environment, a newcomer team into the league should consider several
168 other challenges that should be faced at the time of participation, such as:
• Full integration with referee box: it is not enough to communicate this software with the
central unit for the team decision-making system, given that all rule cases should be covered.
• Number of robots: although each team is allowed to participate with a smaller number of
robots, it is important to maximize the number of available prototypes in case of structural
damage (chassis should be prepared to receive very strong shoots).
• Number of team members: in case of belonging to a self-organized group of students (such
as our case), budget and funding search for the tournament participation should include at
the very least six members, given that captain is constantly being called for meetings within
the contest, and two other members have to serve as referees for other matches.
• Precision and time delays: although splitting of teams into Division A and Division B lower the
game complexity in order to face similar teams in terms of experience and tasks achievement,
there are very experimented teams which have mastered the motion control of robots, so it is
important to be prepared to chase and face the ball in the most efficient possible manner.
182 Next challenges for this team in order to qualify for the upcoming world cup in addition to
fundrais183 ing for participation, include fine-tuning of robots which were already capable of playing matches
184 and even winning one of them, following with the appropriate prototypes replication.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Ahumada</surname>
          </string-name>
          et al. “
          <article-title>Accelerating Q-Learning through Kalman Filter Estimations Applied in a RoboCup SSL Simulation”</article-title>
          .
          <source>In: Robotics Symposium and Competition (LARS/LARC)</source>
          ,
          <year>2013</year>
          <article-title>Latin American</article-title>
          . IEEE.
          <year>2013</year>
          , pp.
          <fpage>112</fpage>
          -
          <lpage>117</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Åström</surname>
          </string-name>
          et al.
          <article-title>PID controllers: theory, design, and tuning</article-title>
          . Vol.
          <volume>2</volume>
          . Instrument society of America Research Triangle Park, NC,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Bry</surname>
          </string-name>
          et al. “
          <article-title>Rapidly-exploring random belief trees for motion planning under uncertainty”</article-title>
          .
          <source>In: Robotics and Automation (ICRA)</source>
          ,
          <source>2011 IEEE International Conference on. IEEE</source>
          .
          <year>2011</year>
          , pp.
          <fpage>723</fpage>
          -
          <lpage>730</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Ge</surname>
          </string-name>
          et al. “
          <article-title>New potential functions for mobile robot path planning”</article-title>
          .
          <source>In: IEEE Transactions on robotics and automation 16.5</source>
          (
          <issue>2000</issue>
          ), pp.
          <fpage>615</fpage>
          -
          <lpage>620</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Monajjemi</surname>
          </string-name>
          et al. “
          <article-title>grsim-robocup small size robot soccer simulator”</article-title>
          . In: Robot Soccer World Cup. Springer.
          <year>2011</year>
          , pp.
          <fpage>450</fpage>
          -
          <lpage>460</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Vincenzo</given-names>
            <surname>Marano</surname>
          </string-name>
          . “
          <article-title>L6235 three phase brushless dc motor driver”</article-title>
          . In: Application Note, ST (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>AG</given-names>
            <surname>Maxon</surname>
          </string-name>
          <article-title>Motor</article-title>
          .
          <source>EC-Powermax 30 Catalogue Information</source>
          .
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>