OpenCV: Catch The Ball

Die Fähigkeiten des RAT entwickeln sich fort. Mir drängt sich der Vergleich mit der wachsenden Wahrnehmungsfähigkeit eines Säuglings auf, der deine Umgebung zunächst nur schemenhaft erkennt, um dann immer bewusster auf Signale zu reagieren. Man verzeihe mir diese Hybris.

Logische Fortschreibung des visuellen Subsystems ist, wie im letzten Beitrag angekündigt, das Erkennen von Konturen bzw. Objekten. Am einfachsten sind dabei simple geometrische Formen, wie zum Beispiel ein Kreis als Projektion eines runden Körpers. OpenCV bietet dafür leistungsfähige Funktionen. In diesem Falle nutze ich HoughCircles(), was mir eine Liste von erkannten Kreisformen innerhalb eines Bildes (oder Frames) liefert. Die visuellen Fähigkeiten des RAT habe ich in einer Subklasse gebündelt, sinnigerweise rat_eyes genannt.

 

Für eine höhere Verlässlichkeit der Ergebnisse muss man mit den Parametern experimentieren, um das Optimum zu finden. Unter Anderem spielen die konkreten Lichtverhältnisse eine nicht unerhebliche Rolle. Wie im Video zu erkennen ist, springt das Erkennungsergebnis von Frame zu Frame gelegentlich. Dafür benötige ich eine Software-Dämpfung, die letztlich aus einer Menge von Ergebnissen das wahrscheinlich richtige herausfiltert.

Die Entfernung zum Objekt lässt sich theoretisch auf 2 Wegen ermitteln.

  1. Wenn das Objekt bekannt ist (die tatsächliche Größe des Balls), lässt sich über den ermittelten Radius des Bildes die Entfernung zurückrechnen. Wenig elegant, weil wenig flexibel. Je weiter die Entfernung, umso ungenauer zudem.
  2. Mit dem Bild der zweiten Kamera ist die Verschiebung des Objekts abhängig von der Entfernung (Disparität). Diese Methode ist unabhängig vom betrachteten Objekt, also flexibler. Auch steigt der Messfehler mit höherer Entfernung.

sonderschau_net_bild_1_gross

OpenCV: Die Griechen und mein RAT

Eine Woche Kreta war einerseits sehr erholsam, andererseits war es eine erzwungene Bastelpause beim Projekt RAT. Viel Zeit, sich über Grundsätzliches Gedanken zu machen. Mein ganz privates „Quo vadis“. Im Kern bleibt natürlich der Weg das Ziel. Gleichwohl kann es nicht schaden, den Versuch einer Zieldefinition zu unternehmen.

Was also soll der kleine Racker letztendlich können?

  1. Die Umgebung wahrnehmen und daraus Handlungen ableiten. Der Begriff der Umgebung bedarf der genaueren Definition. Es geht um visuelle Wahrnehmung, also Gegenstände eines bekannten Musters (der gelbe Ball,  die rote Tasse, der olle Schuh,…)  oder gar Personen (mich, Mutti, irgendein anderer Mensch, Frau Merkel…). Umgebung bedeutet für mein Verständnis aber auch Hören. Der RAT soll über Spracherkennung verfügen und einfache, gesprochene Kommandos entgegennehmen und ausführen können. Entsprechende Frameworks werden im www reihenweise angeboten.
  2. Bewegung ohne Reue. Der RAT soll sich autonom durch die Gegend bewegen können, konkrete Ziele ansteuern und dabei  Hindernissen ausweichen.