Engpassabschätzung mit 2D-Kamera

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Bei diesem Artikel handelt es sich um ein Projekt im Fach Interaktion, das im Wintersemester 18/19 von den Studenten Yannick Wallerer, Rainer Walther und Philipp Weiß durchgeführt wurde.

Problemstellung

Häufig verfügen ferngesteuerte Roboter nur über eine 2D-Kamera. Allerdings liefern diese keine Abstands- und Tiefeninformationen der Umgebung. Um zu verhindern, dass sich der Roboter in für ihn zu schmalen Engpässen festfährt, was wiederum zu Beschädigungen am Roboter führen kann, soll ein Programm entwickelt werden, das dem Fahrer durch Abschätzung der Breiten assistiert. Darüber hinaus verhindert die Fahrhilfe zeitaufwendige Wende- und Befreiungsmanöver, was besonders in Wettkampf und Rettungsszenarien von großer Bedeutung ist.

Idee

Um trotz einer 2D-Kamera Tiefeninformationen zu erhalten, ist es notwendig zwei Bilder aus zwei Positionen mit definiertem Abstand zueinander aufzunehmen.

Engpass Idee.PNG

Kantenerkennung

Die Kantenerkennung erfolgt in mehreren Schritten, welche im Folgenden beschrieben werden:

  1. Aufnahme Originalbild
    Engpass Bild original.PNG
  2. OpenCV Canny Edge Detection
    Engpass alle Kanten.PNG
  3. Houghline Transformation
    Engpass alle Houghlines.PNG
  4. Herausfiltern der senkrechten Kanten
    Engpass senkrechte Houghlines.PNG
  5. Ablaufen der Pixel bis zu den Kanten
    Engpass detektiert.PNG

Mathematisches Modell

Im Rahmen des Praktikums war es notwendig die Problemstellung unter optimalen Bedingungen anzugehen. Dazu gehört das Anvisieren einer Kante in der exakten Mitte des Kamerabildes im rechten Winkel. Nach Aufnahme der zwei Bilder aus den unterschiedlichen Positionen fest definierten Abstands, erhält man drei bekannte Ausgangsgrößen: die Winkel α, α' und der Abstand L

Aus den beiden gegebenen Winkeln lassen sich die fehlenden Winkel β und γ bestimmen. Der Sinussatz erlaubt die Berechnung des Strecke b, mit welcher wiederum die gesuchten Strecken x1 und x2 ermittelt werden können (siehe folgendes Bild).

Engpass Mathematisches Modell.PNG

Pixel-Winkel-Umrechnung

Zu guter Letzt blieb noch folgendes Problem: Die Kamera liefert anstatt Winkeln nur Pixel. Diese galt es umzuwandeln. Hierzu wurde zunächst der der Winkel ermittelt, den die Kamera in der Breite aufnehmen kann. Bei gegebner Kameraauflösung und unter der Annahme, dass das Bild unverzerrt aufgenommen wurde, lässt sich ein Umrechnungsfaktor ermitteln. Dieser gibt Auskunft darüber wie viel Grad ein Pixel entspricht (in unserem Projekt: 1 Pixel entspricht 0.1°).

Randbedingungen

Das Programm funktioniert momentan nur unter optimalen Bedingungen. Dazu gehören:

  • optimale Positionierung (siehe Mathematisches Modell)
  • gute und kontrastreiche Lichtverhältnisse
  • keine störenden Kanten im Hintergund der Bilder

Link

Den Quellcode finden Sie im OCS.