Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen

Die Seite wird erstellt Sibylle-Hortensia Simon
 
WEITER LESEN
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
Universität Paderborn
    Fakultät für Elektrotechnik, Informatik und Mathematik

                       Bachelorarbeit

Re-Engineering eines LEGO Hochregallagers
 und Konzeption der Steuerung mit Hilfe
     von Mindstorms NXT-Modulen

                       Jendrik Bertram

                      13. Dezember 2007

                         betreut von
                       Michael Dohmen

                        vorgelegt bei
               Prof. Dr. Johannes Magenheim
                 Prof. Dr. Stefan Böttcher
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
Erklärung

Ich versichere, dass ich die vorliegende Arbeit selbstständig und ohne unerlaubte Hilfe
Dritter angefertigt habe. Alle Stellen, die inhaltlich oder wörtlich aus anderen Veröffentlichungen
stammen, sind kenntlich gemacht. Diese Arbeit lag in gleicher oder ähnlicher Weise noch
keiner Prüfungsbehörde vor und wurde bisher noch nicht veröffentlicht.

                                                                  Jendrik Bertram

                                                           Paderborn, 13. Dezember 2007

                                              i
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
Zusammenfassung
In Hochregallagern sind oft viele tausende Palettenstellplätze vorhanden, welche durch
schienengeführte Regalbediengeräte beladen werden. Diese Regalbediengeräte werden
über Förderbandsysteme oder autonome Transportfahrzeuge mit den Paletten beliefert.
Im Rahmen des MuSoft Projekts ist ein Model solch eines Hochregallagers mit Hilfe der
LEGO Mindstorms entstanden, dessen Steuerung durch das Robotics Invention System
(RIS) umgesetzt wurde. Hierbei wurde nicht auf die von LEGO entwickelte Mindstorms
Programmierumgebung zurückgegriffen, sondern auf das OpenSource Projekt leJOS.

  Mit leJOS ist es möglich die programmierbaren Bausteine mit Hilfe von Java zu pro-
grammieren. Dafür wurde eine Java Virtual Machine entwickelt, die auf diesen Bau-
steinen funktioniert. Außerdem wurde eine Bibliothek zur Verfügung gestellt, die es
ermöglicht, die Aktoren und Sensoren anzusprechen. Zusätzlich stellt leJOS Funktionen
bereit, die es vereinfacht, oft benutzte Konzepte der Robotik umzusetzen.

  Die LEGO Mindstorms RCX Serie wurde mittlerweile von der LEGO Mindstorms
NXT Serie abgelöst. Das leJOS Projekt hat mit der Arbeit begonnen, die Virtual Machi-
ne und die Bibliothek zu portieren und zu erweitern, um von den neu hinzu gekommenen
Funktionalitäten Gebrauch machen zu können.

  Diese Bachelorarbeit stellt die Neuerungen der Mindstorms NXT vor und zieht einen
Vergleich zu den Mindstorms RCX. Dabei wird neben der grundsätzlich unterschiedli-
chen Konstruktion, auf die neuen Sensoren und Aktoren, aber auch die Änderungen in
der Programmierung eingegangen.
Alle Elemente des bestehenden Hochregallagers werden mit den neuen NXT Bausteinen
in der stud-less Bauweise neu aufgebaut, wobei versucht wird von den Neuerungen so
weit wie möglich Gebrauch zu machen und Schwachstellen des alten Systems so weit wie
möglich zu umgehen.
Der Schwerpunkt liegt darin die störanfällige und langsame Infrarot-Kommunikation
gegen eine Bluetooth-Kommunikation einzutauschen und die Steuerung mit Hilfe eines
einfachen Menüsystems auf einem der programmierbaren NXT Bausteine umzusetzen.

  Zusätzlich werden Ansätze dargestellt, wie sich das System mit weiterer Funktionalität
ausbauen lässt. Diese sind hauptsächlich darauf angesetzt, zu versuchen das Model einem
wirklichen Hochregallager von der Funktionalität her ähnlicher zu machen.

                                            ii
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
Inhaltsverzeichnis

1 Einleitung                                                                                                                                1
  1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                      1
  1.2 Ziele der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                    2
  1.3 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                       3

2 Definitionen                                                                                                                             4

3 RCX und NXT                                                                                                                               7
  3.1 Die programmierbaren Bausteine .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
  3.2 Die Aktoren . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
      3.2.1 Der RCX Motor . . . . . .              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
      3.2.2 Der NXT Motor . . . . . .              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   11
  3.3 Die Sensoren . . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
      3.3.1 Der Drucktaster . . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
      3.3.2 Der Licht Sensor . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
      3.3.3 Der Sound Sensor . . . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
      3.3.4 Der Ultrasonic Sensor . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
      3.3.5 Der Rotations Sensor . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
      3.3.6 Produkte anderer Hersteller            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
  3.4 Programmierung . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   19
      3.4.1 NXT-G . . . . . . . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   19
      3.4.2 leJOS . . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   20

4 Konstruktion                                                                                                                             24
  4.1 Das Hochregal . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
  4.2 Das Regalbediengerät . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
      4.2.1 Die Fahreinheit . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
      4.2.2 Die Hubeinheit . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
      4.2.3 Die Lastaufnahmeeinheit .              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
  4.3 Die Übergabestation . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
  4.4 Das Autonome Transportfahrzeug               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
  4.5 Die Fahrbahn . . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   33

5 Implementierung                                                                     35
  5.1 Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
       5.1.1 Die Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
  5.2 Der Master Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

                                             iii
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
Inhaltsverzeichnis                                                                                     Inhaltsverzeichnis

         5.2.1 Das Menüsystem . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   41
         5.2.2 Das Lagerverwaltungssystem          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   42
   5.3   Das Regalbediengerät . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   43
   5.4   Die Übergabestation . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   45
   5.5   Das Transportfahrzeug . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   46
         5.5.1 Initialisierung . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   46
         5.5.2 Linienverfolgung . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   47
         5.5.3 Positionsbestimmung . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   48
         5.5.4 Anfahrt der Zielpositionen . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   51

6 Erweiterungsmölichkeiten                                                                                                            53
  6.1 ATF Erweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                  54
  6.2 UEG Erweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                    55
  6.3 Lagerverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                  56

7 Fazit und Ausblick                                                                                                                   57

A UML Diagramme                                                                      58
  A.1 Klassendiagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
  A.2 Sequenzdiagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

B Konstruktionsabbildungen                                                            61
  B.1 Anschlussbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

C Inhalt der beiliegenden CD                                                                                                           65

D Inbetriebnahme                                                                                                                       66

Literaturverzeichnis                                                                                                                   67

                                            iv
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
Abbildungsverzeichnis

 2.1    Ein Hochregallager mit Regalbediengerät . . . . . . . . . . . . . . . . . .                                                4

 3.1    Der RCX Baustein . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
 3.2    Der NXT Intelligent Brick . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
 3.3    Der RCX Motor . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
 3.4    Der NXT Motor . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   11
 3.5    Der RCX Drucktaster . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
 3.6    Der NXT Drucktaster . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
 3.7    Der RCX Licht Sensor . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
 3.8    Der NXT Licht Sensor . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   14
 3.9    Der NXT Sound Sensor . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
 3.10   Der NXT Abstands Sensor . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
 3.11   Der RCX Rotations Sensor . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
 3.12   Der HiTechnic Kompass Sensor . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
 3.13   Die NXT-G Entwicklungsumgebung          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   19

 4.1    Das RCX Hochregallager . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   25
 4.2    Das Hochregal . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
 4.3    Die Fahreinheit . . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
 4.4    Die Hubeinheit . . . . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
 4.5    Die Übergabestation . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
 4.6    Das Autonome Transportfahrzeug . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
 4.7    Der Initialisierungsbereich für das ATF        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   33
 4.8    Die Fahrbahn . . . . . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   34

 5.1    Sequenzdiagramm Einlagern . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   37
 5.2    Die Command Hierarchie . . . . . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   38
 5.3    Klassendiagramm des Master Controllers              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   42
 5.4    Klassendiagramm des Regalbediengerätes             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   44
 5.5    Klassendiagramm der Übergabestation . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   45
 5.6    Schema einer Positionsveränderung . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   49
 5.7    Anfahrt der Zielposition . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   51

 A.1 Klassendiagramm upb.hrl.comm . . . . . . . . . . . . . . . . . . . . . . . 58
 A.2 Klassendiagramm des Autonomen Transportfahrzeuges . . . . . . . . . . . 59
 A.3 Sequenzdiagramm Auslagern . . . . . . . . . . . . . . . . . . . . . . . . . 60

                                            v
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
Abbildungsverzeichnis                                             Abbildungsverzeichnis

   B.1 Das Regalbediengerät mit Hochregal . . . . . . . . . . . . . . . . . . . . . 61
   B.2 Das Regalbediengerät . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
   B.3 Die Lastaufnahmeeinheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

                                           vi
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
1 Einleitung
1.1 Motivation
Im Rahmen des MuSoft Projekts1 ist ein Hochregallager auf Basis des LEGO2 Mind-
storms3 Robotics Invention System (RIS) entstanden, welches ein Modell des Avarto4
Hochregallagers von Bertelsmann in Bielefeld darstellt.
Das System wird von insgesamt 10 RCX Bausteinen gesteuert, die auf autonome Trans-
portfahrzeuge, Übergabestationen und Regalbediensysteme verteilt sind. Die RCX Mo-
dule kommunizieren dabei über die eingebaute Infrarotschnittstelle mit einem speziell
entwickelten Protokoll, welches einen Tokenmanager einsetzt.
Obwohl LEGO eine grafische Programmierumgebung zur Erstellung von Programmen
mitliefert, wurde sich dafür entschieden die Programmierung mit Hilfe der frei verfügbaren,
auf Java basierenden, leJOS5 Bibliothek durchzuführen. Dadurch konnten einige elemen-
tare Einschränkungen umgangen werden.

  Im Jahr 2006 wurde von LEGO eine neue Generation der programmierbaren Baustei-
ne, welche das Robotics Invention System ablösen, in das Sortiment aufgenommen. Die
neuen Mindstorms NXT Module sind deutlich leistungsfähiger als die alten RCX Mo-
dule, aber leider nicht kompatibel. Die Programmierbausteine, sowie die Motoren und
Sensoren, haben andere Dimensionen und werden mit Hilfe der neuen studd-less Technik
zusammen gebaut. Außerdem unterscheiden sich die Komponenten teilweise deutlich in
ihrer Funktionalität.
Auch die alten leJOS Bibliotheken sind in der Form nicht weiter benutzbar. Das Open-
Source Projekt arbeitet jedoch daran die Java Virtual Machine auf die neuen Bau-
steine zu portieren und die dazugehörige Bibliothek anzupassen, um von den neuen
Möglichkeiten, wie Bluetooth und neuartigen Sensoren, Gebrauch machen zu können.
Zum aktuellen Zeitpunkt steht leJOS NXJ in der frühen beta Version 0.4 zur Verfügung.

  Somit bietet sich LEGO Mindstorms NXT, in Verbindung mit leJOS NXJ, dazu an,
das Model des Hochregallagers umzurüsten und dessen Funktionalität zu erweitern.

 1
   http://www.musoft.org
 2
   http://www.lego.de
 3
   http://www.legomindstorms.com
 4
   http://www.arvato-systems.de
 5
   http://www.lejos.org

                                             1
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
1.2. ZIELE DER ARBEIT                                      KAPITEL 1. EINLEITUNG

1.2 Ziele der Arbeit
In dieser Bachelorarbeit wird das bestehende LEGO Mindstorms RIS Hochregallager
der FG Didaktik6 mit Hilfe der LEGO Mindstorms NXT neu aufgebaut. Die Steuerung
soll von leJOS RCX nach leJOS NXJ portiert und alle Elemente mit Hilfe der stud-less
Technik neu konstruiert werden. Dieses ist nötig, da weder die leJOS Bibliotheken, noch
die Konstruktion der beiden Systeme miteinander kompatibel ist.

  Für die Konstruktion der überarbeiteten Elemente ist es notwendig die Möglichkeiten
der mitgelieferten, aber auch anderweitig erhältlichen, Aktoren und Sensoren genauer
zu betrachten, um diese bestmöglich einsetzen zu können. Es muss ein Regalbedien-
gerät, eine Übergabestation und ein autonomes Transportfahrzeug konstruiert werden.
Zusätzlich muss die vorhandene Fahrbahn angepasst werden.

  Die in Java implementierte Steuerung muss komplett überarbeitet werden, um von den
neuen Möglichkeiten, vor allem der Motoren, Gebrauch machen zu können. Zusätzlich
kann auf neue Funktionen der leJOS NXJ Bibliothek zurückgegriffen werden.
Ein besonderes Augenmerk wird auf die neuen Möglichkeiten der Kommunikation zwi-
schen den NXT Programmierbausteinen gelegt. Diese verfügen nicht mehr über die bis-
her eingesetzte Infrarot Schnittstelle. Dafür steht aber Bluetooth Unterstützung zur
Verfügung. Dementsprechend muss die Kommunikation mit dessen Hilfe, so weit es der
aktuelle Entwicklungsstand von leJOS zulässt, neu implementiert werden.

  Die Steuerung des Gesamtsystems soll über ein dediziertes NXT Modul realisiert wer-
den. Dieses soll die Möglichkeit bieten, grundlegende Tests des Systems durchzuführen
und neue Aufträge zum Ein- und Auslagern von Paletten auszuführen. Dieses Modul
soll auch die grundlegenden Aufgaben eines Lagerverwaltungssystems übernehmen.

  Ein zusätzliches Ziel der Arbeit ist es, mögliche Erweiterungen für das System her-
auszuarbeiten und zu erläutern. Die Erweiterungen sollen darstellen, wie einzelne Kom-
ponenten des Hochregallagers verbessert werden können, aber auch wie das gesamte
System einem reellem Hochregallager, von dem Aufbau und der Funktion her, ähnlicher
umgesetzt werden kann.

   Die Programmierung wird in Java 1.57 von Sun durchgeführt. Des weiteren soll die
leJOS NXJ Bibliothek genutzt werden. Diese steht zum aktuellen Zeitpunkt in der Ver-
sion 0.4 zur Verfügung, welche jedoch nicht alle benötigten Features, besonders die für
die Bluetooth Kommunikation, unterstützt. Daher muss auf eine aktuellere Version aus
dem Subversion8 Repository des Projektes zurückgegriffen werden.

 6
   http://ddi.uni-paderborn.de
 7
   http://java.sun.com
 8
   http://subversion.tigris.org

                                            2
Re-Engineering eines LEGO Hochregallagers und Konzeption der Steuerung mit Hilfe von Mindstorms NXT-Modulen
1.3. AUFBAU DER ARBEIT                                   KAPITEL 1. EINLEITUNG

1.3 Aufbau der Arbeit
Diese Bachelorarbeit versucht den Aufbau des Hochregallagers von Grund auf darzustel-
len. Dazu wird in Kapitel 2 ein Überblick über den Aufbau eines Hochregallagers ge-
schaffen und Definitionen der grundlegenden Begriffe, die im Verlauf der Arbeit häufig
verwendet werden, gegeben. Dabei werden insbesondere die Funktionen der einzelnen
Komponenten eines Hochregallagers veranschaulicht.

  Das darauf folgende Kapitel 3 beschreibt, welche Änderungen sich durch die Umstel-
lung von RCX auf NXT Bausteine ergeben und wie diese sich auf den Aufbau und die
Programmierung des Hochregallagers auswirken.
Dabei wird sowohl auf die Programmierung als auch die mechanische Konstruktion ei-
gegangen. Ein besonderes Augenmerk wird auf die von LEGO, und anderen Herstellern,
verfügbaren Sensoren und deren Anwendungsmöglichkeiten gelegt. Es wird dabei be-
sonders versucht Bezug darauf zu nehmen, wie die Sensoren in den Komponenten des
Hochregallagers zum Tragen kommen.

   In Kapitel 4 wird für die einzelnen Elemente des Hochregallagers die neue Konstruk-
tion beschrieben.
Dazu wird der Aufbau der Komponenten beschrieben und darauf eingegangen, welche
Techniken und welche der, im vorherigen Kapitel beschriebenen, Sensoren zum Einsatz
kommen. Die detaillierten Aufbauanleitungen sind mit Hilfe entsprechender CAD Pro-
gramme umgesetzt und auf der beiliegenden CD gesammelt.

   Das anschließende Kapitel 5 beschreibt die neu entstandene Implementierung der
Steuerung.
Es wird damit begonnen den Aufbau der neu entstandenen Kommunikation darzustellen,
da diese von allen Elementen gemeinsam benutzt wird. Daraufhin wird die Implemen-
tierung des zur Steuerung und als Lagerverwaltungssystem benutzen NXT Bausteins
vorgestellt.
Im Weiteren wird auf die Umsetzung der Steuerung der restlichen Komponenten des
Hochregallagers eingegangen.

  In Kapitel 6 werden mögliche Erweiterungen des Hochregallagers und deren Nutzen
vorgestellt.
Es wird darauf eingegangen wie zusätzliche, von dritten Herstellern vertriebenen, Sen-
soren dazu beitragen können, einzelne Komponenten des Hochregallagers weiter aus-
zubauen. Desweiteren wird dargestellt, wie das Hochregallager mit einem komplexeren
Lagerverwaltungssystem kombiniert werden kann, um so realistischer zu arbeiten.

  Das abschließende Kapitel 7 fasst die Ergebnisse der Arbeit und den erreichten Ent-
wicklungsstand des Hochregallagers zusammen.

                                          3
2 Definitionen
Dieses Kapitel gibt einen Überblick über die grundlegenden Begriffe, die im Verlauf der
Arbeit häufig verwendet werden. In Abbildung 2.1 ist der Aufbau eines Hochregallagers
schematisch gezeigt.
Es ist ein Regalbediengerät dargestellt, welches sich in einer Gasse zwischen zwei Regalen
bewegt und gerade dabei ist eine Lagereinheit mit einer beladenen Palette zu bestücken.

               Abbildung 2.1: Ein Hochregallager mit Regalbediengerät

  Lagersysteme können anhand verschiedener Kriterien aufgeteilt werden. Darunter fal-
len:

   • Art der Ladeeinheiten (Paletten, Gitterboxen, etc.).

   • Zum Einsatz kommende Regalkonstruktion.

                                            4
KAPITEL 2. DEFINITIONEN

   • Zur Lagerbedienung verwendete Hilfsmittel.

  Das Hochregallager ist ein automatisiertes Palettenlager mit wahlfreiem Zugriff auf
das Lagergut. In einem solchen Zeilenlager wird die Bedienung durch Regalförderzeuge
(auch Regalbediengerät genannt) oder automatische Regalstapler durchgeführt. Da-
durch, dass ein Hochregallager wahlfreien Zugriff auf das Lagergut gestattet, wird dieses
hauptsächlich zur Lagerung von großen Artikelzahlen mit geringem bis mittleren Be-
stand pro Artikel eingesetzt [lag83, SJ91].

  Das in dieser Arbeit umgesetzte Lager entspricht einem Hochregallager mit Bedienung
durch automatische Regalbediengeräte.
Solche Lager werden seit den sechziger Jahren gebaut und haben die folgenden charak-
teristischen Merkmale:

   • Die Ladeeinheiten (meist Paletten oder Gitterboxen) sind für die Aufbewahrungs-
     dauer ortsfest, da Hochregallager zu den statischen Lagersystemen zählen.

   • Die Regale sind meist zeilenförmig angeordnet und haben eine Höhe von mindes-
     tens 8m.

   • Auf die Lagereinheiten kann wahlfrei zugegriffen werden.

   • Die Lagerbedienung erfolgt mit Hilfe der automatischen Regalbediengeräte, welche
     sich in der Regel in den Gassen zwischen den Regalzeilen bewegen.

  Die für die Bestückung des Lagers zuständigen Regalbediengeräte können sich entlang
drei Achsen bewegen:

   • x-Achse: Ganglängsrichtung (Fahreinheit)

   • y-Achse: vertikale Richtung (Hubeinheit)

   • z-Achse: Gangquerrichung (Lastaufnahmeeinheit)

  Die Bestückung der Lagereinheiten kann durch unterschiedliche Konstruktionen ge-
schehen, meist wird jedoch auf eine Gabel, ähnlich der eines Gabelstaplers zurückgegriffen.

  Die Regalbediengeräte sind mit ausschlaggebend für die Umschlagleistung eines Hoch-
regallagers. Von Wichtigkeit ist dabei deren mittlere Spielzeit für Einzel- und Doppel-
spiel. Das Einzelspiel beschreibt die Summe aller Zeiten für eine Ein- oder Auslagerung.
Das Doppelspiel beschreibt eine kombinierte Ein- und Auslagerung.

   Bevor die Paletten von dem Regalbediengerät eingelagert werden können, müssen
sich diese in einer Position befinden, auf die das Regalbediengerät zugreifen kann. Dieser
Bereich wird im Allgemeinen Ein- und Auslagerungsbereich genannt, wobei die beiden
Bereiche nicht zwangsläufig miteinander übereinstimmen müssen.

                                             5
KAPITEL 2. DEFINITIONEN

Die Anlieferung zu diesem Bereich kann je nach externen Gegebenheiten unterschiedlich
geschehen. Dieses kann z.B. von Kettenförderern, Rollenbahnen, Hub- und Drehtischen,
Vertikalförderern oder fahrerlosen Transportfahrzeugen übernommen werden.
In dem vorhandenen System wird dieses mit der Hilfe von autonomen Transportfahrzeu-
gen (ATF) bewerkstelligt. Diese sind dafür zuständig die Ladeeinheiten in eine für die
Regalbediengeräte erreichbare Position zu befördern.

  Ein ATF ist ein Fahrzeug mit Ladefläche für ein oder mehrere Ladeeinheiten, welches
auf Befehle des Lagerverwaltungssystems reagiert und selbstständig vorgegebene Positio-
nen anfahren kann. Die Wegfindung wird dabei von dem ATF selbst vorgenommen und
kann mit Hilfe unterschiedlicher Systeme umgesetzt werden. Dieses kann zum Beispiel
mit Hilfe einfacher Schienenführungen oder Induktionsführungen geschehen, bei welchen
ein Leitdraht im Fußboden verbaut ist [hrl01].

  Das ATF selbst bekommt die Ladeeinheiten von einer Übergabestation (UEG) auf-
geladen. Der Aufbau einer solchen Übergabestation kann, entsprechend der benötigten
Funktionen, unterschiedlich ausfallen. Die Hauptaufgabe liegt darin das ATF zu be- und
entladen und die Ladeeinheiten, im Normalfall, auf einem anderen Transportmedium
abzusetzen.

  Gesteuert wird ein solches Hochregallagersystem durch ein Lagerverwaltungssystem
(LVS), und bei komplexeren Systemen zusätzlich einem Materialflussrechner (MFR),
wobei diese Aufgabe auch von dem LVS übernommen werden kann.

  Die Lagerung erfolgt normalerweise nach dem Prinzip der Chaotischen Lagerhaltung.
Dieses bedeutet, dass sich das System selbstständig einen freien Lagerplatz sucht, an wel-
chem die Ladeeinheit eingelagert wird. Das Lagerverwaltungssystem ist dafür zuständig
diese Positionen zu speichern [lvs07].

                                            6
3 RCX und NXT
Die Portierung des Hochregallagers von RCX zu NXT Bausteinen bringt eine Reihe von
neuen Möglichkeiten mit sich, birgt aber auch eine Menge Probleme. In diesem Kapitel
wird einen Vergleich der beiden Mindstorms Serien angestellt und darauf eingegangen,
wie die, für die Automatisierung notwendigen, Sensoren und Aktoren benutzt werden.

  Im Jahr 1987 begann am MIT Media Laboratory1 die von LEGO gesponsorte Entwick-
lung eines programmierbaren Bausteines. Als Hauptentwickler entwarf Fred G. Martin2
zwischen 1987 und 1998 mehrere Versionen des programmierbaren Bausteines. Aus der
endgültigen Version, einem roten Baustein mit 4 Eingängen und 6 Ausgängen, wurde
das Robotics Invention System (RIS) entwickelt. Das Herz davon bildet der in Abbil-
dung 3.1 dargestellte gelbe RCX Baustein, welcher allerdings nur 3 Eingänge (1-3) und
3 Ausgänge (A-C) besitzt.

                              Abbildung 3.1: Der RCX Baustein

 2004 begann LEGO, unter der Leitung von Søren Lund, mit der Entwicklung des
Mindstorms NXT Kit. Dabei wurde darauf geachtet, möglichst geläufige Standards zu

 1
     http://www.media.mit.edu
 2
     http://www.cs.uml.edu/∼fredm/

                                            7
KAPITEL 3. RCX UND NXT

verwenden. So kam es, dass der NXT Intelligent Brick über Bluetooth3 kommunizie-
ren kann und die Sensoranschlüsse den Inter-Integrated Circuit4 Bus benutzen. Als die
Entwicklung begann hing Lund ein Schild, mit dem Satz

         We will do for robotics what iPod did for music.“
        ”
in dem Entwicklungslabor auf. Der entstandene NXT Intelligent Brick (siehe Abbil-
dung 3.2) hat tatsächlich von der Farbe und Menüführung Ähnlichkeiten mit dem iPod
[Bag07].

                          Abbildung 3.2: Der NXT Intelligent Brick

  Die Mindstorms Komponenten werden, dank ihrer Einfachheit, Robustheit und Fle-
xibilität, in vielen Schulen eingesetzt, um den Schülern Technologie näher zu bringen.
Die Produkte werden aber auch, wie bei diesem Hochregallager, von vielen Universitäten
genutzt, um komplexere Projekte umzusetzen.

 3
     http://www.bluetooth.com
 4
     http://www.i2c-bus.org

                                             8
3.1. DIE PROGRAMMIERBAREN BAUSTEINE                       KAPITEL 3. RCX UND NXT

3.1 Die programmierbaren Bausteine
Während die technische Ausstattung der programmierbaren RCX Bausteine noch relativ
spartanisch war, hat sich dieses bei denen der NXT Generation deutlich geändert. Um
die Leistungsmerkmale in Perspektive zu rücken, kann gesagt werden, dass die NXT Bau-
steine mehr als zehn mal so viel Speicher haben und dank der Co-Prozessoren ungefähr
sechs mal so schnell sind wie die RCX Bausteine. Ein genauer Vergleich der technischen
Daten ist in Tabelle 3.1 aufgeführt [Bag02, Bag07, rcx07].

                                      NXT                               RCX
       Prozessor             32-bit ARM7 48 MHz                    8-bit 16 MHz
     Flash Memory                   256 KB                             16 KB
          RAM                        64 KB                             32 KB
     Co-Prozessor                  8-bit AVR                              -
         Display          100 x 64 Pixel LCD Matrix           1-zeiliges Text Display
          USB                      12 MBit/s                              -
        Infrarot            mit optionalem Zubehör                      ja
       Bluetooth       Bluetooth Class II V2.0 compliant                  -
        Sensoren                        4                                 3
        Aktoren                         3                                 3

           Tabelle 3.1: Leistungsmerkmale der programmierbaren Bausteine.

  Der NXT benutzt für die vier Eingänge das standarisierte, von Philips entwickelte
Inter-Integrated Circuit (I2 C) Protokoll. Dieses ermöglicht es, dass, mit Hilfe eines Ex-
panders, mehr als nur vier Sensoren benutzt werden können. Diese müssen dafür lediglich
die Autodetecting Parallel Architecture (ADPA) benutzen.

  Besonders hervorzuheben ist der Klasse 2 Bluetooth Chip (IEEE 802.15.1) der NXT
Bausteine. Dieser hat eine Reichweite von ungefähr 10m und ermöglicht es, dass zwei oder
mehr Geräte mit Bluetooth Unterstützung auch ohne direkten Sichtkontakt, miteinander
kommunizieren können. Dieses ist ein großer Vorteil gegenüber der Infrarotschnittstelle
der RCX Bausteine. Trotzt einer, im Gegensatz zu USB und WiFi, relativ langsamen
Geschwindigkeit ist Bluetooth für die meisten Anwendungsgebiete völlig ausreichend.

   Ein weiteres Highlight ist das, mit 26,0mm ∗ 40,6mm, deutlich größere LCD Display.
Dieses ermöglicht es jetzt auch Menüs und sogar Icons darzustellen, während man vorher
nur an die Darstellung von wenigen Zeichen gebunden war. Dieses hat es ermöglicht ein
intuitives und einfach zu bedienendes Menüsystem für die Steuerung des Systems zu
implementieren (siehe Kapitel 5.2). Da das Display eine Refresh Rate von fast 60 Hz
hat, geht es so weit, dass sogar schon Spiele wie Tetris und Centipede auf den NXT
Baustein portiert wurden [BDD+ 07].

                                            9
3.2. DIE AKTOREN                                         KAPITEL 3. RCX UND NXT

3.2 Die Aktoren
Die Motoren sind die einzigen in den Baukästen enthaltenen Aktoren. Für die neueren
NXT Baukästen wird es jedoch in Zukunft noch andere Motoren geben, welche zur Zeit
allerdings noch nicht verfügbar sind. Da es zwischen den beiden Generationen einige
signifikante Unterschiede gibt, werden diese hier darstellt.

3.2.1 Der RCX Motor
Der RCX Motor (siehe Abbildung 3.3) ist ein einfacher Motor, ohne besondere zusätzliche
Funktionen. Zur Steuerung des Motors kann nur die Drehrichtung angegeben werden.
Die Geschwindigkeit muss über eine entsprechende Umsetzung mit Hilfe von Zahnrädern
geregelt werden. Die wirkliche Drehgeschwindigkeit hängt jedoch sehr stark von Typ und
Ladezustand der benutzten Stromversorgung ab.

                            Abbildung 3.3: Der RCX Motor

   Um genauere Informationen darüber zu erlangen, wie viele Umdrehungen der Motor
durchgeführt hat, muss der, wie in Kapitel 3.3.5 beschriebene, Rotations Sensor zur Hil-
fe genommen werden. Der große Nachteil dabei ist jedoch, dass bei der Benutzung von
drei Motoren, in vielen Fällen, auch drei Rotations Sensoren verwendet werden müssen.
Dadurch werden somit auch gleich alle Sensoreingänge verwendet und es bleibt keine
Möglichkeit noch weitere Sensoren an den selben RCX Baustein anzuschließen, wodurch
die Funktionalität der entstandenen Modelle oft deutlich eingeschränkt wird.

                                           10
3.2. DIE AKTOREN                                          KAPITEL 3. RCX UND NXT

3.2.2 Der NXT Motor
Der neue NXT Motor (siehe Abbildung 3.4) hebt sich durch seine neuen Funktionen
deutlich von der alten Version ab. Die neue Form mag zwar etwas ungewöhnlich ausse-
hen, aber der Motor bringt, trotz einer deutlichen Vergrößerung, einige entscheidende
Vorteile mit sich.

                             Abbildung 3.4: Der NXT Motor

   Der Motor hat einen Tachometer, welcher mit Hilfe eines optischen Encoders umge-
setzt wurde, und ein Getriebe für mehrere Geschwindigkeiten direkt eingebaut.
Dieses ermöglicht es zum Einen, den Motor viele Umdrehungen in unterschiedliche Rich-
tungen durchführen zu lassen, und trotzdem zu der exakten Ausgangsposition zurückzukehren.
Die jeweils gewünschte Position kann auf das Grad genau angesteuert werden.
Zum Anderen ist es möglich eine bestimmte Drehgeschwindigkeit in Grad pro Sekunde
vorzugeben, wodurch oft auf komplizierte Kostruktionen mit vielen Zahnrädern ver-
zichtet werden kann. Wird beispielsweise eine Geschwindigkeit von 720 festgelegt, so
entspricht dieses 2 Umdrehungen pro Sekunde. Die maximale Geschwindigkeit liegt bei
ungefähr 900 (2, 5 Umdrehungen pro Sekunde), ist aber stark abhängig von dem Lade-
zustand der benutzten Batterien [Bag07].

   Auf Basis der neuen Funktionen des Motors lassen sich beispielsweise Fahrzeuge
mit Odometrie zur Positionsbestimmung umsetzten. Das autonome Transportfahrzeug
macht von diesem Verfahren intensiven Gebrauch. In Kapitel 5.5.3 ist dieses Verfahren
erläutert.
Dadurch, dass es mit Hilfe der neuen Features möglich ist die wirkliche Drehgeschwindig-
keit des Motors zu ermitteln, kann dieses in vielen Fällen als zusätzlicher Sensor benutzt
werden. Weicht die wirkliche Drehgeschwindigkeit von der Gewünschten nach unten hin
ab, kann davon ausgegangen werden, dass der Roboter gegen ein Hindernis gefahren ist.

                                            11
3.3. DIE SENSOREN                                        KAPITEL 3. RCX UND NXT

3.3 Die Sensoren
Die Sensoren dienen dazu Informationen aus der Umwelt für die Roboter erfassbar zu
machen.
Die Sensoren haben innerhalb der Baureihen alle die selben Ausmaße, lediglich der Ul-
trasonic Senor (siehe Abschnitt 3.3.4) weicht davon ab. Dadurch, dass auch die Befesti-
gungsmöglichkeiten aller Sensoren übereinstimmen, lassen sich die Sensoren in den Mo-
dellen auch leicht gegeneinander austauschen. So ist es z.B. manchmal hilfreich den Licht
Sensor (siehe Abschnitt 3.3.2) gegen einen Farb Sensor von HiTechnic (siehe Abschnitt
3.3.6) auszutauschen, um Erweiterungen wie in Kapitel 6.3 beschrieben, zu ermöglichen.

3.3.1 Der Drucktaster
Die Drucktaster (oder Touch Sensoren) sind in den Abbildungen 3.5 (RCX Drucktaster)
und 3.6 (NXT Drucktaster) dargestellt. Sie sind die einfachsten, der in den Baukästen
enthaltenen, Sensoren. Sie bieten lediglich eine Abfragemöglichkeit, ob der Taster akti-
viert ist, oder nicht.

                         Abbildung 3.5: Der RCX Drucktaster

  Außer einer Anpassung der Bauform auf das neue Format und der damit verbundenen
Zunahme der Größe, sind diese beiden Sensoren weitgehend identisch. Der NXT Sensor
bietet nur die zusätzliche Möglichkeit an dem orangenen Taster eine Achse zu befestigen,
um andere Bauteile direkt mit dem Taster des Sensors zu verbinden.

  Die Drucktaster sind eine einfache Möglichkeit um zu erkennen, wann eine bestimmte
Position eines beweglichen Bauteils erreicht wurde. Dieses wurde in dem Aufbau des
neuen Hochregallagers zum Beispiel dazu benutzt, mit dem Regalbediengerät und der
Übergabestation sicher eine Ausgangsposition für alle Achsen anfahren zu können.

                                           12
3.3. DIE SENSOREN                                        KAPITEL 3. RCX UND NXT

                         Abbildung 3.6: Der NXT Drucktaster

3.3.2 Der Licht Sensor
Die Licht Sensoren (siehe Abbildungen 3.7 und 3.8) messen die Intensität des Lichts, wel-
ches durch eine kleine Öffnung an der Vorderseite eintritt. Die Sensoren sind zusätzlich
mit einer roten LED ausgestattet, welche dazu benutzt werden kann, den Bereich vor
dem Sensor auszuleuchten. Es ist mit den Sensoren auch möglich Licht, in für Menschen
unsichtbaren Bereichen, wie zum Beispiel Infrarot, wahrzunehmen.
Auch diese Sensoren wurden, außer der Anpassung der Bauform, keinen weiteren funk-
tionalen Änderungen unterzogen.

                         Abbildung 3.7: Der RCX Licht Sensor

  Die Sensoren können für viele verschiedene Bereiche eingesetzt werden. Besonders
geläufig sind dabei die Folgenden:

   • Wenn man den Sensor auf den Untergrund richtet, kann er dazu benutzt werden
     dunklen Linien zu folgen. Dieses wurde bei dem Aufbau des ATF (siehe Kapitel
     4.4) umgesetzt.

   • Der Sensor kann dazu benutzt werden Abgründe zu erkennen. Lässt man einen
     Roboter auf einer Tischplatte umherfahren, kann ein auf den Boden gerichteter

                                           13
3.3. DIE SENSOREN                                         KAPITEL 3. RCX UND NXT

     Licht Sensor diesen vor dem Abstürzen bewahren. Wenn der Roboter dem Rand
     des Tisches zu nahe kommt und der Licht Sensor schon über die Kante schaut, so
     ändert sich die, von dem Sensor wahrgenommene Helligkeit merklich.

   • Hellen Lichtquellen, wie etwa der Bewegung einer Taschenlampe, kann gefolgt wer-
     den.

   • Es kann die hellste bzw. dunkelste Stelle im Raum gefunden werden. Hierdurch
     lassen sich einfache Verhaltensweisen von Insekten nachbilden.

   • Unterschiedliche Objekte können anhand ihrer Farbintensität (nicht Farbe) erkannt
     werden. Dieses ist möglich, da dunkle Objekte weniger Licht reflektieren als hellere.

                         Abbildung 3.8: Der NXT Licht Sensor

  Je nach Anwendungsbereich kann der Licht Sensor in zwei verschiedenen Modi betrie-
ben werden:
   • Aktiver Modus - Die LED ist eingeschaltet. Dieser Modus wird benutzt, um Linien
     zu folgen und Objekte zu unterscheiden.

   • Passiver Modus - Die LED ist ausgeschaltet. Dieser Modus kann benutzt werden,
     um Umgebungslicht zu erkennen, aber auch wenn eine externe Lichtquelle zum
     Einsatz kommt.
  Die Licht Sensoren können einen Wert zwischen 0 und 1023 zurückgeben, die Werte
schwanken aber normalerweise zwischen 145 (Dunkelheit) und 890 (Sonnenlicht).
Zum einfacheren Umgang gibt es noch eine Methode, die Werte in einem normalisierten
Bereich von 0 bis 100 zurückliefert. Dafür ist es jedoch sinnvoll, den Sensor zuerst für
den aktuellen Einsatz und die Umgebungsverhältnisse zu kalibrieren. Dieses geschieht
durch einfache Aufrufe je einer Methode für den minimalen und maximalen Wert.
Diese Technik wurde bei dem autonomen Transportfahrzeug umgesetzt, so dass dieses,
unabhängig vom Umgebungslicht, sicher den Führungslinien folgen kann.

                                            14
3.3. DIE SENSOREN                                       KAPITEL 3. RCX UND NXT

3.3.3 Der Sound Sensor
Der Sound Sensor (siehe Abbildung 3.9) ist einer der neuen Sensoren in den NXT Mind-
storms Baukästen.
Obwohl dieser Sensor aussieht wie ein Mikrofon, wird nur die Lautstärke in Dezibel (dB)
gemessen, deshalb ist es nicht möglich damit Tonaufnahmen zu machen. Der Sensor kann
in zwei verschiedenen Modi betrieben werden. Im Standardmodus wird die Lautstärke
in dB zurückgegeben. Im Zweiten wird sie als A-Bewerteter Schalldruckpegel (dBA)
zurückgegeben, welcher den Frequenzgang des menschlichen Gehörs berücksichtigt.

                        Abbildung 3.9: Der NXT Sound Sensor

  Der Sensor kann beispielsweise dazu benutzt werden Geräuschquellen zu finden oder
auf Klatschen zu reagieren.

3.3.4 Der Ultrasonic Sensor
Der Ultrasonic Sensor (siehe Abbildung 3.10) ist ein weiterer neuer Sensor in der NXT
Mindstorm Serie, der viele interessante Anwendungen ermöglicht.
Dieser Sensor wird dazu benutzt Entfernungen zu messen. Dazu wird ein, für Menschen
nicht wahrnehmbarer Ton ausgesandt und dann gemessen, wie lange es dauert bis dessen
Reflexion wieder empfangen wird. Da die Ausbreitungsgeschwindigkeit bekannt ist, kann
daraus die zurückgelegte Distanz berechnet werden.

  Der Sensor ist dazu in der Lage Entfernungen bis zu 255 Zentimeter zu messen, die
Werte sind jedoch in dieser Entfernung relativ ungenau. Die besten Ergebnisse werden
zwischen 6cm und 180cm erlangt.
Die Entfernung wird in einem kegelförmigen Bereich gemessen. Der Kegel öffnet sich
in einem Winkel von ungefähr 30◦ , somit hat er bei einer Entfernung von 180cm einen
Durchmesser von ca. 90cm.

                                          15
3.3. DIE SENSOREN                                      KAPITEL 3. RCX UND NXT

                     Abbildung 3.10: Der NXT Abstands Sensor

  Eingesetzt wird dieser Sensor an der Front des Transportfahrzeuges, um den Bereich
vor diesem auf Hindernisse zu überprüfen. Wird ein Hindernis in einem zu geringen Ab-
stand zu einem ATF wahrgenommen, hat dieses so die Möglichkeit vor diesem zu stoppen.

3.3.5 Der Rotations Sensor
Der Rotations Sensor (siehe Abbildung 3.11) ist einer der Sensoren, die in den NXT
Baukästen nicht mehr vorhanden sind und auch nicht mehr benötigt werden, da die
Funktionalität direkt in den neuen NXT Motoren integriert ist (siehe 3.2.2).

                     Abbildung 3.11: Der RCX Rotations Sensor

  Eingesetzt wurde dieser Sensor, um Umdrehungen, der an diesen angeschlossenen
Achsen, zu zählen. Die Auslösung beträgt 16 Schritte pro Umdrehung. Somit ist die
Genauigkeit dieses Sensors deutlich geringer, als die des direkt in den NXT Motor
eingebauten[Hur06].

                                          16
3.3. DIE SENSOREN                                       KAPITEL 3. RCX UND NXT

3.3.6 Produkte anderer Hersteller
HiTechnic
HiTechnic5 war die erste Firma, die mit LEGO einen Vertrag zur Vermarktung weiterer
Sensoren hatte. LEGO beliefert HiTechnic mit den Plastik Gehäusen, damit die Senso-
ren aussehen wie die eigenen, und verkauft diese auch über die LEGO Webseite. Durch
das selbe Aussehen sind diese die beliebtesten Sensoren von externen Herstellern. Um
Verwechslungen mit den Original Sensoren zu vermeiden, haben diese ein leicht anderes
Farbschema und sind an der Unterseite beschriftet.

                       Abbildung 3.12: Der HiTechnic Kompass Sensor

     Zur Zeit umfasst die Palette der angebotenen Produkte:
      • Kompass Sensor (siehe Abbildung 3.12)
      • Color Sensor
      • Tilt Sensor
      • RCX Adapter Kabel
      • IR Link mit RCX
      • Infrarot Sucher
      • Port Expander
      • Motor Multiplexer
      • NXT Prototype Board

Mindsensors
Mindsensors6 bietet eine breite Palette an Sensoren an. Diese sind allerdings nicht in
den üblichen Plastikformen, werden dafür aber mit extra Kabeln geliefert.
 5
     http://www.hitechnic.com
 6
     http://www.mindsensors.com

                                           17
3.3. DIE SENSOREN                                      KAPITEL 3. RCX UND NXT

Mindsensors liefert zur Zeit die folgenden Produkte:

      • RCX zu NXT Kommunikations Adapter
      • Neigungs Sensor
      • RCX Motor Multiplexer
      • Kompass Sensor
      • Sony PS2 Controller Interface
      • Pneumatics Pressure Sensor
      • Infrarot Abstands Sensor
      • RCX zu NXT Anschluss Adapter
      • NXT Motor Multiplexer

Vernier
Vernier7 stellt Sensoren nicht speziell für Mindstorms her, bietet aber einen Adapter,
um die Sensoren mit den NXT Bausteinen zu verbinden. Vernier vertreibt einige, für die
Benutzung mit LEGO Mindstorms Produkten einzigartige, dafür aber oft recht teuere
Sensoren.
Es werden weit über 40 verschiedene Sensoren angeboten, darunter:

      • pH Probe
      • Low-g Accelerometer
      • Conductivity Probe
      • Dissolved Oxygen Sensor
      • UV Sensor
      • Temperature Probe
      • Magnetic Field Sensor

 7
     http://www.vernier.com/nxt/

                                          18
3.4. PROGRAMMIERUNG                                      KAPITEL 3. RCX UND NXT

3.4 Programmierung
Zur Programmierung der LEGO Mindstorms Module gibt es eine Reihe verschiedener
Möglichkeiten. Die sicherlich Einfachste ist die Benutzung der mitgelieferten grafischen
Entwicklungsumgebung NXT-G (siehe 3.4.1). Für fortgeschrittene Projekte ist es jedoch
oftmals sinnvoll auf eine der vielen anderen Möglichkeiten, wie z.B leJOS (siehe 3.4.2)
oder RobotC8 zurückzugreifen.

3.4.1 NXT-G
Die texanische Firma National Instruments hat in Zusammenarbeit mit LEGO eine Ent-
wicklungsumgebung für die LEGO Mindstorms NXT geschaffen, die auf der grafischen
Entwicklungsplatform LabVIEW9 (Laboratory Virtual Instrumentation Engineering
Workbench) basiert.

                     Abbildung 3.13: Die NXT-G Entwicklungsumgebung
 8
     http://www.robotc.net
 9
     http://www.ni.com/labview/

                                           19
3.4. PROGRAMMIERUNG                                     KAPITEL 3. RCX UND NXT

  Die NXT-G genannte Software wird in zwei verschiedenen Versionen ausgeliefert. Es
gibt die normale Verkaufsversion und die in Abbildung 3.13 dargestellte Educational
Version, welche speziell für den Gebrauch in Schulen angepasst ist.

  Die von LabVIEW benutzte grafische Programmiersprache wird ‘G’ genannt und
ermöglicht es, Programme in Form von Datenflussgraphen darzustellen.
Die Programmierung geschieht über das Ziehen von vorgefertigten Programmblöcken in
den Programmierbereich. Jeder dieser Blöcke ist prinzipiell eine Funktion, für die der
Benutzer mehrere Parameter mit Hilfe von Schiebereglern und Eingabefeldern festle-
gen kann. Außerdem können so selbst komplexere Blöcke mit Hilfe der Software erstellt
werden, wodurch es möglich ist viel Programmcode in einem kleinen grafischen Fenster
darzustellen.

  Da die Software durchgängig gewartet wird, können neue Blöcke aus dem Internet
heruntergeladen und importiert werden, wenn neue Sensoren und Aktoren für die LE-
GO Mindstorms zur Verfügung stehen.

   Die grafische Programmierung ist relativ einfach zu verstehen und somit gut geeignet
für Personen mit wenig Programmiererfahrung. Wenn man jedoch Programmiersprachen
wie Java gewöhnt ist, sind einige der Paradigmen der Programmierumgebung schwer zu
verstehen. Außerdem ist es problematisch mit Hilfe der grafischen Oberfläche Program-
me zu erstellen, die eine gewisse Größe überschreiten.

3.4.2 leJOS
leJOS ermöglicht es, Programme für die RCX und NXT Bausteine in Java zu entwi-
ckeln. Dafür stehen unterschiedliche verschiedene Versionen der zu leJOS gehörenden
Java Virtual Machine (JVM) und Bibliothek zur Verfügung.
Zum Einen gibt es das, mittlerweile sehr ausgereifte, leJOS RXJ, welches aktuell in der
Version 3.0 zur Verfügung steht und für die RCX Module bestimmt ist. Zum Anderen
gibt es leJOS NXJ für die NXT Module, welches relativ neu ist und noch nicht alle
Features der programmierbaren NXT Bausteine unterstützt. Dieses steht im Moment
erst in der frühen Beta Version 0.4 zur Verfügung.

Die Java Virtual Machine
Die leJOS Java Virtual Machine basiert auf der in C geschriebenen TinyVM10 , bei der
darauf geachtet wurde, die Codebasis möglichst plattformunabhängig zu halten. Dieses
ermöglicht es der VM auf den RCX und NXT Bausteinen, so wie dem Nintendo Game-
Boy Advance11 zu laufen.
10
     http://tinyvm.sourceforge.net
11
     http://www.gameboy.com

                                          20
3.4. PROGRAMMIERUNG                                       KAPITEL 3. RCX UND NXT

  Die leJOS NXJ Plattform ist essenziell eine Erweiterung derer für RCX. leJOS NXJ
wird als eigenständiges Projekt weiterentwickelt, um nicht auf Kompatibilität für die
RCX Bausteine achten zu müssen.

  Auf den RCX Bausteinen verbraucht die VM alleine ungefähr 16KB des Speichers, was
nur noch 16KB für eigenen Programmcode übrig lässt. Dank des großzügigeren Speicher-
ausbaus bleiben auf den NXT Bausteinen noch ungefähr 229KB verfügbar, obwohl die
VM dort ganze 27KB Speicherplatz benötigt.

  Die leJOS VM unterstützt viele Features einer gewöhnlichen Java Virtual Machine,
wie z.B. der von Sun12 . Darin enthalten sind:

      • Preemptive Threads - Die leJOS VM ermöglicht die Benutzung von Threads mit
        Unterstützung für Synchronisierung und Interrupts. Der dazugehörige Scheduler
        arbeitet auf eine denkbar einfache Weise und lässt jeden Thread 128 Instruktionen
        ausführen, bevor zum nächsten Thread gewechselt wird. Theoretisch können bis
        zu 255 Threads gleichzeitig benutzt werden, allerdings ist dafür der verfügbare
        Speicher nicht ausreichend groß genug.

      • Arrays - Es werden sogar multdimensionale Arrays. Macht man jedoch einen zu
        umfangreichen Gebrauch von multidimensionallen Arrays, dann verbrauchen diese
        zu viel Speicher und die VM stürzt ab.

      • Rekursion - Wie die meisten Programmiersprachen unterstützt auch Java Rekur-
        sionen. Die leJOS VM kann zur Zeit allerdings nur Rekursionen bis zu einer Tiefe
        von 10 ausführen.

      • Exceptions - leJOS unterstützt, wie jede andere JVM auch, den Gebrauch von
        Exceptions.

      • Event Model - Das Event Model von Java wird auch von leJOS unterstützt. Die-
        ses ermöglicht es auf, von Sensoren oder den Knöpfen an den NXT Bausteinen,
        ausgelöste Events zu reagieren.

      • float, long, String - leJOS unterstützt viele Java Typen. Um Speicher zu sparen
        wird jedoch darauf verzichtet, 64bit Typen wie double und long vollständig zu
        unterstützten. Die beiden Typen können benutzt werden, die VM verwaltet diese
        aber intern als 32bit floats.

  Allerdings hat die leJOS VM einige wichtige Einschränkungen, die umfangreichere
Probleme noch deutlich verkomplizieren oder den Code einfach nur schwerer lesbar ma-
chen:

12
     http://java.sun.com

                                             21
3.4. PROGRAMMIERUNG                                    KAPITEL 3. RCX UND NXT

   • Garbage Collector - Eine JVM entfernt normalerweise Objekte aus dem Speicher,
     die nicht mehr benötigt werden. Dieses geschieht durch einen automatischen Gar-
     bage Collector.
     In der aktuellen VM von leJOS ist dieses noch nicht der Fall und führt, besonders
     bei längerer Programmausführung, zu Abstürzen. Dieser Punkt hat eine hohe Prio-
     rität auf der Liste der leJOS Entwickler und es kann davon ausgegangen werden,
     dass diese Funktion in einer der nächsten Versionen enthalten sein wird.
   • switch-Statements - die leJOS VM unterstützt keine switch Statements. Diese Un-
     zulänglichkeit kann durch den Gebrauch von if und else if umgangen werden,
     führt aber zu einer deutlich schlechteren Lesbarkeit des Programmcodes.
   • Klassen Größe - Java Klassen können zur Zeit eine maximale Größe von 64Kb
     haben. Diese Grenze ist sehr schnell erreicht und nicht immer elegant zu umgehen
     und hat vor allem bei der Entwicklung eines Menüsystems für die NXT Bausteine
     Probleme verursacht.

   Trifft man auf eine der angedeuteten Einschränkungen, wird man davon meist schon,
bei dem vor der Übertragung des Programmcodes auf den NXT Baustein notwendigen,
linking Vorgang mit der folgenden Meldung darauf hingewiesen:

     leJOS NXJ> Linking...
     The following features/conditions are currently unsupported:
     - Switch statements.
     - Integer increment constant too large. (If > 255, declare it).
     - Arithmetic or logical operations on variables of type long.
     - Remainder operations on floats or doubles.
     - Too many constants or locals ( > 255).
     - Method code too long ( > 64 Kb!).

Die Java Bibliothek
Die, in den beiden Versionen des leJOS Paketes enthaltenen Java Bibliotheken sind, zu-
mindest größtenteils, gut dokumentiert und bieten einen großen Umfang an Funktionen
an.

  Die Robotik APIs der RCX und NXJ Versionen sind jedoch vom Aufbau her unter-
schiedlich und nicht miteinander kompatibel. Dieses kommt zum Einen daher, dass die
neuen Sensoren und Aktoren teilweise einen andern Funktionsumfang haben, aber auch
daher, dass die Kommunikationsmöglichkeiten grundlegend verschieden sind.
Da es möglich ist, mit der Hilfe von Adaptern, die RCX Motoren und Sensoren an den
NXT Bausteinen zu verwenden, stehen für diese Elemente spezielle RCX Klassen zur
Verfügung.

                                          22
3.4. PROGRAMMIERUNG                                    KAPITEL 3. RCX UND NXT

  An sich ist die Robotik API von leJOS NXJ relativ komplett und ermöglicht es, die
meisten Funktionen der Sensoren in vollem Umfang zu nutzen. Viele Probleme gibt es
jedoch noch in dem Bereich der Kommunikation, insbesondere mit Bluetooth. Einige
dieser Probleme stammen daher, dass der in den NXT verbaute BC4 Chip zwei Modi
hat, zwischen denen umgeschaltet werden muss:

   • Command Mode - In diesem Modus können neue Verbindungen hergestellt werden
     und nach anderen Bluetooth Geräten gesucht werden.

   • Data Mode - Dieser Modus ermöglicht das Senden und Empfangen von Daten an
     bereits verbundene Bluetooth Geräte.

   Die Umschaltung zwischen den beiden Modi funktioniert in der Version 0.4 noch nicht
sicher und führt zu vielen Abstürzen des NXT Bausteines. Daher ist es mit dieser Ver-
sion auch nur möglich eine Bluetooth Verbindung zu einem anderen Gerät aufzubauen.
In aktuellen Versionen aus dem Subversion Repository ist es möglich, Verbindungen zu
mehreren Geräten herzustellen. Da aber die Umschaltung zwischen den beiden Modi
auch dort noch nicht richtig funktioniert, ist es danach nicht immer möglich zu allen
verbundenen Geräten Daten zu senden. In der kommenden Version 0.5 von leJOS NXJ
soll dieses Problem aber voraussichtlich behoben sein.

   Die Packages lejos.navigation und lejos.subsumption bieten einige Klassen an, die
häufig benutzte Konzepte der Robotik zusammenfassen. So ist es möglich viele Model-
le ohne großen Programmieraufwand zu sinnvollen Aktionen zu überreden. Leider sind
auch hier noch einige Bugs enthalten, welche besonders bei dem ATF aufgefallen sind
und umgangen werden mussten.

  Zusätzlich sind einige Komponenten des standardisierten javax.microedition Packages
in leJOS enthalten. In diesem Packet ist vor allem die Ansteuerung des LCD-Displays
und der vier Buttons der NXT Bausteine umgesetzt.

                                          23
4 Konstruktion
Die Portierung des Gesamtsystems besteht im wesentlichen aus zwei Blöcken.
Im Ersten muss die Konstruktion der Komponenten des Hochregallagers auf die neue
Bauweise übertragen werden. Der Zweite besteht daraus, die Steuerung entsprechend
der neuen Gegebenheiten anzupassen.

   Begonnen wird damit die bestehenden Komponenten des alten Hochregallagers zu
erläutern und darauf einzugehen, welche Änderungen für den Neuaufbau umgesetzt wer-
den. Daraufhin wird die Konstruktion und der Einsatz der dabei benutzten Motoren und
Sensoren im Einzelnen geschildert.

  Durch die nötige Änderung der Konstruktionsweise der LEGO Modelle auf die neue
studd-less Bauweise der Mindstorms NXT, müssen alle Komponenten des Systems von
Grund auf neu aufgebaut werden. Dieses ist notwendig, damit die neuen NXT Motoren,
Sensoren und programmierbaren Bausteine benutzt werden können.
Es wird dabei versucht die in Kapitel 3 beschrieben Sensoren bestmöglich einzusetzen,
um von der neuen Funktionalität Gebrauch machen zu können und Probleme zu vermei-
den, die der bestehende Aufbau in sich birgt.

  Der Aufbau in der studd-less Bauweise ermöglicht es einige Komponenten der Modelle
sehr kompakt, aber trotzdem funktional und stabil zu konstruieren [Mar95]. Ein beson-
ders gutes Beispiel dafür ist die in Abschnitt 4.2.2 beschriebene Hubeinheit.

  Das bestehende Hochregallagersystem (siehe Abbildung 4.1) ist aus mehreren Trans-
portfahrzeugen, Regalbediengeräten und Übergabestationen zusammengesetzt.

  Pro ATF und Übergabestation wurde je ein programmierbarer RCX Baustein und je
Hochregal (Regalbediengerät und die dazugehörige Übergabestation) zwei programmier-
bare RCX Bausteine verwendet.
Dieses stammt daher, dass das Regalbediengerät für jede der drei Bewegungsrichtungen
einen Motor benötigt und die Übergabestation zusätzlich einen. Somit wurden zwei RCX
Programmierbausteine benötigt, da jeder dieser Bausteine nur drei Motoren ansteuern
kann.
Da die NXT Bausteine auch nur Anschlussmöglichkeiten für drei Motoren haben, wur-
de versucht die Paletten direkt mit Hilfe des Regalbediengerätes von der Ladefläche zu
entnehmen. Auf diese Weise kann auf einen NXT Baustein und den damit verbundenen
zusätzlichen Kommunikationsaufwand verzichtet werden.

                                          24
KAPITEL 4. KONSTRUKTION

                         Abbildung 4.1: Das RCX Hochregallager

Durch diese Schritte war es möglich bei den Transportfahrzeugen auch auf einen der
Motoren zu verzichten, da die Ladefläche so ohne bewegliche Teile umgesetzt werden
konnte und keinen Motor benötigt, der das Förderband der Ladefläche antreibt. Zudem
wird, durch den Verzicht auf einen weiteren Motor, die Bauweise des ATF relativ kom-
pakt gehalten.
Die Übergabestation wurde komplett überarbeitet und dem Regalbediengerät vom Auf-
bau her angeglichen.

  Außerdem wurden alle Komponenten noch mit zusätzlichen Sensoren, vor allem Druck-
tastern, ausgestattet. Die genauen Hintergründe dafür werden in den jeweiligen Abschnit-
ten der Komponenten verdeutlicht.

  Auf der beigelegten CD sind alle Konstruktionsanleitungen und Stücklisten, in de-
taillierter Form, als pdf und ldraw -Datei abgelegt. Kapitel B.1 beinhaltet eine Liste der
benutzen Anschlussbelegungen der einzelnen Modelle.
Die Konstruktionsanleitungen wurden mit Hilfe der LDraw1 Biblothek und den darauf
basierenden CAD Programmen Bricksmith2 und MLCad3 erstellt.

 1
   http://www.ldraw.org
 2
   http://bricksmith.sourceforge.net
 3
   http://www.lm-software.com/mlcad/

                                           25
4.1. DAS HOCHREGAL                                    KAPITEL 4. KONSTRUKTION

4.1 Das Hochregal
Das Hochregal (siehe Abbildung 4.2) ist der eigentliche Lagerort für die Paletten und
stellt eine einfache Konstruktion ohne bewegliche Teile dar.
In der aktuellen Ausbaustufe stehen insgesamt 16 Lagerplätze für Paletten in 4 Zei-
len und 4 Spalten zur Verfügung. Dieses ist die einzige Komponente, deren Aufbau
größtenteils von dem bestehenden Aufbau übernommen werden konnte. Das Regal-
gerüst entspricht dem des alten Hochregallagers (vgl. Abbildung 4.1). Es wurden nur
die Führungsschienen für das neue Regalbediengerät angepasst.
Die Paletten wurden unverändert von dem bestehenden Modell übernommen.

                             Abbildung 4.2: Das Hochregal

  Das Regal ist durch den simplen, aber trotzdem robusten, Aufbau sehr einfach in
der Größe veränderbar. Wichtig ist, dass alle Lagerplätze eine einheitliche Größe und
Abstand zu einander haben. Bei einer Änderung der Anzahl der Ladeeinheiten muss der
Steuerung somit lediglich mitgeteilt werden, wie viele Zeilen und Spalten zur Lagerung
von Paletten zur Verfügung stehen.

                                           26
4.2. DAS REGALBEDIENGERÄT                             KAPITEL 4. KONSTRUKTION

4.2 Das Regalbediengerät
Das alte Regalbediengerät benutzt drei Motoren, einen für jede der drei nötigen Bewe-
gungsrichtungen. Damit der Steuerung die aktuelle Position bekannt ist, sind zusätzlich
drei Rotationssensoren verbaut und somit alle Anschlüsse des RCX Bausteins belegt.
Das RCX RBG arbeitet mit einer Übergabestation zusammen, welche als Ein- und Aus-
lagerungsbereich dient. Die UEG benötigt zusätzlich noch einen Motor und einen RCX
Baustein.

  Wie schon früher erwähnt, soll das neue RBG in der Lage sein die Paletten direkt
von der Ladefläche des ATF, ohne den Umweg über eine UEG, entnehmen zu können.
Dieses ist möglich, da das neue RBG deutlich stabiler konstruiert ist und so eine längere
Lastaufnahmeeinheit benutzen kann.
Als weitere Verbesserung wurde das Regalbediengerät für alle drei Bewegungsrichtungen
mit einem Drucktaster (siehe Kapitel 3.3.1) ausgestattet, um zu ermöglichen in eine, zur
Initialisierung dienende, Grundposition zu fahren. Von dieser Position aus sind die Wege
zu allen anderen anfahrbaren Positionen bekannt, bzw. leicht errechenbar.
Der Einsatz der Taster ist möglich geworden, da die NXT Motoren über den einge-
bauten Tacho verfügen und somit nicht mehr, auf den zusätzlichen Rotations Sensor
zurückgreifen müssen. Hierdurch sind die benötigten Sensoranschlüsse an den NXT Bau-
steinen frei geworden.

  Das Regalbediengerät (siehe Abbildung B.2) besitzt die komplizierteste mechanische
Konstruktion aller Komponenten. Es besteht im Wesentlichen aus drei zusammenarbei-
tenden Teilen, welche jeweils für eine der drei Bewegungsrichtungen zuständig sind.

4.2.1 Die Fahreinheit
Die Fahreinheit (siehe Abbildung 4.3) ist dafür zuständig das Regalbediengerät in die
gewünschte Position in der x -Richtung zu bewegen. Dadurch lässt sich eine Position für
das ATF und jede Spalte des Regals anfahren. Auf der Bodenplatte des Hochregals (sie-
he Abbildung 4.2) sind Führungsschienen montiert, welche für einen sicheren Halt der
Fahreinheit garantieren.

  Zur Fortbewegung benutzt die Fahreinheit vier 40-zähnige Zahnräder, welche alle über
einen gemeinsamen Motor angetrieben werden. Die Zahnräder sind an einer Bodenplatte
befestigt, auf welcher der Mast aufgesetzt ist. Der Mast besteht aus vier Säulen, wobei,
an den beiden zum Regal zeigenden Säulen, auf der Innenseite verzahne Bausteine an-
gebracht sind.

  An der Fahreinheit ist ein Drucktaster befestigt, welcher erkennt, wann die Ausgangs-
position erreicht ist. Die Ausgangsposition ist zugleich die Position, von der aus das
Transportfahrzeug be- und entladen wird.

                                            27
4.2. DAS REGALBEDIENGERÄT                             KAPITEL 4. KONSTRUKTION

                            Abbildung 4.3: Die Fahreinheit

4.2.2 Die Hubeinheit
Die Hubeinheit (siehe Abbildung 4.4) ist dafür zuständig die Lastaufnahmeeinheit auf
die gewünschte Höhe (y-Richtung) zu bewegen.
Üblicherweise wird die Bewegung in y-Richtung durch einen auf Bodenebene montierten
Motor vollzogen, der ein Stahlseil auf einer Winde auf oder ab wickelt. An dem Stahlseil
ist wiederum die Hubeinheit befestigt.
Etwas ähnliches wurde versucht in dem alten Model umzusetzen. Die Positionierung war
dadurch jedoch auf Grund der Bauweise relativ ungenau und die Lastaufnahmeeinheit
sehr wackelig in der Positionierung. Um dieses Problem zu umgehen, wurden Bausteine
mit Zähnen vertikal an den Masten des Regalbediengerätes angebracht. Entlang dieser
können sich dann Zahnräder auf beiden Seiten auf und ab arbeiten. Durch diese Methode
ließ sich ein kompakter, aber trotzdem mechanisch stabiler Aufbau realisieren. Entlang
des Mastes wird die Hubeinheit sicher geführt, da der Mast vollständig umschlossen wird.

 Zusätzlich verfügt die Hubeinheit über zwei Drucktaster, so wie eine Führung und den
Antrieb für die Lastaufnahmeeinheit. Der an der Unterseite der Hubeinheit befestigte

                                           28
4.2. DAS REGALBEDIENGERÄT                            KAPITEL 4. KONSTRUKTION

                            Abbildung 4.4: Die Hubeinheit

Drucktaster ist dafür zuständig, zu erkennen, wann die Lastaufnahmeeinheit vollständig
eingefahren ist. Der an dem, für den Hub zuständigen, Motor befestigte Drucktaster
erkennt, wann die Hubeinheit ganz nach unten gefahren ist.

4.2.3 Die Lastaufnahmeeinheit
Die Lastaufnahmeeinheit (siehe Abbildung B.3) ist für die Bewegung in die z -Richtung
zuständig. Der Aufbau erinnert sehr an den der Gabel eines Gabelstaplers und auch die
Funktion entspricht diesem.
Primär ist die Lastaufnahmeeinheit so weit wie möglich eingefahren. Denn nur wenn die
Lastaufnahmeeinheit sich in dieser Position befindet, kann sich das Regal ungehindert
auch in x und/oder y-Richtung bewegen. Zusätzlich gibt es eine Position zum bedienen
des Hochregals und eine weitere zum bedienen des Autonomen Transportfahrzeugs.
Ähnlich der Bauweise der Hubeinheit wird die Kraft des an der Hubeinheit angebrachten
Motors der Lastaufnahmeeinheit mittels eines Zahnrades auf die Bausteine mit Zähnen
übertragen. Der Unterschied besteht jedoch hier darin, dass in diesem Fall das Zahnrad
fest positioniert ist und dadurch die Lastaufnahmeeinheit, an der die bezahnten Bau-
steine befestigt sind, vor und zurück schiebt.
Der Aufbau der Lastaufnahmeeinheit wird so durchgeführt, dass diese genau in die dafür
vorgesehene Führung der Hubeinheit passt, sich aber trotzdem leicht bewegen lässt.

                                           29
Sie können auch lesen