Die Brazil Open ist ein RoboCup Turnier das online und in Simulation veranstaltet wurde. Die Spiele wurden mit fast der gleichen Simulationsumgebung gespielt, wie der auf der Weltmeisterschaft, in der wir den den dritten Platz erringen konnte. Um die Berechnungen zu vereinfachen, wurde hier aber entschieden, nur einen Roboter gegen einen Roboter antreten zu lassen.
Das Turnier wurde in einem Liga Format veranstaltet, so dass jedes Team gegen jedes andere Team spielen durfte. Wir hatten bereits alle außer einem Team schlagen können, gegen das wir nur ein Unentschieden erreichten. Das letzte Spiel war nun gegen den Weltmeister Starkit, die jedes Spiel des Turniers bisher gewonnen hatten. Wir sind also in dieses finale Spiel gegangen, mit der Hoffnung zu gewinnen, aber mit der Erwartung es zu verlieren.
Wenn ihr euch das Spiel ansehen wollt, mit Kommentierung von uns und von Starkit, hier ist es verfügbar:
Vor wenigen Minuten haben wir offiziell das Spiel um den dritten Platz gegen die CIT Brains gewonnen. Es war ein unfassbar knappes Spiel und hat sogar so viele Probleme verursacht, dass die Simulation mehrfach neu gestartet werden musste. Somit musste das Spiel um 5 Stunden verschoben werden und wir waren noch viel aufgeregter und nervöser als es endlich los ging.
Als das Spiel dann endlich startete, wurden wir darauf hingewiesen, dass es einige Probleme gab, die uns im Verlauf des Streams erklärt werden sollten. Noch hatten wir also keine Idee von dem Chaos, dass uns in den nächsten Minuten erwarten würde.
In der ersten Spielhälfte erzielten wir zwar ein Tor, spielten aber etwas zu aggressiv, sodass einer unserer Spieler eine gelbe Karte und ein weiterer eine Verwarnung erhielt. Plötzlich mussten wir uns darum Sorgen machen, dass wir einen unserer Angreifer verlieren… Dann erfuhren wir aber, dass aufgrund eines Fehlers die Simulation nach der ersten Hälfte neu gestartet werden musste, sodass wir unsere Karten wieder verloren. Als Ausgleich dafür bekamen die CIT Brains erneut den Anstoß.
Wir hatten gehofft, dass wir dank der Simulation dieses Jahr keine Hardwareprobleme haben würden. Trotzdem haben wir es irgendwie geschafft, dass eben solche Probleme auftreten. Und das natürlich genau in diesem entscheidenden Spiel! Die Beine eines unserer Roboter verhakten sich in einander, sodass es nicht mehr möglich war, aufzustehen. Glücklicherweise wurden wir wenige Sekunden später zurückgesetzt, da wir auf der falschen Hälfte lagen und uns nicht mehr bewegen konnten. Eine ernsthafte Katastrophe konnten wir also so gerade noch verhindern.
In vielerlei Hinsicht fühlte sich dieses Spiel beim Zuschauen wie ein echtes Fußballspiel an. Besonders deutlich konnte man das daran erkennen, wie häufig wir den Schiedsrichter angeschrien haben. Während des Spiels traf der automatische Schiedsrichter einige fragwürdige Entscheidungen, wie zum Beispiel, dass der Ball während eines Elfmeters nur wenige Zentimeter vor unserer Torlinie platziert wurde. Als unser Torwart sich dann wie erwartet auf der Torlinie platzierte, um den Ball abzufangen, wurde er stattdessen entfernt, da er sich nun laut den Regeln zu dicht am Ball befand. Somit konnten die CIT Brains leicht ein Tor erzielen. Wenig später erzielten sie durch eine ähnliche Entscheidung ein zweites Tor.
Das Glück der CIT Brains hielt aber nicht lange an. Kurz vor Ende der zweiten Halbzeit gelang es uns, auf die gleiche Art einen Strafstoß zu erhalten, den Torwart zu entfernen und ein Tor zu erzielen. Es stand also 2 : 2.
Da nicht mehr genügend Zeit verbleibend war, um die Nachspielzeit zu simulieren, haben die Veranstalter beschlossen, diese zu überspringen und stattdessen direkt zum Elfmeterschießen überzugehen. Das hat uns sehr nervös gemacht, da wir aus unseren Testspielen wussten, dass wir das Tor zwar treffen konnten, aber in den meisten Fällen die Distanz zum Tor nur knapp, beziehungsweise häufig eben knapp nicht, bewältigen konnten. Die CIT Brains gaben aber bekannt, dass sie selber ihr Verhalten im Elfmeterschießen bisher nicht getestet haben. Das gab uns etwas Hoffnung.
Während dem ersten Schuss lief der Roboter der CIT Brains zu früh los, dribbelte den Ball bis vor das Tor und wurde dort vom Auto-Referee gestoppt. Unser erster Kick hingegen wurde korrekt ausgeführt, erreichte das Tor allerdings nicht. Wir hatten also schon einen Vorteil, da im Falle eines Unentschiedens nun die zurückgelegte Balldistanz gewertet werden würde.
Für die nächsten Schüsse stoppte das Verhalten der CIT Brains vollständig, sodass sie nichts unternahmen, während wir erneut das Tor knapp verfehlten. Unser vierte Schuss brachte uns schließlich den rettenden Punkt. Da im Rest des Elfmeterschießens keine weiteren Tore fielen, gewannen wir das Spiel mit einem 3 zu 2 und erreichten somit den dritten Platz.
Heute hatten wir die Möglichkeit gegen das Adult Size Team Sweaty zu spielen. Sie sind momentan die Favoriten, das Finale der Weltmeisterschaft in ihrer Liga zu gewinnen. Da es für uns leicht war, unsere Software so zu ändern, dass wir auch auf einem größeren Feld mit einem größeren Ball spielen können, haben wir angeboten auf dem regulären Feld der Adult Size zu spielen. Wir konnten nur zwei Roboter nutzen, statt unserer üblichen drei oder vier, da das notwendig war um auf dem großen Feld zu spielen.
Wir bekamen Angst, als wir die Größenunterschiede zwischen den Robotern sahen, aber wir waren schon früh die Favoriten, als wir uns ins Feld bewegten und uns richtig positionierten. Die Roboter von Sweaty bewegten sich leider nicht ins Feld. Die Vermutung von Sweaty ist, dass es Probleme mit der Verbindung zum Schiedsrichter gab und die Roboter deshalb nicht wussten, dass sie anfangen dürfen zu spielen.
Am Ende haben wir es geschafft, insgesamt sechs Tore auf dem großen Feld zu schießen.
Im Halbfinale durften wir gegen Starkit antreten. Starkit hatte in ihren letzten Spielen eine beeindruckende Leistung gezeigt und wir freuten uns sehr darauf, dass wir gegen sie spielen durften. Wir haben letzte Nacht noch ein paar letzte Bugs gefixt, aber keine großen Änderungen vorgenommen. Da wir unsere Strategie nicht in der Mitte eines Spieles ändern können, musste sie einfach zuverlässig funktionieren.
Wir mussten unseren Code um 12:30 hochgeladen haben und unser Spiel startete um 20:30. Das gab uns eine Menge Zeit nur da zu sitzen und gespannt auf unser Spiel zu warten.
In unserem Spiel heute morgen hatten wir Probleme, weil es länger lief als wir es erwartet hatten und die von uns gespeicherten Dateien deswegen zu groß waren. Damit uns das nicht wieder passieren konnten, haben wir die Anzahl der Bilder die wir aufgenommen haben halbiert. Das sollte nichts kaputt machen können… Richtig? RICHTIG? Nun ja… Das hat es aber getan. Zum Glück haben wir noch ein Test Spiel laufen lassen und es festgestellt. Das hätte unsere Roboter davon abhalten können sich zu bewegen und den Sieg an Starkit geschenkt.
Nach dem Erlebnis waren wir noch gespannter auf das Spiel und wenn ihr in der Nähe von uns wart, dann habt ihr uns wahrscheinlich jubeln gehört, als wir anfingen uns zu bewegen.
Zu Beginn des Spiels passten die Starkit Roboter zueinander und spielten uns aus. Anfänglich konnten wir uns noch gut verteidigen, aber gegen ihre beeindruckenden offensiven Spielzüge, konnten wir nicht mithalten.
Unser Torwart hat ein paar fragwürdige Entscheidungen getroffen. Er war nahe am Ball, aber entschied sich dann doch nicht den Ball von unserem Tor weg zu treten, sondern lief zurück zu seinem Tor um von dort aus die Sicherheit unseres Tores sicher zu stellen.
In einer späteren Situation, lief unser Torwart dann in die Gegnerhälfte um den Ball weiter weg zu treten. Damit kam er an allen Gegnern vorbei, aber entschied sich dann, dass der Ball jetzt sicher ist und rannte wieder zu unserem Tor zurück. Das gab den Robotern von Starkit dann wiederum die Möglichkeit zur Offensive.
Die Starkit Roboter schafften es am Ende sieben Tore gegen uns zu erzielen. Unsere Roboter ließen sich aber nicht demotivieren und versuchten weiterhin ihr bestes. Damit schafften sie es zwei Tore für uns zu erringen.
Wir sind wirklich stolz darauf, was unsere Roboter geschafft haben. Wir freuen uns auch darauf morgen im Spiel um den dritten Platz gegen die CIT-Brains zu spielen. Wenn ihr es anschauen möchtet, es wird morgen um 10 hier gezeigt werden: https://www.twitch.tv/robocuphumanoidfielda
Nach dem spannenden Spiel gestern gegen den 01. RFC Berlin, durften wir heute im Viertelfinale spielen. Die Australischen Nubots haben das Los gegen uns gezogen. In der Gruppenphase hatten sie es geschafft ein Tor zu erzielen, aber wir waren uns relativ sicher, dass wir das Spiel gewinnen könnten. Wir waren aber immer noch vorsichtig, denn ein Fehler in unserer Software hätte uns vom Spielen abhalten können und uns den Sieg gegen die Nubots kosten können.
Als das Spiel los ging waren wir sehr froh, als unsere Roboter anfingen los zu laufen, weil wir uns dann sicher waren, dass wir normal spielen würden. Die Nubots wehrten sich am Anfang, aber trotzdem gelang es uns ein Tor zu schießen.
Der Schiedsrichter hat das aber nicht als Tor für uns gewertet. Stattdessen vergab er einen Abstoß an die Nubots. Wir bekamen ein wenig Panik, da der Schiedsrichter dort offensichtlich einen Fehler gemacht hatte und das Spiel jetzt immer noch ausgeglichen war.
Unsere Roboter waren aber weiterhin voll motiviert und warteten einfach ab bis wir den Ball spielen durften und schossen gleich noch ein Tor. Dieses mal hat der Schiedsrichter das Tor auch gezählt und wir gingen in Führung mit einem 1-0.
Die Nubots wehrten sich ab diesem Zeitpunkt nicht mehr wirklich und es gelang uns ein Tor nach dem anderen zu schießen. Nach der ersten Hälfte führten wir schon 7-0. In der zweiten Hälfte waren wir aufgeregt, denn wir waren auf einem guten Weg das beeindruckende 15-0 zu schlagen, dass MRL in einem vorherigen Gruppenspiel erreicht hatte.
Die zweite Hälfte lief ab und wir schafften es ihr Ergebnis um genau ein Tor zu übertreffen. Das offizielle Ergebnis war 16-0. Hätte das erste Tor gezählt, dann hätten wir wahrscheinlich 17-0 gewonnen.
Nach dem Spielende haben wir herausgefunden, dass wir mehr Zeit zur Verfügung hatten, weil nach einem Tor in den KO Spielen mehr Zeit gegeben wird, um die Zeit auszugleichen, in der die Roboter nach einem Tor den Ball nicht spielen dürfen.
Jetzt freuen wir uns darauf, heute Abend um 20:30 gegen Starkit im Halbfinale spielen zu dürfen.
Wir haben gerade unser letztes Gruppenspiel gewonnen. Wir sind immer noch atemlos, weil unsere Herzen das ganze Spiel über gerast sind. Wir wussten schon, dass dies ein aufregendes Spiel werden würde, weil der 01. RFC Berlin die IT Androids mit dem selben Ergebnis wie wir besiegt hat: 9-0. Allerdings war das Spiel gegen die IT Androids nicht so spannend wie das gegen Berlin.
Unsere Aufregung stieg noch mehr, als wir herausfanden, dass die Übertragung unseres Spieles auf später verschoben werden musste. Das war das erste Spiel dieses Turniers in dem das notwendig war. Wir haben spekuliert, dass es daran lag, dass die Simulation komplexer war, weil sich unsere und die Berliner Roboter öfters kollidierten als die Roboter in den Spielen vorher. Wir wussten also schon, dass wir uns auf ein spannendes Spiel freuen konnten.
Bereits zu Beginn des Spiels gelang es den Berliner Robotern tief in unsere Hälfte zu spielen und dabei ging er sogar in unseren Strafraum. Unsere Roboter schafften es allerdings den folgenden Zweikampf für sich zu gewinnen und die Berliner Roboter mussten mit einer Zeitstrafe das Spielfeld verlassen. Diese Zeit konnten wir ausnutzen und den Ball zur Mitte des Spielfeldes zurück spielen. Trotz alledem, war das nicht genug um den Ball in Sicherheit zu bringen, denn die Berliner Roboter drückten den Ball wieder vorwärts in unsere Hälfte. Sie haben sogar versucht ein Tor zu schießen, aber unser heldenhafter Torwart stand richtig und konnte den Ball davon abhalten, ins Netz zu fliegen. Damit war der Angriff der Berliner aber noch nicht beendet. Sie bekamen vom Schiedsrichter sogar einen Elfmeter zugesprochen.
Sie kickten den Ball und er wäre ins Tor gerollt, aber der Schiedsrichter pfiff seine (imaginäre) Pfeife, denn sie hatten den Ball schon getreten, bevor der Schiedsrichter den Ball freigegeben hatte. Das konnte uns zum Glück gerade noch retten. Die Angreifer mussten nun das Feld für 30 Sekunden verlassen und unsere Roboter nutzten die Gelegenheit und stürmten nach vorne. Jedoch hatten wir leider nicht mehr Glück als die Berliner Roboter und die gute Verteidigung der Berliner konnte alle Torversuche von uns verhindern.
Nachdem wir gespannt zuschauten, wie beide Teams versuchten das Spiel aus dem Mittelfeld aufzubauen, haben wir einen Glückstreffer gelandet. Zwei der Berliner Roboter wurden vom Schiedsrichter an den Rand des Feldes geschickt und unser Stürmer konnte geschickt den einzigen übrig gebliebenen Verteidiger ausspielen. Dann waren wir unaufhaltsam und konnten endlich unser erstes Tor schießen.
Der Roboter in der Mitte freute sich so sehr, dass er für unseren Stürmer jubelte.
Die Berliner Roboter haben aber noch nicht aufgeben wollen. Sie haben weiterhin gut gestürmt und hatten sehr gute Chancen vorne. Der Schiedsrichter hat uns aber wieder gerettet, indem er ihren Robotern eine Zeitstrafe gab, weil sie zu schnell in einer Standardsituation den Ball kickten, oder uns versuchten umzuwerfen.
Wir konnten unsere 1-0 Führung in die zweite Hälfte retten und nach einer Weile wirkte es als hätten wir die Moral von einem der Berliner Roboter gebrochen. Nachdem der Roboter eine Strafe bekam, hörte er einfach auf sich zu bewegen und das mitten in einem Schritt. Die Teammitglieder des 01. RFC Berlin haben uns erzählt dies läge an einem Fehler in ihrem Code und der Roboter wäre abgestürzt. Unsere Roboter nutzten die Möglichkeit und gewannen die Zweikämpfe im Strafraum der Berliner und erzielten unser zweites Tor.
Mit unserer 2-0 Führung beruhigten sich unsere Herzen wieder ein wenig und wir freuten uns über den Vorsprung. Das Problem war nun aber, dass der Roboter, der sich vorher aufgehört hatte zu bewegen, sich jetzt wieder bewegte. Mit ihm gelang es dem 01. RFC Berlin fast ein Tor zu schießen und nur Zentimeter konnten uns retten.
Wir spielten weiter vorwärts und konnten noch ein paar gute der Schüsse der Berliner aus unserem Tor halten. Am Ende konnten wir das Spiel mit 4-0 für uns entscheiden.
Dann waren nicht nur unsere Roboter, sondern auch unsere Menschen erschöpft, aber feierten unser großartiges Spiel. Wir danken dem 01. RFC Berlin für dieses ereignisreiche Spiel und wir hoffen euch im Finale wieder zu sehen. (Hoffentlich auch mit dem gleichen Ergebnis ;))
Wir hatten eben unser erstes offizielles Spiel in dem wir gegen THMOS spielen durften. Wir waren überzeugt, dass wir das Spiel gewinnen können, aber es gibt immer Überraschungen die uns doch stoppen können. Zum Beispiel hatten wir in den letzten Tagen ein Problem wo wir ein einzelnes „,“ zu viel in unserem Code hatten, das unseren Roboter abstürzen lassen hat. Da es keine Möglichkeit gibt, während des Spiels noch irgendwelche Probleme zu lösen, können immer noch Überraschungen passieren.
Wir hatten allerdings Glück und unsere Software hat sehr gut funktioniert. Unsere Gegner hatten leider nicht so viel Glück. Sie hatten ein Problem mit ihrer Software und sind immer wieder von der Karte gerutscht.
Somit konnten wir einen überzeugenden 12:0 Sieg erringen und freuen uns auf unsere nächsten Spiele.
Wir freuen uns sehr, dass der RoboCup 2021 nun beginnt und wir bereits morgen die ersten Spiele unserer Liga sehen werden. Auch heute können wir aber bereits unsere und die Roboter der anderen Teams in den Testspielen anfeuern. Diese Spiele werden das Ende der zwei Aufbau Tage sein in denen wir die Chance hatten unsere Software nochmal ausführlich zu testen und die meisten Bugs zu entfernen die wir gefunden haben.
Unser erstes Testspiel gegen MRL-HSL wird heute um 17:40 auf dem ersten Twitch Kanal der oben verlinkt ist gezeigt. Wir würden uns freuen es gemeinsam mit euch anzuschauen!
Letztes Wochenende war die „Mock Competiton“, ein erster Testlauf für die echte Weltmeisterschaft. Anders als die regulären Wettbewerbe, werden dieses Jahr die Spiele alle simuliert werden. Wir waren aufgeregt, endlich unsere Software gegen echte Gegner ausprobieren zu können und uns an diesen ungewöhnliche Form des Wettbewerbes zu gewöhnen. Wir haben uns also alle am Freitag Nachmittag getroffen um uns auf die ersten Probe-Elfmeterschießen vorzubereiten. Nachdem wir unsere Software hochgeladen haben und die Berechnungen angefangen haben, haben wir gespannt darauf gewartet, dass das Video des Spieles gestreamt werden würde. Diese Berechnungen müssen schon vor dem Stream passieren, weil die Simulation sehr langsam ist und das keinen Spaß beim zuschauen machen würde. Also warteten wir…
Eine ganze Weile passierte nichts. Aber warum? Ein Fehler im automatisieren Schiedsrichter hat es allen Robotern verboten sich zu bewegen. Nachdem wir uns zwei sehr langweilige Spiele angeschaut haben, wurden die nachfolgenden Spiele auf unbestimmte Zeit verschoben bis das Problem gelöst werden konnte. Diese freie Zeit haben wir genutzt um noch einige Probleme in unserem eigenen Code zu lösen. Dabei haben wir noch einige weitere Probleme in dem Code des Schiedsrichters gefunden.
Am Samstag wurde dann die ursprüngliche Planung komplett geändert: Statt der geplanten regulären Spiele, wurde eine Reihe von Herausforderungen aufgestellt. Diese sollten die Teams zu einem Punkt hinführen an dem sie bereit für den Wettbewerb sind. Nachdem das Modell unseres Roboters begutachtet wurde und wir uns erfolgreich mit dem Server verbunden haben, war die erste Herausforderung einfach nur zu laufen. Damit konnte sicher gestellt werden, dass die Roboter sich bewegen dürfen und ein solches Problem wie am Freitag nicht nochmal auftreten würde. Danach waren die nächsten Challenges ein Elfmeterschießen, ein kurzes Spiel und abschließend ein ganzes Spiel. Unsere gesamte Software hat sehr gut funktioniert und wir kamen schnell durch die Challenges. Am Samstag gelang es uns das erste Tor der Mock Competition zu schießen. Zugegeben, weil wir zuerst hingefallen sind, und damit den Ball näher zum Tor bewegt haben, war das etwas einfacher als erwartet. Trotzdem haben wir mit unserem dynamischen Kick elegant um den Torwart herum gespielt und uns den ersten Punkt des Wochenendes ergattert.
Am Sonntag hatten wir dann die Gelegenheit ein erstes kurzes normales Spiel zu spielen. Da haben wir gegen den 01. RFC Berlin gespielt. In der ersten Hälfte sah es gut für uns aus. Wir haben noch ein Tor geschossen und hätten fast noch ein zweites geschossen, aber als die Zeit ablief lag der Ball knapp vor der Torlinie.
Dann startete die zweite Hälfte und nichts mehr ging. Der Schiedsrichter hat die Roboter nicht richtig zurückgesetzt und es sind erst mal alle acht Roboter hingefallen, wofür sie dann eine Strafe vom Schiedsrichter bekamen. Trotz alle dem haben wir uns davon erholen können und uns aus dem Haufen von Robotern befreien können, der entstand, weil alle Roboter aufeinander positioniert wurden. Nachdem wir dann verstanden haben wo wir auf dem Feld stehen, sind unsere Roboter alle schnell los gelaufen um sich vor den Ball zu stürzen, der Ball lag nämlich noch da wo er am Ende der ersten Halbzeit lag. Das war jetzt aber wegen des Seitenwechsels eben unser eigenes Tor. Kurz nachdem wir den Ball dort retten konnten, ist aber der Schiedsrichter abgestürzt und das Spiel musste abgebrochen werden.
Trotz des Chaos und der Probleme die wir gefunden haben, sind wir überzeugt, dass die meisten Probleme die auftauchen können jetzt gefunden sind und der eigentliche Wettbewerb dank dieses frühen Tests ungestört laufen kann . Wir konnten beobachten, dass unsere Software läuft wie wir es erwarten und freuen uns auf die richtige Weltmeisterschaft die am 24.6 losgeht.
Das Jahr kommt langsam zu einem Ende, und noch immer ist die Situation ganz anders, als wir sie uns wünschen würden. Aber so eine Pandemie verschwindet nun mal nicht von einem Tag auf den anderen, und so tun wir unser Bestes, uns mit der Situation zu arrangieren – alle zusammen, bei sich zu Hause.
Mittlerweile haben wir uns damit abgefunden, dass persönliche Treffen, gemeinsames Arbeiten am Roboter und Teambuilding-Events fürs erste ausbleiben müssen. Zwar fehlt die Laboratmosphäre, das von der Arbeit ablenken lassen, weil auf der anderen Seite des Raumes lautstark über die Farbpalette des Imagetaggers diskutiert wird oder die helfende Hand, wenn man mal wieder nicht gleichzeitig Bauteil, Lötzinn und Lötkolben festhalten kann, aber trotzdem merken wir immer wieder, dass unser Team von mehr zusammengehalten wird, als nur den Treffen im Labor. Inzwischen haben wir viele Lösungen gefunden, um trotzdem im Kontakt zu bleiben und den Laboralltag so normal wie möglich weiterzuführen. Über Discord treffen wir uns inzwischen zwei mal pro Woche, einmal, um uns über das Wochengeschehen und unseren Fortschritt auszutauschen, und ein zweites Mal, um gemeinsam an unserem Code zu arbeiten. Bei digitalem Pair-Programming und den gelegentlichen Verzweiflungsrufen oder Freudenschreien aus dem Voicechat fühlt es sich fast wie im echten Labor an. Gemeinsam konnten wir so viele komplexe Probleme lösen und unsere Roboter noch besser auf die nächsten Wettkämpfe vorbereiten.
Aber auch, wenn wir schon viel erreicht haben und die (digitale) Bitbots-Weihnachtsfeier bald vor der Tür steht, ist es für dieses Jahr noch nicht ganz geschafft. Bevor wir uns in die wohlverdienten Weihnachtsferien begeben können, steht an diesem Wochenende noch ein letzter Integrationstest für dieses Jahr an. Vor allem, weil wir so viele Sachen im Moment nur im Simulator testen können, ist dieser Termin noch einmal besonders wichtig für uns, um einmal alle Komponenten gemeinsam auf dem Roboter zu sehen. Da wir uns natürlich auch dabei nicht treffen dürfen, werden wir versuchen, auch diesen Test über eine Videokonferenz durchzuführen. Dafür ist natürlich vor allem die Kommunikation zwischen dem Team und dem Mitglied im Labor wichtig, aber wir sind zuversichtlich, dass das ganz gut klappen wird.
Auch, wenn das Jahr für uns noch nicht ganz rum ist, möchten wir euch an dieser Stelle schon frohe Weihnachten und einen guten Start in das neue Jahr wünschen. Bleibt gesund!