- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 11 bis 20 von 91

Thema: Vision-Erkennung bei Bestückungsautomaten

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #12
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    52
    Beiträge
    46
    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich habe leider nichts gefunden, was die Kapazität betrifft, aber du kannst da sicher nachgucken. 20K Teile halte ich für nicht übertrieben.
    Meinst du wieviele Bauteile von den professionellen Bestückautomaten gesetzt werden? Wenn ja, das hängt von vielen Faktoren ab. Die Anzahl der Köpfe, die Geschwindigkeit usw. ...daraus wird dann die "theoretische" Bestückleistung errechnet, welche in der Praxis jedoch niemals erreicht wird. Um die theoretische Bestückleistung zu erreichen müssten alle Bauteile so aufgerüstet sein dass der Automat mit allen Köpfen gleichzeitig die Bauteile abholen kann und diese gleichzeitig auf die LP platzieren kann (also muss der Bauteilabstand exakt so groß sein wie der Abstand zu den Nozzlen. In der Realität wird man diesen Zustand niemals erreichen und jeder Nozzle-Wechsel beansprucht auch Zeit.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Dann muss man sich nochmal angucken, dass diese Kameras eine Auflösung von fast HD haben (Die in Ebay zumindest - Man erkennt sie daran, dass sie ein wenig teurer als normale Kameras sind und einen Camera Link haben) und schon sind wir bei den extra Karten. Diese Karten nennt man Framegrabber Karten. Diese Karten haben einen speziellen Chip, der die Bildberechnungen durchführt und sind somit verdammt schnell und teuer. Teuer heißt in diesem Fall 1000€ aufwärts. Dafür bekommt der Rechner dann lediglich Koordinaten geliefert, die er auswertet. Ein Beispiel für eine FramegrabberKarte findest du hier:http://www.adlinktech.com/PD/web/PD_...5&seq=&id=&sid=#
    Da muss ich mir etwas anderes einfallen lassen, denn wenn ich mir einen Bestücker bauen werde, dann wird der größtenteils aus Schrott-Teilen bestehen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Leider habe ich nichts über den Preis herausgefunden. Doch bei dieser Karte dürfte er bei 700 liegen. Und die macht nur eine einzige Kamera gescheit. Womit wir wieder beim nächsten Problem wären: Kameras. Ich habe eine bei einem Freund liegen. Das Modell weiß ich leider noch nicht, bekommen werde ich sie allerdings Ende diesen Monats. Diese Kameras kosten auch 200-1000€, je nach Sichtbereich (Wellenlänge) und aufgesetztem Objektiv. Meist ist eben kein Objektiv drauf, was den Gesamtpreis im Endeffekt nochmal und 200-500 Euro erhöht.
    Eine gute Kamera kostet gutes Geld. Für einen Selbstbau-Bestückautomaten sollte man aber auch mit "Billigteilen" klar kommen. Sicher wird man nicht die Genauigkeit und vor allem die Geschwindigkeit erreichen, die aktuelle professionelle Bestückautomaten erreichen, aber das ist auch nicht nötig.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Hier muss ein Kompromiss gefunden werden. Da ich mit OpenCV arbeite, benötige ich eine Kamera, die entweder eine Video4Windows Schnittstelle hat oder über eine andere,von OpenCV unterstützte Schnittstelle unterstützt. Die meisten Webcams tun das, wie es mit anderen Kameras aussieht, weiß ich nicht. Vielleicht kann man das auch so deichseln, dass eine handelsübliche Kamera genutzt wird, die in HD filmen kann. Da habeich mich allerdings noch nicht schlau gemacht, weil es noch so viele andere Dinge zu tun gibt. Es wird sich etwas finden.
    Mit der Bilderkennung habe ich mich bisher noch gar nicht befasst. Wenn es da OpenSource-Lösungen gibt, um so besser. Wenn nicht müsste man sich was basteln.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Beleuchtung habe ich schon fast fertig im Rechner. Ich benötige nurnoch die Maße des Objektivs der Bauteilkamera, dann stell ich jemanden an die Abkantpresse fürs Gehäuse und schicke die Bestellung zur Platinenfertigung raus. Ich hatte an SMD LED's gedacht. Jetzt im nachhinein ist das total doof. Da braucht man viel zu viele und ausserdem können auch welche kaputtgehen. Da sind TTH LED's viel schneller ausgetauscht als diese SMD Fitzeldinger. Geplant war eine octagonale Halbkugel mit den von dir genannten drei Ebenen: Direkt von unten, im 45° Winkel und direkt von der Seite. Das mit dem direkt von der Seite werde ich mir noch einmal überlegen müssen. Wichtig ist ja, dass der komplette Bereich ausgeleuchtet wird und nicht die LED's gegenseitig. Bedeutet, ich muss die Biegungen noch einmal anpassen. 0°, 22,5° und vllt 45°. Dafür muss ich mir die LED Spezifikationen allerdings noch einmal angucken und die Platinengröße ggf ebenso anpassen.
    Ich werde bei Gelegenheit mal ein paar Fotos der Kamerabeleuchtung von professionellen Bestückautomaten machen. Die Maße kann ich dir dann auch geben, wenn du willst, allerdings kann ich dir jetzt schon sagen, dass die verschiedenen Automaten verschieden Große Kameras und dementsprechend auch verschieden große Beleuchtungsmodule haben. Das hängt immer davon ab wie groß die Bauteile sein können, welche mit dem Automaten gesetzt werden können.
    Das sehe ich persönlich aber völlig unkritisch, denn wenn man eine relativ kleine Kamera hat, aber einen großen Stecker vermessen will, dann könnte man das ja softwaremäßig "rastern", also in Bereiche aufteilen und mehrere Fotos machen, welche dann am PC zusammen gesetzt werden. Der Zeitverlust dadurch ist ja völlig irrelevant, denn wieviele große Stecker setzt man schon als Hobbybastler.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich hatte das bei meinem Programm so gedacht: Es können Gehäuseformen als XML Datei erstellt werden, die dann ihre Dimensionen, die die Kamera im Endeffekt sehen soll. Weiterhin bietet diese Datei auch ein kleines Template, um das Gehäuse auf dem Bild zu zeichnen was sicher hilfreich sein wird, wenn man an der Bilderkennung herumprogrammiert. OpenCV verwendet dazu das „haartraining“ für Objekterkennung, indem die Library sich viele tausend Fotos anguckt und dann anhand der Kriterien entscheidet, ob das Objekt das richtige ist und wie es liegt. Dazuwerden auch ellenlange XML Dateien (Templates) mit Matrizen und Werten angelegt, durch die ich noch garnicht durchgestiegen bin. Diese OpenCV interne und meine selbst angelegten Templates treten dann als Bundle auf: Mein Template wird vom Programm eingelesen und damit kann dann das Programm erstellt werden: Man fährt über die Bauteilposition, wählt ein Bauteil aus, gibt ihm einen Namen und wählt aus den Templates die Gehäuseform aus. Danach auf Speichern drücken und weiter zur nächsten Position. Es mag sein, dass es dafür auch Konverter gibt, die die Ablaufpläne in G-code für die NC's umsetzen, aber so weit bin ich noch keinesfalls. Manuell ist erst einmal besser und einfacher (es gibt noch genug zu tun – Zuviel für einen Menschen, der noch nichtmal in Teilzeit daran arbeiten kann ). Ich bin ja auch irgendwie an die OpenCV Library gebunden, weshalb ich die Struktur danach ausrichten muss. Die großen Maschinenhersteller stecken nicht umsonst hunderttausende in ihre Bilderkennung. Den Vorgang hatte ich im obigen Post als Teachin bezeichnet.
    Wie gesagt, mit der Bauteilerkennung habe ich mich noch nicht befasst. Ich kann zwar sagen wie die Shapes in den Bestückautomaten erzeugt werden (und ich könnte auch ein Windows-Programm schreiben, mit dem man das auch kann), aber wie man das Kamerabild mit dem erzeugten Shape vergleicht weiß ich spontan auch noch nicht. Ersteinmal müsste ich den Bestücker selber bauen und dann mal weiter sehen wie ich die Erkennung realisieren könnte.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Momentan habe ich den folgenden Ablaufzum Pick&Place Vorgang in meinem Notizbuch stehen:
    -Kopf über den Gurt fahren
    -Lageerkennung des Bauteils
    -Korrektur der Nozzle
    -Aufnahme des Bauteils
    -Über die Bauteilekamera fahren
    -Erkennen ob das Bauteil aufgenommenworden ist
    -Lage erkennen und Offsets kalkulieren
    -Bauteil drehen
    -Nochmalige Kontrolle
    -Über die Zielposition fahren undplatzieren


    Kann man das noch irgendwie verbessern? Ist lediglich ein grober Ablauf, denn damit kann ich, wie es momentan aussieht, erst in 2 Jahren anfangen (Muss ja bis jetzt an alles denken und selbst eine eierlegende Wollmilchsau sein ).
    Die Lageerkennung des Bauteils im Gurt wird eigentlich nicht gemacht. Lediglich zum teachen der Abholposition wird das gemacht (einmalig vor Produktionsstart) und dann auch nur wenn es dazu einen Grund gibt. Gründe wären z.B. Bauteil soll außermittig abgeholt werden, die Taschen sind so groß, dass das Bauteil darin hin und her rutscht (dann sollte möglichst exakt die Mitte der Tasche getroffen werden), usw.
    Die Erkennung, ob das Bauteil aufgenommen worden ist und die Erkennung der Lage kann in einem Schritt vereint werden. Man kann auch zusätzlich eine Abfrage des Vacuum-Werts machen um schon direkt nach dem Abholen festzustellen ob das Bauteil abgeholt wurde (dann ist nachträglich noch die Lage-Erkennung nötig), aber so etwas ist nur aus Geschwindigkeitsgründen sinnvoll, also für uns sicher nicht von Interesse.
    Die "nochmalige" Kontrolle nach dem Drehen ist auch unnötig. Wenn man eine gescheite Nozzle verwendet und nicht zu schnell dreht sollte das überhaupt kein Problem darstellen. Nötig wäre so etwas nur dann, wenn man mit "krummen" Nozzlen arbeitet oder bei speziellen Bauformen (Stecker, usw.). Professionelle Bestückautomaten schauen sich das Bauteil einmal an, richten es aus und setzen es dann direkt.
    Mein Vorschlag:
    Vor dem Produktionsbeginn die Gurt-Erkennung, es sei denn man bastelt sich einen Feeder, der immer die exakt gleiche Position hat, auch nachdem man ein Bauteil gerüstet hat.
    Lage-Erkennung der LP mittels der Board-Kamera (Passer-Marken) anfahren, erkennen und die Differenz zur Soll-Lage beim Bestücken berücksichtigen
    Ab nun immer wiederholen, bis die LP komplett bestückt ist:
    -Gurt-Tasche anfahren,
    -Bauteil abholen
    -Über die Kamera fahren
    -Lage-Erkennung des Bauteils
    -Lage-Korrektur
    -Bestück-Koordinate anfahren
    -Bestücken


    Zitat Zitat von einballimwas Beitrag anzeigen
    Zum Thema Kalibrierung kann ich garnichts sagen, da ich erst schauen muss, wie es mit der Steuerung aussieht.
    Die Kalibrierung ist quasi nichts anderes wie das erkennen eines Bauteils. Statt mit dem Bauteil über die Kamera zu fahren fährt man halt mit der Nozzle (normalerweise mit speziellen Kalibrier-Tools) über die Kamera. Statt die Lage des Bauteils zu korrigieren speichert man die Differenz zwischen Ist- und Sollwert und berücksichtigt diese bei jedem Bestückvorgang.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Maschine, die du auf dem Video siehst, ist die Maschine eines Freundes, eigentlich eine CNC Fräse. Das bedeutet, sie arbeitet mit einer Steuerung, die komplette Programme einliest und dann Schritt für Schritt abarbeitet. Da ich aber keine Programme in diesem Sinne abarbeite, sondern immer wieder mit der Steuerung interagieren muss um Werte zu korrigieren, kann ich diese Funktionender Nc garnicht nutzen.
    Warum nicht? Ein Bestückautomat arbeitet genauso. Es werden lediglich etwas mehr Daten benötigt. Zum einen gibt es das NC-Programm. Darin stehen die Passer-Marken und Bestück-Koordinaten. Dann gibt es das Array-Programm, darin stehen Informationen über die Abholpositionen der Bauteile (XY-Position, Höhe). In der Parts-Library stehen Bauteil-Daten.
    Das Programm wird nun abgearbeitet:
    Zuerst wird im NC-Programm die erste Zeile abgearbeitet, da steht auch drin welche Abholnummer das Bauteil hat. Nun werden aus dem Array-Programm die Abholdaten zu der Abholnummer gelesen das Bauteil wird abgeholt. Nun werden die Bauteildaten aus der Parts-Library gelesen. Welche Daten benötigt werden steht mit im Array-Programm. Als nächstes wird das Bauteil über der Kamera vermessen und mit den Daten aus der Parts-Library vergleichen (stimmen die Größe, die Anzahl der Beine, usw. ?). Wenn alles passt wird das Bauteil noch ausgerichtet (Verdrehung des Bauteils, Verdrehung der LP und die Soll-Drehung). Der Versatz des Bauteils an der Nozzle kann nicht korrigiert werden, das wird lediglich mit den Bestück-Koordinaten verrechnet. Nun wird das NC-Programm weiter abgearbeitet. Die Bestück-Koordinaten werden angefahren und das Bauteil gesetzt (die Dicke der LP und die Höhe des Bauteils werden dabei berücksichtigt).
    ...weiter zur nächsten Zeile im NC-Programm...


    Zitat Zitat von einballimwas Beitrag anzeigen
    Momentan arbeite ich mit zwei Funktionen. Die eine zum absoluten positionieren nach NC Koordinaten und die andere, um relativ zu positionieren (verfahre kontinuierlich bis ich Stop sage). Alles weitere werde ich selbst implementieren müssen.
    Die erste Funktion ist praktisch eine Zeile eines NC-Programms. Da fehlen halt noch die Daten über die Abholpositionen und die Daten über das Bauteil.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Dazu arbeite ich momentan ein Konzept aus, damit die Modularität gewährleistet bleibt und ich mich nicht auf diesen Steuerungstyp festnageln muss. Es gibt einfach nix anderes momentan. Diese Schnittstelle von NC zu Programm ist verdammt wichtig: Du wirst dir wohl eine andere Steuerung zusammenschustern wollen. Wenn du also damit steuern möchtest, musst du dir die Schnittstellen anpassen. Mein Programm muss also eine Schnittstelle anbieten, die für möglichst viele Steuerungen möglichst komfortabel und einfach ist. Das sollten nicht mehr als 2-3 Funktionen sein. Der Rest, wie Arbeitsraumüberwachung und sowas, sollte in höheren Ebenen gemacht werden, also komplett von der Software übernommen werden. Je abstrahierter man ist, desto freier ist man auch in der Gestaltung.
    Ne ne, ich würde das auch nicht anders machen. Nur halt alle Bauteile direkt nacheinander abarbeiten, nicht dass man jedes mal die Koordinaten neu eingeben muss.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Da ich noch nie mit der USBCNC gearbeitet habe, und auch so gut wie keine Dokumentation vorhandenist (Die USBCNC wurde eigentlich als Steuerung entworfen und nicht für irgendwelche Zweckentfremdungen. Ein Job, den sie hervorragend erledigt, Lob an den Entwickler!) und die API Teile, die man für die Pick and Place Geschichte brauchen kann, recht minimalistisch ausfallen, muss ich gucken, wie ich damit hinkomme. Austesten, was diese oder jene Funktion überhaupt tut und dann ggf nutzen. Ich bin– im Gegensatz zu meinem Freund – total unbedarft in CNC's. Das höchste der Gefühle ist ein bisschen Fräsplan erstellen, aber alles weitere? Fehlanzeige. Bis das Interface zur Maschine richtig läuft, geht wohl noch ein bisschen Zeit ins Land. Er wohnt nicht gerade um die Ecke und ich habe noch mein Studium. Arbeiten mit der Maschine geht nunmal nur mit der Maschine. Das bedeutet Wochenenden zu opfern. Wochenenden, an denen man zur Abwechslung mal ausschlafen könnte (). Nunja, ich werde es noch hinbekommen. Momentan sind die Referenz und Stoppschalter dran. Danach die Umrechnung der NC internen Daten in Daten, mit denen ich was anfangen kann im Programm (mm, nicht Schritte oder ähnliches). Weil ich das noch nicht ganz draufhabe, fährt sie eben hin und wieder mal auf Referenz und manchmal eben über das Ziel hinaus
    Löst der Schalter nicht aus? Wenn die Maschine den Schalter erreicht muss die doch anhalten und den Schrittzähler für diese Achse auf Null setzen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich selbst werde mir natürlich eine weit weniger massive Maschine bauen. Aluprofile und Kugelumlaufspindeln mit Linearführungen, die ein wenig billiger sind. Schrittmotoren habe ich hier, da kann ich dir drei schicken (obich noch drei gleich starke habe, weiß ich allerdings nicht).
    Hey, danke. Das Angebot nehme ich gerne an. Aber vorher muss ich mal ein Konzept erarbeiten, wie ich das überhaupt realisieren will. Entweder ich fahre 2 Motoren gleichzeitig um ein Verkanten zu verhindern (dann müssten immer mindestens die 2 Motoren einer Achse gleich sein), oder ich baue eine Art Schiene, die nur einseitig betrieben wird.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Da das mit den Magneten dann ausfällt– wie macht man es dann richtig? Hast du eine Idee, vllt sogar eine Zeichnung (Hand/CAD – Egal)? Ich könnte mir nichts anderes vorstellen. Höchstens einen Bajonetverschluss.
    Auch davon werde ich Fotos machen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Wie soll das Nutzerinterface aussehen? Ich will es möglichst praktikabel machen und nicht komplett nachmeinen Bedürfnissen. In GUI Design bin ich auch komplett unerfahren, da ich Linux nutze und somit dauernd in der Konsole arbeite
    Das mit den GUIs könnte ich übernehmen. Wichtig zu wissen wäre wie ich die die Schrittmotoren richtig ansteuern kann. Kann ich das direkt über den Parallel-Port machen, oder müsste ich einen Verstärker bauen ...oder sind gar Treiber nötig?


    Zitat Zitat von einballimwas Beitrag anzeigen
    Was muss noch geklärt werden? Wiekannst du dich einbringen? Kannst du Metall bearbeiten oder auf solche Maschinen zurückgreifen?
    Leider nicht. Gelernt habe ich Radio- und Fernsehtechniker und tätig bin ich seit über 10 Jahren als Einrichter für SMD-Linien. Softwaremäßig könnte ich sicher einiges dazu beitragen, elektrisch müsste ich mein Wissen mal wieder auffrischen, würde aber sicher auch noch einiges basteln können. Die Mechanik ist nun wohl ein Bereich in der wir beide keine Möglichkeiten haben .
    Aber zur Not kann man immer noch was aus Holz bauen, und wenn es sich bewährt hat kann man sich diese Teile sicher auch irgendwo aus Alu herstellen lassen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich wohne zwischen Stuttgart und Karlsruhe. Vllt könnte man sich mal treffen und etwas ausarbeiten. So komplett über das Internet ist es ein wenig doof.
    Ich wohne bei Ansbach (Mittelfraken), das ist etwa 50 km vor Nürnberg.
    Momentan stecke ich noch mitten in der Renovierung, da habe ich nur wenig Zeit. Ansonsten könnten wir hier ganz gut was basteln. Ich habe eine Werkbank im Keller, und elektronisch bin ich auch recht gut ausgestattet (Lötstation, Heißluft-Station, Oszilloskop, und auch viele Bauteile (LEDs, Transistoren, Logik-ICs, Widerstände, usw. ...).
    Ach ja, das wichtigste habe ich vergessen ...den Kaffee-Vollautomaten
    Geändert von Holle (14.03.2012 um 23:33 Uhr) Grund: [/quote] vergessen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress