45
Abschlusspräsentation Projekt Diogenes”

Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Embed Size (px)

Citation preview

Page 1: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

AbschlusspräsentationProjekt

”Diogenes”

Page 2: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Vortragsablauf

Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen wir mit?

Page 3: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

SOFTWARETECHNIKMETHODEN

Page 4: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Softwaretechnik im Projekt

Methoden: Vorgenommen:

Unified Process

Ausgeartet in:

Extreme Programming

Page 5: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Softwaretechnik im Projekt

Funktionalität des Programms im Vordergrund

Einfache Bedienung

Page 6: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Softwaretechnik im Projekt

Gruppenkommunikation über Facebook

Google:Code als Repository

Page 7: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Aufwandsschätzung

Top-Down

Zeitpunkt Abgabe war klar

Teilaufgaben verteilt um Termin einzuhalten

Page 8: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Gantt-Diagramm

Page 9: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Verwendete Testmethoden

Sporadische Tests Konstruktive Nur getestet worauf User Einfluss hat Final: Walkthrough

Page 10: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

GUI

Page 11: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

GUI – Was ist uns wichtig?

Übersichtliche GUI

Wenig Unterbäume

Einfach zu bedienen/selbsterklärend

Page 12: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Idee

Wenig Pop-ups

Klar strukturiertes Menü

Viele Informationen auf einen Blick

Page 13: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Alte GUI

Page 14: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Neue Funktionen

Manuelle Steuerungsoptionen

Switch zwischen Roboter und Kamerasteuerung

Map angepasst

Page 15: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Neue Funktionen

Präsentationsmodus auf Roboter

Roboter wird auf Map dargestellt

Option für Facedetection

Page 16: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Wegrationalisierte Funktionen

Koordinatenangabe

Page 17: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Finale GUI

Page 18: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Probleme bei der GUI

Position der Teilfenster Auswahl Layout

Hängen während Befehle ausgeführt werden

Page 19: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

MOVEMENT

Page 20: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Movement

...wo wir waren:» MoveTo» MoveForward/Backward» TurnLeft/Right» Wander

Page 21: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Movement

WRPCommands zur Anfrage einer Bewegung:

» GOTO_XY» MOVE_BACKWARD» MOVE_FORWARD» TURN_LEFT» TURN_RIGHT

Page 22: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Movement

Entwickeln von Workarounds mit GOTO_XY

1 Woche später: Nicht machbar 2 Wochen später: Bugfix!

(WRPServer-1.1.0)

Page 23: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Movement

...war ein Zeitfresser!

» Grundfunktionalität verstehen (Doku?)

» Rumprobieren» Fehlersuche am falschen Ende» Workarounds – Code für die

Tonne

Page 24: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

WANDER-FUNKTION

Page 25: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Wander Funktion

Punkte durch klicken auf die Map festlegen

Ausgewählte Punkte in der Map darstellen

Umrechnung Panel ↔ Roboterkoordinaten

Einzelne Punkte auf der Karte abwandern

Darstellung bei Zoom und Scroll anpassen

Page 26: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Ablauf

1) Klick auf die Map erstellt Punkt

2) Jeder Punkt → Kreis auf der Map

3) Werden in einer Liste gespeichert

4) Umrechnung in Roboterkoordinaten

5) Roboter kriegt umgerechnete Koordinaten

6) Punkte abwandern

7) Löschen der Punkte auf der Map

Page 27: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Beispielbild

Blaue Punkte = Wegpunkte

Roter Punkt = Roboter

Start des Wanderns über

Functions → wander the given points

Page 28: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Umrechnung

1) X-Wert * Skalierung

2) Y-Wert * Skalierung * -1

3) Mapverschiebung mit einrechnen

+/- Verschiebung * Skalierung

Page 29: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

MAP

Page 30: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Map Visualisierung

Problemstellung: Wie visualisiert man angegebene Punkte & Linien im Textformat für eine GUI.

2 Ansätze:

Ein Bild davon erstellen

Direkt auf dem Panel zeichnen

DATA(points)-2920 -1880-2920 -1700-2920 -1600

LINES-2900 -514 -2901 -1881-2278 688 -2278 313-1203 279 -1204 -534

Page 31: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Ansatz: Bild erstellen

Punkte und Linien werden dem Graphics(2D) Objekt eines BufferedImage's hinzugefügt.

for (MapLine ml : lines){ g.drawLine((int)ml.getP1().getX(), (int)ml.getP1().getY()*-1,

(int)ml.getP2().getX(), (int)ml.getP2().getY()*-1 );

}

for (MapPoint mp : points){ g.drawLine((int)mp.getX(), (int)mp.getY()*-1,

(int)mp.getX()+5), ((int)mp.getY()*-1 );

}

Page 32: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Ansatz: Bild erstellen

Generell gute Idee, aber Probleme!

Map Koordinaten != GUI Koordinaten

Bild Koordinaten ggf. != GUI Koordinaten

→ hoher Aufwand, evtl. nicht performant.

Ebenfalls Probleme beim skalieren/zoomen

→ Bild für jedes zoomen neu erstellen?

Keine gute Idee → wurde verworfen

Page 33: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Ansatz: Direkt auf dem Panel zeichnen

Gleiche Vorgehensweise wie Bild erstellen

Unterschied: paintComponent Methode des Panels wird überschrieben und dort die Linien und Punkte gezeichnet.

Vorteile:

→ Map Koordinaten ~ Panel/GUI Koordinaten

→ Einheitliches skalieren mit wenig Aufwand möglich

Page 34: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Ansatz: Direkt auf dem Panel zeichnen

Resultat:

Page 35: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Problem – große Map, kleineres Sichtfeld

Maps können teilweise sehr groß sein

Verhältnis Mapgröße ↔ GUI Fenster teilweise schlecht

Lösung:

→ MapPanel zoomable machen

Zoomfaktor einführen, kein Zoom → Zoomfaktor 1.0

In der paintComponent() Methode muss dann der zoomfaktor auf die x & y Werte multipliziert werden.

public static void zoomIn() {if(zoomFactor <= 2.0){

MapCanvas.zoomFactor += 0.1;}

}

public static void zoomOut() {if(zoomFactor >= 0.5){

MapCanvas.zoomFactor -= 0.1;}

}

Page 36: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

FACE DETECTION

Page 37: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Face Detection

Probleme:Probleme:

Welche Software ist für unser Projekt

die richtige?

Page 38: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Face Detection

Alternativen

Faint

OpenCV

Face.com

Page 39: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Face Detection

Entscheidung fiel auf:

Page 40: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Face Detection

Warum?Warum?

Faint: Faint: Läuft nur unter WindowsLäuft nur unter Windows

OpenCV: OpenCV: C++ Version kam nicht in FrageC++ Version kam nicht in FrageJava Version genügte nichtJava Version genügte nichtunseren Anforderungenunseren Anforderungen

Face.com:Face.com: Verhältnismäßig einfache Verhältnismäßig einfache Integration in unser ProjektIntegration in unser Projekt

Page 41: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Face Detection

FunktionsweiseFunktionsweise

Gesichtsmerkmale werden auf Face.com mit einem Label gespeichert

Vergleich der Merkmale eines übergebenen Fotos mit den gespeicherten

Page 42: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Face Detection

FazitFazit

In dem Sinne keine Face Detection

Passender: Face Recognition

Page 43: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Was nehmen wir mit?

Page 44: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Was nehmen wir mit?

Wichtige Erkenntnisse:

- API gut dokumentieren!

- Erst denken -> dann programmieren = riesige Zeitersparnis!

Page 45: Abschlusspräsentation Projekt Diogenes. Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement Wander-Funktion Map Kamera Facedetection Was nehmen

Was nehmen wir mit?

- gute Kommunikation in der Gruppe wichtig!