DE102013104928B4 - Vorrichtung und Verfahren für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung - Google Patents

Vorrichtung und Verfahren für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung Download PDF

Info

Publication number
DE102013104928B4
DE102013104928B4 DE102013104928.1A DE102013104928A DE102013104928B4 DE 102013104928 B4 DE102013104928 B4 DE 102013104928B4 DE 102013104928 A DE102013104928 A DE 102013104928A DE 102013104928 B4 DE102013104928 B4 DE 102013104928B4
Authority
DE
Germany
Prior art keywords
leading
code
time
parts
identifying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102013104928.1A
Other languages
English (en)
Other versions
DE102013104928A1 (de
Inventor
Lei Wang
Gang Liu
David Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cognex Corp
Original Assignee
Cognex Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cognex Corp filed Critical Cognex Corp
Publication of DE102013104928A1 publication Critical patent/DE102013104928A1/de
Application granted granted Critical
Publication of DE102013104928B4 publication Critical patent/DE102013104928B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10861Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07CPOSTAL SORTING; SORTING INDIVIDUAL ARTICLES, OR BULK MATERIAL FIT TO BE SORTED PIECE-MEAL, e.g. BY PICKING
    • B07C3/00Sorting according to destination
    • B07C3/18Devices or arrangements for indicating destination, e.g. by code marks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07CPOSTAL SORTING; SORTING INDIVIDUAL ARTICLES, OR BULK MATERIAL FIT TO BE SORTED PIECE-MEAL, e.g. BY PICKING
    • B07C5/00Sorting according to a characteristic or feature of the articles or material being sorted, e.g. by control effected by devices which detect or measure such characteristic or feature; Sorting by manually actuated devices, e.g. switches
    • B07C5/34Sorting according to other particular properties
    • B07C5/3412Sorting according to other particular properties according to a code applied to the object which indicates a property of the object, e.g. quality class, contents or incorrect indication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Toxicology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)
  • Manipulator (AREA)

Abstract

Vorrichtung für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung, wobei jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) eine Vorderkante (48) und eine Hinterkante (46) aufweist, die einen Teilort definieren, und jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) mit mindestens einem Code (16) gekennzeichnet sein soll, wobei die Vorrichtung Folgendes umfasst:eine Flächenkamera (17) mit einem zweidimensionalen Sichtfeld (FOV), wobei die Flächenkamera (17) benachbart zur Fördereinrichtung angeordnet ist, so dass die von der Fördereinrichtung transportierten Teile (26a, 26b, 26c, 26d, 26e, 26f) das FOV passieren;einen mit der Flächenkamera (17) verbundenen Prozessor (18), wobei der Prozessor (18) programmiert ist, folgende Schritte durchzuführen:(i) Empfangen von Bildern von der Flächenkamera (17);(ii) Identifizieren der Positionen von Codes (16) auf Teilen (26a, 26b, 26c, 26d, 26e, 26f) in mindestens einem der Bilder, wobei ein Code (16), der lokalisiert wurde, ein lokalisierter Code (16) ist;(iii) Identifizieren der Positionen von Vorderkanten (48) und Hinterkanten (46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f), wobei die Vorder- und Hinterkanten (48, 46) Teilorte definieren; und(iv) Zuordnen jedes lokalisierten Codes (16) zu einem die Position des lokalisierten Codes (16) enthaltenden Teilort,wobei die Vorrichtung ferner einen Teilanwesenheitssensor (20) an einer Position Ls umfasst, der, wenn eine Vorderkante (48) eine von einer Eintrittskante (42) definierte Linie durchbricht, an der Position Ls ein Teilanwesenheitssignal erzeugt, das an den Prozessor (18) weitergegeben wird,wobei der Prozessor (18) ferner dazu ausgebildet ist, wenn er das Teilanwesenheitssignal von dem Teilanwesenheitssensor (20) empfängt, eine Vorderkantenimpulszahl PCle in Entsprechung zu der von einem Geber (22) erzeugten augenblicklichen Zahl zu speichern und die Kamera (17) beginnen zu lassen, Bilder des FOVs aufzunehmen.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Systeme für maschinelles Sehen und insbesondere ein System, das eine Flächenkamera zum Lesen von Identifikationscodes auf Teilen und zum Zuordnen dieser Codes zu Teilen in bestimmten Positionen auf einer Fördereinrichtung verwendet.
  • Zahlreiche verschiedene Industrien verwenden heutzutage Bildverarbeitungssysteme, um Positionen von Gegenständen (z.B. Bauteile, Pakete usw.) innerhalb einer Anlage und vor allem auf Fördereinrichtungen, Transferstraßen usw. zu verfolgen. Um Teile auf einer Fördereinrichtung zu verfolgen, werden Barcodes oder 2D Matrixcodes auf jedes Teil aufgebracht, und eine Kamera wird der Fördereinrichtung benachbart für die Erkennung des Teils, während es ein Sichtfeld (FOV - Field of Vision) durchläuft, bereitgestellt. Um hochauflösende Bilder bei minimalen Hardwarekosten zu liefern, nutzen die meisten Systeme eine Zeilenkamera zur Erkennung von Teilen und Codes. Zwar funktionieren Zeilenkameras in einigen Anwendungsbereichen recht gut, allerdings haben Zeilenkameras verwendende Systeme zahlreiche Schwächen.
  • Zum einen sind Zeilenkameras lediglich in der Lage, ein einzelnes Bild eines Teils und des zugeordneten Codes zu erzeugen. Wenn ein einziges Bild aufgenommen wird, ist es in vielen Fällen möglich, dass die Bildqualität des einzigen Bildes aufgrund von Schwankungen im Codeneigungswinkel innerhalb des FOV, Wackeln des Teils oder der Kamera während der Bildaufnahme, mangelhaften Lichtverhältnissen, schlechter Markierungsqualität und dergleichen für Dekodierzwecke unzureichend ist, weshalb Zeilenkameras, die nur ein einzelnes Bild aufnehmen, oftmals Leseraten aufweisen, die für manche Anwendungsbereiche inakzeptabel sind.
  • Zum anderen ist der Erwerb einer Zeilenkamera zwar relativ günstig, doch das Verfahren, nach dem Zeilenkamerasysteme korrekt aufgebaut werden müssen, um gegenüber der Förderbewegung präzise ausgerichtet zu sein, ist oftmals zeitaufwändig und somit verhältnismäßig kostenintensiv.
  • Andere zweidimensionale Flächenkameras verwendende Systeme wurden entwickelt, die Codes mit deutlich verbesserten Leseraten lesen können, da Flächenkameras in der Lage sind, mehrere Bilder eines Codes aufzunehmen, während der Code ein FOV passiert, und somit mehrere Dekodierungsversuche unter Verwendung verschiedener Bilder durchgeführt werden können. Systeme mit Flächenkameras haben zwar vergleichsweise hohe Leseraten, doch bedauerlicherweise können bekannte Flächenkamerasysteme dekodierte Codes nicht korrekt präzisen Fördereinrichtungspositionen zuordnen.
  • Weiterer Stand der Technik ist aus der EP 2 272 596 A1 und der DE 102 60 201 A1 bekannt.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung stellt eine Vorrichtung mit den Merkmalen des Patentanspruchs 1 und ein Verfahren mit den Merkmalen des Patentanspruchs 17 bereit.
  • Es wurde erkannt, dass ein einfaches System für die Verfolgung von zu dekodierten Codes zuzuordnenden Teilpositionen in einem zweidimensionalen Sichtfeld bereitgestellt werden kann. In einer bevorzugten Ausführungsformumfasst dieses simple System einen Prozessor, eine zweidimensionale Kamera, einen Geber und einen Anwesenheitssensor umfasst. Der Geber ist mit einer Fördereinrichtung verknüpft und erzeugt Gebersignale, die eine Bewegung der Fördereinrichtung anzeigen. Der Geberzählstand wird jedes Mal inkrementiert, wenn sich die Fördereinrichtung um eine Inkrementalgeberstrecke bewegt. Der Anwesenheitssensor erzeugt jedes Mal Vorder- und Hinterkantensignale, wenn jeweils eine Vorderkante und eine Hinterkante eines Teils erkannt werden. Die Kamera erzeugt zweidimensionale Bilder eines Sichtfelds, durch welches die Fördereinrichtung Teile bewegt. Wenn der Sensor eine Kante erkennt, ordnet der Prozessor der Kante eine aktuelle Geberzahl zu. Jedes Bild wird einer Geberzahl zugeordnet, die bei der Aufnahme des Bildes eintritt. Der Prozessor versucht Codes in jedem aufgenommenen Bild zu dekodieren. Wenn ein Code in einem Bild decodiert wurde, verwendet der Prozessor die dem Bild zugeordnete Geberzahl, die Inkrementalgeberstrecke und die Vorder- und Hinterkantenimpulszahlen, um zumindest in einigen Ausführungsformen die momentanen Positionen der Vorder- und Hinterkanten zu identifizieren. Die momentanen Kantenpositionen werden mit der Position des dekodierten Codes verglichen und wenn der Code sich innerhalb des von den momentanen Kantenpositionen definierten Orts befindet, wird der Code für die anschließende Verfolgung dem von den Kanten definierten Teilort zugeordnet.
  • In anderen Ausführungsformen kann nach der Dekodierung eines Codes die Position des Codes zum Zeitpunkt der Erfassung der Vorder- und Hinterkanten zum Vergleich mit den Vorder- und Hinterkantenpositionen berechnet werden, um einen ähnlichen Code-Teil-Zuordnungsprozess zu erleichtern. Während einige Ausführungsformen einen Anwesenheitssensor umfassen, tun andere Ausführungsformen dies nicht und sind stattdessen auf die Analyse von aufgenommenen Bildern zur Bestimmung von Positionen von Teilkanten, die Codes zuzuordnen sind, angewiesen.
  • Während einige Ausführungsformen nur Vorder- und Hinterkantenpositionen von Teilen identifizieren, sind andere in der Lage, seitliche Kanten oder Seitenkanten von Teilen (z.B. mittels Bildanalyse) zu identifizieren, um Fälle zu bearbeiten, in denen die Orte zweier Teile entlang einer Förderbewegungsbahn überlappen.
  • Entsprechend den obigen Ausführungen umfassen zumindest einige Ausführungsformen eine Vorrichtung zum Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung, wobei jedes Teil eine Vorderkante und eine Hinterkante aufweist, die einen Teilort definieren, und jedes Teil mit zumindest einem Code zu kennzeichnen ist, wobei die Vorrichtung eine Flächenkamera mit einem zweidimensionalen Sichtfeld (FOV) umfasst, welche der Fördereinrichtung benachbart angeordnet ist, so dass von der Fördereinrichtung transportierte Teile das FOV passieren, wobei ein Prozessor mit der Flächenkamera verbunden ist, welcher programmiert ist, die Schritte des Erhaltens von Bildern von der Flächenkamera, des Identifizierens der Positionen von Codes auf Teilen in mindestens einem der Bilder, wobei ein lokalisierter Code ein lokalisierter Code ist, und des Identifizierens der Positionen von Vorder- und Hinterkanten von Teilen, wobei die Vorder- und Hinterkanten Teilorte definieren, und des Zuordnens jedes lokalisierten Codes zu einem die Position des lokalisierten Codes umfassenden Teilort auszuführen.
  • In einigen Fällen umfasst der Schritt des Identifizierens von Codepositionen das Identifizieren der Positionen von Codes zu einem ersten Zeitpunkt und der Schritt des Identifizierens der Positionen der Vorder- und Hinterkanten umfasst das Identifizieren der Positionen der Vorder- und Hinterkanten zum ersten Zeitpunkt. Einige Ausführungsformen umfassen einen der Fördereinrichtung zugeordneten Geber zum Erzeugen einer jeweiligen Geberimpulszahl, wenn sich die Fördereinrichtung um eine Inkrementalgeberstrecke bewegt, wobei der Schritt des Identifizierens der Positionen der Vorder- und Hinterkanten den Schritt des Verwendens der Geberimpulszahl zum Identifizieren der Positionen der Vorder- und Hinterkanten von Teilen zum ersten Zeitpunkt umfasst. In manchen Fällen ist der Prozessor des Weiteren programmiert, Vorder- und Hinterkantenimpulszahlen für jedes Teil auf der Fördereinrichtung zu identifizieren, wenn sich die Vorder- und Hinterkanten des Teiles jeweils an Sensorpositionen auf der Fördereinrichtung befinden, wobei der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten von Teilen den Schritt des Verwendens der Geberimpulszahl, der Inkrementalgeberstrecke und der Vorder- und Hinterkantenimpulszahlen zum Berechnen der Positionen der Vorder- und Hinterkantenimpulszahlen zum ersten Zeitpunkt beinhaltet.
  • Einige Ausführungsformen umfassen außerdem einen Teilanwesenheitssensor, der der Fördereinrichtung benachbart an der Sensorposition angeordnet ist, um die Anwesenheit der Vorder- und Hinterkanten der Teile zu erkennen und Kantenerfassungssignale an den Prozessor weiterzugeben. In manchen Fällen bewegt die Fördereinrichtung Teile entlang eines Förderpfads in das FOV, wobei sich die Sensorposition vor der Position befindet, an der die Codeposition entlang des Förderpfads identifiziert wird. In manchen Fällen bewegt die Fördereinrichtung Teile entlang eines Förderpfads in das FOV, so dass Teile entlang einer Eintrittskante in das FOV eintreten und entlang einer Austrittskante aus dem FOV austreten, wobei sich der Teilanwesenheitssensor nahe der Eintrittskante befindet.
  • In manchen Fällen beinhaltet der Schritt des Identifizierens der Position der Vorderkante zum ersten Zeitpunkt die Schritte des Berechnens einer Vorderkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Vorderkantenimpulszahl, das Verwenden der Vorderkantendifferenzzahl und der Inkrementalgeberstrecke zum Berechnen einer Vorderkantenpositionsänderung und das Kombinieren der Vorderkantenpositionsänderung und der ersten Position zum Identifizieren der Position der Vorderkante zum ersten Zeitpunkt, und der Schritt des Identifizierens der Position der Hinterkante umfasst die Schritte des Berechnens einer Hinterkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Hinterkantenimpulszahl, das Verwenden der Hinterkantendifferenzzahl und der Inkrementalgeberstrecke zum Berechnen einer Hinterkantenpositionsänderung und das Kombinieren der Hinterkantenpositionsänderung und der ersten Position zum Identifizieren der Position der Hinterkante zum ersten Zeitpunkt.
  • In manchen Fällen umfasst der Schritt des Identifizierens der Positionen von Codes in mindestens einem der Bilder zu einem ersten Zeitpunkt das Aufnehmen einer Vielzahl von Bildern, den Versuch des Dekodierens von Codes in zumindest einem Teil der aufgenommenen Bilder und, wenn ein Code erfolgreich dekodiert wurde, das Identifizieren der Position des erfolgreich dekodierten Codes. In manchen Fällen identifiziert der Prozessor die Vorder- und Hinterkanten von ersten und zweiten Teilen, bevor er die Position eines Codes identifiziert, wobei der Prozessor den Code auf Basis der Codeposition und der den ersten und zweiten Teilen zugeordneten Teilorte einem der ersten und zweiten Teile zuordnet, nachdem der Prozessor die Position eines Codes identifiziert hat. In einigen Fällen führt der Prozessor den Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten von Teilen aus, indem er die Vorder- und Hinterkanten in den aufgenommenen Bildern identifiziert. In manchen Fällen umfasst der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten von Teilen innerhalb des FOV zum ersten Zeitpunkt das Identifizieren von ersten und zweiten Seitenkanten der Teile im FOV zur weiteren Definition von Teilorten.
  • In manchen Fällen umfasst der Schritt des Identifizierens der Positionen von Codes auf Teilen das Identifizieren jedes Codes in einem zu einem ersten Zeitpunkt aufgenommenen Bild, umfasst der Schritt des Identifizierens der Vorder- und Hinterkanten von Teilen das Erkennen der Vorder- und Hinterkanten jedes Teils zu einem von dem ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt, und umfasst der Schritt des Zuordnens jedes lokalisierten Codes zu einem Teilort das Verwenden der Position des Codes zum ersten Zeitpunkt zum Berechnen der Position des Codes zum zweiten Zeitpunkt, und das Zuordnen, wann die Position des Codes zum zweiten Zeitpunkt innerhalb des zum zweiten Zeitpunkt von den Positionen der Vorder- und Hinterkanten definierten Teilorts liegt. In manchen Fällen liegt der erste Zeitpunkt nach dem zweiten Zeitpunkt. In manchen Fällen liegt der zweite Zeitpunkt nach dem ersten Zeitpunkt.
  • In manchen Fällen umfasst der Schritt des Identifizierens der Positionen von Codes auf Teilen das Identifizieren jedes Codes in einem zu einem ersten Zeitpunkt aufgenommenen Bild, umfasst der Schritt des Identifizierens der Vorder- und Hinterkanten von Teilen das Erkennen der Vorder- und Hinterkanten jedes Teils zu einem vom ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt, und umfasst der Schritt des Zuordnens jedes lokalisierten Codes zu einem Teilort das Verwenden der Positionen der Vorder- und Hinterkanten zum zweiten Zeitpunkt zum Berechnen der Positionen der Vorder- und Hinterkanten zum ersten Zeitpunkt und das Zuordnen, wann die Position des Codes zum ersten Zeitpunkt innerhalb des von den Positionen der Vorder- und Hinterkanten zum ersten Zeitpunkt definierten Teilorts liegt.
  • Andere Ausführungsformen umfassen eine Vorrichtung für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung, wobei jedes Teil eine Vorderkante und eine Hinterkante aufweist und jedes Teil mit mindestens einem Code zu kennzeichnen ist, wobei die Vorrichtung einen der Fördereinrichtung zugeordneten Geber für das Generieren einer Geberimpulszahl umfasst, wobei sich die Fördereinrichtung bei jeder Impulszahl um eine bekannte Inkrementalgeberstrecke entlang eines Förderpfads bewegt, einen Teilanwesenheitssensor zum Erkennen von Vorder- und Hinterkanten von Teilen in einer ersten Position auf der Fördereinrichtung, eine Flächenkamera mit einem zweidimensionalen Sichtfeld (FOV), wobei die Kamera der Fördereinrichtung benachbart angeordnet ist, so dass die von der Fördereinrichtung transportierten Teile das FOV passieren, einen mit dem Geber, dem Sensor und der Flächenkamera verbundenen Prozessor, wobei der Prozessor programmiert ist, folgende Schritte durchzuführen: Identifizieren einer Vorderkantenimpulszahl für jedes das FOV passierende Teil, wenn die Vorderkante des Teils von dem Anwesenheitssensor an der ersten Position erkannt wird; und Identifizieren einer Hinterkantenimpulszahl, wenn die Hinterkante des Teils von dem Anwesenheitssensor an der ersten Position erkannt wird; Empfangen von Bildern von der Flächenkamera; Identifizieren der Position von mindestens einem Code auf einem Teil in mindestens einem der Bilder zu einem ersten Zeitpunkt, wobei der lokalisierte Code ein lokalisierter Code ist; Verwenden der Vorderkantenimpulszahl und der Hinterkantenimpulszahl sowie der Geberimpulszahl und der bekannten Inkrementalgeberstrecke für jedes Teil zumindest einer Teilmenge der Teile in dem FOV zum ersten Zeitpunkt, um einen von den Vorder- und Hinterkanten des Teils zum ersten Zeitpunkt definierten Teilort zu identifizieren; und Zuordnen des lokalisierten Codes zu einem Teilort, welcher die Position des lokalisierten Codes zum ersten Zeitpunkt beinhaltet.
  • Weitere bevorzugte Ausführungsformen umfassen ein Verfahren für das Zuordnen von Codes auf Teilen zu Teilpositionen auf einer Fördereinrichtung, wobei jedes Teil eine Vorderkante und eine Hinterkante aufweist und jedes Teil mit mindestens einem Code zu kennzeichnen ist, wobei das Verfahren folgende Schritte umfasst: Aufnehmen von zweidimensionalen Bildern eines FOV, das jeweils einen zweidimensionalen Raum umfasst, durch den die Fördereinrichtung Teile entlang eines Förderpfads transportiert; Identifizieren der Positionen von Codes auf Teilen in mindestens einem der Bilder, wobei ein Code, der lokalisiert ist, ein lokalisierter Code ist; Identifizieren der Positionen von Vorder- und Hinterkanten von Teilen, wobei die Vorder- und Hinterkanten Teilorte definieren; und Zuordnen jedes lokalisierten Codes zu einem die Position des lokalisierten Codes umfassenden Teilort.
  • Manche Verfahren dienen auch zur Verwendung mit einem der Fördereinrichtung zugeordneten Geber für das Erzeugen einer jeweiligen Geberimpulszahl, wenn sich die Fördereinrichtung um eine Inkrementalgeberstrecke bewegt, wobei der Prozessor programmiert ist, den Schritt des Identifizierens der Positionen der Vorder- und Hinterkanten auszuführen, indem er die Geberimpulszahl dazu verwendet, die Positionen der Vorder- und Hinterkanten von Teilen zum ersten Zeitpunkt zu identifizieren.
  • In manchen Fällen ist der Prozessor des Weiteren programmiert, Vorder- und Hinterkantenimpulszahlen für jedes Teil auf der Fördereinrichtung zu identifizieren, wenn sich die Vorder- und Hinterkanten des Teils jeweils in einer Sensorposition auf der Fördereinrichtung befinden, wobei der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten von Teilen den Schritt umfasst, die Geberimpulszahl, die Inkrementalgeberstrecke und die Vorder- und Hinterkantenimpulszahlen zum Berechnen der Positionen der Vorder- und Hinterkantenimpulszahlen zum ersten Zeitpunkt zu verwenden. In manchen Fällen ist der Prozessor programmiert, den Schritt des Identifizierens der Position der Vorderkante zum ersten Zeitpunkt durchzuführen, indem er eine Vorderkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Vorderkantenimpulszahl berechnet, die Vorderkantendifferenzzahl und die Inkrementalgeberstrecke dazu verwendet, eine Vorderkantenpositionsänderung zu berechnen, und die Vorderkantenpositionsänderung und die erste Position kombiniert, um die Position der Vorderkante zum ersten Zeitpunkt zu identifizieren, und den Schritt des Identifizierens der Position der Hinterkante durchzuführen, indem er eine Hinterkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Hinterkantenimpulszahl berechnet, die Hinterkantendifferenzzahl und die Inkrementalgeberstrecke dazu verwendet, eine Hinterkantenpositionsänderung zu berechnen, und die Hinterkantenpositionsänderung und die erste Position kombiniert, um die Position der Hinterkante zum ersten Zeitpunkt zu identifizieren. In einigen Fällen ist der Prozessor des Weiteren programmiert, den Schritt des Identifizierens der Positionen von Codes in mindestens einem der Bilder zu einem ersten Zeitpunkt zu identifizieren, indem er eine Vielzahl von Bildern erhält, die Codes in zumindest einem Teil der erhaltenen Bilder zu dekodieren versucht und, wenn ein Code erfolgreich dekodiert wurde, die Position des erfolgreich dekodierten Codes identifiziert.
  • In manchen Fällen identifiziert der Prozessor die Vorder- und Hinterkanten von ersten und zweiten Teilen, bevor er die Position eines Codes identifiziert, wobei der Prozessor, nachdem der Prozessor die Position eines Codes identifiziert, den Code auf Basis der Codeposition und der den ersten und zweiten Teilen zugeordneten Teilorte einem der ersten und zweiten Teile zuordnet. In manchen Fällen führt der Prozessor den Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten von Teilen durch, indem er die Vorder- und Hinterkanten in den erhaltenen Bildern identifiziert. In manchen Fällen umfasst der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten von Teilen innerhalb des FOV zum ersten Zeitpunkt das Identifizieren von ersten und zweiten Seitenkanten der Teile im FOV zur weiteren Definition von Teilorten.
  • In manchen Fällen umfasst der Schritt des Identifizierens der Positionen von Codes auf Teilen das Identifizieren jedes Codes in einem zu einem ersten Zeitpunkt aufgenommenen Bild, umfasst der Schritt des Identifizierens der Vorder- und Hinterkanten von Teilen das Erkennen der Vorder- und Hinterkanten jedes Teils zu einem vom ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt, und umfasst der Schritt des Zuordnens jedes lokalisierten Codes zu einem Teilort das Verwenden der Position des Codes zum ersten Zeitpunkt zum Berechnen der Position des Codes zum zweiten Zeitpunkt und das Zuordnen, wann die Position des Codes zum zweiten Zeitpunkt innerhalb des zum zweiten Zeitpunkt von den Vorder- und Hinterkanten definierten Teilorts liegt. In manchen Fällen liegt der erste Zeitpunkt nach dem zweiten Zeitpunkt. In manchen Fällen liegt der zweite Zeitpunkt nach dem ersten Zeitpunkt.
  • In anderen Fällen umfasst der Schritt des Identifizierens der Positionen von Codes auf Teilen das Identifizieren jedes Codes in einem zu einem ersten Zeitpunkt aufgenommenen Bild, umfasst der Schritt des Identifizierens der Vorder- und Hinterkanten von Teilen das Erkennen der Vorder- und Hinterkanten jedes Teils zu einem von dem ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt, und umfasst der Schritt des Zuordnens jedes lokalisierten Codes zu einem Teilort das Verwenden der Positionen der Vorder- und Hinterkanten zum zweiten Zeitpunkt zum Berechnen der Positionen der Vorder- und Hinterkanten zum ersten Zeitpunkt und das Zuordnen, wann die Position des Codes zum ersten Zeitpunkt innerhalb des zum ersten Zeitpunkt von den Positionen der Vorder- und Hinterkanten definierten Teilorts liegt. Für das Erreichen der vorgenannten und damit verbundenen Ziele umfasst die Erfindung dabei die im Folgenden ausführlich beschriebenen Merkmale. Die nachfolgende Beschreibung und die anhängende Zeichnung legen bestimmte erläuternde Aspekte der Erfindung detailliert dar. Diese Aspekte zeigen jedoch nur einige wenige Beispiele für die verschiedensten Wege auf, in denen die Prinzipien der Erfindung ausgeführt sein können. Andere Aspekte, Vorteile und neuartige Merkmale der Erfindung ergeben sich aus der folgenden detaillierten Beschreibung der Erfindung, wenn sie im Kontext mit der Zeichnung betrachtet wird.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNG
    • 1 ist ein schematisches Diagramm, das ein mit einer Teilfördereinrichtung verwendetes Betrachtungssystem darstellt, welches zumindest einigen Aspekten der vorliegenden Erfindung entspricht;
    • 2 ist ein schematisches Diagramm, das ein Teil zeigt, welches sich in ein Sichtfeld einer zweidimensionalen Kamera bewegt, die einen Teil des in 1 gezeigten Systems bildet;
    • 3 ähnelt 2, zeigt allerdings einen anderen Zeitpunkt, zu dem sich ein Teil weiter in das Sichtfeld der Kamera bewegt hat;
    • 4 ähnelt 2, zeigt allerdings einen anderen Zeitpunkt, zu dem sich das Teil weiter in das Sichtfeld der Kamera bewegt hat;
    • 5 ähnelt 2, zeigt allerdings drei Teile im Sichtfeld einer Kamera;
    • 6 ist ein Flussdiagramm, das ein zumindest einigen Aspekten der vorliegenden Erfindung entsprechendes Verfahren zeigt;
    • 7 ähnelt 2, zeigt allerdings zwei Teile im Sichtfeld einer Kamera, wobei die Positionen der beiden Teile entlang einer zur Bewegungsrichtung der Fördereinrichtung senkrechten Richtung überlappen;
    • 8 ähnelt 7, zeigt allerdings bewegungsdefinierte Teilorte, die zwei Teilen auf einer Fördereinrichtung zugeordnet sind;
    • 9 ist ein Subprozess, der anstelle eines Teils des in 6 gezeigten Prozesses angewandt werden kann, um mit Teilen zu verfahren, die wie in 7 und 8 gezeigt räumlich überlappen; und
    • 10 ist ein dem in 2 gezeigten Schema ähnliches Schema, das allerdings Teilanwesenheitssensoren in unterschiedlichen verhältnismäßigen Positionen gegenüber einem Sichtfeld zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Unter Bezugnahme auf die Zeichnung, in welcher gleiche Referenzzeichen ähnlichen Elementen in den verschiedenen Ansichten entsprechen, und insbesondere in Bezug auf 1 wird die vorliegende Erfindung nun im Kontext eines beispielhaften Systems 10 mit einer Förderunteranordnung 12, einer zweidimensionalen Flächenkamera 17, einem Systemprozessor 18, einem Teilanwesenheitssensor 20, einem Positionsgeber 22, einem Ausleitarm 24 und einem Ausleitmotor 25 beschrieben. Die Förderanordnung 12 ist dazu ausgebildet, Teile, wie in 1 dargestellt, entlang eines Förderbahnpfads von links nach rechts zu transportieren. Beispielhafte Teile auf einer Fläche 14 der Förderanordnung 12 sind als 26a, 26b, 26c, 26d und 26e gekennzeichnet und ein Teil außerhalb der Förderanordnung 12 ist als 26f gekennzeichnet. In zumindest einigen Ausführungsformen sind die Teile 26a-26f mittels eines Vereinzelersubsystems (nicht dargestellt) vereinzelt, derart, dass sich in jeder Position entlang der Förderanordnung jeweils nur ein Teil befindet.
  • Außerdem wird in 1 eine der Länge der Förderanordnung 12 benachbarte Positionsskala 30 gezeigt, die Positionen entlang der Fördereinrichtungslänge angibt. Der beispielhafte Skalenbereich liegt zwischen einer Nullposition an einem vorderen Ende der Fördereinrichtung und einer 200-Position an einem hinteren Ende der Fördereinrichtung. Die für die Ausbildung der Skala 30 verwendeten Längeneinheiten können beliebige Einheiten sein, die klein genug sind, um in einem bestimmten Anwendungsbereich nützlich zu sein.
  • Wiederum gemäß 1 ist ein Positionsgeber 22 mit der Förderanordnung 12 verbunden und erzeugt ein Geberimpulszahlsignal, das verwendet werden kann, um die Position der Fördereinrichtung entlang des Förderpfads zu identifizieren und insbesondere um die Positionen der auf einer Fläche 14 der Förderanordnung befindlichen Teile zu identifizieren. Zu diesem Zweck inkrementiert der Geber 22 eine jeweilige Geberimpulszahl, wenn sich die Fläche 14 der Anordnung 12 um eine festgelegte Förderstrecke Dei (d.h. eine „Inkrementalgeberstrecke“) bewegt. Wenn die Geberimpulszahl zum dem Zeitpunkt, zu dem sich ein Teil (z.B. 26a) in einer bestimmten Position auf der Fläche 14 entlang des Förderpfads befindet, bekannt ist, kann die Veränderung der Geberimpulszahl und der Inkrementalgeberstrecke Dei somit dazu verwendet werden, die unmittelbar darauffolgende Position des Teils auf der Fläche 14 zu identifizieren. Dieses Verfahren zur Identifikation der Position eines Teils auf der Fläche 14 wird untenstehend in größerer Ausführlichkeit beschrieben. Der Geber 22 gibt die Impulszahl an den Prozessor 18 weiter.
  • Weiterhin in 1 ist die Kamera 17 eine Flächenkamera und kann einen zweidimensionalen CCD-Kamerasensor, einen zweidimensionalen CMOS-Kamerasensor oder jede andere Art von Kamerasensor umfassen, die für das Erzeugen von Bildern zu Dekodierzwecken geeignet ist. Die Kamera 17 weist ein Sichtfeld 28 auf, das durch eine Linse auf dem 2D-Kamerasensor fokussiert wird. Der Kamerasensor erzeugt zweidimensionale Bilder des Sichtfelds, die an den Prozessor 18 weitergegeben werden. Die Kamera 17 ist der Förderanordnung 12 benachbart angeordnet, so dass sich die Teile, während sie den Förderpfad (von links nach rechts wie in 1 dargestellt) entlang transportiert werden, durch das Sichtfeld 28 der Kamera bewegen.
  • In zumindest einigen Ausführungsformen ist die Kamera 17 so positioniert, dass das Sichtfeld 28 eine gesamte Breite der Förderanordnung 12 und eine wesentliche Fläche entlang der Bahn der Förderbewegung überspannt, so dass zur gleichen Zeit mehr als ein Teil innerhalb des Sichtfelds 28 liegen kann (siehe 1). In 1 erstreckt sich das Kamerasichtfeld von einer Eintrittskante 42 an der Fördereinrichtungsposition 70 bis zu einer Austrittskante 44 an der Fördereinrichtungsposition 120. Die Austrittskante 44 liegt auf dem Förderpfad unterhalb der Eintrittskante 42. Wie die Kennzeichnung nahelegt, treten die Teile, wenn sie sich durch die Förderbewegung in das Sichtfeld 28 bewegen, zuerst entlang der Eintrittskante 42 in das Sichtfeld ein und die Teile treten dann entlang der Austrittskante 44 aus dem Sichtfeld 28 aus. Die Sichtfeldeintrittskantenposition und die Sichtfeldaustrittskantenposition werden im Folgenden jeweils als Len und Lex bezeichnet (siehe 2).
  • Wiederum in 1 kann ein Anwesenheitssensor 20 in jeder beliebeigen Form vorliegen, einschließlich in Form eines Pencil-Beam-Lasersensors, eines Lichtsensors usw., der erkennen kann, wann ein Teil eine Linie auf der Fördereinrichtungsanordnung 12 überschreitet. Auch mit Bezug auf 2 ist der Anwesenheitssensor 20 der Fläche 14 benachbart entlang der Eintrittskante 42 des Sichtfelds 28 an einer Sensorposition oder ersten Position Ls angeordnet, um zu erkennen, wann sich ein beliebiger Teil eines Teils in einer der Eintrittskante 42 zugeordneten Position befindet. Der Sensor 20 gibt ein entsprechendes Teilanwesenheitssignal an den Prozessor 18 weiter, wenn sich ein Teil an der Eintrittskantenposition 42 befindet.
  • Wiederum in 1 sind ein Ausleitarm 24 und -motor 25 dafür vorgesehen, Teile unter bestimmten Umständen von der Fläche 14 zu entfernen. Wenn zum Beispiel ein Teil einen Identifikationscode tragen muss, das Teil jedoch keinen aufweist, kann der Prozessor 18 den Motor 25 ansteuern, so dass dieser den Arm 24 aktiviert und das Teil von der Fläche 14 schiebt (siehe Teil 26f). Andere Kriterien für das Entfernen eines Teils von der Fläche 14 sind denkbar. Außerdem sind andere Teilhandhabungs- oder Verarbeitungsfunktionen auf Basis des Codeleseverfahrens denkbar (z.B. das Führen verschiedener Teile entlang verschiedener Förderwege in einem Mehrwegesystem auf Basis der Identifikation von Informationen in einem Code).
  • Gemäß 1 ist der Prozessor 18 programmiert, verschiedene Prozesse durchzuführen, von denen zumindest einige den verschiedenen Aspekten der vorliegenden Erfindung entsprechen. Im Allgemeinen empfängt der Prozessor 18 Signale von Geber 22 und Anwesenheitssensor 20 sowie Bilder von der Kamera 17 und verwendet die Signale und Bilder zur Identifikation von auf den das Sichtfeld passierenden Teilen angebrachten Codes und ordnet den Code, wenn ein Code identifiziert wurde, einem bestimmten Teilort (z.B. Position eines Teils) auf der Fördereinrichtungsfläche 14 zu. Im vorliegenden Beispiel, in dem ein Teil erkannt wird, dem aber kein Code zugeordnet ist, steuert der Prozessor 18 den Motor 25 und den Arm 24, so dass sie das Teil von der Fläche 14 entfernen, sobald sich das Teil bei dem Arm 24 befindet.
  • Bei zumindest einigen Ausführungsformen ist es denkbar, dass die Position der Kamera 17 und insbesondere des Sichtfelds 28 gegenüber der Förderanordnung 12 während eines Kommissionierungsprozesses identifiziert und an den Prozessor 18 weitergegeben wird. Die Position des Sichtfelds wird jeweils durch die Angabe der Eintritts- und Austrittskantenpositionen Len und Lex (siehe nochmals 2) definiert. Außerdem wird die Inkrementalgeberstrecke Dei (d.h. die Strecke, welche jeder Punkt auf der Fördereinrichtungsfläche 14 zwischen den Geberzahlinkrementen zurücklegt) während des Kommissionierungsprozesses identifiziert und an den Prozessor 18 weitergegeben. In den hier beschriebenen Beispielen wird davon ausgegangen, dass die Sichtfeldposition wie in den Figuren gezeigt (siehe v.a. 1) zwischen den Positionen 70 und 120 liegt und dass die Inkrementalgeberstrecke 0,20 Einheiten pro Zahl beträgt (d.h. ein Teil bewegt sich alle fünf Geberzahlen um eine Einheit der Fördereinrichtungsskala).
  • Als nächstes können bei einem Teil auf der Fläche 14 die Positionen der Vorder- und Hinterkanten des Teils auf der Fördereinrichtungsfläche 14 zusammen mit Geberimpulszahlen einmal identifiziert werden, wobei die Positionen und Geberzahlen nachfolgend zusammen mit dem sich ändernden Geberwert verwendet werden, um augenblickliche Teilpositionen bezüglich der Förderanordnung 12 durchgängig oder periodisch zu berechnen. Sobald eine Identifikation oder eine andere Art von Code in einem aufgenommenen Bild erfolgreich decodiert wurde, kann die Position des Codes im Sichtfeld 28 festgestellt und in eine Position bezüglich der Förderanordnung 12 umgewandelt werden und die Positionen aller Teile können mittels der augenblicklichen Geberimpulszahl, der Vorder- und Hinterkantenimpulszahlen jedes Teils und der Inkrementalgeberstrecke Dei berechnet werden. Die Positionen aller Teile auf der Fördereinrichtung können mit der Position des dekodierten Codes verglichen werden. Wo die Position eines dekodierten Codes der Position eines der Teile entspricht, wird der Code der Teilposition zugeordnet und die Verfolgung des spezifischen Teils beginnt. Wenn ein Teil das Sichtfeld 28 verlässt, ohne dass ihm mindestens ein Code zugeordnet wurde, verfolgt der Prozessor 18 die Position des Teils weiter und betätigt den Arm 24, so dass dieser das Teil von der Förderanordnung 12 entfernt, sobald sich das Teil bei dem Arm befindet.
  • Entsprechend der obigen Beschreibung wird in 6 ein Verfahren 100 dargestellt, welches unter Verwendung des Systems aus 1 durchgeführt wird und das zumindest einigen Aspekten der vorliegenden Erfindung entspricht. In Block 102 wird das Sichtfeld 28 an die Fördereinrichtungsposition gekoppelt, indem Eintrittskanten- 42 und Austrittskantenpositionen 44 (d.h. Len und Lex) an den Prozessor 18 weitergegeben werden. Im vorliegenden Beispiel sind jeweils die Eintritts- und Austrittskantenpositionen 70 und 120 angegeben. Bei 102 wird auch die Inkrementalgeberstrecke Dei an den Prozessor 18 weitergegeben. Hierbei wird wiederum davon ausgegangen, dass die Strecke Dei 0,20 Einheiten pro Geberzahl beträgt.
  • Ebenfalls in Bezug auf 2 ist eine Draufsicht dargestellt, die ein Kamerasichtfeld 28 zeigt, wobei sich ein Teil 26a, das sich von links nach rechts bewegt, gerade auf der Eintrittskante 42 des Sichtfelds 28 befindet (siehe Vorderkante 48 von Teil 26a an der Eintrittskante 42). Sobald die Vorderkante 48 die von der Eintrittskante 42 definierte Linie durchbricht, erzeugt der Anwesenheitssensor 20 an einer Position Ls ein Teilanwesenheitssignal, das in Block 104 an den Prozessor 18 weitergegeben wird. Wenn der Prozessor 18 das Teilanwesenheitssignal vom Sensor 20 empfängt, speichert der Prozessor 18 eine Vorderkantenimpulszahl PCle in Block 104 in Entsprechung zu der vom Geber 22 erzeugten augenblicklichen Zahl. In diesem Beispiel wird davon ausgegangen, dass die Vorderkantenimpulszahl 100 beträgt. Wenn der Prozessor 18 das Teilanwesenheitssignal empfangen hat, lässt der Prozessor 18 auch die Kamera 17 in Block 108 damit beginnen, Bilder des Sichtfelds 28 aufzunehmen. Zumindest in einigen Ausführungsformen fährt die Kamera 17 fort, in schneller Folge Bilder des Sichtfelds 28 aufzunehmen, bis sich kein Teil mehr im Sichtfeld 28 befindet. Bei anderen Ausführungsformen steuert der Prozessor 18 die Kamera 17 dahingehend, dass sie, nachdem jedes Teil im Sichtfeld 28 mindestens einem Code zugeordnet wurde, das Aufnehmen neuer Bilder einstellt, bis ein Eintreten eines neuen Teils in das Sichtfeld 28 erkannt wird.
  • Noch immer in Bezug auf 1 und 6 und nun auch auf 3 wird die Hinterkante 46 eines Teils 26a, das sich in das Sichtfeld 28 bewegt, schließlich in Block 109 erkannt, wenn der Sensor 20 das Erzeugen eines Teilanwesenheitssignals einstellt. Wenn die Hinterkante 46 erkannt wird, zeichnet der Prozessor 18 in 111 eine Hinterkantenimpulszahl PCte auf und erzeugt damit ein Impulszahlenpaar (d.h. PCle und PCte), das einen Teilort für das Teil definiert, das zuletzt in das Sichtfeld 28 eingetreten ist. In diesem Beispiel wird davon ausgegangen, dass die Hinterkantenimpulszahl PCte 150 beträgt. Nach Block 111 geht die Steuerung auf Block 110 über. Wenn die Hinterkante in Block 109 nicht erkannt wird, geht die Steuerung auf Block 110 über.
  • Sobald der Prozessor 18 ein Bild von der Kamera 17 erhält, analysiert der Prozessor das Bild in Block 110, um Codekandidaten zu identifizieren, wobei jeder Codekandidat einen Teil des Bilds umfasst, das zumindest einige Charakteristika aufweist, die der Tatsache entsprechen, dass der Teil ein Code auf einem Teil ist. Sobald ein Codekandidat identifiziert ist, versucht der Prozessor 18 den Code zu dekodieren. Wenn ein Kandidat in Block 112 nicht erfolgreich dekodiert wird, lässt der Prozessor 18 den Kandidaten aus und die Steuerung geht auf Block 121 über. In Block 121 berechnet der Prozessor 18 für jeden Teilort (d.h. für jedes PCle-PCte-Paar) eine momentane Hinterkantenposition, indem er folgende Gleichung löst: Lcte = Ls + ( PCimage PCte ) ( Dei )
    Figure DE102013104928B4_0001
    wobei PCimage die dem letzten Bild entsprechende augenblickliche Impulszahl ist und Ls die Position des Sensors 20 ist (siehe 2). PCte ist die Hinterkantenimpulszahl für das Teil, das sich in Block 111 auf der Arbeitsoberfläche befindet, und Dei ist die Inkrementalgeberstrecke.
  • Im nächsten Schritt stellt der Prozessor 18 fest, ob eines der zuvor im Sichtfeld 28 erkannten Teile das Sichtfeld verlassen hat, ohne einem dekodierten Code zugeordnet worden zu sein. Zu diesem Zweck vergleicht der Prozessor 18 in Block 122 die Hinterkantenposition Lcte eines Teils, das keinem Code zugeordnet ist, mit der Sichtfeldaustrittskantenposition Lex. Wenn eine momentane Hinterkantenposition Lcte außerhalb der Austrittskantenposition Lex liegt, zeigt der Prozessor 18 ein Fehlersignal für den Teilort an, der der Hinterkantenposition Lcte zugeordnet ist (d.h. für das Teil, das gerade aus dem Sichtfeld 28 ausgetreten ist). Das Fehlersignal wird dazu verwendet, den Ausleitmotor 25 dahingehend zu steuern, dass er das Teil von der Förderanordnung 12 entfernt, sobald sich das Teil an dem Arm 24 befindet.
  • Mit Bezug zu 4, während sich das Teil 26a entlang des Förderpfads innerhalb des Sichtbereichs 28 fortbewegt, generiert die Kamera 17 nun eine Reihe von Bildern, die zur Identifikation von Codekandidaten und zum Versuch des Dekodierens dieser Kandidaten an den Prozessor 18 weitergegeben werden. Schließlich wird ein Bild eines Teils mit einem Code aufgenommen, wobei das Bild des Codes von ausreichender Qualität ist, dass der Prozessor 18 den Code in Block 112 dekodieren kann. Im vorliegenden Beispiel wird angenommen, dass der Prozessor 18 in der Lage ist, den Code 16 in dem Bild von 4 zu decodieren, wenn der Code 16 sich an Förderposition 90 befindet und wenn die Geberzahl bei 220 steht. Wenn ein Code dekodiert wurde, speichert der Prozessor 18 eine Bildimpulszahl PCimage, welche die Geberzahl für das den Code beinhaltende Bild angibt.
  • Sobald in 6 ein Code in 112 erfolgreich dekodiert wurde, geht die Steuerung auf Block 114 über, wobei der Prozessor 18 eine momentane Vorderkantenposition Lcle und eine momentane Hinterkantenposition Lcte für jeden Teilort innerhalb des Sichtfelds 28 errechnet, indem er die oben genannte Gleichung 1 löst und die folgende Gleichung nach Lcle löst: Lcle = Ls + ( PCimage PCle ) ( Dei )
    Figure DE102013104928B4_0002
    wobei PCle die Vorderkantenimpulszahl für einen Teilort ist.
  • Außerdem wird die momentane Position des Codes Lcc berechnet, sobald er in einem Bild erfolgreich dekodiert wurde, und in eine Position auf der Förderanordnung 12 umgewandelt. Die Umwandlung von einer Bildposition in eine Fördereinrichtungsposition ist dabei angesichts der Position des Sichtfelds 28 auf der Förderanordnungsskala und der Position des Codes im Bild eine einfache Aufgabe. In diesem Beispiel liegt die errechnete momentane Codeposition Lcc bei 90 (siehe nochmals 4).
  • Im weiteren Verlauf vergleicht der Prozessor 18 in Block 116 die momentane Codeposition Lcc mit momentanen Teilorten (d.h. den in Block 114 berechneten und momentan bestimmten Teilen auf der Anordnung 12 zugeordneten Orten). Wenn sich der Code in Block 118 nicht in einem Teilort befindet, geht die Steuerung wieder auf Block 104 über, wo das Verfahren wie oben beschrieben fortgesetzt wird. Wenn sich der Code in einem Teilort befindet, geht die Steuerung von Block 118 auf Block 120 über, wo der dekodierte Code dem Teilort zugeordnet wird, der die Position des dekodierten Codes umfasst hat, der jeweils zugeordnete Code und Ort gespeichert wird und die Teilpositionsverfolgung für nachfolgende Handhabung oder andere teilbezogene Tätigkeiten aufgenommen wird. Nach Block 120 geht die Steuerung auf Block 121 über.
  • Wenn der Code erfolgreich dekodiert wird liegt die aktuelle Codeposition Lcc im vorliegenden Beispiel in 4 wie oben angegeben bei 90, Ls (d.h. die Position des Sensors 20) liegt bei 70, die Vorderkantenimpulszahl PCle beträgt 100 (siehe 2), die Hinterkantenimpulszahl PCte beträgt 150 (siehe 3), die Inkrementalgeberstrecke Dei beträgt 0,20 Streckeneinheiten pro Zahl und die augenblickliche Pulszahl PC beträgt 220 (siehe 4). Demnach ergibt sich aus der Lösung der obenstehenden Gleichungen 1 und 2 für Teil 26a, dass die augenblickliche oder momentane Vorderkantenposition bei 94 liegt und die momentane Hinterkantenposition für Teil 26a bei 84 liegt. Die Codeposition Lcc bei 90 ist von dem Teilort umfasst, der von den Positionen 84 und 94 definiert ist, und somit wird das Teil 26a dem Code 16 zugeordnet.
  • Wenn sich mehrere Teile gleichzeitig im Sichtfeld 28 befinden, läuft das Verfahren aus 6 im Wesentlichen wie oben beschrieben ab, wobei Kantenberechnungen, Positionsvergleiche und Zuordnungen für jeden im Sichtfeld 28 verfolgten Teilort ausgeführt werden. Also würden zum Beispiel für 5, in der sich drei Teile 26a, 26b und 26c im Sichtfeld 28 befinden, drei so bezeichnete separate Teilorte für den Vergleich mit dekodierten Codepositionen und mit der Sichtfeldaustrittskantenposition Lex berechnet und entsprechende korrekte Code-Teil-Zuordnungen erstellt.
  • Zumindest in manchen Fällen, wiederum im Bezug auf Block 112 in 6, können zwei oder mehr Codes im selben Bild dekodiert werden. In diesem Fall werden die Positionen aller dekodierten Codes mit Teilorten im Sichtfeld 28 verglichen, um jeden Code einem separaten Ort zuzuordnen. In Fällen, in denen jedem Teil nur ein Code zuzuordnen ist, kann der Prozessor 18 ein Fehlersignal für die nachgeschaltete Verwendung erzeugen, wenn zwei Codes demselben Ort zugeordnet werden.
  • In einigen Ausführungsformen umfasst das System 10 möglicherweise keinen Vereinzeler, so dass Teilorte für mehr als ein Teil an derselben Position entlang der Richtung der Förderbewegung überlappen können (siehe 7). Wenn die Kanten mittels des Sensors 20 erkannt werden, ist es in diesem Fall möglich, dass die Vorderkante eines ersten Teils 26a und die Hinterkante 46 eines zweiten Teils 26b erkannt wird, die Vorder- bzw. Hinterkanten des ersten bzw. zweiten Teils aber nicht erkannt werden. Damit würden die erkannten Kanten wie in 7 gezeigt einen zweifachen Teilort umfassen. Hier ist es zumindest in manchen Fällen denkbar, dass, anstatt einen Sensor 20 zur Erkennung von Kanten zu verwenden, der Prozessor 18 programmiert werden kann, Teilkanten durch Prüfung der aufgenommenen Bilder zu erkennen. Insbesondere kann der Prozessor 18 programmiert werden, nicht nur Vorder- und Hinterkanten von Teilen, sondern auch seitliche oder Seitenkanten zu erkennen, so dass zweidimensionale Teilorte definiert werden können.
  • Zumindest in manchen Fällen können die zweidimensionalen Teilorte 101 und 103 einfache rechtwinklige Flächenboxen sein (siehe 7), die entlang der Bewegungsrichtung der Fördereinrichtung aufgereiht sind. In anderen Fällen können die zweidimensionalen Teilorte 105, 107 Teilkanten wie in 8 enger skizzieren oder umschreiben. In diesem Fall kann der Prozessor 18 programmiert sein, in jedem aufgenommenen Bild nach Teilorten zu suchen und, wenn ein 2D-Teilort identifiziert wurde, ein Gebersignal verwenden, um die Teilortposition anschließend wie oben beschrieben zu verfolgen, um den Rechenaufwand zu verringern (d.h. die Position jedes Teilorts muss nur einmal identifiziert werden). Wenn also zum Beispiel die Teilorte 105 und 107 zum ersten Mal an den in 8 dargestellten Positionen identifiziert würden, könnte der Prozessor 18 somit anschließend Impulszahlen verwenden, um die Teilpositionen im Sichtfeld 28 und darüber hinaus zu verfolgen, und er könnte dekodierte Codes wie oben beschrieben Teilorten zuordnen. Ein Vorteil läge hierbei darin, dass das System eine große Zahl von Bildern aufnehmen und analysieren würde, um Kanten zu lokalisieren, was die Finderate bei weiter minimiertem Rechenaufwand merklich erhöhen würde.
  • In anderen Fällen können die 2D-Teilorte in einem Bild erst identifiziert werden, nachdem die Position eines erfolgreich dekodierten Codes identifiziert wurde. Hierbei könnte ein Nachteil darin liegen, dass die Zahl der Bilder, die geprüft werden können, um Kanten zu identifizieren, klein sein könnte, wenn der Code erfolgreich identifiziert wurde, und die Kantenfinderate entsprechend reduziert würde.
  • Bei einer weiteren Ausführungsform ist ein Hybrid aus der Ausführungsform, die einen Anwesenheitssensor zur Identifizierung von Vorder- und Hinterkanten verwendet (siehe 1) und der Ausführungsform, welche die Lokalisierung mittels Bildanalyse durchführt, denkbar. Bei dieser Ausführungsform, wiederum mit Bezug auf 1, ist ein Teilanwesenheitssensor 20 vorgesehen, der ein Teilanwesenheitssignal erzeugt und an den Prozessor 18 weitergibt, welches dazu verwendet wird, Orten entsprechend jeden erkannten Teils eine Vorderkantenteilzahl PCle und eine Hinterkantenteilzahl PCte zuzuweisen. Sobald eine Vorderkante erkannt wird, werden wie bei der ersten oben beschriebenen Ausführungsform Bilder eines Sichtfelds 28 aufgenommen, bis entweder alle Teilorte das Sichtfeld 28 verlassen haben oder bis jedem Teilort im Sichtfeld 28 dekodierte Codes zugeordnet wurden. Bei manchen Ausführungsformen kann der Prozessor 18 programmiert sein, die aufgenommenen Bilder zu prüfen, um Teilseitenkanten (z.B. Kanten, die weder vorne noch hinten sind) zu identifizieren, indem er nur Teile der aufgenommenen Bilder zwischen Vorder- und Hinterkanten prüft, um so den Rechenaufwand zu minimieren. Bei anderen Ausführungsformen sucht der Prozessor 18 möglicherweise erst nach einer erfolgreichen Codedekodierung nach Seitenkanten zwischen Vorder- und Hinterkanten, wobei sich der dekodierte Code innerhalb eines von den Positionen eines einem Teilort zugeordneten Vorderkanten- und Hinterkantenpaars definierten Ortes befindet.
  • In Bezug auf 9 ist nun ein Subprozess 200 dargestellt, der einen Teil des in 6 gezeigten Verfahrens ersetzen kann und in dem Seitenkanten erst lokalisiert werden, nachdem ein zwischen einem Vorderkanten- und Hinterkantenpaar liegender Code dekodiert wurde. Nachdem in Entscheidungsblock 118 ein dekodierter Code in einem Teilort lokalisiert wurde, kann in Bezug auf 1 und 6 die Steuerung des Prozessors 18 auf Block 202 in 9 übergehen, wo der Prozessor 18 den Teil des Bildes prüft, der den dekodierten Code beinhaltet und dem Teilort entspricht, der dem dekodierten Code zugeordnet ist, um Seitenkanten von Teilen in dem Teilort zu identifizieren. So durchsucht der Prozessor zum Beispiel in 7, nachdem der Code 16 dekodiert und den Vorder- und Hinterkanten 48 und 46 zugeordnet wurde, nur den Bildteil 180 zwischen den Kanten 48 und 46, um Seitenkanten zu identifizieren und somit festzustellen, ob mehr als ein Teil in dem Teilort zwischen den Kanten 48 und 46 positioniert ist. Wenn mehr als ein Teil in einem Teilort 180 positioniert ist, identifiziert der Prozessor 18 separate 2D-Teilorte 101 und 103 im Ort 180.
  • In Block 204 ordnet der Prozessor 18 den dekodierten Code einem der in Block 202 identifizierten Teilorte zu, woraufhin die Steuerung wieder auf Block 121 in 6 übergeht.
  • Zusätzlich zu den oben beschriebenen Ausführungsformen sind andere Ausführungsformen denkbar, bei denen der Anwesenheitssensor 20 an einer anderen Position als entlang der Sichtfeldeintrittskante Len denkbar ist. Hier muss die Position des Sensors 20 auf der Fördereinrichtungsskala 30 bekannt sein oder so festgelegt werden, dass die Positionsverfolgung mit der Förderanordnung 12 gekoppelt werden kann. Siehe zum Beispiel 10, wo sich der Sensor 20' an Position 60 befindet, während die Sichtfeldeintrittskante Len bei 70 liegt. In diesem Fall wäre der Prozessor 18 programmiert, die Verfolgung von Teilpositionen an Position 60 zu beginnen, und er könnte programmiert sein, erst mit dem Aufnehmen und Analysieren von Sichtbildern zu beginnen, nachdem die Vorderkante eines Teils Position 70 erreicht hat (z.B. 50 Geberzahlen, nachdem die Vorderkante zum ersten Mal an Position 60 erkannt wurde, davon ausgehend, dass die Inkrementalgeberstrecke Dei 0,20 Einheiten/Zahl beträgt).
  • In einem anderen Beispiel mit erneutem Bezug auf 10 kann ein Sensor 20" dem Sichtfeld 28 nachfolgend an Position 125 angeordnet sein. In diesem Fäll müsste der Prozessor 18 durchgehend Bilder aufnehmen und wäre zumindest bei einigen Ausführungsformen programmiert, einen Code erst zu dekodieren und danach die Vorder- und Hinterkante des Teils für die Zuordnung zu einem Code zu identifizieren. Nachdem ein Code in einem Bild dekodiert wurde, seine Position Lc auf der Fördereinrichtung identifiziert wurde und die Geberzahl PCimage für das Bild mit dem dekodierten Code gespeichert ist, kann die steigende Geberzahl dabei gemeinsam mit PCimage, der Inkrementalgeberstrecke Dei und der vorherigen Position Lc dazu verwendet werden, durchgehend die augenblickliche oder momentane Codeposition Lcc zu berechnen, indem folgende Gleichung gelöst wird: Lcc = Lc + ( PC PCimage ) ( Dei )
    Figure DE102013104928B4_0003
  • Wenn das Teil 26a die Position erreicht, an welcher der Sensor 20" angeordnet ist, löst der Prozessor 18 Gleichung 3, um festzustellen, ob Lcc zwischen den Vorder- und Hinterkanten eines Teils liegt, und ordnet den Code dem Teil zu, wenn die Position Lcc zwischen den Kanten liegt.
  • Bei weiteren Ausführungsformen, bei denen ein Anwesenheitssensor dem Sichtfeld 28 nachgeordnet ist, kann der Prozessor 18 programmiert sein, vorherige Vorder- und Hinterkantenpositionen für ein Teil zum Vergleich mit der Position eines Codes berechnen, wenn der Code erst dekodiert wurde, nachdem die Vorder- und Hinterkanten an der Sensorposition erkannt wurden. Wenn zum Beispiel mit Bezug auf 10 die Bildimpulszahl PCimage (d.h. die Geberzahl, wenn ein Bild mit einem dekodierten Code aufgenommen wurde) bekannt ist, können die Vorder- und Hinterkantenimpulszahlen PCle und PCte, wenn die Kanten bei Sensor 20" erkannt werden, zusammen mit der Inkrementalgeberstrecke Dei dazu verwendet werden, die vorherigen Positionen Lple und Lpte der Vorder- und Hinterkanten zu einem Zeitpunkt, welcher der PCimage entspricht, zu berechnen, indem die folgenden Gleichungen gelöst werden: Lple = Ls ( PCle PCimage ) ( Dei )
    Figure DE102013104928B4_0004
    Lpte = Ls ( PCte PCimage ) ( Dei )
    Figure DE102013104928B4_0005
  • Eine oder mehrere spezielle Ausführungsformen der vorliegenden Erfindung wurden oben beschrieben. Es soll bedacht werden, dass in der Entwicklung einer solchen tatsächlichen Ausführung, wie in jedem Ingenieurs- oder Designproj ekt, zahlreiche ausführungsspezifische Entscheidungen getroffen werden müssen, um die speziellen Ziele der Entwickler zu erreichen, wie zum Beispiel die Beachtung von systembezogenen und geschäftsbezogenen Rahmenbedingungen, die von einer zur anderen Ausführung variieren. Darüber hinaus soll bedacht werden, dass ein solches Entwicklungsbestreben komplex und zeitaufwändig sein kann, aber dennoch eine Routineunternehmung in Sachen Design, Fabrikation und Herstellung für den durchschnittlichen Fachmann darstellt, dem diese Offenbarung zur Verfügung steht.
  • Daher soll die Erfindung alle Modifikationen, Entsprechungen und Alternativen umfassen, die in den Bereich der Erfindung fallen, wie er durch die nachfolgenden Ansprüche definiert ist.

Claims (28)

  1. Vorrichtung für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung, wobei jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) eine Vorderkante (48) und eine Hinterkante (46) aufweist, die einen Teilort definieren, und jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) mit mindestens einem Code (16) gekennzeichnet sein soll, wobei die Vorrichtung Folgendes umfasst: eine Flächenkamera (17) mit einem zweidimensionalen Sichtfeld (FOV), wobei die Flächenkamera (17) benachbart zur Fördereinrichtung angeordnet ist, so dass die von der Fördereinrichtung transportierten Teile (26a, 26b, 26c, 26d, 26e, 26f) das FOV passieren; einen mit der Flächenkamera (17) verbundenen Prozessor (18), wobei der Prozessor (18) programmiert ist, folgende Schritte durchzuführen: (i) Empfangen von Bildern von der Flächenkamera (17); (ii) Identifizieren der Positionen von Codes (16) auf Teilen (26a, 26b, 26c, 26d, 26e, 26f) in mindestens einem der Bilder, wobei ein Code (16), der lokalisiert wurde, ein lokalisierter Code (16) ist; (iii) Identifizieren der Positionen von Vorderkanten (48) und Hinterkanten (46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f), wobei die Vorder- und Hinterkanten (48, 46) Teilorte definieren; und (iv) Zuordnen jedes lokalisierten Codes (16) zu einem die Position des lokalisierten Codes (16) enthaltenden Teilort, wobei die Vorrichtung ferner einen Teilanwesenheitssensor (20) an einer Position Ls umfasst, der, wenn eine Vorderkante (48) eine von einer Eintrittskante (42) definierte Linie durchbricht, an der Position Ls ein Teilanwesenheitssignal erzeugt, das an den Prozessor (18) weitergegeben wird, wobei der Prozessor (18) ferner dazu ausgebildet ist, wenn er das Teilanwesenheitssignal von dem Teilanwesenheitssensor (20) empfängt, eine Vorderkantenimpulszahl PCle in Entsprechung zu der von einem Geber (22) erzeugten augenblicklichen Zahl zu speichern und die Kamera (17) beginnen zu lassen, Bilder des FOVs aufzunehmen.
  2. Vorrichtung nach Anspruch 1, wobei der Schritt des Identifizierens von Codepositionen das Identifizieren der Positionen von Codes (16) zu einem ersten Zeitpunkt umfasst und wobei der Schritt des Identifizierens der Positionen der Vorder- und Hinterkanten (48, 46) das Identifizieren der Positionen der Vorder- und Hinterkanten (48, 46) zu dem ersten Zeitpunkt umfasst.
  3. Vorrichtung nach Anspruch 2, weiterhin umfassend einen der Fördereinrichtung zugeordneten Geber (22) für das Erzeugen einer jeweiligen Geberimpulszahl, wenn sich die Fördereinrichtung um eine Inkrementalgeberstrecke bewegt, wobei der Schritt des Identifizierens der Positionen der Vorder- und Hinterkanten (48, 46) den Schritt des Verwendens der Geberimpulszahl für das Identifizieren der Positionen der Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) zum ersten Zeitpunkt umfasst.
  4. Vorrichtung nach Anspruch 3, wobei der Prozessor (18) weiterhin programmiert ist, Vorder- und Hinterkantenimpulszahlen für jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) auf der Fördereinrichtung zu identifizieren, wenn sich die Vorder- und Hinterkanten (48, 46) des Teils (26a, 26b, 26c, 26d, 26e, 26f) jeweils an einer Sensorposition auf der Fördereinrichtung befinden, und wobei der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) den Schritt des Verwendens der Geberimpulszahl, der Inkrementalgeberstrecke und der Vorder- und Hinterkantenimpulszahlen für das Berechnen der Positionen der Vorder- und Hinterkantenimpulszahlen zum ersten Zeitpunkt umfasst.
  5. Vorrichtung nach Anspruch 4, wobei der Teilanwesenheitssensor (20) benachbart zur Fördereinrichtung an der Sensorposition für das Erkennen der Anwesenheit der Vorder- und Hinterkanten (48, 46) der Teile (26a, 26b, 26c, 26d, 26e, 26f) angeordnet ist und Kantenerfassungssignale an den Prozessor (18) weitergibt.
  6. Vorrichtung nach Anspruch 5, wobei die Fördereinrichtung Teile (26a, 26b, 26c, 26d, 26e, 26f) entlang eines Förderpfads in das FOV transportiert und wobei sich die Sensorposition vor der Position befindet, an der die Codeposition entlang des Förderpfads identifiziert wird.
  7. Vorrichtung nach Anspruch 5, wobei die Fördereinrichtung Teile (26a, 26b, 26c, 26d, 26e, 26f) entlang eines Förderpfads in das FOV transportiert, so dass Teile (26a, 26b, 26c, 26d, 26e, 26f) entlang einer Eintrittskante (42) in das FOV eintreten und entlang einer Austrittskante (44) aus dem FOV austreten, und wobei der Teilanwesenheitssensor (20) nahe der Eintrittskante (42) positioniert ist.
  8. Vorrichtung nach Anspruch 4, wobei der Schritt des Identifizierens der Position der Vorderkante (48) zum ersten Zeitpunkt die Schritte des Berechnens einer Vorderkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Vorderkantenimpulszahl umfasst, wobei die Vorderkantendifferenzzahl und die Inkrementalgeberstrecke verwendet werden, um eine Vorderkantenpositionsänderung zu berechnen und wobei die Vorderkantenpositionsänderung und die erste Position kombiniert werden, um die Position der Vorderkante (48) zum ersten Zeitpunkt zu identifizieren, und wobei der Schritt des Identifizierens der Position der Hinterkante (46) die Schritte des Berechnens einer Hinterkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Hinterkantenimpulszahl umfasst, wobei die Hinterkantendifferenzzahl und die Inkrementalgeberstrecke verwendet werden, um eine Hinterkantenpositionsänderung zu berechnen und wobei die Hinterkantenpositionsänderung und die erste Position kombiniert werden, um die Position der Hinterkante (46) zum ersten Zeitpunkt zu identifizieren.
  9. Vorrichtung nach Anspruch 1, wobei der Schritt des Identifizierens der Positionen von Codes (16) in mindestens einem der Bilder zu einem ersten Zeitpunkt das Aufnehmen (108) einer Vielzahl von Bildern, den Versuch des Dekodierens von Codes (16) in zumindest einem Teil der aufgenommenen Bilder, und, wenn ein Code (16) erfolgreich decodiert ist, das Identifizieren der Position des erfolgreich dekodierten Codes (16) umfasst.
  10. Vorrichtung nach einem der Ansprüche 1 bis 9, wobei der Prozessor (18) die Vorder- und Hinterkanten (48, 46) von ersten und zweiten Teilen (26a, 26b, 26c, 26d, 26e, 26f) vor dem Identifizieren der Position eines Codes (16) identifiziert, und wobei der Prozessor (18) nach dem Identifizieren der Position eines Codes (16) durch den Prozessor (18) den Code (16) auf Basis der Codeposition und der den ersten und zweiten Teilen (26a, 26b, 26c, 26d, 26e, 26f) zugeordneten Teilorte einem der ersten und zweiten Teile (26a, 26b, 26c, 26d, 26e, 26f) zuordnet.
  11. Vorrichtung nach einem der Ansprüche 1 bis 10, wobei der Prozessor (18) den Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) durchführt, indem er die Vorder- und Hinterkanten (48, 46) in den aufgenommenen Bildern identifiziert.
  12. Vorrichtung nach Anspruch 2, wobei der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) in dem FOV zum ersten Zeitpunkt das Identifizieren von ersten und zweiten Seitenkanten der Teile (26a, 26b, 26c, 26d, 26e, 26f) in dem FOV zur weiteren Definition von Teilorten umfasst.
  13. Vorrichtung nach einem der Ansprüche 1 bis 12, wobei der Schritt des Identifizierens der Positionen von Codes (16) auf Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Identifizieren jedes Codes (16) in einem zu einem ersten Zeitpunkt aufgenommenen Bild umfasst, der Schritt des Identifizierens der Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Erkennen der Vorder- und Hinterkanten (48, 46) jedes Teils (26a, 26b, 26c, 26d, 26e, 26f) zu einem von dem ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt umfasst, und wobei der Schritt des Zuordnens jedes lokalisierten Codes (16) zu einem Teilort das Verwenden der Position des Codes (16) zum ersten Zeitpunkt für das Berechnen der Position des Codes (16) zum zweiten Zeitpunkt und das Zuordnen, wann die Position des Codes (16) zum zweiten Zeitpunkt in dem zum zweiten Zeitpunkt von den Positionen der Vorder- und Hinterkanten (48, 46) definierten Teilort liegt, umfasst.
  14. Vorrichtung nach Anspruch 13, wobei der erste Zeitpunkt hinter dem zweiten Zeitpunkt liegt.
  15. Vorrichtung nach Anspruch 13, wobei der zweite Zeitpunkt hinter dem ersten Zeitpunkt liegt.
  16. Vorrichtung nach einem der Ansprüche 1 bis 15, wobei der Schritt des Identifizierens der Positionen von Codes (16) auf Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Identifizieren jedes Codes (16) in einem zu einem ersten Zeitpunkt aufgenommenen Bild umfasst, der Schritt des Identifizierens der Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Erkennen der Vorder- und Hinterkanten (48, 46) jedes Teils (26a, 26b, 26c, 26d, 26e, 26f) zu einem vom ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt umfasst, und wobei der Schritt des Zuordnens jedes lokalisierten Codes (16) zu einem Teilort das Verwenden der Positionen der Vorder- und Hinterkanten (48, 46) zum zweiten Zeitpunkt für das Berechnen der Positionen der Vorder- und Hinterkanten (48, 46) zum ersten Zeitpunkt und das Zuordnen, wann sich die Position des Codes (16) zum ersten Zeitpunkt innerhalb des von den Positionen der Vorder- und Hinterkanten (48, 46) zum ersten Zeitpunkt definierten Teilorts befindet, umfasst.
  17. Verfahren für das Zuordnen von Codes auf Teilen zu Teilpositionen auf einer Fördereinrichtung, wobei jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) eine Vorderkante (48) und eine Hinterkante (46) aufweist und jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) mit mindestens einem Code (16) gekennzeichnet sein soll, wobei das Verfahren folgende Schritte umfasst: (i) Aufnehmen (108) von zweidimensionalen Bildern eines Sichtfeldes (FOV), das jeweils einen zweidimensionalen Raum umfasst, durch den die Fördereinrichtung Teile (26a, 26b, 26c, 26d, 26e, 26f) entlang eines Förderpfads transportiert; (ii) Identifizieren der Positionen von Codes (16) auf Teilen (26a, 26b, 26c, 26d, 26e, 26f) in mindestens einem der Bilder, wobei ein Code (16), der lokalisiert wurde, ein lokalisierter Code (16) ist; (iii) Identifizieren der Positionen von Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f), wobei die Vorder- und Hinterkanten (48, 46) Teilorte definieren; und (iv) Zuordnen jedes lokalisierten Codes (16) zu einem die Position des lokalisierten Codes (16) umfassenden Teilort, wobei ein an einer Position Ls angeordneter Teilanwesenheitssensor (20), wenn eine Vorderkante (48) eine von einer Eintrittskante (42) definierte Linie durchbricht, an einer Position Ls ein Teilanwesenheitssignal erzeugt, das an den Prozessor (18) weitergegeben wird, wobei der Prozessor (18), wenn er das Teilanwesenheitssignal von dem Teilanwesenheitssensor (20) empfängt, eine Vorderkantenimpulszahl PCle in Entsprechung zu der von einem Geber (22) erzeugten augenblicklichen Zahl speichert und die Kamera (17) beginnen lässt, Bilder des FOVs aufzunehmen.
  18. Verfahren nach Anspruch 17, auch für die Verwendung mit einem der Fördereinrichtung zugeordneten Geber (22) für das Erzeugen einer jeweiligen Geberimpulszahl, wenn sich die Fördereinrichtung um eine Inkrementalgeberstrecke bewegt, wobei der Prozessor (18) programmiert ist, den Schritt des Identifizierens der Positionen der Vorder- und Hinterkanten (48, 46) auszuführen, indem er die Geberimpulszahl dazu verwendet, die Positionen der Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) zum ersten Zeitpunkt zu identifizieren.
  19. Verfahren nach Anspruch 18, wobei der Prozessor (18) weiterhin programmiert ist, Vorder- und Hinterkantenimpulszahlen für jedes Teil (26a, 26b, 26c, 26d, 26e, 26f) auf der Fördereinrichtung zu identifizieren, wenn sich die Vorder- und Hinterkanten (48, 46) des Teils (26a, 26b, 26c, 26d, 26e, 26f) jeweils an einer Sensorposition auf der Fördereinrichtung befinden, und wobei der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) den Schritt umfasst, die Geberimpulszahl, die Inkrementalgeberstrecke und die Vorder- und Hinterkantenimpulszahlen zum Berechnen der Positionen der Vorder- und Hinterkantenimpulszahlen zum ersten Zeitpunkt zu verwenden.
  20. Verfahren nach Anspruch 19, wobei der Prozessor (18) programmiert ist, den Schritt des Identifizierens der Position der Vorderkante (48) zum ersten Zeitpunkt durchzuführen, indem er eine Vorderkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Vorderkantenimpulszahl berechnet, die Vorderkantendifferenzzahl und die Inkrementalgeberstrecke dazu verwendet, eine Vorderkantenpositionsänderung zu berechnen, und die Vorderkantenpositionsänderung und die erste Position kombiniert, um die Position der Vorderkante (48) zum ersten Zeitpunkt zu identifizieren, und den Schritt des Identifizierens der Position der Hinterkante (46) durchzuführen, indem er eine Hinterkantendifferenzzahl zwischen der Geberimpulszahl zum ersten Zeitpunkt und der Hinterkantenimpulszahl berechnet, die Hinterkantendifferenzzahl und die Inkrementalgeberstrecke dazu verwendet, eine Hinterkantenpositionsänderung zu berechnen, und die Hinterkantenpositionsänderung und die erste Position kombiniert, um die Position der Hinterkante (46) zum ersten Zeitpunkt zu identifizieren.
  21. Verfahren nach einem der Ansprüche 17 bis 20, wobei der Prozessor (18) weiterhin programmiert ist, den Schritt des Identifizierens der Positionen von Codes (16) in mindestens einem der Bilder zu einem ersten Zeitpunkt zu identifizieren, indem er eine Vielzahl von Bildern erhält, Codes (16) in zumindest einem Teil (26a, 26b, 26c, 26d, 26e, 26f) der erhaltenen Bilder zu dekodieren versucht und, wenn ein Code (16) erfolgreich dekodiert ist, die Position des erfolgreich dekodierten Codes (16) identifiziert.
  22. Verfahren nach einem der Ansprüche 17 bis 21, wobei der Prozessor (18) die Vorder- und Hinterkanten (48, 46) von ersten und zweiten Teilen (26a, 26b, 26c, 26d, 26e, 26f) identifiziert, bevor er die Position eines Codes (16) identifiziert, und wobei der Prozessor (18), nachdem der Prozessor (18) die Position eines Codes (16) identifiziert hat, den Code (16) auf Basis der Codeposition und der den ersten und zweiten Teilen (26a, 26b, 26c, 26d, 26e, 26f) zugeordneten Teilorte einem der ersten und zweiten Teile (26a, 26b, 26c, 26d, 26e, 26f) zuordnet.
  23. Verfahren nach einem der Ansprüche 17 bis 22, wobei der Prozessor (18) den Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) durchführt, indem er die Vorder- und Hinterkanten (48, 46) in den erhaltenen Bildern identifiziert.
  24. Verfahren nach einem der Ansprüche 17 bis 23, wobei der Schritt des Identifizierens der Positionen von Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) in dem FOV zum ersten Zeitpunkt das Identifizieren von ersten und zweiten Seitenkanten der Teile (26a, 26b, 26c, 26d, 26e, 26f) im FOV zur weiteren Definition von Teilorten umfasst.
  25. Verfahren nach Anspruch 17, wobei der Schritt des Identifizierens der Positionen von Codes (16) auf Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Identifizieren jedes Codes (16) in einem zu einem ersten Zeitpunkt aufgenommenen Bild umfasst, der Schritt des Identifizierens der Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Erkennen der Vorder- und Hinterkanten (48, 46) jedes Teils (26a, 26b, 26c, 26d, 26e, 26f) zu einem vom ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt umfasst, und wobei der Schritt des Zuordnens jedes lokalisierten Codes (16) zu einem Teilort das Verwenden der Position des Codes (16) zum ersten Zeitpunkt zum Berechnen der Position des Codes (16) zum zweiten Zeitpunkt und das Zuordnen, wann die Position des Codes (16) zum zweiten Zeitpunkt innerhalb des zum zweiten Zeitpunkt von den Positionen der Vorder- und Hinterkanten (48, 46) definierten Teilorts liegt, umfasst.
  26. Verfahren nach Anspruch 25, wobei der erste Zeitpunkt hinter dem zweiten Zeitpunkt liegt.
  27. Verfahren nach Anspruch 25, wobei der zweite Zeitpunkt hinter dem ersten Zeitpunkt liegt.
  28. Verfahren nach einem der Ansprüche 17 bis 27, wobei der Schritt des Identifizierens der Positionen von Codes (16) auf Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Identifizieren jedes Codes (16) in einem zu einem ersten Zeitpunkt aufgenommenen Bild umfasst, der Schritt des Identifizierens der Vorder- und Hinterkanten (48, 46) von Teilen (26a, 26b, 26c, 26d, 26e, 26f) das Erkennen der Vorder- und Hinterkanten (48, 46) jedes Teils (26a, 26b, 26c, 26d, 26e, 26f) zu einem von dem ersten Zeitpunkt unterschiedlichen zweiten Zeitpunkt umfasst, und wobei der Schritt des Zuordnens jedes lokalisierten Codes (16) zu einem Teilort das Verwenden der Positionen der Vorder- und Hinterkanten (48, 46) zum zweiten Zeitpunkt zum Berechnen der Positionen der Vorder- und Hinterkanten (48, 46) zum ersten Zeitpunkt und das Zuordnen, wann die Position des Codes (16) zum ersten Zeitpunkt innerhalb des zum ersten Zeitpunkt von den Vorder- und Hinterkanten (48, 46) definierten Teilorts liegt, umfasst.
DE102013104928.1A 2012-05-22 2013-05-14 Vorrichtung und Verfahren für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung Active DE102013104928B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/477,351 2012-05-22
US13/477,351 US8733656B2 (en) 2012-05-22 2012-05-22 Code and part associating method and apparatus

Publications (2)

Publication Number Publication Date
DE102013104928A1 DE102013104928A1 (de) 2013-11-28
DE102013104928B4 true DE102013104928B4 (de) 2024-03-14

Family

ID=49547128

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013104928.1A Active DE102013104928B4 (de) 2012-05-22 2013-05-14 Vorrichtung und Verfahren für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung

Country Status (3)

Country Link
US (1) US8733656B2 (de)
CN (1) CN103425966B (de)
DE (1) DE102013104928B4 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103834760B (zh) * 2014-02-25 2016-02-17 中国石油大学(北京) 一种利用瓦斯气制合成气生产还原铁的方法及装置
DE202014101714U1 (de) 2014-04-10 2015-07-14 Sick Ag Codelesesystem zum Lesen von Codes
US9836635B2 (en) 2014-10-09 2017-12-05 Cognex Corporation Systems and methods for tracking optical codes
US11600018B2 (en) * 2019-10-25 2023-03-07 Cognex Corporation Boundary estimation systems and methods
CN113111677B (zh) * 2021-06-16 2021-11-16 浙江华睿科技有限公司 一种条码读取方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10260201A1 (de) 2002-12-20 2004-07-01 Sick Ag Verfahren und Vorrichtung zur Erfassung von auf einem Fördermittel bewegten Objekten mittels eines optoelektronischen Sensors
EP2272596A1 (de) 1999-04-07 2011-01-12 Federal Express Corporation Vorrichtung und Verfahren zur Bestimmung der Abmessungen von Objekten

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5335777A (en) 1993-10-15 1994-08-09 Jervis B. Webb Company Method and apparatus for belt conveyor load tracking
US5633487A (en) 1995-12-15 1997-05-27 Adaptive Optics Associates, Inc. Multi-focal vision system
US6554189B1 (en) 1996-10-07 2003-04-29 Metrologic Instruments, Inc. Automated system and method for identifying and measuring packages transported through a laser scanning tunnel
US5969325A (en) * 1996-06-03 1999-10-19 Accu-Sort Systems, Inc. High speed image acquisition system and method of processing and decoding barcode symbol
AU4043797A (en) * 1996-07-26 1998-02-20 Opex Corporation Method and apparatus for processing and determining the orientation of documents
ES2260549T3 (es) 1996-12-30 2006-11-01 Datalogic S.P.A. Procedimiento y maquina para leer y asociar codigos opticos.
DE19855763C1 (de) 1998-12-03 2000-09-07 Voith Turbo Kg Verfahren zur Montage einer Getriebebaueinheit
US7161688B1 (en) 1999-08-31 2007-01-09 Brett Bonner Mass scanning and dimensioning system
ATE372176T1 (de) 2001-01-18 2007-09-15 Federal Express Corp Auslesen und dekodieren von daten auf verpackungen
US7118042B2 (en) * 2002-01-18 2006-10-10 Microscan Systems Incorporated Method and apparatus for rapid image capture in an image system
DE10207538A1 (de) * 2002-02-22 2003-09-04 Sick Ag Optoelektronischer Codeleser
US7050631B2 (en) * 2002-10-30 2006-05-23 Sick Auto Ident, Inc. Barcode detection system
WO2005013182A1 (en) 2003-07-01 2005-02-10 Accu-Sort Systems Inc. System and method for associating machine readable information and dimensioning data for conveyor borne packages
US7433590B2 (en) 2005-04-19 2008-10-07 Accu-Sort Systems, Inc. Method of low intensity lighting for high speed image capture
MX2007016046A (es) * 2005-06-13 2008-03-10 Tripath Imaging Inc Sistema y metodo para re-ubicar un objeto en una muestra en un portaobjetos con un dispositivo de imagen de microscopio.
US20080035727A1 (en) * 2006-07-26 2008-02-14 Stanzel David A Welding inventory tracking, storing, and distribution system
US20080035390A1 (en) 2006-08-09 2008-02-14 Wurz David A Dimensioning and weighing system
US8030588B2 (en) 2006-10-26 2011-10-04 Align Technology, Inc. System and method for sorting items
JP5154574B2 (ja) * 2006-12-27 2013-02-27 データロジック オートメーション エス アール エル 画像取得装置
DE102007048679A1 (de) 2007-10-10 2009-04-16 Sick Ag Vorrichtung und Verfahren zum Aufnehmen von Bildern von auf einer Fördereinrichtung bewegten Objekten
JP5140820B2 (ja) * 2008-03-31 2013-02-13 日本電産サンキョー株式会社 シンボル情報読取装置及びシンボル情報読取方法
US20110080476A1 (en) 2009-10-02 2011-04-07 Lasx Industries, Inc. High Performance Vision System for Part Registration
KR101777556B1 (ko) 2010-03-12 2017-09-12 선라이즈 알앤디 홀딩스, 엘엘씨 제품 식별을 위한 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2272596A1 (de) 1999-04-07 2011-01-12 Federal Express Corporation Vorrichtung und Verfahren zur Bestimmung der Abmessungen von Objekten
DE10260201A1 (de) 2002-12-20 2004-07-01 Sick Ag Verfahren und Vorrichtung zur Erfassung von auf einem Fördermittel bewegten Objekten mittels eines optoelektronischen Sensors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SCHUSTER J. F.: Image-based barcode readers improve package sorting efficiency. Control Engineering, 29.08.2011. URL: https://www.controleng.com/articles/image-based-barcode-readers-improve-package-sorting-efficiency/ [abgerufen am 20.04.2020]

Also Published As

Publication number Publication date
DE102013104928A1 (de) 2013-11-28
US8733656B2 (en) 2014-05-27
CN103425966B (zh) 2017-09-22
US20130313312A1 (en) 2013-11-28
CN103425966A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
EP3454298B1 (de) Kameravorrichtung und verfahren zur erfassung eines stromes aus objekten
DE102012110376B4 (de) Verfahren und Vorrichtung zum Ordnen von Codekandidaten in einem Bild für Dekodierversuche
DE102013104928B4 (de) Vorrichtung und Verfahren für das Zuordnen von Codes auf Teilen zu Teilorten auf einer Fördereinrichtung
EP3275313A1 (de) Vorrichtung zum erfassen und auswerten von produktspezifischen informationen von produkten der nahrungsmittel verarbeitenden industrie sowie system mit einer solchen vorrichtung und verfahren zum verarbeiten von produkten der nahrungsmittel verarbeitenden industrie
DE69628929T2 (de) Verfahren und Maschine zum Lesen und Zuordnen eines optischen Kodes
DE102006017337A1 (de) Verfahren zur optischen Erfassung von bewegten Objekten und Vorrichtung
DE102017114081B4 (de) Vorrichtung und Verfahren zum Rundum-Inspizieren von Behältnissen am Transportband
EP2555160A1 (de) Erzeugung eines in interessante und uninteressante Bereiche vorsegmentierten Bildes
EP2146308A2 (de) Verfahren und Vorrichtung zum Überwachen des Transports eines Gepäckstücks
EP3205411A1 (de) Verfahren zur sortierung von gepäckstücken und gepäcksortiersystem
DE19607258A1 (de) Verfahren und Vorrichtung zur Detektion und/oder zur Größen- und/oder Lagebestimmung eines Objekts
DE102014114506B4 (de) Kamera zur Montage an einer Fördereinrichtung und Verfahren zur Inspektion oder Identifikation
DE102020120887B4 (de) Verfahren zum erfassen einer einhängeposition eines auflagestegs und flachbettwerkzeugmaschine
EP0104369B1 (de) Einrichtung und Verfahren zum optischen Erkennen von Flächenmustern an Objekten
EP3009984A1 (de) Detektionssystem für optische Codes
EP2474956B1 (de) Transporteinheit und Verfahren zum Betrieb derselben
DE102007018204A1 (de) Vorrichtung und Verfahren zur Erfassung von Fehlerstellen in Tierhäuten
DE102016107272A1 (de) Konzept zum Prüfen eines Objekts
EP3142068B1 (de) Verfahren zur dreidimensionalen erfassung von objekten
EP1586070B1 (de) Verfahren und vorrichtung zur identifikation und kompensation einer perspektivischen verzerrung
DE10128722C1 (de) Vorrichtung zur Kontrolle von Objekten
EP0935223A1 (de) Vorrichtung zum Prüfen von Wertpapieren
DE202014101714U1 (de) Codelesesystem zum Lesen von Codes
DE202013002483U1 (de) Vorrichtung zur Vermessung einer Schlachttierkörperhälfte
CH706779A2 (de) Sensoranordnung für die optische Erfassung von an Proberöhrchen und Probenträger angebrachten Codes.

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009180000

Ipc: G06V0030224000

R016 Response to examination communication
R018 Grant decision by examination section/examining division