WI Projekt: Programmiertechniken Mobile Agenten : Entwicklung eines Fangenprogramms für Lego Mindstorm unter Lejos Fakultät für Wirtschaftswissenschaften WI Projekt: Programmiertechniken Carsten Frömming, Kristin Lasner E-Mail: k.lasner@stud.hs-wismar.de c.froemming@stud.hs-wismar.de www.hs-wismar.de
Gliederung Aufgabenstellung 1.1 Linie Folgen LinieFolgen 2.1 Strategie 1.2 Fangen LinieFolgen 2.1 Strategie Fangen 3.1 Strategie 3.2 Probleme 3.3 Ergebnisse Fazit
1.1 Aufgabenstellung LinieFolgen NXT Programmierung mittels Java und Lejos Abfahren eines Parcours (links und rechts herum) Parcours entlang einer schwarzen Linie mit verschiedenen Schwierigkeiten Farbwerterkennung mit Hilfe eines Lichtsensors
1.2 Aufgabenstellung Fangen Zwei Roboter mit unterschiedlichen Farbmarkierungen Weißes Spielfeld Schwarze Markierung am Spielfeldrand Koordinatenermittlung via BattleCam Koordinatenübermittlung via Bluetooth NXT soll Gegner fangen Regeln: Keine Manipulation der Datenströme Nicht von der Spielfläche fahren Verlorene Farbmarkierung = verlorenes Spiel
2.1 Strategie LinieFolgen Ermittlung der schwarzen Linie mit Lichtsensor Farbgrenze als Richtwert Wenn Linie verlassen, dann: Roboter stop Rotation mit bestimmter Gradzahl nach links Wenn immer noch nicht schwarz, dann: Rotation in entgegengesetzte Richtung mit doppelter Gradzahl usw. bis schwarze Linie gefunden
3.1 Strategie Fangen Nach erfolgreicher Bluetooth - Verbindung: Koordinatenermittlung Ausrichten auf Ziel Fahren einer bestimmten Strecke Erneutes Ausrichten auf Ziel usw. Anhalten, Rotation bei schwarzer Linie
3.2 Probleme Parallele Koordinatenermittlung und Navigation Trägheit der Bluetooth-Koordinatenübermittlung Fluchtweg des Gegners bestimmen Einsatz des Arbitrators Schattenwurf auf weißem Spielfeld
3.3 Ergebnisse Einsatz Arbitrator zur Aufgabenerfüllung Verwaltung verschiedener Behavoir Klassen Aufbau: public class Arbitrator { Behavior b1 = new Exit(); Behavior b2 = new Ausrichten(); Behavior b3 = new Vorwaerts(); Behavior b4 = new SchwarzeLinie(); Behavior [] bArray = {b2, b4, b3, b1}; Arbitrator arby = new Arbitrator(bArray); arby.start(); }//Arbitrator
3.3 Ergebnisse (2) public class SchwarzeLinie implements Behavior { Aufbau Behavoir – Klasse: public class SchwarzeLinie implements Behavior { public boolean takeControl() { //BESCHREIBUNG }//takeControl public void suppress() { }//suppress public void action() { }//action }//Vorwaerts NXT richtet sich aus
4. Fazit Programmierkenntnisse konnten vertieft und angewendet werden Positiv: Selbstständige Lösung von Problemen Negativ: Qualität der Webcam; kein paralleles Arbeiten möglich Fragen?