Entwicklung einer Pick-and-Place Anwendung mit dem Delta-Roboter Omron Adept Quattro S650

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Abbildung 1: Montagebereich Delta-Roboter

Autor: Henning Lütkemeier
Betreuer: Prof. Dr. Mirek Göbel

Einleitung und Aufgabenstellung

Die Bachelorarbeit mit dem Titel "Entwicklung einer für Messe-Demonstrationen geeigneten automatisierten Pick-and-Place Anwendung und Umsetzung auf einem Delta-Roboter Omron Adept Quattro S650" wurde im Rahmen des Studiengangs Mechatronik erstellt. Ziel der Arbeit ist es, den Delta-Roboter Omron Adept Quattro S650 für eine kamerabasierte Pick-and-Place Anwendung einzurichten. Die Umsetzung der Anwendung soll nicht nur die technischen Möglichkeiten des Delta-Roboters demonstrieren, sondern auch als anschauliches Beispiel industrieller Robotik für Besucher von Projektmessen dienen.
Der Roboter ist bereits aufgebaut und wird als Bestandteil einer Montagefließbandanlage eingesetzt. Die zu bearbeitenden Aufgaben sind zum einen die Entwicklung einer Pick-and-Place Anwendung die für Demonstrationszwecke auf Messen geeignet ist. Der Roboter soll die zu handhabenden Objekte kamerabasiert lokalisieren. Hierzu muss die bereits vorhandene Kamera neu ausgerichtet und erstmals für die Objekterkennung implementiert werden. Für die Sortierung der Objekte muss zudem ein Montagebereich mit einem Sortiersystem eingerichtet werden.
Aufgrund von ungünstigen Lichtverhältnissen im Montagebereich des Roboters wird zudem ein Beleuchtungssystem installiert.

Anforderungsdefinition

Das Vorgehen der Entwicklung findet nach dem V-Modell statt. Die folgende Tabelle dient zur Übersicht der Anforderungsdefinitionen an das Projekt.

ID Typ (I=Info, A=Anforderung) Kapitel Inhalt Ersteller
Tabelle 1: Anforderungsdefinition
1 I 1 Komponententest
2 A Die bestehende Verdrahtung der Anlage überprüfen. Lütkemeier
3 A Kommunikation zu Delta-Roboter und PC/SPS herstellen. Lütkemeier
4 A Funktionsprüfung der bestehenden Anlage. Lütkemeier
5 I 2 Anlagenaufbau
6 A Montagebereich des Roboters einrichten -->Tischplatte Lütkemeier
7 A Kameraposition für Montagebereich ausrichten --> neue Halterung Lütkemeier
8 A Ausleuchtung des Montagebereichs verbessern --> Beleuchtungseinrichtung Lütkemeier
9 I 3 Programmierung / Entwicklung
10 A Entwicklung einer automatisierten Pick-and-Place Anwendung --> Bewertungstabelle, Morphologischer Kasten Lütkemeier
11 A Montagebereich mit Robotersoftware Omron ACE konfigurieren Lütkemeier
12 A Pick-and-Place Anwendung mit ACE-Software und SPS/HMI mit Siemens TIA-Portal programmieren Lütkemeier
13 I 4 Dokumentation
14 A Bestehender Verdrahtungsplan anpassen Lütkemeier
15 A Wiki-Artikel erstellen Lütkemeier
16 A Wöchentlicher Tätigkeitsbericht Lütkemeier
17 A Plakat für Labor erstellen Lütkemeier
18 A Schriftliche Arbeit BA Lütkemeier
19 I 5 Systemtest / Abnahmetest
20 A Das System muss Sicher sein. Lütkemeier
21 A Die Anlage muss den Systemtest und Abnahmetest erfüllen. Lütkemeier
22 A Die entwickelte Anwendung muss korrekt ausgeführt werden. Lütkemeier

Funktionaler Systementwurf

Abbildung 2: Funktionaler Systementwurf

In Abbildung 2 ist der Aufbau der verwendeten Schnittstellen im funktionalen Systementwurf dargestellt. Die zentrale Einheit bildet dabei der Omron Adept Smart Controller, der als Verbindungsschnittstelle sämtlicher Ein- und Ausgabebaugruppen (E/A)-Baugruppen dient und die Steuerung des Detla-Roboters Omron Adept Quattro S650 übernimmt. Für eine bessere Übersicht sind diese beiden zentralen Systemkomponenten in Blau hervorgehoben. Die E/A-Baugruppen sind in Grün und der Montagebereich in Grau gekennzeichnet.
Der Roboter ist direkt mit dem Controller verbunden und steht zudem in Interaktion mit dem Montagebereich. Außerdem ist ein PC an dem Controller angebunden, an dem wiederum die Komponenten Kamera sowie Speicherprogrammierbare Steuerung (SPS) und das HMI-Touchpanel angeschlossen sind.
Die Kamera übernimmt die optische Erfassung und Kontrolle des Montagebereichs, während die SPS mit HMI die Interaktion des Messe-Besuchers ermöglicht. Zur Energieversorgung wird der Controller durch ein Netzteil im Schaltschrank mit einer 24V-Gleichstrom (DC) Spannungsquelle versorgt. Darüber hinaus ist ein Pneumatik-Ventil an den Controller angeschlossen, das zur Ansteuerung der Vakuum-Saugeinheit dient. Für die Bedienung des Roboters steht zusätzlich ein Touch-Pendant zur Verfügung, das als handgeführte Eingabeeinheit die manuelle Steuerung ermöglicht.


Technischer Systementwurf

Abbildung 3: Technischer Systementwurf

In Abbildung 3 ist der entwickelte technische Systementwurf zu erkennen. Die Art der technischen Verbindungen ist in der Legende dargestellt. Das HMI-Touchpanel ist mit Ethernet mit der SPS verbunden. Von der SPS werden 4 digitale Ausgänge Q4.0 bis Q4.3 an den Smart Controller weitergeleitet, und mit den digitalen Eingängen DI(1002) bis DI(1005) eingelesen. Zusätzlich ist die SPS über Ethernet mit dem PC verbunden, was der Programmierung dient.
Die Kamera ist über eine IEEE1394 (FireWire)-Schnittstelle an den PC angeschlossen. Dort wird die Roboter Steuerungssoftware Omron Automation Control Environment (ACE) ausgeführt, sodass der PC die Schnittstelle zwischen Kamera und Controller bildet.
Der Smart Controller steuert über den Digital Output A1 das Relais für die Vakuum-Saugdüse an. Die digitalen Eingänge erhalten ihr Bezugspotential über den gemeinsamen Masseanschluss Pin 49. Die Versorgungsspannung von 24V-DC stellt zudem die Spannungsversorgung des Ausgangskanals Pin 25 sicher.




Entwicklung

Abbildung 4: Entwickelte Pick-and-Place Variante

Die Entwicklung ist in den Kapiteln der Anwendungsentwicklung, Konstruktionsentwicklung sowie der Programmierung unterteilt. Alle Projektspezifischen Dokumente (Schaltplan, ACE Roboterprogramm, CAD-Konstruktionen,...) befinden sich als Dateisammlung am Ende der Seite. Alle weiteren Dokumente befinden sich im SVN-Ordner

Anwendungsentwicklung

Für die Entwicklung einer geeigneten Anwendungsvariante für Messe-Demonstrationen sind drei Varianten mithilfe eines morphologischen Kastens erstellt worden.
Die drei Varianten wurden mit Bewertungskriterien in Bezug auf die Aufgabenstellung bewertet. Bewertet wurde mit einer Punktevergabe und Gewichtung der Bewertungskriterien.
Auf Basis der Punktevergabe hat sich eine Variante durchgesetzt. In Abbildung 4 ist die entwickelte und ausgewählte Variante zu erkennen. Die Parameter geben die Ausprägung der umzusetzenden Variante an.





Konstruktionsentwicklung

Abbildung 5: Leuchtenhalterung unten
Abbildung 6: Leuchtenhalterung oben

Damit die kamerabasierte Objekterkennung erfolgreich umgesetzt werden kann, wurde die Beleuchtungsstärke des Roboter-Montagebereichs verbessert. Hierzu wurden 2 Trilux LED-Leuchten verwendet.
Die genaue Bezeichnung lautet "Tugra 12 PL 50 840 ETDD23". Die Leuchten sind vertikal an die Roboterzelle montiert. Zur Montage wurden jeweils zwei Halterungen konstruiert und mithilfe
von 3D-Druckverfahren hergestellt. In Abbildung 5 und 6 sind die entwickelten Halterungen zu erkennen.


Die bereits vorhandene und montierte Kamera muss für die Anwendung neu ausgerichtet werden. Hierzu wurde eine neue Kamerahalterung konstruiert und ebenfalls mithilfe von 3D-Druckverfahren hergestellt. Die Kamerahalterung, zu sehen in Abbildung 7, besteht aus 3 Komponenten. Komponente 1 dient der Montage an dem Aluminiumprofil der Roboterzelle. Die zwei Streben bilden die Komponente 2 und dienen als verstellbarer "Arm" der Kamera. An Komponente 3 wird die Kamera montiert. Die neue Halterung bietet eine größere Einstellmöglichkeit der Kameraausrichtung und kann nun vollständig den Montagebereich zentral unterhalb des Roboters erfassen.

Abbildung 7: Kamerahalterung
Abbildung 8: Entwickelter Montagebereich














In Abbildung 8 ist die fertige Konstruktionsentwicklung der Pick-and-Place Anwendung zu sehen. Die montierte Kamera ist in der Abbildung mit rot gekennzeichnet.
Außerdem ist die vertikal montierte Beleuchtungseinrichtung zu erkennen. Als Montagebereich dient ein runder höhenverstellbarer Tisch. Die zu handhabenden Objekte können in die farblich gekennzeichnet
Container sortiert werden oder wahlweise nach Anzahl und Farbe über die Ausgaberutsche ausgegeben werden. Als Objekte dienen die aus PLA gefertigten HSHL-Logos die bereits in der MPS-Fließbandanlage verwendet werden.
Im Montagebereich wurde eine Einrahmung aus Kunststoffprofilen mit den Maßen von 30cm x 30cm für die zu handhabenden Objekte umgesetzt.






Programmierung

Abbildung 9: HMI-Oberfläche

Die Bedienung des Roboters wird mit der SPS bzw. dem HMI-Touchpanel umgesetzt. Das HMI bietet dem Messe-Besucher eine Interaktion mit der Pick-and-Place Anwendung. In Abbildung 9 ist die Oberfläche des HMI zu erkennen. Dem Bediener steht die Möglichkeit einer Kalibrierung des Montagebereichs zur Verfügung. Hierbei fährt der Roboter die Tischmitte sowie einen weiteren Referenzpunkt an, die es ermöglichen den Montagebereich (Tisch) auszurichten. Mit dem Button "Auto Sortieren" werden alle Objekte im Montagebereich in die Container sortiert. Mit der Auswahl der Anzahl und Farbe werden entsprechend die Objekte über die Ausgaberutsche ausgegeben.

Abbildung 10: Bitkodierung

Die Ansteuerung des Roboters wird über 4 Digitale Ein- bzw. Ausgänge der SPS realisiert. Um eine Übertragung mehrerer Programmfunktionen zu realisieren wurde eine Bitkodierung entwickelt. In Abbildung 10 ist die Bitkodierung zu sehen. Mithilfe der 4-Bitkodierung werden die Programmfunktionen des HMI in 0-10 Dezimalwerte umgewandelt, die im ACE Roboterprogramm dementsprechend verarbeitet werden und Roboterfunktionen aufrufen.

Abbildung 11: Schaltplan-Delta-Roboter

Der Schaltplan ist in Abbildung 11 zu sehen. Der rot markierte Bereich zeigt die Komponenten und Verbindungen der bestehenden MPS-Anlage. Die Verbindung des Delta-Roboters mit dem HMI wird mittels der SPS Stationen 04 realisiert.

Abbildung 12: PAP-Pick-and-Place
















Der Programmablaufplan erläutert die Reihenfolge der einzelnen Programmabschnitte. Zu Beginn werden die Programmvariablen und Standardbibliotheken des Roboters initialisiert. Das Hauptprogramm wird in einer While-Schleife ausgeführt. Der erste Schritt im Hauptprogramm ist die Ansteuerung der Kamera. Hierbei wird bei jedem Schleifen-Durchlauf das Kamerabild auf den Montagebereich mit den Objekten aktualisiert. Im nächsten Schritt wird das zuvor erläuterte Bitmuster der SPS eingelesen. Hierzu werden die Eingänge DI1002 bis DI1005 des Roboters abgefragt. Wird die Kalibrierung ausgewählt wird die dementsprechende Funktion im Roboterprogramm ausgeführt. Falls nicht, werden die Eingaben der Anzahl und Farbe der Objekte gespeichert und in der Programmfunktion Manuelle Ausgabe der Objekte nach Farbe und Anzahl ausgeführt. Die Automatische Ausgabe aller Objekte ruft die Automatikfunktion auf.


Die Objekterfassung wird in ACE mit den Funktionen "Color-Matching" und "Blob-Analyzer" umgesetzt. Für jede Objektfarbe wird ein eigenes Color-Matching und Blob-Analyzer Tool erstellt. In Abbildung 13 ist das Color-Matching Tool zu erkennen. Hier wird ein Farbbereich der zu erkennenden Objekte definiert. Mit der Toleranz lassen sich Abweichung der Objektfarbe im Kamerabild ausgleichen. Im Blob-Analyzer Tool, Abbildung 14, wird das zuvor erstellte Color-Matching Tool als Image Source Quelle eingelesen. Der Blob-Analyzer dient der Lokalisierung der X/Y-Positionen der Objekte. Es wird eine Ergebnis-Matrix erstellt, die im ACE Hauptprogramm mithilfe der ACE Sight-Sequenz, Abbildung 15, aufgerufen werden kann. Jedes erkannte Objekt erhält eine Instanz-Nummer. Damit die Kameraauswertung in ACE ausgeführt werden kann, muss der Remote Vision Server, Abbildung 16, aktiviert sein. Dies wird im Reiter Optionen des ACE Programms ausgewählt.

Abbildung 13: ACE-Color-Matching-Tool
Abbildung 14: ACE-Blob-Analyzer
Abbildung 15: ACE-Sight-Sequenz
Abbildung 16: ACE-Vision-Server
















Mithilfe der zwei Funktionen VRESULT und VLOCATION wird auf die Ergebnismatrix des Blob-Analyzers zugegriffen:

Syntax:
result_red = VRESULT($sv.client_ip, sequence_id, tool_id, instance_id, result_id, index_id, frame_id)

Im Programm:
result_red = VRESULT($sv.client_ip, 1, 3, 1, 1310, 1, 1)

Die Funktion VRESULT übergibt die Anzahl der erkannten Objekte in die Variable result_red. Wichtige Parameter sind zum einen $sv.client_ip, über den die IP-Adresse der Kamera angegeben wird,
sowie der Parameter sequence_id, der die jeweilige ACE-Sight-Sequenz für die drei Farben auswählt.


Syntax:
loc = VLOCATION($sv.client_ip, sequence_id, tool_id, instance_id, result_id, index_id, frame_id)

Im Programm:
loc = VLOCATION($sv.client_ip, 1, 3, j, 1311, 1, 1)

Die Transformationsfunktion VLOCATION liefert als Ergebnis der Ausführung eine kartesische Transformation der Koordinaten des erkannten Objektes zurück. Die Syntax ähnelt der VRESULT Funktion. Über den Parameter instance_id wird festgelegt, für welches Objekt der Ergebnismatrix der ACE Sight Sequenz bzw. des Blob-Analyzers das Resultat ausgegeben werden soll. Für die automatische Sortierung wird hierzu ein Schleifendurchlauf, j, über die Ergebnismatrix durchgeführt. Die Koordinaten werden in die Variablen loc gespeichert und anschließend sortiert.

Im Folgenden ist das ACE-Hauptprogramm aufgeführt. Das Hauptprogramm mit den dazugehörigen Unterfunktionen sind in der Datei-Sammlung zu finden.

.PROGRAM rob.main()


; STARTUP
        GLOBAL REAL run.rob
        CALL rob.init()
        CALL err.init()
        CALL rob.move.safe()


        ;Variablen definieren

        picked_color = 0
       
;Endlosschleife Hauptprogramm

        WHILE (rob.run) DO



            ;konstante Kamera Abfrage

            FOR i = 1 TO 3

                VRUN $sv.client_ip, i
                VWAITI (i) $sv.client_ip, 0

            END
                        
            
            ;Bitmuster lesen

            code = 0

            IF ((SIG(1002) == (-1))) THEN
                code = code+1
            END
            IF ((SIG(1003) == (-1))) THEN
                code = code+2
            END
            IF ((SIG(1004) == (-1))) THEN
                code = code+4
            END
            IF ((SIG(1005) == (-1))) THEN
                code = code+8
            END

            
            
            ;Kalibrierung Montagebereich Starten

            IF code == 7 THEN
                CALL rob.move.calib()
                CALL rob.move.safe()
                SPEED 15 ALWAYS
            END

                                 
            ;Anzahl der auszugebenden Objekte Speichern

            IF code == 1 THEN

                picked_count = 1
            END

            IF code == 2 THEN

                picked_count = 2
            END

            IF code == 3 THEN

                picked_count = 3
            END
            IF code == 4 THEN

                picked_count = 4
            END

            IF code == 5 THEN

                picked_count = 5
            END

                                                 
                     
            ;Ausgewaehlte Farbe Speichern

            IF code == 8 THEN
                picked_color = 1
            END

            IF code == 9 THEN
                picked_color = 2
            END

            IF code == 10 THEN
                picked_color = 3
            END

            
            
            ;Automatisches Ausgabe aller Objekte

            IF code == 6 THEN

                CALL sort.red()
                CALL sort.yellow()
                CALL sort.white()

            END
            
                               
      
            ;Manuelle Ausgabe der Objekte nach Farbe und Anzahl


            IF ((picked_color == 1) AND (picked_count > 0)) THEN
                CALL manual_red()
            END

            IF ((picked_color == 2) AND (picked_count > 0)) THEN
                CALL manual_yellow()
            END

            IF ((picked_color == 3) AND (picked_count > 0)) THEN
                CALL manual_white()
            END

        END


        RETURN
.END


Unterfunktion des Hauptprogramms, sort.red() für die Automatische Sortierung aller roten Objekte.


.PROGRAM sort.red()

;Automatische Sortierung aller roten Objekte bis Anzahl =0

        ;Anzahl ueber Kamera holen
        result_red = VRESULT($sv.client_ip, 1, 3, 1, 1310, 1, 1)

        WHILE (result_red > 0) DO

            ;Solange ein Objekt vorhanden ist sortieren
            IF (result_red >= 1) THEN

                FOR j = 1 TO result_red

                    ;Location ueber Kamera holen
                    SET loc = VLOCATION($sv.client_ip, 1, 3, j, 1311, 1, 1)

                    ;Location anfahren
                    APPROS loc, 25 ; Näherung auf 25mm
                    CALL rob.grip(FALSE) ;Vakuum-Sauger aktivieren
                    MOVES loc ;Location anfahren -->Z-Position fährt auf Objektoberfläche

                    ;Objekt aufnehmen und sortieren
                    TIMER (1) = 0 ; Starte Timer 1
                    WAIT TIMER(1) > 0.5 ;Timer 0,5s zur Objektaufnahme
                    APPROS loc, 40 ;Location um 40mm in Z+ Richtung heben
                    MOVES box_red ; Location der box_red anfahren

                    TIMER (2) = 0 ; Starte Timer 2
                    WAIT TIMER(2) > 1 ; Timer 1,0s

                    CALL rob.grip(TRUE) ;Vakuum-Sauger deaktivieren
 
                    TIMER (3) = 0 ; Starte Timer 3
                    WAIT TIMER(3) > 0.5 ; Timer 0,5s dann nächstes Objekt

                    result_red = result_red-1 ;Zähler der Objekte um 1 verringern
                END

            END

            MOVE safe.loc ;Safe-Position anfahren
            BREAK
        END

.END


Unterfunktion des Hauptprogramms, manual.red() für die Ausgabe roter Objekte nach Anzahl über Ausgaberutsche.


.PROGRAM manual_red()

;Manuelle Sortierung Rot

        
        count = picked_count ;Zähler für Anzahl der Objekte

        WHILE (count > 0) DO

            ;Anzahl ueber Kamera holen
            result_red = VRESULT($sv.client_ip, 1, 3, 1, 1310, 1, 1)

            ;Solange ein Objekt vorhanden ist sortieren
            IF (result_red >= 1) THEN


                FOR j = 1 TO count

            ;Location ueber Kamera holen
                    SET loc = VLOCATION($sv.client_ip, 1, 3, j, 1311, 1, 1)

            ;Location anfahren
                    APPROS loc, 25 ; Näherung auf 25mm
                    CALL rob.grip(FALSE) ;Vakuum-Sauger aktivieren
                    MOVES loc  ;Location anfahren -->Z-Position fährt auf Objektoberfläche

            ;Objekt aufnehmen und sortieren
                    TIMER (1) = 0 ; Starte Timer 1
                    WAIT TIMER(1) > 0.5 ;Timer 0,5s zur Objektaufnahme
                    APPROS loc, 40 ;Location um 40mm in Z+ Richtung heben
                    MOVES box_manual ; Location der box_manual anfahren

                    TIMER (2) = 0 ; Starte Timer 2
                    WAIT TIMER(2) > 1 ; Timer 1,0s

                    CALL rob.grip(TRUE) ;Vakuum-Sauger deaktivieren

                    TIMER (3) = 0 ; Starte Timer 3
                    WAIT TIMER(3) > 0.5 ; Timer 0,5s dann nächstes Objekt

                    count = count-1 ;Zähler der ausgewählten Anzahl um 1 verringern
                    picked_color = 0 ; ausgewählte Farbe zurücksetzen
                END


            END
            MOVE safe.loc   ;Safe-Position anfahren
            CALL rob.main() ;IF !(result_red >= 1) THEN back to rob.main()
        END
.END


Die Unterfunktion sort.() bzw. manual.() wird für jede Objektfarbe bzw. ACE-Sight-Sequenz angelegt.

Kalibrierung des Montagebereichs
Die Kalibrierung des Montagebereichs bzw. die Ausrichtung des Tisches wird durch Aufruf der Unterfunktion rob.move.calib() durchgeführt. Diese kann mittels HMI oder in der ACE Robotersoftware aufgerufen werden.
Hierzu werden zwei Referenzpunkte, die auf der Tischplatte markiert sind, angefahren.

Location X-Achse Y-Achse Z-Achse
Punkt 1 / calib.loc_1 0.0 0.0 -868.500
Punkt 2 / calib.loc_3 67.500 0.0 -868.500


Abbildung 17: Kalibrierung des Montagebereichs

In der Funktion rob.move.calib() wird zunächst mit erhöhter Z-Achse die X/Y-Koordinate der jeweiligen Punkte angefahren und anschließend auf die Kalibrierungshöhe gesenkt:

Location X-Achse Y-Achse Z-Achse
calib.loc_0 0.0 0.0 -860.000
calib.loc_1 0.0 0.0 -868.500
calib.loc_2 67.500 0.0 -860.000
calib.loc_3 67.500 0.0 -868.500


Die Reihenfolge der Kalibrierung ist in Abbildung 17 sowie in dem Video der Zusammenfassung zu erkennen.
Die Ausrichtung der Container sowie der Ausgaberutsche können mithilfe der definierten Locations im Programm angefahren werden, um sie anschließend auszurichten.

Systemtest

Auf Grundlage der erstellten Anforderungsdefinition wurde ein Systemtest durchgeführt, dessen Ergebnisse in der folgenden Tabelle dargestellt sind.

ID Typ (I=Info, A=Anforderung) Kapitel Inhalt Status
Tabelle 2: Systemtest
1 I 1 Komponententest
2 A Die bestehende Verdrahtung der Anlage überprüfen. i.O.
3 A Kommunikation zu Delta-Roboter und PC/SPS herstellen. i.O.
4 A Funktionsprüfung der bestehenden Anlage. i.O.
5 I 2 Anlagenaufbau
6 A Montagebereich des Roboters einrichten -->Tischplatte i.O.
7 A Kameraposition für Montagebereich ausrichten --> neue Halterung i.O.
8 A Ausleuchtung des Montagebereichs verbessern --> Beleuchtungseinrichtung i.O.
9 I 3 Programmierung / Entwicklung
10 A Entwicklung einer automatisierten Pick-and-Place Anwendung --> Bewertungstabelle, Morphologischer Kasten i.O.
11 A Montagebereich mit Robotersoftware Omron ACE konfigurieren i.O.
12 A Pick-and-Place Anwendung mit ACE-Software und SPS/HMI mit Siemens TIA-Portal programmieren i.O.
13 I 4 Dokumentation
14 A Bestehender Verdrahtungsplan anpassen i.O.
15 A Wiki-Artikel erstellen i.O.
16 A Wöchentlicher Tätigkeitsbericht i.O.
17 A Plakat für Labor erstellen i.O.
18 A Schriftliche Arbeit BA i.O.
19 I 5 Systemtest / Abnahmetest
20 A Das System muss Sicher sein. i.O.
21 A Die Anlage muss den Systemtest und Abnahmetest erfüllen. i.O.
22 A Die entwickelte Anwendung muss korrekt ausgeführt werden. i.O.

Abnahmetest / Inbetriebnahme

Dieser Abschnitt beschreibt die einzelnen Schritte der Inbetriebnahme des Roboters mit der entwickelten Anwendung. Die Inbetriebnahme dient außerdem dem Abnahmetest. Der Abnahmetest ist in drei Schritt Nr. unterteilt. Zu Beginn wird der Roboter für die Ausführung des Programms vorbereitet. Dies ist mit den Precondition Schritten gekennzeichnet. Als nächstes wird im Testschritt die Anwendung ausgeführt. Die Postcondition beschreibt die abschließenden Schritte des Abnahmetests. Der Inbetriebnahmeprozess bezieht sich auf das entwickelte ACE Programm "Pick_and_Place_Luetkemeier_BA".

Schritt Nr. Beschreibung Ausgangszustand Aktion(en) Erwartetes Ergebnis Ergebnis Bewertung
Tabelle 3: Abnahmetest / Inbetriebnahme
Precondition 1 Roboter einschalten Roboter aus Einschalten durch Betätigung des Hauptschalters Roboter an Roboter ist an i.O.
Precondition 2 PC einschalten PC aus PC hochfahren und ACE Programm ausführen PC an, Software gestartet PC ist an, Software gestartet i.O.
Precondition 3 ACE Programm "Pick-and-Place_Luetkemeier_BA" laden ACE Programm läuft, Programm nicht geladen ACE Programm "Pick-and-Place_Luetkemeier_BA" öffnen ACE Programm geladen ACE Programm wurde geladen i.O.
Precondition 4 Verbindung zum Roboter herstellen Verbindung zum Roboter nicht hergestellt Verbindung zum Roboter im ACE Programm herstellen, ausführen von rob.main() als Task Verbindung hergestellt, rob.main() wird als Task ausgeführt Verbindung ist hergestellt und rob.main() wird ausgeführt i.O.
Precondition 5 Montagebereich Kalibrieren Montagebereich ist nicht kalibriert Betätigung des HMI-Button "Kalibrierung", Montagebereich auf Kalibrier-Position gemäß dem Abschnitt aus Programmierung ausrichten Roboter fährt Kalibrierungsposition an Montagebereich kalibriert i.O.
Precondition 6 Überprüfung des Kamera-Bild "Region of Interest" (ROI) Montagebereich wurde Kalibriert Überprüfen des Kamera-Bild ROI im Color-Matching Tool Kamera-Bild ROI liegt innerhalb der Einrahmung gemäß der Abbildung Kamera-Bild ROI liegt innerhalb der Einrahmung i.O.
Precondition 7 Objekte im Montagebereich einrichten Objekte liegen nicht im Montagebereich Objekte in Montagebereich platzieren Objekte liegen im Montagebereich Objekte liegen im Montagebereich i.O.
Testschritt 1 Sortierung aller Objekte Objekte liegen im Montagebereich Betätigung des HMI-Button "Auto Sortieren" alle Objekte werden nach Farbe in die Container sortiert alle Objekte sortiert i.O.
Testschritt 2 Ausgabe der Objekte nach Anzahl und Farbe Objekte liegen im Montagebereich Anzahl 1-5 und Farbe am HMI auswählen gewählte Anzahl und Farbe wird ausgegeben gewählte Anzahl und Farbe wurde ausgegeben i.O.
Postcondition 1 Roboter ausschalten Roboter ist an, Betriebsbereit Ausschalten durch Betätigung des Hauptschalters Roboter aus Roboter ist aus i.O.
Postcondition 2 PC ausschalten PC ist an, ACE Programm läuft ACE Programm schließen, PC herunterfahren PC aus PC ist aus i.O.

Zusammenfassung

Video 1: Pick-and-Place Anwendung in Aktion
Abbildung 18: MINT-Erlebnistag 2025

Die gesteckten Ziele wurden erreicht. Es wurde eine Pick-and-Place Anwendung entwickelt, die es ermöglicht Objekte mithilfe der Kamera zu lokalisieren und zu sortieren. Die Anwendung bietet mit der Steuerung über das HMI-Touchpanel dem Messe-Besucher eine Interaktion mit dem Roboter. Zudem wurde eine Beleuchtungseinrichtung umgesetzt, die auch für zukünftige Projekte von Bedeutung ist, da nun der Montagebereich eine ausreichende Beleuchtungsstärke für die kamerabasierte Objekterkennung aufweist. In Video 1 ist die Pick-and-Place Anwendung in der Ausführung zu sehen.

MINT-Erlebnistag 2025:
Die entwickelte Anwendung wurde erfolgreich beim MINT-Erlebnistag 2025 in der HSHL als Exponat präsentiert. Die Abbildung 18 zeigt den Roboter beim Sortieren von MAOAM Süßigkeiten. Anstatt der zu sortierenden HSHL-Objekte wurde die Anwendung für die Sortierung von MAOAM geändert. Das entsprechende Programm befindet sich ebenfalls im SVN-Verzeichnis.


Mögliche Optimierungen:

  • Die Beleuchtungseinrichtung über die DALI-Schnittstelle Dimmbar machen.
  • Die Beleuchtungseinrichtung mithilfe eines Tasters außerhalb des Schaltschranks schaltbar machen.
  • Ein Lichtschrankenkonzept, um eine noch größere Interaktion mit dem Roboter bzw. dem Montagebereich umzusetzen.





Verwendete Software

  • SolidWorks: Erstellung der CAD-Modelle
  • PapDesigner: Erstellung des Programmablaufplans
  • UltiMaker Cura: Slicer Software zur Erstellung des G-Code für 3D-Druck
  • QElectroTech: Schaltplanerstellung
  • Omron ACE: Programmierung des Roboters mit V+ Programmierbefehle
  • Siemens TIA-Portal: Programmierung der SPS und HMI-Touchpanel
  • Microsoft Office: Dokumentation

Literatur

https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Delta_Roboter_Adept_als_Picker