RoLoMa: Unterschied zwischen den Versionen

Aus Callooh Wiki
Zur Navigation springen Zur Suche springen
Rentom (Diskussion | Beiträge)
Alois (Diskussion | Beiträge)
Zeile 92: Zeile 92:
|-
|-


|colspan="3"|'''Projekt akzeptiert -> Projektstart'''
|'''21.02.2011'''
|colspan="2"|'''Projekt akzeptiert -> Projektstart'''
|-
|-


Zeile 290: Zeile 291:
|<!-- 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
<!-- Ende Inhalt Board -->
|-
|NIBObee
|<!-- Beginn Inhalt NIBObee -->
<!-- Ende Inhalt NIBObee -->
|-
|rowspan="3"|9.5.2011-15.5.2011
|Gemeinsam
|<!-- Beginn Inhalt Gemeinsam -->
<!-- Ende Inhalt Gemeinsam -->
|-
|Board
|<!-- Beginn Inhalt Board -->
<!-- Ende Inhalt Board -->
|-
|NIBObee
|<!-- Beginn Inhalt NIBObee -->
<!-- Ende Inhalt NIBObee -->
|-
|rowspan="3"|16.5.2011-22.5.2011
|Gemeinsam
|<!-- Beginn Inhalt Gemeinsam -->
<!-- Ende Inhalt Gemeinsam -->
|-
|Board
|<!-- Beginn Inhalt Board -->
<!-- Ende Inhalt Board -->
|-
|NIBObee
|<!-- Beginn Inhalt NIBObee -->
<!-- Ende Inhalt NIBObee -->
|-
|rowspan="3"|23.5.2011-29.5.2011
|Gemeinsam
|<!-- Beginn Inhalt Gemeinsam -->
<!-- Ende Inhalt Gemeinsam -->
|-
|Board
|<!-- Beginn Inhalt Board -->
<!-- Ende Inhalt Board -->
<!-- Ende Inhalt Board -->
|-
|-
Zeile 317: Zeile 360:
|-
|-


|rowspan="3"|13.6.2011-20.6.2011
|rowspan="3"|6.6.2011-19.6.2011
|Gemeinsam
|Gemeinsam
|<!-- Beginn Inhalt Gemeinsam -->
|<!-- Beginn Inhalt Gemeinsam -->
Zeile 334: Zeile 377:
|<!-- Beginn Inhalt NIBObee -->
|<!-- Beginn Inhalt NIBObee -->
<!-- Ende Inhalt NIBObee -->
<!-- Ende Inhalt NIBObee -->
|-
|'''20.06.2011'''
|colspan="2"|'''Projekt präsentiert -> Projektende'''
|-
|-



Version vom 24. Juni 2011, 19:07 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

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:

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
  • Projektdefinition: Festlegen des Projektinhalts und grobe Abstimmung der einzelnen beteiligten Komponenten.
  • Erstellung eines Dokuments zur Projektbeschreibung
  • Erstellen eines Projektplans
21.02.2011 Projekt akzeptiert -> Projektstart
21.02.2011 - 27.02.2011 Gemeinsam
  • Bestellungen besprochen.
  • Wiki eingerichtet.
  • Bestelliste für Bluetooth Module erstellt
  • Gesamte Hardware bestellt:
    • 2 NIBObee - Programmierbarer Roboter-Bausatz
    • 5 x BTM-222 Stückliste (3 x für das Nibobee und 2 x für das board) erstellt.
Board
  • Display Erfahrungsberichte recherchiert.
  • Grafik Konzept (Blöcke) besprochen
  • Beispiel Implementierungen für Touchscreen und Grafik von LPC 2478 gesucht
NIBObee
  • Bestellungen besprochen.
  • nach Bauanleitungen und Datenblätter recherchiert.
  • Printlayout des BT-Modul für NIBObee erstellt
  • Recherche der BTM-222 Konfigurationsmöglichkeiten.
  • Sammeln offener Punkte, auflisten von Risiken und möglicher Massnahmen
28.02.2011 - 06.03.2011 Gemeinsam
Board
  • Weitere Analyse für Touchscreen und Grafikausgabe
  • 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
NIBObee
9.5.2011-15.5.2011 Gemeinsam
Board
NIBObee
16.5.2011-22.5.2011 Gemeinsam
Board
NIBObee
23.5.2011-29.5.2011 Gemeinsam
Board
NIBObee
30.5.2011-5.6.2011 Gemeinsam
Board
  • PLL Initialisierung kontrolliert, marginaler Fehler korrigiert
  • UART Initialisierung kontrolliert, nichts gefunden. UART0 Senden OK, UART1 NOK
  • 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
  • bluetooth Modul aufgebaut
NIBObee
6.6.2011-19.6.2011 Gemeinsam
  • Funktionstest für bluetooth Modul am board und interruptgetriebene UART Funktionen
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
NIBObee
20.06.2011 Projekt präsentiert -> Projektende