|
|||
---|---|---|---|
"Klassischer" Aufbau:
Abb.02a: Fahrgestell Abb.02b: Ansicht von unten Abb.02c: Fahrgestell mit Plexiglashülle |
|
|||
---|---|---|---|
Die D001-Elektronik befindet sich auf einer Lochrasterplatine im Europakarten-Format. Zentrale informationsverarbeitende Baugruppe ist das Prozessorboard. Der darauf befindliche Microcontroller verarbeitet die Sensordaten und generiert Befehle an die Aktuatoren. Die Sensoren liefern Informationen über die aktuelle Umgebungssituation des Roboters (Helligkeit, Abstand bzw. Kontakt zu Hindernissen) und über interne Zustände (Akkuspannung, Bewegung der Antriebe, Endlagenschalter). Über Vollbrückentreiber können die Drehrichtung und -geschwindigkeit von bis zu vier Gleichstrommotoren (2 Fahrmotoren, 2 Hilfsmotoren) gesteuert werden. Das Userinterface und das Funkmodul gestatten den Eingriff in den Programmablauf und ermöglichen die Anzeige/Auswertung von Daten. Abbildungen: Abb.03a: Hardwareschema Abb.03b: D001-Elektronik |
|
|||
---|---|---|---|
Das Prozessorboard basiert auf einen 8bit-Microcontroller (intel 80C51GB) und dessen
Perepheriebeschaltung. Alle wichtigen Signale (I/O-Ports, Daten- und Adressbus, ...)
sind auf Pfostenstecker geführt. Über CAN-Bus können mehrere Prozessorboards miteinander verbunden werden. Da der verwendete Microcontroller steinalt ist und nicht mehr hergestellt wird, eignet sich das hier vorgestellte Projekt leider nicht für den Nachbau. In seiner Leistungsfähigkeit (nicht aber in der internen Architektur) ist er in etwa mit dem MC68HC11 vergleichbar, der in der experimentellen Robotik vielfach eingesetzt wurde. Einige Eckdaten des 80C51GB:
Abb.04a: Ansicht des Prozessorbords von zwei Seiten Datenblätter: intel Mikroprozessor i80C51GB (pdf 271k) MCS® 51 Microcontroller Family User's Manual (pdf 15.277k) |
|
|||
---|---|---|---|
Als Kollisionssensoren (Bumper) dienen drei Mikroschalter, die im Winkel von
120 Grad zueinander am Rand der Trägerplatte befestigt sind. Bei Kollisionen
löst der Druck des Hindernisses gegen die Plexiglashülle je nach Stelle des
Zusammenstoßes einen oder zwei Mikroschalter aus. Abbildungen: Abb.05a: Bumper auf der Trägerplatte |
|
|||
---|---|---|---|
D001 kann mit bis zu 16 IR-Sensoreinheiten bestückt werden. Sie werden zur Hinderniserkennung und
zum Erfassen der Umgebungshelligkeit eingesetzt. Jede Sensoreinheit besteht aus einem analogen IR-Sensor (TSL261) und einer IR-LED. Zwei 12-bit AD-Wandler (MAX197) digitalisieren die analogen Ausgangsspannungen der Sensoren. Die Umgebungshelligkeit wird bei ausgeschalteter IR-LED gemessen. Der Abstand zu einem Hindernis wird aus der Differenz der Meßwerte bei ein- und ausgeschalteter IR-LED ermittelt. Leider ist der so ermittelte Meßwert nur eine grobe Schätzung, da er neben dem Abstand auch vom Reflexionsvermögen des Hindernisses abhängt. Helle Hindernisse ergeben einen höheren Meßwert (d.h. geringeren Abstandswert) als dunkle. Wegen der großen Anzahl der Sensoren und der hohen Auflösung eignet sich diese Anordnung gut für Experimente mit neuronalen Netzwerken. Die o.g. Abhängigkeit vom Reflexionsvermögen kann man durch gleichfarbige Hindernisse in der Experimentumgebung weitgehend eleminieren. Abbildungen: Abb.06a: IR-Sensoreinheiten Abb.06b: D001-Frontansicht mit IR-Sensoreinheiten Datenblätter: TI IR-Sensor TSL261 (pdf 118k) MAXIM 12-bit AD-Wandler MAX197 (pdf 166k) |
|
|||
---|---|---|---|
Die magnetischen Impulsgeber auf den Motorwellen liefern pro Umdrehung 16 Impulse. Durch die Getriebeuntersetzung
ergeben sich ca. 1000 Impulse pro Radumdrehung.
Diese Impulse werden je nach Drehrichtung von 24bit-Quadraturzählern aufsummiert oder subtrahiert. Der Microcontroller liest
die Zählerstände zyklisch (50ms) aus und generiert daraus die Eingangsgrößen für Geschwindigkeitsregelung und Odometrie. Abbildungen: Abb.07a: Antriebsmotor mit Impulsgeber (und Planetengetriebe) Datenblätter: Magnetische Impulsgeber Serie 20B (pdf 117k) LSI Zählerbaustein LS7266R1 (pdf 81k) Links: US Digital (Vertrieb der Zähler-ICs) |
|
|||
---|---|---|---|
Als Fahrmotoren kommen zwei 24V-Gleichstrommotoren zum Einsatz. Die vorgeschalteten
Planetengetriebe untersetzen die Motordrehzahl 66-fach. Die Motoren werden über
Vollbrückentreiber (L298) angesteuert. Zur Erfassung von Drehzahl und -richtung dienen
die oben beschriebenen Impulsgeber. Abbildungen: Abb.08a: Antriebsmotor mit Impulsgeber und Planetengetriebe Abb.08b: D001 mit allen montierten Motoren von unten Datenblätter: Faulhaber DC-Kleinstmotor 3042_024_C (pdf 41k) Faulhaber Planetengetriebe Serie 30/1 (pdf 37k) ST Vollbrückentreiber L298 (pdf 186k) Links: DR. FRITZ FAULHABER GMBH & CO. KG |
|
|||
---|---|---|---|
Neben den Fahrmotoren kann die D001-Elektronik zwei weitere Motoren ansteuern.
Hilfsmotor 1 treibt über ein Kegelradgetriebe eine vertikale Welle in der Mitte
des Roboters an. Hier könnten Sensoren für einen 360-Grad-Scan (Ultraschall, GP2D..)
oder eine Kamera montiert werden. Abbildungen: Abb.09a: montierter Hilfsmotor 1 Abb.09b: D001 mit allen Motoren von unten |
|
|||
---|---|---|---|
Die Stromversorgung von D001 ist großzügig ausgelegt. Zwei Bleigelakkus (12V/1,2Ah)
erlauben bis zu 24h Betrieb des Roboters (Stombedarf im Stand ca. 50mA). Die Akkus sind in Reihe geschaltet und liefern die Betriebsspannung Vss für die Motoren (21,0V - 27,6V). Ein DC/DC-Wandler erzeugt daraus die Versorgungsspannung Vcc (5V/max.1A) für die Logikbausteine. Die Akkuspannung wird vom 8-bit AD-Wandler des Microcontrollers digitalisiert und dient als Eingangsgröße für die Energiemanagementroutinen. Die Betriebsspannung für die Motortreiber kann manuell oder per SW zu- oder abgeschaltet werden. Abbildungen: Abb.10a: Fahrgestell mit montierten Akkus Datenblätter: Sonnenschein dryfit A500-Serie (pdf 1649k) SYKO Schaltregler Serie MSR.K/MSR.A (pdf 117k) Links: SYKO Gesellschaft für Leistungselektronik mbH |
|
|||
---|---|---|---|
|
Die auf D001 vorhandenen Bedien- und Anzeigeelemente werden unter dem Oberbegriff "Userinterface" zusammengefaßt. Dazu zählen:
Abbildungen: Abb.11a: Elektronikbaugruppe mit entferntem Prozessorboard (Stand noch ohne MAX197) |
|
|||
---|---|---|---|
Das eingesetzte Funkmodul ermöglicht die Halbduplex-Datenverbindung zu einem PC.
Es wurde ein paketorientiertes Übertragungsprotokoll implementiert.
Abbildungen: Abb.12a: Funkmodul und RS232-Modul Abb.12b: Funkmodem zum Anschluß an den PC (serielle Schnittstelle) Datenblätter: Radiometrix Funkmodul BIM-UHF (pdf 480k) Daniel Regenass: Datenkommunikation zwischen Roboter und Computer (pdf 471k) Links: Radiometrix Ltd. Daniel Regenass |
|
|||
---|---|---|---|
Die D001-Software wird in C entwickelt. In der Entwicklungsphase kann das kompilierte Programm
in einen EPROM-Simulator geladen und auf dem Roboter getestet werden. Die Robotersoftware besteht aus zwei Hauptkomponenten: dem Betriebssystem und der Verhaltenssteuerung. Das Betriebssystem beinhaltet u.a. den Scheduler, Funktionen zum Zugriff auf die Hardware, die Vorverarbeitung von Sensordaten, die Kommunikationsroutinen u.v.m.. Die Verhaltenssteuerung, bestehend aus den Verhaltensroutinen und den Arbitrierungsfunktionen, steuert das Roboterverhalten. Sie kann nur über das Betriebssystem auf die Roboterhardware zugreifen. Zur Steuerung von D001 kommt eine erweiterte verhaltensorientierte Kontrollstruktur zum Einsatz. Die verhaltensorientierte Kontrollstruktur geht auf Arbeiten von Rodney A. Brooks aus dem Jahre 1986 zurück. Bei diesem Ansatz wird das Gesamtverhalten des Systems in einzelne Verhaltensschichten zerlegt. Jede dieser Verhaltensschichten verfolgt ein eigenes Ziel und hat prinzipiell Zugriff auf alle Sensordaten. Die einzelnen Verhaltensschichten konkurrieren untereinander, so daß zu jeder Zeit von allen Verhaltensweisen ein Vorschlag zur Steuerung der Aktuatoren vorliegen kann. Welche Verhaltensweise sich in einer bestimmten Situation tatsächlich auf die Aktuatoren auswirkt, entscheidet eine Instanz, die als Verhaltensfusion (behavior fusion) oder Arbitrierung (arbiter) bezeichnet wird. Brooks schlägt die subsumption architecture vor, dabei sind Verhalten höherer Schichten in der Lage, Verhalten niedriger Schichten zu unterdrücken. Einzelne Verhaltensweisen werden als endliche Automaten implementiert, und globale Daten, wie zum Beispiel ein Umweltmodell, sind nicht zugelassen. Bei dem Ausfall von höheren Schichten versagt nicht das gesamte System, sondern die unteren Schichten können in der Regel weiterhin arbeiten. Dadurch wird die Sicherheit des Systems erhöht, da zum Beispiel trotz Ausfalls eines anwendungsspezifischen Verhaltens, ein Verhalten zur Hindernisvermeidung noch arbeiten kann und so Kollisionen weiterhin vermieden werden. Bei der erweiterten verhaltensorientierten Kontrollstruktur wird nicht der strikte Ansatz von Brooks verfolgt. Anstelle der Verhaltensfusion durch subsumption, steht hier eine allgemeine Arbitrierungseinheit. Auch werden globale Daten und ggf. ein Umweltmodell zugelassen. Abbildungen: Abb.13a: Softwareschema (stark vereinfacht) Links: Brooks, R. A.: A Robust Layered Control System for a Mobile Robot |
© 2001 HD |