Heuristische Algorithmen zur automatischen Generierung von prozesszeitoptimierten Roboterprogrammen im Bereich von Multi-Robotersystemen ...
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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
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.
“Man merkt nie, was schon getan wurde, man sieht immer nur, was noch zu tun bleibt.” -Marie Curie iii
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
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
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
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
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
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