Team Description Paper

Patrick Göttsch, Johannes Blum, Ole Felber, Joelle Hohwiller, Jonas Holz, Phillip Kammradt, Lars Knäpper, Rasmus Mecklenburg, Konrad Nölle, Maik Rebaum, Luis Scheuch, Maximilian Schmidt, Julian Schuler, Lisa Schulz, Vivienne Schwabe, Hendrik Sieck, Chanakarn Ariyanukooltorn

Hamburg University of Technology, Am Schwarzenberg-Campus 1, 21073 Hamburg

https://www.hulks.de · https://github.com/hulks/


Abstract

1 Team Information

Team Information

Team Name HULKs
Team Leader Patrick Göttsch
Team Contact Email [email protected]
Team Website https://www.hulks.de and https://github.com/hulks/
Country of Origin Germany
University Affiliation Hamburg University of Technology

2 Code Usage

No code of other teams is used in the HULKs codebase. For inference of our neural networks, we depend on the CompiledNN library of B-Human. Our walking engine is inspired by rUNSWift concepts and is influenced by comments from Philip Reichenberg at B-Human. Some of our standup motions are based on files from the NAO Devils. BerlinUnited concepts served as inspiration for our energy saving processes.

3 Own Contributions

We use an improved ball search allowing the robots to find the ball more quickly and more effectively after they lose it. Each robot creates a heatmap of the field with potential ball positions based on the detected ball. If the ball is lost the offensive robots will check the potential ball positions first, because the probability of it being near the point where it was last seen is very high. If the robot does not detect the ball, the heatmap cannot be updated and in this case our robots will go back to the old search behavior where they walk to predefined positions and spin in order to find the ball.

3.2 Vision

We strive towards a vision pipeline that requires no manual tuning to reduce time requirements on events.

Robot Detection

We develop a novel detection network based on the YOLO architecture. We modify the backbone architecture of the network to achieve faster inference speeds on the NAO CPU. The neck and head size is reduced and uses lighter convolutions to improve inference speed even more. The detection network allows us to improve our robot detection and is mainly used for obstacle avoidance. In future we plan to use the results of the network for team color detection and implement passing of the ball.

Semantic Segmentation

To provide a robust line detection that works in many different light conditions without tuning, HULKs investigate training semantic segmentation networks for line detection based on simulated data from BHuman. For now the results are not satisfactory enough to be used on the robot in a game situation.

Line Detection

Using the filtered segments, field lines are detected by looking for white segments of appropriate length. For each segment the brightness gradient at each end is calculated using a Sobel operator. The segment is discarded if the gradients are not sufficiently steep upwards and downwards, i.e. the segment borders do not lie on opposite flanks of a field line.

The centers of segments are projected on the ground as candidate line points. On all candidate line points we run a RANSAC line fitting algorithm in ground coordinates.

3.3 Walking

We implement a new walking engine that improves readability and extensibility over the previous implementation. It has a state that is only updated on a step-by-step basis, which is used every cycle to compute all joints based on the current time. During the implementation, we were able to identify and resolve numerous bugs, resulting in a significantly smoother walking style.

Walking Analysis

Improving our walking and tuning parameters has historically been educated guesswork at best. Differences in field elasticity at RoboCup 2023 compared to our lab conditions as well as large gaps in robot hardware condition often leads to hour long work in tuning parameters individually for each robot to make them competitive. In order to reduce this work and obtain an objective understanding of our walking quality we have an ongoing research project with the intention of finding suitable metrics to analyze our walking engine. Initial testing shows that even such a simple thing as tracking the center of mass can lead to a better understanding of necessary torso offsets to balance the NAO better. Amongst other metrics to be analyzed are energy consumption and joint heat production.

3.4 Framework

Our framework is the first to be written in a modern language while also being fully open-source in the SPL league.

Support of other Teams

In addition to developing our own code, we actively give support to various teams, including Dutch Nao and Rinobot-Jaguar, in building their own robotic code on top of our framework. We maintain contacts with the teams, offering advice, providing guidance, and addressing their challenges through discussions and online meetings. In doing so, it has also helped us learn something alongside them.

Recording & Replay

At RoboCup, debugging of rare situations is hard at Team HULKs because we need to guess in our post-game meetings because we have no insights in robot decisions after a game. We already implemented a simple localization recording and replay during RoboCup 2023 but we need a more sophisticated solution with more coverage. The robot control software at Team HULKs is split in the robotics domain and the framework. The recording and replay feature is a framework feature that therefore supports the whole robotic domain. It allows for a post-mortem analysis of our robotic code, enhancing debugging experience after a game.

3.5 Tooling

To improve our efficiency, we use many different tools. We are constantly improving our tools and developing new features to expand them. The most recent additions to our toolbox are our labeling tool annotato, our system for querying status information aliveness and our behavior simulator for performing integration tests with our behavior code.

Behavior Simulator in CI

We use a continuous integration pipeline with automated checks which aids us in keeping our code quality high and prevent accidental breakage. One new check this year is the behavior simulator, which runs the behavior part of our robotics code in automated test scenarios. For example, if a code change would prevent scoring a goal against an empty field, the code change is rejected. More complex scenarios can be added in the future.

Annotato

Annotato is a new tool designed to simplify the process of labelling images. Within the tool, you can navigate from one image to another and create bounding boxes around the objects you wish to label. These labeled images are then used to train a machine learning model, enhancing its capability to identify objects like balls and robots. A YOLOv8 model is used to prelabel the images, significantly speeding up the labelling process.

Aliveness

We introduce an aliveness system for querying status information from NAOs in the network. It consists of two parts: The service running on the NAOs and a client for sending aliveness requests to the network and processing answers. This service is a core part of the HULKs OS and thus always active. It is only accessible via the Ethernet interface to ensure no accidental messages are sent in games.

Using the aliveness service, information like current HULKs OS version, status of systemd services, hardware IDs, connected wireless network name and joint temperatures can be queried. We integrate the queried information in our pepsi multitool to quickly check for successful deployments as well as currently available NAOs.

3.6 HULKmanoid

When reevaluating the RoboCup vision for 2050 to play soccer against humans, we notice that at the current point of time several leagues are working in their own isolated domain. Influence between leagues is rare and we want to improve on that to work in the direction of the RoboCup vision. Therefore we have the idea of joining the SPL, Humanoid, and Simulation leagues. As a first step in this direction, at Team HULKs we are working on bringing our SPL league's code base on a Humanoid robot. We want to report our findings to other teams and leagues.

3.7 Nix

Using the nix flakes system, we construct reproducible environments for building our robotics code and tooling. While experimental for now, we intend to eventually use nix on the robot itself to ease building and deploying our robotics software.

3.8 Energy Saving

We implement a current minimization algorithm, inspired by the approach proposed in the 2018 team report by Berlin United - Nao Team. This reduces our power consumption in Penalized from around 3 amps to 0.4 amps and helps to keep joint heat low.

4 Past History

Competition Results

Competition Tournament State Opponent Score
RoboCup 2023 3rd Place rUNSWift 1:1 [0:2]
RoboCup 2023 Semi-Finals HTWK Robots 0:4
RoboCup 2023 Quarter-Finals NomadZ 8:0
RoboCup 2023 Round 6 Berlin United 1:0
RoboCup 2023 Round 5 B-Human 0:9
RoboCup 2023 Round 3 Bembelbots 2:0
RoboCup 2023 Round 2 rUNSWift 3:0
RoboCup 2023 Round 1 Nao Devils 1:1
GORE 2023 Quarter-Finals R-ZWEI KICKERS 2:8
GORE 2023 Round 6 NomadZ 4:0
GORE 2023 Round 5 Naova 5:0
GORE 2023 Round 4 B-Human 0:7
GORE 2023 Round 2 Dutch Nao Team 5:0
GORE 2023 Round 1 Bembelbots 2:0
RoboCup 2022 Quarter Final Nao Devils 2:3
RoboCup 2022 Round 5 Nao Devils 2:1
RoboCup 2022 Round 4 B-Human 0:6
RoboCup 2022 Round 2 NomadZ 9:0
RoboCup 2022 Round 1 SABANA Herons 4:0
GORE 2022 Quarter Final B-Human 0:10
GORE 2022 Round 6 Bembelbots 0:6
GORE 2022 Round 5 RoboEireann 1:9
GORE 2022 Round 4 SPQR 0:3
GORE 2022 Round 3 R-ZWEI KICKERS 0:4
GORE 2022 Round 2 Nao Devils 0:10
GORE 2022 Round 1 rUNSWift 0:6
GORE 2021 Round 3 Bembelbots 1:0
GORE 2021 Round 2 B-Human 0:10
GORE 2021 Round 1 Berlin United 4:1
RoboCup 2019 Quarter Final Nao Devils 1:2
RoboCup 2019 CC Play In NomadZ 9:0
RoboCup 2019 Second Round Robin Bembelbots 3:1
RoboCup 2019 Second Round Robin rUNSWift 0:5
RoboCup 2019 First Round Robin B-Human 0:5
RoboCup 2019 First Round Robin UPennalizers 10:0
German Open 2019 3rd Place rUNSWift 2:1
German Open 2019 Semi Final Nao-Team HTWK 1:3
German Open 2019 Play-In Round Nao Devils 5:1
German Open 2019 Round Robin B Nao-Team HTWK 0:4
German Open 2019 Round Robin B rUNSWift 1:2
German Open 2019 Round Robin B NomadZ 8:0

5 Impact

The HULKs always have been active in organising events for both our league and the Humanoid League. This includes ten RoHOW and two German Open Replacement Events (GORE). We are looking forward to our next RoHOW in December 2024, to which you will be cordially invited. As the first team to develop our software fully open source, we are pioneering the free sharing of code and data to promote collaborative research in the SPL. By participating in organisational, technical and executive committees, we are shaping the future of the SPL and humanoid robotics research. Our tools for creating self-packaged OPN files enabled teams to deploy their robots remotely, overcoming the limitations caused by the Corona virus outbreak. Our framework, freely available under the GNU GPLv3, allows new teams to easily join our league using a framework that is not written in C++.