Legosortiermaschine Separierung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:


Dies ist ein Unterarikel von der [http://http://193.175.248.52/wiki/index.php/Legoteil_Z%C3%A4hlmaschine  Legoteil_Zählmaschine], welcher den genauen Aufbau der Separierung beschreibt.
Dies ist ein Unterarikel von der [http://193.175.248.52/wiki/index.php/Legoteil_Z%C3%A4hlmaschine  Legoteil_Zählmaschine], welcher den genauen Aufbau der Separierung beschreibt.


Die Separierung ist der erste Schritt zum Sortieren der Legoteile. Ziel dabei ist, die verschiedenen Teile zu separieren und einzeln in die Bildvearbeitung laufen zu lassen. Dies ist notwendig, da die Bildverarbeitung ledigich einzelne Legoteile erkennen kann.
Die Separierung ist der erste Schritt zum Sortieren der Legoteile. Ziel dabei ist, die verschiedenen Teile zu separieren und einzeln in die Bildvearbeitung laufen zu lassen. Dies ist notwendig, da die Bildverarbeitung ledigich einzelne Legoteile erkennen kann.

Version vom 16. Juni 2017, 11:48 Uhr

Dies ist ein Unterarikel von der Legoteil_Zählmaschine, welcher den genauen Aufbau der Separierung beschreibt.

Die Separierung ist der erste Schritt zum Sortieren der Legoteile. Ziel dabei ist, die verschiedenen Teile zu separieren und einzeln in die Bildvearbeitung laufen zu lassen. Dies ist notwendig, da die Bildverarbeitung ledigich einzelne Legoteile erkennen kann.

Zur Separierung der Legoteile wird ein Bunker inklusive Bunkerförderband verwendet, welches die Teile sammelt und zum Förderband transportiert. Die Teile werden dort durch eine Bilderkennung befördert und wenn nötig vereinzelt. Die Kamera macht Bilder des Förderbandes und erkennt die Anzahl der auf dem Band liegenden Teile in einem festgelegten Bereich. Falls sich mehr als ein Teil in diesem Bereich befinden, werden diese mit Hilfe von Druckluftdüsen nach hinten gepustet. Somit werden die Teile neu angeordnet und bewegen sich anschließend erneut durch die Bilderkennung. Befinden die Legoteile bereits vereinzelt auf dem Förderband werden sie zur Legoteil Erkennung gefahren.

Die Probleme der Vereinzelung bestehen darin, dass das Bunkerband bei gefülltem Bunker überfüllt und somit zu viele Teile auf das Förderband fallen. Wird das Bunkerband nicht angehalten, fallen immer mehr Teile nach. Falls die Teile in der Bilderkennung durch die Druckluftdüsen nach hinten gepustet werden, kommt es zu einer Aufstauung der Teile in bzw. vor der Bilderkennungsbox. Ein weiteres Problem der Separierung ist in der Ansteuerung der Druckluftdüsen zu finden. Werden mehrere Teile in dem kritischen Bereich erkannt, werden automatisch beide Düsen angesteuert und somit alle Teile an den Anfang der Teileerkennung befördert. Dadurch kann es zu einer enormen Verzögerung in der Vereinzelung der Teile kommen.



[1] [2]


Geschichte

Legoteilzählmaschine im Überblick

Die Ergebnisse des vorausgegangenen Praktikums haben aufgezeigt, dass eine Vereinzelung der Legoteile mit dem vorhandenen Aufbau schwer zu verwirklichen ist (siehe Semester 2016). Durch das Befüllen des Bunkers mit einer Vielzahl an Legoteilen, gestaltet es sich schwierig, die Anzahl der ausgegeben Legoteile auf das Förderband zu regulieren. Es kommt oft dazu, dass sich zu viele Teile auf dem Fließband befinden. Eine Verminderung der Geschwindigkeit des Förderns aus dem Bunker reicht nicht aus, da die Lamellen des Stetigförderers zu viele Teile aufnehmen können. Auch vereinzelte das vorherige Konzept mit unterschiedlich schnell laufenden Bändern die Teile nicht, wenn sich zu viele Teile auf dem Band befanden.

In Wintersemester 2016/2017 wurde das Konzept umgesetzt, dass Hindernisse am Rand des Förderbandes angebracht werden. Diese sollten nur einzelne Teile durchlassen, wenn sich eine Vielzahl an Teilen auf dem Förderband befinden. Es stellte sich heraus, dass das Anbringen von Hindernissen auf dem ersten Förderband nicht wie gewünscht die Legoteil-Gruppen auseinander zieht und gelegentlich durch verklemmte Teile die Legoteil-Zufuhr zur Bilderkennung verstopft. Dies hat in Kombination mit den Problemen bei der Sortierung von Legoteilen nach dem Erkennungsprozess dazugeführt, dass eine Überarbeitung des Gesamtkonzeptes notwendig war, um die Zuverlässigkeit der Legoteil-Zählmaschine gewährleisten zu können.


[3] [4]


Neues Konzept zur Separierung der Legoteile

Das neue Konzept zur Separierung besteht aus einer eigenen Bilderkennungsbox, in der erkennt werden soll, ob sich zu viele Legoteile zur selben Zeit auf dem Laufband befinden. Am Ausgang der Bildbearbeitungsbox befinden sich zwei Laufdrückdüsen, die einen Laufstoß ausgeben können wenn sich zu viele Teile auf dem Band befinden. Dabei werden die Teile entgegen der Laufrichtung des Band befördert. Es folgt eine erneute Auswertung der Anzahl der sich auf dem Fließband befindenden Teile. Sollten sie nun vereinzelt sein, können die Box passieren.



Umbau der Legoteil-Zählmaschine

Abbildung 2: Neuer Aufbau der Legoteil Zählmaschine

Um das neue Konzept des vorherigen Kapitels umzusetzen, mussten einige Komponenten an der Legozählmaschine umgebaut und angepasst werden (siehe Abbildung 2). Zum Einen wurde das erste, kurze Förderband entfernt, sodass nur noch das Lange verwendet wird. Dies war notwendig um Platz für den Anlagenteil zur Sortierung zu schaffen, außderdem ist die Separierung durch zwei unterschiedlich schnell laufende Förderbänder nicht mehr Teil des Separierungskonzepts. Am Anfang des Förderbandes wurde der Bunker platziert, der die Legoteile auf das Band befördert. Die Box zur Bilderkennung befindet sich nach wie vor mittig auf dem langen Förderband. Innerhalb dieser Box wird die Lage der Legoteile erfasst. Am Ausgang der Box wurden zwei Luftdruckdüsen so angebracht, dass diese die Legoteile in der Box auf dem Band zurück pusten können. Mithilfe dieser Düse ist es nun möglich, von der Bilverarbeitung erkannte Häufungen von Legoteilen auseinander zu treiben. Am Ende des langen Laufbandes wurde eine neue Bildverarbeitungsbox angebracht, in der die Legoteile erkannt werden (weitere Informationen hierzu sind im Kapitel "Gruppe: Bildverarbeitung" zu finden). An dieser Box grenzt die Separierung(siehe Kapitel "Gruppe: Sortierung").


Um Platz zur Umsetzung einer Sortieranlage zu schaffen, wurde der Stromkasten vor Kopf der Anlage platziert. Unter dem Förderband wurde ein Ventilinsel platziert, mit der sich alle Luftdruckdüsen des Systems steuern lassen. Die Ventilinsel ist mit vier Ventilen bestückt, es können aber weitere Ventile nachgerüstet werden. Die Kontakte der Ventilinsel sind in den Schaltschrank geführt. Der Druckluftanschluss kann über ein Schnellspannanschluss an normale Druckluftanschlüsse angeschlossen werden. Die Verkabelungen und Verschlauchungen des neuen Aufbaus wurden, soweit möglich, in Kabelkanälen verlegt.

Die Montage von Schutzblechen vor der Bildverarbeitung der Separierung ist aus zeitlichen Gründen noch nicht geschehen. Die Bleche sollen Teile daran hindern, vom Laufband zufallen wenn sie von einem Luftstoß erfasst werden. Des weiteren bestand ein Konzept, flexible Elemente in Form von Borsten einzusetzen, damit große Gruppen von Legoteilen direkt im Bunker zurückgehalten werden können. Das Konzept wurde aus zeitlichen Gründen nicht umgesetzt, es wurden jedoch bereits verschiedene Besen angeschafft.
[3] [4]

Erkennung von Legoteil-Gruppen

Abbildung 3: Ablaufplan Legoteilerkennung

Zur Umsetzung der Separierung wurde eine Funktion entwickelt, die Gruppen von Legoteilen erkennen soll und die Separierung per Luftdruck durchführt.

Programmablauf (siehe Abbildung 3)
Zu Beginn der Separierungsfunktion müssen zunächst Steuerbefehle zur Betreibung der Anlage erteilt werden. Dazu gehört die Einrichtung einer Seriellen Schnittstelle mit dem steuernden Arduino Mega. Außerdem sind Einstellungen an der Webcam vorzunehmen, um Fehler durch ungenaue Kameraparameter zu verhindern. Diese können beispielsweise durch eine Fehlkalibrierung entstehen. Neben der Definition von weiteren Parametern, unter anderem zur Festlegung des kritischen Bereichs der Fotobox, wird die Anlage automatisch gestartet, d.h. die Laufbänder starten und das Licht in der Fotobox eingeschalten.
Nach dem die Anlage gestartet wurde, wird die eigentliche Funktion der Legoteil-Gruppenerkennung gestartet. Es wird ein Bild vom Innenraum der Bildverarbeitung aufgenommen (siehe Abbildung 4 links) und anhand der zuvor eingestellten Parameter so zugeschnitten, dass Bildränder und weitere uninteressante Bereiche wie der unmittelbare Ein- und Ausgangsbereich sowie die Ränder des Förderbandes entfernt werden. Anschließend wird das Bild so gefiltert, dass nur noch die Legofarben Inhalt des Bildes sind. Das Ergebnis wird dabei in ein Binärbildumgewandelt, die Erkennung der Farben wird durch mehrere Unterfunktionen realisisert. Die entstandenen Bilder werden von kleinen Pixelelementen entfernt, und Lücken im Inneren der Objekte geschlossen. Anschließend werden die Bilder zu einem zusammengeführt. Durch Labeln der Pixelgruppen kann nun die Anzahl der Objekte im Raum bestimmt werden (siehe Abbildung 5 unten links). Anschließend wird ein zweiter Zuschnitt des Bildes vorgenommen, der einen kritischen Bereich betrachtet. Dieser Bereich liegt an einer Stelle, an der die Luftdruckdüsen präzise auf die Legoteile ausgerichtet sind. Außerdem handelt es sich hieberi um einen dünnen Streifen, der die Breite des Förderbandes aber zwingend abdecken muss. Nach dem erneuten Zuschnitt des Bildes wird ausgewertet, wie viele verschiedene Label in diesem Bereich vertreten sind (siehe Abbildung 4 rechts). Befindet sich mehr als ein Objekt im kritischen Bereich, werden die Luftdruckdüsen angesteuern, da die Legoteile nicht separiert in der Legoteilerkennung ankommen. Befindet sich ein oder kein Legoteil in diesem Bereich, werden die Düsen geschlossen und die Teile werden in die Legoteilerkennung befördert. Des Weiteren ist eine Einzelansteuerung der Luftdüsen realisiert worden, um ein präzises Entfernen von Einzelteilen zu ermöglichen und somit den Separierungsvorgang zu beschleunigen. Das Ergebnis der Software wir in Abbildung 5 in der Überschift oben links ausgegeben. Mehrere Testdurchläufe haben jedoch gezeigt, dass bei einer großen Anzahl an Legoteilen in der Bildverarbeitungsbox durch gegenseitige Behinderung die Box nicht mehr verlassen und gegen die hintere Wand des Eingangsbereiches der Box stoßen. Dadurch werden die Teile nicht ausreichend weit zurückgeworfen. Durch ein Integrieren einer Bunkerbandstopp-Funktion kann nun einzelne Lamellen mit Legoteilen auf das Förderband befördert werden. Das Bunkerband stoppt also, falls Legoteile in der Fotobox erkannt werden. Dadurch werden weniger Teile in die Bildverarbeitungsbox gefördert, welche sich dort behindern könnten. Somit wird eine durchgängige Aktivierung der Düsen verhindert. Diese Funktion muss während des gesamten Programmablaufs durchgeführt werden. Wird das Programm beendet, wird die Anlage gestoppt, d.h. das Licht und die Motoren werden ausgeschaltet. Das Software-Modul lautet: Separierung.m


Abbildung 4: Bildverarbeitung der Separierungsfunktion



Verbesserungsmöglichkeiten der Software
Eine weitere Abhilfe gegen die Aufstauung von Legoteilen sollte die Vergrößerung des Eingangsbereiches schaffen, sodass zurückgepustete Legoteile die Bildverarbeitung wieder verlassen bzw. weiter nach hinten auf dem Förderband gepustet werden können.
Ein weiterer Aspekt ist, dass über- oder direkt aneinanderliegende Legoteile mit dem aktuellen Algorithmus als ein Teil erkannt und durchgelassen werden. Dies kann dadurch verbessert werden, dass z.B. durch die Verwendung von Besen und Abstreifern das Übereinanderliegen der Legoteile verhindert wird. Außerdem kann beispielsweise ermittelt werden, ob erkannte Objekte aus unterschiedlichen Farben bestehen. Ist dies der Fall, handelt es sich nicht um ein Teil, sondern um mehrere. Dies würde die Wahrscheinlichkeit reduzieren, dass mehrere Legoteile in die Bildverarbeitung der Legoteilerkennung gelangen.
Eine weitere Unterstützung der Separierung wäre möglich, in dem das Fließband angehalten wird, sobald ein Legoteil in der Bildverarbeitungsbox der Legoteilerkennung erkannt wird. Wurde dieses aus der Box entfernt, könnte das Band wieder gestartet werden.

[2]

Auswahl der Luftdüsen

Werden mehrere Teile auf einem Haufen erkannt, so werden die Luftdüsen angesteuert, um die Teile außeinander zu pusten. Wichtig ist hierbei die richtige Auswahl der Düsen. Dazu wurde ein Test mit den vorhanden Luftdüsen durchgeführt. Bei dem Test wurden ein kleines, ein mittleres und ein großes Teil getestet und ein Druck von 4bar verwendet. In der ersten Testphase wurden die Teile circa 5cm vor die Düse gelegt. Nun wird jede Düse einzeln angesteuert und geguckt wie oft das Teil bei fünf Versuchen mindestens 20cm weit geschossen wird. Dieser Bereich entspricht in etwa den Bereich der Bildverarbeitung.

Platz Düse Bild Kleines Teil Mittleres Teil Großes Teil
1 flach/breit 5/5 5/5 3/5
2 spitz/breit 5/5 1/5 0/5
3 spitz/schmal 4/5 4/5 1/5
4 Multiloch 4/5 3/5 0/5

Aus der Tabelle lässt sich schließen, dass die Düsen eins und drei am besten sind. Deshalb wird mit diesen beiden Düsen der nächste Test gemacht. Bei diesem wird wieder mit den drei Teilen und mit 4bar gearbeitet. Diesmal wird getetestet, wie die Position der Teile vor der Düse Einfluss auf die Schussweite und -richtung haben. Dazu werden die Teile an die Wand, mittig vor die Düse, in die Mitte vom Band und vor die andere Düse gelegt.

Zuerst die Ergebnisse der breiten und flachen Düse:

Lage Kleines Teil Mittleres Teil Großes Teil
an der Wand Teil springt gut gut
vor Düse gut gut gut
Mitte vom Band rollt auf die andere Seite meistens gut meistens gut
vor anderen Düse gut gut gut

Die spitze und schmale Düse:

Lage Kleines Teil Mittleres Teil Großes Teil
an der Wand gut gut gut
vor Düse Teil fliegt manchmal durch anderen Bereich gut gut
Mitte vom Band Teil fliegt über den andern Bereich meistens gut schiebt das Teil in den andern Bereich
vor anderen Düse schiebt das Teil an den Rand des Bandes gut gut

Die Ergebnisse der beiden Düsen sind sehr ähnlich. Jedoch ist die breite und flache Düse besser, denn diese schießt die kleinen Teile kontrollierter zurück. Dies sieht man in den Tabellen bei den kleinen Teilen vor der Düse sowie vor der anderen Düse. Die spitze und schmale Düse schießt das Teil hierbei manchmal durch den andern Bereich. Dies würde dazu führen, dass das Teil in dem anderen Bereich erkannt werden könnte und so die andere Luftdüse angesteuert werden könnte. Damit wäre die Einzelansteuerung der Düsen übergangen. Wird das kleine Teil an den Rand des Bandes gepustet, könnte es zu einen Problem bei der Erkennung des Teils kommen, da das Bild beim Kalibrieren am Rand abgeschnitten wird und so das Teil nicht mehr erkennen könnte.

Aus diesem Gründen werden zwei breite und flache Düsen eingebaut.

Weitere Aufgaben


Entwicklung einer Steuerplatine

Abbildung 5: Steuerplatine

Zur Inbetriebnahme der umgebauten Anlage war es notwendig, die Funktionen der Schaltplatine zu erweitern. Die eingebaute Steuerplatine war auf den Arduino aufgesattelt und bezog Steuersignale sowie die 5 V Versorgungsspannung direkt über die eingesteckten Pins. Mit dieser Platine ist es möglich, drei Motoren mit Strom zu versorgen bzw. durch ein PWM Signal zu steuern. Zusätzlich konnten noch zwei Servomotoren und zwei Infrarotsensoren betrieben werden. Durch die Konzeptänderung der Separierung und der Bildverarbeitung wurde es notwendig, weitere Schaltfunktionen hinzuzufügen. Die Bildverarbeitung benötigte durch Software schaltbares Licht, um zwischen Durch- und Drauflicht in der Bildverarbeitungsbox umschalten zu können. Die Ansteuerung des Lichts sollte, ebenso wie bei den Motoren, über den Arduino erfolgen. Die Spannungsversorgung der Bildverarbeitungsbox war in der Vergangenheit mit einem eigenen Netzteil erfolgt, welches direkt in eine Steckdose eingesteckt wurde. Neben der Einrichtung von schaltbaren Licht, wurde die Schaltung der Pneumatik hinzugefügt. Auch diese sollte über den Arduino gesteuert werden. Die Ventilinsel wird mit 24 V Signalen angesteuert. Die Motoransteuerung musste auch bei der neuen Steuerplatine wieder per MOSFETs umgesetzt werden, da die Geschwindigkeit hier per PWM Signal gesteuert wird. Die Lichtansteuerung der LED Streifen in den Bildverarbeitungsboxen sollte ebenfalls per MOSFET geschehen, da die Schaltfrequenz gegebenfalls recht hoch werden kann und mechanische Relais nicht für höhere Schaltfrequenzen ausgelegt sind. Außerdem benötigen diese eine 12 V Versorgungsspannung. Die Option auf einen weiteres Netzteil, um aus 230 V Netzspannung die 12 V Spannung für die LEDs herzustellen, wurde aufgrund des hohen Kaufpreises für das Netzteil sowie des hohen Aufwandes für den Umbau abgelehnt. Als Alternative wurde sich für die Verwendung von Linearspannungsreglern auf der Steuerplatine entschieden, die aus der vorhandenen Spannung von 24 V, die zur Versorgung der Motoren benötigt werden, 12 V erzeugen sollen. Bei der Ansteuerung der Ventilinsel gab es ebenfalls zwei Optionen. Die erste Möglichkeit war die Nutzung von Relais, wie z.B. Solid State Relais, durch die Arduino-Ausgänge weniger belastet werden. Die zweite Option war die Nutzung der selben MOSFETs, die schon bei der Ansteuerung der Motoren und des Lichts verwendet wurden. Hier wurde sich aug Grund von bereits vorhandenen Komponenten und der damit verbundenen Einheitlichkeit für die zweite Variante entschieden. Der Schaltplan der Platine wurde in Multisim erstellt, der Leiterplattenentwurf in Ultiboard. Die Platine wurde anschließend in der Hochschule gefräst und bestückt(siehe Abbildung 5). Zum Anschluss an den Arduino wurde die Platine mit Schraubklemmen versehen. Der Arduino wurde eine Platine aus dem Zubehör erweitert, welche jeden Anschluss als Schraubklemme zur Verfügung stellt, um Platine und Arduino zu verbinden.

Während der Tests der Platine sind 2 MOSFETs aus unbekannten Gründen zerstört worden. Die Platine ist weiterhin für die aktuellen Funktionen einsatzfähig, für die Hinzunahme weiterer Funktionen, wie beispielsweise der Einbindung einer weiteren Druckluft-Düse, müssen die Bauteile jedoch ausgetauscht werden.

Umbau des Schaltschranks

Abbildung 6: Schaltschrank der Anlage

Aufgrund des Einsatzes der neuen Steuerplatine war es notwendig, den Schaltschrank umzubauen (siehe Abbildung 6). Hierzu wurde die alte Steuerplatine entfenrt und an ihrer Stelle die neue Sattelplatine mit Schraubklemmen auf dem Arduino installiert. Auch wurde der Arduino auf einer Hutschienenhalterung installiert. Ebenso wurde die neue Steuerplatine auf einer solchen Halterung installiert. Die Anschlüsse untereinander wurden verbunden, die Anschlüsse zu den Geräten außerhalb des Schranks wurden auf Reihenklemmen gelegt. In dem Schaltschrank wurde zusätzlich noch der Gecko-Drive für die Steuerung des Linearläufers installiert. dieser wurde auf eine Seitenwand geschraubt, um Kühlung zu gewährleisten.


Kabelkanal

Seit dem Sommersemester 2016 sind die verlegten Leitungen fest verlegt werden. Hierzu wurde ein Kabelkanal zur ordentlichen Verlegung der Leitungen an den Förderbändern montiert. Er dient dem Schutz und der mechanischen Entlastung der Leitung. Es wurde ein geschlitzer Kabelkanal gewählt, da an vielen unterschiedlichen Stellen Leitungen z.B. zu den Motoren abgehen. So war es nicht nötig, einen geschlossenen Kabelkanal zu modifizieren, um die Leitungsabgänge möglich zu machen.

Kamera/Bildbox- und Auswerferhalterung

Abbildung 14: Kamera/Bildbox Fixierung

Zur Befestigung der Kamera und Bildbox wurden "Boschprofil" mit den Zubehörwinkeln genutzt. Die Bildbox wurde so befestigt, dass sie über vier Schrauben Höhenverstellbar ist, um auch die Einfuhr von größeren Teilen möglich zu machen. Ebenso ist die Befestigung am Förderband mit vier Schrauben lösbar und damit die gesamte Konstruktion verschiebbar. Die Kamera wurde an der Bildboxbefestigung so fixiert, dass sie bei dieser Höhen- und Seitenverstellung immer an der selben Stelle verharrt. Dies ermöglicht eine ein mal eingestellte Kameraposition beizubehalten.

Elektrische Sicherheit

Die elektrische Sicherheit des Schaltschrankes wurde im Zuge der Umbauarbeiten sichergestellt, indem alle Leitungen gegen spannungsfestere Leitungen vom Typ H07 bzw. H05 ausgetauscht wurden. So werden nun auch die Anforderungen nach VDE 0100-600 erfüllt. Eine Anlagenprüfung wurde im August 2016 vorgenommen.


[3] [4]

Autoren

  1. Autor Nils Busemann
  2. 2,0 2,1 Autor Maik Schmotz
  3. 3,0 3,1 3,2 Autor Adam Fankhauser(abgeändert)
  4. 4,0 4,1 4,2 Autor Niklas Lingenauber(abgeändert)