Die vorliegende Arbeit befasst sich mit der Erstellung einer Simulationsanwendung für die Automatisierung eines Industrieroboters. Die Umsetzung erfolgt durch Analyse und Implementierung geeigneter Steuerungsstrategien, die, vor dem Hintergrund der Flächenabdeckung und des Steuerungsaufwands, mit Hilfe der Simulationssoftware verglichen und ausgewertet werden. Für die Entwicklung der Simulationsanwendung wird die Qt-Klassenbibliothek verwendet, welche sich durch ihre Plattformunabhängigkeit und einfache Handhabung auszeichnet. Des Weiteren wird eine grafische Benutzeroberfläche für das Simulationsprogramm entworfen, über die der Anwender die Simulation steuern und die Ergebnisse gegenüberstellen kann.
Inhaltsverzeichnis
Verzeichnis der Abbildungen
Verzeichnis der Tabellen
Verzeichnis der Abkürzungen und Formelzeichen
1 Einleitung
2 Steuerstrategien
2.1 Ping-Pong
2.2 Ping-Pong mit zufälligen Richtungswechseln
2.3 Spiralbewegung
2.4 Reguläre Bewegung
3 Das Qt-Toolkit
3.1 Die Qt Klassenbibliothek
3.2 Qt Entwicklungswerkzeuge
4 Das MVC-Muster
5 Simulationsprogramm
5.1 Umsetzung der Steuerstrategien
5.2 Entwicklungsumgebungen
5.3 Programmarchitektur
5.4 Projektbeschreibung
5.5 Die Benutzeroberfläche
5.6 Modellierung mit dem Qt Designer
5.7 Zeichnen von Grafikprimitiven
5.8 Portierung auf die Windows Plattform
6 Vergleich der Strategien
7 Zusammenfassung und Ausblick
Literaturverzeichnis
Verzeichnis der Abbildungen
Abb. 1.1: Industrieroboter "Kornknecht" [22]
Abb. 2.1: Ping-Pong Bewegung
Abb. 2.2: Reflexion
Abb. 2.3: Bewegung mit zufälligen Richtungsänderungen
Abb. 2.4: Archimedische Spirale
Abb. 2.5: Reguläre Bewegung A
Abb. 2.6: Reguläre Bewegung B
Abb. 3.1: Das Qt-Toolkit für verschiedene Plattformen
Abb. 3.2: Signals and Slots Prinzip
Abb. 3.3: Screenshot Qt Designer
Abb. 4.1: Model-View-Controller Architekturmuster
Abb. 5.1: Model-View-Controller Muster in der Simulationsanwendung
Abb. 5.2: Timergesteuerte Simulation
Abb. 5.3: Anordnung der Widgets in der Benutzeroberfläche
Abb. 5.4: Grafische Oberfläche der Simulationsanwendung
Abb. 5.5: Editiermodus im Qt Designer
Abb. 5.6: Formularvorschau im Qt Designer
Abb. 5.7: Slot-Deklaration im Qt Designer
Abb. 5.8: Signal und Slot Verbindungen im Qt Designer
Abb. 5.9: Entwicklungsprozess für Formulare
Abb. 6.1: Zeitlicher Verlauf der Flächenabdeckung - Ping-Pong
Abb. 6.2: Zeitlicher Verlauf der Flächenabdeckung - Ping-Pong mit zufälligen Richtungswechseln
Abb. 6.3: Zeitlicher Verlauf der Flächenabdeckung - Spiralbewegung
Abb. 6.4: Zeitlicher Verlauf der Flächenabdeckung - Reguläre Bewegung
Abb. 6.5: Schema autonome Steuerung
Verzeichnis der Tabellen
Tabelle 6.1: Gegenüberstellung der Strategien
Verzeichnis der Abkürzungen und Formelzeichen
Abbildung in dieser Leseprobe nicht enthalten
1 Einleitung
Neue Innovationen sowie der technologische Fortschritt bestimmen immer mehr die Wirtschaft in Deutschland - und auch in der Landwirtschaftstechnik haben Neuerungen ihren festen Platz. Besonders stehen dabei Ziele wie die Optimierung der Arbeitsprozesse sowie eine effiziente Arbeitsweise im Vordergrund. Doch leider ist es heute immer noch so, dass viele eingesetzte Geräte oder Technologien diese Ziele nicht erreichen.
So auch der Industrieroboter „Kornknecht“, eine mobile Misch-Schnecke (siehe Abb. 1.1) für den Einsatz in Getreidelagern. Er besteht aus einem Getriebemotor, verbunden mit einem Spezialgehäuse und einer Schnecke mit variabler Länge zwischen 1m und 4m, welche bei Betrieb senkrecht im Getreide rotiert. Einsatzziele sind:
- Mischen und Homogenisieren des Getreides
- Auflockern und fließfähig halten
- Wärmenester beseitigen
- Belüftungsrate verbessern
- Lagerbelüftungstrocknung intensivieren
- Höhere Trocknungstemperaturen bei Lagerbelüftungstrocknung ermöglichen [22]
Abbildung in dieser Leseprobe nicht enthalten
Abb. 1.1: Industrieroboter "Kornknecht" [22]
Derzeit verfügt der Roboter über keine automatische Steuerungsmöglichkeit. Darüber hinaus muss er manuell auf den gewünschten Kurs ausgerichtet werden. Bei dieser Handhabung ist jedoch nicht sichergestellt, dass der Roboter einen effizienten Weg verwendet und es erfordert eine Arbeitskraft, die ständig den Roboter beobachtet und die Kursänderungen vornimmt. Daher ist es sinnvoll, den Roboter für einen autonomen Betrieb, also ohne Steuerung durch menschliches Bedienpersonal, zu erweitern.
Ziel dieser Arbeit ist es, verschiedene Steuerungsstrategien zu entwickeln, die mit Hilfe einer Simulationsanwendung analysiert und deren Parameter optimiert werden können. Dabei werden zunächst verschiedene Strategien und deren mögliche Parameter erläutert. Des Weiteren wird die programmtechnische Umsetzung dieser Taktiken in einem Simulationsprogramm, welches plattformunabhängig[1] entwickelt und mit einer grafischen Benutzeroberfläche[2] ausgestattet wird, beschrieben. Aufgrund dieser Anforderungen bietet es sich an, die Qt-Klassenbibliothek[3] zu verwenden, da sie die Plattformübergreifende Programmierung unterstützt und bereits eine umfangreiche Auswahl an grafischen Ein- und Ausgabeelementen beinhaltet. Neben einer vereinfachten Darstellung des Getreidelagers mit der aktuellen Position des Roboters und der bereits abgefahrenen Fläche, kann der Anwender einzelne Parameter der Steuerungsstrategien vorgeben. Zusätzlich dazu wird eine Visualisierung der bereits umgewälzten Fläche über der Zeit angezeigt. Mit Hilfe dieses Diagramms können dann Rückschlüsse auf die Effizienz und Zweckmäßigkeit der einzelnen Steuerungsstrategien gezogen werden.
2 Steuerstrategien
Die Steuerung des Roboters kann nach verschiedenen Strategien erfolgen. Der Roboter soll dabei bestimmten Bewegungsmustern folgen, die mehr oder weniger optimal die Fläche abdecken und unterschiedlichen Steuerungsaufwand beinhalten. Bei der Simulation wird davon ausgegangen, dass die Fläche des Getreidespeichers rechteckig ist. Runde Geometrien werden nicht betrachtet.
2.1 Ping-Pong
Die Ping-Pong Strategie beruht auf der Idee, dass sich der Roboter geradlinig bewegt, bis er auf ein Hindernis trifft und von diesem quasi reflektiert wird (siehe Abb. 2.1). Das Hindernis stellt im Normalfall die Wand des Getreidespeichers dar. Stellt der Roboter fest, dass er sich kurz vor der Begrenzung befindet, so muss eine Richtungsänderung erfolgen.
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2.1: Ping-Pong Bewegung
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2.2: Reflexion
Zur Berechnung der neuen Richtung wird das Reflexionsgesetz angewandt, demnach der Winkel des einfallenden Strahls zum Lot gleich dem Winkel des ausfallenden Strahles zum Lot ist (siehe Abb. 2.2).
2.2 Ping-Pong mit zufälligen Richtungswechseln
Die Basis für diese Bewegungsstrategie ist die zuvor beschriebene Ping-Pong Strategie. Der Roboter bewegt sich zunächst geradlinig und folgt bei Hindernissen dem Reflexionsgesetz. Hinzu kommen zufällige Richtungsänderungen. Diese entstehen, indem der zeitliche Abstand zwischen den Änderungen, wie auch die neue Richtung durch Zufall gewählt werden. Das so entstehende Bewegungsmuster ähnelt einer Brownschen Molekularbewegung[4], bei der die unregelmäßig zuckenden Bewegungen von aneinander stoßenden Molekülen zu beobachten ist (siehe Abb. 2.3).
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2.3: Bewegung mit zufälligen Richtungsänderungen
2.3 Spiralbewegung
Für dieses Bewegungsmuster wird angenommen, dass sich der Roboter kreisförmig und mit konstanter Bahngeschwindigkeit um einen festen Punkt bewegt. Dabei soll sich der Abstand zum Mittelpunkt konstant verringern, so dass nach einer Umrundung die Bahn des Roboters um eine Spurbreite versetzt ist. Diese Bahn entspricht dem Kurvenverlauf einer archimedischen Spirale (siehe Abb. 2.4).
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2.4: Archimedische Spirale
Die archimedische Spirale ist eine Kurve, die sich durch einen konstanten Windungsabstand über den gesamten Definitionsbereich auszeichnet [21].
Im Folgenden sind jeweils eine Formel für den Radius [Abbildung in dieser Leseprobe nicht enthalten] in Abhängigkeit vom Winkel [Abbildung in dieser Leseprobe nicht enthalten] und eine Formel für die Länge [Abbildung in dieser Leseprobe nicht enthalten] der Spirale, von [Abbildung in dieser Leseprobe nicht enthalten] ausgehend, angegeben. Die verwendete Konstante [Abbildung in dieser Leseprobe nicht enthalten] ergibt sich dabei aus dem Abstand zweier Punkte, die auf einem Strahl liegen, der vom Spiralmittelpunkt ausgeht. Dieser beträgt bei der archimedischen Spirale [Abbildung in dieser Leseprobe nicht enthalten], was in diesem Kontext der Spurbreite [Abbildung in dieser Leseprobe nicht enthalten] des Roboters entspricht.
Abbildung in dieser Leseprobe nicht enthalten
2.4 Reguläre Bewegung
Die Reguläre Bewegung kann auf zwei Arten umgesetzt werden. Zum Einen eine gleichmäßige Hin- und Herbewegung (siehe Abb. 2.5) und zum Anderen eine Bewegung entlang der Außenkante mit größer werdendem Abstand zur Wand (siehe Abb. 2.6).
Die Hin- und Herbewegung erfolgt, indem der Roboter parallel zu einer vertikalen Seitenwand entlangfährt. Beim Erreichen einer horizontalen Wand wird die Bewegung in der entgegengesetzten Richtung fortgesetzt. Zudem muss die Bahn des Roboters um eine Spurbreite des Roboters versetzt werden.
Bei der zweiten Variante erfolgt die Bewegung immer parallel zur Außenkante. Erreicht der Roboter eine Wand oder eine bereits abgefahrenen Fläche, so wird seine Bewegungsrichtung um 90° rechtsdrehend geändert.
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2.5: Reguläre Bewegung A
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2.6: Reguläre Bewegung B
3 Das Qt-Toolkit
Zur Realisierung der Simulationsanwendung wird das Qt-Toolkit eingesetzt. Es besteht aus einer umfangreichen Klassenbibliothek und diversen Entwicklungswerkzeugen für die plattformübergreifende Programmierung grafischer Benutzeroberflächen unter C++[5]. Die norwegische Firma Trolltech entwickelt Qt seit 1994 und bietet es für verschiedene Betriebssysteme an (Abb. 3.1):
- Qt/Windows (Microsoft Windows XP, 2000, NT 4, Me/98)
- Qt/Mac (Mac OS X)
- Qt/X11 (Linux, Solaris, HP-UX, IRIX, AIX, viele weitere Unix Varianten)
Die Klassenbibliothek steht dabei unter GNU General Public License (GPL), aber auch unter einer kommerziellen Lizenz, die benötigt wird, wenn Produkte entwickelt werden, die nicht unter einer freien Lizenz stehen. [6]
Abbildung in dieser Leseprobe nicht enthalten
Abb. 3.1: Das Qt-Toolkit für verschiedene Plattformen
Qt ist aber nicht als Entwicklungsumgebung zu sehen, sondern als reine Klassenbibliothek mit unterstützenden Entwicklungswerkzeugen. Die Bearbeitung von Quellen erfolgt in der bevorzugten Entwicklungsumgebung des Programmierers oder in einem einfachen Texteditor. Einige mitgelieferte Werkzeuge können so zum Beispiel in Entwicklungsumgebungen wie Microsoft Visual Studio integriert werden.
3.1 Die Qt Klassenbibliothek
Qt ist eine Klassenbibliothek für die Programmiersprache C++. Aufgrund der intensiven Nutzung des Konzeptes der Klassenvererbung, bekommt die Bibliothek eine übersichtliche und einheitliche Schnittstelle, in der sich der Anwender schnell zurechtfindet.
Für fast alle gängigen grafischen Eingabe- und Ausgabeelemente (so genannten Widgets) sind Klassen vorhanden, wie zum Beispiel für Buttons, Auswahlboxen, Eingabezeilen und Menüleisten, sowie Klassen zur Anordnung dieser Elemente in einem Fenster. Zudem bietet Qt einfache Mittel um auf dem Bildschirm zu zeichnen, von einfachen Punkten und Linien bis zu komplexen Vielecken und Text. Des Weiteren sind Klassen enthalten, die den plattformunabhängigen Dateizugriff, das Ansteuern von Druckern oder das Erzeugen von elementaren Datenstrukturen ermöglichen. [1]
[...]
[1] Plattformunabhängigkeit - Plattformunabhängigkeit ist die Eigenschaft eines Programms, auf verschiedenen Computersystemen mit Unterschieden in Architektur, Prozessor, Betriebssystem usw. lauffähig zu sein [14].
[2] Grafische Benutzeroberfläche - Eine grafische Benutzeroberfläche ist eine Softwarekomponente, die einem Computerbenutzer die Interaktion mit der Maschine über grafische Elemente unter Verwendung eines Zeigegerätes erlaubt [15].
[3] Qt-Klassenbibliothek – Die Bibliothek wird in Kapitel 3 näher beschrieben.
[4] Brownsche Molekularbewegung - Als Brownsche Molekularbewegung wird die vom schottischen Botaniker Robert Brown im Jahr 1827 beschriebene, thermisch getriebene Eigenbewegung der Moleküle bezeichnet, welche er als unregelmäßig zuckende Bewegungen schilderte [16].
[5] C++ - C++ ist eine objektorientierte Programmiersprache
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.