1. Einleitung
Autor:
Fachhochschule Südwestfalen
Fachbereich Elektrische Energietechnik
Campus Soest
Einführungs praktikum
Roboterprogrammierung
Einführungs praktikum Roboterprogrammierung
1. Einführung
Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 2 / 8
1. Organisation der Praktika
Die Einführungspraktika für die neuen Studierenden im ersten Semester finden im Wintersemester statt.
Die Aufteilung wird frühzeitig am Schwarzen Brett, sowie auf der Fachbereichs-Homepage veröffentlicht
(Downloadbereich Datentechnik).
1.1 Termin übersicht
Das Praktikum ist unterteilt in insgesamt vier Termine in denen verschiedene Projekte mit Hilfe von Lego
Mindstorms realisiert werden. Hierbei werden jeweils unterschiedliche Aspekte der Hard- und Software
behandelt, so dass am Ende des Einführungspraktikums auch ohne Probleme eigene Projekte umgesetzt
werden können. Für das gesamte erste Semester der Elektrotechnik stehen dabei insgesamt 4 verschiedene
Terminfolgen zur Verfügung.
1.2 Vor bereitung
Das Praktikum ist so konzipiert, dass von Seiten der Studierenden keine Vorkenntnisse in der
Programmierung oder Robotertechnik notwendig sind. Jedoch empfiehlt es sich für jeden Teilnehmer diese
Einführungsdokumentation vorher zu lesen, um die grundlegenden Elemente der Mindstorms-plattform
bereits vorher kennenzulernen. Außerdem sollten die jeweiligen Dokumentationen zu den einzelnen
Laborterminen vorher durchgearbeitet werden. Dies erleichtert die Bearbeitung während des eigentlichen
Praktikums.
Während der eigentlichen Praktikumstermine findet eine ausgiebige Betreuung durch Studierende aus
höheren Semestern und Hochschulmitarbeitern statt.
2. LEGO Mindstorms Plattformübersicht
Das Mindstorms-Programm von LEGO bietet alle notwendigen Elemente um intelligente Roboter oder
andere Konstruktionen zu entwerfen. Hierbei stehen die bereits aus dem LEGO Technik-Programm
bekannten mechanischen Bauteile zum Aufbau der Robotermechanik zur Verfügung. Somit besteht bei der
Nutzung dieser Plattform die Möglichkeit zum schnellen Entwurf und Aufbau von unterschiedlichsten
Roboter-Modellen, was so mit anderen Systemen meistens nur mit immensem Aufwand realisierbar wäre.
Diese Einführung gibt einen kurzen Einblick in die unterschiedlichen Elemente des Mindstromssystems,
wobei insbesondere die verfügbare Hardware kurz vorgestellt wird. In den praktischen Übungen werden
dann diese Elemente genutzt um zunächst den Umgang mit den verschiedenen Programmen, zur
Softwareentwicklung, zu erlernen. In diesem Zusammenhang werden auch grundlegende Kenntnisse über
die beteiligten Programmiersprachen vermittelt. Abbildung 1 zeigt eine komplette Übersicht über die
Elemente des Mindstorms-Programmes, die im Folgenden vorgestellt werden sollen.
Einführungs praktikum Roboterprogrammierung
1. Einführung
Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 3 / 8
Abbildung 1 – LEGO Mindstorms Plattformübersicht – Software, Schnittstellen, Hardware, Mechanik
2.1 Software übersicht
Zur Programmierung der LEGO Mindstormskomponenten bietet LEGO das Programm NXT-G an, welches
die Programmierung der Roboter mit Hilfe von Aktionsblöcken und geeigneten Verbindungen erlaubt. Die
folgende Abbildung zeigt ein Beispiel für ein mit NXT-G erstelltes Programm.
Abbildung 2 – LEGO Mindstorms Plattformübersicht – Software, Schnittstellen, Hardware, Mechanik
Hierbei wurde NXT-G so konzipiert, dass es bereits für Schulkinder einfach zu bedienen und zu erlernen
ist. Die Programmierung von grundlegenden Funktionen ist dabei ohne jegliche Programmiererfahrung
oder Kenntnis einer klassischen Programmiersprache möglich.
Da das Einführungspraktikum an einer Hochschule naturgemäß auf die nachfolgenden Inhalte des Studiums
ausgerichtet sein sollte wird auf eine Verwendung von NXT-G zu Gunsten der Benutzung von „ernsthaften“
Programmierumgebungen verzichtet. Dies Eröffnet bereits während des ersten Semesters die Möglichkeit
sich mit einer Programmiersprache/-umgebung vertraut zu machen, die auch im weiteren Studienverlauf
noch zur Anwendung kommen wird. In diesem Fall sind dies:
Die Entwicklungsumgebung LabVIEW mit der graphischen Programmiersprache G
Die Programmiersprache C unter Benutzung von RobotC
Hierbei werden die unterschiedlichen Gruppen mit jeweils einer der beiden Programmierwerkzeuge
während des gesamten Praktikums arbeiten, so dass die Grundlagen in der Arbeit mit diesen
Einführungs praktikum Roboterprogrammierung
1. Einführung
Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 4 / 8
Programmiersprachen nach erfolgreichem Absolvieren des Praktikums bekannt sind. Im Folgenden seien
die beiden zur Verfügung stehenden Alternativen kurz vorgestellt.
2.1.1 RobotC Textuelle Programmierung mit C
Das Programmpaket RobotC ist eine Entwicklungsumgebung die es ermöglicht Mindstorms-Roboter in
der Programmiersprache C zu programmieren.
C ist eine sehr weit verbreitete, rein
textuelle, Programmiersprache die auch in der
Industrie große Bedeutung besitzt. An der Carnegie
Mellon University (CMU) in den USA wurde RobotC
entwickelt um die Möglichkeit zu schaffen auf
Grundlage dieser Programmiersprache Programme
für die Mindstroms-Plattform entwickeln zu
können. Hierzu wurde eine spezielle Bibliothek
implementiert,
Abbildung 3 – Programmierung mit RobotC
wichtige Befehle zur Benutzung der entsprechenden Hardware (Motoren, Sensoren,…) enthält.
2.1.2 LabVIEW Graphische Programmierung mit G
Das Programmpaket LabVIEW ermöglicht die graphische Programmierung in einer eigens konzipierten,
graphischen Programmiersprache
(G). Hierbei wurden nahezu alle
typischen Elemente einer
klassischen textuellen
Programmiersprache (wie z.B. C)
graphisch umgesetzt. Die mit
LabVIEW erstellten Programme
stehen also in Sachen der
möglichen Funktionalität und
Komplexität auf einer Ebene mit
klassisch program-
Abbildung 4 – Programmierung mit LabVIEW
mierten Anwendungen. Ein großer Vorteil von LabVIEW ist die Möglichkeit sehr schnell und einfach
Benutzer-oberflächen zu erstellen und die jeweiligen Elemente mit bestimmten Funktionalitäten zu
versehen. Abbildung 4 zeigt ein Beispiel für ein mit LabVIEW entwickeltes Programm für einen LEGO
Mindstroms-Roboter.
Einführungs praktikum Roboterprogrammierung
1. Einführung
Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 5 / 8
2.2 Hardware übersicht
Das Herzstück des Mindstormssystem ist der NXT-Brick, welcher die zentrale Intelligenz eines jeden
Mindstormsroboters darstellt. Der NXT-Brick verfügt dabei über eine USB-Schnittstelle zur Übertragung
von Programmen, sowie über Bluetooth welches zum einen für eine Kommunikation zwischen zwei
Robotern genutzt werden kann oder zum Steuern des Roboters mit Hilfe von mobilen Geräten (Laptop,
PDA,…). Darüberhinaus sind verschiedenste Sensoreinheiten im Mindstormspaket enthalten über die der
jeweilige Roboter seine Umwelt wahrnehmen kann. Interaktionsmöglichkeiten können dabei durch drei
Motoren realisiert werden mit denen zum Beispiel ein fahrbarer Roboter gebaut werden kann. Die
folgenden Abschnitte geben eine kurze Einführung in die unterschiedlichen Hardwarekomponenten.
2.2.1 NXT-Brick Das Herzstück
Der NXT-Brick ist die zentrale Verarbeitungseinheit des NXT-Systems und er ist zuständig für die
Programmverarbeitung. Hierzu enthält er einen leistungsstarken Mikroprozessor1 und entsprechenden
Programmspeicher. Die Spannungsversorgung des Bricks erfolgt über einen Akku auf der Rückseite.
Zur Kommunikation mit den anderen Elementen der Mindstormsplattform stehen insgesamt 7 Ports zur
Verfügung: 4 Eingangsports zum
Anschluss von Sensoren (Port 1 – Port
4) und 3 Ausgangsports zum Anschluss
von Motoreinheiten (Port A – Port C).
Desweiteren verfügt der NXT-Brick
über eine USB-Schnittstelle die zum
Übertragen von Programmen und zum
Debuggen2 genutzt werden kann. Als
weitere Schnittstelle steht Bluetooth
zur Verfügung. Bluetooth kann genutzt
werden um zum Beispiel eine
Kommunikation zwischen zwei
Robotern
Abbildung 5 – Übersicht NXT-Brick
aufzubauen (beispielsweise im Bereich des Roboterfußballs) oder aber um den Roboter mit anderen
mobilen Endgeräten (Laptop, PDA, Handy, etc.) zu verbinden um zum Beispiel Messwerte zu übertragen.
1 32-bit ARM7 Mikroprozessor 2 Unter Debugging versteht man im Allgemeinen die Beseitigung von Fehlern (Bugs) in einem Programm.
Einführungs praktikum Roboterprogrammierung
1. Einführung
Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 6 / 8
2.2.2 Die Sensoren
Die folgende Tabelle gibt eine Übersicht über die verfügbaren Sensoren von LEGO Mindstorms. Wie bereits
erwähnt, werden die Sensoren an die Ports 1 - 4 am NXT-Brick mit Hilfe der Verbindungskabel
angeschlossen. Welcher Sensor mit welchem Port verbunden wird spielt dabei keine Rolle, da die
notwendigen Einstellungen innerhalb der benutzten Software vorgenommen werden könnnen.
Sensor Abbildung Beschreibung
Ultraschallsensor
Der Sensor nutzt Ultraschallmessungen, um
seine Umgebung wahrzunehmen. Er sendet ein
Signal aus uns wartet auf dessen Rückkehr.
Während der Sensor auf das Reflexsignal wartet,
wird die dafür benötigte Zeit gemessen. Die Zeit
zwischen Aussendung und Empfang des Signals
bildet die Grundlage für die Berechnung der
Entfernung zum erkannten Objekt.
Mikrofon
Der Geräuschsensor (Mikrofon) ist ein hoch
entwickelter Sensor, der es ermöglicht den
Roboter auf neue Einflüsse und Reize reagieren
zu lassen. Der Sensor misst den Schall in db und
dbA. Der Roboter kann somit auf leise und laute
Kommandos reagieren, sowie auf Kommandos
die von einer Person oder von mehreren
gleichzeig gegeben werden.
Lichtsensor
Der Sensor erlaubt präziserer Lichtmessungen
auf einer Skala zwischen 0 (kein Licht) und 100
(sehr hell). Es ist ebenfalls möglich das
Infrarotlicht unterhalb dem Sensor auszu-
schalten, um nur das Umgebungslicht zu messen.
Berührungssensor
Der Berührungssensor ist ein sehr einfaches
Gerät, das nur zwei Zustände haben kann: An
(Stromfluss) und Aus (Stromfluss
unterbrochen). Der Roboter kann entsprechend
agieren oder reagieren, wenn er eine
Spannungsänderung misst. Die durch Drücken
und Loslassen des Knopfes ausgelöst wird.
Tabelle 1 –Sensorübersicht
Einführungs praktikum Roboterprogrammierung
1. Einführung
Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 7 / 8
2.2.3 Die Motoren
Bei den mitgelieferten Antriebsmotoren handelt es sich um Getriebemotoren mit einem integrierten
Abbildung 6 – Innenansicht eines Motors
Rotationssensor, der die genaue
Geschwindigkeit sowie Entfernung messen und
an den NXT-Brick zurückmelden kann. Die
Motoren können sehr präzise gesteuert werden
und es besteht die Möglichkeit, dass mehrere
Motoren unter-einander die Geschwindigkeit
abgleichen, während sich der Roboter bewegt.
Jeder Motor kann in 1°-Schritten angesteuert
werden. Die
Motoren werden mit den beigefügten Verbindungskabeln mit einem der Ausgangsports (Port A - C) verbunden.
Literatur empfehlungen
Für jedes Projekt innerhalb des Einführungspraktikums sind keinerlei Vorkenntnisse erforderlich, wer sich
jedoch über den Umfang der Veranstaltungen hinaus mit dem Thema Mindstorms und Roboter-
programmierung beschäftigen will, dem seien die folgenden Quellen ans Herz gelegt.
Eventuell empfiehlt es sich auch ein jeweiliges Buch zu einer der beiden Programmiersprachen parallel zu
den stattfindenden Praktika zu benutzen. Damit wird es ermöglicht, die behandelten Themengebiete und
Sprachelemente nochmals zu Hause nachzuschlagen.
Mind storms
Baum, D. 2003, Definitive guide to LEGO MINDSTORMS: [an unofficial guide to the LEGO
MINDSTORMS Robotics Invention System 2.0], 2nd edn, APress; Springer, Berkeley, Calif.;
New York.
Boogaarts, M. 2008, The LEGO Mindstorms NXT idea book: design, invent, and build, Nachdr
edn, No Starch Press, San Francisco, Calif.
Engels, M. 2009, Programmierung von LEGO MINDSTORMS NXT mit NI LabVIEW, Hanser,
Carl, München.
Hansen, J.C. 2007, Lego Mindstorms NXT power programming: [Robotics in C], Variant
Press, Winnipeg.
Perdue, D.J. 2008, The unofficial LEGO Mindstorms NXT inventor's guide, edn, No Starch
Press, San Francisco, CA.
Einführungs praktikum Roboterprogrammierung
1. Einführung
Fachhochschule Südwestfalen – Fachbereich Elektrische Energietechnik - Campus Soest 29.10.2015 8 / 8
C Programmierung
DAUSMANN, M., BRÖCKL, U. and GOLL, J., 2008. C als erste Programmiersprache : vom
Einsteiger zum Profi ; [mit Übungsaufgaben und Compiler auf CD-ROM]. 6, überarb Aufl
edn. Wiesbaden: Teubner.
ERLENKÖTTER, H., 2009. C : Programmieren von Anfang an. 16 Aufl edn. Reinbek bei
Hamburg: Rowohlt-Taschenbuch-Verl.
WOLF, J., 2009. C-Programmierung : mit einfachen Beispielen ; leicht, klar, sofort
verständlich. München: Markt-+-Technik-Verl.
LabVIEW Programmierung
GASPERI, M., 2008. LabVIEW for Lego Mindstorms NXT. Allendale, NJ: National
Technology and Science.
GEORGI, W. and METIN, E., 2008. Einführung in LabVIEW : mit ... 133 Aufgaben ;
[Studentenversion 8.5 inklusive]. 3., vollst. überarb. und erw. Aufl edn. München:
Fachbuchverl. Leipzig im Carl-Hanser-Verl.
JAMAL, R. and HAGESTEDT, A., 2007. LabVIEW für Studenten. 4. Aufl., [Nachdr. edn.
München u.a.: Pearson Studium.
MÜTTERLEIN, B., 2007. Handbuch für die Programmierung mit LabVIEW : mit
Studentenversion LabVIEW 8. 1. Aufl edn. Heidelberg: Elsevier, Spektrum Akad. Verl.
Ansprech partner
Bei weiteren Fragen zur Organisation des Einführungspraktikums wenden Sie sich bitte jederzeit an:
Antonius Schmidt, M.Sc.
Raum 04.105
Tel: +49 (0)29 21 / 378-452
E-Mail: [email protected]