Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projektewise24:projekt6:planung [2024/12/15 13:12] uszer |
projektewise24:projekt6:planung [2024/12/15 23:38] (aktuell) fiona.woitzik |
||
---|---|---|---|
Zeile 32: | Zeile 32: | ||
- | Der Roboter überprüft nach seiner aktivierung, ob alle Systeme (Gun, Kamera, Räder) ordentlich funktionieren, und bricht das Programm bei einem Fehler ab um eine Error-Message auszugeben. Ist alleas funktionstüchtig, so beginnt der Roboter zu patrollieren und scan dabei nach Zielen. Wird ein Ziel erfasst, so wird gezielt und dann geschossen. Verliert der Roboter sein Ziel, so bleibt er in einem "Awareness"-Zustand, während dessen er den Bereich, in dem das Ziel zuletzt gesehen wurde, im Blick behält und weiterhin sucht. Nach ablauf eines bestimmten Awareness-Cooldowns fährt der Roboter fort, zu patrollieren. | + | Der Roboter überprüft nach seiner aktivierung, ob alle Systeme (Gun, Kamera, Räder) ordentlich funktionieren, und bricht das Programm bei einem Fehler ab um eine Error-Message auszugeben. Ist alles funktionstüchtig, so beginnt der Roboter zu patroullieren und scan dabei nach Zielen. Wird ein Ziel erfasst, so wird gezielt und dann geschossen. Verliert der Roboter sein Ziel, so bleibt er in einem "Awareness"-Zustand, während dessen er den Bereich, in dem das Ziel zuletzt gesehen wurde, im Blick behält und weiterhin sucht. Nach ablauf eines bestimmten Awareness-Cooldowns fährt der Roboter fort, zu patroullieren. |
Kann geschossen werde, so wartet der Roboter kurz nach jedem Schuss, dieser Colldown soll anpassbar sein, und überprüft dann, ob noch Munition vorhanden ist. Falls nein werden die gespeicherten Bewegungsdaten genutzt, um zurück zum Anfangspunkt zu fahren, ansonsten fährt das Programm normal fort. | Kann geschossen werde, so wartet der Roboter kurz nach jedem Schuss, dieser Colldown soll anpassbar sein, und überprüft dann, ob noch Munition vorhanden ist. Falls nein werden die gespeicherten Bewegungsdaten genutzt, um zurück zum Anfangspunkt zu fahren, ansonsten fährt das Programm normal fort. | ||
- | ===== Vorläufiger Ablaufplan: ===== | + | ===== Ablaufplan: ===== |
- | - Design | + | === Design: === |
- | - base vordesignen | + | Das entwerfen eines funktionsfähigen Rohbaus des Roboters. Dabei muss besonders auf mögliches Verdrehen der Kabel geachtet werden. Außerdem muss eine sicher Befestigung für die Nerf vorhanden sein, dies kann erst final bearbeitet werden, wenn über die Nerf entschieden wurde. Es müssen noch weitere Ziele festgelegt werden, damit ein möglichst unkompliziertes, genaues Design möglich wird. Der Entwurf muss nach verschiedenen Zwischenschritten und final nach Ende der Programmierung des Arduino noch einmal überprüft und möglicherweise angepasst werden und kann dann gebaut bzw. gedruckt werden. |
- | - Ziele festlegen | + | Unsere Gruppe teilt sich die Aufgaben für das Design in zwei Gruppen auf, damit parallel gearbeitet werden kann. |
- | - Kamera und Ziel Erkennung | + | |
- | - funktionierendes Kamera Setup | + | == Kamera und Ziel Erkennung: == |
- | - AI-Gesichtserkennung | + | Parallel wird sich um eine funktionierende Kamera mit möglicher Gesichts- oder Entfernungserkennung gekümmert werden. Dabei muss sowohl auf den Preis, als auch auf einen funktionierenden Input bzw. Output geachtet werden. Es muss mit der Projektleitung über die Finanzierung gesprochen werden. Danach wird sich ein Gruppenmitglied um die Beschaffung des Materials kümmern. Wenn alles angekommen, getestet und für gut befunden wurde, ist dieser Schritt abgeschlossen und das System kann zum Einbauen und Programmieren verwendet werden. |
- | - entsprechenden output | + | |
- | - Schießen | + | == Ziel treffen: == |
- | - Nerf einbauen | + | === Nerf finden: === |
- | - Nerf schießen | + | Als allererstes wird über eine Nerf Gun entschieden bzw. falls nötig eine eigene Gun gebaut, welche dann einige Zwischenschritte erfordert. |
- | - Nerf bewegen | + | Bei eigenem Bau muss ein Entwurf mithilfe von existierenden Guns erstellt werden und dieser gedruckt bzw. gebaut und getestet werden. Nach |
- | - 360 Grad drehen (Horizontal) | + | Testversuchen und möglicher Überarbeitung kann die Gun bei voller Funktion für die nächsten Schritte verwendet werden. |
- | - Hoch und runter (Vertical) | + | |
- | - Magazinerkennung (voll, leer, wie viele Darts übrig) | + | === Schießen und Drehen: === |
- | - Zielen | + | Die Nerf wird vermessen und für das Design verwendet. Wir müssen die Nerf mit dem Arduino verbinden und das schießen programmieren. |
- | - automatisches bewegen anhand Kamera Output | + | Funktioniert das Schießen wird sich um die Bewegung gekümmert. Sowohl das horizontale, als auch das vertikale Drehen muss programmiert und |
- | - searching (kein gesicht) | + | besonders mit dem Design abgestimmt werden. Als letzten Schritt können wir die Magazinerkennung anstreben, um uns einen Wert über den |
- | - aiming (gesicht erkannt, Nerf wird bewegt um zu zielen) | + | Status des Magazins zurückgeben zu lassen. Das Auffüllen des Magazins werden wir nicht automatisieren. Nach Abschluss dieses Schritts |
- | - firing (Nerf schießt sobald ausgerichtet) | + | sollte die Nerf schießen und sich nach Einbau in das gedruckte Modell auch drehen können. |
- | - //Bugs fixen und Code cleanen// | + | |
- | - User input | + | === Zielen: === |
- | - remote controlled manuelles zielen, schießen | + | Der Output der Kamera wird mit der Dreh- und Schussfunktion der Gun verbunden. Die Gesichtssuche und -erkennung und die Übergabe dieser |
- | - kamera live feed | + | Information, damit die Gun entsprechend gedreht wird muss einwandfrei funktionieren. Nach der Ausrichtung muss ein Schuss abgegeben werden. Sollen weitere Ziele erkannt werden, wird bleibt die Gun weiter im Einsatz und führt die Schritte auf das nächste Ziel aus. Wenn keine weiteren Ziele erkannt werden, kehrt die Gun in ihre Ausgangs- bzw. Ruheposition zurück. |
- | - Mobil machen | + | |
- | - Base neu designen | + | === Fehlerbehebung: === |
- | - Räder anbauen | + | Die Beseitigung jeglicher Fehler wird in diesem Schritt abgeschlossen. Das bezieht sich sowohl auf den Code als auch auf den Roboter und das gesamte Modell. Dieser Schritt wird logischerweise schon während der Bearbeitung von allen anderen Schritten durchgeführt und wird deswegen auch mit einem sehr großzügigen Zeitpuffer geplant. Eine finale Überprüfung aller Schritte mit dem Ziel, dass alles so unkompliziert wie möglich läuft, ist sehr wichtig. Wenn das der Fall ist, ist der Roboter soweit in seiner Grundidee fertig. In den weiteren Schritten folgen Ideen für die Weiterentwicklung. |
- | - Neuen Code für Verfolgung von erkannten gesichtern | + | |
- | - zu nah dran/ zu weit weg | + | === Optimierung: (optional) === |
- | - automatisches zurückziehen/parken wenn Munition alle | + | In der aktuellen Planung bleibt ein nötiger Benutzerbeitrag. Der Roboter muss an einer bestimmten Stelle aufgebaut werden, damit er sinnvoll arbeitet. Optimal wäre natürlich ein Roboter, der sich fortbewegen könnte. Dafür müsste unser Rohbau etwas umdesignt werden, damit Räder angebaut werden könnten. Der Code müsste ergänzt werden, damit der Roboter erkannten Gesichtern hinterherfahren oder nach leerer Munition in eine Parkposition zurückkehren kann. Auch ein regelmäßiges Patrouillieren oder ein manuelles Fahren mithilfe einer Fernbedingung wäre eine Möglichkeit den Roboter zu verbessern. Das alles wäre mit weiterem Bau- und Programmieraufwand verbunden und könnte nach erfolgreichem Abschluss der vorherigen Schritte bei weiterer Zeit überdacht werden. |
- | - patroullieren | + | |
- | - manuelles fahren | + | |
Zeile 79: | Zeile 78: | ||
===== Materialien ===== | ===== Materialien ===== | ||
Benötigt werden vorallem: | Benötigt werden vorallem: | ||
- | * NerfGun, falls möglich motorisiert | + | * NerfGun, falls möglich motorisiert oder alternativ ein eigenes Design |
* Arduino kompatible Kamera | * Arduino kompatible Kamera | ||
* Webcam mit Bluetooth (Bluetooth receiver) | * Webcam mit Bluetooth (Bluetooth receiver) | ||
Zeile 93: | Zeile 92: | ||
Aufgrund hoher Komplexität bei Arbeit mit AI und Gesichtserkennung kann die Fehlerbehebung bei nicht funktionierendem Face Tracking sehr kompliziert und langwierig werden, was Arbeitszeit von andern Teilen des Projekts kosten kann. Dadurch besteht das Risiko, dass wir nicht alle unserer Vorgenommenen Ziele erarbeiten können. | Aufgrund hoher Komplexität bei Arbeit mit AI und Gesichtserkennung kann die Fehlerbehebung bei nicht funktionierendem Face Tracking sehr kompliziert und langwierig werden, was Arbeitszeit von andern Teilen des Projekts kosten kann. Dadurch besteht das Risiko, dass wir nicht alle unserer Vorgenommenen Ziele erarbeiten können. | ||
Auch sind wir nicht nur von der Funktionstüchtigkeit der Kamera und der Erkennungs-Software abhängig, auch die Nerf muss brauchbar sein und bleiben, und muss vom Arduino angesteuert werden können. Dies kann vorallem ein Problem sein, wenn der Trigger-Mechanismus mechanisch und nicht elektronisch funktioniert. | Auch sind wir nicht nur von der Funktionstüchtigkeit der Kamera und der Erkennungs-Software abhängig, auch die Nerf muss brauchbar sein und bleiben, und muss vom Arduino angesteuert werden können. Dies kann vorallem ein Problem sein, wenn der Trigger-Mechanismus mechanisch und nicht elektronisch funktioniert. | ||
+ | Sollte es notwendig sein, eine eigene Gun zu bauen, so kann es möglcih sein, dass wir ein oder mehrere zusätzliche Ziele streichen müssen, da dies sehr arbeits- und zeitintensiv werden kann. Sollte dies notwendig werden, wird vermutlich Arbeitschritt 5, das mobil machen, gestrichen. | ||
+ | |||
+ | |||
+ | ===== Gantt-Diagramm ===== | ||
+ | {{ :projektewise24:projekt6:gantt-diagramm.jpg |}} | ||
+ | |||
+ | ===== Zeitliche Planung ===== | ||
+ | ===16. - 20. Dezember: Projektstart und Materialbeschaffung=== | ||
+ | * Organisation aller benötigten Materialien (z. B. Kamera, Arduino, Motoren, Nerf Gun, etc.) | ||
+ | |||
+ | |||
+ | ===21. Dezember - 9. Januar: Parallele Aufgaben=== | ||
+ | * Gruppe A programmiert die Gesichtserkennung und die Steuerung | ||
+ | * Gruppe B erstellt das CAD-Modell des Roboters unter Berücksichtigung der Befestigungspunkte und der elektrischen Verkabelung | ||
+ | |||
+ | |||
+ | ===10. - 16. Januar: Integration=== | ||
+ | * Die Software (Programme von Gruppe A) und Hardware (CAD-Design von Gruppe B) werden zusammengeführt | ||
+ | * Erste Tests werden durchgeführt, um sicherzustellen, dass die Systeme miteinander harmonieren | ||
+ | |||
+ | |||
+ | ===17. - 31. Januar: Testläufe und Fehlersuche=== | ||
+ | * Die gesamte Gruppe testet den Roboter in realistischen Szenarien, z. B.: | ||
+ | * Kann die Kamera ein Gesicht erkennen und die Nerf Gun ausrichten? | ||
+ | * Funktioniert der Schuss- und Drehmechanismus präzise? | ||
+ | * Fehler im Code, Design oder bei der Integration werden behoben | ||
+ | |||
+ | |||
+ | ===1. - 9. Februar: Optionale Optimierungen=== | ||
+ | * Wenn noch Zeit bleibt, arbeiten wir an „Nice-to-have“-Features, z. B.: | ||
+ | * Mobilität des Roboters (Räder hinzufügen und programmieren) | ||
+ | * Patrouillenmodus | ||
+ | * Manuelle Steuerung per Fernbedienung | ||