ITAndroids Small Size League Team Description Paper for RoboCup 2022

Alexandre Maranhão, Ana Schuch, Andrei Freiberger, Andrei Albani, Arthur Rodrigues, Eduardo Simplício, Gabriel Benicio, Lucca Haddad, Lucca Zoppi, Luis Rezende, Marcos Maximo, Mateus Egger, Matheus Moreira, Matheus Silva, Rafael Celente, Reynaldo Lima, Valério Augusto, Victor Wakugawa

Autonomous Computational Systems Lab (LAB-SCA) Aeronautics Institute of Technology (ITA) São José dos Campos, São Paulo, Brazil

http://www.itandroids.com.br


Abstract ITAndroids is a robotics competition group associated with the Autonomous Computational Systems Lab (LAB-SCA) at Aeronautics Institute of Technology (ITA). Our Small Size League (SSL) team started its activities in late 2016. Based on many open source releases by the SSL community, especially by RoboFEI, Tigers, and Skuba, the team finished a working prototype in 2018. Then, throughout the following years, ITAndroids SSL further acquired experience and matured its project. This paper describes our recent efforts to compete in the Division B of RoboCup 2022 in Bangkok, where we expect to participate with a full team of six robots.

Introduction

ITAndroids is a multidisciplinary robotics research group formed by about 60 students from different undergraduate engineering courses at the Aeronautics Institute of Technology (ITA), based on the city of São José dos Campos, São Paulo, Brazil. Over the last 10 years, the team was awarded 56 prizes in competitions in both national and international levels. In the last edition (2021 online competition) of the Latin American Robotics Competition (LARC), which is acknowledged as the most important competition on intelligent robots in Latin America, ITAndroids won 5 awards.

This paper presents ITAndroids SSL (Small Size League) team's recent efforts in developing a team in the Small Size category to compete in the 2022 edition of Robocup in Bangkok. The organization for the remainder of the paper is as follows: Section 2 presents the recent efforts of the electronics team. Section 3 presents the high-level software team's recent efforts. Finally, Section 4 presents a conclusion and the team's expectations for the future.

Electronic Design

As mentioned in the previous team description paper (TDP), our team has a new electronics design for our mainboard, which combines ideas from RoboFEI [5], TIGERs [7], SKUba [8] and ITAndroids Humanoid [3]. The main change is the replacement of the FPGA by the microcontroller STM32H742BI [11], with 480 MHz and 2 Mbytes of Flash memory. Our team decided to make this change because of our familiarity with the STM32 boards family, plus the ease of use of the STMicroelectronics IDE [10]. For now, the schematic and layout design (developed in Altium Designer) are being finalized as shown in Figure 1. The next step will be to build the prototype board to test and debug problems. Further details of the redesign are expressed in the previous TDP.

During 2020, the development of a new broadcast station for the communication between the team's computer and the robots was discussed. Currently, we do not have an adequate station to make necessary communication with the external field. For this interaction, the team uses an Arduino Uno and a communication module nRF24L01+ [4] connected by jumpers. The new broadcast station will consist of a microcontroller from STMicroelectronics and an nRF24L01+, now with an antenna attached.

Fig. 1: CAD of the new main board project.
Fig. 1: CAD of the new main board project.

New broadcast station

The nRF24L01+ device, manufactured by Nordic Semiconductor, is a transceiver chip that works in the ISM 2.4000–2.4835 GHz frequency band, can be operated in 126 channels, and can support a data rate of 250 kbps, 1 Mbps or 2 Mbps. It has several programmable tools by SPI communication protocol, such as operating channel, power amplifier, send auto-recognition and CRC (Cyclic Redundancy Check). In this project, a version of this module with antenna will be used, which increases the data range.

The Small Size communication protocol consists of sending a data packet of 32 bytes, which is the capacity of the nRF24L01+. The packet is sent by the team computer and received by the robots through a single pipeline. Table 1 exposes the protocol.

Table 1: Small Size communication protocol ITAndroids.

Multirobot command Instruction Identifier Robot X Command Robot Y Command Robot Z Command Checksum
Bytes 1 10 10 10 1

Instruction Identifier refers to the type of message that will be executed in the game. Currently, Small Size has only one message, so the byte of this field is not yet well used. Robot Command refers to the identifier and feedback bytes of the robots and dynamic command bytes such as omnidirectional velocity, kicking (performed by the solenoid through the kickboard), and ball capture (performed by the dribbler). Checksum refers to the protocol implemented in code to prevent data loss or corruption, which checks if the sum of bytes received is equal to the value of the sum stored before sending.

In addition to checking the sum of the bytes, Small Size uses another method to ensure data reliability: before sending any data packet to the microcontroller, the team's computer sends two 0xFF (255) bytes and the microcontroller only starts the packet read if it received these two bytes earlier. This was inspired by the Dynamixel protocol [6] used in the servos of our humanoid robot. The objective is the implementation in code of a state machine which makes sure that the 32 bytes of each data packet are not being scrambled and, therefore, extinguishes the risk of packets intersecting if any byte is lost due to noise or other communication failures.

Our team's current broadcast station is implemented by an Arduino Uno connected to an nRF24L01+ communication module by jumpers. To improve the strength of our station we designed a new board for this purpose. Because of familiarity with the STM32 family of boards, the NUCLEO-F303 [9] board is used instead of the Arduino Uno as seen in Figure 2.

nRF24L01+ will be controlled by NUCLEO-F303. This embedded system is about one-third the size of the Arduino Uno, but has the same peripheral management capabilities and has a more sophisticated integrated development environment that makes programming STM32 family boards easier.

STMicroelectronics provides a tool to help programming its STM32 family microcontrollers. STM32CubeMX [10] is a program that automates a large part of the embedded code, using an interface that interacts with the programmer and reveals graphically the core of the embedded circuit. Figure 3 shows part of the environment for pinout configuration.

A feature of the STM32 family is the flexibility of functions for the microcontroller pins. Each pin has a list of functions it can assume, allowing different combinations. In addition, the STM32CubeMX also has other environments, such as the environment for clock configuration.

Once the interactive configuration is finished, an automatic code generator yields code in the C/C++ language and the migration to the coding environment is carried out.

Unfortunately, it was not yet possible to test and debug this project and we will try to bring the results in the next TDPs.

Fig. 2: New broadcast station.
Fig. 2: New broadcast station.
Fig. 3: CubeMX pinout environment.
Fig. 3: CubeMX pinout environment.

Software

During 2020 and 2021, we improved our behaviors and finished the critical keeper behavior that is based on the work of the TIGERs Mannheim SSL team [2]. Critical keeper behavior is responsible for positioning the goalkeeper in the ball's travel line if it is coming towards the ally goal, trying to intercept it. When the robot reaches the desired position, it stops there. In case the ball trajectory does not intersect the ally goal, the keeper will stay in the center.

We are currently working in the dynamic ball interception, based on the work of the CMDragons SSL team [1]. Our algorithm attempts to find the best position for an interception, considering two alternatives: the maximum gap algorithm and the minimum time algorithm. For both of them, a sequence of computations is performed for discrete future locations of the ball along its trajectory to compute the optimal intercept location.

Graphical User Interface

With the advancement of the team's strategy, it became necessary to create a more refined tool for testing the implemented behaviours and game strategies. Thus, the team developed a graphical user interface (GUI) using the Qt library with several useful features for testing during development. Among these features, we highlight the replay widget, a feature that, in the future, will allow us to review the events of a game. The current state of our graphical interface may be seen in Figure 4.

Fig. 4: Current state of our GUI.
Fig. 4: Current state of our GUI.

Conclusion and Future Work

We are resuming our work on projects that have been stalled for the last two years due to the COVID-19 pandemic. At the moment, our team has two first generation robots working. Moreover, we intend to build more robots in 2022 using the new design, in order to participate in RoboCup with more than two robots.

About future work, our electronic team is currently finishing the mainboard project and taking a closer look at the kickboard. The last one has presented some unexpected behavior on the board during some competitions and we decided to simulate it. Kickboard's power schematic was reproduced in LTspice simulation software. The purpose of the task was to identify the source of defects and failures on the board. Some anomalous behaviors were observed during the board simulation. Among them, it was found that the DC Boost Voltage Converter was designed for an output of 160V instead of what is stated in the old documentation (180V), which had already been noticed by the team in an experimental way. In addition, the simulation indicated some reverse current peaks, which outside the simulation may mean component burnout or other anomalous behaviors. So we modified some parts of the circuit and hope to better explain the errors correction process in the next TDP.

Currently, our software team is focused primarily in refactoring our code to improve our behavior tree, which is simple compared to the strategies of other teams participating in the RoboCup. Furthermore, until RoboCup, the team intends to finalize the GUI features.

Acknowledgment

We thank ITAEx and ITA for support, our sponsors Cenic, Metinjo, Micropress, Polimold, Rapid, STMicroelectronics and Wildlife. We also acknowledge Altium Company (Altium), Atlassian (Bitbucket), Mathworks (MATLAB), Dassault Systèmes (SolidWorks), JetBrains (CLion) and Virtual.PYXIS for providing access to high quality software through academic licenses and CCM (Centro de Competência e Manufatura) for providing free aluminum to build the robots. Finally, we appreciate RoboFEI, RoboIME, Skuba, and Tigers for opening their projects, especially RoboFEI members, who have helped a lot during the development stage, sharing knowledge and designs.

References

  1. Biswas, J., Mendoza, J.P., Zhu, D., Choi, B., Klee, S., Veloso, M.: Opponent-driven planning and execution for pass, attack, and defense in a multi-robot soccer team
  2. Geiger, M., Carstensen, C., Ryll, A., Ommer, N., Engelhardt, D., Bayer, F.: Tigers mannheim extended team description for robocup 2017
  3. Justa, A., Azevedo, A., Herculano, D., Vacarini, D., Tanomaru, F., Silva, I., Filho, J., Steuernagel, L., Maximo, M., Ângelo, M., Levi, M., Fonte, P., Aki, R., Tonaco, T., Araujo, V.: Itandroids humanoid team description paper for robocup 2019
  4. NordicSemiconductor: nrf24l01+. http://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss\_Preliminary\_Product\_Specification\_v1\_0.pdf
  5. Pucci, D., Jr., F.R., Schunk, C., Braga, C.J., Torres, V., Silva, T., Amaral, V., Silva, A.D.O.D., Jr., J.A.G., Bianchi, R.A.C., Tonidandel., F.: Robofei 2014 team description paper
  6. Robotis: Dynamixel protocol. https://emanual.robotis.com/docs/en/dxl/protocol2/
  7. Ryll, A., Ommer, N., Geiger, M., Jauer, M., Theis, J.: Tigers mannheim team description for robocup 2014
  8. Srisabye, J., Hoonsuwan, P., Bowarnkitiwong, S., Onman, C., Wasuntapichaikul, P., Signhakarn, A., e.a.: Skuba 2009 Team Description of the World RoboCup 2008
  9. ST: Stm32 nucleo-32 boards mb1180 manual. https://www.st.com/resource/en/user\_manual/um1956-stm32-nucleo32-boards-mb1180-stmicroelectronics.pdf
  10. ST: Stm32cubeide. https://www.st.com/en/development-tools/stm32cubeide.html
  11. ST: Stm32h742bi. https://www.st.com/en/microcontrollers-microprocessors/stm32h742bi.html