RoLoMa: Unterschied zwischen den Versionen
Alois (Diskussion | Beiträge) |
|||
| (3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 147: | Zeile 147: | ||
|- | |- | ||
|rowspan="3"| | |rowspan="3"|07.03.2011 - 13.03.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 170: | Zeile 170: | ||
|- | |- | ||
|rowspan="3"|14. | |rowspan="3"|14.03.2011 - 20.03.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 188: | 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 221: | Zeile 221: | ||
|- | |- | ||
|rowspan="3"|28. | |rowspan="3"|28.03.2011 - 03.04.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 229: | 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 241: | Zeile 244: | ||
|- | |- | ||
|rowspan="3"| | |rowspan="3"|04.04.2011 - 10.04.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
| Zeile 250: | Zeile 253: | ||
|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 --> | ||
|- | |- | ||
| Zeile 264: | Zeile 269: | ||
|- | |- | ||
|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- | *Ü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. | *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. | *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. | ||
| Zeile 289: | Zeile 297: | ||
|- | |- | ||
|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 --> | ||
|- | |- | ||
| Zeile 297: | Zeile 306: | ||
|<!-- Beginn Inhalt Board --> | |<!-- Beginn Inhalt Board --> | ||
* verschiedene UART sourcecodes aus fremden Demoapplikationen versucht auf das board zu portieren | * 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 --> | ||
|- | |- | ||
| Zeile 308: | Zeile 319: | ||
|- | |- | ||
|rowspan="3"| | |rowspan="3"|09.05.2011 - 15.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 --> | ||
*Verfeinerung Board GUI | |||
*Debugging Initialisierungsfunktion | |||
*Vergleiche Dokumentation/Schaltpläne/Code für QVGA Baseboard | |||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
| Zeile 325: | Zeile 340: | ||
|- | |- | ||
|rowspan="3"|16. | |rowspan="3"|16.05.2011 - 22.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 --> | ||
* Bluetooth Modul Teile erhalten | |||
*Bluetooth Module zusammengebaut | |||
*BT Modul getestet | |||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
| Zeile 342: | Zeile 361: | ||
|- | |- | ||
|rowspan="3"|23. | |rowspan="3"|23.05.2011 - 29.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 --> | ||
* PLL Initialisierung kontrolliert, marginaler Fehler korrigiert | |||
* UART Initialisierung kontrolliert, nichts gefunden. UART0 Senden OK, UART1 NOK | |||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
| Zeile 359: | Zeile 381: | ||
|- | |- | ||
|rowspan="3"|30. | |rowspan="3"|30.05.2011 - 05.06.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
*Statusabgleich | |||
*Funktionsbesprechung Board GUI | |||
<!-- Ende Inhalt Gemeinsam --> | <!-- Ende Inhalt Gemeinsam --> | ||
|- | |- | ||
|Board | |Board | ||
|<!-- Beginn Inhalt Board --> | |<!-- Beginn Inhalt Board --> | ||
* UART1 Initialisierung auf P3.16 und P3.17 führt zum Erfolg | * UART1 Initialisierung auf P3.16 und P3.17 führt zum Erfolg | ||
* Die nötigen UART Funktionen identifiziert und modular implementiert. | * Die nötigen UART Funktionen identifiziert und modular implementiert. | ||
* UART Funktionen Interrupt getrieben implementiert | * UART Funktionen Interrupt getrieben implementiert | ||
<!-- Ende Inhalt Board --> | <!-- Ende Inhalt Board --> | ||
|- | |- | ||
| Zeile 382: | Zeile 403: | ||
|- | |- | ||
|rowspan="3"| | |rowspan="3"|06.06.2011 - 19.06.2011 | ||
|Gemeinsam | |Gemeinsam | ||
|<!-- Beginn Inhalt Gemeinsam --> | |<!-- Beginn Inhalt Gemeinsam --> | ||
* Funktionstest für | * Live Funktionstest für Bluetooth Modul am Board und interruptgetriebene UART Funktionen | ||
*Kommunikationstest NIBObee - Board | |||
<!-- Ende Inhalt Gemeinsam --> | <!-- Ende Inhalt Gemeinsam --> | ||
|- | |- | ||
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 | |