Inhalt


Endbericht des Projektes SAUS


  1. Vorwort

    1. Überblick

    2. Zielsetzungen

    3. Verlauf des Projektes

      1. Erstes Semester

      2. Zweites Semester

      3. Drittes Semester

      4. Viertes Semester

  2. Die Hardware-Gruppe

    1. Einleitung

    2. Sensorik des Rollstuhls

    3. Die Micro-Controller

      1. Sicherheitsvorkehrungen

      2. Alpha-Knoten: Bumper und Bewegungssteuerung

      3. Beta-Knoten: Der Odometrie-Agent

      4. Gamma-Knoten: Lenkwinkel und Infrarot-Sensoren

      5. Delta- und Epsilon-Knoten: Ultraschall-Sensoren

    4. PC-Schnittstellen zu den Knoten

    5. Türdurchfahren

  3. Systemaufbau und Kommunikation

    1. Systemaufbau und Kommunikation

  4. Selbstlokalisation mit Hilfe einer Farbkamera

    1. Einleitung

    2. Die Grundidee

  5. Bericht der Navigationsgruppe

    1. Einleitung

    2. Navigation eines Rollstuhls mit dem Partigame-Algorithmus

      1. Einleitung

      2. Motivation

      3. Grundlegende Konzepte

        1. Der Zustandsraum

        2. Die Worst-Case Annahme

        3. Der Greedy-Controller

        4. Die Selbstlokalisation

      4. Die Rollstuhlanwendung

      5. Ergebnisse

    3. Navigation durch Belohnungslernen

      1. Motivation

      2. Lernen der Grundverhalten

      3. Navigation durch Auswahl geeigneter Grundverhalten

      4. Ergebnis und Kritik

    4. Navigation in der Karte

      1. Einleitung

      2. Implementierung

        1. Verwaltung der Karte inklusive Navigationsalgorithmen

        2. Greedy Controller zum Erzeugen von Steuersignalen

        3. Kommunikation mit dem Rollstuhl

      3. Ergebnisse

  6. Projektarbeiten der Bildverarbeitungsgruppe

    1. Einleitung

    2. Khoros-SimRobot Interface

    3. Bildfolgenverarbeitung mit eingeschränkten Bewegungsfreiheiten

      1. Einleitung

      2. Theorie

      3. Praxis

        1. SimRobot

        2. Linearschlitten

        3. Fischertechnikroboter

        4. Rollstuhl

        5. Probleme

      4. Ausblick

    4. Objektverfolgung mittles Aktiven Konturen und Objekterkennung

      1. Einleitung

      2. Theorie

        1. Aktive Konturen

        2. Objekterkennung

      3. Praxis

        1. Khoros und SimRobot

        2. Eisenbahn

        3. Fischertechnikroboter

        4. Rollstuhl

      4. Ausblick

    5. Einrichtung der Sony-Farbkamera

    6. Pan-Tilt-Unit

  7. Ausblick


Anhang


  1. Die Hardwaregruppe des Projektes

    1. Das erste Projektsemester

    2. Das zweite Projektsemester

    3. Das dritte Projektsemester

    4. Das vierte Projektsemester

    5. Allgemeine Erfahrungen

  2. Die Hardware

    1. Hardware

      1. Abkürzungen

      2. Platinen

        1. bersicht

        2. Die Pinbelegungen

        3. Erläuterungen zu den Platinen

          1. Stromversorgungen 1 und 2
          2. Unbenutzter Knoten
          3. Alpha-Knoten
          4. Sicherheitsabschaltung
            1. Funktionsweise
            2. Vorteile
            3. Nachteile
          5. Adapterplatinen A und B
          6. Steuerplatinen 1 und 2
          7. Beta-Knoten
          8. Gamma-Knoten
          9. Delta- und Epsilon-Knoten
          10. Auswerteelektronik 1 und 2
      3. Die Schnittstelle

        1. Der Schnittstellenkasten

        2. Die Bananenstecker-Buchsen

        3. Die Centronics-Buchsen

        4. Die Centronics-Stecker

      4. Hinweise zur Benutzung

        1. Inbetriebnahme

        2. Ausschalten

    2. Die Sensoren

      1. Art und Funktionweise der Sensoren

      2. Ultraschall

      3. Infrarot

      4. Bumper

      5. Induktivnäherungsschalter

    3. Die seitlichen Bumper des Rollstuhls

      1. Einleitung

      2. Aufbau der Bumper

      3. Ausblick

    4. Der PC am Rollstuhl

      1. Die PC-Beschaffung

      2. Beurteilung des Rechnersystems

      3. Technische Daten des PC

  3. Das Modul mccan

    1. Beschreibung des Moduls mccan

  4. Sourcecode-Dokumentation für die Can-Knoten

    1. Die Knoten für die Sonar-Sensoren (delta und epsilon)

    2. Delta- und Epsilon-Programm

      1. Import-Anweisungen

      2. Konstanten

      3. Globale Variablen

      4. Prozeduren

        1. NextSonarStrat()

        2. AddChar2SonarString()

        3. SonarAdd()

        4. SonarDel()

        5. SerialPort()

        6. TransmitMessage()

        7. sendAliveMessage()

      5. Hauptprogramm

        1. Initialisierung der vordefinierten Strategien

        2. Variablen-Initialisierung

        3. Auswertung empfangener Nachrichten

    3. Der Knoten für Lenkräder und IR-Sensoren (gamma)

    4. Vorbemerkung zur Source-Code-Beschreibung

    5. Gamma-Programm mit Regelkreis (gamma.c)

      1. Import-Anweisungen

      2. Konstanten

      3. Globale Variablen

      4. Prozeduren

      5. Timer Interrupt

        1. Analog-Digital-Wandlung

        2. Regelkreis

        3. Pulsweiten-Modulation

        4. Meldung: Lenkwinkel erreicht

        5. Infrarot-Sensorwerte prüfen

      6. Hauptprogramm

        1. Variablen-Initialisierung

        2. Register-Initialisierung

        3. Auswertung empfangener Nachrichten

    6. Gamma-Programm ohne Regelkreis (gamma2.c)

    7. Der Knoten zur Bewegungssteuerung (alpha)

    8. Der Knoten zur odometrischen Bewegungsbestimmung (beta)

  5. Die Ansteuerungssoftware des Rollstuhls

    1. Die Programmierschnittstelle für den Rollstuhl

      1. Konzept

      2. Kommunikation

        1. Motor

        2. Ultraschall

        3. Odometrie

        4. Lenkmotor

        5. Bumper

        6. Infrarot

    2. Der Sensorstop

      1. Aufgaben

      2. Sensorschild

      3. Konzept

        1. Ablauf

        2. Bereiche

        3. Funktionen

    3. Die Odometrie-Klasse

      1. Aufgaben und Grundlagen der Odometrie-Klasse

      2. Selbstlokalisation des Rollstuhls

      3. Einordnung ins Saus-System und Erfahrungswerte

    4. Odometriedemonstration und -wartung : Lisa.cpp

      1. Odometrielokalisation: Zweck des Programms Lisa Programm Lisa

    5. Das Modul Sauschair

      1. Sauschair

        1. Initialisierung

      2. Klassen

        1. Produzenten

          1. Bumper
          2. Ultraschall
          3. Infrarot
          4. Sensorstop
          5. Position
        2. Konsumenten

          1. Fahrkommandos
          2. Videoposition
          3. SausWorld
    6. Die Funktionsbibliothek pccan

    7. Klassendokumentation

    8. Odometrielokalisationsdemonstrationsprogramm-Dokumentation

  6. Die CAN-Bus Nachrichten

    1. CAN-Bus Nachrichten

      1. Der Buszugriff durch die Busteilnehmer

      2. Format einer Nachricht

      3. Benutzte Nachrichten

        1. Nachrichten zwischen Knoten Alpha und dem PC

        2. Nachrichten zwischen Knoten Beta und dem PC

        3. Nachrichten zwischen Knoten Gamma und dem PC

        4. Nachrichten zwischen Knoten Delta und dem PC

        5. Nachrichten zwischen Knoten Epsilon und dem PC

        6. Weitere Nachrichten

  7. CSP-Beschreibung der CAN-Kommunikation

    1. Einleitung

      1. Motivation

      2. Was ist CSP bzw. FDR ?

    2. CSP-Grundlagen

    3. Vorgehensweise

    4. CAN-Architektur

    5. PC

    6. Rollstuhl-Hardware

    7. Microcontroller

      1. Alpha-Knoten

      2. Beta-Knoten

      3. Gamma-Knoten

      4. Delta-Knoten

    8. Gesamtsystem

    9. Prüfspezifikation und Testergebnis

    10. Fazit

    11. Anhang 1: Source-Code der abstrahierenden Version

    12. Anhang 2: Source-Code der nicht FDR-gerechten Version

  8. Türdurchfahren : Doorward.cpp

    1. Türdurchfahren : Das Programm Doorward

    2. Dokumentaion zum Türdurchfahren

  9. Systemaufbau und Kommunikation

    1. Systemaufbau und Kommunikation

      1. Nebenläufigkeit

        1. Warum Nebenläufigkeit

        2. Welche Art der Nebenläufigkeit?

      2. Prozeßkommunikation

      3. Geplanter Aufbau der Prozesse

      4. Kommunikationsgründe

      5. Kommunikation und Uhrzeit

      6. Produzenten und Konsumenten

        1. Erzeugung eines Klienten

          1. Erzeugung neuer Produzenten
          2. Erzeugung neuer Konsumenten
          3. Erzeugung eine SausCommMuliplexers
      7. Ablauf innerhalb des Servers

      8. Kommunikation zwischen Server und den Klienten

    2. Beschreibung der SausComm-Bibliothek Klassen

    3. Beispielklassen

  10. Selbstlokalisation mit Hilfe einer Farbkamera

    1. Einleitung

    2. Die Vorarbeit

      1. Die Module

    3. Theorie und Implementation der Videopositionierung

      1. Theoretische Grundlagen

        1. Berechnung der Position

        2. Berechnung der Orientierung

      2. Umsetzung der Theorie

      3. Ausblick

    4. Quelltextdokumentation der Videopositionsbestimmung

  11. Projektidee der Gruppe 42

    1. Idee vom 21. Juni 1995

      1. Ausgangssituation

      2. Was wollen wir überhaupt ?

      3. Und was nun ?

      4. Der Lösungsansatz

      5. Die Karte

      6. Die Positionsbestimmung

      7. Zackig und direkt: der Wegfinder

      8. Sanft und sauber: der Wegbereiniger

      9. Die Hinderniserkennung

    2. Nachtrag zur Idee vom 5. Juli 1995

      1. Zur Karte

      2. Zur Positionsbestimmung

      3. Zum Wegfinder

      4. Zum Wegbereiniger

      5. Zur Hinderniserkennung

  12. Semesterbericht der Teilgruppe 42parti

    1. Einleitung

      1. nt nicht Algorithmus 1: Festes Raster
      2. Algorithmus 2: Nimmt den schlimmsten Fall an

      3. Algorithmus 3: Nimmt den schlimmsten Fall an und lernt

      4. Der Parti-Game Algorithmus

      5. Grafischer Überblick (Flußdiagramm)

    2. Klassenaufteilung

    3. Implementation

    4. Testläufe

      1. Labyrinth

      2. Wohnraum

    5. Was können wir schon?

    6. Was möchten wir erreichen?

    7. Dokumentation des Quelltextes

  13. Navigation eines Rollstuhls mit dem Partigame-Algorithmus

    1. Einleitung

    2. Partigame - Grundprinzipien

      1. Der Zustandsraum

      2. Zellteilungsstrategie

        1. Wann wird die Auflösung erhöht?

        2. Welche Zellen werden geteilt?

      3. Worst-Case Annahme

      4. Greedy-Controller

      5. Selbstlokalisation

      6. Kollisionserkennung

      7. Lernen

      8. Ablauf des Algorithmus

    3. Implementation und Erweiterungen

      1. Einleitung

      2. Erweiterungen

        1. Variable Kosten

        2. Optimierung der Wegplanung

        3. Nachbarschaftsbeziehungen

        4. Experimente

        5. Zustandsräume

        6. Bidirektionale Wissensbasis

      3. Modifikationen zur Schnittstelle der Greedy-Klasse

    4. Wegplanung im Partigame-Algorithmus

    5. Der Rollstuhl-Greedy

      1. Der Greedy-Controller

      2. Die Implementierung des Rollstuhl-Controllers

      3. Spezielle Erweiterungen

    6. Modifikationen zum erfolgreichen Einsatz in der Praxis

    7. Bewertung und Ergebnisse

      1. Versuchsergebnisse

      2. Bewertung

    8. Ausblick

    9. Klassendokumentation

  14. Semesterbericht der Gruppe 42lin

    1. Motivation

    2. Idee des Ansatzes

      1. Lernen der Grundverhalten

        1. Das Prinzip des Reinforcement-Learning

        2. Algorithmische Beschreibung des Q-Learning

        3. Die Bewertungstabellen

        4. Verbesserungen des Lernvorgangs

          1. Erinnern an vorangegangene Situationen
          2. Lernen durch Vormachen
      2. Navigation durch Auswahl elementarer Verhalten

    3. Implementierung

      1. Von der Theorie zur Praxis

    4. Experimente

      1. Versuch 1: Standard Q-Learning

      2. Versuch 2: Integration des Experience Replay

      3. Versuch 3: Experience Replay und Teaching

      4. Weitere veränderliche Parameter

      5. Zusammenfassung der Ergebnisse

    5. Ausblick

  15. Navigation eines autonomen Rollstuhls mit Hilfe eines

    1. Einleitung

    2. Das grundlegende Konzept

    3. Veränderungen des Konzepts

      1. Die Competitive-Learning Netzwerke

      2. Integration einer angepaßten Teaching-Methode

    4. Lernen der Grundverhalten

      1. Wandverfolgung

      2. Tür durchfahren

      3. Sensorvorverarbeitung

    5. Navigation zu ausgezeichneten Punkten

      1. Navigation mit Hilfe der Grundverhalten

        1. Aufteilung des Navigationsgebiets

        2. Navigation zu Zwischenzielen

        3. Auswahl geeigneter Grundverhalten

        4. Der Lernvorgang

      2. Das Hidden-State Problem

    6. Experimentelle Ergebnisse in der Simulation

      1. Die Grundverhalten

      2. Die zweite Hierarchieebene

    7. Der Weg in die Realität

      1. Festlegung der Aktionslängen

      2. Zusätzliche Verzögerungszeiten

      3. Vorlernen in der Simulation?

      4. Das Problem der Bewertungsfunktion

    8. Die Benutzungsoberfläche

    9. Kritik an dem gewählten Ansatz

    10. Zusammenfassung

    11. Dokumentation der implementierten Klassen

  16. Navigation in der Karte: Die Karte V3.0

    1. Am Anfang ist alles graue Theorie

    2. Von der Theorie zur Umsetzung

    3. Die Schnittstelle

    4. Beispiel: Eine Weltdefinition

    5. Navigation

    6. Die Karte im Laufe der Zeit

    7. Abschlußbetrachtung

    8. Klassendokumentation

  17. Navigation in den Karte: Der Greedy-Controller V1.27

    1. Anfangsgedanken

    2. Schnittstelle zur Außenwelt

    3. Grundverhalten

    4. Fahrt zum Führungspunkt

      1. Wo ist der Führungspunkt ?

      2. Wie kommt man zum Führungspunkt ?

    5. Längere Rückwärtsfahrten

    6. Abbiegen vor Erreichen des Wegpunktes

    7. Erreichen der Endausrichtung

    8. Die Fahrtgeschwindigkeit

    9. Klassendokumentation

  18. Navigation in der Karte: Die Steuerung

    1. Die Steuerung im Überblick

    2. Die Schnittstelle

    3. Die SimRobot-Version

    4. Die Kommunikationsversion

    5. navigateOneStep(): Das Herz der Steuerung

    6. Hinderniserkennung mit Sensoren

    7. Festlegen der Kartenauflösung

    8. Abschlußbetrachtung

    9. Klassendokumentation

  19. Khoros - SimRobot Interface

    1. Einleitung

    2. Motivation

    3. Das Khoros-SimRobot Interface

    4. Anhang

      1. Das vom Composer erzeugte simrobot.c

      2. Das von mir modifizierte simrobot.c

      3. Das vom Composer erzeugte lsimrobot.c

      4. Das von mir geänderte lsimrobot.c

      5. Screenshot

  20. Bildfolgenverarbeitung mit eingeschränkten Bewegungsfreiheiten

    1. Einleitende Worte

    2. Wieso Bildfolgen?

    3. Theorie

      1. Einführung in die Flußfelder

        1. Geometrische Grundlage

        2. Das Flußfeld

        3. Optisches Flußfeld vs. Normalenflußfeld (Gradientenmethode)

        4. Das Normalenflußfeld

      2. Vorgehensweise

      3. Einschränkungen der Bewegungsfreiheit

      4. Der Algorithmus

        1. Konfidenzmaß

        2. Glättung

        3. FOE-Bestimmung

        4. Tiefenbestimmung

    4. Praxis

      1. Simulation mit SimRobot

        1. Das Zusammenspiel mit Khoros

        2. Algorithmustest an einfachen Simulatorszenen

          1. Gerade Wand
          2. Schräge Wand
          3. Versetzte Wand
          4. Parallele Wände (Gang)
          5. Gangzentriertes Fahren
        3. Erkannte Probleme

      2. Reale Sequenzen

        1. Testläufe

        2. Erkannte Probleme

      3. Reale Umgebung / Liveauswertung

        1. Das grundlegende Testprogramm

          1. Die grafische Oberfläche
          2. Programmbenutzung
          3. Parametermenü
            1. Ändern von Parametern
            2. Menüpunkt STARTEN
            3. Parameter ZEILEN
            4. Parameter VI-GLÄTTUNG
            5. Parameter INTENS-GLÄTTUNG
            6. Parameter KONFIDENZRAUM
            7. Parameter VERZÖGERUNG
            8. Parameter TASTENDRUCK
            9. Parameter DREHSCHWELLE
            10. Parameter TURBO
            11. Parameter FAHREN
            12. Parameter BALKENVERZERRUNG
            13. Parameter SCHRITTGRÖSSE
            14. Parameter SCHATTEN
            15. Parameter SELEKTION
            16. Parameter ZEILENKASTEN
            17. Parameter KONFIDENZKURVE
            18. Parameter DREHEN
            19. Parameter FOE
            20. Parameter VI-GEPUNKTET
            21. Parameter LAMPEN
            22. Parameter SPEICHERN
            23. Menüpunkt BEENDEN
        2. Linearschlitten

          1. Testreihen mit optimaler Textur
          2. Nichtoptimale Textur
          3. Schief montierte Kamera
        3. Fischertechnik-Roboter

        4. Rollstuhl

        5. Erkannte Probleme

    5. Ausblick

    6. Moduldokumentation

  21. Objektverfolgung mittels Aktiven Konturen und Objekterkennung

    1. Einleitung

    2. Theorie

      1. Aktive Konturen

        1. Einleitung

        2. Prinzip

        3. Das mathematische Modell

        4. Energieminimierungsverfahren

          1. Der Greedy Algorithmus
          2. Implementierung des Greedy Algorithmus
        5. Prinzip der Objektverfolgung mittels Snakes

      2. Objekterkennung

        1. Einleitung

        2. Das Objekt

        3. Die Objekterkennung

    3. Praxis

      1. Erste Experimente mit Aktiven Konturen (Simulation)

        1. Versuchsumgebung

        2. Tests des Greedy Algorithmus am synthetischen Bildmaterial

        3. Einfache Objektverfolgung mittels Aktiven Konturen in der Simulation

        4. Fazit

      2. Tests an realem Bildmaterial

        1. Versuchsablauf

        2. Fazit

      3. Verfolgung einer Eisenbahn mit statischer Kamera

        1. Versuchsablauf

        2. Fazit

      4. Fischertechnikroboter

        1. Versuchsablauf

        2. Fazit

          1. Die Robotersteuerung
          2. Die Aktiven Konturen
          3. Die Objekterkennung
      5. Rollstuhl

        1. Versuchsablauf

        2. Die Steuerung des Rollstuhls

        3. Objekterkennung auf dem Rollstuhl

        4. Fazit

    4. Dokumentation des Programmes zur Objektverfolgung auf dem Rollstuhl

  22. Einrichtung der Sony - Farbkamera

    1. Einleitung

    2. Aufgabenbeschreibung

    3. Bau eines Gehäuses

    4. Anschluß der Kamera

    5. Implementierung der Kamerafunktionen

    6. Interaktives Testprogramm

  23. Orkney Science Festival 1995

    1. Einleitung

    2. Vorlesung: Autonomous Mobile Robots

    3. Vorlesung: Robot Sensor Signal Processing

      1. Die Vorlesungen

      2. Die Übungen

    4. Entwicklungsumgebung und Hardware

      1. Entwicklungsumgebung

      2. Sensoren - Aktuatoren

    5. Versuche mit den Robotern

      1. Der Wettbewerb

        1. Das erste Rennen

        2. Das zweite Rennen

        3. Wettkampfbedingungen

      2. Das Itzehoe-Team

        1. Anordnung der Sensoren

        2. berlegungen zum ersten Rennen

        3. berlegungen zum zweiten Rennen

      3. Das Luna-Team

        1. Aufbau von Luna

        2. Steuerung

      4. Das Ergebnis

  24. Pan-Tilt-Unit

    1. Die computergesteuerte Pan-Tilt-Unit

    2. Die Steuerkommandos

    3. Die Geschwindigkeit und Beschleunigung

    4. Erste Tests

    5. Bekannte Probleme

    6. Bezug zu SAUS

    7. Dokumentation der relevanten Klassen

  25. Dokumentation der SAUS Document Type Definition

    1. Einleitung

    2. Elemente der Document Type Definition

      1. Beschreibungsformat

      2. Der Anfang und die Dokumenttypen

        1. Der Bericht (<bericht>)

        2. Teilberichte (<teilber>)

        3. Referate (<referat>)

        4. Code- und Klassendokumentationen (<doku>)

        5. Protokolle (<protokol>)

        6. Glossare (<glossary>)

        7. Folien (<slides>)

      3. Textelemente

        1. Kurzinhalte (<abstract>)

        2. Tagesordnungspunkte (<tops>)

        3. Abschnitte (<section>, <section1> usw.)

        4. Absätze (<p>)

        5. Wortgetreue Segmente (<code> und <verb>)

        6. Text (%inline;)

        7. Wörtliche Rede (<quote>)

        8. Zitate (<quote2>)

      4. Visualisierungselemente

        1. Tabellen (<tabular>)

        2. Bilder (<figure>)

        3. Aufzählungen (<itemize>, <enum> und <descrip>)

        4. Formeln (<formula>)

        5. Schriftmodifikation (<rm>, <bf>, <tt>, <it>, <sl>, <sc>, <sf>, <em>)

      5. Dokumentationselemente (<srcdoku>)

        1. Klassendokumentation (<classdok>)

        2. Moduldokumentation (<moduldok>)

        3. Kommandodokumentation (<cmddok>)

        4. Dokumentationstext (<doktext>)

        5. Importanweisungen (<import>)

        6. Bibliotheksreferenz (<library>)

        7. Funktionsdokumentation (<funcdok>)

        8. Variablendokumentation (<vardok>)

      6. Verschiedenes

        1. Einstellungen (<settings>)

        2. Titelseiten (<titlepag>)

        3. Autoren (<authors> und <author>)

        4. Datumsangaben (<litdate>, <curdate> und <rcsdate>)

        5. Schlüsselworte (<keywords> und <keyword>)

        6. Fußnoten (<fnote>)

        7. Bezeichnungen (<caption>)

        8. Referenzen

          1. Referenzen innerhalb des Textes (<label>, <ref> und <pageref>)
          2. Referenzen außerhalb des Textes (<cite> und <ncite>)
        9. Dauer (<dauer>)

        10. Anwesende (<anwesend>)

        11. Dateinamen (<filename>)

        12. Identifizierer (<uid>, <gid>, <url> und <mail>)

    3. Technisches

      1. Die LaTeX-Übersetzung

      2. Die HTML-Übersetzung

  26. Das SAUS-Gedicht

    1. Das SAUS-Gedicht