OSE - Objekt - und Spurerkennung
Einleitung
Anforderungen des Lastenheftes
Hier angegeben sind die Requirements, die das Team OSE aus dem Lastenheft ableitet. Dabei sind die beiden Punkte aus dem Lastenheft rot bzw. blau hinterlegt. Aus diesen abgeleitete Anforderungen sind in hellblau bzw. hellrot dargestellt. Gleichfarbige Anforderungen deuten daraufhin, dass diese Punkte zu einem gemeinsamen Meilenstein gehören.
Projektplan
Zentralperspektive
Inverse Perspective Mapping
Operatoren zur Kantenerkennung im Vergleich
Projekttagebuch
KW18:
- Kalibrierroutine vereinfacht und halbautomatisiert - Dokumentation für einfache und schnelle Kalibrierung erstellt
KW19:
- Kommunikation mit Spurführungs-Team geklärt - Übergabe eines Polynoms 2. Grades in Form von 3 Parametern
KW20:
- Fertigstellung des Spurpolynoms in Matlab - Einarbeitung in die Umsetzung in C
KW22:
- Inbetriebnahme der Spurerkennung auf dem PC - Herausarbeiten der Unterschiede der Ansätze - Trafo in körperfestes Koordinatensystem (Schnittstellendokumentation,Matlab)
KW24:
- Polynom mit in Ausgabe im Video übernehmen - Ausführlich Kommentierung - Dokumentieren der Zentralperspektive im vergleich zur Koordinatentransformation
KW25:
- Dokumentation im Mechatronik Wiki - Vorbereitung Meilensteinpräsentation
Von Bild zu Weltkoordinaten
Ansatz : Zentralprojektion
Allgemein
Die Zentralprojektion wird genutzt, um 3 Dimensionale Objekte im 2 Dimensionalen Raum abzubilden. Dadurch werden Bilder erzeugt die der Wahrnehmung des menschlichen Auges entsprechen oder mit einer Kamera fotografiert Szenerie. Das Bild entsteht durch die Projektion von einem 3 dimensionalen Gegenstand auf eine Ebene von einem Punkt ausgehend.
Einsatz im Carolo Cup Fahrzeug
Das Carolo Cup Auto fährt auf einer 820 mm breiten Straße, die Mittellinie ist gestrichelt . Die Segmente der Linie sind 200 mm Lang und 20 mm breit sie folgen im Abstand von 200 mm aufeinander. Die Kamera filmt die Fahrt des Fahrzeug aus einer festgelegten Perspektive und die Blickrichtung der Kamera ist fest in Fahrtrichtung.(Carolo Cup Regelwerg)
Die Umrechnung zwischen Bild und Weltkoordinaten ist notwendig um die Spuren zu verifizieren.
Für die Umrechnung von Bild in Weltkoordinaten wurde mit Hilfe der festen Perspektive eine Funktion
bild_zu_welt.m in Matlab aufgebaut. --> function [ w_kordinaten ] = bild_zu_welt( b_kordinaten)
Diese Funktion rechnet Bildkoordinaten in Weltkoordinaten um. Die Eingabe b_kordinaten und Ausgabe w_kordinaten sind (2; n)-Matrizen. Der Nullpunkt in Weltkoordinaten besitzt im Bildkoordinatensystem die Koordinaten (376;478), die y-Achse verläuft von rechts nach links am unteren Bildrand, und die x-Achse verläuft auf der Bildspalte 376 von unten nach oben.
Die Funktion
Zu erst werden die Punkte der linken Geraden und der rechten Geraden gesetzt. Um die Abstände und zugehörigen Weltkoordinaten bestimmen zu können wurde das Fahrzeug vor einem Schachbrettmuster positioniert.
%Vier Punkte
p_b_l1 = [165; 310];
p_b_l2 = [280 ; 217];
p_b_r1 = [585; 310];
p_b_r2 = [470 ;217];
% Linke Gerade (l1 - l2) mit rechter Geraden (r1-r2) scneiden --> Fokuspunkt fokus_p = schneide_Test(p_b_l1,p_b_l2,p_b_r1,p_b_r2); % Zweiten Punkt auf der Höhe des Fokus erzeugen horizont_hilfspunkt = [p_b_l1(1,1);fokus_p(2,1)];
% waagerechter Schnitt mit linker Begrenzung P = schneide_Test(p_b_l1, p_b_l2, b_kordinaten, b_kordinaten-[10.0;0.0]);
% Nullpunkt der x-Achse ist die Bildmitte
y = 2*168*(b_kordinaten(1)-XS/2.0)/(P(1)-XS/2.0);
% Abstände Berechnen
% Masstab für höhe im Bild M1 = [378; 311]; M2 = [378; 283]; % Abstand von 168 in der Mitte der Straße % Lineal auf bauen
masstab = norm(schneide_Test(horizont_hilfspunkt, M1, [XS/2; YS], [XS/2+10; YS]) - schneide_Test(horizont_hilfspunkt, M2, [XS/2; YS], [XS/2+10; YS])); R = schneide_Test(horizont_hilfspunkt, P, [XS/2; YS], [XS/2+10; YS]); % Schnittpunkt von HP<->P auf der x-Achse x = (R(1)-p_b_l1(1))/masstab*168;
w_kordinaten = [x,y];
end