RoboIME: Igniting Innovation, Shaping the Future in RoboCup 2024
Henrique Barreto, Lucio E. Horie, Enzo G. Frese, Renato da P. Alves, Isabel C. de Freitas, Marcos C. Antunes, Eduardo Baldi, Ebert H. V. Melo, Raquel Belchior F. N., Antônio Plácido C. C. F., João Pedro Gomes C., J. V. Neves Duarte, A. H. Rocha e Silva, V. Henequim C., P. H. Cantergiani C., Gustavo L. Alves, Vinicius de F. L. Moraes, Gabriel M. Lima, Carla S. Cosenza, Hebert Azevedo Sá, Luiz R. L. Rodrigues, Paulo F. F. Rosa
Instituto Militar de Engenharia, Rio de Janeiro, Brasil
Abstract This paper describes the electronic, mechanical, and software designs developed by the RoboIME Team to join the RoboCup 2024. The overall concepts are in agreement with the rules of Small Size League 2024. This is the tenth time RoboIME participates in the RoboCup tournament.
1 Introduction
RoboIME is a Small Size Soccer League team from IME (Instituto Militar de Engenharia), and this is the 18th time the team participates in competitions. The team has already gotten good results on previous occasions: (i) first place in the Latin American Robotics Competition 2017 (LARC 2017); (ii) second place in seven different competitions, RoboCup Brazil Open 2011, LARC 2012, RoboCup 2018 (division B), LARC 2018, RoboCup 2019 (division B), LARC 2019 and RoboCup 2022 (division B); (iii) third place in LARC 2022.
All students who work on the SSL project are members of the Laboratory of Artificial Intelligence, Robotics, and Cybernetics (LIARC) at IME. The team's previous works were used as reference [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 last semester since our TDP for RoboCup 2023 has detailed explanations on our previous system. The article is organized as follows: software in section 2, embedded electronics in section 3, and mechanical design in section 4. Conclusions are discussed in section 5.
Robot Specifications
| Robot version | v2024 |
|---|---|
| Dimension | Ø177 x 147mm |
| Total weight | 2,5 Kg |
| Max. ball coverage | 8.5 % (Vol) |
| Locomotion | Nanotec DF45L024048-E 65W, Direct Drive |
| Wheel diameter | 60 mm |
| Encoder | Nanotec incremental embedded DF45L024048-E |
| Dribbling motor | T-Motor F60 Pro IV 1750KV |
| ESC | B-G431B-ESC1 |
| Kicker charge | 3600 µF @ 244 V |
| Straight kick speed | 9.57 m/s |
| Microcontroller | NUCLEO-H723ZG |
| Sensors | Encoders, Gyroscope, Accelerometer, Compass, Camera, NFC |
| Communication link | 2 Semtech SX1280 @1.3 MBit/s, 2.300 - 2.555 GHz |
| Compute module | Raspberry Pi 5 + with two forward oriented camera |
| Power Supply | Li-Po battery, 22.2 V nominal (6S1P), 1300 mAh |
2 Software Project
The past year, RoboIME made significant changes to its software, particularly in the strategy domain. The primary focus was on refining the positioning of attacking robots in order to create more scoring opportunities. Additionally, significant adjustments were made in the defense team, introducing new logic for both the goalkeeper and barrier.
In line with these improvements, the utilization of two cameras was introduced to enhance the team's vision capabilities. These cameras will provide accurate data for decision-making during gameplay.
Moreover, there were a few adjustments on the robot control, especially into turning maneuvers, aimed at improving our turn-and-shoot skill. Lastly, in the vision processing, updates were made to our Kalman filter as well.
2.1 New Attack Logic
One of the main problems with our old attack strategy was that our robots were always fixed on the same specific position no matter how many robots we were playing with and they would not place themselves in a good spots to receive a pass either.
Furthermore, the way we evaluated the positioning of allied robots was not accurate. This evaluation is the decision factor for the robot that possesses the ball to either shoot in the goal or decide to make a pass.
For this reason, inspired by the old CMDragons strategy [4], we created 2 heat maps. Both are built using a function that evaluates some position P = (x,y) into a 0 to 1 number.
The first function is called EvaluatePass(x,y) and it calculates the given position by multiplying the result of 3 criteria:
- The probability of the ball not being intercepted by an adversary robot after the pass (this one was already implemented and it was our only criterion for evaluating the pass [1])
- There is an open angle to shoot into goal;
- The Ball-Point-Goal angle is narrow enough so that a one-touch shoot to goal is possible (1 if it's possible, 0.8 otherwise);
- The distance of the pass is within a certain range (1, if it is and 0 otherwise).
The second function is called EvaluateShoot(x,y) and have only 2 criteria:
- There is an open angle to shoot into goal just like in EvaluatePass;
- The Probability of the ball being intercepted by some adversary robot, except the goalkeeper, after a shot to goal (it's similar to EvaluatePass but the perspective of the point being analised is the ball and not the target).
The result of the heat map is shown in Fig. 2.
2.1 New Attack Logic (continued)
The sub optimal position of the shooter becomes evident as it is located within the shadow cast by the adversary defense robots in the rightmost heat map. Consequently, the decision is made to pass the ball to the attacking robot situated in the well-evaluated light green spot on the left field, as indicated by the almost white evaluation in the middle heat map.
In addition to the heat maps, another functionality that was implemented into the attack strategy was the attacking zones. They are disjunctive areas that covers the entire field and are fixed for each number of attacking robots. Furthermore, each region has an associated point called Guard Position (indicated by the red triangles on Fig. 3).
2.1 New Attack Logic (conclusion)
Based on these functionalities the attack strategy still follows our Skill Tactics Play (STP) architecture [1], but now there are 3 main plays: Normal Game, Prepare Pass and Pass Game.
The Normal Game play is performed by admitting two main roles: The Shooter and the Attacker. The shooter is chosen based on the region where the ball is currently located. Then it reaches the ball, or go for interception if it's moving, while the remaining Attackers stay in the Guard Position.
Then, the Prepare Pass play holds for just a small amount of time in which the attacking robots perform a search for the best evaluated position in their zones. It's important to point out that the heat map is just a concept because calculating the evaluation for every position in the field is too costly. So the search is actually fulfilled by sampling a fixed amount of points in each zone and choosing the better evaluated.
Finally, either the Normal Game or the Pass Game is started. The first one if The Shooter evaluation is higher than any other Attacker and the second one otherwise. If the Normal Game is started, the Prepare Pass will not be started until the a shot is made or the ball zone changes.
2.2 New Defense Logic
For the new defense, many efforts were made in two different roles: the goalkeeper and the defensive barrier. A lot of geometry was employed to find the ideal way to defend the goal, and some basic rules were applied as well. Firstly, the robots cannot collide with other ally robots. Secondly, while in the barrier defending the goal, the robot cannot stray far from the keeper's area unless it needs to shoot the ball.
In summary, the goalkeeper, when in danger, is always at the intersection between the bisector of the triangle formed by the most dangerous adversary and the two corners of the goal, as shown in Fig. 4.
The barrier is always on the bisector line formed by the straight line of the goalkeeper's bisector and the straight line of the respective corner of the goal, as depicted in Fig. 4. If new robots are added to the barrier, in addition to the minimum two required for this configuration, they will only remain close to them.
2.3 New Keeper's play
In our system, we have made slight adjustments to the goalkeeper's intelligence, and some of it was focused on countering first-touch kicks by the opposing team. Specifically, when the ball is kicked to an angle outside the goal, our code triggers a designated play. This play involves identifying the next opponent in the ball's path and promptly adjusting its positioning to narrow the angle of this attacker, using the new defense logic.
A potential concern arises when an opposing attacker positions themselves behind the ball for the kick. To address this, if no robot is detected along the expected path of the ball, it once again employs the new defense logic, but this time, to swiftly close the angle of the ball, preventing the attacker from exploiting the open space.
2.4 Robot Control
As described in RoboIME's previous work [1], our control system works fine when the robot is following a straight line. However it was not quite good when making lateral movements like describing a circumference, which is required for our turn-and-shoot skill
As a result, a new state was created only for the control of turning movements. In this state, the target goal is interpreted not as the end point of the trajectory but as the center of the translation. This movement is then executed with a fixed radius R and a fixed angular velocity Ω.
To achieve this, a perpendicular velocity Vtang = Ω · D is sent and then it is summed up with two feedback velocities: a radial velocity Vrad an angular velocity ω. Vrad corrects the distance to the center D, so that it comes closer to R, and ω corrects the robot orientation to face the center point while moving. Both of the feedback velocities are calculated with a PID controller, which makes the robot correct its trajectory very quickly.
2.5 Kalman Filter
There were some issues with the estimated values obtained from the SSL-Vision software, particularly regarding the velocity estimation for field objects, robots, and the ball. Consequently, the Kalman filter was reimplemented in the code with corrections to the previous version.
First, based on [2], the discrete model state-space representation can be described as:
$$\mathbf{x}(k+1) = \mathbf{\Phi}\mathbf{x}(k) + \mathbf{\Gamma}\mathbf{u}(k) + \mathbf{\Gamma}_{\mathbf{1}}\mathbf{w}(k)$$ (1)
with measurements:
$$\mathbf{y}(k) = \mathbf{H}\mathbf{x}(k) + \mathbf{v}(k)$$ (2)
- x is the state vector;
- y is the output vector;
- u is the control vector;
- w is the normally distributed process noise with covariance Q;
- v is the normally distributed measurement noise with covariance R.
With this model, the following algorithm can be used:
- a) Time update (prediction):
- Project the state ahead: ¯x(k) = Φˆx(k − 1) + Γu(k − 1);
- Project the covariance ahead: M(k + 1) = ΦP(k)ΦT + Q;
- b) Measurement update (correction):
- Compute the Kalman gain: K(k) = P(k − 1)HT (HP(k − 1)HT + R) −1 ;
- Update state estimate: ˆx(k) = ˆx(k − 1) + K(k)(y(k) − Hˆx(k − 1));
- Update the covariance: P(k) = (I − K(k)H)P(k − 1);
- Q is the process noise covariance;
- R is the measurement noise covariance.
It is worth noting that to filter and estimate the data, it is necessary to determine the model, the Q and R matrices, in addition to the initial values, the P and x matrices. The latter two provide a better estimate when starting to filter. More detailed descriptions can be found in [2].
2.6 Robot Camera
The new generation of robots includes two cameras for more accurate kicks in general. According to Zaarane et al. [3], the distance between the robot and an object h can be determined using equation 3, which considers the viewing angles of both cameras, the distance between the cameras, and the desired object positions in both cameras.
$$h = \frac{A\sin\left(P_2 \cdot \frac{\omega_2}{H_2} + \beta_2\right)\sin\left(P_1 \cdot \frac{\omega_1}{H_1} + \beta_1\right)}{\sin\left(180^\circ - (P_2 \cdot \frac{\omega_2}{H_2} + \beta_2 + P_1 \cdot \frac{\omega_1}{H_1} + \beta_1)\right)}$$ (3)
Where:
- A is the distance between the two cameras;
- ω1 and ω2 are the viewing angles of the two cameras;
- H1 and H2 represent the number of horizontal pixels of the two cameras;
- P1 represents the distance in pixels from the object's centroid to the end of the overlap area in the left camera, and P2 represents the distance in pixels from the object's centroid to the beginning of the overlap area in the right camera;
- β1 and β2 are the angles as illustrated in Fig. 7.
3 Electronics Project
Our RoboCup SSL team has undergone a significant electronic overhaul this year, emphasizing innovation and performance. Transitioning to the NUCLEO-H723ZG platform from the STM32F407 microcontroller boosts computational power and real-time processing, enhancing decision-making and task execution. Integration of the Raspberry Pi 5, dual-camera setups, motor brushless technology, ESCs, NFC, a buzzer system, and a new kicker mechanism revolutionizes our robots' perception, interaction, and performance on the field.
The Raspberry Pi 5 expands computational capabilities and connectivity for advanced image processing, sensor fusion, and machine learning, enhancing autonomy and adaptability. Dual-camera setups improve sensory and depth perception for precise navigation. Motor brushless technology with ESCs enhances agility and efficiency in locomotion, while NFC enables precise robot identification.
Additionally, a buzzer system improves situational awareness and communication, while the new kicker mechanism enhances ball handling and shooting precision for enhanced offensive and defensive capabilities. Committed to redefining performance in the RoboCup SSL arena, our team embraces electronic innovation and integration. With advanced capabilities, we confront competition challenges with determination, ingenuity, and teamwork, setting new standards of excellence in robotic mastery.
3.1 Firmware
Our firmware architecture is rooted in C++ object programming, fostering modularity, scalability, and maintainability in our robotic systems. The MotorControl Workbench efficiently generates ESC firmware, ensuring precise motor control and reliable performance. This standardized approach facilitates seamless integration of new features, empowering our robots with the agility and responsiveness needed for success in the RoboCup SSL competition.
For the Raspberry Pi 5 firmware development, we utilize Python and OpenCV, enabling swift prototyping and implementation of advanced image processing algorithms. Python's simplicity and rich libraries accelerate development, enhancing our robots' capabilities further.
3.2 Robot Communication
Building upon the communication system enhancements implemented following the 2022 competition, we further bolstered our capabilities for the 2023 event. This iteration featured the strategic deployment of two SX1280 modules [9], one dedicated to the efficient transmission of data and the other tasked with its reliable reception. This dual-module configuration, in conjunction with targeted software optimizations and an upgraded antenna, effectively addressed previous challenges such as a 30ms delay in communication for each robot. The resultant communication performance improvement was demonstrably significant, with a reduction in communication delays.
3.2 Robot Communication (continued)
In addition to the intricate communication system, our team has developed a cutting-edge communication board featuring a high-resolution screen and realtime feedback mechanisms. This innovative board serves as the central hub for receiving live updates from our robotic players, delivering crucial insights into their battery levels, kick charge statuses, and signal connections. The integration of this data empowers our team with invaluable information on the positioning, strategies, and performance metrics of our robot during matches. With the aid of the high-resolution screen, we can visualize and analyze critical game data promptly, allowing us to make informed decisions and optimize our gameplay tactics for maximum effectiveness on the field.
3.3 Control
The control system ensures precise and agile performance for robotic soccer players. It combines the B-G431B-ESC1 Electronic Speed Controller (ESC) with DF45L024048-E motors, using Hall sensors within the ESC and encoders interfaced with the STM32H723ZG microcontroller to regulate motor speed and position. This setup provides real-time feedback and control, enabling agile navigation and swift responses to game scenarios.
PID control algorithms, managed by the STM32H723ZG microcontroller, govern motor speed and position. The firmware orchestrates PID execution and communication with ESCs and encoders. Simulations in LabVIEW validate and fine-tune control algorithms for optimal performance under diverse game conditions. With robust hardware and refined control algorithms, our team promises unmatched precision and agility on the soccer field.
3.4 Board Designs
This year, our team is using two main boards: the Kicker and the Motherboard. The Kicker manages kicking, ensuring precise ball handling. The Motherboard coordinates communication among components like five ESCs, a Raspberry Pi for decision-making, and an STM32 Nucleo-144 for real-time control. This integration streamlines control, allowing robots to execute maneuvers and strategies with agility and precision.
3.4.1 Main Board
Our SSL robot's core is the Motherboard [14], overseeing gameplay intricacies. It employs a Raspberry Pi for high-speed camera processing and decision-making, enabling real-time field analysis. Hosting five ESC connectors, it ensures precise motor control for smooth movement. It also accommodates motor connectors for propulsion system integration. Two SX1280 antenna modules enable reliable wireless communication for team coordination. For user interaction and feedback, it includes an ID switcher, OLED screen, and buzzer. Dual voltage regulators (3.3V and 5V) stabilize power distribution, enhancing system reliability under dynamic conditions.
3.4.2 ESCs
For optimal reliability and compactness, our team has opted for the B-G431B-ESC1 ESC (Electronic Speed Controller). This selection was made after careful consideration of various factors, including performance, durability, and size constraints. The ESC offers exceptional reliability, ensuring stable and precise motor control during gameplay. The combination of the B-G431B-ESC1 ESC and our custom board adaptor [12] makes it well-suited for integration into our robotic platform, allowing for efficient use of space and minimal weight impact. With this combination, our team can confidently navigate the fast-paced dynamics of SSL RoboCup matches, delivering consistent and responsive performance on the field.
3.4.3 Kicker Board
The new kicker board represents a significant advancement in our design strategy for RoboCup 2024. Moving away from the modular approach, we have opted for a more integrated and robust solution. Recognizing that motor acceleration often led to module disconnections from the motherboard, compromising system performance and reliability, we have now dedicated a single board level exclusively for the kicker. We are utilizing the LT3751 to ensure stable and efficient power supply. Additionally, we have incorporated more durable buttons and sturdier connectors to enhance the overall durability and resilience of the system during intense competition scenarios. These improvements not only strengthen our team's performance but also showcase our commitment to innovation and technical excellence in the competitive landscape of RoboCup.
4 Mechanical Project
The mechanical project went through some changes when compared to the previous year's version. Currently, the team is focusing on improving not only the robot's efficiency and robustness but also the ease of maintenance. Besides that, RoboIME is constantly seeking new solutions for the project and through much research and information exchange with other teams, some changes were made in the mechanical project. The developments and the planning for RoboCup 2024 are described below.
4.1 Dribbler
To address deficiencies in the dribbling mechanism observed during the 2023 RoboCup and LARC, significant enhancements have been made. By introducing mobility and damped movement, the mechanism now decelerates the ball upon contact, reducing ricochets. Moreover, inspired by other teams' techniques, the design now features three contact points for increased stability during play. Preliminary tests indicate improved performance with these modifications.
4.2 Omni Wheels
The increased power of the new robot's motor enabled modifications to the omni wheels, enhancing its mobility. The wheel diameter was enlarged(45mm to 60mm) and the number of smaller wheels augmented(15 to 24) (see Fig. 16), contributing to smoother and more efficient movement. Furthermore, the previous gear transmission was replaced with a direct drive system to address the undesirable backlash present in the earlier design. This modification ensures precise and responsive control of the robot's motion (see Fig. 16).
4.3 New Solenoid Supports
Last year we faced some problems with the kick system due to the breaking of the 3D-printed solenoid supports in both RoboCup 2023 and LARC 2023. To address this issue, for 2024 we made some changes to the design and manufacturing of the supports. We still use 3D printing technology to create them, but by pintroducing a new mutually supported configuration, we ensured greater resilience and stability for the apparatus. These enhancements not only mitigate breakage risks but also enhance overall performance, positioning us favorably for competition.
4.4 New motor mount
In our quest for excellence, we've upgraded our robot's motor system based on insights from RoboCup 2023 and LARC 2023. We've integrated larger, high-torque motors for enhanced speed and responsiveness. Additionally, we've introduced a groundbreaking direct drive torque transmission system, eliminating traditional gears to optimize power delivery and reliability in competitive robotics environments.
4.5 Planning for RoboCup 2025
For RoboCup 2025, we aim to enhance our robot's spatial awareness system by incorporating flat coils into our kicking system. This adjustment is intended to optimize the internal space within our robots while enhancing their overall performance.
5 Conclusions
For this competition, our goal is to consolidate the progress made in previous years by experimenting with changes in the software project, allied with new electrical and mechanical projects. Our software went through significant improvements through the development of a new navigation algorithm, kick logic, and attack strategy. In electronics, aside from enhancing the firmware, we embarked on a comprehensive redesign of the entire system. Moreover, the new mechanical project incorporates omni wheels, enhancements to the kick system, a new dribbler, and optimized positioning for batteries and motors. With these enhancements, we anticipate delivering superior performances and achieving excellent results at the RoboCup 2024 tournament.
5.1 Acknowledgement
This research was partially supported by the Brazilian Army's Department of Science and Technology (DCT), Fábrica de Material de Comunicações e Eletrônica (FMCE/IMBEL), and the IME Alumni Association. We extend special thanks to all former members of RoboIME. Without their invaluable support, this team would not be possible.
References
- Felipe W. V. da Silva, Antônio S. G. Pereira, Vinicius de F. L. Moraes, Mayara R. Mendonça, Gabriel M. Lima, Henrique Barreto, Iasmin C. Mathias, Lucio E. Horie, Enzo G. Frese, Pedro V. Rocha, Renato da P. Alves, Marcos C. Antunes, Léo V. C. Vasconcelos, Isabel C. de Freitas, Arthur B. S. de Souza, Marcos C. Antunes, Eduardo Baldi, Ebert H. V. Melo, Raquel Belchior F. N., Antônio Plácido C. C. F., João Pedro Gomes C., Alberto F. de Lima. L. S., Franciele Sembay, Roboime: On the road to robocup 2022.
- Gene F. Franklin, J. David Powell, and Michael L. Workman. Digital Control of Dynamic Systems. Ellis-Kagle Press, Estados Unidos da América, 3 edition, 1998.
- Abdelmoghit Zaarane, Ibtissam Slimani, Wahban Al Okaishi, Issam Atouf, and Abdellatif Hamdoun. Distance measurement system for autonomous vehicles using stereo camera. Array, 5:100016, 2020.
- Stefan Zickler, James Bruce, Joydeep Biswas, Michael Licitra, and Manuela Veloso. Cmdragons 2009 extended team description.