DE102014211948A1 - System und Verfahren zur selektiven Bestimmung von Punktwolken - Google Patents

System und Verfahren zur selektiven Bestimmung von Punktwolken Download PDF

Info

Publication number
DE102014211948A1
DE102014211948A1 DE102014211948.0A DE102014211948A DE102014211948A1 DE 102014211948 A1 DE102014211948 A1 DE 102014211948A1 DE 102014211948 A DE102014211948 A DE 102014211948A DE 102014211948 A1 DE102014211948 A1 DE 102014211948A1
Authority
DE
Germany
Prior art keywords
point cloud
points
point
measurement points
computer
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.)
Pending
Application number
DE102014211948.0A
Other languages
English (en)
Inventor
Robert Emile Beaudoin
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 DE102014211948A1 publication Critical patent/DE102014211948A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Abstract

Es wird ein computerimplementiertes Verfahren bereitgestellt. Das Verfahren kann ein Empfangen oder ein Identifizieren einer ersten Punktwolke umfassen, welche mit einem Übungszeitobjekt oder -modell verknüpft ist. Das Verfahren kann weiterhin ein Auswählen eines oder mehrerer Messpunkte umfassen, welche mit der ersten Punktwolke verknüpft sind, wobei die Auswahl des einen oder der mehreren Messpunkte zumindest teilweise auf einem Wert eines speziellen Merkmals basiert, welches mit der ersten Punktwolke verknüpft ist. Das Verfahren kann ebenfalls ein Analysieren einer zweiten Punktwolke umfassen, welche mit einem Laufzeitobjekt verknüpft ist, wobei die Analyse auf der ersten Punktwolke basiert. Die Analyse kann eine Abschätzung einer Posendifferenz zwischen dem Übungszeitobjekt und dem Laufzeitobjekt erzeugen. Posenabschätzungen können erlangt werden, indem Punkte zwischen den beiden Punktwolken gepaart werden zumindest teilweise basierend auf Merkmalen, welche während der Messpunktauswahl verwendet wurden. Die Posenabschätzungen können unter Verwendung der Punkte, welche als Messpunkte ausgewählt wurden, bewertet und verbessert werden.

Description

  • Technisches Gebiet
  • Diese Technologie bezieht sich auf optische Inspektionssysteme und spezieller auf ein System zur selektiven Anordnung von Messpunkten, welche mit einer oder mehreren Punktwolken verknüpft sind.
  • Hintergrund
  • Optische Inspektion wird für gewöhnlich verwendet, um hergestellte Objekte, Teile, Drucke oder andere physikalische Dinge auf Fehler und Defekte hin zu inspizieren. Eine Vielzahl von Systemen wurde entwickelt, um eine solche Inspektion durchzuführen, wobei viele von diesen eine Vielzahl von fortgeschrittenen Defektdetektionsmerkmalen und Werkzeugen beinhalten.
  • Einige optische Inspektionssysteme können ebenfalls Ausrichtungsmöglichkeiten (z. B. Werkstückausrichtung) beinhalten. Ein fortgeschrittenes Inspektions- und Ausrichtungssystem ist in der Insight®-Produktlinie der Cognex Corporation aus Natick, MA, verfügbar. Solche Systeme können mit einem Modellbild eines gewünschten Bauteilaussehens trainiert werden und können fortgeschrittene Mustererkennungswerkzeuge verwenden, um das gespeicherte Modellbild mit dem Laufzeitbild zu vergleichen, welches aktuell inspiziert wird.
  • Zusammenfassung der Offenbarung
  • In einer Implementierung wird ein computerimplementiertes Verfahren bereitgestellt. Das Verfahren kann ein Empfangen einer ersten Punktwolke umfassen, welche mit dem zu lokalisierenden oder zu inspizierenden Bauteil verknüpft ist. Diese Punktwolke kann direkt von einem 3D-Sensor, von einem CAD- oder einem anderen Volumenmodell oder durch Vorverarbeitung von Bereichsbildern, 2D-Bildern oder anderen Bildern des Bauteils erlangt werden.
  • Das Verfahren kann weiterhin ein Selektieren eines oder mehrerer Messpunkte beinhalten, welche mit der ersten Punktwolke verknüpft sind, wobei die Auswahl des einen oder der mehreren Messpunkte zumindest teilweise auf einem Wert eines speziellen Merkmals basiert, welches mit dem ersten Bild oder Modell verknüpft ist.
  • Eines oder mehrere der folgenden Merkmale können umfasst sein. Das Verfahren kann ein Analysieren einer zweiten Punktwolke umfassen, welche mit dem Objekt verknüpft ist, wobei die Analyse zumindest teilweise auf den Messpunkten und der ersten Punktwolke basiert. Das Verfahren kann ebenfalls ein Selektieren eines oder mehrerer Messpunkte aus der zweiten Punktwolke umfassen, welches zumindest teilweise auf dem einen oder den mehreren Messpunkten der ersten Punktwolke basiert. In einigen Ausführungsformen umfasst das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, eine Krümmung. Die erste Punktwolke und die zweite Punktwolke können dreidimensionale Punktwolken sein. In einigen Ausführungsformen kann das Verfahren ein Analysieren einer Flächennormaleninformation umfassen, welche mit der ersten Punktwolke und/oder der zweiten Punktwolke verknüpft ist. Das Verfahren kann weiterhin ein Bestimmen einer Veränderung der Pose des Laufzeitobjekts umfassen, welche zumindest teilweise auf der ersten Punktwolke und der zweiten Punktwolke basiert. Der eine oder die mehreren Punkte, welche mit der ersten Punktwolke verknüpft sind, können nicht auf identische Weise mit einem oder mehreren Punkten übereinstimmen, welche mit der zweiten Punktwolke verknüpft sind. In einigen Ausführungsformen kann das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, mindestens ein Krümmungsmerkmal und/oder ein Grenzmerkmal umfassen. Das Verfahren kann während eines Verbesserungsstadiums weiterhin ein örtliches Erfassen des einen oder der mehreren Messpunkte umfassen, um eine relative Posendifferenz zu bestimmen.
  • In einer anderen Implementierung wird ein Computerprogrammprodukt bereitgestellt, welches auf einem computerlesbaren Speichermedium verkörpert ist. Das Computerprogrammprodukt kann eine Mehrzahl von Anweisungen aufweisen, welche hierauf gespeichert sind, welche, wenn sie von einem Prozessor ausgeführt werden, den Prozessor dazu veranlassen, Tätigkeiten auszuführen. Die Tätigkeiten können ein Empfangen einer ersten Punktwolke umfassen, welche mit einem Übungszeitobjekt oder -modell verknüpft ist. Die Tätigkeiten können weiterhin ein Selektieren eines oder mehrerer Messpunkte umfassen, welche mit der ersten Punktwolke verknüpft sind, wobei die Selektion des einen oder der mehreren Messpunkte zumindest teilweise auf einen Wert eines speziellen Merkmals basiert, welches mit dem ersten Bild oder Modell verknüpft ist.
  • Eines oder mehrere der folgenden Merkmale können umfasst sein. Die Tätigkeiten können ein Analysieren einer zweiten Punktwolke umfassen, welche mit dem Objekt verknüpft ist, wobei die Analyse zumindest teilweise auf den Messpunkten und der ersten Punktwolke basiert. Die Tätigkeiten können ebenfalls ein Selektieren eines oder mehrerer Messpunkte aus der zweiten Punktwolke umfassen, welches zumindest teilweise auf dem einen oder den mehreren Messpunkten der ersten Punktwolke basiert. In einigen Ausführungsformen umfasst das spezielle Merkmal, welches mit dem einen oder mehreren Messpunkten verknüpft ist, eine Krümmung. Die erste Punktwolke und die zweite Punktwolke können dreidimensionale Punktwolken sein. In einigen Ausführungsformen können die Tätigkeiten ein Analysieren einer Flächennormaleninformation umfassen, welche mit der ersten Punktwolke und/oder der zweiten Punktwolke verknüpft ist. Die Tätigkeiten können weiterhin ein Bestimmen einer Veränderung der Pose des Laufzeitobjekts umfassen, welche zumindest teilweise auf der ersten Punktwolke und der zweiten Punktwolke basiert. Der eine oder die mehreren Punkte, welche mit der ersten Punktwolke verknüpft sind, können nicht auf identische Weise mit einem oder mehreren Punkten übereinstimmen, welche mit der zweiten Punktwolke verknüpft sind. In einigen Ausführungsformen kann das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, mindestens ein Krümmungsmerkmal und/oder ein Grenzmerkmal umfassen. Das Verfahren kann während eines Verbesserungsstadiums weiterhin ein örtliches Erfassen des einen oder der mehreren Messpunkte umfassen, um eine relative Posendifferenz zu bestimmen.
  • In einer anderen Implementierung wird ein Bildgebungssystem bereitgestellt, welches einen oder mehrere Prozessoren aufweist. Der eine oder die mehreren Prozessoren können konfiguriert sein ein erstes Bild oder Modell zu empfangen, welches mit einem Übungszeitobjekt verknüpft ist, und eine erste Punktwolke zu identifizieren, welche mit dem ersten Bild oder Modell verknüpft ist. Der eine oder die mehreren Prozessoren können konfiguriert sein einen oder mehrere Messpunkte, welche mit der ersten Punktwolke verknüpft sind, auszuwählen, wobei die Auswahl des einen oder der mehreren Messpunkte zumindest teilweise auf einem Wert eines speziellen Merkmals basiert, welches mit dem ersten Bild oder Modell verknüpft ist. Der eine oder die mehreren Prozessoren können konfiguriert sein eine zweite Punktwolke zu analysieren, welche mit einem Laufzeitobjekt verknüpft ist, wobei die Analyse zumindest teilweise auf der ersten Punktwolke basiert.
  • Eines oder mehrere der folgenden Merkmale können mit umfasst sein. In einigen Ausführungsformen umfasst das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, eine oder mehrere Krümmungen. Die erste Punktwolke und die zweite Punktwolke können dreidimensionale Punktwolken sein. In einigen Ausführungsformen können der eine oder die mehreren Prozessoren konfiguriert sein eine Flächennormaleninformation zu analysieren, welche mit der ersten Punktwolke und/oder der zweiten Punktwolke verknüpft ist. Der eine oder die mehreren Prozessoren können konfiguriert sein eine Veränderung in der Pose des Laufzeitobjekts zu bestimmen, wobei die Bestimmung zumindest teilweise auf der ersten Punktwolke und der zweiten Punktwolke basiert. Der eine oder die mehreren Punkte, welche mit der ersten Punktwolke verknüpft sind, können nicht in identischer Weise mit einem oder mehreren Punkten übereinstimmen, welche mit der zweiten Punktwolke verknüpft sind. In einigen Ausführungsformen kann das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, ein Krümmungsmerkmal und/oder ein Grenzmerkmal umfassen. Der eine oder die mehreren Prozessoren können konfiguriert sein, den einen oder die mehreren Messpunkte während eines Verbesserungsstadiums örtlich zu erfassen, um eine relative Posendifferenz zu bestimmen.
  • Die Details der einen oder mehreren Implementierungen sind im Folgenden in den begleitenden Figuren und der untenstehenden Beschreibung genauer beschrieben. Andere Merkmale und Vorteile werden aus der Beschreibung, den Figuren und den Ansprüchen ersichtlich.
  • Kurze Beschreibung der Figuren
  • Das Patent oder die Anmeldeakte umfasst mindestens eine Figur, welche farbig ausgestaltet ist. Kopien dieses Patents oder dieser Patentanmeldungsveröffentlichung mit farbiger Figur bzw. farbigen Figuren werden vom Patentamt auf Anfrage und nach Zahlung der erforderlichen Gebühr bereitgestellt.
  • 1 ist eine schematische Ansicht eines Auswahlprozesses, welcher mit einem verteilten Rechennetzwerk verbunden ist;
  • 2 ist eine schematische Ansicht entsprechend einer Ausführungsform des Auswahlprozesses, welcher mit den Lehren der vorliegenden Offenbarung übereinstimmt; und
  • 3 ist ein Flussdiagramm, welches eine Ausführungsform des Auswahlprozesses zeigt, welcher mit den Lehren der vorliegenden Offenbarung übereinstimmt; und
  • 4 bis 6 sind Abbildungen, welche Übungszeit- und Laufzeitdaten zeigen, welche mit Ausführungsformen des hierin beschriebenen Auswahlprozesses verknüpft sind.
  • Gleiche Referenzzeichen in den verschiedenen Figuren können gleiche Elemente anzeigen.
  • Detaillierte Beschreibung der Ausführungsformen
  • Überblick über das System:
    In 1 ist ein Auswahlprozess 10 gezeigt, welcher einen Computer 12 innewohnen und von diesem ausgeführt werden kann, wobei der Computer 12 mit einem Netzwerk 14 verbunden sein kann (z. B. dem Internet oder einem lokalen Bereichsnetzwerk). Beispiele des Computers 12 können umfassen, sind aber nicht beschränkt auf einen einzelnen Servercomputer, eine Reihe von Servercomputern, einen einzelnen Personalcomputer, eine Reihe von Personalcomputern, einen Minicomputer, einen Mainframecomputer oder eine Rechencloud. Die verschiedenen Komponenten des Computers 12 können eines oder mehrere Betriebssysteme ausführen, wobei Beispiele derselben umfassen können, aber nicht beschränkt sind auf: z. B. Microsoft Windows Servertm; Novell Netwaretm; Redhat Linuxtm; Unix oder ein benutzerdefiniertes Betriebssystem.
  • Die Anweisungssätze und Subroutinen des Auswahlprozesses 10, welche auf einer Speichervorrichtung 16 gespeichert sein können, die mit dem Computer 12 verbunden ist, können von einem oder mehreren Prozessoren (nicht gezeigt) und einer oder mehreren Speicherarchitekturen (nicht gezeigt) ausgeführt werden, welche in dem Computer 12 enthalten sind. Es soll angemerkt werden, dass der eine oder die mehreren Prozessoren konfiguriert sein können verschiedene Tätigkeiten simultan durchzuführen (z. B. wenn ein Extrahieren oder Aufteilen eines Bildes stattfindet, wie es im Folgenden noch genauer beschrieben werden wird). Die Speichervorrichtung 16 kann umfassen, ist aber nicht beschränkt auf: ein Festplattenlaufwerk; ein Flashlaufwerk; ein Bandlaufwerk; ein optisches Laufwerk; ein RAID-Array; einen Speicher mit wahlfreiem Zugriff (RAM, Random Access Memory); und einen Nur-Lese-Speicher (ROM; Read-only Memory).
  • Das Netzwerk 14 kann mit einem oder mehreren Sekundärnetzwerken verbunden sein (z. B. mit einem Netzwerk 18), wobei Beispiele desselben z. B. umfassen können, aber nicht beschränkt sind auf: ein lokales Bereichsnetzwerk (Local Area Network), ein Weitverkehrsnetzwerk (Wide Area Network) oder ein Intranet.
  • Auf den Auswahlprozess 10 kann von verschiedenen Client-Anwendungen 22, 24, 26, 28 zugegriffen werden. Beispiele für die Client-Anwendungen 22, 24, 26, 28 können umfassen, sind aber nicht beschränkt auf einen Standardwebbrowser, einen benutzerdefinierten Webbrowser oder eine benutzerdefinierte Anwendung. Die Anweisungssätze und Subroutinen der Client-Anwendungen 22, 24, 26, 28 können auf Speichervorrichtungen 30, 32, 34 bzw. 36 gespeichert sein, welche mit elektronischen Client-Vorrichtungen 38, 40, 42 bzw. 44 verbunden sind, und können von einem oder mehreren Prozessoren (nicht gezeigt) und einer oder mehreren Speicherarchitekturen (nicht gezeigt) ausgeführt werden, welche in den elektronischen Client-Vorrichtungen 38, 40, 42 bzw. 44 enthalten sind.
  • Die Speichervorrichtungen 30, 32, 34, 36 können umfassen, sind aber nicht beschränkt auf: Festplattenlaufwerke; Flashlaufwerk; Bandlaufwerke; optische Laufwerke; RAID-Arrays; Speicher mit wahlfreiem Zugriff (RAM, Random Access Memories); und Nur-Lese-Speicher (ROM, Read-only Memories). Beispiele der elektronischen Client-Vorrichtungen 38, 40, 42, 44 können umfassen, sind aber nicht beschränkt auf einen Personalcomputer 38, einen Laptopcomputer 40, ein Smartphone 42, einen Notebookcomputer 44; einen Server (nicht gezeigt); ein zur Datenverarbeitung geeignetes Mobiltelefon (nicht gezeigt) und eine zweckbestimmte Netzwerkorrichtung (nicht gezeigt).
  • Die eine oder die mehreren Client-Anwendungen 22, 24, 26, 28 können konfiguriert sein auf eine oder alle Funktionalitäten des Auswahlprozesses 10 einzuwirken. Dementsprechend kann der Auswahlprozess 10 eine rein server-seitige Anwendung, eine rein client-seitige Anwendung oder eine server-/client-seitige Hybridanwendung sein, welche von einer oder mehreren der Client-Anwendungen 22, 24, 26, 28 und dem Auswahlprozess 10 in Kooperation ausgeführt wird.
  • Anwender 46, 48, 50, 52 können auf den Computer 12 und den Auswahlprozess 10 direkt über das Netzwerk 14 oder über das Sekundärnetzwerk 18 zugreifen. Des Weiteren kann der Computer 12 mit dem Netzwerk 14 über das Sekundärnetzwerk 18 verbunden sein, wie mit der gestrichelten Verbindunglinie 54 angedeutet.
  • Die verschiedenen elektronischen Client-Vorrichtungen können direkt oder indirekt mit dem Netzwerk 14 (oder dem Netzwerk 18) verbunden sein. Zum Beispiel ist der Personalcomputer 38 als direkt mit dem Netzwerk 14 über eine kabelgebundene Netzwerkverbindung verbunden seiend dargestellt. Des Weiteren ist der Notebookcomputer 44 als über eine kabelgebundene Netzwerkverbindung direkt mit dem Netzwerk 18 verbunden seiend dargestellt. Der Laptopcomputer 40 ist als drahtlos mit dem Netzwerk 14 über einen drahtlosen Kommunikationskanal 56 verbunden seiend dargestellt, wobei der drahtlose Kommunikationskanal 56 zwischen dem Laptopcomputer 40 und einem drahtlosen Zugangspunkt (d. h. WAP, Wireless Access Point) 58 eingerichtet ist, welcher als direkt mit dem Netzwerk 14 gekoppelt seiend dargestellt ist. WAP 58 kann z. B. eine IEEE 802.11a-, 802.11b-, 802.11g-, Wi-Fi- und/oder eine Bluetooth-Vorrichtung sein, welche in der Lage ist einen drahtlosen Kommunikationskanal 56 zwischen dem Laptopcomputer 40 und dem WAP 58 einzurichten. Das Smartphone 42 ist als drahtlos mit dem Netzwerk 14 über einen drahtlosen Kommunikationskanal 60 verbunden seiend dargestellt, wobei der drahtlose Kommunikationskanal 60 zwischen dem Smartphone 42 und einem Zellennetzwerk/Bridge 62 eingerichtet ist, welche als direkt mit dem Netzwerk 14 gekoppelt seiend dargestellt ist.
  • Wie aus dem Stand der Technik bekannt, kann jeder der IEEE 802.11x-Standards das Ethernet-Protokoll und Mithören bei Mehrfachzugriff mit Kollisionserkennung (d. h. CSMA/CA, carrier sense multiple access with collision avoidance) zur gemeinsamen Kanalnutzung verwenden. Die verschiedenen 802.11x-Standards können z. B. Phasenumtastungsmodulation (d. h. PSK, phase-shift keying) oder komplementäre Codeumtastungsmodulation (d. h. CCK, complementary code keying), verwenden. Wie aus dem Stand der Technik bekannt, ist Bluetooth ein technischer Standard der Telekommunikationsindustrie, welcher es z. B. Mobiltelefonen, Computern und Smartphones gestattet unter Verwendung einer drahtlosen Verbindung mit kurzer Reichweite miteinander verbunden zu werden.
  • Elektronische Client-Vorrichtungen 38, 40, 42, 44 können ein Betriebssystem ausführen, wobei Beispiele derselben umfassen können, aber nicht beschränkt auf Apple iOStm, Microsoft Windowstm, Adroidtm, Redhat Linuxtm oder ein benutzerdefiniertes Betriebssystem.
  • 2 zeigt eine beispielhafte Ausführungsform eines optischen Inspektionssystems 100, welches zur Verwendung mit dem Auswahlprozess 10 konfiguriert ist. Es soll angemerkt werden, dass eine Vielzahl von Systemimplementierungen in alternativen Ausführungsformen verwendet werden kann, ohne den Bereich der vorliegenden Offenbarung zu verlassen. Wie im Weiteren im Detail beschrieben werden wird, können die Ausführungsformen des Auswahlprozesses 10, welche hierin beschrieben sind, allgemein verwendet werden hinsichtlich der selektiven Anordnung von Messpunkten während einer Registrierung einer dreidimensionalen Punktwolke. Zum Beispiel können in einigen Ausführungsformen Aspekte des Auswahlprozesses im Anschluss an das globale Positionieren/Registrieren eines Live- oder Laufzeitobjekt-Bilds relativ zu einem Modell oder Übungsbild des Objekts erfolgen und bevor, während oder nach einer Inspektion des Laufzeitobjekts oder -merkmals.
  • In einigen Ausführungsformen kann das optische Inspektionssystem 100 eine Bildgebungsvorrichtung 110 umfassen, welche eine Kamera sein kann, die einen Onboard-Prozessor (nicht gezeigt) und einen Speicher (nicht gezeigt) umfasst, welche in der Lage sind, eine optische Inspektionsanwendung 112 auszuführen. Ein Beispiel einer Bildgebungsvorrichtung 110, welche mit der vorliegenden Offenbarung verwendet werden kann, ist der Cognex DS1100 3D-Sensor, welcher von der Anmelderin der vorliegenden Offenbarung bezogen werden kann. Geeignete Schnittstellen, Alarme und Signale können installiert sein in und/oder verbunden sein mit der Kamerabildgebungsvorrichtung 110, so dass diese in der Lage ist auf einen erkannten Fehler, welcher während der Inspektion des zugrunde liegenden Objekts 120 detektiert wurde, zu reagieren. In dieser Ausführungsform ist ein Förderer 122 gezeigt, welcher eine Mehrzahl von Objekten 120 enthält. Diese Objekte können während eines Inspektionsprozesses ein vorgegebenes Sichtfeld (FOV, field of view) der Bildgebungsvorrichtung 110 passieren. Hierbei kann die Bildgebungsvorrichtung 110 mindestens ein Bild jedes beobachteten Objekts 120 erlangen.
  • In einigen Ausführungsformen kann der konventionelle Mikrocomputer 130 jede geeignete Rechenvorrichtung sein, wie z. B. der Computer 12 wie in 1 gezeigt.
  • Der Computer 130 kann Komponenten einer graphischen Benutzerschnittstelle umfassen, wie z. B. eine Mouse 132, eine Tastatur 134 und eine Anzeige 136. Andere Arten von Schnittstellen können in alternativen Ausführungsformen ebenfalls verwendet werden, wie z. B. ein persönlicher digitaler Assistent (PDA, Personal Digital Assistent). In einigen Ausführungsformen kann die Bildgebungsvorrichtung 110 dauerhaft mit dem Computer 130 verbunden sein, wobei der Computer insbesondere die Funktionen der Bildverarbeitung durchführt. Zusätzlich und/oder alternativ kann der Prozessor in den Bildgebungsvorrichtungen, wie z. B. in jenen der Insight®-Produktlinie, einen unabhängigen Betrieb der Vorrichtung ohne eine Verbindung mit einem entfernten Computer gestatten. In dieser Ausführungsform kann der Computer 130 mit der Bildgebungsvorrichtung 110 zum Zwecke einer Vorrichtungseinrichtung, eines Testens und einer Analyse des Laufzeitbetriebs verbunden sein und/oder kommunizieren.
  • In einigen Ausführungsformen können Daten, welche einem Modell oder einem Übungsbild 140 zugeordnet sind, in Verbindung mit dem Computer 130 in einem Scheibenspeicher 142 gespeichert werden und können in dem Onboard-Speicher der Bildgebungsvorrichtung 110 gespeichert werden. Diese Daten können Daten umfassen, welche mit dem Auswahlprozess 10 verknüpft sind, welcher gemäß einer oder mehrerer Ausführungsformen der vorliegenden Offenbarung verwendet werden kann.
  • Bild 3 zeigt den Auswahlprozess 10, welcher ein Empfangen 302 unter Verwendung einer oder mehrerer Rechenvorrichtungen einer ersten Punktwolke, welche mit einem Objekt verknüpft ist, umfasst. Der Auswahlprozess 10 kann weiterhin ein Auswählen 304 von einem oder mehreren Messpunkten umfassen, welche mit der ersten Punktwolke verknüpft sind, wobei die Auswahl des einen oder der mehreren Messpunkte zumindest teilweise auf einem Wert eines speziellen Merkmals basiert, welches mit der ersten Punktwolke verknüpft ist.
  • Daher können in einigen Ausführungsformen der eine oder die mehreren Sensoren konfiguriert sein, eine Ausgabe zu erzeugen, welche als Bilddaten beschrieben werden kann, welche dann in Punktwolken transformiert werden kann. Zusätzlich und/oder alternativ können andere Sensoren Punktwolkendaten direkt als deren Primärausgabe (oder deren einzige Ausgabe) erzeugen, und Punktwolken können ebenso aus CAD-Volumenmodellen abgeleitet werden. Dementsprechend können alle Mittel zum Erzeugen einer Punktwolke verwendet werden ohne den Bereich der vorliegenden Offenbarung zu verlassen.
  • Ausführungsformen des Auswahlprozesses 10 können in einer Vielzahl von verschiedenen Anwendungen verwendet werden, wobei einige von diesen umfassen können, aber nicht beschränkt sind auf: Bauteilaufnahme mit optisch gestützten Robotersystem (z. B. wo die erste Punktwolke an einer bekannten Position während der Übung ermittelt wird und die Posenabschätzung für die zweite Wolke verwendet werden kann, um einen Robotergreifer während der Laufzeit zu dem Teil zu führen), dreidimensionale Inspektion (z. B. wo die erste Punktwolke während des Übens unter Verwendung einer als gut bekannten „goldenen” Vorlage oder Musters erlangt wird und die zweite Punktwolke mit dieser Vorlage sinnvoll verglichen werden kann, nachdem eine geschätzte Posendifferenz entfernt wurde), selbstbewegendes Montage (automotive kitting), Volumeninspektion von gespritzten Kunststoffteilen und gegossenen Metallteilen und Montageinspektion.
  • Wie hierin beschrieben kann der Auswahlprozess 10 in einigen Ausführungsformen eine oder mehrere Punktwolkeneingaben empfangen. Der Ausdruck „Punktwolke”, wie er hierin verwendet wird, bezieht sich auf eine Gruppe von dreidimensionalen Punkten auf oder nahe der Oberfläche eines Volumenobjekts. Diese Punkte können in Form von deren Koordinaten in einem rechtwinkeligen oder einem anderen Koordinatensystem präsentiert werden. Andere Informationen, wie z. B. eine Netz- oder Gitterstruktur, die anzeigt, welche Punkte auf der Oberfläche des Objekts zueinander benachbart sind, können optional ebenfalls verfügbar sein. In einigen Ausführungsformen können die Informationen über Oberflächenmerkmale, welche Krümmungen und Oberflächennormale umfassen, welche beide von den Sensormessungen abgeleitet werden oder im Vorfeld berechnet wurden, in den eingegebenen Punktwolken umfasst sein. Jedoch wird dies lediglich beispielhaft bereitgestellt, da der Auswahlprozess 10 eine solche Anordnung nicht benötigt. In anderen Ausführungsformen werden diese Informationen in den eingegebenen Punktwolken nicht vorhanden sein, werden aber als ein Vorverarbeitungsschritt vor dem Auswahlprozess berechnet. Der Ausdruck „Messpunkt” wie er hierin verwendet wird, kann sich auf einen speziellen Punkt beziehen, welcher aus einer registrierten Punktwolke ausgewählt wurde oder auf einem Punkt auf oder nahe der Oberfläche, welche die Punktwolke repräsentiert, und welche aus den Punkten und anderen Daten, welche in der Wolke vorhanden sind, berechnet werden.
  • Ausführungsformen, welche hierin offenbart sind, sind auf ein selektives Anordnen von Messpunkten, während der Registrierung einer dreidimensionalen Punktwolke gerichtet. Dementsprechend kann der Auswahlprozess 10 in einigen Ausführungsformen, welche hierin beschrieben sind, verwendet werden, um die Zeit zu reduzieren, welche für eine feste Registrierung der (Oberflächen) Punktwolken benötigt wird. Zum Beispiel kann der Auswahlprozess 10 eine oder mehrere Eingaben empfangen, wie z. B. zwei Punktwolken, welche ungefähr von der Oberfläche des betreffenden Objekts ermittelt wurde. Das Objekt kann dann an verschiedenen Positionen lokalisiert werden, wenn die beiden Punktwolken erlangt wurden. Der Auswahlprozess 10 kann konfiguriert sein, die relative Posendifferenz (z. B. eine Veränderung in der Position) des Objekts zwischen den beiden Punktwolken in einem begrenzten Zeitabschnitt zu bestimmen. Dementsprechend kann eine Ausrichtung extrem langsam sein, weil die Punktwolken so viele Daten enthalten. Ausführungsformen des Auswahlprozesses 10 gestatten es dem Anwender Anwendungen deutlich schneller auszuführen und können Anwendungen ermöglichen, die anderenfalls überhaupt gar nicht möglich wären. Ausführungsformen des Auswahlprozesses 10 können zusätzlich die Genauigkeit der Bestimmung einer relativen Posendifferenz verbessern oder die Natur von Fehlern in der Posendifferenzbestimmung verändern, um diese für die Anwender akzeptabler zu machen. Solche Oberflächenmerkmale, welche die Genauigkeit der relativen Posenabschätzung bestimmen oder begrenzen, können durch den Auswahlprozess 10 bewahrt werden, während andere Oberflächenbereiche eliminiert werden.
  • Zum Zwecke der dreidimensionalen Registrierung können die als Eingabe bereitgestellten Punktwolken im Wesentlichen mit verschiedenen Positionen des vorhandenen Objekts oder der vorhandenen Objekte übereinstimmen. Solche Positionsveränderungen können auf verschiedene Weisen dargestellt werden, z. B. durch ein Ausdrücken der Positionen aller Punkte in allen Wolken durch Werte in einem gemeinsamen Koordinatensystem.
  • Der Auswahlprozess 10 gestattet einen geringen Messfehler für den Fall, dass die Punktwolken von Sensoren erlangt wurden, und geringe Ungenauigkeiten in den Punktwolken, welche von Volumenmodellen erlangt wurden.
  • In einigen Ausführungsformen kann der Auswahlprozess 10 zwei Punktwolken als Eingaben empfangen. Eine dieser Punktwolken kann während einer Übungszeit empfangen worden sein oder die andere während der Laufzeit. Dementsprechend können die beiden Punktwolken bis auf mögliche kleine Unterschiede in der Objektoberfläche in diesem speziellen Beispiel mit demselben Objekt übereinstimmen und können eine signifikante, aber nicht notwendigerweise vollständige Überlappung in den Bereichen der Oberfläche des Objekts aufweisen, welches sie repräsentieren. Zusätzlich kann mehr als eine Instanz des Objekts, welches in der Übungszeitpunktwolke vorhanden ist, in der Laufzeitpunktwolke vorhanden sein und andere Objekte, welche nicht in der Übungszeitpunktwolke vorhanden sind, können in der Laufzeitpunktwolke vorhanden sein.
  • Der Auswahlprozess 10 kann konfiguriert sein, um eine Bestimmung der Posenänderung des Objekts zwischen den beiden Punktwolken in einem begrenzten Zeitabschnitt zu bestimmen. Unter Verwendung der Lehren der vorliegenden Offenbarung kann der Auswahlprozess 10 konfiguriert sein, eine Bestimmung einer Lösung zu gestatten, sogar in Fällen, wenn ein oder mehrere Punkte der ersten eingegebenen Punktwolke nicht mit einem oder mehreren Punkten in der zweiten Punktwolke übereinstimmen. Auf diese Weise ist es nur notwendig, dass beide Wolken zu Punkten auf der Objektoberfläche Bezug nehmen, aber nicht notwendigerweise zu denselben Punkten auf dieser Oberfläche. Zum Beispiel, gibt es für Punktwolken, welche durch Streifenlichtsensoren erlangt werden, keine Notwendigkeit, dass die Streifen der beiden Punktwolken übereinstimmen.
  • In einigen Ausführungsformen arbeitet der Auswahlprozess 10 mit einer Abschätzung von unveränderlichen Merkmalen der Objektoberfläche einer lokalen Pose. Die Merkmale, welche von dem Auswahlprozess 10 verwendet werden, können umfassen, sind aber nicht beschränkt auf eine Gauß'sche Krümmung, eine Mittelwertkrümmung, Faltenkanten und Grenzen (z. B. Verschlusskanten). Auf diese Weise kann der Auswahlprozess 10 konfiguriert sein, aus einer oder beiden Punktwolken alle Punkte zu entfernen bis auf die Punkte, welche die Außergewöhnlichsten (z. B. hoch in der erwarteten Krümmung) sind und zumindest wahrscheinlich auf oder nahe einer Verschlussgrenze liegen. Die Filterung, welche mit dem Auswahlprozess 10 verknüpft ist, kann die Anzahl der Punkte und der verwendeten lokalen Bereiche reduzieren und kann informativere Punkte und Bereiche für den dreidimensionalen Punktwolkenabgleich verwenden. In einigen Ausführungsformen können einige der ausgewählten Punkte oder Messpunkte verwendet werden, um relative Posenabschätzungen zu berechnen. In einigen Ausführungsformen können die ausgewählten Messpunkte verwendet werden, um die Posenabschätzungen zu evaluieren oder zu bewerten, um eine Auswahl der besten Abschätzungen oder eine Verbesserung von ausgewählten Abschätzungen zu ermöglichen.
  • In den 46 sind Ausführungsformen 400 bis 600 gezeigt, welche mit verschiedenen Zuständen des Auswahlprozesses 10 verknüpft sind. Die Punkte, welche in den 4 und 6 in grün gezeigt sind, beziehen sich im Wesentlichen auf Übungszeitdaten, während sich die Punkte, welche in den 5 und 6 in rot gezeigt sind, im Wesentlichen auf Laufzeitdaten beziehen. Die Punkte, welche in den 5 und 6 in blau gezeigt sind, sind ein Ergebnis eines Anwendens der letzten Abschätzung der relativen Posendifferenz auf die Übungszeitdaten. Die kleinsten Punkte beziehen sich auf Originalpunktwolken und größere dunklere Punkte beziehen sich auf Daten aus Unterabtastungen, während die größeren helleren Punkte (verschiedener Farben) Messpunkte anzeigen. Diese Figuren werden im Folgenden im Detail beschrieben.
  • In 4 wird eine Ausführungsform 400 gezeigt, wobei ein Bild mit einem Übungszeitobjekt verknüpft ist. Wie oben beschrieben, kann der Auswahlprozess 10 ein Empfangen unter Verwendung einer oder mehrerer Rechenvorrichtungen eines ersten Bildes oder anderer Daten, welche mit einem Übungszeitobjekt verknüpft sind, und ein Identifizieren einer ersten Punktwolke, welche mit dem ersten Bild verknüpft ist, umfassen.
  • Das Verarbeiten einer Punktwolke kann ein Herunterrechnen der Punktwolke umfassen. Der Ausdruck „Herunterrechnen”, wie er hierin verwendet wird, bezieht sich auf dessen gewöhnliche Bedeutung in der Signalverarbeitung sowie auf ein Entfernen von Datenpunkten oder ein Ersetzen von Gruppen von multiplen Punkten durch einzelne repräsentative Punkte. In einigen Ausführungsformen kann das Herunterrechnen erreicht werden durch ein Unterteilen eines Begrenzungsrechtecks für die Punktwolke in Voxel einer benutzerdefinierten Größe und ein Ersetzen der Punkte innerhalb jedes Voxels wenn überhaupt durch einen einzelnen Punkt in dessen Zentralpunkt. Der Auswahlprozess 10 kann dann Oberflächenmerkmale berechnen, einschließlich Krümmungen und Oberflächennormalen an einem oder mehreren Punkten, welche mit der heruntergerechneten Punktwolke verknüpft sind. In einigen Ausführungsformen kann diese Berechnung allein unter Verwendung der Punkte der heruntergerechneten Wolke durchgeführt werden. In anderen Punkten der Originalpunktwolke können diese ebenfalls verwendet werden, um Merkmale an den Punkten der heruntergerechneten Wolke abzuschätzen.
  • Ausführungsformen des Auswahlprozesses 10 können die Verwendung einer oder mehrerer Nachschlagetabellen (LUT, look-up-table) umfassen. Dementsprechend kann eine LUT für jeden Punkt in der heruntergerechneten Punktwolke erstellt werden. Auf diese Weise kann der Auswahlprozess 10 für jeden Punkt all diejenigen Punkte bestimmen, welche innerhalb eines festen Abstands von dem ausgewählten Punkt liegen. In einigen Ausführungsformen kann eine solche LUT unter Verwendung eines k-d-Baumalgorithmus implementiert werden.
  • Der Auswahlprozess 10 kann ein Auswählen einer oder mehrerer Messpunkte umfassen, welche mit der ersten Punktwolke verknüpft sind, wobei die Auswahl des einen oder der mehreren Messpunkte zumindest teilweise auf einem speziellen Merkmal basiert, welches mit dem einen oder den mehreren Messpunkten verknüpft ist. Einige Merkmale können umfassen, sind aber nicht beschränkt auf Krümmungsmerkmale, umfassend Gauß'sche und Mittelwertkrümmungsmerkmale sowie Faltenkanten- und Grenzmerkmale, wie z. B. Verschlusskanten. Einige Ausführungsformen des Auswahlprozesses 10 können die LUT's verwenden, wie z. B. soeben beschrieben, um alle Punkte innerhalb eines festen Abstands von einem potentiellen Messpunkt zu finden. Diese können zusätzlich planare oder gekrümmte Oberflächen an diese Punktsätze anpassen, um solche Merkmale abzuschätzen, wie z. B. Gauß'sche oder Mittelwertkrümmungen oder Messgrößen für Krümmung, die Anwesenheit einer Faltenkante und die Anwesenheit einer Verschlusskante. Solche Merkmale können verwendet werden, um potentielle Messpunkte einem Rang zuzuordnen, und um nur die Punkte mit dem höchsten Rang als Messpunkte auszuwählen. In einigen Ausführungsformen kann eine Ebene auf den Satz aller Punkte der Wolke innerhalb eines festen Abstands von einem potentiellen Messpunkt angepasst werden, um die Oberflächennormale und die Tangentialebene zu der Punktwolke in dem potentiellen Messpunkt abzuschätzen. Eine quadratische Funktion kann an die Normalenabstände von dieser Ebene zu den Punkten innerhalb des festen Abstands vom potentiellen Messpunkt angepasst werden und die Krümmungen der entsprechenden quadratischen Oberfläche können verwendet werden, um die Gauß'sche und die Mittelwertkrümmung der Punktwolke an dem potentiellen Messpunkt abzuschätzen. Für einige Ausführungsformen kann eine bestimmte Anzahl oder ein Bruchteil der Punkte der ersten Punktwolke als Messpunkte ausgewählt werden. Punkte, welche auf einer Verschlusskante liegen, können von der Betrachtung ausgeschlossen werden, wenn dies gewünscht wird. Ein potentieller Messpunkt kann als auf einer Verschlusskante liegend angesehen werden, wenn der Satz von Verschiebungsrichtungen zu anderen Punkten innerhalb des festen Abstands der LUT, wenn diese in die Ebene projiziert werden, welche an die erste Punktwolke in dem potentiellen Messpunkt angepasst wurde, verhindert, dass ein Sektor einen hinreichend großen Winkel in dem Kreis der Richtungen in der Ebene um den potentiellen Messpunkt schneidet. Den verbleibenden potentiellen Messpunkten kann ein Wert basierend auf den geschätzten Krümmungen zugeordnet werden und die Anzahl der erforderlichen Punkte, welche die besten Werte haben, können als Messpunkte ausgewählt werden. Ein Beispiel eines solchen Werts wäre die quadrierte Differenz der geschätzten Gauß'sche Krümmung an dem potentiellen Prüfpunkt und die maximale erwartete Gauß'sche Krümmung aller Punkte der ersten Punktwolke. In anderen Ausführungsformen kann ein Mittelwert die Gauß'sche Krümmung ersetzen. In nochmals einer anderen Ausführungsform würde die Summe der Gauß'schen und der Mittelwertkrümmungswerte verwendet werden. Für alle diese Beispielwerte werden kleinere Werte als besser eingestuft und die Punkte mit der niedrigsten Bewertung würden als Messpunkte ausgewählt werden.
  • In 5 wird eine Ausführungsform 500 in Form eines Bildes gezeigt, welches mit einem Laufzeitobjekt verknüpft ist. Auf diese Weise kann ein Punktwolkenregistrierungsalgorithmus, welcher auf einem Auswahlprozess 10 besiert, des Weiteren ein Analysieren einer zweiten Punktwolke umfassen, welche mit einem Laufzeitobjekt verknüpft ist, wobei die Analyse zumindest teilweise auf der ersten Punktwolke basiert. Auf diese Weise kann die zweite Punktwolke unter Verwendung derselben oder ähnlicher Voxelnetzverarbeitung heruntergerechnet werden, welche während der Übungszeitanalyse verwendet wurde. Ein solcher Registrierungsalgorithmus kann des Weiteren eine Ausführung einer vereinfachten schnellen Krümmungsanalyse in jedem Punkt umfassen. Eine oder mehrere LUT's können auf eine Weise erstellt werden, welche ähnlich ist zu der oben Beschriebenen. Eine Ebenenanpassung und eine Oberflächennormalenbestimmung kann unter Verwendung einer LUT ausgeführt werden, um alle Punkte innerhalb eines festen Abstands von einem gegebenen Punkt zu bestimmen, wie für die erste Punktwolke beschrieben. Ein Residualfehler einer solchen Ebenenanpassung kann verwendet werden als ein Ergebnis einer schnellen Krümmungsanalyse, welche eine einfache Messgröße für die Krümmung an jedem Punkt der zweiten, möglicherweise heruntergerechneten, Wolke erzeugt.
  • In einigen Ausführungsformen kann der Auswahlprozess 10 von einem Grobregistrierungsalgorithmus verwendet werden, welcher eine oder mehrere mögliche Posen aus nicht-kolinearen Dreipunktübereinstimmungen bestimmt. Beliebige solche Übereinstimmungen bestimmen mathematisch eine relative Posendifferenz. Wie oben beschrieben müssen die Punkte, welche mit der ersten Punktwolke verknüpft sind, nicht in identischer Weise mit den Punkten übereinstimmen, welche mit der zweiten Punktwolke verknüpft sind. Der Auswahlprozess 10 kann verwendet werden, um die Anzahl an betrachteten Übereinstimmungen zu reduzieren, indem er einige Punktpaare aus der Betrachtung entfernt. In einigen Ausführungsformen kann eine Dreipunktübereinstimmung eine nach der anderen bestimmt werden. Ein Punkt kann aus der zweiten Wolke ausgewählt werden und ein oder mehrere Punkte aus der ersten Punktwolke können dann mit diesem in einer Ein-Punkt-Übereinstimmung gepaart werden. Für jede solche ausgebildete Übereinstimmung, kann ein zweiter Punkt aus der zweiten Wolke ausgewählt werden und ein oder mehrere Punkte können dann aus der ersten Wolke ausgewählt werden, um mit diesem gepaart zu werden, wobei dieser zu einer oder mehreren Zwei-Punkt-Übereinstimmungen erweitert werden. Für jede dieser Zwei-Punkt-Übereinstimmungen, kann ein dritter Punkt aus der zweiten Wolke ausgewählt werden und dann können der eine oder die mehreren Punkte aus der ersten Wolke ausgewählt werden, wodurch jede Zwei-Punkt-Übereinstimmung zu einer oder mehreren Drei-Punkt-Übereinstimmungen erweitert wird. Punkte aus der zweiten Punktwolke, welche in der einfachen Krümmungsmessung nicht als hoch eingestuft worden sind, können von der Betrachtung ausgeschlossen werden, wenn damit begonnen wird, eine Übereinstimmung zu bestimmen. Sobald ein Punkt aus der zweiten Wolke ausgewählt wurde, werden Punkte aus der ersten Wolke, welche nicht zu den Merkmalen ähnlich sind, wie von dem Auswahlprozess 10 berechnet, von der Betrachtung im Rahmen der Bildung der Übereinstimmungen ausgeschlossen. Einige oder alle der verbleibenden Punkte aus der ersten Wolke können ausgewählt werden, um mögliche Drei-Punkt-Übereinstimmungen in Verbindung mit dem ersten Punkt, welcher aus der zweiten Wolke ausgewählt wurde, zu erzeugen. Auf ähnliche Weise kann sobald ein erster Punkt aus jeder Wolke ausgewählt wurde, ein zweiter Punkt aus der zweiten Wolke ausgewählt werden, welcher auf oder nahe einem festen Abstand von dem ersten Punkt liegt, welcher von dieser Wolke ausgewählt wurde. Um die Geschwindigkeit zu erhöhen, mit welcher die Punkte ausgewählt werden können, kann eine zweite Art von LUT erzeugt werden bevor der Prozess des Erzeugens der Drei-Punkt-Übereinstimmungen beginnt, welche für jeden Punkt in einer Punktwolke alle anderen Punkte dieser Wolke auflistet, welche diese Abstandsbedingung erfüllen. Der Anwender kann sowohl den verwendeten festen Abstand und die zulässige Abweichung vom Abstandsfehler bestimmen, wobei einer oder beide dieser Werte basierend auf dem Herunterrechnen der Voxelgröße und dem geschätzten Durchmesser der ersten Punktwolke berechnet werden können. In einigen Ausführungsformen können diese LUT's mit der Hilfe von k-d-Bäumen oder ähnlichen Datenstrukturen erzeugt werden. Diese LUT's können sowohl für die erste als auch für die zweite Punktwolke erzeugt werden. Sobald ein zweiter Punkt aus der zweiten Punktwolke ausgewählt wurde, welcher die Abstandsvorgabe mit Bezug auf den ersten Punkt dieser Wolke erfüllt, können ein oder mehrere zweite Punkte aus der ersten Wolke ausgewählt werden, welche dieselbe Abstandsbedingung mit Bezug auf den ersten Punkt erfüllen, welcher aus der ersten Punktwolke ausgewählt wurde. Zusätzlich zu dem Erfüllen der Abstandsbedingung können auszuwählende Punkte aus der ersten Punktwolke von der Betrachtung ausgeschlossen werden, wenn sie nicht in einigen oder allen Merkmalen, welche von dem Auswahlprozess 10 berechnet wurden, den Punkten ähnlich sind, welche aus der zweiten Punktwolke ausgewählt wurden. Sobald ein zweiter Punkt aus jeder Punktwolke ausgewählt wurde, kann ein dritter Punkt aus der zweiten Punktwolke ausgewählt werden, welcher auf oder nahe einem festen Abstand von jedem der ersten beiden aus der zweiten Wolke ausgewählten Punkte angeordnet ist und dann können einer oder mehrere dritte Punkte aus der ersten Punktwolke ausgewählt werden, welche ebenfalls auf oder nahe diesem Abstand von jedem der ersten beiden Punkte, welche aus der ersten Punktwolke ausgewählt wurden, liegen. Dieser Abstand kann derselbe sein, wie jener, welcher in der Auswahl der zweiten Punkte von beiden Wolken verwendet wurde. In einigen Ausführungsformen kann eine dritte Art von LUT für jede Punktwolke erstellt werden, um das Auswählen des dritten Punkts zu erleichtern. Diese LUT's können für jeden Punkt in der Wolke und für jeden anderen Punkt der Wolke auf oder nahe einem festen Abstand von diesem Punkt alle Punkte in der Wolke auflisten, welche auf oder nahe diesem Abstand von beiden sind. Eine solche LUT kann mit der Hilfe einer vorher erzeugten LUT der zweiten Art erstellt werden. In einigen Ausführungsformen können Krümmungsmerkmale verwendet werden, um Punkte von der Betrachtung auszuschließen, wenn die erste der Drei-Punkt-Übereinstimmungen ermittelt wird und die Oberflächennormalenrichtungsmerkmale können bei der Ermittlung der zweiten Drei-Punkt-Übereinstimmung verwendet werden. Zum Beispiel können nachdem der erste Punkt aus der zweiten Wolke ausgewählt wurde, Merkmale der zweiten Wolke an diesem Punkt, wie z. B. eine Gauß'sche oder Mittelwertkrümmung für den Auswahlprozess 10 berechnet werden. Die Punkte der ersten Wolke können durch die Summe der Differenzquadrate zwischen deren Krümmungsmerkmalen und den entsprechenden Krümmungsmerkmalen des Punkts, welcher von der zweiten Punktwolke ausgewählt wurde, bewertet werden und alle Punkte bis auf einen vorgegebenen Anteil mit den besten (das sind die niedrigsten) Werten können eliminiert werden. Ähnlich können nachdem ein erster und ein zweiter Punkt aus der zweiten Punktwolke ausgewählt wurden und ein erster Punkt aus der ersten Wolke ausgewählt wurde, die Punkte der ersten Wolke, welche die Abstandsbedingung erfüllen, anhand ihrer Ähnlichkeit hinsichtlich der Oberflächennormalenrichtung zu dem zweiten Punkt bewertet werden, welcher aus der zweiten Punktwolke ausgewählt wurde, und alle bis auf die ähnlichsten Punkte werden eliminiert. Um einen Wert zu erzeugen, welcher hinsichtlich der möglichen Posendifferenz zwischen den beiden Punktwolken bedeutend ist, kann für jede Wolke ein orthogonaler Koordinatenrahmen berechnet werden, in welchem der erste Punkt, welcher ausgewählt wurde, den Ursprung bildet, die Linie zwischen dem ersten Punkt und dem zweiten ausgewählten Punkt die X-Achse ist und die Y-Achse senkrecht zu der X-Achse und der Oberflächennormalen in dem ersten Punkt ist. Die Richtungskosinus-Werte der Oberflächennormalenrichtung in dem zweiten Punkt, welcher zu jedem dieser drei Koordinatenachsen ausgewählt wurde, können für jede der beiden Wolken berechnet werden. Der Wert kann als die Summe der Differenzquadrate zwischen den Punkten, welche von der ersten Wolke ausgewählt wurden, und den Punkten, welche von der zweiten Wolke der entsprechenden Richtungskosinus-Werte ausgewählt wurden, berechnet werden. Zusätzliche Terme, welche aus den Differenzquadraten zwischen einigen oder allen Krümmungsmerkmalen in dem zweiten Punkt, welcher aus jeder Wolke ausgewählt wurde, bestehen, können ebenfalls in diesem Wert umfasst sein.
  • In einigen Ausführungsformen kann der Drei-Punkt-Übereinstimmungsprozess mit verschiedenen Auswahlen an Punkten von der zweiten Wolke wiederholt werden. Diese Auswahlen können mit der Hilfe eines Zufallszahlengenerators oder eines Pseudo-Zufallszahlengenerators erfolgen. Die Anzahl der Wiederholungen kann von dem Anwender bestimmt werden, um die Verlässlichkeit zu erhöhen, dass die mindestens eine Wiederholung eine Drei-Punkt-Übereinstimmung erzeugt, welche eine mindestens annährungsweise korrekte Schätzung der Posendifferenz zwischen der ersten und der zweiten Punktwolke bestimmt.
  • In einigen Ausführungsformen können der Auswahlprozess 10 und der Übereinstimmungserzeugungsalgorithmus von dem Anwender angepasst werden. Zum Beispiel kann der Anwender eine Sensitivitätseinstellung für einen oder mehrere Aspekte des Prozesses vornehmen, um deren Ergebnisse zu erhöhen oder zu erniedrigen.
  • In einigen Ausführungsformen kann der Auswahlprozess in Verbindung mit einer Prozedur verwendet werden, um eine oder mehrere mögliche Posen zu erzeugen und um die Messpunkte, welche von dem Auswahlprozess durch die verschiedenen möglichen Posen ausgewählt wurden, örtlich zu erfassen, um die Qualität der möglichen Posen zu evaluieren. Zum Beispiel können die möglichen Posen von nicht-kolinearen Drei-Punkt-Übereinstimmungen berechnet werden, die wie oben beschrieben. Des Weiteren können Messpunkte, welche von dem Auswahlprozess 10 ausgewählt wurden, verwendet werden, um Posen unabhängig von dem Erzeugungsverfahren zu evaluieren. Jeder Messpunkt kann unter Verwendung einer gegebenen möglichen Pose bewertet werden, wobei ein Bewerten für Punkte vermieden werden kann, welche nicht als Messpunkte ausgewählt wurden. Diese Messpunktwerte können kombiniert werden, um einen Wert für die mögliche Pose zu erzeugen. In einigen Ausführungsformen kann die Kombinationsprozedur ein Aufsummieren sein, während die einzelnen Messpunktwerte durch ein Anwenden einer nicht-linearen Funktion erlangt werden, wie z. B. einem harten oder weichen Schwellwert in einem gewissen Maß des Abstands von dem Bild des Messpunkts, nach dem örtlichen Erfassen durch die mögliche Pose zu der zweiten Punktwolke. In einigen Ausführungsformen kann diese Abstandsmessung der euklidische Abstand von dem Bild des Messpunkts zu dem nächsten Punkt der zweiten Wolke sein. Alternativ können Punkt-zu-Ebenen-Abstände verwendet oder durch ein Berechnen des Abstands von dem Bild des Messpunkts zu dem nächsten Punkt in der konvexen Schale des Satzes aller Punkte der zweiten Wolke innerhalb eines gewissen vorausgewählten Abstands des Messpunktbilds angenähert werden. Die Berechnung der Abstandsmessung für Probenbewertung kann angenähert implementiert werden unter Verwendung einer oder mehrerer LUT's, um die benötigte Laufzeit zu reduzieren. In einigen Ausführungsformen können diese LUT's unter Verwendung eines k-d-Baumalgorithmus implementiert werden oder durch ein Array, welches vorberechnete Werte der Distanzmessung für mögliche Messpunktbildorte enthält, welche aus einem Volumen entnommen wurden, welches die zweite Punktwolke einschließt, oder beides.
  • In einigen Ausführungsformen kann der Auswahlprozess 10 von einem Posenverbesserungsalgorithmus verwendet werden. Zum Beispiel können Varianten des bekannten ICP- (ICP: Iterated Closest Point) oder des EMICP-Algorithmus (EMICP: Expectation-Maximization Iterated Closest Point) verwendet werden. In diesen Algorithmen wird ein Abstandsmessungswert, wie z. B. derjenige, welcher oben beschrieben wurde, über alle Punkte der ersten Punktwolke aufsummiert und die Posenabschätzung wird durch ein Anpassen verbessert, wobei die Summe der Werte über alle Punkte abnimmt; dieser Verbesserungsprozess kann dann wiederholt werden, um die Posenabschätzung weiter zu verbessern. Unter Verwendung des Auswahlprozesses 10 ist es möglich den Verbesserungsprozess zu beschleunigen anstatt die Werte nur für die als Messpunkte ausgewählten Punkte zu berechnen und die Posenabschätzung anzupassen, so dass die Summe über die Messpunkte abnimmt.
  • In einigen Ausführungsformen können die Messpunkte, welche von dem Auswahlprozess 10 gefunden wurden, von der Punktwolke, in welcher sie gefunden wurden, zu einer anderen Punktwolke transferiert werden. Insbesondere können Messpunkte von der heruntergerechneten ersten Übungszeitpunktwolke zu der heruntergerechneten zweiten Laufzeitpunktwolke oder zu der nichtheruntergerechneten Übungszeitpunktwolke oder zu der nichtheruntergerechneten Laufzeitpunktwolke transferiert werden. Ein individueller Messpunkt kann von einer Wolke in eine andere transferiert werden, indem dieser durch die beste verfügbare Schätzung der Posendifferenz zwischen den Wolken örtlich bestimmt wird und dann der nächste Punkt aus der Wolke, in welche der Messpunkt transferiert wird, ausgewählt wird. LUT's, wie sie für die Posenbewertung erzeugt wurden, können verwendet werden, um bei der Bestimmung des nächsten Punktes zu helfen. Auf diese Weise muss keine Zeit für ein Wiederholen der gesamten Analyse des Auswahlprozesses 10 für die zweite Punktwolke aufgewendet werden. Optional können einige Analysen durchgeführt werden, um Messpunkte aus den Bildern zu entfernen, welche nicht hinreichend nahe an der zweiten Punktwolke sind oder welche zu Punkten gehören, welche auf oder nahe von Verschlusskanten angeordnet sind. In einigen Ausführungsformen können Messpunkte, welche während der Übungszeit mit einer von dem Auswahlprozess 10 heruntergerechneten Punktwolke gefunden wurden, nach einer Auswahl von einer oder mehreren qualitativ hochwertigen möglichen Posen und nach einer anfänglichen Verbesserungsrunde dieser Posen basierend auf den heruntergerechneten Übungs- und Laufzeitpunktwolken zu einer heruntergerechneten Laufzeitpunktwolke unter Verwendung der Posenabschätzung oder unter Verwendung von Abschätzungen, welche aus der anfänglichen Verbesserung resultieren, zur Laufzeit übertragen werden. Eine zusätzliche Verbesserungsrunde kann dann unter Verwendung einer nichtheruntergerechneten oder teilweise heruntergerechneten Übungszeitpunktwolke durchgeführt werden. Auf diese Weise können LUT's, welche für die Posenverbesserung verwendet werden, aber welche bei ihrer Erstellung zeitaufwändig sind, während der Übungszeit erstellt werden statt während der Laufzeit. Je nach dem wie es von dem Fachmann gewünscht ist, kann die vorliegende Offenbarung als ein Verfahren, System oder Computerprogrammprodukt verkörpert sein. Dementsprechend kann die vorliegende Offenbarung die Form einer vollständig hardware-seitigen Ausführungsform, einer vollständig software-seitigen Ausführungsform (einschließlich Firmware, installierter Software, Micro-Code etc.) oder einer Ausführungsform, welche Software- und Hardware-Aspekte verbindet, welche dann allgemein hierin als „Schaltkreis”, „Modul” oder „System” bezeichnet wird, annehmen. Des Weiteren kann die vorliegende Offenbarung die Form eines Computerprogrammprodukts und eines von einem Computer verwendbaren Speichermediums annehmen, welches einen von einem Computer verwendbaren Programmcode aufweist, welcher in dem Medium verkörpert ist.
  • Jedes beliebige von einem Computer verwendbare oder von einem Computer lesbare Medium kann genutzt werden. Das von einem Computer verwendbare oder von einem Computer lesbare Medium kann z. B. sein, ist aber nicht beschränkt auf ein elektronisches, ein magnetisches, ein optisches, ein elektromagnetisches, ein Infrarot- oder ein Halbleiter-System, -Apparat, -Vorrichtung oder -Verbreitungsmedium. Genauer spezifizierte Beispiele (eine nicht abschließende Liste) von computerlesbaren Medien würde die Folgenden einschließen: eine elektrische Verbindung, welche einen oder mehrere Drähte aufweist, eine tragbare Computerdiskette, eine Festplatte, einen Speicher mit wahlfreiem Zugriff (RAM, Random Access Memory), ein Nur-Lese-Speicher (ROM, Read-Only Memory), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM, erasable programmable read-only memory oder Flashspeicher), eine optische Faser, einen tragbaren Kompaktscheiben-Nur-Lese-Speicher (CD-ROM, Compact Disc Read-Only Memory), eine optische Speichervorrichtung, ein Übertragungsmedium, wie z. B. solche, welche das Internet oder ein Intranet unterstützen, oder eine magnetische Speichervorrichtung. Es sei angemerkt, dass das von einem Computer verwendbare oder von einem Computer lesbare Medium ebenfalls Papier oder ein anderes Medium sein kann, auf welches das Programm gedruckt ist, so dass das Programm elektronisch über z. B. scannen des Papiers oder des anderen Mediums erfasst werden kann, dann kompiliert, interpretiert oder auf andere Weise auf geeignete Art verarbeitet wird und dann, sofern erforderlich, in einem Computerspeicher gespeichert wird. In dem Kontext dieses Dokuments kann ein von einem Computer verwendbares oder von einem Computer lesbares Medium jedes Medium sein, welches das Programm enthalten, speichern, kommunizieren, verbreiten oder transportieren kann, um mit dem Anweisungsausführungs-System, -Apparat oder -Vorrichtung oder in Verbindung mit diesen verwendet zu werden. Das von einem Computer verwendbare Medium kann ein verbreitetes Datensignal umfassen mit einem von einem Computer verwendbaren Programmcode, welcher hierin sowohl in einem Basisband oder als Teil einer Trägerwelle verkörpert ist. Der von einem Computer verwendbare Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich, aber nicht beschränkt auf das Internet, drahtgebundene Übertragung, optische Faserkabel, Funk etc.
  • Der Computerprogrammcode zur Ausführung von Tätigkeiten der vorliegenden Offenbarung kann in einer objektorientierten Programmiersprache geschrieben sein, wie z. B. Java, Smalltalk, C++ oder dergleichen. Jedoch kann der Computerprogrammcode zum Ausführen der Tätigkeiten der vorliegenden Offenbarung ebenfalls in einer konventionellen prozeduralen Programmiersprache geschrieben sein, wie z. B. der „C”-Programmiersprache oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Anwenders ausgeführt werden, teilweise auf dem Computer des Anwenders als ein alleinstehendes Softwarepaket ausgeführt werden, teilweise auf dem Computer des Anwenders und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. In dem letzten Szenario kann der entfernte Computer mit dem Computer des Anwenders über ein lokales Bereichsnetzwerk (LAN, local area network) oder ein Weitbereichsnetzwerk (WAN, wide area network) verbunden sein oder die Verbindung kann zu einem externen Computer hergestellt werden (z. B. über das Internet unter Verwendung eines Internetdienstleisters).
  • Die vorliegende Offenbarung ist unten beschrieben mit Bezug auf die Flussdiagrammfiguren und/oder Blockdiagramme von Verfahren, Apparaten (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Offenbarung. Es wird verstanden, dass jeder Block der Flussdiagrammzeichnungen und/oder der Blockdiagramme und Kombinationen der Blöcke in den Flussdiagrammfiguren und/oder den Blockdiagrammen mit Hilfe von Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines speziellen Computers oder eines anderen programmierbaren Datenverarbeitungsapparats bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, welche über den Prozessor des Computers oder des anders ausgestalteten programmierbaren Datenverarbeitungsapparats ausgeführt werden, Mittel zum Implementieren der Funktionen/Handlungen erzeugen, welche in dem Flussdiagramm- und/oder Blockdiagramm-Block oder -Blöcken spezifiziert sind.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Speicher gespeichert sein, welcher einen Computer oder einen anderen programmierbaren Datenverarbeitungsapparat anweisen kann auf eine bestimmte Weise zu arbeiten, so dass die Anweisungen, welche in dem computerlesbaren Speicher gespeichert sind, einen Artikel erzeugen, einschließlich Anweisungsmitteln, welche die Funktion/Handlung implementieren, welche in dem Flussdiagramm- und/oder Blockdiagramm-Block oder den -Blöcken spezifiziert sind.
  • Die Computerprogrammanweisungen können ebenfalls auf einen Computer oder einen anderen programmierbaren Datenverarbeitungsapparat geladen werden, um auf dem Computer oder dem anderen programmierbaren Apparat eine Reihe von Handlungsschritten zu veranlassen, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, welche auf dem Computer oder auf dem anderen programmierbaren Apparat ausgeführt werden, Schritte zum Implementieren der Funktionen/Handlungen bereitstellen, welche in dem Flussdiagramm- und/oder dem Blockdiagramm-Block oder -Blöcken spezifiziert sind.
  • Die Flussdiagramme und Blockdiagramme in den Figuren zeigen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in dem Flussdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Teil des Codes repräsentieren, welcher eine oder mehrere ausführbare Anweisungen zum Implementieren der spezifizierten logischen Funktion(en) aufweist. Es soll ebenfalls angemerkt werden, dass in einigen alternativen Implementierungen die Funktionen, welche in dem Block genannt sind, außerhalb der Reihenfolge auftreten können, wie sie in den Figuren beschrieben sind. Zum Beispiel können zwei Blöcke, welche aufeinanderfolgend dargestellt sind, tatsächlich im Wesentlichen parallel ausgeführt werden oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, basierend auf der jeweiligen Funktionalität. Es soll ebenfalls angemerkt werden, dass jeder Block der Blockdiagramme und/oder der Flussdiagrammzeichnung und Kombinationen von Blöcken in den Blockdiagrammen und/oder der Flussdiagrammzeichnung von spezialisierten hardwarebasierten Systemen oder von Kombinationen aus spezialisierter Hardware und Computeranweisungen implementiert werden können, welche die spezifizierten Funktionen oder Handlungen durchführen.
  • Die Terminologie, welche hierin verwendet wurde, wurde lediglich zum Zwecke des Beschreibens spezieller Ausführungsformen gewählt und ist nicht dazu geeignet, die Offenbarung zu begrenzen. Singularformen, wie sie hierin verwendet werden, wie „der”, „die”, „das”, „ein” oder „eine” sind ebenfalls geeignet Pluralformen miteinzuschließen, es sei denn der Kontext ergibt unzweifelhaft etwas anderes. Es wird weiter verstanden, dass die Ausdrücke „aufweist” und/oder „aufweisend”, wenn sie in dieser Beschreibung verwendet werden, die Anwesenheit der beschriebenen Merkmale, Integer, Schritte, Handlungen, Elemente und/oder Komponenten spezifizieren, aber nicht die Anwesenheit oder die Hinzufügung eines oder mehrerer anderer Merkmale, Integer, Schritte, Handlungen, Elementen, Komponenten und/oder Gruppen derselben ausschließen.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Äquivalente aller Mittel oder Schritt+Funktions-Elemente in den Ansprüchen, welche unten aufgeführt sind, sind geeignet jede Struktur, Material oder Handlung zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen wie im Detail beansprucht zu umfassen. Die Beschreibung der vorliegenden Offenbarung wurde zum Zwecke der Verdeutlichung und Beschreibung gegeben, jedoch ist sie nicht dazu gedacht abschließend zu sein oder auf die Offenbarung in der offenbarten Form beschränkt zu sein. Viele Modifikationen und Abwandlungen werden dem Fachmann in den Sinn kommen ohne den Bereich und den Geist der Offenbarung zu verlassen. Die Ausführungsform wurde so gewählt und beschrieben, um am besten die Prinzipien der Offenbarung anhand praktischer Anwendungen zu erklären und um andere Fachleute in die Lage zu versetzen, die Offenbarung für verschiedene Ausführungsformen mit verschiedenen Modifikationen, wie sie für spezielle Anwendungen geeignet sind, zu verstehen.
  • Obwohl die Offenbarung der vorliegenden Erfindung im Detail und mit Bezug auf Ausführungsformen derselben beschrieben wurde, ist es ersichtlich, dass Modifikationen und Abwandlungen möglich sind ohne den Schutzbereich der Offenbarung zu verlassen, wie er in den angefügten Ansprüchen definiert ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE 802.11a- [0025]
    • 802.11b- [0025]
    • 802.11g- [0025]
    • IEEE 802.11x-Standards [0026]
    • 802.11x-Standards [0026]

Claims (24)

  1. Ein computerimplementiertes Verfahren, aufweisend: ein Empfangen einer ersten Punktwolke, welche mit einem Objekt verknüpft ist, unter Verwendung einer oder mehrerer Rechenvorrichtungen; und ein Auswählen eines oder mehrerer Messpunkte, welche mit der ersten Punktwolke verknüpft sind, wobei die Auswahl des einen oder der mehreren Messpunkte zumindest teilweise auf einem Wert eines speziellen Merkmals basiert, welches mit der ersten Punktwolke verknüpft ist.
  2. Computerimplementiertes Verfahren gemäß Anspruch 1, weiterhin aufweisend: ein Analysieren einer zweiten Punktwolke, welche mit dem Objekt verknüpft ist, wobei die Analyse zumindest teilweise auf den Messpunkten und der ersten Punktwolke basiert.
  3. Computerimplementiertes Verfahren gemäß Anspruch 2, weiterhin aufweisend: ein Auswählen eines oder mehrerer Messpunkte aus der zweiten Punktwolke, wobei die Auswahl zumindest teilweise auf dem einen oder den mehreren Messpunkten der ersten Punktwolke basiert.
  4. Computerimplementiertes Verfahren gemäß Anspruch 1, wobei das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, einen Krümmungsparameter umfasst.
  5. Computerimplementiertes Verfahren gemäß Anspruch 1, weiterhin aufweisend: ein Analysieren einer Oberflächennormaleninformation, welche mit der ersten Punktwolke und/oder der zweiten Punktwolke verknüpft ist.
  6. Computerimplementiertes Verfahren gemäß Anspruch 1, weiterhin aufweisend: ein Bestimmen einer Veränderung in der Pose des Objekts basierend auf der ersten Punktwolke und der zweiten Punktwolke.
  7. Computerimplementiertes Verfahren gemäß Anspruch 1, wobei ein oder mehrere Punkte, welche mit der ersten Punktwolke verknüpft sind, nicht in identischer Weise mit einem oder mehreren Punkten übereinstimmen, welche mit der zweiten Punktwolke verknüpft sind.
  8. Computerimplementiertes Verfahren gemäß Anspruch 1, wobei das Objekt in einer oder in beiden Punktwolken teilweise verdeckt ist, und wobei mehr als eine Instanz des Objekts und Instanzen von anderen Objekten in einer Punktwolke vorhanden sind.
  9. Das computerimplementierte Verfahren gemäß Anspruch 1, wobei das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, mindestens ein Merkmal aufweist aus der Gruppe, bestehend aus: einem Gauß'schen Krümmungsmerkmal, einem Mittelwertkrümmungsmerkmal, einem Faltenkantenmerkmal und einem Grenzmerkmal.
  10. Computerimplementiertes Verfahren gemäß Anspruch 1, weiterhin aufweisend: ein Erzeugen von abgeschätzten Posendifferenzen zwischen dem Objekt in den beiden Punktwolken, indem Übereinstimmungen zwischen den Punkten der beiden Wolken ermittelt werden, wobei die Anzahl der Punkte, welche verwendet werden, um die Übereinstimmungen zu bilden, durch die Verwendung der Messpunkte oder der verknüpften Merkmale reduziert ist.
  11. Computerimplementiertes Verfahren gemäß Anspruch 1, weiterhin aufweisend: ein Evaluieren von Differenzen möglicher Posen zwischen dem Objekt in den beiden Punktwolken, indem die Punkte, welche als Messpunkte aus der ersten Punktwolke ausgewählt wurden, über die Posendifferenz der möglichen Pose örtlich erfasst werden und indem die Abstände zwischen den örtlich bestimmten Bildern der Messpunkte und den Punkten, welche mit der zweiten Wolke verknüpft sind, berechnet werden.
  12. Computerimplementiertes Verfahren gemäß Anspruch 1, weiterhin aufweisend: ein Verbessern der geschätzten Posendifferenzen zwischen dem Objekt in den beiden Punktwolken, indem die Posenwerte optimiert werden, welche berechnet werden durch ein örtliches Erfassen der Punkte, welche als Messpunkte aus der ersten Punktwolke ausgewählt wurden über die abgeschätzte Posendifferenz und durch ein Berechnen der Abstände zwischen den örtlich erfassten Bildern der Messpunkte und Punkten, welche mit der zweiten Punktwolke verknüpft sind.
  13. Computerprogrammprodukt, welches auf einem computerlesbaren Speichermedium verkörpert ist, aufweisend eine Mehrzahl von Anweisungen, welche hierauf gespeichert sind und welche, wenn sie von einem Prozessor ausgeführt werden, den Prozessor dazu veranlassen Tätigkeiten auszuführen, aufweisend: ein Empfangen einer ersten Punktwolke, welche mit einem Objekt verknüpft ist, unter Verwendung einer oder mehrerer Rechenvorrichtungen; und ein Auswählen eines oder mehrerer Messpunkte, welche mit der ersten Punktwolke verknüpft sind, wobei die Auswahl des einen oder der mehreren Messpunkte zumindest teilweise auf einem Wert eines speziellen Merkmals basiert, welches mit der ersten Punktwolke verknüpft ist.
  14. Computerprogrammprodukt gemäß Anspruch 13, weiterhin aufweisend: ein Analysieren einer zweiten Punktwolke, welche mit dem Objekt verknüpft ist, wobei die Analyse zumindest teilweise auf den Messpunkten und der ersten Punktwolke basiert.
  15. Computerprogrammprodukt gemäß Anspruch 14, weiterhin aufweisend: ein Auswählen eines oder mehrerer Messpunkte aus der zweiten Punktwolke, wobei die Auswahl zumindest teilweise auf dem einen oder den mehreren Messpunkten der ersten Punktwolke basiert.
  16. Computerprogrammprodukt gemäß Anspruch 13, wobei das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, einen Krümmungsparameter umfasst.
  17. Computerprogrammprodukt gemäß Anspruch 13, weiterhin aufweisend: ein Analysieren einer Oberflächennormaleninformation, welche mit der ersten Punktwolke und/oder der zweiten Punktwolke verknüpft ist.
  18. Computerprogrammprodukt gemäß Anspruch 13, weiterhin aufweisend: ein Bestimmen einer Veränderung in der Pose des Objekts basierend auf der ersten Punktwolke und der zweiten Punktwolke.
  19. Computerprogrammprodukt gemäß Anspruch 13, wobei ein oder mehrere Punkte, welche mit der ersten Punktwolke verknüpft sind, nicht in identischer Weise mit einem oder mehreren Punkten übereinstimmen, welche mit der zweiten Punktwolke verknüpft sind.
  20. Computerprogrammprodukt gemäß Anspruch 13, wobei das Objekt in einer oder in beiden Punktwolken teilweise verdeckt ist, und wobei mehr als eine Instanz des Objekts und Instanzen von anderen Objekten in einer Punktwolke vorhanden sind.
  21. Computerprogrammprodukt gemäß Anspruch 13, wobei das spezielle Merkmal, welches mit dem einen oder den mehreren Messpunkten verknüpft ist, mindestens ein Merkmal aufweist aus der Gruppe, bestehend aus: einem Gauß'schen Krümmungsmerkmal, einem Mittelwertkrümmungsmerkmal, einem Faltenkantenmerkmal und einem Grenzmerkmal.
  22. Computerprogrammprodukt gemäß Anspruch 13, weiterhin aufweisend: ein Erzeugen von abgeschätzten Posendifferenzen zwischen dem Objekt in den beiden Punktwolken, indem Übereinstimmungen zwischen den Punkten der beiden Wolken ermittelt werden, wobei die Anzahl der Punkte, welche verwendet werden, um die Übereinstimmungen zu bilden, durch die Verwendung der Messpunkte oder der verknüpften Merkmale reduziert ist.
  23. Computerprogrammprodukt gemäß Anspruch 13, weiterhin aufweisend: ein Evaluieren von Differenzen möglicher Posen zwischen dem Objekt in den beiden Punktwolken, indem die Punkte, welche als Messpunkte in der ersten Punktwolke ausgewählt wurden, über die Posendifferenz der möglichen Pose örtlich erfasst werden und indem die Abstände zwischen den örtlich bestimmten Bildern der Messpunkte und den Punkten, welche mit der zweiten Wolke verknüpft sind, berechnet werden.
  24. Computerprogrammprodukt gemäß Anspruch 13, weiterhin aufweisend: ein Verbessern der geschätzten Posendifferenzen zwischen dem Objekt in den beiden Punktwolken, indem die Posenwerte optimiert werden, welche berechnet werden durch ein örtliches Erfassen der Punkte, welche als Messpunkte in der ersten Punktwolke ausgewählt wurden über die abgeschätzte Posendifferenz und durch ein Berechnen der Abstände zwischen den örtlich erfassten Bildern der Messpunkte und Punkten, welche mit der zweiten Punktwolke verknüpft sind.
DE102014211948.0A 2013-07-10 2014-06-23 System und Verfahren zur selektiven Bestimmung von Punktwolken Pending DE102014211948A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/938,832 US9443297B2 (en) 2013-07-10 2013-07-10 System and method for selective determination of point clouds
US13/938,832 2013-07-10

Publications (1)

Publication Number Publication Date
DE102014211948A1 true DE102014211948A1 (de) 2015-01-15

Family

ID=52107535

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014211948.0A Pending DE102014211948A1 (de) 2013-07-10 2014-06-23 System und Verfahren zur selektiven Bestimmung von Punktwolken

Country Status (2)

Country Link
US (1) US9443297B2 (de)
DE (1) DE102014211948A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015212932A1 (de) 2015-07-10 2017-01-12 Kuka Roboter Gmbh Verfahren zum Steuern eines Roboters und/oder eines autonomen fahrerlosen Transportsystems

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160019688A1 (en) * 2014-07-18 2016-01-21 University Of Georgia Research Foundation, Inc. Method and system of estimating produce characteristics
US10922851B2 (en) * 2014-09-25 2021-02-16 The Boeing Company Virtual reality environment color and contour processing system
US10068349B2 (en) * 2014-09-29 2018-09-04 Ihi Corporation Image analysis apparatus, image analysis method, and program
US9600892B2 (en) * 2014-11-06 2017-03-21 Symbol Technologies, Llc Non-parametric method of and system for estimating dimensions of objects of arbitrary shape
US9396554B2 (en) 2014-12-05 2016-07-19 Symbol Technologies, Llc Apparatus for and method of estimating dimensions of an object associated with a code in automatic response to reading the code
US9618459B2 (en) 2015-05-18 2017-04-11 Flightware, Inc. Systems and methods for automated composite layup quality assurance
US10668673B2 (en) 2015-05-18 2020-06-02 Flightware, Inc. Systems and methods for automated composite layup quality assurance
US9858640B1 (en) * 2015-07-15 2018-01-02 Hrl Laboratories, Llc Device and method for merging 3D point clouds from sparsely distributed viewpoints
CN105354396B (zh) * 2015-12-04 2019-08-06 山东山大华天软件有限公司 一种不同软件协同建模的几何比对方法
US9918204B1 (en) * 2015-12-08 2018-03-13 Bentley Systems, Incorporated High accuracy indoor tracking
US10352689B2 (en) 2016-01-28 2019-07-16 Symbol Technologies, Llc Methods and systems for high precision locationing with depth values
US10145955B2 (en) 2016-02-04 2018-12-04 Symbol Technologies, Llc Methods and systems for processing point-cloud data with a line scanner
JP6987797B2 (ja) 2016-03-11 2022-01-05 カールタ インコーポレイテッド リアルタイムオンラインエゴモーション推定を有するレーザスキャナ
US11567201B2 (en) 2016-03-11 2023-01-31 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US11573325B2 (en) 2016-03-11 2023-02-07 Kaarta, Inc. Systems and methods for improvements in scanning and mapping
US10989542B2 (en) 2016-03-11 2021-04-27 Kaarta, Inc. Aligning measured signal data with slam localization data and uses thereof
US10721451B2 (en) 2016-03-23 2020-07-21 Symbol Technologies, Llc Arrangement for, and method of, loading freight into a shipping container
US9805240B1 (en) 2016-04-18 2017-10-31 Symbol Technologies, Llc Barcode scanning and dimensioning
DE102016206781A1 (de) 2016-04-21 2017-10-26 Kuka Roboter Gmbh Verfahren zur Steuerung einer Mehrzahl von mobilen fahrerlosen Manipulatorsystemen
US10417533B2 (en) * 2016-08-09 2019-09-17 Cognex Corporation Selection of balanced-probe sites for 3-D alignment algorithms
US10776661B2 (en) 2016-08-19 2020-09-15 Symbol Technologies, Llc Methods, systems and apparatus for segmenting and dimensioning objects
US11042161B2 (en) 2016-11-16 2021-06-22 Symbol Technologies, Llc Navigation control method and apparatus in a mobile automation system
US10451405B2 (en) 2016-11-22 2019-10-22 Symbol Technologies, Llc Dimensioning system for, and method of, dimensioning freight in motion along an unconstrained path in a venue
US10354411B2 (en) 2016-12-20 2019-07-16 Symbol Technologies, Llc Methods, systems and apparatus for segmenting objects
US20180225799A1 (en) * 2017-02-03 2018-08-09 Cognex Corporation System and method for scoring color candidate poses against a color image in a vision system
US11367092B2 (en) 2017-05-01 2022-06-21 Symbol Technologies, Llc Method and apparatus for extracting and processing price text from an image set
US10726273B2 (en) 2017-05-01 2020-07-28 Symbol Technologies, Llc Method and apparatus for shelf feature and object placement detection from shelf images
US10663590B2 (en) 2017-05-01 2020-05-26 Symbol Technologies, Llc Device and method for merging lidar data
US11449059B2 (en) 2017-05-01 2022-09-20 Symbol Technologies, Llc Obstacle detection for a mobile automation apparatus
US10949798B2 (en) 2017-05-01 2021-03-16 Symbol Technologies, Llc Multimodal localization and mapping for a mobile automation apparatus
US11093896B2 (en) 2017-05-01 2021-08-17 Symbol Technologies, Llc Product status detection system
US10591918B2 (en) 2017-05-01 2020-03-17 Symbol Technologies, Llc Fixed segmented lattice planning for a mobile automation apparatus
WO2018201423A1 (en) 2017-05-05 2018-11-08 Symbol Technologies, Llc Method and apparatus for detecting and interpreting price label text
US10521914B2 (en) 2017-09-07 2019-12-31 Symbol Technologies, Llc Multi-sensor object recognition system and method
US10572763B2 (en) 2017-09-07 2020-02-25 Symbol Technologies, Llc Method and apparatus for support surface edge detection
CN116385505A (zh) * 2017-10-20 2023-07-04 阿里巴巴集团控股有限公司 数据处理方法、装置、系统和存储介质
WO2019099605A1 (en) 2017-11-17 2019-05-23 Kaarta, Inc. Methods and systems for geo-referencing mapping systems
US10957072B2 (en) 2018-02-21 2021-03-23 Cognex Corporation System and method for simultaneous consideration of edges and normals in image features by a vision system
WO2019165194A1 (en) * 2018-02-23 2019-08-29 Kaarta, Inc. Methods and systems for processing and colorizing point clouds and meshes
US11562505B2 (en) 2018-03-25 2023-01-24 Cognex Corporation System and method for representing and displaying color accuracy in pattern matching by a vision system
US11327504B2 (en) 2018-04-05 2022-05-10 Symbol Technologies, Llc Method, system and apparatus for mobile automation apparatus localization
US10832436B2 (en) 2018-04-05 2020-11-10 Symbol Technologies, Llc Method, system and apparatus for recovering label positions
US10740911B2 (en) 2018-04-05 2020-08-11 Symbol Technologies, Llc Method, system and apparatus for correcting translucency artifacts in data representing a support structure
US10823572B2 (en) 2018-04-05 2020-11-03 Symbol Technologies, Llc Method, system and apparatus for generating navigational data
US10809078B2 (en) 2018-04-05 2020-10-20 Symbol Technologies, Llc Method, system and apparatus for dynamic path generation
WO2020009826A1 (en) 2018-07-05 2020-01-09 Kaarta, Inc. Methods and systems for auto-leveling of point clouds and 3d models
US11506483B2 (en) 2018-10-05 2022-11-22 Zebra Technologies Corporation Method, system and apparatus for support structure depth determination
US11010920B2 (en) 2018-10-05 2021-05-18 Zebra Technologies Corporation Method, system and apparatus for object detection in point clouds
US11003188B2 (en) 2018-11-13 2021-05-11 Zebra Technologies Corporation Method, system and apparatus for obstacle handling in navigational path generation
US11090811B2 (en) 2018-11-13 2021-08-17 Zebra Technologies Corporation Method and apparatus for labeling of support structures
US11416000B2 (en) 2018-12-07 2022-08-16 Zebra Technologies Corporation Method and apparatus for navigational ray tracing
US11079240B2 (en) 2018-12-07 2021-08-03 Zebra Technologies Corporation Method, system and apparatus for adaptive particle filter localization
US11100303B2 (en) 2018-12-10 2021-08-24 Zebra Technologies Corporation Method, system and apparatus for auxiliary label detection and association
US11015938B2 (en) 2018-12-12 2021-05-25 Zebra Technologies Corporation Method, system and apparatus for navigational assistance
US10731970B2 (en) 2018-12-13 2020-08-04 Zebra Technologies Corporation Method, system and apparatus for support structure detection
CA3028708A1 (en) 2018-12-28 2020-06-28 Zih Corp. Method, system and apparatus for dynamic loop closure in mapping trajectories
US11665372B2 (en) * 2019-01-07 2023-05-30 Samsung Electronics Co., Ltd. Fast projection method in video-based point cloud compression codecs
US11960286B2 (en) 2019-06-03 2024-04-16 Zebra Technologies Corporation Method, system and apparatus for dynamic task sequencing
US11341663B2 (en) 2019-06-03 2022-05-24 Zebra Technologies Corporation Method, system and apparatus for detecting support structure obstructions
US11151743B2 (en) 2019-06-03 2021-10-19 Zebra Technologies Corporation Method, system and apparatus for end of aisle detection
US11662739B2 (en) 2019-06-03 2023-05-30 Zebra Technologies Corporation Method, system and apparatus for adaptive ceiling-based localization
US11200677B2 (en) 2019-06-03 2021-12-14 Zebra Technologies Corporation Method, system and apparatus for shelf edge detection
US11080566B2 (en) 2019-06-03 2021-08-03 Zebra Technologies Corporation Method, system and apparatus for gap detection in support structures with peg regions
US11402846B2 (en) 2019-06-03 2022-08-02 Zebra Technologies Corporation Method, system and apparatus for mitigating data capture light leakage
US11507103B2 (en) 2019-12-04 2022-11-22 Zebra Technologies Corporation Method, system and apparatus for localization-based historical obstacle handling
US11107238B2 (en) 2019-12-13 2021-08-31 Zebra Technologies Corporation Method, system and apparatus for detecting item facings
US11822333B2 (en) 2020-03-30 2023-11-21 Zebra Technologies Corporation Method, system and apparatus for data capture illumination control
CN111612847B (zh) * 2020-04-30 2023-10-20 湖北煌朝智能自动化装备有限公司 机器人抓取操作的点云数据匹配方法及系统
US11450024B2 (en) 2020-07-17 2022-09-20 Zebra Technologies Corporation Mixed depth object detection
US11593915B2 (en) 2020-10-21 2023-02-28 Zebra Technologies Corporation Parallax-tolerant panoramic image generation
US11392891B2 (en) 2020-11-03 2022-07-19 Zebra Technologies Corporation Item placement detection and optimization in material handling systems
US11847832B2 (en) 2020-11-11 2023-12-19 Zebra Technologies Corporation Object classification for autonomous navigation systems
CN112509050B (zh) * 2020-12-18 2023-04-07 武汉库柏特科技有限公司 一种位姿估计方法、防碰撞抓物方法和装置
WO2022133776A1 (zh) * 2020-12-23 2022-06-30 深圳元戎启行科技有限公司 点云标注方法、装置、计算机设备和存储介质
US11954882B2 (en) 2021-06-17 2024-04-09 Zebra Technologies Corporation Feature-based georegistration for mobile computing devices
US11544419B1 (en) 2021-07-26 2023-01-03 Pointlab, Inc. Subsampling method for converting 3D scan data of an object for marine, civil, and architectural works into smaller densities for processing without CAD processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10044169A1 (de) * 2000-09-07 2002-03-21 Daimler Chrysler Ag Verfahren zur zerstörungsfreien Wandstärkenprüfung
US7253766B2 (en) * 2004-09-24 2007-08-07 Battelle Memorial Institute Three-dimensional surface/contour processing based on electromagnetic radiation interrogation
EP2026279B1 (de) 2007-08-13 2011-10-19 Aqsense, S.L. Verfahren und System zur Ausrichtung dreidimensionaler Oberflächen
US8542252B2 (en) * 2009-05-29 2013-09-24 Microsoft Corporation Target digitization, extraction, and tracking
US9013469B2 (en) * 2011-03-04 2015-04-21 General Electric Company Method and device for displaying a three-dimensional view of the surface of a viewed object
US8793107B2 (en) * 2011-12-01 2014-07-29 Harris Corporation Accuracy-based significant point derivation from dense 3D point clouds for terrain modeling
US8874454B2 (en) * 2013-03-15 2014-10-28 State Farm Mutual Automobile Insurance Company Systems and methods for assessing a roof

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
802.11b-
802.11g-
802.11x-Standards
IEEE 802.11a-
IEEE 802.11x-Standards

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015212932A1 (de) 2015-07-10 2017-01-12 Kuka Roboter Gmbh Verfahren zum Steuern eines Roboters und/oder eines autonomen fahrerlosen Transportsystems
WO2017008895A1 (de) 2015-07-10 2017-01-19 Kuka Roboter Gmbh Verfahren zum steuern eines roboters und/oder eines autonomen fahrerlosen transportsystems
US10809739B2 (en) 2015-07-10 2020-10-20 Kuka Deutschland Gmbh Method for controlling a robot and/or an autonomous driverless transport system

Also Published As

Publication number Publication date
US20150015602A1 (en) 2015-01-15
US9443297B2 (en) 2016-09-13

Similar Documents

Publication Publication Date Title
DE102014211948A1 (de) System und Verfahren zur selektiven Bestimmung von Punktwolken
DE102015121339B4 (de) Systeme und verfahren zum ermitteln eines zustands einer fahrbahn
DE102016100101A1 (de) System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen
DE102011106050B4 (de) Schattenentfernung in einem durch eine fahrzeugbasierte Kamera erfassten Bild zur Detektion eines freien Pfads
DE102013210478B4 (de) Geometrische vorkorrektur zur automatischen nummernschilderkennung
EP3883716B1 (de) Erkennung von bearbeitungsfehlern eines laserbearbeitungssystems mithilfe von tiefen faltenden neuronalen netzen
DE112020005377B4 (de) Systeme und verfahren zur automatischen kamerainstallationsführung
DE102016120775A1 (de) System und Verfahren zum Erkennen von Linien in einem Bild mit einem Sichtsystem
DE112012001984T5 (de) Integrieren von Video-Metadaten in 3D-Modelle
EP3195250B1 (de) Verfahren zum erzeugen eines ergebnisbilds und optische vorrichtung
DE102020106136A1 (de) System und verfahren für automatische inbetriebnahme eines oder mehrerer netzwerke von elektronischen vorrichtungen
DE102016014188A1 (de) Erzeugung eines 3-D-Modells aus 2-D-Bildern
DE102019104310A1 (de) System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
DE112021002702T5 (de) Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern
DE102018109276A1 (de) Bildhintergrundsubtraktion für dynamische beleuchtungsszenarios
DE102015122116A1 (de) System und Verfahren zur Ermittlung von Clutter in einem aufgenommenen Bild
DE102015207903A1 (de) Vorrichtung und Verfahren zum Erfassen eines Verkehrszeichens vom Balkentyp in einem Verkehrszeichen-Erkennungssystem
DE102020132238A1 (de) Verfahren, systeme, herstellungsgegenstände und einrichtungen zum weiterentwickeln von bildtiefenvertrauenskarten
CN104036277A (zh) 一种提取道路特征的方法和设备
DE102016100134B4 (de) Verfahren und Vorrichtung zum Untersuchen eines Objekts unter Verwendung von maschinellem Sehen
DE102020103575B4 (de) Merkmalspunktdetektionsvorrichtung und -verfahren zur Detektion von Merkmalspunkten in Bilddaten
DE102016008744A1 (de) Bildmessapparat, Regel- bzw. Steuerprogramm eines derartigen Apparats und nicht-flüchtiges Aufzeichnungsmedium, auf welchem das Regel- bzw. Steuerprogramm aufgezeichnet is
DE102017009118A1 (de) Bildabgleich für serienbilder
DE102020209189A1 (de) Domain-übergreifendes metric-lernsystem und -verfahren

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000

R016 Response to examination communication