Inhaltsverzeichnis
Vorwort
Mit diesem Eintrag sollen die Entscheidungen und Diskussionsergebnisse festgehalten werden, die zur Verwirklichung der Vision erforderlich sind. Insofern bleibt die Seite unvollständig und viele Einträge sind lediglich ein Hinweis: hier ist noch etwas zu tun.
Wenn Du mitmachen möchtest: Suche Dir die passende Stelle aus und erweitere sie. Problematische Fragestellungen kann man / sollte man erst im Forum diskutieren. Ergebnisse aus diesen Diskussionen gehören aber dann als Festlegungen in dieses Dokument. So kann der Stand der Entwicklung immer hier nachgelesen werden.
Dieser Artikel ist noch lange nicht vollständig. Der Auto/Initiator hofft das sich weitere User am Ausbau des Artikels beteiligen.
Das Ergänzen ist also ausdrücklich gewünscht! Besonders folgende Dinge würden noch fehlen: Erweitern und verbessern, da wo Du möchtest |
Vision
Die Entwicklung der Microcontroller hat derartige Fortschritte gemacht, dass mittlerweile sehr viele Funktionen zu einem günstigen Preis verfügbar geworden sind. Die Vielseitigkeit erlaubt es aber auch, Funktionen, die bislang in Hardware realisiert wurden, über Software bereitzustellen.
Es ist möglich geworden, Hardware und Microcontroller zu einer Zelle zu verbinden und die erforderliche Kommunikation zwischen den Zellen über ein Bussystem abzuwickeln. Die Verbindungen zwischen den Zellen können standardisiert werden, das "Miteinander" findet im Rahmen der Software statt.
Jede Zelle leistet einen Beitrag für ihre eigene Funktionalität und einen Beitrag für die Zellgemeinschaft. Ihre eigene Funktionalität ist bereits entwickelt, der Beitrag für die Zellgemeinschaft ist bereits festgelegt.
Roboter aus Roboterzellen bauen heißt also nur noch: Festlegen, welche Zelle was wann tun soll. Die übrigen Fragestellungen wurden bereits gelöst und stehen als fertige Zellen zur Verfügung.
Will man beispielsweise ein Fahrzeug erstellen, so nimmt man 4 Radzellen (oder 6, oder ...), Gelenkzellen, Sensorzellen, Logikzellen, ... und steckt sie zusammen. Dann braucht man sich nur noch darauf zu konzentrieren, dass das Fahrzeug auch so fährt, wie es soll ...
Grundregeln
Um die Entscheidungen leichter zu machen, hier ein paar Grundregeln:
- Auf geringen Energiverbrauch achten
- Auf geringes Gewicht achten
- Möglichst kostengünstige Hardware verwenden
- Einsparung von Hardware durch Softwarelösungen auf dem Controller
Natürlich können bei der Anwendung der Grundregeln widersprüchliche Lösungen entstehen. Dann ist halt abzuwägen.
Die Schnittstelle zwischen den Zellen
Damit die Zellen miteinander arbeiten können, müssen alle Verbindungen genormt sein. Hierzu zählen:
- Mechanik
- Energieversorgung
- Logik
Und was ist mit den Sensoren, den Motoren und der Software? Sensoren und Effektoren sind Funktionalitäten einer Zelle. Die Informationen oder Steuerimpulse werden über die logische Schnittstelle an andere Zellen weitergegeben. Also benötigt man hierfür keine Schnittstellendefinition.
Die Software muß die Regeln des Miteinanders einhalten. Diese werden in der logischen Schnittstelle ausgeführt.
Mechanische Schnittstelle
Hier müssen genormt werden:
- Wie koppeln zwei Zellen aneinander?
- Sie sollten einfach aber stabiel miteinander verbunden und wieder gelöst werden können.
- Welche Stecker und Buchsen werden verwendet?
- Welche Maße hat die Schnittstelle?
- Welche räumlichen Dimensionen sind zu beachten?
- Schnittstellen haben ein festes Rastermaß im Raum. Wo kann angedockt werden? Welche Regeln sind bzgl der Zellgröße zu beachten?
- Was ist bei der äussern Hülle, der Haut der Zellen bzw. des Roboters zu beachten?
Steckverbindungen
Es werden zwei Steckverbindungen entsprechend der RN-Definitionen verwendet: Zur Kommunikation und bei geringem Stromverbrauch der I2C-Bus Stecker als 10-poliger Wannenstecker:
Die Stromversorgung für Leistungsverbraucher erfolgt über die universellen Wannenstecker AKL230 mit 4 Polen.
Elektrische Schnittstelle
Steckerbelegungen und Spannungspegel, Belastbarkeit etc. sind festzulegen. Gebraucht werden elektrische Schnittstellen für:
- die Informationsübertragung und
- die Stromversorgung
Informationsübertragung
Die Informationsübertragung erfolgt über den I2C-Bus Stecker gemäß RN-Definitionen:
Pin 1 SCL (Taktleitung) Pin 3 SDA (Datenleitung) Pin 5 +5V Pin 7 +5V Pin 9 Batteriespannung +12V Pin 8 GND Batterie Pin 2,4,6 GND Pin 10 INT
Es sind Maximal 3 A je Pin zulässig. Pin 5 und 7 besitzen eine geregelte +5V Spannung. Die Batteriespannung ist auf +12V ausgelegt, kann aber je nach Ladezustand auch kleiner/größer ausfallen.
Stromversorgung
Bei Bedarf, kann über einen zusätzlichen Stecker die Stromversorgung bis zu 10 A sichergestellt werden.
Pin 1 Batteriespannung +12V Pin 2 GND Batterie Pin 3 Ladungsspannung <= ???V Pin 4 GND Ladung
Die Batteriespannung ist auf +12V ausgelegt, kann aber je nach Ladezustand auch kleiner/größer ausfallen.
Die Ladespannung dient zum Aufladen der Batterien. Es ist nicht sichergestellt, dass hier auch eine Spannung anliegt bzw. wie groß die Spannung tatsächlich ist. Hier können Stromerzeuger, wie z.B. ein Netzteil oder aber auch Solarzellen, ihren Strom anbieten.
Logische Schnittstelle
Hier werden die Fragen rund um den Aufbau der Informationen, die zwischen Zellen ausgetauscht werden können, gelöst. Aber auch die Einbindung der Standardsoftware für die Programmierung der Zellen muß geregelt sein.
Informationsaustausch
Der Informationsaustausch zwischen Zellen erfolgt über die Definition gemeinsamer Speicherzellen (Siehe Roboterzellen#Logik). Der Nutzer benennt lediglich die Speicherstellen, die einen gemeinsamen Wert beinhalten sollen. Das Betriebssystem regelt das Zusammenwirken beim Lesen oder Schreiben.
Softwareschnittstelle
Die Implementierung von Funktionen einer Zelle ist frei. Die Kommunikation zu anderen Zellen erfolgt jedoch ausschließlich über das Betriebssystem im Rahmen von gemeinsamen Speicherstellen. Da diese Kommunikation auf der Basis von I2C erfolgt, müssen bei der zusätzlichen Einbindung von I2C-Modulen gewisse Rahmenbedingungen eingehalten werden und es sind bestimmte Betriebssystemfunktionen zu verwenden.
Zelltypen
Die Schnittstellendefinitionen normieren, wie Zellen miteinander arbeiten können. Hier wird aufgezeigt, welche Funktionen die Zellen benötigen. Zellen mit gleicher Funktion, werden zu einem Zelltyp zusammengefasst. Jeder Zelltyp definiert seine Anforderungen an die Schnittstellen. Insbesondere der Bedarf an Strom und die bereitgestellten Funktionen der logischen Schnittstelle sind aufzuzeigen.
Die Liste der Zelltypen ist (noch) unsortiert und sollte je nach Bedarf verlängert werden.
Ein-/Ausgabe
Kernstück für den Aufbau zellularer Roboter ist ein Ein-/Ausgabemodul, mit dem der Benutzer die erforderlichen Parameter festlegt. Ist der Roboter erstellt, sollte das Modul nicht mehr unbedingt erforderlich sein.
Sensoren
Dieser Zelltyp ist sicherlich noch weiter zu untergliedern. Was sind die wichtigsten Sensoren, die unterstützt werden sollten? Wie viele Sensoren werden in einer Zelle zusammengefasst?
Effektoren
Lineare Antriebe
Ähnlich den Schubzylindern eines Baggerarmes werden elektrische Antriebe benötigt, die eine Stange verlängern oder verkürzen können. Hierüber können Arme und Beine Beweglichkeit erhalten.
Räder
Viele Roboter bewegen sich auf Reifen.
Verstrebung
Nicht immer werden überall Funktionen benötigt. Es müssen auch leichte Elemente ohne Funktionalität bereitgestellt werden.
Schaniere
Die Kopplungen sind alle starr. Um Beweglichkeit zu ermöglichen, müssen bewegbare Zellen vorhanden sein.
Stromversorgung
Ein oder mehrere dieser Zellen sind für die Energieversorgung zuständig. Neben Akkus können Netzgeräte und auch Solarpannels zum Einsatz kommen.
Logik
Ein Standardtyp zur Verarbeitung der Informationen. Die Informationsverarbeitung erfolgt bei allen Roboterzellen nach dem gleichen Prinzip. Deswegen enthält jede Zelle auch einen Logik-Anteil, so dass die Zusammenarbeit sichergestellt ist.
Definition von Speicherstellen
Eine Speicherstelle besitzt einen Namen und einen Wertebereich. Der Name ist innerhalb einer Zelle eindeutig. Der Wertebereich ist über alle Zellen eindeutig definiert.
Der Wertebereich kann eine Auflistung von Bezeichnern sein (z.B. Boolean: {False, True}) oder ein Zahlenbereich (z.B. Byte: 0 .. 255). Vordefiniert sind die Wertebereiche von Boolean, Byte, Integer und Float.
Definition gemeinsamer Speicherstellen
Eine Speicherstelle kann auch derart definiert werden, dass man sich auf die Speicherstelle einer anderen Zelle bezieht. Dann stellt das Betriebssystem sicher, dass der Zugriff (Lesen oder Schreiben) von jeder betroffenen Zelle aus so erfolgt, als wenn es sich um eine lokale Definition handeln würde. Veränderungen werden transparent durchgereicht. Die logische Schnittstelle besteht also eigentlich in diesen gemeinsamen Speicherstellen.
Programmierung
Die Programmierung erfolgt, indem die Zusammenhänge zwischen den Speicherstellen einer Zelle beschrieben werden. Jeder Zusammenhang ist eine Liste von Speicherstellenbeschreibungen.
Eine Speicherstellenbeschreibung benennt eine Speicherstelle, den vorgesehenen Wert (oder einen Bereich von Werten) und ein angegebenes Gewicht.
Die Zelle sucht nun permanent nach gültigen Zusammenhängen und führt diese aus. Ein Zusammenhang ist gültig, wenn die Summe der Gewichte der Speicherstellenbeschreibungen über einem gewissen Schwellwert liegt.
Das Gewicht einer Speicherstellenbeschreibung berechnet sich wie folgt: Entspricht der momentane Wert einer Speicherstelle einem der vorgesehenen Werte, so ist das Gewicht der Speicherstellenbeschreibung gleich dem angegebenen Gewicht. Andernfalls ist es 0.
Liegt die Summe der Gewichte (Gesamtgewicht) nun über einem gewissen Schwellwert, so wird der Zusammenhang ausgeführt: Die Werte aller im Zusammenhang aufgeführten Speicherstellen werden so verändert, dass ein möglichst hohes Gesamtgewicht erreicht wird.
Am Ende der Beschreibung der Syntax für die Befehle und zur Programmierung ist in Roboterzellen: Syntax ein Beispiel aufgefürt.
Anmerkung: Klingt komplizierte als es ist. Im Kern ist es ein Gemisch aus neuronalen Netzen und Regeln von Expertensystemen. Mal abwarten, wie es sich implementieren lässt. Wenn es funktioniert, kann eine Robotersteuerung ganz einfach aufgebaut werden und man konzentriert sich auf die Problemstellung. Ballast, wie das Erlernen einer Programmiersprache, ist nicht erforderlich.
Das Miteinander
In den vorangehenden Kapiteln wurden Zellen bereitgestellt. Wie können diese Zellen zu dem gewollten Zusammenarbeiten bewegt werden?
Erstellung eines Zellverbundes
Was muß getan werden, damit aus einzelnen Zellen ein funktionsfähiger Zellverbund entsteht? Wie unterstützen die Zellen den Aufbau?
Programmierung
Wie können die Logikzellen in einem Zellverbund programmiert werden?
Verweise
Quellen
Autor
--ZellRobi 06:37, 22. Jun 2008 (CEST)