RoLoMa

Aus Callooh Wiki
Zur Navigation springen Zur Suche springen

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
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.