D001 - Überblick

Anforderungen, Einsatzort
Mechanik
Elektronik - Überblick
Prozessorboard
Sensoren - Bumper
Sensoren - Helligkeit / IR-Reflex
Sensoren - Impulsgeber

Aktuatoren - Fahrmotoren
Aktuatoren - Hilfsmotor(en)
Stromversorgung
Userinterface
Funkmodul
Software - Überblick

 


ANFORDERUNGEN, EINSATZORT Seitenanfang


Abb.01a


Abb.01b


Abb.01c

Ziel der Entwicklung von D001 war es, eine mobile, autonome Plattform für Experimente mit Roboter Kontroll Architekturen zu schaffen. Sie sollte hard- und softwareseitig stetig erweiterbar sein und einen weiten Spielraum für Experimente bieten.

D001 soll helfen, meinen Spieltrieb (und Forscherdrang) auf folgenden Gebieten zu stillen:
  • Embedded Systems
  • Roboternavigation
  • Biomimetische Robotik
  • Verhaltensbasierte Wahrnehmung
  • (dynamische) neuronale Netzwerke, Selbstorganisation
  • Modellierung bestimmter Strukturen/Leistungen der Hirnrinde
  • ...
In diesem Umfeld muß sich D001 bewähren:
  • ebener Untergrund (Parkett-, Fliesen-, Steinfußböden)
  • keine Stufen, Türschwellen, etc.
  • "Wälder" aus dünnen Stuhl- und Tischbeinen
  • nicht alle Hindernisse beginnen direkt am Boden
  • in den Raum ragende, schmale Metallteile
  • verformbare Hindernisse (Textilien, Kabel)
  • Beleuchtung: totale Finsternis bis direktes Sonnenlicht
Abbildungen:
Abb.01a-c: D001

 
MECHANIK Seitenanfang


Abb.02a


Abb.02b


Abb.02c

"Klassischer" Aufbau:
  • kreisförmige Trägerplatte aus Aluminium
  • Differentialantrieb, d.h.: zwei Antriebsräder auf einer gemeinsamen Achse, ein schwenkbares Stützrad
  • mechanischer Schutz und Bumperstimulierung durch eine federnd aufgehängte Plexiglashülle (Vorbild: MIT/"Rug Warrior")
Einige mechanische Parameter:
  • Abmessung D001: 300 mm Durchmesser, 120 mm Höhe
  • Durchmesser der Trägerplatte: 260 mm
  • Höhe der Trägerplatte über Boden: 52 mm
  • Raddurchmesser: 48 mm
  • Radabstand: 240 mm
  • max. Geschwindigkeit: 1 km/h
  • Gewicht: 3,5 kg
Abbildungen:
Abb.02a: Fahrgestell
Abb.02b: Ansicht von unten
Abb.02c: Fahrgestell mit Plexiglashülle

 
ELEKTRONIK - ÜBERBLICK Seitenanfang


Abb.03a
(groß)


Abb.03b

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

 
PROZESSORBOARD Seitenanfang


Abb.04a

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:
  • 15 mögliche Interuptquellen
  • 3 konfigurierbare 16-bit Timer/Counter
  • 2 programmierbare 16-bit Zählerarrays (je 5 Zähler)
  • 48 digitale Ein-/Ausgänge (davon 18 belegt für Daten-/Adressbus, /WR, /RD)
  • 8 8-bit AD-Wandlereingänge
  • ...
Perepheriebausteine auf dem Prozessorboard:
  • Speicher: 32K RAM, 32K EPROM
  • Basic-CAN-Controller (PCA82C200T)
  • CAN-Bustreiber-IC
  • ...
weitere Daten des Prozessorboards:
  • Takt: 12,288MHz (1 Maschinenbefehl = 12 Takte, also ca. 1Mips)
  • mech. Abmessung: 52x100 qmm
Abbildungen:
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)

 
SENSOREN - BUMPER Seitenanfang


Abb.05a

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

 
SENSOREN - HELLIGKEIT / IR-REFLEX Seitenanfang


Abb.06a


Abb.06b

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)

 
SENSOREN - IMPULSGEBER Seitenanfang


Abb.07a

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)

 
AKTUATOREN - FAHRMOTOREN Seitenanfang


Abb.08a


Abb.08b

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

 
AKTUATOREN - HILFSMOTOR(EN) Seitenanfang


Abb.09a


Abb.09b

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

 
STROMVERSORGUNG Seitenanfang


Abb.10a

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

 
USERINTERFACE Seitenanfang


Abb.11a

Die auf D001 vorhandenen Bedien- und Anzeigeelemente werden unter dem Oberbegriff "Userinterface" zusammengefaßt.

Dazu zählen:
  • Hauptschalter (Links: alles aus / Mitte: 5V ein / Rechts: 5V und 24V ein)
  • 3 Taster (davon 1x Reset)
  • 3 LEDs

Abbildungen:
Abb.11a: Elektronikbaugruppe mit entferntem Prozessorboard (Stand noch ohne MAX197)

 
FUNKMODUL Seitenanfang


Abb.12a


Abb.12b

Das eingesetzte Funkmodul ermöglicht die Halbduplex-Datenverbindung zu einem PC. Es wurde ein paketorientiertes Übertragungsprotokoll implementiert.
  • Übertragungsgeschwindigkeit: 38400bps (wegen Manchesterkodierung nur 19200bps nutzbar)
  • Arbeitsfrequenz: 433,92 MHz
  • Reichweite Funkmodem im Freien: ca. 100m
  • Reichweite Funkmodem in Gebäuden: ca. 25m
  • max. Paketgröße: 32 Datenbytes
Alternativ kann statt des Funkmodules ein Modul mit MAX232 auf die Hauptplatine gesteckt werden. Damit ist eine schnellere kabelgebundene PC-Verbindung (z.B. für Debugzwecke) möglich.

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

 
SOFTWARE - ÜBERBLICK Seitenanfang


Abb.13a
(groß)

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