Posts

Posts mit dem Label "Tischkicker" werden angezeigt.

Implementation der Spielstrategie in der Computersoftware

Bild
Nachdem die lineare Bewegung nun ohne Probleme funktioniert, bin ich aktuell mit der rotativen Bewegung beschäftigt. Die Herausforderungen sind eine entsprechende Reaktionsfähigkeit, als auch eine schnelle Bewegung, um den Ball zu beschleunigen. Aktuell versuche ich durch verschiedene Versuche zu ermitteln, ob ein High-Speed Servo oder ein Schrittmotor für die Anwendung am besten geeignet ist. Im vorherigen Post ging es auch um die Grundlagen für die PC-Software. In der Zwischenzeit habe ich alle Softwarebausteine implementiert. Vom Einlesen des Kamera-Streams mittels der IDS-Softwarebibliothek zur Auswertung der KI-Daten, sind nun alle Softwarebausteine in einzelne Threads separiert. Eine große Herausforderung war dabei die Parallelisierung zur Geschwindigkeitsoptimierung. Sobald ein Bild von der Kamera eintrifft, wird nun gleichzeitig des Spielfeld von einer KI analysiert, als auch die Spielfeldabmessungen mittels Fiducials festgestellt. Damit ist es nun möglich, 200 mal pro Seku...

Lange Fehlersuche und Beginn der Steuerungs-Software

Bild
Wie sich herausgestellt hat, gab es mit der Ansteuerung, wie sie im letzten Post angesprochen wurde, noch ein größeres Problem. Bei einigen Bewegungen ist es passiert, dass der Referenzpunkt verloren gegangen ist. Sprich, der Controller wusste nicht mehr, wo sich der Spieler genau befindet. Das Resultat waren ungewollte Sprünge und verfehlte Bälle.  Zunächst war ich sicher, dass es sich dabei um einen Softwarefehler handelt. Sei es eine falsche Motoransteuerung oder ein Problem mit dem Interrupt, der die Software unterbrechen soll, sobald der verbaute Encoder ein Puls ausgibt. Diese Pulse werden (normalerweise) zuverlässig vom eingesetzten Encoder ausgegeben, wenn der Motor den Spieler verschiebt. Durch viele Tests konnte ich ermitteln, dass es einen Zusammenhang gibt, zwischen den Sprüngen, bei denen der Controller die Referenzposition verliert, zu Bewegungen um die eigene Achse, wenn zum Beispiel ein Schuss ausgeführt werden soll. Nachdem auch nach tagelangem Testen kein Software...

Automatische Spielfelderkennung mithilfe von Fiducials

Bild
Obwohl die Kamera durch zwei Rohre, wie im vorherigen Post beschrieben, befestigt ist, können Vibrationen doch das Sichtfeld verschieben. Für die Auswertung ist dies allerdings fatal, da die genau Position der Männchen des Gegners und des Balls nicht mehr mit der gemessenen Position übereinstimmen. Der Roboter würde so beispielsweise am Ball "vorbeispielen". Um dieses Problem zu lösen, habe ich an den Ecken des Spielfelds jeweils einen sog. Fiducial plaziert. Ein solcher Marker kann mit einer Identifikationsnummer eindeutig erkannt werden. Aufgrund der Größe habe ich mich hier für Fiducials des Typs "ArUco" entschieden. ArUco-Marker am Rande des Spielfelds Der große Vorteile dieser Marker ist die einfache und schnelle Klassifizierung mithilfe einer optischen Kamera. So kann nicht nur die Position des Fiducials im Bild, sondern auch Attribute, wie die 3D-Rotation festgestellt werden. Sind die Lageinformationen der vier Marker am Tischkicker bekannt, kann das Bild so ...

Montage der IDS Kamera über dem Tischkicker

Bild
High-Speed Tracking-Kamera von IDS Imaging über dem Spielfeld Die Kamera erfüllt eine wichtige Aufgabe in diesem Projekt. Nur durch sie kann der Algorithmus auf dem Computer erfahren, in welcher Position sich die Spieler befinden und wie der Ball gerade rollt. Neben der optimalen Perspektive, um das ganze Feld zu überblicken, ist es wichtig, dass die Befestigung möglichst Stoßfest ist. Damit kann das Bild auch bei intensiveren Spielen immer zentral das Spielfeld zeigen.  Um dies zu erreichen, habe ich zwei Rohre über den Tischkicker gebogen, sodass diese auf beiden Seiten des Tisches mit einem Flansch montiert werden können. Dafür wurden die Rohre über eine Holzform gezogen, um zwei identische auf der gleichen Höhe zu haben. Am obersten Punkt der beiden Stangen kann auf diese Weise ein Holzbrett mit der Kamera befestigt werden. Form zum Biegen der Rohre Mithilfe von Spanngurten konnten die Stangen an die Form gepresst werden. Mit einem Heißluftföhn habe ich anschließend die Positio...

Erste Tests zum KI-Tracking

Bild
Damit das System zu jeder Zeit genau weiß, wo die einzelnen Spieler sich befinden und wie der Ball rollt, befindet sich über dem Tischkicker eine Kamera, die mit einer hohen Bildwiederholrate auch schnelle Bälle erkennen kann. Um das System möglichst zuverlässig zu gestalten, sodass es bei verschiedenen Spiel- und Lichtbedingungen zuverlässig funktioniert, soll ein yolov8 Netzwerk eingesetzt werden. Mithilfe von über 3000 manuell markierten Bildern aus der Vogelperspektive konnten die KI lernen den Ball und die Männchen zuverlässig zu erkennen. Vollständig markiertes Bild mit roten und schwarzen Spieler und dem Ball Nach einiger Trainingszeit konnte das neuronale Netzwerk eine Genauigkeit von 98% erreichen. Beeindruckend ist, dass die künstliche Intelligenz sogar in der Lage ist durch Stangen verdeckte Bälle, als auch durch Bewegungsunschärfe verzogene Bälle zu detektieren. Das ist insbesondere dann wichtig, wenn schnelle Bälle von der einen Seite auf die andere geschossen werden und d...

Erster Prototyp der Mechanik

Bild
Scroll down for english version! Das Ziel: Ein autonomer Tischkicker-Roboter! Ein menschlicher Mitspieler soll durch einen Roboter ersetzt werden. Es gilt zunächst die Mechanik und Elektronik zu entwerfen, sodass die Maschine die gleichen Möglichkeiten, wie der Mensch hat. Im folgenden Schritt soll dann das Programm, welches den Roboter steuert, solange optimiert werden, bis der Mensch geschlagen werden kann. Dafür verfolgt eine Kamera das Spielgeschehen und trackt Spieler und Ball in Echtzeit. Mithilfe von künstlicher Intelligenz kann der Spielverlauf der nächsten Sekunden vorhergesagt und entsprechend gehandelt werden. An allen vier Stangen benötigt der Roboter die Möglichkeit die Männchen nach links und rechts zu bewegen sowie zu drehen, um einen Schuss durchzuführen. Um die Technik möglichst kompakt zu halten, war das die ersten Idee des Prototypen: Befestigungsschraube für den Spieler im ersten Prototypen Durch die hohlen Stangen läuft eine Steilgewindespindel. Für jedes Männchen ...