Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...

 
WEITER LESEN
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Heuristische Algorithmen zur
 automatischen Generierung von
      prozesszeitoptimierten
Roboterprogrammen im Bereich von
     Multi-Robotersystemen

             Der Technischen Fakultät
        der Friedrich-Alexander-Universität
                Erlangen-Nürnberg
                        zur
       Erlangung des Doktorgrades Dr.-Ing.

                  vorgelegt von

                Murad Muradi
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Als Dissertation genehmigt
von der Technischen Fakultät
der Friedrich-Alexander-Universität Erlangen-Nürnberg
Tag der mündlichen Prüfung: 22.01.2021

Vorsitzender des Promotionsorgans: Prof. Dr. -Ing. Knut Graichen

Gutachter: Prof. Dr. rer. nat. Rolf Wanka
           apl. Prof. Martin Gugat, Akad. Dir.
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
“Man merkt nie, was schon getan wurde, man sieht immer nur, was noch zu tun bleibt.”
                                                                     -Marie Curie

                                                                                 iii
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Abstract

In the face of demographic change and high cost pressures, ever greater efforts are
being made to automate processes. For this purpose, multi-robot systems (MRS) are
increasingly used. In a MRS several robots act simultaneously in a cell in order to
process standardized and recurring tasks efficiently and fully automated.
   In the automotive industry this is a major challenge due to the high level of com-
plexity in production. On the one hand, there is an enormous combinatorial diversity
in the process design. This includes the assignment of the tasks to the available robots,
the selection of the processing sequence and the adjustment of the process settings.
On the other hand, motion planning proves to be computationally intensive because of
narrow and dynamic robot workspaces. The aim of this work is therefore to minimize
the manual effort for robot programming and maximize the efficiency of multi-robot
systems with the help of heuristic algorithms.
   The solutions presented in this work target processes in which robots must follow a
predefined path to perform a task. The path to connect the tasks, on the other hand,
can be done following any path. For the motion planning, the probabilistic roadmap
algorithm is implemented. Here, a new sampling strategy is used to discretize the
robot workspaces through graphs. The most promising task connections are identified
by a metric and stored in an incidence list. In addition, each connection is further
optimized by simulated annealing during the creation of the graphs. A fast and precise
collision detection is shown for the motion planning.
   The above problem formulation is described in a new format so that it can be
abstracted to a multiple depot multiple traveling salesmen problem (MDMTSP) with
some process-specific constraints. In this way, any meta-heuristic can be used without
a high effort for adjustments. For process optimization, a new implementation of the
genetic algorithm is applied in this work. In combination with the presented format, it
efficiently generates a population with valid solutions.
   The convergence behavior of the genetic algorithm is improved by various methods.
On the one hand, the mutation rate is actively regulated following a specific rule. On
the other hand, a reactive search approach is used in order to privilege the selection of
suitable process settings. The solution quality of the genetic algorithm is verified by
an exact solver based on a benchmark problem.

                                                                                       v
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
For load balancing, tasks are clustered according to their location relative to the
robot workspaces. Doing this, bad task allocations, in which the robots block each
other, are excluded from the outset.
    The algorithms were applied to a real business problem in the field of PVC sealing.
It is possible to generate collision-free and executable robot programs that reduce the
non-value-adding portion of the process time by up to 17%.

vi
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Kurzfassung

Angesichts des demographischen Wandels und hohen Kostendrucks werden immer
größere Anstrengungen unternommen, um Prozesse zu automatisieren. Dafür wer-
den vermehrt Multi-Robotersysteme (MRS) eingesetzt, in denen mehrere Roboter
zeitgleich in einer Zelle agieren, um standardisierte und wiederkehrende Aufgaben
effizient und vollautomatisch abzuarbeiten.
   In der Automobilindustrie stellt dies aufgrund der hohen Komplexität in der Produk-
tion eine große Herausforderung dar. Einerseits besteht eine enorme kombinatorische
Vielfalt bei der Prozessauslegung. Dies beinhaltet die Aufteilung der Aufgaben auf
die verfügbaren Roboter, die Festlegung der Bearbeitungssequenz und die Anpassung
der Prozesseinstellungen. Andererseits erweist sich aufgrund der engen und dynami-
schen Roboterarbeitsräume die Bewegungsplanung als äußerst rechenintensiv. Ziel
dieser Arbeit ist es daher, mit Hilfe von heuristischen Algorithmen den manuellen
Aufwand für die Roboterprogrammerstellung zu minimieren und die Effizienz von
Multi-Robotersystemen zu maximieren.
   Die in dieser Arbeit vorgestellten Verfahren zielen auf Prozesse ab, in denen Roboter
einen vordefinierten Pfad folgen müssen, um eine Aufgabe auszuführen. Die Bewe-
gungen zum Verbinden der Aufgaben können dahingegen auf einem beliebigen Pfad
durchgeführt werden. Für die Bewegungsplanung wird der Probabilistic-Roadmap-
Algorithmus implementiert. Dazu wird eine neue Abtaststrategie verwendet, um die
Roboterarbeitsräume durch Graphen zu diskretisieren. Die vielversprechendsten Ver-
bindungen zwischen den Aufgaben werden durch eine Metrik identifiziert und in einer
Inzidenzliste abgespeichert. Jede Verbindung wird zusätzlich während der Erstellung
des Graphen durch Simulated Annealing weiter optimiert. Für die Bewegungsplanung
ist eine schnelle und präzise Kollisionserkennung dargelegt.
   Die oben genannte Problemformulierung wird in einem neuen Format beschrie-
ben, wodurch sie auf ein Multiple-Depot-Multiple-Travelling-Salesmen-Problem
(MDMTSP) mit einigen prozessspezifischen Nebenbedingungen abstrahiert werden
kann. Auf diese Weise lässt sich jede Meta-Heuristik ohne hohem Anpassungsaufwand
für die Lösungsfindung heranziehen.
   Für die Prozessoptimierung wird in dieser Arbeit eine neue Implementierung des
genetischen Algorithmus angewendet, der in Kombination mit dem vorliegenden

                                                                                    vii
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Format effizient eine Population mit gültigen Lösungen aufbaut. Zur Verbesserung
der Konvergenzeigenschaft des genetischen Algorithmus werden verschiedene Metho-
den erarbeitet. Zum einen wird die Mutationsrate nach einer bestimmtem Vorschrift
aktiv geregelt. Zum anderem wird ein Reactive-Search-Ansatz verfolgt, der die Aus-
wahl geeigneter Prozesseinstellungen bevorzugt. Die Lösungsqualität des genetischen
Algorithmus wird durch einen exakten Solver anhand eines Benchmark-Problems
verifiziert.
   Für den Lastausgleich werden Aufgaben in Abhängigkeit ihrer Position relativ zu
den Roboterarbeitsräumen geclustert, um unvorteilhafte Aufteilungen von vornherein
auszuschließen, bei denen sich die Roboter gegenseitig blockieren.
   Die Algorithmen wurden auf ein reales Geschäftsproblem im Bereich der PVC-
Versiegelung angewendet. Hierdurch ließen sich kollisionsfreie und abfahrbare Robo-
terprogramme generieren, die den nicht wertschöpfenden Anteil der Prozesszeit um
bis zu 17% reduzieren können.

viii
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Danksagung

Die Themenstellung der Doktorarbeit hat sich infolge meiner Masterarbeit ergeben,
in der ich mich mit Roboterprozessen im Bereich der Fahrzeugabdichtung im BMW
Werk Regensburg auseinandergesetzt habe. Es hat sich immer weiter herauskristal-
lisiert, dass aufgrund der hohen Komplexität vieler Roboterprozesse, eine robuste
Prozessautomatisierung bzw. -optimierung mit gängigen planerischen und technischen
Methoden nur bedingt umsetzbar ist. Daher wurde mir die Gelegenheit geboten, in
dem spannenden Bereich der Roboterprozessoptimierung und automatischen Roboter-
programmgenerierung zu forschen.
   Die Arbeit ist im Zeitraum vom 01.06.2017 bis 30.05.2020 als Kooperation zwi-
schen dem Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design) der Universi-
tät Erlangen-Nürnberg und der BMW Group in München entstanden. An dieser Stelle
möchte ich allen beteiligten Personen meinen großen Dank aussprechen, die mich bei
der Anfertigung meiner Dissertation unterstützt haben.
   Als Erstes möchte ich Herrn Professor Rolf Wanka meinen aufrichtigen Dank für
seine Betreuung aussprechen. Professor Wanka leitet eine Professur für Informatik mit
dem Schwerpunkt effiziente Algorithmen und kombinatorische Optimierung und hat
durch seine Gedanken und Bemühungen meine Arbeit maßgeblich geprägt. Weiterhin
gilt Herrn Professor Martin Gugat mein größter Dank für seine konstruktive Kritik
bei der Erstellung des Zweitgutachtens. Bei den anderen Doktoranden von Herrn
Professor Wanka, Alexander Raß und Bernd Bassimir, möchte ich mich auch herzlich
bedanken. Sie haben sich stets Zeit für meine Fragen und Anliegen genommen.
   Des Weiteren muss ich meinen größten Dank der BMW Group äußern, die meine
Arbeit finanziert und mit ermöglicht haben. Insbesondere möchte ich meinem Mentor
Rainer Spitzner und Betreuer Christian Will danken. Herr Spitzner hatte die initiale
Idee für die Themenstellung meiner Doktorarbeit und hat zusammen mit Herrn Will
meine Arbeit vom Anfang an in die richtige Bahn gelenkt. Meine Vorgesetzten Dr.
Alexander Troll und Dr. Stefan Reiprich danke ich für den Spielraum, den sie mir
gewährt haben. Dadurch war es mir möglich, mich meinem Forschungsthema zu
widmen. Meinen Kollegen Timo Hopf, Elmar Stegmayer, Yannik van Dijk und Tan
Khanh-Huy gilt ebenfalls mein größter Dank, weil sie stets für eine sehr angenehme
und freundschaftliche Arbeitsumgebung gesorgt haben.

                                                                                  ix
Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
Ohne die Unterstützung aus den Werken hätte ich meine Methoden nicht praxisnah
validieren können. Vor allem Martin Dippl und Christoph Hobmeier haben sich sehr
viel Zeit genommen, um meine prozesstechnischen Fragen zu beantworten und meine
generierten Programme abzusichern.
   Die Firma Icarus Consulting GmbH hat mich durch den Mitarbeiter Timm Benkner
bei Fragen zu Robotersimulationen beraten. Dies weiß ich sehr zu schätzen und möchte
Herrn Benkner an dieser Stelle ebenfalls meinen großen Dank aussprechen.
   Auch aus dem privaten Umfeld habe ich bei der Anfertigung meiner Doktorarbeit
großen Rückhalt genossen. Deshalb möchte ich mich zuletzt bei meinen Freunden
und meiner Familie für ihre Unterstützung herzlich bedanken. Insbesondere meinen
Eltern Nejimaldin und Mina Muradi haben mich vom Anfang an ermuntert, diese
Herausforderung anzunehmen und standen mir zu jeder Zeit bei. Die Doktorarbeit
widme ich meinen Eltern.

x
Inhaltsverzeichnis

1   Einleitung                                                                                                  1
    1.1   Kontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                               1
    1.2   Vorgehensweise und Beitrag der Arbeit . . . . . . . . . . . . . . .                                   2
    1.3   Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . .                               3

2   Aufgabenstellung und Zielsetzung                                                                            5
    2.1   Anwendungsfall: PVC-Versiegelung . . . . . . . . . . . . . . . . .                                    5
    2.2   Prozesstechnische Anforderungen und Toleranzen . . . . . . . . . .                                    7
    2.3   Optimierungsproblem und Zielfunktion . . . . . . . . . . . . . . .                                   11

3   Stand der Technik                                                                                          13
    3.1   Kollisionserkennung . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
    3.2   Exakte Algorithmen . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
          3.2.1 Held-Karp-Algorithmus . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
          3.2.2 A*-Algorithmus . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   18
    3.3   Heuristische Algorithmen . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   21
          3.3.1 Genetischer Algorithmus . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   21
          3.3.2 Simulated-Annealing-Algorithmus        .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
    3.4   Bewegungsplanung Gelenkarmroboter . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   23
          3.4.1 Modellierung Roboterkinematik .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
          3.4.2 Vorwärtstransformation . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
          3.4.3 Rückwärtstransformation . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
          3.4.4 Bewegungssteuerungsarten . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
          3.4.5 Randomisierte Bewegungsplanung         .   .   .   .   .   .   .   .   .   .   .   .   .   .   34

4   Optimierungsframework                                                                                      37
    4.1   Framework Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . .                                 37
    4.2   Schnittstelle zum Produktionsnetzwerk . . . . . . . . . . . . . . . .                                41

                                                                                                               xi
Inhaltsverzeichnis

5     Methodik                                                                                     45
      5.1   Schnelle und genaue Kollisionserkennung . . . . . . . . . . . . .                  .   45
            5.1.1 Verwendete Hüllkörper . . . . . . . . . . . . . . . . . . .                  .   45
            5.1.2 Kollisionstest: Roboter vs. Roboter . . . . . . . . . . . .                  .   47
            5.1.3 Kollisionstest: Karosserie vs. Roboter . . . . . . . . . . .                 .   48
      5.2   Roboterpfadoptimierung . . . . . . . . . . . . . . . . . . . . . .                 .   49
            5.2.1 Pfadplanung . . . . . . . . . . . . . . . . . . . . . . . .                  .   49
            5.2.2 Pfad Glättung . . . . . . . . . . . . . . . . . . . . . . . .                .   51
            5.2.3 Vorverarbeitung der Roboterbewegungen zwischen Nähten                        .   52
      5.3   Prozessablauf Optimierung . . . . . . . . . . . . . . . . . . . . .                .   53
            5.3.1 Heuristischer Solver . . . . . . . . . . . . . . . . . . . .                 .   53
            5.3.2 Exakter Solver . . . . . . . . . . . . . . . . . . . . . . .                 .   58

6     Ergebnisse experimenteller Evaluation                                                        61
      6.1   Versuchsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 61
      6.2   Benchmark-Anwendung . . . . . . . . . . . . . . . . . . . . . . .                      62
      6.3   Praktische Anwendung . . . . . . . . . . . . . . . . . . . . . . . .                   66

7     Zusammenfassung                                                                              73
      7.1   Notwendigkeit der Arbeit und Versuchsdurchführung      .   .   .   .   .   .   .   .   73
      7.2   Bewegungsplanung und Kollisionserkennung . . . .       .   .   .   .   .   .   .   .   74
      7.3   Prozessablaufoptimierung und Load Balancing . . .      .   .   .   .   .   .   .   .   74
      7.4   Ausblick und zukünftige Arbeiten . . . . . . . . . .   .   .   .   .   .   .   .   .   75

Literaturverzeichnis                                                                               77

Eigene Publikationen des Autors                                                                    81

xii
xiii
Inhaltsverzeichnis

             Verzeichnis der verwendeten
          Abkürzungen und Formelzeichen

                           Verwendete Abkürzungen.

 Abkürzung           Erläuterung
 MRS                 Multi-Robotersystem
 NP                  Nichtdeterministisch polynomielle Zeit)
 TSP                 Traveling-Salesman-Problem
 MDMTSP              Multiple-Depot-Multiple-Travelling-Salesmen-Problem
 PVC                 Polyvinylchlorid (Thermoplastischer Kunststoff)
 PRM                 Probabilistic-Roadmap-Algorithmus
 SA                  Simulated Annealing
 GA                  Genetischer Algorithmus
 HK                  Held-Karp-Algorithmus
 BB                  Branch-and-Bound-Algorithmus
 CCD                 Cyclic Coordiante Descent (Heuristik für Rückwärtstransfor-
                     mation)
 FABRIK              Forward And Backward Reaching Inverse Kinematics (Heuris-
                     tik für Rückwärtstransformation)
 AABB                Axis Aligned Bounding Box
 DH-                 Denavit-Hartenberg-Transformation
 Transformation
 DH-Parameter        Denavit-Hartenberg-Parameter
 TCP                 Tool-Center-Point (Werkzeugarbeitspunkt eines Roboters)
 6DOF-Roboter        Roboter mit sechs Freiheitsgraden
 PTP-Bewegung        Point-To-Point Bewegung
 LIN-Bewegung        Lineare Bewegung
 CIRC-Bewegung       Zirkulare Bewegung
 GUI                 Graphical User Interface (Benutzeroberfläche einer Software)
 FPS                 Frames per seconds (Bildfrequenz)
 OLP                 Offline Programmierung
 API                 Programmierschnittstelle
 R11, R12, R21       Identifizierungskennung für Roboter

xiv
Inhaltsverzeichnis

                  Verwendete Formelzeichen.

Symbol       Erläuterung
tacc         Zeitbereich mit positiver Beschleunigung
tdeacc       Zeitbereich mit negativer Beschleunigung
tconst       Zeitbereich mit konstanter Beschleunigung
vsoll        Soll-Geschwindigkeit
αPVC         Winkeltoleranz in Applikationsrichtung
βPVC         Winkeltoleranz quer zur Applikationsrichtung
dPVC         Applikationsabstand
l            Linearachsposition
s            PVC-Naht
t            Applikationsdüse
e            PVC-Nahtende
d            Applikationsrichtung
c            Redundanzinformation für Roboterkonfiguration
Xmin         Kleinster Wert auf X-Achse von allen Punkten eines 3D-
             Modells
Ymin         Kleinster Wert auf Y-Achse von allen Punkten eines 3D-
             Modells
Zmin         Kleinster Wert auf Z-Achse von allen Punkten eines 3D-
             Modells
Xmax         Größter Wert auf X-Achse von allen Punkten eines 3D-Modells
Ymax         Größter Wert auf Y-Achse von allen Punkten eines 3D-Modells
Zmax         Größter Wert auf Z-Achse von allen Punkten eines 3D-Modells
Xdelta       Maximale Ausdehnung entlang X-Achse (Xmax − Xmin )
Ydelta       Maximale Ausdehnung entlang Y-Achse (Ymax −Ymin )
Zdelta       Maximale Ausdehnung entlang Z-Achse (Zmax − Zmin )
xO           Objekt mit der Identifizierungsnummer x
PZentrum     Mittelpunkt eines kugelförmigen Hüllkörpers
PClipping    Nähtester Punkt auf der Oberfläche eines AABB zu einem
             außerhalb liegenden Punkt.
PSur f ace   Punkt auf der Oberfläche eines 3D-Modells
PStart       Startpunkt einer PVC-Naht oder eines Liniensegments von
             einem kapselförmigen Hüllkörper
PEnde        Endpunkt einer PVC-Naht oder eines Liniensegments von ei-
             nem kapselförmigen Hüllkörper
PMitte       Mittelpunkt einer PVC-Naht
τ            Parameter ∈ R, um Lage eines Projektionspunkts bzgl. eines
             Liniensegments zu beschreiben

                                                                      xv
Inhaltsverzeichnis

                          Verwendete Formelzeichen.

 Symbol              Erläuterung
 λ                   Parameter ∈ [0, 1] für Kapsel-Box-Kollisionstest
 deukl               Euklidischer Abstand zwischen zwei Punkten
 dmanhatten          Manhattan-Distanz zwischen zwei Punkten
 r                   Radius eines kugelförmigen oder kapselförmigen Hüllkörpers
 V , A, B            Teilmenge an Knoten für TSP
 Ω                   Gesamtmenge der Knoten für TSP
 g(v,V )             Minimaler Teilpfad einer Rundreise vom Startknoten zum Ziel-
                     knoten v über die Knoten in V
 Pmin                Minimaler Pfad vom Start- zum Zielknoten in einem Graphen
  f (x)              Kosten von Startknoten zum Zielknoten über Knoten x
 g(x)                Kosten um vom Startknoten zum Knoten x
 h(x)                Kosten vom Knoten x zum Zielknoten
 Vo                  Offene Liste an Knoten für A*-Algorithmus
 Vc                  Geschlossene Liste an Knoten für A*-Algorithmus
 N(x)                Benachbarte Knoten von x in einem Graphen
 S                   Zustand in Markov-Kette
 E(S)                Energielevel von S
 t                   Einflussparameter bzw. Temperatur für die Akzeptanzwahr-
                     scheinlichkeit schlechterer Lösungen bei SA
 P(t, S, S∗ )        Akzeptanzwahrscheinlichkeit, um vom aktuellen Zustand S
                     zum neuen Zustand S∗ zu springen bei Temperatur t
 A(t)                Abkühlplan, nach der die aktuelle Temperatur t reduziert wer-
                     den soll
 α                   Konstanter Abkühlparameter ∈]0, 1[
 M                   Anzahl der inneren Schleifen bei SA
 T                   Terminierungstemperatur bei SA
 Sbest               Bester Zustand in Markov-Kette für ein Optimierungsproblem
 Kx                  Lokales Koordinatensystem vom Objekt x
 θx , dx , ax , αx   Denavit-Hartenberg-Parameter, um Lage vom Gelenk x zum
                     Gelenk x − 1 zu beschreiben
 R(X, α)             Rotation um die X-Achse mit dem Winkel α
 T (X, d)            Translation entlang der X-Achse um den Abstand d
 T01                 Transformation vom Koordinatensystem K0 zu K1
 q                   Konfiguration eines Roboters beschrieben durch die Gelenk-
                     winkel
 u                   Lagevektor, um Position und Orientierung im 3D-Raum durch
                     euklidische Koordinaten zu beschreiben

xvi
Inhaltsverzeichnis

                    Verwendete Formelzeichen.

Symbol         Erläuterung
F(q)           Abbildungsfunktion von Gelenk- in euklidische Koordinaten
J              Jacobi-Matrix (Lineare Beschreibung einer Vektorfunktion)
XT             Transponierte der Matrix X
X1             Inverse der Matrix X
X†             Pseudo-Inverse der Matrix X (X † = (X T X)−1 X T )
C              Menge aller Roboterkonfigurationen (Roboterarbeitsraum)
C f ree        Menge aller kollisionsfreien Roboterkonfigurationen
Cobs           Menge aller Roboterkonfigurationen mit Kollision
TFPS           Dauer eines Schleifendurchgangs in Ereignisschleife
P1             Startpunkt einer Roboterbewegung
P2             Endpunkt einer Roboterbewegung
PAUX           Hilfspunkt einer Roboterbewegung
PSing          Punkt einer Roboterbewegung die zu einer Singularität führt
u1 , u2 , u3   Zufällige Zahlen ∈ [0, 1]
j              Rotation beschrieben als Quaternion
N path         Anzahl der Knoten im Pfad zwischen Start- und Zielknoten in
               einem Graphen
nx             Knoten mit der Identifizierungsnummer x
f              Zielfunktion des Optimierungsproblems
w              Gewichtung ≥ 1 für Zielfunktion
r              Roboter
R              Menge aller Roboter in einer Zelle
Tr             Bearbeitungszeit von Roboter r
wr             Parameter für Beanspruchungsgrad von Roboter r
P(r)           Wahrscheinlichkeit, dass Roboter r eine PVC-Naht abgibt
P̄(r)          Wahrscheinlichkeit, dass Roboter r eine PVC-Naht aufnimmt
g              Anzahl der Generation ohne Verbesserung der besten Lösung
               in der Population bei GA
G              Maximale Anzahl an Generationen damit GA terminiert
βmut           Skalierungsfaktor für Mutationen bei GA

                                                                       xvii
Einleitung
                                                                           1
Die industrielle Produktion durchläuft seit mehreren Jahren einen großen Wandel, der
auch als vierte industrielle Revolution bezeichnet wird. Ein wesentlicher Bestandteil
dieses Wandels ist die vollständige Durchdringung von Prozessen mit Hilfe virtueller
Methoden. Gleichzeitig besteht aufgrund der zunehmenden Komplexität und abneh-
menden Losgrößen in der Produktion ein immer größer werdender Bedarf an Software
für Planung, Automatisierung und Optimierung. Um den steigenden Anforderungen
gerecht zu werden, müssen neue Methoden und Technologien entwickelt werden, die
eine optimierte Planung und Steuerung unter verschiedenen Zielgrößen ermöglichen,
wie zum Beispiel der Minimierung von Ressourcen, Verarbeitungszeit und Einrich-
tungskosten. Eine wichtige Rolle für eine effiziente und automatisierte Produktion
stellen dabei Multi-Robotersysteme (MRS) dar, in denen mehrere Roboter zeitgleich
in einer Zelle agieren.

1.1 Kontext
Die in dieser Arbeit vorgestellten Methoden zielen auf Prozesse ab, bei denen Roboter
einem vordefinierten Pfad folgen müssen, um einen Fertigungsschritt auszuführen.
Dahingegen sind die Pfade, um die Fertigungsprozesse miteinander zu verbinden,
beliebig. In Abbildung 1.1 ist ein Prozess mit drei Robotern (1 - 3) und acht Auf-
gaben (a - h) veranschaulicht. Die durchgezogenen Linien entsprechen den vordefi-
nierten Pfaden der Aufgaben und die gestrichelten Linien sind die Pfade, um diese
miteinander zu verbinden. In der Automobilindustrie gibt zahlreiche Roboteranwen-
dungen, die mit dieser Problemformulierung übereinstimmen, wie Laserschweißen,
PVC-Versiegelung, Kleben, Hohlraumkonservierung, Feinwachsen, Lackieren und
Laserscanning/ -vermessen.
   Der theoretische Hintergrund der Arbeit ist die kombinatorische Optimierung. Hier-
in muss aus einer großen, endlichen Menge möglicher Produktionspläne diejenige
Teilmenge gefunden werden, welche die gewünschten Zielfunktionen unter Beibehal-
tung vorgegebener Nebenbedingungen optimiert. Für die Prozessoptimierung ist es
wichtig, die Aufgaben effizient auf die verfügbaren Roboter zu verteilen. Gleichzeitig
muss die Bewegungszeit zur Verarbeitung der zugewiesenen Aufgaben minimiert

                                                                                    1
1 Einleitung

       Abbildung 1.1: Veranschaulichung des Optimierungsproblems in 2D.

werden. Dieses Optimierungsproblem gehört in seiner Entscheidungsvariante zur
Komplexitätsklasse NP, falls alle vorkommenden Längen rationale Zahlen sind. Sie
enthaltet Fragestellungen des Schedulings und des Traveling-Salesman-Problems
(TSP). Angesichts des großen Lösungsraums und des hohen Rechenaufwands ist es
nicht möglich, alle Kombinationen durchzuspielen. Stattdessen werden heuristische
Strategien verwendet, um die optimale Lösung in angemessener Zeit zu approximieren.

1.2 Vorgehensweise und Beitrag der Arbeit
Zur Erprobung und Validierung der Optimierungsalgorithmen werden die Methoden
auf die PVC-Versiegelung angewendet, einem wichtigen Prozess für die Fahrzeugab-
dichtung in der Automobilindustrie. Der verwendete Bewegungsplanungsalgorithmus
basiert auf dem Probabilistic-Roadmap-Algorithmus (PRM) und wird an das vorlie-
gende Problem angepasst. Hierfür wird eine neue Abtaststrategie verwendet, um die
Roboterarbeitsräume durch Graphen zu diskretisieren. In den Graphen sind verschie-
dene Knotentypen definiert, wodurch wichtige Positionen, wie der Roboterstartpunkt
oder die Endpunkte der Aufgaben, besonders gehandhabt werden können. Weiterhin
werden die Sucheigenschaften des Algorithmus in engen und komplexen Umgebun-
gen durch das Random-Walk-Verfahren verbessert, sodass sich die Fehlerrate bei der
Pfadfindung deutlich reduzieren lässt. Mit Hilfe einer Metrik werden die vielverspre-
chendsten Verbindungen zwischen den Knoten ermittelt und in einer Inzidenzliste
abgespeichert, wodurch selbst bei sehr großen Probleminstanzen mit vielen Aufgaben
die Graphen eine überschaubare Größe haben. Um kurze und glatte Bewegungen
sicherzustellen, wird jede Verbindung bei der Erstellung des Graphen zusätzlich durch
Simulated Annealing (SA) weiter optimiert.
   Für die Bewegungsplanung ist eine schnelle und präzise Kollisionserkennung dar-
gelegt. Dazu wird die komplexe Form der Karosserie durch eine in einer Octree-
Datenstruktur organisierten Punktewolke erfasst und in einem zweistufigen Kollisi-

2
1.3 Aufbau der Arbeit

onstest gegen die dynamischen, kapselförmigen Hüllkörper der Roboterarme geprüft.
Kollisionen zwischen den Robotern werden durch disjunkte, zeitlich veränderliche
Arbeitsräume ausgeschlossen.
   Weiterhin wird ein neues Format für die oben genannte Problemformulierung
beschrieben, um die Roboteranwendung auf ein Multiple-Depot-Multiple-Travelling-
Salesmen-Problem (MDMTSP) mit einigen prozessspezifischen Nebenbedingungen
zu abstrahieren. Auf diese Weise kann jede Meta-Heuristik ohne hohen Anpassungs-
aufwand für die Lösungsfindung herangezogen werden. Für die Prozessoptimierung
wird in dieser Arbeit eine neue Implementierung des genetischen Algorithmus (GA)
angewendet, die in Kombination mit dem vorliegendem Format effizient eine Popula-
tion mit gültigen Lösungen generiert.
   Zur Verbesserung der Konvergenzeigenschaft werden verschiedene Methoden erar-
beitet. Zum einen wird über eine aktiv gesteuerte Mutationsrate das Explorations- und
Exlpoitationsverhalten ausgeglichen. Zum anderen wird ein Reactive-Search-Ansatz
verfolgt, um Prozesseinstellungen zu bevorzugen, die sich bei der Grapherstellung be-
währt haben. Zusätzlich zur Heuristik wird ein exakter Solver basierend auf dem Held-
Karp-Algorithmus (HK) in Kombination mit einem Branch-and-Bound-Algorithmus
(BB) verwendet, um die Lösungsqualität des genetischen Algorithmus anhand eines
Benchmark-Problems zu bewerten.
   Der Lastausgleich zwischen den verschiedenen Robotern erfolgt im Mutationsschritt
des GA. Hierbei werden die Aufgaben in Abhängigkeit ihrer Position relativ zu den Ro-
boterarbeitsräumen geclustert. Dadurch werden nur Aufgaben in den Grenzbereichen
der Roboterarbeitsräume neu zugewiesen. Deshalb sind unvorteilhafte Aufteilungen
von vornherein ausgeschlossen, bei denen sich die Roboter gegenseitig blockieren.
   Die Algorithmen wurden auf ein reales Geschäftsproblem angewendet. Es ist mög-
lich, kollisionsfreie und abfahrbare Roboterprogramme automatisch zu generieren, die
den nicht wertschöpfenden Anteil der Prozesszeit um bis zu 17% reduzieren können.

1.3 Aufbau der Arbeit
Im anschließenden Kapitel 2 wird die Aufgabenstellung und der Anwendungsfall
vorgestellt. Die Ergebnisse der Literaturrecherche befinden sich in Kapitel 3. Dazu
wird der Stand der Technik bezüglich der Kollisionserkennung, heuristischer sowie
exakter Optimierungsalgorithmen und der Roboterbewegungsplanung eingeführt. Im
Kapitel 4 wird der Aufbau des entwickelten Optimierungsframework beschrieben.
Die im Framework implementierten Methoden für eine schnelle Kollisionserkennung,
Bewegungsplanung, Prozessablaufoptimierung und Load Balancing sind in Kapi-
tel 5 präsentiert. Die Optimierungsalgorithmen werden durch Benchmark-Probleme
und praktische Anwendungen evaluiert. Die Ergebnisse dieser Evaluation werden
in Kapitel 6 diskutiert. Zuletzt werden in Kapitel 7 die wichtigsten Punkte nochmal
zusammengefasst und ein Ausblick für zukünftige Arbeiten gegeben.

                                                                                   3
Aufgabenstellung und Zielsetzung
                                                                        2
Das Ziel der Arbeit ist es, mit Hilfe von Heuristiken eine Softwareanwendung zu
entwickeln, um einerseits den manuellen Aufwand für die Roboterprogrammerstellung
zu minimieren und anderseits die Effizienz von Multi-Robotersystemen zu maximie-
ren. Dafür ist es notwendig, die wichtigsten prozesstechnischen Anforderungen als
Nebenbedingungen in die Algorithmen einzubinden. Das Optimierungsproblem wird
als Minimax-Problem modelliert, bei der die Prozesszeit des langsamsten Roboters
entscheidend ist. Allerdings werden die Prozesszeiten der restlichen Roboter mit
geringerer Gewichtung in der Zielfunktion mitberücksichtigt.

2.1 Anwendungsfall: PVC-Versiegelung
Die PVC-Versiegelung ist ein wichtiger Prozessschritt in der Lackiererei, um die
Korrosionsbeständigkeit und Dichtheit der Karosserie sicherzustellen. PVC steht für
Polyvinylchlorid und ist ein thermoplastischer Kunststoff mit einer Dichte ähnlich
zur Zahnpasta. In Abbildung 2.1 ist eine Roboterzelle für die PVC-Versiegelung im
Unterbodenbereich dargestellt.

       Abbildung 2.1: Fahrzeugdichtungsprozess für den Unterbodenschutz.

                                                                                 5
2 Aufgabenstellung und Zielsetzung

  In diesem Prozessschritt werden die Zwischenräume von gefügten Blechen abge-
dichtet und so das Eindringen von Wasser und korrosiven Medien verhindert. Zu
diesem Zweck tragen mehrere Industrieroboter PVC-Nähte auf zahlreiche Bereiche
der Karosserie auf. In Abbildung 2.2 ist beispielsweise eine Versiegelung einer Bör-
derlfalzverbindung zweier Blechteile veranschaulicht.

            Klebstoff                 PVC-Naht             Gefalzte Blechteile

    Abbildung 2.2: Veranschaulichung PVC-Versiegelung Bördelfalzverbindung.

   Neben der Nahtapplikation kann das PVC-Material auch flächig auf die Karosserie
aufgesprüht werden, um den Scheuer-, Abriebschutz sowie die Geräuschdämmung zu
verbessern.
   Da es unterschiedliche Arten von PVC-Nähten gibt und um eine bessere Zugäng-
lichkeit zu gewährleisten, sind an den Robotern Abdichtwerkzeuge mit mehreren
Düsen angebracht. In Abbildung 2.3 ist ein Werkzeug mit vier Applikationsdüsen
dargestellt, die unterschiedliche Austrittswinkel von 0◦ , 45◦ , 90◦ und −90◦ aufweisen.

                                         0°
                              45°
                                                      -90°
                                       4D-Tool
                            90°

Abbildung 2.3: Illustration eines Abdichtwerkzeugs mit vier verschiedenen Düsen.

  Nach dem Aufbringen der PVC-Nähte wird die Karosserie durch einen Ofen beför-
dert, in dem das Abdichtmaterial aushärtet. Am Ende werden die Nähte überlackiert,
sodass sie für den Kunden kaum wahrnehmbar sind.

6
2.2 Prozesstechnische Anforderungen und Toleranzen

2.2 Prozesstechnische Anforderungen und Toleranzen
Bei der PVC-Versiegelung gibt es einige prozesstechnische Anforderungen, die bei der
Ablaufoptimierung und Roboterprogrammerstellung in Form von Nebenbedingungen
mitberücksichtigt werden müssen. Eine wichtige Anforderung ist es, Lufteinschlüsse
aufgrund von Abschattungen bei der Applikation zu vermeiden (siehe Abbildung 2.4).

       Applikationsdüse                                               Applikationsdüse
                                                                     PVC
                                                    Lufteinschluss
       PVC                           Vorschub

                                       Bleche                                  Vorschub

       Lufteinschluss     Klebstoff
             Bei Blechüberlappung gegen                      Bei Nahtkreuzung
         à   Blechkante applizieren.                     à senkrecht applizieren.
                          (a)                                        (b)

Abbildung 2.4: Vermeidung von Lufteinschlüssen aufgrund von Abschattungen:
                a) Abschattungseffekt bei Blechüberlappung.
                b) Abschattungseffekt bei Nahtkreuzung.

   Eine Abschattung entsteht, wenn eine Naht auf einer Fläche mit einer Sprungstelle
appliziert wird. Durch das fehlende Material sind die Dichtwirkung und der Korro-
sionsschutz nicht sichergestellt. Zudem kann sich die eingeschlossene Luft während
des Trockenvorgangs im Ofen ausdehnen, wodurch es zu Löchern oder Blasen kommt.
Ein Lufteinschluss kann bei Blechüberlappungen (siehe Abbildung 2.4a) oder bei
Nahtkreuzungen (siehe Abbildung 2.4b) entstehen. Um diesem entgegenzuwirken,
muss bei ersterem direkt gegen die Blechkante und bei letzterem senkrecht auf die
untere Naht appliziert werden.
   In Abbildung 2.5 ist die Dichtheit ebenfalls nicht gewährleistet, weil der zur über-
brückende Blechspalt bzw. Höhenunterschied zu groß ist. Deshalb fallen die Nähte in
sich ein und reißen dabei auf. Ein Aufreißen der Naht lässt sich verhindern, indem
breitere PVC-Nähte oder mehrere Bahnen nebeneinander appliziert werden.

                                                                                         7
2 Aufgabenstellung und Zielsetzung

       Düse                    Vorschub              Düse                   Vorschub

    PVC                                                                     PVC
                                                  Schraubkopf
                                                                               Blech

    Blechspalt                    Bleche

                 Bei großen Blechspalten und hohen Schraubköpfen breitere
            �    bzw. mehrere PVC-Nähte nebeneinander applizieren.

Abbildung 2.5: Vermeidung des Aufreißens der Naht aufgrund zu großen Hohlraums.

   Für die Optimierung der Applikationssequenz müssen ebenfalls Nebenbedingun-
gen eingehalten werden (siehe Abbildung 2.6). Werden, wie in Abbildung 2.6a ver-
anschaulicht, mehrere Nähte mit Überlappung nebeneinander gelegt, ist das Dach-
schindelprinzip anzuwenden, um das Ablaufen des Wassers zu erleichtern und somit
Wasseransammlung zu vermeiden. Darüber hinaus ergeben sich Vorrangsbeziehungen
aus der Latenzzeit der Dosiereinheit, weil nach der Applikation einer PVC-Naht die
Anlage eine gewisse Zeit benötigt, um den Druck für die nächste Naht einzustellen.
Insbesondere wenn eine kleine auf eine große Naht folgt, ist die Latenzzeit des Dosie-
rers sehr lang (siehe Abbildung 2.6). Deshalb sollte die direkte Abfolge einer solchen
Applikationssequenz vermieden werden.

    Wassertropfen                                                                 PVC
                                                                                   Düse

                                                    Applikationszeit
                                   Anlagendruck

                  PVC                                  Latenzzeit                  Zeit

    àDachschindelprinzip.                à Zeit zum Anpassen des Drucks erforderlich.
                 (a)                                            (b)

Abbildung 2.6: VorrangsBeziehungen bei der Applikationsreihenfolge:
                  a) Berücksichtigung Dachschindelprinzip.
                  b) Berücksichtigung Latenzzeit der Dosiereinheit.

8
2.2 Prozesstechnische Anforderungen und Toleranzen

  Für eine zusammenhängende und optisch wertige PVC-Naht ist es entscheidend,
dass Nähte mit einer konstanten Geschwindigkeit appliziert werden. Daher sind ab-
rupte Richtungswechsel in den Roboterbewegungen zu vermeiden, weil diese zu
Geschwindigkeitseinbrüchen führen. Dies wird in Abbildung 2.7 dargestellt. Bei
Blechzuschnitten mit kleinen Radien kann der Roboter die Kontur nicht ohne Ge-
schwindigkeitsverlust abfahren (siehe Abbildung 2.7a). In solchen Fällen müssen
mehrere gerade PVC-Nähte nebeneinander gelegt werden. Da weiterhin ein Roboter
Bahnverläufe mit spitzen bzw. rechten Winkeln nicht ohne Geschwindigkeitsverlust
realisieren kann, müssen Eckpunkte überschliffen und abgerundet werden, um eine
konstante Applikationsgeschwindigkeit sicherzustellen (siehe Abbildung 2.7b).

                                                                              PVC

                                    Düse

                                    Bleche                                    Düse

                                    PVC               Blech

      Bei kleinen Radien mehrere PVC-            Bei nicht stumpfen Winkel
 à    Bahnen nebeneinander applizieren.      à   Verlauf der PVC-Bahn abrunden.
                    (a)                                       (b)

Abbildung 2.7: Anstreben konstanten Geschwindigkeitsverlauf:
                a) Bei Bahnverläufen mit kleinen Radien.
                b) Bei Bahnverläufen mit nicht stumpfen Winkeln.

   Der gewünschte Geschwindigkeitsverlauf und die dafür erforderlichen Beschleunigungs-
und Ruckwerte sind auch maßgeblich für die Lebensdauer der Roboter. In Abbil-
dung 2.8 ist dieser Zusammenhang verdeutlicht. In Abbildung 2.8a soll der Roboter
eine Bewegung mit der Geschwindigkeit vsoll ausführen. Folglich beschleunigt er im
Zeitbereich tacc . Allerdings muss der Roboter abbremsen bevor vsoll erreicht ist, damit
er rechtzeitig nach der Dauer tdeacc abbremsen kann. Dies führt zu einem dreieckigen
Geschwindigkeitsverlauf mit einem sehr hohem Ruck zwischen der Beschleunigungs-
und Abbremsphase. Dadurch ist die Beanspruchung des Roboters sehr hoch. Mögliche
Ursachen für einen dreieckigen Geschwindigkeitsverlauf sind, dass die zu appli-
zierende Naht sehr kurz oder die Applikationsgeschwindigkeit zu hoch eingestellt
ist. Demgegenüber ist in Abbildung 2.8b eine Bewegung mit einem trapezförmigen
Geschwindigkeitsverlauf dargestellt. Hier erreicht der Roboter die Geschwindigkeit

                                                                                  9
2 Aufgabenstellung und Zielsetzung

vsoll , wodurch für die Zeitdauer tconst eine konstante Beschleunigung vorherrscht,
bevor der Roboter abbremsen muss. Deshalb gibt es keine direkte Abfolge zwischen
positiver und negativer Beschleunigung. Dementsprechend sind der Ruck und die
Beanspruchung für den Roboter geringer.

     Geschwindigkeit                     Geschwindigkeit

                               Zeit                                           Zeit

                   (a)                                      (b)

Abbildung 2.8: Anstreben Geschwindigkeitsverlauf mit geringem Ruck:
               a) Geschwindigkeitsverlauf mit hohem Ruck.
               b) Geschwindigkeitsverlauf mit niedrigem Ruck.

   Neben den Anforderungen gibt es auch Toleranzen, welche ausgenutzt werden
können, um die Zugänglichkeit bei der Roboterprogrammerstellung zu erleichtern. In
Abbildung 2.9 sind die Toleranzen für Applikationswinkel und -abstand veranschau-
licht. In dem entwickeltem Framework wird bei der Applikation ein Abstand dPVC
zwischen ca. 30 mm und 45 mm angestrebt. Der Applikationswinkel entlang der Vor-
schubsrichtung αPVC sollte zwischen ca. −5◦ und 30◦ und quer zur Vorschubsrichtung
βPVC zwischen ca. −15◦ und 15◦ betragen. Allerdings ist hinsichtlich der optischen
Eigenschaften der Nähte zu beachten, dass eine stechende Applikation (αPVC < 0) zu
einer schuppigen Oberfläche führt. Weiterhin erhöht sich die Nahtbreite mit zuneh-
mendem βPVC - und dPVC -Wert. Deshalb sollten diese während dem Auftragen einer
Naht nicht stark variieren, um eine gleichmäßige Nahtbreite zu erzielen.

Abbildung 2.9: Veranschaulichung Toleranzen für Applikationswinkel und -abstand.

10
2.3 Optimierungsproblem und Zielfunktion

2.3 Optimierungsproblem und Zielfunktion
Das zugrunde liegende Problem ist ein Multiple-Depot-Multiple-Travelling-Salesmen-
Problem (MDMTSP). Alle verfügbaren Pfade der Roboter werden nach Abschnitt 5.2
berechnet. Dazu wird der Arbeitsraum der Roboter abgetastet und ein Bewegungspla-
nungsgraph erstellt. Mit Hilfe des Graphen lassen sich dann die Roboterbewegungen
zwischen den Endpunkten verschiedener Nähte berechnen. Die für die Rundtour
erforderlichen Bewegungsinformationen werden in einem Tabellenformat gemäß
Tabelle 2.1 abgespeichert. Jede Zeile in der Tabelle zeigt eine unterschiedliche Ro-
boterbewegung. Dabei enthalten die erste und zweite Spalte die zu verbindenden
Knoten. Die Knoten sind Task-Knoten und entsprechen den Nahtenden (siehe Abbil-
dung 5.5). Die dritte Spalte gibt die dazugehörige Bewegungszeit an. In der letzten
Spalte sind weitere Informationen zur Überprüfung der Kollisionsfreiheit zwischen
den verschiedenen Robotern vorhanden (siehe Abschnitt 5.1.2).

Tabelle 2.1: Bewegungstabelle, in der für alle vorhandenen Bewegungen eines Robo-
             ters die zu verbindenden Knoten, die Bewegungsdauer sowie zusätzliche
             Informationen zur Kollisionsvermeidung aufgelistet sind.

 Startknoten           Zielknoten            Bewegungsdauer       Kollisions-
 [l s t e d c]         [l s t e d c]         in s                 informationen
 ...                   ...                   ...                  ...

   Auf diese Weise ist es möglich, das Optimierungsproblem abstrakt zu formulieren
und die gesamte Roboterbewegungsplanung inklusive Kollisionserkennung durch
direktes Bereitstellen der vollständigen Bewegungstabelle herauszunehmen. Folglich
ist es einfacher, einen beliebigen Solver auf dieses Problem anzuwenden. Beispiels-
weise wurden mit dieser Problembeschreibung quanteninspirierte Technologien wie
Digital Annealing [Gei] und Quantum Annealing [MMW19; MMM+ 20] anhand des
PVC-Versiegelungsprozesses untersucht.
   Hier ist jeder Knoten durch sechs Variablen eindeutig definiert [l s t e d c]. l gibt
die Position der Linearachse an, s ist der Nahtindex und t ist der Werkzeugindex. Die
vierte Variable e kennzeichnet das Nahtende. Der Anfangspunkt einer Naht hat stets
e = 0 und der Endpunkt entsprechend e = 1. d gibt die Richtung an, in der eine Naht
bearbeitet werden muss. Der Wert 0 bedeutet, dass die Naht in normaler Richtung
appliziert wird, das heißt vom Anfangspunkt bis zum Endpunkt. Für den Fall d = 1
muss die Naht in entgegengesetzter Richtung appliziert werden, also vom Endpunkt
zum Startpunkt. Da ein Standard-Industrieroboter mit sechs Achsen (6DOF-Roboter)
mehrere Möglichkeiten besitzt, um eine Lage im Raum zu erreichen, ist die Variable c
für die Festlegung der Redundanzinformation erforderlich.

                                                                                    11
2 Aufgabenstellung und Zielsetzung

  Das übergeordnete Ziel besteht darin, die beste Arbeitsverteilung und die mini-
male Rundreise für jeden Roboter mit den in Tabelle 2.1 vorhandenen Bewegungen
zu ermitteln, beginnend und endend an einer Ausgangsposition. Dabei müssen alle
zugewiesenen Nähte verarbeitet werden und es dürfen keine Kollisionen zwischen den
Robotern auftreten. Die Zielfunktion f lautet (2.1).

                             f = w · max {Tr } + ∑ Tr                       (2.1)
                                     r∈R       r∈R
  Wobei w eine Gewichtungsvariable > 1, Tr die Gesamtdauer der Rundreise des
Roboters r und R die Menge aller vorhandenen Roboter ist. Aufgrund der Gewichtung
von w ist die Rundreise des zuletzt fertig werdenden Roboters entscheidend. Die
Zeiten der anderen Roboter werden jedoch im zweiten Term durch das Aufsummieren
auch berücksichtigt.

12
Stand der Technik
                                                                              3
Aufgrund der hohen Relevanz sind für die robotergestützte Prozessautomatisierung be-
reits viele Methoden für die Bewegungsplanung und Kollisionserkennung entwickelt
worden. Insbesondere sind die kinematische Modellierung sowie die Vorwärts- und
Rückwärtstransformation von Gelenkarmroboter mit sechs Achsen genau behandelt,
weil sie sehr stark in der Industrie verbreitet sind. Im Bereich der Prozessablaufoptimie-
rung von Roboterprozessen kann ebenfalls auf eine große Auswahl an heuristischen
und exakten Algorithmen zurückgegriffen werden.

3.1 Kollisionserkennung
In der algorithmischen Geometrie stellt die Kollisionserkennung eine grundlegende
Problemstellung dar und ist Bestandteil der meisten physikalischen Simulationen. Ziel
der Kollisionserkennung ist es, das Berühren oder Überlappen von zwei oder mehr
Körpern in 2D- oder 3D-Raum zu identifizieren. Ein einfacher und recheneffizienter
Ansatz besteht darin, die Objekte mit Hüllkörpern zu versehen und diese dann ge-
genseitig auf Überlappungen zu prüfen. In Abbildung 3.1 sind einfache Hüllkörper
dargestellt.
   Dazu zählen boxförmige Hüllkörper (siehe Abbildung 3.1a). Zur weiteren Vereinfa-
chung der Kollisionserkennung kann die Box an den Achsen des Koordinatensystems
ausgerichtet werden. In diesem Fall handelt es sich um eine Axis-Aligned Bounding
Box (AABB). Um eine AABB für einen Objekt zu erzeugen, müssen aus allen Punkten
des Objektmodells die Werte Xmin , Xmax , Ymin , Ymax , Zmin und Zmax ausgewählt werden.
Die min- und max-Werte spannen dabei die Box auf. Beim Verschieben des Objekts
muss zwischen Translation und Rotation unterschieden werden. Für Ersteres ist es
ausreichend, dass die gleiche Translation auf den Hüllkörper angewendet wird. Im
letzteren Fall wird die Box neu mit der aktualisierten Größe aufgebaut, weil die Box
an den Achsen ausgerichtet sein muss und daher nicht rotiert werden darf.

                                                                                      13
3 Stand der Technik

                (a)                             (b)                        (c)

Abbildung 3.1: Einfache Hüllkörper für die Kollisionserkennung:
                a) Boxförmiger Hüllkörper.
                b) Kugelförmiger Hüllkörper.
                c) Kapselförmiger Hüllkörper.

  Mit Hilfe der min- und max-Werte lässt sich auch ein kugelförmiger Hüllkörper
nach Abbildung 3.1b konstruieren, indem zunächst der Mittelpunkt PZentrum nach (3.1)
berechnet wird. Dazu müssen Xdelta = Xmax − Xmin und dementsprechend Ydelta und
Zdelta berechnet werden

                                      Xmin + 0, 5 · Xdelta
                                                          

                        PZentrum =  Ymin + 0, 5 ·Ydelta                      (3.1)
                                      Zmin + 0, 5 · Zdelta
  Für r gilt (3.2). Falls das Objekt sich bewegt, muss für die Aktualisierung der
Kugel lediglich der translatorische Anteil der Transformation auf den Mittelpunkt
angewendet werden.

                           r = max(Xdelta ,Ydelta , Zdelta )/2                   (3.2)
   Um einen kapselförmigen Hüllkörper wie in Abbildung 3.1c zu erstellen, wird
ähnlich zu den box- und kugelförmigen Hüllkörpern die maximale Ausdehnung
bestimmt. Die Rotationsachse der Kapsel bzw. das Kapsel-Liniensegment wird durch
die Achse mit dem größten delta-Wert definiert und in der Mitte der Box positioniert,
die von den min- und max-Werten aufgespannt wird. Der Radius der Kapsel ist
der maximale Abstand zwischen dem Kapsel-Liniensegment und allen Punkten des
Objektmodells. Um die Kapsel eines sich bewegenden Objekts zu aktualisieren, muss
dieselbe Transformation auf die Endpunkte des Liniensegments angewendet werden.
   Der Vorteil von einfachen Hüllkörpern ist, dass schnell Überlappungen zwischen
ihnen getestet werden können. Wenn zwei Objekte 1 O und 2 O mit AABBs ausgestattet
sind, liegt eine Kollision dann vor, wenn eine Überlappung in allen drei Raumrichtun-
gen vorherrscht. Eine Überlappung in X-Richtung liegt vor, falls (3.3) erfüllt ist. Für
eine Überlappung in Y- und Z-Richtung verhält es sich analog. Hierbei wird durch

14
3.1 Kollisionserkennung

den linksseitig hochgestellten Index die Zugehörigkeit der Variable zu Objekt 1 bzw.
2 festgelegt.

     (1 Xmin ≤ 2 Xmax & 1 Xmax ≥ 2 Xmin ) | (2 Xmin ≤ 1 Xmax & 2 Xmax ≥ 1 Xmin )      (3.3)

  Eine Kollision zwischen zwei Kugeln kann identifiziert werden, indem der Abstand
zwischen den Mittelpunkten untersucht wird (3.4).

                           ∥1 PZentrum − 2 PZentrum ∥ ≤ 1 r + 2 r                     (3.4)
  Für den Kugel-Box-Kollisionstest wird der am nächsten zur Kugel liegende Punkt
auf der Oberfläche der Box PClipping nach (3.5) berechnet. Eine Überlappung liegt vor,
wenn ∥PClipping − PZentrum ∥ < r gilt.

                               max(Xmin , min((PZentrum ).x, Xmax ))
                                                                    

                 PClipping =  max(Ymin , min((PZentrum ).y,Ymax ))            (3.5)
                               max(Zmin , min((PZentrum ).z, Zmax ))
  Kollisionstests mit Kapseln können vereinfacht werden, indem die Kapsel durch
mehrere Kugeln substituiert wird. Wobei der Radius r der Kugeln mit dem der Kapsel
identisch ist. Für einen gegebenen Startpunkt PStart und Endpunkt PEnde des Kapsel-
Liniensegments, wird der Mittelpunkt PZentrum der Kugeln durch (3.6) definiert.

                        PZentrum = PStart + λ · (PEnde − PStart )                     (3.6)
   Wobei λ ∈ [0, 1]. Für praktische Anwendungen können die λ -Werte abhängig
von der Länge des Kapsel-Liniensegments gewählt werden. Beispielsweise können
pro Kapsel-Box-Kollisionstest drei Kugel-Box-Kollisionstests mit λ = {0, 0.5, 1}
durchgeführt werden.
   Mit solchen vereinfachten Formen ist es nicht möglich, komplexe Geometrien
ausreichend genau zu erfassen. Eine sehr genaue Kollisionserkennung kann durch
Erstellen von Hüllkörpern aus dem Polygonnetz des Modells (Mesh) selbst erreicht
werden. In den meisten Fällen wird die Oberfläche eines Modells durch Dreiecke
beschrieben, da dies die natürlichste Darstellung ist und die Renderhardware nor-
malerweise mit diesen Grundelementen arbeitet. Für den Kollisionstest zwischen
zwei Meshs präsentiert der Autor in [Möl97] ein recheneffizientes Verfahren zur
Überprüfung von Überschneidungen zweier Dreiecke.
   Punktwolken sind neben Dreiecken auch eine häufig verwendete Methode, um
die Oberfläche von komplexen Objekten zu beschreiben. In [KZ04] wird eine Kolli-
sionserkennung zwischen zwei Punktwolken beschrieben. Die Punkte sind in einer
hierarchischen Struktur als Baumdiagramm organisiert, wobei jeder Knoten eine
ausreichende Menge der Punkte und eine Kugel enthält, die einen Teil der Oberflä-
che bedeckt. Die Baumstruktur wird nach bestimmten Regeln durchquert und eine

                                                                                        15
3 Stand der Technik

Überschneidung wird auf der Blattebene durch Abschätzen des kleinsten Abstands
detektiert.
  Werden die beschriebenen Verfahren zur Kollisionserkennung miteinander vergli-
chen, so ist festzuhalten, dass:
     • die einfachen box-, kugel- und kapselförmigen Hüllkörper rechnerisch effizient
       sind, aber auch ungenau.
     • die Hüllkörper aus dem Mesh sehr genau, aber rechenintensiv sind.
     • der Kollisionstest mit Hüllkörpern aus Punktewolken einen guten Kompromiss
       bezüglich Genauigkeit und Rechenaufwand darstellt.

3.2 Exakte Algorithmen
Exakte Algorithmen sind Algorithmen, die ein Optimierungsproblem optimal lösen.
Da allerdings für NP-schwierige Probleme noch keine effizienten exakten Algorith-
men existieren, steigt die Lösungszeit im schlimmsten Fall exponentiell mit der
Problemgröße an. Es gibt verschiedene Ansätze, um durch intelligentes Absuchen des
Lösungsraums zumindest eine exponentielle Zeitkomplexität mit niedrigem Basiswert
zu erzielen. Dazu zählt dynamische Programmierung [Bel57]. Hier wird das ursprüng-
liche Problem heruntergebrochen. Anschließend werden die Teilprobleme rekursiv
gelöst und zur optimalen Gesamtlösung zusammengefügt.

3.2.1 Held-Karp-Algorithmus
Ein exakter Algorithmus, der den Ansatz der dynamischen Programmierung verfolgt,
ist der Held-Karp-Algorithmus (HK). HK wird erstmals in [Bel62] beschrieben. Für
ein symmetrisches TSP mit Knotenpunkten ∈ Ω (siehe Abbildung 3.2) liefert HK mit
der Zeitkomplexität O(2|Ω | |Ω |2 ) die optimale Lösung. Diese Zeitkomplexität ist zwar
viel besser als die Brute-Force-Methode (O( |Ω −1|!
                                                  2 )), aber immer noch exponentiell.

                                                        2
                               4
                                         1

                                               3

                Abbildung 3.2: TSP mit vier Knoten Ω = {1, 2, 3, 4}.

16
3.2 Exakte Algorithmen

  Da jeder Teilpfad eines minimalen Pfades ebenfalls minimal ist, besteht die Kernidee
des HK darin, zunächst die Teilpfade zu lösen. Indem mit den kleinsten Teilpfaden
begonnen wird, lassen sich vorherige Lösungen bei der Bearbeitung der größeren
Teilpfade wiederverwenden. Jedes Teilproblem ist definiert als g(v ∈ Ω ,V ⊂ Ω ),
wobei 1 der Startknoten und v der Zielknoten des Teilpfades ist. V ist die Menge der
Knoten, die dazwischen besucht werden müssen. Der genaue Ablauf von HK ist in
Algorithmus 1 beschrieben.

 Algorithmus 1: Pseudocode für Held-Karp-Algorithmus.
    input :Menge der Knoten Ω , Distanzmatrix C, Startknoten = 1
    output :Minimaler Pfad Pmin
       // Initialisierung
   1   for k ∈ Ω do
   2       g(k, {}) = C1,k
   3   end
       // Lösen der Teilpfade
   4   for n = 1 to ∥Ω − 1∥ do
   5       foreach V ⊆ Ω do
   6           if ∥V ∥ = n then
   7               for k ∈ V do
   8                   g(k,V ) = min∀s∈V,s̸=k {g(s,V \{s}) +Cs,k }
   9               end
  10           end
  11       end
  12   end
       // Lösen des gesamten Pfads
  13   Pmin = mink̸=1 {g(k, Ω \{1}) +Ck,1 }

   Zunächst werden die Teilpfade mit V = {} entsprechend der Distanzmatrix festge-
legt. Dies sind die direkten Verbindungen vom Startknoten zu den anderen Knoten-
punkten in Ω . Hierbei gibt Cx,y die Distanz vom Knoten x zu y wieder. In den nächsten
Schleifen werden die minimalen Teilpfade in aufsteigender Reihenfolge der Pfadlänge
berechnet. Mit Hilfe dieser Ergebnisse wird schließlich die minimale Rundtour für
den gesamten Pfad bestimmt. Die Anzahl der Teilpfade, die dabei untersucht werden
müssen, ist in (3.7) gegeben.
                 ∥Ω −2∥ 
                             ∥Ω − 1∥
                                                         
                   ∑                  · k · (∥Ω ∥ − k − 1) + (∥Ω ∥ − 1)         (3.7)
                   k=1          k
  Im ersten Term ist die Anzahl der zu untersuchenden Teilpfade für 1 ≤ ∥V ∥ ≤
∥Ω − 2∥ durch die Summenformel gegeben. Dabei wird der Fall V = {} übersprungen,

                                                                                   17
3 Stand der Technik

weil die dazugehörigen Teilpfade direkt aus der Distanzmatrix zu entnehmen sind.
Der Binomialkoeffizient gibt die Kombinationsmöglichkeiten für V an. Für ∥V ∥ = k
gibt es k potenzielle Knotenpunkte, die vor v in der Rundtour sein können. Dies wird
durch das zweite Produkt in der Summenformel berücksichtigt. Das dritte Produkt
gibt die Anzahl der Möglichkeiten für v an. Da v ∈ Ω \V und nicht der Startknoten
sein darf, gibt es somit (∥Ω ∥ − k − 1) Möglichkeiten für v. Der zweite Term gibt die
Anzahl der Kombinationen zur Minimierung des gesamten Pfades wieder. Dafür muss
der beste Knoten in Ω ermittelt werden, der wieder mit dem Startknoten verbunden
werden soll, sodass sich die Rundtour schließt. Für einen vorgegebenen Startknoten
gibt es hierfür insgesamt (∥Ω ∥ − 1) Möglichkeiten. Für das TSP aus Abbildung 3.2
müssen somit 15 Teilpfade berechnet werden. Alle Teilpfade, die für die Minimierung
der Rundtour benötigt werden, sind in Tabelle 3.1 aufgelistet.

      Tabelle 3.1: Teilpfade für das TSP aus Abbildung 3.2 und Startknoten 1.
 Mächtigkeit V         Teilpfad                         Beschreibung
                       g(2, {})                         Von 1 nach 2
 0                     g(3, {})                         Von 1 nach 3
                       g(4, {})                         Von 1 nach 4
                       g(3, {2})                        Von 1 nach 3 über 2
                       g(4, {2})                        Von 1 nach 4 über 2
                       g(2, {3})                        Von 1 nach 2 über 3
 1
                       g(4, {3})                        Von 1 nach 4 über 3
                       g(2, {4})                        Von 1 nach 2 über 4
                       g(3, {4})                        Von 1 nach 3 über 4
                       g(1, {3, 4})                     Von 1 nach 2 über 3 und 4
 2                     g(3, {2, 4})                     Von 1 nach 3 über 2 und 4
                       g(4, {2, 3})                     Von 1 nach 4 über 2 und 3
 Gesamte Rundtour      g(1, {2, 3, 4})                  Von 1 nach 1 über 2, 3 und 4

3.2.2 A*-Algorithmus
Der A*-Algoirhtmus ist ein vollständiges und optimales Suchverfahren, um den
kürzesten Pfad zwischen zwei Knoten in einem Graphen zu finden und wird erstmals
in [HNR68] eingeführt. Wichtig ist hierbei, dass alle Kanten des Graphen eine positive
Gewichtung haben. Im Gegensatz zu uninformierten Suchalgorithmen wird beim
A*-Algorithmus eine Heuristik zum Abschätzen der Distanzen verwendet. Mit Hilfe
der heuristischen Metrik werden vielversprechende Knoten als erstes untersucht,
wodurch sich die Rechenzeit verkürzt. Die Schätzfunktion, um die Reihenfolge der zu
untersuchenden Knoten festzulegen, ist in (3.8) gegeben.

                                  f (x) = g(x) + h(x)                           (3.8)

18
3.2 Exakte Algorithmen

   Dabei repräsentiert f (x) die Kosten um vom Startknoten zum Zielknoten unter
Verwendung des Knoten x zu gelangen, g(x) sind die bekannten Kosten zwischen dem
Startknoten und x und h(x) die geschätzten Kosten zwischen x und dem Zielknoten. Für
h(x) muss eine konservative Abschätzung verwendet werden, damit die Kosten nicht
überschätzt werden. Zum Beispiel können bei geografischen Wegfindungsproblemen
(siehe Abbildung 3.3) für h(x) der euklidische Abstand oder die Manhattan-Distanz
zwischen x und dem Zielknoten ausgewählt werden. Für die Manhattan-Distanz
muss der Betrag der Differenzen zwischen den Knoten in den allen Dimensionen
aufsummiert werden. Im zweidimensionalen beträgt die Manhattan-Distanz dmanhattan
zwischen zwei Knoten a und b somit dmanhattan = |ax − bx | + |ay − by |.

                    Startknoten                        Freie Felder

                    Nachbarschaft
                                                       Pfad
                    Startknoten
                                                        Gesperrte Felder
                    Diskretisierung
                    Arbeitsraum                        Hindernis
                                                       Zielknoten

 Abbildung 3.3: Veranschaulichung A*-Algorithmus für 2D-Wegfindungsproblem.

   Um einen Pfad zwischen dem Start- und Zielknoten zu finden, wird der Arbeitsraum
durch ein Rastermuster diskretisiert. Dabei sind Felder gesperrt, die durch Hinder-
nisse eingenommen werden. Diese sind grau schraffiert. In Abbildung 3.3 sind die
benachbarten Felder des Startknotens durch eine rote Schraffur gekennzeichnet. Die
Felder, die beim minimalen Pfad durchquert werden, sind durch mit Linien verbundene
schwarze Kreise verdeutlicht. Der Ablauf des A*-Algorithmus ist in Algorithmus 2
beschrieben. Für den A*-Algorithmus wird die offene Liste Vo angelegt. Hierin sind
die Knoten enthalten, die als nächstes näher untersucht werden sollen. Dabei sind die
Knoten in aufsteigender Reihenfolge ihres f -Wertes sortiert.
   Weiterhin wird eine geschlossene Liste Vc erstellt. Diese wird einerseits benötigt,
um bereits untersuchte Knoten nicht mehrfach zu betrachten, wodurch Zyklen in der
Rundtour verhindert werden. Andererseits wird mit Hilfe von Vc der minimale Pfad
Pmin konstruiert. Dazu ist für jeden Knoten in Vc der Vorgängerknoten abgespeichert.
Zu Beginn des Algorithmus ist in Vo nur der Startknoten s enthalten. Solange Vo nicht
leer ist, wird in einer Schleife der erste Knoten in Vo als aktueller Knoten x ausgewählt.
Falls x der Zielknoten z ist, terminiert der Algorithmus, weil der kürzeste Pfad Pmin
zwischen s und z gefunden ist. Pmin kann entsprechend Vc und den Vorgängerinforma-
tionen konstruiert und zurückgegeben werden. Andernfalls werden die Nachbarknoten
n ∈ N(x) von x in Vo näher untersucht, falls sie noch nicht in Vc enthalten sind. Ist
n ein neuer Knoten und nicht in Vo , so muss sein f -Wert nach (3.8) ausgerechnet
und in Vo eingefügt werden. Dabei kommt eine heuristische Metrik d(x1 , x2 ) zum
Einsatz, die die Distanz zwischen zwei Knoten x1 und x2 abschätzt. Falls n bereits ein

                                                                                      19
Sie können auch lesen