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

The Nao Devils team at the beginning of the paper.
The Nao Devils team at the beginning of the paper.

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.

Fig. 1. The Nao Devils team members at RoboCup 2022. From left to right: Mrunal Hatwar, Arne Moos, Leon B., Dominik Brämer, Joël Haubold, Lisa Dasmann, Jonas Dauer, Mahdokht Mohammadi, Henri Gründer, Simon Koschel, Alexander Voß, Alicia Gayda, Thomas Klute, Aaron Larisch and Diana Kleingarn. (Missing: Steven Pieper, Ingmar Schwarz)
Fig. 1. The Nao Devils team members at RoboCup 2022. From left to right: Mrunal Hatwar, Arne Moos, Leon B., Dominik Brämer, Joël Haubold, Lisa Dasmann, Jonas Dauer, Mahdokht Mohammadi, Henri Gründer, Simon Koschel, Alexander Voß, Alicia Gayda, Thomas Klute, Aaron Larisch and Diana Kleingarn. (Missing: Steven Pieper, Ingmar Schwarz)

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

  1. https://github.com/NaoDevils/CodeRelease
  2. https://github.com/bhuman/BHumanCodeRelease/releases/tag/coderelease2015
  3. https://github.com/taskflow/taskflow
  4. https://ls12-www.cs.tu-dortmund.de/daes/media/documents/theses/larisch2020.pdf
  5. https://github.com/NaoDevils/NaoImage
  6. https://cmake.org/
  7. https://conan.io/
  8. https://github.com/NaoDevils/conan-packages