Nao Devils Team Description Paper for RoboCup 2023 – Standard Platform League –
Arne Moos, Aaron Larisch
Robotics Research Institute, TU Dortmund University
https://naodevils.de/ · https://github.com/NaoDevils/CodeRelease · https://github.com/bhuman/BHumanCodeRelease/releases/tag/coderelease2015 · https://github.com/taskflow/taskflow · https://ls12-www.cs.tu-dortmund.de/daes/media/documents/theses/larisch2020.pdf · https://github.com/NaoDevils/NaoImage · https://cmake.org/ · https://conan.io/ · https://github.com/NaoDevils/conan-packages
Abstract The Nao Devils is a team from Robotics Research Institute, TU Dortmund University, competing in the Standard Platform League. This paper describes the team's contributions and framework based on B-Human's 2015 code release, including developments in motion, perception, behavior, and infrastructure, with results from recent competitions.
Team Information
Team name: Nao Devils
Team leader(s): Arne Moos and Aaron Larisch Team contact email address: [email protected]
Team website URL: https://naodevils.de/
Country of origin: Germany
University/company affiliation(s): TU Dortmund University
Code Usage
The robotic framework used by the team Nao Devils[1] is based on the code release 2015 of team B-Human[2]. We want to thank the team B-Human for their great work developing their framework, which provides the base for our own developed modules. Compared to the 2015 code release of team B-Human we changed or adapted nearly all main and many minor modules with own contributions and further developed the whole infrastructure significantly. In addition, we have been using the UKF developed by Team Berlin United for IMU filtering since 2018.
Own Contribution
The contributions mentioned in this section are mainly based on developments in the last 3 years and furthermore only outline our current plans for RoboCup 2023.
Motion
Dynamic Walk Speed Calibration Based on various factors, such as number of falls, upper body oscillation and so on, we have developed a Dynamic Walk Speed Calibration, which is persistently stored on the robot and over time settles at a value where the robot walks as fast as possible, but not too fast that it can no longer compensate for any possible joint disturbance.
Fall Down Protection & Stand-up We have developed our own Fall Down Protection based on discussions with Team B-Human. Together with optimized stand-up movements, which can now also be aborted based on the upper body angle, it now provides the foundation for safe handling of the Nao.
Safe Dive Motions We have further developed our dive motions so that they can now be executed very smoothly, but still at a high speed. This has become an important component for responsible handling of the Nao, especially when using foreign robots.
Expected Developments for RoboCup 2023 For RoboCup 2023, one of the things we are working on for motion is joint synchronization, which is supposed to synchronize the maximum speeds of the joints and thus react to them statically (given by physical parameters) as well as dynamically (one joint is currently slower than the others). We also want to explore the possibility of using Model Predictive Control for walking instead of the LQR controller currently in use. To enable the precise kicking, which is being used more and more throughout the games and also in the DBHC, we are working on the development of an adjustable kick with adjustable kick strength.
Perception
Ball Detector We realized that the ball patches from our preprocessing were not always perfectly centered on the ball's center point, so we advanced our neural network for ball classification to a ball detector. In addition to the classification, the X and Y position of the center of the ball are now detected. This significantly improved the position accuracy of the ball.
Robot Classifier Similar to our ball classification, we have now also developed a neural network for robot classification, which can classify image sections from our preprocessing (a YOLO-type neural network) and decide whether there is a robot on it or not. This has improved our precision enormously and our previously applied YOLO-type neural network, on the whole image, can now be used mainly for hypothesis generation, which also increased the detection rate.
Jersey Color Detection Since we had a very poor jersey color identification, we have developed this further. Now, some pixels from the rectangle on the approximate height where the jersey should be are randomly selected. These pixels are then classified into the different colors using different color space transformations and adjustments and afterwards, a majority voting is performed.
Whistle Detector For our whistle detection, we switched from a classical approach, which was based on peaks and overtones in the "correct" frequencies, to a neural network. The neural network consists of several 1D convolutions and a fully connected layer at the end. It gets as input a 1024 element Hamming window, which was then sent through a fast fourier transformation. Afterwards, it is checked if the whistle was detected in several consecutive windows to avoid false detections.
Expected Developments for RoboCup 2023 In the area of perception, we want to move even more to the use of neural networks to recognize objects that are still missing or currently still processed in a classical way. These include the robot's orientation, the robot's jersey colors, goal post detection, and penalty crosses. In addition, we want to develop real-time position recognition, which we can then use in the Visual Referee Challenge as well as for gesture recognition among the robots. Regarding the whistle detection, we would like to develop a robust direction and distance detection, as the whistle is now being heard more and more often and is taking on an increasingly important role.
Behavior
Event-based Communication In order to comply with the current ruleset, we developed an event manager that forwards team communication messages based on a reason (e.g., player moved, new role assignment, symmetry update, ...) and applies rate limiting.
Kick Manager During behavior development, we don't want to deal with the exact kick selection, positioning, and execution in different parts of the code. To reduce this complexity, we developed a kick manager that evaluates the best kick (including walk kicks, kick engine kicks, and dribbling) and the target position at the same time considering the available time for the execution and obstacles in its way.
Expected Developments for RoboCup 2023 Asides general behavior development, improving the kick manager and adjustments to the team communication regarding the reduced message size, we are developing a new, more flexible head control that allows a deeper understanding about the internal states as well as a more reactive and situative perception of the environment.
Infrastructure
Multi-core Execution We integrated a parallel task programming system called Taskflow[3] into the framework that is able to execute independent parts of our module graph in parallel using multiple cores on the Nao V6[4].
Custom Firmware Image We developed a script that creates custom firmware images[5], which can be flashed using the official update mechanism of the Nao and reduces the complexity and required time to setup new robots. Furthermore, we provide a script that allows to generate a minimal Ubuntu-based system image, which allows easier adjustments to the team's needs and gives more control.
Dependency Management In order to reduce the complexity maintaining a multi-platform C++ project and adding 3rd party libraries to it, we integrated the build system generator CMake[6], the package manager Conan[7], and some custom recipes[8] into our framework. That allows to remove all external libraries from the repository and automates downloading compiled versions or building them when required depending on the platform.
Automatic Calibration Since calibrating robots by hand was a very timeconsuming task in the past and became more important when playing remotely during the Corona crisis, we improved our camera matrix calibration, which was only partially automated before, and implemented a body angle calibration. Both are fully automated now and can be activated using the standard button combination. First, we calibrate the upper body angle in order to compensate differences in the robot's joints and make it walk stable. Second, the robot walks to a predefined position on the field and calibrates its lower and upper camera by ensuring that the projections of the detected field lines into the robot's coordinate system are either perpendicular or parallel to each other.
Past History
The results in the main competition (5 vs. 5) of the last years can be seen in table 1.
In general, the Nao Devils also participated in most of the Technical Challenges in recent years. For RoboCup 2021 we ranked 2nd in the overall ranking of the Technical Challenges with being 4th in the Obstacle Avoidance Challenge, 2nd in the Passing Challenge, 3rd in the 1vs1 Challenge and 2nd in the Autonomous Calibration Challenge. In the recent RoboCup 2022, we also ranked 2nd in the overall ranking of the Technical Challenges with being 2nd in the 7 vs. 7 Challenge, 3rd in the Dynamic Ball Handling Challenge and 3rd in the Open Research Challenge.
Throughout the year, we take part in several local workshops and events such as our own workshop RoDeo in Dortmund, Germany or the RoHOW workshop in Hamburg, Germany.
In addition to RoboCup 2023, we plan to participate in the GORE 2023 end of April in Hamburg, Germany.
Table 1. Results in the 5 vs. 5 main competition of the Nao Devils from 2019 onwards.
| Competition | State | Ourselves | Opponent | Score |
|---|---|---|---|---|
| German Open 2019 | Round Robin | Nao Devils | B-Human | 0:5 |
| German Open 2019 | Round Robin | Nao Devils | Berlin United | 2:1 |
| German Open 2019 | Round Robin | Nao Devils | Bembelbots | 4:0 |
| German Open 2019 | Play-in | Nao Devils | HULKs | 1:5 |
| RoboCup 2019 | First Round Robin | Nao Devils | NTU RoboPAL | 7:0 |
| RoboCup 2019 | First Round Robin | Nao Devils | Berlin United | 1:0 |
| RoboCup 2019 | Second Round Robin | Nao Devils | TJArk | 6:0 |
| RoboCup 2019 | Second Round Robin | Nao Devils | Dutch Nao Team | 9:0 |
| RoboCup 2019 | CC Quarterfinals | Nao Devils | HULKs | 2:1 |
| RoboCup 2019 | CC Semifinals | Nao Devils | Nao-Team HTWK | 0:8 |
| RoboCup 2019 | CC Third Place | Nao Devils | rUNSWift | 2:11 |
| GORE 2021 | Round 1 | Nao Devils | HTWK Robots | 2:4 |
| GORE 2021 | Round 2 | Nao Devils | B-Human | 0:10 |
| GORE 2021 | Round 3 | Nao Devils | R-ZWEI-KICKERS | 10:0 |
| GORE 2021 | Round 4 | Nao Devils | Berlin United | 8:0 |
| GORE 2022 | Round 1 | Nao Devils | HTWK Robots | 0:4 |
| GORE 2022 | Round 2 | Nao Devils | HULKs | 10:0 |
| GORE 2022 | Round 3 | Nao Devils | SPQR Team | 2:1 |
| GORE 2022 | Round 4 | Nao Devils | RoboEireann | 2:2 |
| GORE 2022 | Round 6 | Nao Devils | B-Human | 0:7 |
| GORE 2022 | Quarterfinals | Nao Devils | Bembelbots | 1:2 |
| RoboCup 2022 | Round 1 | Nao Devils | UT Austin Villa | 8:0 |
| RoboCup 2022 | Round 2 | Nao Devils | Bembelbots | 4:0 |
| RoboCup 2022 | Round 3 | Nao Devils | B-Human | 0:4 |
| RoboCup 2022 | Round 5 | Nao Devils | HULKs | 1:2 |
| RoboCup 2022 | Quarterfinals | Nao Devils | HULKs | 3:2 |
| RoboCup 2022 | Semifinals | Nao Devils | HTWK Robots | 0:4 |
| RoboCup 2022 | Third Place | Nao Devils | rUNSWift | 0:1 |
Impact
The Nao Devils are actively organizing events/workshops for the SPL. With the (irregular) organization of the RoDeo as a workshop in Dortmund, Germany and as co-organizer of the German Open Replacement Event series, we have a great influence in preparing the teams for the annual RoboCup.
In addition, we have advanced the live-streaming of SPL games and together with Berlin United, the games can be viewed live with game overlays for the spectators and saved in high quality for the teams. A unified system is expected to yield live statistics for the games in subsequent years.
Also, in the area of custom firmware images for the Nao, our work led to teams being able to easily create binary images during the corona pandemic to quickly install their code on unknown robots, which could then be used without the team being on site.
With a perennial member in the Technical Committee, the team helps keeping the league moving forward.
In the field of education, we offer each year a one-year lasting project group in the master of computer science (25 credit points), in which the students are introduced to the Nao and have to master a RoboCup-related project with it. Afterwards, the students usually remain part of the team until they graduate and some of them also write their master's theses with us.
References
- https://github.com/NaoDevils/CodeRelease
- https://github.com/bhuman/BHumanCodeRelease/releases/tag/coderelease2015
- https://github.com/taskflow/taskflow
- https://ls12-www.cs.tu-dortmund.de/daes/media/documents/theses/larisch2020.pdf
- https://github.com/NaoDevils/NaoImage
- https://cmake.org/
- https://conan.io/
- https://github.com/NaoDevils/conan-packages