RoLoMa: Unterschied zwischen den Versionen
Alois (Diskussion | Beiträge) |
|||
| (17 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
| Zeile 92: | Zeile 92: | ||
|- | |- | ||
|colspan=" | |'''21.02.2011''' | ||
|colspan="2"|'''Projekt akzeptiert -> Projektstart''' | |||
|- | |- | ||
| Zeile 146: | Zeile 147: | ||
|- | |- | ||
|rowspan="3"| | |rowspan="3"|07.03.2011 - 13.03.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 169: | Zeile 170: | ||
|- | |- | ||
|rowspan="3"|14. | |rowspan="3"|14.03.2011 - 20.03.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 187: | Zeile 188: | ||
** Korrektur mittles Regelkreis unter Berücksichtigung der Odometriesensoren | ** Korrektur mittles Regelkreis unter Berücksichtigung der Odometriesensoren | ||
** Korrektur nur mttels der Werte von den Liniensensoren | ** Korrektur nur mttels der Werte von den Liniensensoren | ||
* Obwohl der Regelkreis eine | * Obwohl der Regelkreis eine Geradeausfahrt auch ohne Linie schafft ist der Start problematisch und daher für unsere Zwecke ungeeignet | ||
<!-- Ende Inhalt NIBObee --> | <!-- Ende Inhalt NIBObee --> | ||
|- | |- | ||
|rowspan="3"|21. | |rowspan="3"|21.03.2011 - 27.03.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 220: | Zeile 221: | ||
|- | |- | ||
|rowspan="3"|28. | |rowspan="3"|28.03.2011 - 03.04.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 228: | Zeile 229: | ||
|Board | |Board | ||
|<!-- Beginn Inhalt Board --> | |<!-- Beginn Inhalt Board --> | ||
*neuerliche Recherche nach UART Implementierungen | |||
*Vergleich diverser UART Implementierungen | |||
*Durcharbeiten der Dokumentation | |||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
| Zeile 236: | Zeile 240: | ||
*Erfolgreiches Ausrichten des NIBObee im Zentrum eines Felds des Labyrinths | *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. | *Probleme beim Unterscheiden von Spurabweichung und Kreuzung. Kann mit den vorhandenen Sensoren nicht gelöst werden. Es wird eine Erweiterung des NIBObee geplant. | ||
*Zusätzliche 6 LEDs für Debugzwecke über Erweiterungsports angeschlossen und Ansteuerung implementiert | |||
<!-- Ende Inhalt NIBObee --> | <!-- Ende Inhalt NIBObee --> | ||
|- | |- | ||
|rowspan="3"| | |rowspan="3"|04.04.2011 - 10.04.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
*Nochmals Bauteile für BT-Modul getauscht da ein leistungfähiger Low-Drop-Out Spannungsregeler verwendet werden soll um auch mit abgesunkener Akkuspannung noch eine konstante Spannung am BTM-222 zu haben. | |||
*Das machte allerdings eine Korrektur an den fertigen Leiterplatten notwendig :-( | |||
<!-- Ende Inhalt Gemeinsam --> | <!-- Ende Inhalt Gemeinsam --> | ||
|- | |- | ||
|Board | |Board | ||
|<!-- Beginn Inhalt Board --> | |<!-- Beginn Inhalt Board --> | ||
*IO Konfiguration für UART 1 nicht erfolgreich | |||
*neuerliches Durcharbeiten der Dokumentation | |||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
|NIBObee | |NIBObee | ||
|<!-- Beginn Inhalt NIBObee --> | |<!-- Beginn Inhalt 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 | *Erzeugen von DoxyGen Dokumentation | ||
<!-- Ende Inhalt NIBObee --> | <!-- Ende Inhalt NIBObee --> | ||
|- | |- | ||
|rowspan="3"|11. | |rowspan="3"|11.04.2011 - 01.05.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
*Statusabgleich | |||
<!-- Ende Inhalt Gemeinsam --> | <!-- Ende Inhalt Gemeinsam --> | ||
|- | |- | ||
|Board | |Board | ||
|<!-- Beginn Inhalt Board --> | |<!-- Beginn Inhalt Board --> | ||
*Design Windows Board GUI | |||
*Implementierung Windows Board GUI | |||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
|NIBObee | |NIBObee | ||
|<!-- Beginn Inhalt NIBObee --> | |<!-- Beginn Inhalt NIBObee --> | ||
*Überarbeiten des Event-Mechanismus | |||
*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. | |||
*Waagrechte Ausrichtung des NIBObee korrigiert da der Abstand der Liniensensoren zum Boden von essentieller Bedeutung ist. | |||
*Doxygen Kommentare in Code eingefügt | |||
*Doxygen in Entwicklungsumgebung eingebunden | |||
<!-- Ende Inhalt NIBObee --> | <!-- Ende Inhalt NIBObee --> | ||
|- | |- | ||
|rowspan="3"| | |rowspan="3"|02.05.2011 - 08.05.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
*Statusabgleich | |||
<!-- Ende Inhalt Gemeinsam --> | <!-- Ende Inhalt Gemeinsam --> | ||
|- | |- | ||
|Board | |Board | ||
|<!-- Beginn Inhalt Board --> | |<!-- Beginn Inhalt Board --> | ||
* verschiedene UART sourcecodes aus fremden Demoapplikationen versucht auf das board zu portieren | |||
*Ursachenforschung | |||
*Versuch Support Embedded Artists => Support für dieses Board wurde eingestellt | |||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
|NIBObee | |NIBObee | ||
|<!-- Beginn Inhalt NIBObee --> | |<!-- Beginn Inhalt NIBObee --> | ||
*Tests mit neuen, zusätzlichen Liniensensoren. | |||
*Probleme mit Hardwareausfällen der neuen Erweiterung. Die Phototransistoren reagieren nicht so gut wie erwartet. Ausserdem scheinen sie sehr leicht bei den Lötarbeiten defekt zu werden. Austausch notwendig | |||
*Weitere Optimierungender Debugausgaben notwendig. Zusätzliche Funktionen in Testapplikation implementiert um nicht nur die Testpunkte, sondern auch die unterschiedlichen dezimalen Werte in symbolische Ausgaben umrechnen zu können. | |||
*Fehlerhafte Linienendeerkennung, optimieren des Algorithmus. | |||
<!-- Ende Inhalt NIBObee --> | <!-- Ende Inhalt NIBObee --> | ||
|- | |||
|rowspan="3"|09.05.2011 - 15.05.2011 | |||
|Gemeinsam | |||
|<!-- Beginn Inhalt Gemeinsam --> | |||
*Statusabgleich | |||
<!-- Ende Inhalt Gemeinsam --> | |||
|- | |||
|Board | |||
|<!-- Beginn Inhalt Board --> | |||
*Verfeinerung Board GUI | |||
*Debugging Initialisierungsfunktion | |||
*Vergleiche Dokumentation/Schaltpläne/Code für QVGA Baseboard | |||
<!-- Ende Inhalt Board --> | |||
|- | |||
|NIBObee | |||
|<!-- Beginn Inhalt NIBObee --> | |||
*Fertigstellen der MaDeCo State Machine für die unterschiedlichen Betriebsmodi und der Kommunikation mit dem drive Modul | |||
*Implementieren der unterschiedlichen Betriebsmodi im drive Modul | |||
*Test des Calibrate Modus zeigt Probleme beim Geradeauslauf nach Linienende, Kalibrierungsvorlage muss überarbeitet werden. | |||
<!-- Ende Inhalt NIBObee --> | |||
|- | |||
|rowspan="3"|16.05.2011 - 22.05.2011 | |||
|Gemeinsam | |||
|<!-- Beginn Inhalt Gemeinsam --> | |||
*Statusabgleich | |||
<!-- Ende Inhalt Gemeinsam --> | |||
|- | |||
|Board | |||
|<!-- Beginn Inhalt Board --> | |||
* Bluetooth Modul Teile erhalten | |||
*Bluetooth Module zusammengebaut | |||
*BT Modul getestet | |||
<!-- Ende Inhalt Board --> | |||
|- | |||
|NIBObee | |||
|<!-- Beginn Inhalt NIBObee --> | |||
*Zusätzliche MaDeCo Funktionen für den Testbetrieb | |||
*Erweiterung des MaDeCo Protokolls für einfachere Implementierung | |||
*Überarbeiten der Inlinedokumentation | |||
<!-- Ende Inhalt NIBObee --> | |||
|- | |||
|rowspan="3"|23.05.2011 - 29.05.2011 | |||
|Gemeinsam | |||
|<!-- Beginn Inhalt Gemeinsam --> | |||
*Statusabgleich | |||
<!-- Ende Inhalt Gemeinsam --> | |||
|- | |||
|Board | |||
|<!-- Beginn Inhalt Board --> | |||
* PLL Initialisierung kontrolliert, marginaler Fehler korrigiert | |||
* UART Initialisierung kontrolliert, nichts gefunden. UART0 Senden OK, UART1 NOK | |||
<!-- Ende Inhalt Board --> | |||
|- | |||
|NIBObee | |||
|<!-- Beginn Inhalt NIBObee --> | |||
*Aktualisieren der Wiki Dokumentation | |||
*Modus Calibration erfolgreich abgeschlossen, EEPROM wird mit korrekten Werten versorgt | |||
*Linienverfolgung funktioniert nicht zufriedenstellend, Analyse aufwendig da beim Fehlersuchen sehr viele Daten der Liniensensoren anfallen, übertragen und ausgewertet müssen. Dabei stossen wir immer wieder an die Leistungsgrenzen des Systems. | |||
<!-- Ende Inhalt NIBObee --> | |||
|- | |||
|rowspan="3"|30.05.2011 - 05.06.2011 | |||
|Gemeinsam | |||
|<!-- Beginn Inhalt Gemeinsam --> | |||
*Statusabgleich | |||
*Funktionsbesprechung Board GUI | |||
<!-- Ende Inhalt Gemeinsam --> | |||
|- | |||
|Board | |||
|<!-- Beginn Inhalt Board --> | |||
* UART1 Initialisierung auf P3.16 und P3.17 führt zum Erfolg | |||
* Die nötigen UART Funktionen identifiziert und modular implementiert. | |||
* UART Funktionen Interrupt getrieben implementiert | |||
<!-- Ende Inhalt Board --> | |||
|- | |||
|NIBObee | |||
|<!-- Beginn Inhalt NIBObee --> | |||
*Weiter massive Probleme bei der Linienverfolgung | |||
*Nach Rotation entstehen üblicherweise Positionierungsfehler die sich danach aufschaukeln | |||
*Follow und Drive Modul werden überarbeitet um "weichere" korrektur zu imlpementieren | |||
<!-- Ende Inhalt NIBObee --> | |||
|- | |||
|rowspan="3"|06.06.2011 - 19.06.2011 | |||
|Gemeinsam | |||
|<!-- Beginn Inhalt Gemeinsam --> | |||
* Live Funktionstest für Bluetooth Modul am Board und interruptgetriebene UART Funktionen | |||
*Kommunikationstest NIBObee - Board | |||
<!-- Ende Inhalt Gemeinsam --> | |||
|- | |||
|Board | |||
|<!-- Beginn Inhalt Board --> | |||
* Interrupt Handler erweitert: signalisiert wenn message komplett (CR) empfangen | |||
* Handling für Sequenz- und Acknowledge-Nummern | |||
* state machine für MaDeCo Protokoll | |||
* Interface zu PC-Applikation | |||
<!-- Ende Inhalt Board --> | |||
|- | |||
|NIBObee | |||
|<!-- Beginn Inhalt NIBObee --> | |||
*Überarbeiten des Scheduling um Linienverfolgung mit mehr Priorität zu versehen | |||
*Weitere Überarbeitung der Linienerkennung | |||
*Verbesserung der Schnittstelle zum Board (ACK strikt nach Protokoll, keine unnötigen Ausgaben) | |||
*Korrigieren des problematischen Verhaltens wegen der Meldungen des BTM-222 in der Initialisierungsphase | |||
<!-- Ende Inhalt NIBObee --> | |||
|- | |||
|'''20.06.2011''' | |||
|colspan="2"|'''Projekt präsentiert -> Projektende''' | |||
|- | |- | ||
Aktuelle Version vom 26. Juni 2011, 15:40 Uhr
RoLoMa ist der, vielleicht wenig einfallsreiche, Name des ESE-Projekts im 4. Semester. Es ist die Abkürzung für "Robots Lost in Maze".
Projektbeschreibung
Aufgabe
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

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:
- BTM-112
- BTM-222
Die Entscheidung ist zugunsten des BTM-222 gefallen. Details dazu können der BTM-222-Seite entnommen werden.
Software
Details zur Software sind auf den Seiten von NIBObee und LPC2478 zu finden.
Protokolle
Bluetooth
Der gesamte Bluetooth Stack ist im BTM-222 realsiert und muss daher im Projekt nicht betrachtet werden.
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 |
|
| 21.02.2011 | Projekt akzeptiert -> Projektstart | |
| 21.02.2011 - 27.02.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 28.02.2011 - 06.03.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 07.03.2011 - 13.03.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 14.03.2011 - 20.03.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 21.03.2011 - 27.03.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 28.03.2011 - 03.04.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 04.04.2011 - 10.04.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 11.04.2011 - 01.05.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 02.05.2011 - 08.05.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 09.05.2011 - 15.05.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 16.05.2011 - 22.05.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 23.05.2011 - 29.05.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 30.05.2011 - 05.06.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 06.06.2011 - 19.06.2011 | Gemeinsam |
|
| Board |
| |
| NIBObee |
| |
| 20.06.2011 | Projekt präsentiert -> Projektende | |