Bei diesem Projekt soll ein autonomer Roboter ein Labyrinth analysieren, alle vorhandenen Abzweigungen protokollieren und diese Daten an eine zentrale Einheit senden. Die zentrale Einheit soll einen zweiten autonomen Roboter mit diesen Daten auf dem berechneten kürzesten Weg durch das Labyrinth lotsen können. Dazu muss eine Kommunikation zwischen dem Roboter und der zentralen Einheit hergestellt werden.
Die oben erwähnte zentrale Einheit wird im weiteren Dokument als „Board“ bezeichnet und der autonome Roboter, aufgrund des gewählten Produkts „NIBObee“.
Details
Beispiellabyrinth
Das Labyrinth wird eine Matrix mit vordefinierter Größe sein (z.B. 8x8) bei dem die möglichen Wege als schwarze Linie dargestellt sind. Auf dieser Linie wird sich der NIBObee bewegen. Die Aufgabe des ersten NIBObee besteht nun darin das gesamt Labyrinth abzufahren und eine Karte zu erstellen.
Diese gesammelte Information wird dann an das Board übertragen. Dort wird das Labyrinth auf einer grafischen Ausgabe dargestellt und der Benutzer kann einen beliebigen Zielpunkt für den zweiten NIBObee festlegen. Der optimale Weg wird berechnet und der zweite NIBObee über diesen Weg an das definierte Ziel geleitet.
Aufgabenteilung
An dem Projekt sind zwei Gruppen beteiligt, eine die sich um die Roboter kümmert (Gruppe NIBObee), eine zweite die die Implementierung der zentralen Einheit (Gruppe Board) vornimmt. Gemeinsam muss die Übertragungstechnik (Hardware und Protokoll) erarbeitet werden. Die Implementierung kann dann getrennt erfolgen und am Ende des Projekts ist eine gemeinsame Testphase notwendig.
Da noch einige Festlegungen bezüglich der verwendeten Hardware und der Übertragungstechnik ausständig sind können sich im Zuge des weiteren Projektfortschritts durchaus noch Änderungen ergeben. Für alle kritischen Elemente wird so früh wie möglich auch eine alternative Lösung als Fallback vorgesehen. Das ist notwendig für den Fall, dass sich für ein Problem keine, zumindest im Rahmen dieses Semesters, realisierbare Implementierung ergibt.
Team Board
Teammitglieder dieser Gruppe sind:
Michaela Escuyer
Thomas Neuber
Robert Pavljuk
Team NIBObee
Teammitglieder dieser Gruppe sind:
Robert Peterfi
Alois Pochmann
Reinhard Weismann
Realisierung
Plattformen / Hardware
Die Plattformen der Roboter und der Kontrolleinheit sind im Folgenden aufgelistet und stehen (wenn auch teilweise nur als Bausatz) fertig zur Verfügung. Die Hardware der Kommunikationseinrichtung wird im Zuge dieses Projekts erstellt.
Roboter
Der eingesetzte Roboter ist eine NIBObee von Nicai-Systems. Dieser Roboter verfügt über einen Liniensensor der es prinzipiell ermöglicht einer kontrastreichen Linie, vorzugsweise schwarze Linie auf weißem Boden, zu folgen.
Weitere Dateils können der NIBObee-Seite entnommen werden.
Kontrolleinheit
Die Zentrale Kontrolleinheit wird auf dem vom 3. Semester bekannten LPC2478 realisiert.
Kommunikation
Die Kommunikation der NIBObee-Roboter mit der zentralen Steuerung erfolgt über Bluetooth. Dazu wird über den auf beiden Plattformen bestehenden UART Anschluss ein Modul mit RS232-BT Umsetzung verwendet.
Die im Folgenden aufgelisteten Module kommen für die Umsetzung in Frage:
Das projektspezifische Protokol zur Übertragung der Labyrinthdaten nach / bei der Erkundung und dann zu Steuerung durch das Labyrinth (Maze Detection and Control) ist zu definieren.
Testumgebung
Labyrinth
Wie schon in der Angabe zu sehen ist gelten für das Labyrinth einige Annahmen die als Voraussetzungen für die Implementierung festgelegt werden:
Es gibt nur gerade Linien
Alle Kreuzungen sind rechtwinkelig
Alle Abstände sind genau ein Vielfaches der kürzesten Verbindung der Mittelpunkte zweier Felder
Alle (nicht sichtbaren) Felder sind gleich groß
Das gesamte Labyrinth entspricht einer Baumstruktur, d.h. es gibt niemals zwei paralelle Wege von einem Punkt zu einem Anderen, also keine geschlossenen Schleifen.
Da die Steuerung ausschließlich über die Liniensensoren implementiert wird ist die Strecke kollisionsfrei zu halten, d.h. der NIBObee wird nicht auf Kontakt mit den Fühlern durch Ausweichmanöver reagieren.
Simulationen
Damit ein unabhängiges Testen der einzelnen Teile des Projekts möglich ist werden in einigen Bereichen Simulationen eingesetzt:
Bluetooth-Verbindung kann mit einem PC und Terminalprogramm getestet werden
MaDeCo-Protokoll wird textbasiert entworfen um mit einfachen Textfiles auf beiden Seiten testen zu können
Projektfortschritt
Der Projektfortschritt wird im gleichen Intervall verfolgt in dem die Lehrveranstaltung abgehalten wird
Woche
Block
Tätigkeiten / Erkenntnisse
14.02.2011 - 20.02.2011
Gemeinsam
Projektdefinition: Festlegen des Projektinhalts und grobe Abstimmung der einzelnen beteiligten Komponenten.
Erstellung eines Dokuments zur Projektbeschreibung
Demo Implementierung von Hr. Kramer angefordert und eingelesen
Sourcen Demo Projekt in Eclipse Ganymed geladen und Debug Optionen ergänzt
Debuggingversuche, Ursachensuche für fehlende Anzeige
NIBObee
Bestellung eingetroffen. Zusammenbau der Roboter durchgeführt
Detailabsprache der benötigten Roboterfunktionen
Analyse der Probleme beim Befahren des Labyrinths und Abbildung auf notwendige Funktionen.
7.3.2011-13.3.2011
Gemeinsam
Recherche Ergebnisse besprochen
Bauteile für Bluetooth Modul sind teilweise nicht optimal (vor allem wegen der Größe). Es werden noch Alternativen gesucht und das Layout und der Bestückungspan wurden geändert.
Board
Mehrstündiger Versuch, das Display mit Demo Applikationen zu testen
daraus resultierende Tests haben ergeben dass das Display defekt war. Das Board wurde gegen ein neues getauscht
neuerliche Inbetriebnahme mit Demo Applikationen
NIBObee
Installation der Entwicklungsumbegung
Testen der Beispielprogramme
Kalibrierung der Liniensensoren
Erstellen eines Testprogramms für die Liniensensoren um die optimale Linienbreite für das Labyrinth ermitteln zu können (2 cm scheint zu breit, Kontrastwert nicht über 128).
14.3.2011-20.3.2011
Gemeinsam
Besprechung der jeweiligen Ergebnisse
neue Bestückungsliste besprechen und fehlende Teile organisieren
Board
weitere Recherche nach lauffähigen Demoapplikationen
Für speziell dieses Board frustrierend wenige bis keine Ergebnisse
NIBObee
Versuche mit zwei unterschiedlichen Ansätzen des Geradeauslaufs des NIBObee:
Korrektur mittles Regelkreis unter Berücksichtigung der Odometriesensoren
Korrektur nur mttels der Werte von den Liniensensoren
Obwohl der Regelkreis eine gradeausfahrt auch ohne Linie schafft ist der Start problematisch und daher für unsere Zwecke ungeeignet
21.3.2011-27.3.2011
Gemeinsam
gegenseitiges Update
fast alle Bauteile eingetroffen bzw. vorhanden, Ausnahme: Printplatte
voraussichtlicher Liefertermin der Printplatte kommende Woche
Board
vergebliche Versuche, den UART in Betrieb zu nehmen
gemeinsam mit Hrn. Wenzl nochmals versucht, auch ergebnislos
Entschluss, das Vorgehen zu ändern
neues Projekt auf Basis Interrupt Template vom 3. Semester
Anpassung auf unsere Umgebung
NIBObee
Implementierung gestartet mit folgenden Funktionen:
Systemtimer mit 100Hz Taktfrequenz
Statemachine für folgende Module:
Drive, zuständig für das fahren entlang der Linie des Labyrinths
Sensor, zuständig für die Fühler. Entprellen und melden von Änderungen.
Line, zuständig für das erkennen der Linie und melden von Abweichungen
Scheduler, der alle Module die einen Event bearbeiten müssen aufruft.
28.3.2011-3.4.2011
Gemeinsam
Leiterplatten eingetroffen, Beginn des Aufbaus der Bluetooth Module
Board
NIBObee
Implementieren der Linienverfolgung mit den Statemachines
Neuer Modul für Distanzmessung. Wurde von der Implementierung der Odometrie-Bibliothek abgeleitet.
Erfolgreiches Ausrichten des NIBObee im Zentrum eines Felds des Labyrinths
Probleme beim Unterscheiden von Spurabweichung und Kreuzung. Kann mit den vorhandenen Sensoren nicht gelöst werden. Es wird eine Erweiterung des NIBObee geplant.
4.4.2011-10.4.2011
Gemeinsam
Board
NIBObee
Fertigstellen des ersten Bluetooth Moduls
Verbindung von NIBObee mit PC hergestellt
Neue Funktionen zur Kommunikation. Senden und Empfangen mittels Interrupts implementiert
Start Implementierung der State Maschine für das MaDeCo Protokoll
Debug Möglichkeit mittels BT-Verbindung zum PC implementiert
PC Testapplikation für die Bluetooth Verbindung mit spezieller Unterstützung des MaDeCo Protokolls implementiert.
Erzeugen von DoxyGen Dokumentation
11.4.2011-1.5.2011
Gemeinsam
Board
NIBObee
Überarbeiten des Event-Machanismus
Optimieren der Debug-Protokollierung über Bluetooth. Strings belegten zu viel Speicher. Das führte zu undefinierbarem Verhalten wegen Überschreiben von Stack und Daten.
Erweitern der PC Applikation zum bedienen der NIBObee BT-Schnittstelle. Die optimierte Debug-Ausgabe kann auf Basis von speziellen Kommentaren der NIBObee-Source (debug.h) symbolisch aufbereitet werden.
Erweiterung mit zusätliche Liniensensoren angefertigt
Wegen zusätzlicher Liniensensoren neue Applikation zum Kalibrieren der Liniensensoren (jetzt 5 Sück) erstellt.
Wegen zusätzlicher Liniensensoren ersetzen des original Moduls zum Einlesen der Analogwerte.
Wegen zusätzlicher Liniensensoren ersetzen des original Moduls zum ermitteln der Werte der Liniensensoren.
Kreuzungserkennung und Linienverfolgung funktionieren nun parallel, NIBObee fährt kleines Testlabyrinth gezielt ab.
2.5.2011-8.5.2011
Gemeinsam
Board
verschiedene UART sourcecodes aus fremden Demoapplikationen versucht auf das board zu portieren