Autoren:
Datum:
Stichworte:
Zusammenfassung:
Das Projekt "Sensomotorik autonomer Systeme" (SAUS) beschäftigt sich mit Experimenten zur Konstruktion eines (teil-)autonomen Rollstuhls, der sich zur Unterstützung behinderter Personen in einer entsprechend gestalteten Wohnumgebung zurechtfinden kann. Das bedeutet, daß er in der Lage sein soll, in dieser Umgebung sinnvoll zu navigieren und sein Verhalten zu erlernen und permanent zu verbessern.
Das studentische Projekt "Sensomotorik autonomer Systeme", kurz "SAUS", wurde im Rahmen des Informatik-Hauptstudiums an der Universität Bremen im Wintersemester 94/95 begonnen. Es besteht aus 18 Studenten, und 8 Betreuern, darunter Prof. Dr. Bernd Krieg-Brückner.
Das Ziel des Projekts ist es, einen Behindertenrollstuhl zu konstruieren, der sich (teil-)autonom in einer behindertengerechten Wohnung bewegen kann. Konkret bedeutet das, daß ein Rollstuhl existiert, der im Laufe des zwei Jahre andauernden Projekts dahin entwickelt werden soll, so selbständig wie möglich in einer Umgebung navigieren zu können, da die behinderte Person, dazu nur äußerst eingeschränkt in der Lage sein wird. Zu dieser Navigation gehört zum einen die Fähigkeit, grundlegende Steuerungsfunktionen ausführen zu können und zwar nicht nur auf Eingaben von außen hin, sondern autonom zu entscheiden, welche Bewegung wann am besten geeignet ist. Weitergehend soll das dazu benötigte Wissen entweder gar nicht oder nur zum Teil vom Programmierer oder Benutzer vorgegeben werden; der Rollstuhl soll selbständig in der Lage sein, seine aktuelle Umgenbung zu "erfahren". Um die hierbei gesammelten Informationen dauerhaft benutzen zu können, muß er auch in die Lage versetzt werden, sie zu speichern. All diese geforderten Fähigkeiten sollen ein hohes Maß an Flexibilität bewirken, damit sich die behinderte Person so leicht wie möglich durch ihre Wohnung bewegen kann.
Diese Anforderungen setzen eine große Menge an Wissen und Fähigkeiten bei den Studenten voraus, was zur Folge hatte, daß sich alle studentischen Projektteilnehmer zunächst einmal ein Semester lang mit der Aneignung von Grundlagenwissen zu den entsprechenden Themengebieten beschäftigt haben. Im Laufe dieses Semesters kristallisierten sich bei allen Studenten spezielle Interessengebiete heraus, nach denen die umfangreichen Arbeiten und Experimente für den Rollstuhl verteilt wurden. Es bildeten sich also Gruppen, die sich mit verschiedenen Bestandteilen des Rollstuhls beschäftigen und ihre Ergebnisse später zusammentragen sollen, um die Anforderungen des Projekts an den Rollstuhl so weit wie möglich zu erfüllen. Voraussetzung für den Erfolg dieser Zusammenführung ist eine permanente Kommunikation der einzelnen Gruppen untereinander, sowohl während des Projektplenums, als auch außerhalb. Diese Absprachen über verschiedenste Aspekte der Arbeiten am Rollstuhl nimmt mit steigender Spezialisierung der Anforderungen der einzelnen Gruppen zu.
Die Gebiete der einzelnen Gruppen umfassen Bereiche der Hardware, wie zum Beispiel die Sensoren des Rollstuhls oder den CAN-Bus, auf dem der Rollstuhl angesteuert wird, Bereiche der Software, bei denen es darum geht, geeignete Selbstlokalisations-, Navigations- und Lernverfahren zu finden oder zu entwickeln und diese zu implementieren und auch Standardsoftware, die diese Arbeiten unterstützen soll, wie beispielsweise SimRobot, eine Simulationsumgebung zum Testen unserer Programme, solange der Rollstuhl dafür noch nicht komplett nutzbar ist.
Dieser Zwischenbericht soll nun einen etwas genaueren Überblick über die angesprochenen Ideen, Experimente und Ergebnisse der einzelnen Gruppen nach Ablauf des ersten Jahres geben. Weiterhin soll ein Kurzbericht über den Besuch des "Orkney-Science-Festivals" von sechs Studenten im Rahmen dieses Projektes gegeben werden.
Die Aufgabe der Hardwaregruppe liegt im wesentlichen darin, eine Schnittstelle zwischen Hard- und Software zu formulieren, zu definieren und zu implementieren, die eine Ansteuerung der Rollstuhlsensorik und -aktorik durch übergeordnete Navigationsalgorithmen mittels einer Klassenbibliothek ermöglichen soll. Die Gruppe ist für beinahe die gesamte auf dem Rollstuhl vorhandene Hardware verantwortlich. Eine Ausnahme bildet hier nur die Kamera, die durch die Bildverarbeitungsgruppe betreut wird. Die Hardwaregruppe setzt sich aus den Mitgliedern Michael Czierwitzki, Andree Mädl, Norbert Meyer, Tilman Schröder, Henning Tietgens, Albert Wilkes und Jörg Zabel zusammen.
Der Rollstuhl ist bisher mit folgenden Sensoren ausgestattet:
Der Rollstuhl wird mit einem Computer ausgestattet, der in einem Industrie-PC Gehäuse untergebracht sein wird. Dieses Gehäuse kann ein normales PC-Mainboard aufnehmen, d.h. wir können handelsübliche PCs und Erweiterungskarten verwenden. Das Industrie-Gehäuse wurde ausgewählt, da es besonders kleine Ausmaße hat und sich leichter als ein normales PC-Gehäuse am Rollstuhl befestigen läßt. Aufgrund der hohen Rechenleistungsanforderungen der Bildverarbeitungsgruppe wollen wir keine CPU unter einem Pentium (90 MHz) einsetzen. Der Rechner soll mindestens 32 MB RAM haben, da wir Überlegungen angestellt haben, daß während des Fahrens möglichst nicht auf die Festplatte zugegriffen werden sollte (Erschütterungen). Es wird ein Trackball verwendet werden, da für den mobilen Einsatz eine Maus nicht geeignet ist. Auch ein normaler Monitor ist ebenfalls nicht geeignet; wir werden deshalb ein LC-Display mit Schwenkarm installieren. Außerdem wird noch überlegt, ob eine Soundkarte angeschafft werden soll, damit während der Fahrt Statusmeldungen per Sprachausgabe gemeldet werden können. Die gesamte Computerhardware befindet sich noch in der Anschaffungsphase.
Wir setzen für die Ansteuerung der Sensorik und Aktorik vier Microcontroller der Baureihe 8051 ein, die über ein Feldbussystem - nämlich den CAN-Bus - untereinander und mit dem PC kommunizieren können. Die Architektur läßt sich folgendermaßen beschreiben : In der Regel sind Sensoren und Aktoren direkt oder indirekt an die CAN-Bus-Knoten angeschlossen, die parallel - also ohne daß der PC belastet würde - im Falle der Sensorik eine Sensorvorverarbeitung durchführen. Desweiteren werden die vorverarbeiteten Daten bei Bedarf an den PC geschickt. Dies kann durch Anfrage des PC's geschehen (z.B. bei den Ultraschallsensoren), periodisch (im Fall der Odometrie) oder aber durch die Sensoren direkt (taktile Sensoren). Im folgenden wird die Aufteilung der Funktionen auf die einzelnen Knoten beschrieben.
Der CAN-Bus Knoten "Alpha" ist für die Steuerung der Geschwindigkeit und der Bewegungsrichtung (vor- bzw. rückwärts) zuständig. Außerdem fragt er die Bumper und die Ultraschallsensoren ab. Diese Funktionalitäten wurden auf einem Knoten integriert, da so ein schnelles Reagieren auf gefährliche Situationen, z.B. erfolgte oder bevorstehende Hinderniskollision, möglich ist.
Für die Ultraschallsensoren gibt es die Möglichkeit, Entfernungen und dazugehörige Geschwindigkeiten anzugeben, auf die abgebremst werden soll, wenn die Entfernung unterschritten wird. Zu diesem Zweck feuert der Knoten immer regelmäßig mit allen Sensoren. Es können außerdem beliebige andere Feuerstrategien festgelegt werden, die einmalig oder regelmäßig angewendet werden. Die Ergebnisse der Messungen werden jeweils zum PC geschickt.
Die Bumper werden über einen externen Interrupt überwacht. Dieser wird ausgelöst, sobald ein Bumper gedrückt wird. Über Porteingänge des Knotens kann nun festgestellt werden, um welche(n) Bumper es sich handelt. Die Geschwindigkeit wird sofort auf Null gesetzt und eine Nachricht wird zum PC geschickt.
Die Sicherheit ist ein wesentlicher Aspekt bei der Rollstuhlsteuerung und dieser Knoten verwaltet die entscheidende Größe: die Geschwindigkeit. Da es extrem wichtig ist, daß diese im Fall einer Kollision auf Null gesetzt wird und man Softwarefehler nie ausschließen kann, wurde auf dem Knoten eine Hardware-Sicherheitsschaltung aufgebaut. Diese schaltet die Geschwindigkeit zum Motor nur durch, wenn kein Bumper gedrückt ist. So bremst der Rollstuhl auch dann noch ab, wenn er durch eine Fehlfunktion die Kollision nicht bemerkt hat. Weiterhin sorgt die Schaltung auch dafür, daß die Geschwindigkeit auf Null geht, sobald der Knoten ausfällt. Dazu alterniert der Microcontroller ständig einen Portausgang solange er aktiv ist. Hört dieses Alternieren auf, wird davon ausgegangen, daß der Knoten ausgefallen ist. Als generelle Sicherheitsmaßnahme wird immer davon ausgegangen, daß "High", also Spannung anliegend bedeutet, daß alles in Ordnung ist. So liefern die Bumper High, wenn sie NICHT gedrückt werden sonst Low. Ein loses Kabel würde also sofort als gedrückter Bumper interpretiert werden und ist somit kein Sicherheitsrisiko.
Zum Knoten gehören verschiedene Platinen, über die die Sensoren angeschlossen bzw. der Rollstuhlmotor angesteuert wird.
Der Beta-Knoten ist für die Auswertung der Odometrie-Sensoren verantwortlich. Dazu wird der Zustand der 4 Induktivsensoren über einen digitalen Port fortwährend ermittelt. Die daraus abgeleiteten Daten erfassen:
Der Gamma-Knoten hat die Aufgabe, das korrekte Setzen
eines geforderten Lenkwinkels zu ermöglichen. Problematisch in diesem
Zusammenhang war, daß das Anlegen eines Lenkwinkels über die
Pulsweiten-Modulations-Ausgänge (PWM-Ausgänge) des Knotens vom jeweiligen Untergrund
und der aktuellen Belastung des Rollstuhls beeinflußt wurde. Somit
mußte zunächst der tatsächliche Radeinschlag festgestellt werden,
bevor eine schrittweise Nachregulierung der Räder zum gewünschten
Lenkwinkel über einen Regelkreis realisiert werden konnte. Die
Abb.
regelkreis soll den prinzipiellen Aufbau des
Regelkreises veranschaulichen, ohne jedoch auf Details näher einzugehen.
(Abbildung:
Zur Kommunikation zwischen dem PC und dem Mikrocontroller über den CAN-Bus haben wir eine Programmierschnittstelle entwickelt, die es ermöglicht, auf die verschiedenen Hardwarekomponenten des Rollstuhls zuzugreifen, ohne sich um die Kommunikation selber kümmern zu müssen. Dabei werden eine Anzahl von Funktionen zur Verfügung gestellt, die entsprechende Nachrichten den jeweiligen Mikrocontroller zusenden und die von dort kommenden Nachrichten empfangen. Durch das Warten auf eine Nachricht vom Mikrocontroller wird eine laufende Applikation aufgehalten bzw. am Abarbeiten anderer Aufgaben behindert. Um dieses zu verhindern, haben wir einen zeitgesteuerten Interrupt verwendet, um die Nachricht zu empfangen, ohne andere Applikationen aufzuhalten. Um Daten an die Mikrocontroller zu senden, werden diese erst im CAN-Nachrichtenformat in den Nachrichtenpuffer geschoben und von hier aus abgeschickt. Es stehen folgende Funktionen zur Verfügung: Zur Motoransteuerung gibt es eine Funktion, welche die Motorspannung als einen Wert von 0 bis 255 übergibt. Ferner kann die Bewegungsrichtung auf Vorwärts- bzw. Rückwärtsfahrt umgeschaltet werden. Zur Anfrage nach Ultraschallwerten gibt es Funktionen, die den entsprechenden Knoten auffordern, einmalig oder automatisch die aktuellen Daten zu senden. Der Status der zwölf Bumper kann ebenfalls durch eine Funktion festgestellt werden. Der Status ist jedoch nur bei einer Kollision des Rollstuhls relevant. Bei der Odometrie kann eine einmalige Anfrage gestellt werden oder es kann ein automatisches Senden des Mikrocontrollers aktiviert werden. Die zurückgelieferten Daten beinhalten dabei die Geschwindigkeit des Rollstuhls, den zurückgelegten Weg und die Anzahl der Fehlmessungen getrennt für das rechte und linke Rad. Der Lenkwinkel kann Werte zwischen -128 und 127 annehmen, wobei negative Werte einen Links- und positive Werte einen Rechtseinschlag der Lenkräder zur Folge haben. (Weitere Info siehe (nmeyer95 ) und (schroeder95 ))
Die Aufgabe der Bildverarbeitungsgruppe besteht darin, die Kamera als einen weiteren Sensor des Rollstuhles zu benutzen. Um die Kamerabilder letztendlich zur Navigation heranziehen zu können, müssen Wege gefunden werden, diese möglichst schnell und sinnvoll zu interpretieren. Die Bildverarbeitungsgruppe setzt sich aus den Mitgliedern Arend Behrens, Torsten Henneken, Siegmund Kubon, Claas Ruschmeyer, Andree Mädl, Henning Tietgens und Thomas Schwarzenbacher zusammen.
Mit Hilfe der Kamera lassen sich neben den Daten der anderen Sensoren, wie z.B. Ultraschall, Odometrie, Bumper, etc. zusätzliche Informationen über die Umgebung oder der Kamera- bzw. Roboterposition ermitteln. Bei der Kamera handelt es sich um einen hochauflösenden Sensor, d.h., es können aus wenigen Bildern viele verschiedene Informationen gewonnen werden. Die gespeicherten Bilddaten müssen korrekt interpretiert und ggf. vorverarbeitet werden, so daß die jeweiligen Probleme der im folgenden beschriebenen (Teil-)Projekte zufriedenstellend gelöst werden können.
In der Bildverarbeitungsgruppe haben wir uns auf die Benutzung des Softwarepaketes Khoros und SimRobot geeinigt. Khoros ist ein komplexes Softwarepaket, das in erster Linie zur Ver- und Bearbeitung von Bildern sowie deren Visualisierung dient. SimRobot dagegen dient zur Simulation sensorbestückter Agenten in einer dreidimensionalen Umwelt. Da es nicht möglich gewesen ist, beide Programme zu kombinieren, wurde ein Interface erarbeitet, welches dem Benutzer erlaubt, Steuerprogramme von SimRobot in Khoros einzubinden. Mit Hilfe dieses Interfaces kann jetzt ein Kamerabild aus einer beliebigen SimRobot-Szene direkt unter der Khoros-Oberfläche ausgelesen werden. Damit wird das ständige Wechseln zwischen den einzelnen Softwarepaketen erspart, was besonders beim Testen neuer Algorithmen eine deutliche Zeiteinsparnis zur Folge hat. Das Kamerabild wird automatisch in das khorosspezifische Dateiformat (VIFF) umgewandelt und kann somit ohne weitere Konvertierungen bearbeitet werden. Das Interface übergibt SimRobot den Dateinamen der Szene und den des Ausgabebildes, sowie den Wert der Anzahl der Schritte und den der Größe eines einzelnen Schrittes. Problematisch bei der Implementierung war die Kommunikation zwischen SimRobot (C++) und der in C geschriebenen Khoros-Software. Nähere Informationen können in dem Abschlußbericht (kubon95 ) nachgelesen werden.
Roboter benutzen oft nicht alle sechs Freiheitsgrade für die Translation und Rotation. Als Beispiel seien mobile Roboter genannt, welche sich in der Ebene bewegen ("ground plane constraint"). Die geometrischen Bewegungsgleichungen reduzieren sich dadurch auf die vorliegenden Bewegungskomponenten. Unter Vorgabe eines solchen Roboters soll untersucht werden, inwieweit sich die Bildfolgenverarbeitung gegenüber dem allgemeinen Bewegungsmodell vereinfacht. Die erfolgreiche Entwicklung und Programmierung der Algorithmen soll anhand der Navigation in einer simulierten Szene demonstriert werden. Ein weiterer Schritt ist die Auswertung realer Bildsequenzen und die Steuerung eines Fischertechnikmodells mit aufmontierter Kamera. Wir betrachten zur Vereinfachung des Problems lediglich die Translation in Blickrichtung und benutzen eine Zeilenkamera. Ausgiebige Tests in der Simulation (SimRobot) haben gezeigt, daß ein Roboter mit den o.g. Einschränkungen zufriedenstellend navigieren kann. Wir sind in der Lage Kollision zu vermeiden, einen Gang zentriert entlangzufahren und eine Wand zu folgen. Dieses wurde sowohl mit optimalen, als auch mit ungünstigen Texturen zufriedenstellend getestet. Es existiert ein Statusbericht (behrusch95 ), der die jeweiligen Tests und den Algorithmus sowie grundlegende Überlegungen beschreibt und erklärt.
In dieser Projektarbeit soll die Einsatzfähigkeit von aktiven Konturen (Snakes) zur Objektverfolgung untersucht werden. Hier sind zunächst die grundsätzlichen Probleme dieser Herangehesweise aufzudecken und dabei zwei der populärsten Algorithmen zu beurteilen. Die Energieminimierungsverfahren "Greedy" wurden implementiert und an synthetischen Bildmaterial beurteilt. Es wurde eine SimRobot-Szene erstellt, die eine kontinuierliche Objektbewegung erlaubt. Der Trackingcontroller wurde mit Hilfe des Interfaces (Projektarbeit "Khoros-SimRobot Interface") erfolgreich zum vereinfachten Algorithmustests eingebunden. Dabei erfolgt das Tracking bzw. die Verfolgung des Objektes mit einer statischen Kamera. Weiterhin ist die Erprobung des Trackingcontrollers anhand einer Eisenbahn auf einem Schienenkreis, sowie das Tracking bei einer aktiven Kamera mit zwei Schwenk- / Neigefreiheitsgraden geplant. Auch hier existiert ein Statusbericht (kubon295 ), der die bisherigen Ergebnisse und den Algorithmus näher erläutert.
Es wurde eine Farbkamera der Firma Sony auf Basis eines Camcordermoduls angeschafft. Die Kamera besitzt ein Interface mit dem über die serielle Schnittstelle eines PCs camcorderspezifische Funktionen, wie z.B. Zoom und Blende, aufgerufen werden können. Es wurde ein Gehäuse für die Kamera angefertigt und eine Bibliothek für die Steuerfunktionen erstellt. Außerdem existiert ein Testprogramm für die Steuerfunktionen. Nähere Informationen über die Bibliothek und der Kamera können in dem Abschlußbericht (kubon96 ) nachgelesen werden.
Es soll die Bildvorverarbeitung zur Landmarkendetektion und Peilung geleistet werden. Dabei soll die a priori bekannte Farbe und Form der Landmarke berücksichtigt werden. Reales Bildmaterial wurde erstellt, mit dem die Segmentierungsalgorithmen getestet werden können. Verschiedene Segmentierungsansätze in der Literatur wurden auf Tauglichkeit untersucht und eingeordnet. Weiterhin sollen verschiedene Segmentierungsalgorithmen implementiert und unter Khoros getestet werden. Es sollen Merkmale nach Vorgabe der Forderungen der Projektarbeitsgruppe "Visuelle Selbstlokalisation über Landmarkenpeilung" aus den zuvor aufgenommenen Bilddaten extrahiert werden. Außerdem ist ein 'Feldversuch' in Zusammenarbeit mit der Projektarbeitsgruppe "Visuelle Selbstlokalisation über Landmarkenpeilung" mit dem Thema der Selbstlokalisation im Robotiklabor geplant.
Parallel zu den Arbeiten in den anderen Gruppen des SAUS-Projektes soll die Selbstlokalisation hier mittels visuellem System untersucht werden. Zur Zeit können wir anhand von zwei vertikal ausgedehnten Landmarken (im Prinzip zwei Striche) die Position der Kamera in einem Koordinatensystem bestimmen. Dafür müssen folgende Daten bekannt sein:
Der Zustandsbericht der Selbstlokalisationsgruppe soll kurz zusammenfassen, was die geplanten Vorhaben der Gruppe sind.
Das Ziel der Arbeit soll die Selbstlokalisation des Rollstuhls anhand der vorhandenen Sensorik sein. Dazu müssen die 3 Dimensionen X-Position, Y-Position und Orientierung ermittelt werden. Die möglichst exakte Positionsbestimmung wird motiviert durch das angestrebte Navigationsverfahren, das eine präzise Lokalisation voraussetzt. Diese erst kürzlich gebildete Gruppe verfolgt dabei zunächst die im folgenden beschriebenen, sich noch im Anfangsstadium befindlichen Vorhaben.
Hier soll die Berechnung der Position und Orientierung des Rollstuhls relativ zu einer vorgegebenen Position zu einem beliebigen Zeitpunkt erfolgen. Entscheidend dabei ist, daß sich diese Berechnung lediglich auf die Odometrie-Daten des Rollstuhls stützt. Dieser relativ einfache Ansatz sollte somit kurzfristig und mit verhältnismäßig geringem Aufwand realisiert werden können. Aufgrund der sehr ungenauen Odometrie-Daten kann dabei jedoch nicht erwartet werden, daß die Lokalisation des Rollstuhls sehr verläßlich sein wird. Dies ist aber auch nicht das definierte Ziel, da die durch Koppelrechnung (darunter versteht man die Integration des gefahrenen Weges durch die Odometrie-Sensoren) ermittelte Position lediglich eine Hypothese des im folgenden dargelegten Ansatzes darstellt und mit Hilfe der anderen Sensorik regelmäßig korrigiert werden kann.
Das von Andreas Bühlmeier vorgeschlagene und von Uwe Herrling in seiner Diplomarbeit (herr95 ) weiterentwickelte Verfahren soll als Ansatz für die Selbstlokalisation dienen und die darin enthaltenen Algorithmen auf Tauglichkeit im Hinblick auf unseren Rollstuhl untersucht werden. In dieser Arbeit werden Sensoren verschiedener Modalitäten (Kamera, taktile Sensoren) dazu benutzt, die interne Koppelrechnung zu korrigieren. Die Sensordaten werden dabei mit Positionen assoziiert. Auf die Verwendung von Vorwissen über die Umgebung oder die Genauigkeit der Sensorwerte kann dabei vollständig verzichtet werden. Ein neuronales Netz sorgt für die Fusion der Sensorinformationen mit den Daten aus der Koppelrechnung. Das System kann so seine Positionsschätzung in einem selbstorganisierenden Prozeß fortlaufend verbessern.
In diesem Kapitel sollen die zeitliche Entwicklung, der aktuelle Stand und die zukünftig geplanten Aktivitäten der Gruppe 42 vorgestellt werden.
Im ersten Projektsemester haben wir uns zunächst einmal mit der Grundlagenforschung in den Bereichen Künstliche Intelligenz, Neuronale Netze und Navigationsprobleme auseinandergesetzt. Dabei waren für uns speziell die Navigationsproblematiken interessant und es wurde für diesen Themenbereich die Gruppe Neuronale Netze gebildet, die intensivere Forschungen in diese Richtung betreiben wollte. Die erste Arbeit, mit der wir uns beschäftigt haben, stammt von Dr. Ulrich Nehmzow und trägt den Titel "Really Useful Robots". Wir haben im wesentlichen versucht, die Ideen dieser Arbeit nachzuvollziehen, indem wir sie implementiert haben.
Der Ansatz ist durchaus interessant und ausbaufähig, aber für unsere Zwecke sind die Möglichkeiten zu begrenzt. Deshalb sind wir dazu übergegangen, uns über weitere Ansätze für intelligente Navigationslösungen zu informieren. Das Ergebnis war sehr umfangreich, so daß wir uns in vier Untergruppen aufgeteilt haben, die im folgenden ihre Ergebnisse vorstellen. Es entstanden zwei Navigationsgruppen, die sich mit unterschiedlichen Verfahren beschäftigen, eine Kartengruppe, welche die Implementierung einer leicht zu handhabenden karthesischen Karte zum Ziel hat (aber außerdem auch einen Navigationsalgortihmus entwickelte) und eine Gruppe zur Implementierung der benötigten neuronalen Netze. Mindestens zwei der Ansätze benötigen zwingend eine Positionsbestimmung, so daß wir die Bildung einer gleichnamigen Teilgruppe der Bildverarbeitung motiviert haben.
Das Projekt Really Useful Robots wurde an der Universität von Edinburgh im Department of Artificial Intelligence von Ulrich Nehmzow durchgeführt und in seiner Doktorarbeit (nehm91 ) veröffentlicht.
Das Ziel dieses Projektes war es, Vorgehensweisen zu untersuchen, die eine flexible Steuerung mobiler Roboter ermöglichen, so daß die Roboter bei permanent veränderlichen Umweltbedingungen in der Lage sind, Fähigkeiten zu erlernen, diese zur Navigation einzusetzen und dabei immer betriebsbereit zu bleiben.
Unsere Motivation, die Experimente von Ulrich Nehmzow zu studieren und durch Versuche nachzuvollziehen, war die, daß wir eine intelligente Steuerung für unseren Rollstuhl entwickeln wollten. Intelligent soll in diesem Zusammenhang heißen, daß der Rollstuhl in die Lage versetzt werden soll, Fähigkeiten zur Navigation zu erlernen und sich mit Hilfe dieser autonom in seiner Umwelt zurechtzufinden.
Um diese Forderungen zu erfüllen, haben wir mit einem neuronalen Netz gearbeitet. Der Vorteil eines neuronalen Netzes ist eine große Flexibilität in unvorhersehbaren Situationen. Da uns leider keine echten Roboter zur Verfügung standen, haben wir die Versuche mit Hilfe der Simulationsumgebung SimRobot durchgeführt. Sie waren für uns ein Einstieg in die Materie der autonomen und lernfähigen Roboter und ermöglichten uns, unsere eigenen Erfahrungen mit diesem Thema und dem Einsatz und der Implementierung von neuronalen Netzen zu machen.
Das angesprochene neuronale Netz realisiert eine direkte Kopplung zwischen Sensorik und Aktorik. Im Verlaufe der Experimente sollen nun von unserem simulierten Roboter dazwischen sinnvolle Verknüpfungen hergestellt werden. Um diese Verknüpfungen in die richtigen Bahnen zu lenken, haben wir dem Roboter ein paar interne Ziele, sogenannte Instinkte vorgegeben, durch die sein Handeln geleitet werden soll.
Durch Hinzufügen oder Ändern von Instinkten ist es leicht möglich, das Verhalten des Roboters zu verändern bzw. zu erweitern, was wiederum zu einer Veränderung des Netzes führen wird; die Erweiterungsmöglichkeiten sind vielfältig aber beschränkt.
Die von Ulrich Nehmzow vertretene These, die wichtigste Eigenschaft eines mobilen Roboters sei es, betriebsbereit zu bleiben, erlangt im Zusammenhang mit unserem Rollstuhl einen enormen Bedeutungszuwachs. Gerade im sehr sensiblen Bereich der Navigation in einer behindertengerechten Umgebung ist es enorm wichtig, in unvorhergesehenen Situationen nicht undefiniert zu reagieren, sondern sich an die veränderten Gegebenheiten in möglichst kurzer Zeit anzupassen. Leider waren unsere Versuche mit diesem Ansatz und qualitativ geringer Sensorik nicht sehr vielversprechend für unsere weiteren Vorhaben, so daß wir beschlossen haben, uns noch mit weiteren Navigationsverfahren zu beschäftigen.
In diesem Kapitel wird ein Navigationsverfahren vorgestellt, das Jörg Kollmann und Axel Lankenau untersucht und implementiert haben. Die ausführliche Dokumentation befindet sich in (kola95 ).
Die Navigation mit einem in seiner Bewegungsfreiheit eingeschränkten (kinematisch beschränkt) Fahrzeug wie zum Beispiel einem Rollstuhl oder einem Auto ist weitaus komplizierter als mit einem in alle Richtungen beweglichen Roboter. Dies liegt ganz einfach an der Tatsache, daß es einem Auto z.B. nicht direkt möglich ist, sich senkrecht zu seiner Ausrichtung nach rechts oder links zu bewegen. Um mit einem solchen Gefährt sinnvoll navigieren zu können, ist es also nötig, die intuitiven Nachbarschaftsverhältnisse der realen Welt durch eine neue Art von topologischen Beziehungen zu ersetzen. Für die Navigation und die Wegeplanung ist es dann sinnvoll, nicht in der karthesischen x-y-Welt zu planen, sondern im sogenannten Konfigurationsraum, dessen Dimensionalität durch die Anzahl der für das zu modellierende Problem relevanten Größen bestimmt wird. In unserem Rollstuhlbeispiel wären dies die folgenden drei Dimensionen: Position im Raum (meist gegeben durch Angabe der (x,y)-Koordinate) und die Ausrichtung (z.B. als Himmelsrichtung). Unterteilt man nun diesen unter Umständen hochdimensionalen Konfigurationsraum analog den aus Landkarten bekannten Planquadraten in Hyperwürfel, um einen Weg von Position A nach Position B zu finden, hat man ein "großes Problem". Da die Auflösung eines solchen Gitternetzes relativ hoch sein muß, um besonders an engen Stellen noch fahrbare Wege zu finden, erhält man bei einer starren, hochauflösenden Rasterung sehr viele "Planquadrate". Als Konsequenz aus diesen Überlegungen liegt es nahe, den Konfigurationsraum nicht in ein festes Gitternetz zu zerlegen, sondern in ein adaptives, das sinngemäß an engen, gefährlichen Stellen eine hohe Auflösung hat, während es in eher weitläufigen Bereichen recht grob eingeteilt ist. Auf diese Weise lassen sich Rechen- und Speicheraufwand deutlich senken.
Auf der Basis dieses Ansatzes der sogenannten "adaptive grid-world" baut der Parti-Game-Algorithmus auf, den Andrew Moore und Christopher Atkeson in ihrem Bericht "The Parti-game Algorithm for Variable Resolution Reinforcement Learning in Multidimensional State-spaces" vorstellen. Der Algorithmus dient dem Finden von Wegen in mehrdimensionalen Zustandsräumen. Dabei wird vorausgesetzt, daß man jederzeit in der Lage ist, seine Position im Zustandsraum zu bestimmen, daß man über einen sogenannten Greedy-Controller verfügt, der in einer hindernisfreien Umgebung von A nach B fahren kann und daß der Zielzustand bekannt ist. Während der Lernphase des Algorithmus wird der Konfigurationsraum dynamisch in Hyperrechtecke (die sogenannten Zellen, die bei einem dreidimensionalen Konfigurationsraum Quader sind) aufgeteilt. Die Planung erfolgt dann jeweils von einer solchen Zelle zur nächsten bis hin zur Zielregion. Dabei werden die gemachten Erfahrungen bewertet und gemerkt. Dieses Wissen wird verwendet, um den eventuell zahlreichen möglichen Wegen zum Ziel Kosten zuzuordnen. Falls es (nach den bisherigen Erfahrungen) nicht möglich ist, von einer Zelle aus das Ziel zu erreichen, bekommt sie als Entfernung den Wert unendlich zugeordnet, d.h. alle Wege, die fortan durch diese Zelle führten, würden mit unendlichen Kosten bewertet. Es gibt zwei Gründe, warum es aus einer Zelle keinen Weg zum Ziel geben könnte: entweder ist aus der aktuellen Zelle kein Zellübergang in eine Nachbarzelle möglich, oder nach einem möglichen Übergang in eine Nachbarzelle kann man von dort nicht mehr weiterkommen. Wenn man sich die Zellen als zweidimensionale Planquadrate vorstellt, gibt es in derartigen Fällen eine "Mauer", die diejenigen Zellen, von denen man nach bisherigen Erfahrungen bei der aktuellen Auflösung ins Ziel gelangen kann, von denjenigen trennt, von denen aus es einen solchen Weg nicht gibt. Befindet sich das Objekt in einer Zelle der letzteren Art, von der es keinen Weg mehr zum Ziel gibt, so wird die Auflösung des Zellengitters einfach erhöht. Der Algorithmus vergrößert dabei die Auflösung entlang der oben erwähnten Trennmauer, - anschaulich gesprochen - in der Hoffnung, irgendwo ein Loch in dieser Wand zu finden. Nach einer oder mehreren solcher Verfeinerungen der Aufteilung des Zustandsraumes ist es im allgemeinen wieder möglich, einen Weg zu finden.
In unserer Realisierung dieses Ansatzes haben wir besonders auf einen modularen Aufbau der notwendigen Komponenten geachtet, um spätere Erweiterungen relativ problemlos integrieren zu können. Außerdem haben wir unsere Implementation im großen und ganzen problemunabhängig gestaltet, um größtmögliche Flexibilität zu gewährleisten. So sind wir nach den erfolgreichen Tests in der Simulation mit einem zylinderförmigen, in alle Richtungen beweglichen Fahrzeug derzeit (Ende 1995) damit beschäftigt, das dabei verwendete Steuerungsmodul durch ein neues zu ersetzen, das die Navigation mit einem Rollstuhl in der Simulation ermöglicht.
Wie bereits erwähnt, ist in der Definition des Parti-Game-Algorithmus ein Greedy-Controller vorgesehen, der in einem hindernisfreien Zustandsraum jeden beliebigen Zielpunkt ansteuern kann. Es sind zwei Lösungsmöglichkeiten denkbar, um diesen Algorithmus zur Navigation eines kinematisch relativ eingeschränkten Rollstuhles einzusetzen. Einerseits könnte der Konfigurationsraum so gestaltet werden, daß es dem Rollstuhl möglich ist, von seiner aktuellen Position aus jede Nachbarzelle im Konfigurationsraum zu erreichen. Diese Lösung würde einen völlig anderen als den bisher verwendeten dreidimensionalen Zustandsraum verlangen und das Problem der Positionsbestimmung unnötig verkomplizieren. Der zweite Ansatz sieht eine Erweiterung des Greedy-Controllers vor, die es ermöglicht, anzufragen, ob von einer aktuellen Position aus unter den gegebenen kinematischen Beschränkungen eine bestimmte Zielposition erreichbar ist.
Dieser Ansatz basiert auf der Idee, daß der Rollstuhl auf einer Kurvenbahn jeden Punkt erreichen kann, der auf oder außerhalb des minimalen Wendekreises liegt. Die mögliche Nichterreichbarkeit von Zielpunkten wird vom Parti-Game-Algorithmus in die Kostenbewertung seiner Möglichkeiten miteinbezogen, wodurch nur die Ansteuerung erreichbarer Ziele versucht wird.
Die einfache Form eines solchen Greedy-Controllers sieht vor, nur Kreisbahnen mit einem konstanten Einschlag der Hinterachse zu fahren. Durch die Vorgabe der aktuellen Position, der aktuellen Ausrichtung und der zu erreichenden Zielposition wird ein Kreis definiert, aus dessen Radius sich der nötige Steuereinschlag ergibt. Da durch diesen Kreis auch die resultierende Ausrichtung im Zielpunkt vorgegeben ist, kann auch überprüft werden, ob der erreichbare Zielpunkt in der gewünschten Zelle des Zustandsraumes liegt. Um nun die Bewegung auszuführen, muß nur der errechnete Steuereinschlag der Hinterachse eingestellt und die Länge des entsprechenden Teilkreises gefahren werden.
Dieser Greedy-Controller findet für alle Punkte, die auf dem minimalen Wendekreis liegen, den optimalen Weg. Bei größeren Radien wird der Weg jedoch ungünstiger. Deshalb ist ein erweiterter Greedy-Controller sinnvoll, der bei Überschreitung eines bestimmten Radius die Fahrt zum Ziel in mehrere Abschnitte unterteilt. Zuerst wird ein Teilkreis mit minimalem Radius gefahren, um das Ziel plus einen "Vorhaltewinkel" anzupeilen. Dann wird eine gerade Strecke bis kurz vor das Ziel zurückgelegt. Das Ziel wird wieder auf der minimalen Kreisbahn erreicht. Hierdurch wird ein annähernd optimaler Weg zum Ziel gefunden. Die optimale Strecke wird durch den "Vorhaltewinkel" und den letzten Schlenker verhindert, der aber ermöglicht, das Ziel mit einer vorgegebenen Ausrichtung zu erreichen.
Im Rahmen der Experimente der Teilgruppe 42 wurden von Patrick Steiner zwei Arten von künstlichen Neuronalen Netzen implementiert:
Für die Implementierung des Really Useful Robots von U. Nehmzow benötigten wir einschichtige Perzeptron-Netze. Um die Netze realisieren zu können, hatten wir damals C++-Klassen entwickelt die auf dem Aufbau einen Netzes basierten. Es gab Klassen für Neuronen, Schichten, Verbindungen und Netzen. Die Arbeit an diesen Klassen wurde jedoch eingestellt, da sich zum einen der Ansatz von U. Nehmzow als nicht geeignet zeigte und zum anderen unsere Netze zuviel Verwaltungsaufwand beim Lernen benötigten.
Nachdem sich der Implementierungsansatz der Perzeptron-Netze als ungeeignet gezeigt hat, haben wir die für das Navigationsverfahren von Long-Ji-Lin benötigten Backpropagation-Netze diesmal nicht über das bildliche Verständnis, sondern über einen mehr mathematischen Ansatz realisiert. Wir betrachten nicht alle Bestandteile des Netzes, sondern arbeiten nur mit den Gewichten der Kanten. Diese Gewichte werden in Matrizen gespeichert. Um die Netze lernen zu lassen, benötigen wir somit nur Vektor- und Matrixoperationen.
Das auf diese Weise entstandene Netz kann jedoch nur zweischichtige vollständig verknüpfte Feed-Forward-Netze darstellen. Auch das Lernen des Netzes ist auf einfaches Backpropagation-Lernen beschränkt. Es gibt weder Beschleunigungsverfahren noch online-Lernen.
Das von Long-Ji Lin in (lin93 ) vorgestellte Verfahren zur Navigation autonomer mobiler Roboter orientiert sich an natürlichem Verhalten. Es ermöglicht einem Roboter, verschiedene grundlegende Verhalten zu lernen und diese dann sinnvoll zu kombinieren, um Navigationsaufgaben in einer komplexen Umwelt zu bewältigen. In diesem Kapitel stellen Dominik Dunekamp und Oliver Meyer die Ergebnisse ihrer Untersuchungen dieses Algorithmus vor. Ein ausführlichere Beschreibung des aktuellen Standes wird in (dume95 ) gegeben.
Das wesentliche Ziel des Ansatzes besteht in dem Erlernen eines Navigationsverfahrens für komplexe Umgebungen. Das Verfahren ermöglicht in erster Linie das Finden eines Weges von einer beliebigen Ausgangsposition zu einer einzigen vorgegebenen Zielposition; es läßt sich aber auch auf mehrere unterschiedliche Zielpositionen erweitern.
Um die Lernzeiten des Roboters zu verkürzen, benutzt Lin die Integration des Lernens durch Vormachen (teaching). Diese Technik läßt sich problemlos und ohne viel Aufwand in das gewählte Verfahren integrieren und führt bei gleichem Zeitaufwand (Anzahl der Lernschritte) zu beachtlichen Verbesserungen des Gesamtverhaltens. Eine weitere Verkürzung der Lernzeiten bringt die Nutzung eines hierarchischen Ansatzes, bei dem zuerst elementare Verhalten (behaviours) gelernt werden, die dann zur Lösung komplexerer Aufgaben beitragen.
Um die Bewältigung der Aufgabe zu erleichtern und sie zu strukturieren, hat Lin in seiner Doktorarbeit einige einfachere Teilaufgaben formuliert, die elementare Navigationsprobleme lösen. Für uns sind dabei Wandverfolgung auf der linken und rechten Seite und das Durchfahren einer Tür von besonderem Interesse. (Es ist problemlos, weitere Elementarverhalten zu integrieren. Falls die Gesamtnavigation zu keinem befriedigendem Ergebnis führt, kann man an dieser Stelle jederzeit über eine Erweiterung nachdenken.)
Von dem Roboter werden dabei für jedes Verhalten Situations/Aktions-Paare gelernt. Eine Situation kann dabei neben den aktuellen Sensordaten auch aus internen Informationen über die Vergangenheit und eventuell extern aufbereiteten Daten bestehen. Um diese Paare zu lernen, wird das Prinzip des Reinforcement-Learning mit neuronalen Netzen kombiniert. Der Roboter bekommt dabei situationsabhängig von seiner Umwelt eine Belohnung oder eine Bestrafung (Belohnung und Bestrafung sind hier abstrakt zu sehen. Es handelt sich dabei lediglich um eine Bewertung in Form einer positiven oder negativen Zahl.) , wobei es gilt, die Belohnungen zu maximieren - Das Erreichen des Ziels führt dann jeweils zu einer besonders hohen Belohnung. Die neuronalen Netze werden benutzt, um Vorhersagen über die zu erwartende Gesamtbelohnung bei der Ausführung einer bestimmten Aktion in einer gegebenen Situation zu treffen; durch ihre Fähigkeit, auf ähnliche Eingaben ähnliche Ausgaben zu liefern, kann auch für Situationen, die noch niemals erreicht wurden, aber eine Ähnlichkeit zu bereits "Erlebtem" aufweisen, angemessen reagiert werden. Ausgeführt wird dann jeweils die Aktion, für welche die Netzwerke die höchste Belohnung voraussagen.
Die erlernten Grundverhalten werden benutzt, um durch geschicktes Wechseln an den richtigen Positionen das gewünschte Ziel zu erreichen, d. h. auf einer höheren Hierarchiestufe der Steuereinheit werden anstelle von Aktionen wie Vorwärtsfahren oder Kreisbogen fahren Grundverhalten wie z. B. Wandverfolgung benutzt.
Um das Navigationsgebiet zu strukturieren, wird es bei dem Ansatz von Lin in kleine, sich stark überschneidende Gebiete unterteilt. Innerhalb eines jeden Gebietes wird dann eine zentrale Position gewählt, die als eine Art Landmarke dient und zum einen möglichst markante Sensorwerte liefern und zum anderen einen günstigen Ausgangspunkt zur weiteren Navigation darstellen sollte. Von dem System wird dann wiederum mit Hilfe des Reinforcement-Learning gelernt, aus der näheren Umgebung einer solchen zentralen Position (Unterziel) zu dieser zu fahren. Da sich die Gebiete überschneiden, ist es dann möglich, von jeweils einem Unterziel zum nächsten zu gelangen und so letztendlich zu seinem globalen Ziel.
Bislang wurde von uns der erste Teil zum Erlernen der Grundverhalten implementiert. Wir haben uns dabei soweit es ging an die Vorgaben von Lin gehalten und im wesentlichen nur Änderungen zur Anpassung an die Steuerung eines Rollstuhls, wie er in unserem Projekt benutzt werden soll, vorgenommen. Weiterhin wurde auch auf die Austauschbarkeit von Bewertungstabellen (und damit Grundverhalten), benutzten neuronalen Netzen und natürlich der Schnittstelle zu dem zu steuernden Roboter großer Wert gelegt, um weitergehende Experimente zu erleichtern.
Bislang sind unsere Ergebnisse noch nicht als zufriedenstellend zu betrachten. Dies liegt in erster Linie in dem langsamen Lernverhalten von den zugrundeliegenden neuronalen Netzen und dem damit verbunden hohen Lernaufwand. Aufgrund einiger Probleme mit der verwendeten Simulation, war es uns bislang leider nicht möglich, genügend lange Lernsequenzen zu absolvieren, um das resultierende Verhalten beobachten zu können. Die Ergebnisse von Lin hingegen waren sehr vielversprechend.
Unser erstes Ziel ist es, das Lernen der Grundverhalten zu optimieren. Hierzu existieren eine Vielzahl von Möglichkeiten, wie zum Beispiel der Austausch der neuronalen Standard-Netzwerke durch spezialisierte Versionen oder Tabellen. Auch interessant ist die Verwendung von über die Zeit variierenden Bewertungsfunktionen. Da die genutzten Verfahren zum Erlernen der Grundverhalten und der Navigation im Kern sehr ähnlich sind, lassen sich die noch nicht implementierten höheren Hierarchieebenen voraussichtlich mit geringem Aufwand entwickeln, was dann unser nächster Schritt sein wird.
Der von Jan Kuhlmann erdachte und implementierte Kartenansatz arbeitet mit einer Karte, die die Basis für Positionsbestimmung und Navigation bildet. Die Karte soll Informationen von den Sensoren (nach eventueller Vorverarbeitung) bekommen und speichert die Position von Hindernissen. Alle weiteren Steuerungseinheiten sollen nach Möglichkeit nicht direkt auf die Sensoren zugreifen, sondern nur auf die in der Karte zentral gespeicherten Daten. In diesem Sinne ist die Karte als Universalsensor aufzufassen, als Schnittstelle zwischen den Sensoren und den Navigationsalgorithmen. Die vollstandige Dokumentation der Karte liegt vor in (kuhlmann95 ).
Der Kartenansatz wird in seiner Endversion grob aus vier Teilen bestehen: Einer Sensorvorverarbeitung und Positionsbestimmung, einer Karte, einem Navigationsalgortithmus und einem Greedy-Controller. Bis auf die Sensorvorverarbeitung sind die Komponenten fertiggestellt oder in Planung und werden hier kurz beschrieben.
Der Kartenansatz realisiert derzeit die Speicherung einer in Räume aufgeteilten Welt mit Hindernissen sowie einen darauf ansetzenden Navigationsalgorithmus, der die Punkte in der Kartenwelt ausgibt, die angefahren werden müssen, um von einen Punkt zu einem anderen zu gelangen.
Die Speicherung der Hindernisse in der Karte ist auf Speichereffizienz ausgelegt, damit auch große Welten abgebildet werden können: Es werden im Rahmen der Auflösung nicht einzelne Punkte gespeichert, sondern die Räume werden in möglichst wenige möglichst große Segmente aufgeteilt, die jeweils eine bestimmte 'Hindernissicherheit' repräsentieren. Die 'Hindernissicherheit' sagt etwas darüber aus, wie wahrscheinlich bzw. wie sicher es ist, daß sich an der zu dem entsprechenden Segment gehörenden Fläche in der realen Welt ein Hindernis befindet. Auf diese Weise können Sicherheitsaspekte realisiert werden, die die zu erwartenden ungenauen Sensorwerte berücksichtigen: Wenn die Sensoren ein in der Karte eingetragenes Hindernis einmal nicht mehr detektieren, so muß das nicht heißen, daß das Hindernis nicht mehr vorhanden ist; es kann sich auch um einen Meßfehler handeln. Würde das Hindernis jetzt sofort aus der Karte gelöscht, so würde der Navigationsalgorithmus glauben, daß er die entsprechende Fläche der realen Welt hindernisfrei durchqueren kann, was aber ja nicht der Fall ist. Aus diesem Grunde werden Hindernisse nur nach und nach aus der Karte gelöscht, indem bei jedem nicht-Detektieren eines in der Karte eingetragenen Hindernisses die Hindernissicherheit des zugehörigen Segments erniedrigt wird. Der Navigationsalgorithmus wird noch so lange davon ausgehen, daß sich an besagter Stelle ein Hindernis befindet, wie die Hindernissicherheit einen von Null verschiedenen Wert hat.
Der realisierte Navigationsalgorithmus ist konventionell, dafür aber schnell und effizient. Er basiert direkt auf der Karte und berücksichtigt nicht den Konfigurationsraum der Rollstuhls, um ihn unabhängig von der später verwendeten Hardware zu machen. Statt in einem drei- oder vierdimensionalen Raum aus x- und y-Koordinaten, der Ausrichtung des Rollstuhls und dem Lenkwinkel zu rechnen, berücksichtigt die Kartennavigation nur die x- und y-Koordinaten des Rollstuhls, also eine zweidimensionale Welt, was eine schnelle Berechnung mit minimalem Speicherplatzbedarf ermöglicht. Die Navigationsroutine liefert die Punkte, die angefahren werden müssen, um unter Berücksichtigung der in der Karte eingetragenen Hindernisse von einem Punkt zu einem anderen zu gelangen. Dabei werden die Zwischenpunkte so gewählt, daß die direkte Verbindungslinie zweier aufeinanderfolgender Punkte immer vollständig durch hindernisfreie Segmente führt, so daß man die Punkte mit einem omnidirektionalen Gefährt direkt nacheinander auf geradem Wege anfahren könnte. Der Navigationsalgorithmus verfolgt dabei wie die Karte Sicherheitsaspekte, indem er zum einen nicht den kürzesten Weg berechnet, sondern den mit den wenigsten Hindernissen. Zum anderen versucht er, den Abstand der Verbindungslinie zweier aufeinanderfolgender Punkte von Hindernissen zu maximieren.
In Planung ist eine Anknüpfung an eine Art Konfigurationsraum des Rollstuhls, um eine für den realen Rollstuhl nachfahrbare Trajektorie über die Navigationspunkte zu berechnen. Die Idee des verfolgten Ansatzes ist es, den Konfigurationsraum nur lokal zu berechnen, also nicht für jeden Punkt der anfahrbaren Welt. Es sollen sich daraus Geschwindigkeits- und Speicherplatzvorteile ergeben. Insgesamt soll ein Regelkreis entstehen, der nur minimal vom verwendeten Rollstuhl abhängt, um nicht auf exakte Befehlsumsetzungen auf der Hardwareseite angewiesen zu sein, die auch von Rollstuhl zu Rollstuhl eines Modells unterschiedlich sein können. Die Ausgabe des Regelkreises soll direkt an die Rollstuhlmotoren weitergegeben werden.
Im September 1995 fand im Rahmen des "Orkney Science Festivals" in Kirkwall(Schottland) die "Manchester Summer School in Robotics" statt. Dominik Dunekamp, Axel Lankenau, Oliver Meyer, Thomas Schwarzenbacher, Albert Wilkes und Jörg Zabel, sechs Mitglieder des Projekts SAUS, nahmen, neben 15 weiteren Personen aus verschiedenen europäischen Ländern, daran teil. Das Programm bestand aus Vorlesungen und praktischen Übungen zu unterschiedlichsten Gebieten der Robotik. Eine ausführlichere Beschreibung des Festivals kann dem Bericht (ork95 ) entnommen werden.
Es gab grundsätzlich zwei verschiedene Vorlesungsblöcke mit je 8x2 Stunden. Der erste wurde von Iain E.G. Richardson bestritten und befaßte sich mit den Bereichen der Signalgewinnung, -übertragung und -verarbeitung. Betrachtet wurden dabei unterschiedliche Sensoren, Aktoren und deren Vor- und Nachteile für bestimmte Einsatzzwecke. Weiterhin wurden Verfahren zur Aufbereitung und Umwandlung von Sensorsignalen, wozu auch die Bildverarbeitung zählt, vorgestellt. Die Möglichkeiten und Probleme der Datenübertragung wurden im Hinblick auf die Telerobtik behandelt.
Das Thema von Ulrich Nehmzows Teil der Veranstaltung waren die "autonomen mobilen Roboter". Er ging dabei auf die grundlegenden Probleme der Robotik ein und stellte verschiedene Steuerungsarchitekturen vor, die zum Teil durch natürliche Navigationsverfahren motiviert wurden. Neuronale Netze zur direkten Sensor-Aktorkopplung und lernende Systeme stellten dann einen weiteren wichtigen Block in seinen Ausführungen dar.
Die Vorlesungen wurden durch praktische Übungen begleitet. Zwei davon waren der Vorlesung von Iain Richardson zugeordnet, in denen grundlegende Techniken der Signalverarbeitung und der Datenübertragung ausprobiert wurden. In den verbleibenden sechs wurden dann von den Teilnehmern Steuerungsprogramme für Fishertechnik-Roboter entwickelt, die in zwei abschließenden Wettbewerben gegeneinander antraten.