DE102020132990A1 - Messeinrichtung - Google Patents

Messeinrichtung Download PDF

Info

Publication number
DE102020132990A1
DE102020132990A1 DE102020132990.3A DE102020132990A DE102020132990A1 DE 102020132990 A1 DE102020132990 A1 DE 102020132990A1 DE 102020132990 A DE102020132990 A DE 102020132990A DE 102020132990 A1 DE102020132990 A1 DE 102020132990A1
Authority
DE
Germany
Prior art keywords
robot
block
workpiece
holding
fixed passage
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
DE102020132990.3A
Other languages
English (en)
Inventor
Kyosuke Tawara
Naoki Takayama
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.)
Keyence Corp
Original Assignee
Keyence 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 Keyence Corp filed Critical Keyence Corp
Publication of DE102020132990A1 publication Critical patent/DE102020132990A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/002Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
    • G01B11/005Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates coordinate measuring machines
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • G01B11/2518Projection by scanning of the object
    • G01B11/2527Projection by scanning of the object with phase change by in-plane movement of the patern
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • G01B11/2545Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object with one projection direction and several detection directions, e.g. stereo
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37555Camera detects orientation, position workpiece, points of workpiece
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40607Fixed camera to observe workspace, object, workpiece, global

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

Ein Benutzer kann in einfacher Weise ein Roboterprogramm erstellen. Eine Messeinrichtung beinhaltet einen Positionsermittlungsverarbeitungsblock, der eine von einer Roboterhand gehaltene Halteposition eines in einem Arbeitsbereich angeordneten Werkstücks ermittelt und Koordinaten eines festen Durchgangspunkts, der ein einziges Attribut hat, auf der Grundlage eines Ergebnisses einer von einem Messblock durchgeführten Messung und auf der Grundlage einer Halteinformation ermittelt, wobei der feste Punkt eine Annäherungsposition der Roboterhand zum Halten der Halteposition, die Halteposition oder eine zurückgezogene Position nach dem Halten ist, und ferner ist ein Ausgabeblock vorgesehen, der die Koordinaten des festen Durchgangspunkts, die von dem Positionsermittlungsverarbeitungsblock ermittelt werden, und eine Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, an eine Robotersteuerung ausgibt.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Messeinrichtung, die in der Lage ist, ein in einem Arbeitsbereich angeordnetes Werkstück zu messen und einen Roboter zu steuern, der das Werkstück transportiert.
  • Beschreibung des Stands der Technik
  • Im Stand der Technik ist eine dreidimensionale Messeinrichtung bekannt, wie sie beispielsweise offenbart ist in JP 2018-144159 A , wobei die dreidimensionale Messeinrichtung ausgebildet ist, Bewegungseinstellungen eines Roboters so vorzunehmen, dass eine dreidimensionale Form eines Werkstücks, das in einem Arbeitsbereich angeordnet ist, gemessen wird, eine Roboterhand des Roboters so gesteuert wird, dass das Werkstück gehalten wird, und das Werkstück, das von der Roboterhand gehalten wird, an einer Anordnungsposition angeordnet wird.
  • Die in JP 2018-144159 A offenbarte dreidimensionale Messeinrichtung ist separat zu einer Robotersteuerung vorgesehen und ist in der Lage, eine hochgenaue dreidimensionale Messung vorzunehmen, die für die Robotersteuerung schwierig ist, und ist ferner in der Lage, an die Robotersteuerung Punkte auszugeben, die die Roboterhand zu durchlaufen hat, etwa eine Annäherungsposition, an der die Roboterhand das Werkstück hält, und eine von der Roboterhand gehaltene Halteposition, um diverse Funktionen auf der Grundlage eines Ergebnisses der Messung zu ermöglichen.
  • Das heißt, die dreidimensionale Messeinrichtung erfasst dreidimensionale Daten, die sich aus dem Aufnehmen eines Bildes des Werkstückes und eines Bereichs um das Werkstück herum ergeben, mittels beispielsweise eines bildgebenden Blocks, und anschließend werden die dreidimensionalen Daten, die auf diese Weise für das Werkstück erfasst wurden, durchsucht, um eine Orientierung beim Halten und dergleichen zu ermitteln. Anschließend werden Koordinaten der Halteposition, in der das Werkstück gehalten wird, berechnet, und die auf diese Weise berechneten Koordinaten werden an die Robotersteuerung ausgegeben.
  • Bei Empfang der Koordinaten steuert die Robotersteuerung die Roboterhand derart, dass die Roboterhand veranlasst wird, das Werkstück zu halten bzw. aufzunehmen, das Werkstück zu einer vorbestimmten Anordnungsposition zu transportieren und das Werkstück an der Anordnungsbohrung anzuordnen.
  • Eine derartige dreidimensionale Messeinrichtung im Stand der Technik ist in der Lage, die Punkte (Durchgangspunkte) an die Robotersteuerung auszugeben, die die Roboterhand durchlaufen muss, aber es ist erforderlich, dass ein Benutzer eine Bewegungsbahn der Roboterhand zwischen den Durchgangspunkten programmiert. Es sei beispielsweise angenommen, dass das Werkstück in einem Behälter liegt, wobei der Behälter ein Hindernis ist, wenn sich die Roboterhand in Bewegung befindet, so dass es erforderlich ist, das Programm so zu erstellen, dass der Behälter ausgespart wird, wodurch das Programm kompliziert wird und wiederum mehr Zeit und Aufwand erforderlich sind.
  • Mögliche Lösungen beinhalten ein Verfahren, wonach die dreidimensionale Messeinrichtung nicht nur die Durchgangspunkte automatisch berechnet, sondern auch die Bewegungsbahn zwischen den Durchgangspunkten und feste Punkte, etwa die von dem Benutzer festgelegte Halteposition, d. h., festgelegte Durchgangspunkte, und Zwischendurchgangspunkte, ausgibt. Diese Vorgehensweise vermeidet die Notwendigkeit, dass der Benutzer die Bewegungsbahn zwischen den Durchgangspunkten programmiert.
  • Jedoch ist in diesem Falle die Anzahl an Durchgangspunkten, die der Roboter durchlaufen muss, nicht festgelegt, sofern die Bewegungsbahn nicht tatsächlich erzeugt worden ist, wodurch verhindert wird, dass die Robotersteuerung Durchgangspunkte erkennt, die für die Roboterhand erforderlich sind, um eine Haltebewegung oder Anordnungsbewegung auszuführen, und es wird wiederum verhindert, dass der Benutzer das Programm für den Roboter in vereinfachter Weise erstellen kann.
  • Wenn ferner der Benutzer die Anzahl an festgelegten Durchgangspunkten erhöht oder verringert, dann werden die Anzahl an Durchgangspunkten, die von der dreidimensionalen Messeinrichtung ausgegeben werden, und die Anzahl an Durchgangspunkten, die auf Seite des Programms der Robotersteuerung erwartet werden, unterschiedlich zueinander, sofern nicht eine Umprogrammierung auf Seite der Robotersteuerung erfolgt. Jedes Mal, wenn der Benutzer die Anzahl an festen Durchgangspunkten erhöht oder verringert, sind daher Zeit und Aufwand erforderlich, um die Neuprogrammierung vorzunehmen.
  • Ferner hat jeder feste Durchgangspunkt ein eindeutiges Attribut, etwa „ein Punkt, an welchem eine Haltebewegung ausgeführt werden muss“ oder „ein Punkt, an welchem eine Anordnungsbewegung auszuführen ist“. Wenn beispielsweise ein Durchgangspunkt auf Seite der dreidimensionalen Messeinrichtung geändert wird, wird gegebenenfalls die Haltebewegung oder die Anordnungsbewegung an einer nicht erwarteten Stelle ausgeführt, sofern nicht auf Seite der Robotersteuerung dem Attribut für den auf diese Weise geänderten Durchgangspunkt gefolgt wird, wodurch die Erstellung des Programms schwierig wird.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung wurde erdacht im Hinblick auf derartige Umstände, und es ist eine Aufgabe der vorliegenden Erfindung, es einem Benutzer zu ermöglichen, ein Roboterprogramm in vereinfachter Weise zu erstellen.
  • Um das vorhergehende Problem zu lösen, beinhaltet eine Messeinrichtung gemäß einem Aspekt der vorliegenden Erfindung, die ein in einem Arbeitsbereich angeordnetes Werkstück misst und einen Roboter, der das Werkstück transportiert, steuert, einen Messblock, der eine Position und eine Orientierung des Werkstücks, das in dem Arbeitsbereich angeordnet ist, misst, einen Halteinformationsspeicherblock, der Halteinformation speichert, die eine mögliche Halteposition des von der Roboterhand des Roboters gehaltenen Werkstücks zeigt, einen Positionsermittlungsverarbeitungsblock, der eine durch die Roboterhand gehaltene Halteposition des Werkstücks, das in dem Arbeitsbereich angeordnet ist, ermittelt und Koordinaten eines festen Durchgangspunks, der ein einziges Attribut hat, auf der Grundlage eines Ergebnisses einer von dem Messblock vorgenommenen Messung und auf der Grundlage der in dem Halteinformationsspeicherblock gespeicherten Halteinformation ermittelt, wobei der feste Durchgangspunkt eine Annäherungsposition der Roboterhand zum Halten der Halteposition, die Halteposition oder eine eingefahrene Position nach dem Halten ist, und einen Ausgangsblock, der an einem mit dem Roboter verbundene Robotersteuerung die Koordinaten des festen Durchgangspunkts, der von dem Positionsermittlungsverarbeitungsblock ermittelt ist, und Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, ausgibt.
  • Wenn gemäß diesem Aufbau die Position und die Orientierung des in dem Arbeitsbereich angeordneten Werkstücks durch den Messblock gemessen werden, dann wird die Halteposition des von der Roboterhand gehaltenen Werkstücks auf der Grundlage eines Ergebnisses der Messung und im Voraus gespeicherter Halteinformation, die die mögliche Halteposition des Werkstücks zeigt, ermittelt. Ferner werden auch die Koordinaten des festen Durchgangspunkts ermittelt, der ein beliebiges einziges Attribut hat, etwa in Form der Annäherungsposition der Roboterhand zum Halten der Halteposition, die zuvor ermittelt wurde, der Halteposition oder der zurückgezogenen Position nach dem Halten. Da die Koordinaten des festen Durchgangspunkts und die Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, an die Robotersteuerung ausgegeben werden, muss der Benutzer lediglich Bahneinstellungen der Roboterhand bearbeiten, ohne dass eine Korrespondenzbeziehung zu der Robotersteuerungsseite zu berücksichtigen ist, und er muss lediglich die Bewegung der Roboterhand ohne Berücksichtigung der Bewegung des Roboters selbst verifizieren. Anders ausgedrückt, der Benutzer kann das Roboterprogramm relativ einfach erstellen, indem die Bewegung der Roboterhand gemäß jeder Attributinformation beschrieben wird.
  • Die Koordinaten des festen Durchgangspunkts und die Attributinformation, die die Attribute des festen Durchgangspunkts zeigt, müssen nur eine Korrespondenzrelation haben, und die Koordinaten des festen Durchgangspunkts und die Attributinformation können zu einem einzelnen Satz zusammengefasst und anschließend ausgegeben werden oder können alternativ separat ausgegeben werden. Der zuvor genannte Modus beinhaltet einen Modus, wonach beispielsweise ein festgelegter Durchgangspunkt (Anfangspunkt), ein festgelegter Durchgangspunkt (Annäherungsposition) und ein festgelegter Durchgangspunkt (Halteposition) in dieser Reihenfolge ausgegeben werden. Der zuletzt genannte Modus beinhaltet einen Modus, wonach ein erster fester Durchgangspunkt, ein Roboterfreigabebefehl (Attributinformation), ein zweiter fester Durchgangspunkt und ein Roboterhandhaltebefehl (Attributinformation) in dieser Reihenfolge ausgegeben werden. Selbst in einem Modus, in welchem die Koordinaten des festen Durchgangspunkts und die Attributinformation separat zu unterschiedlichen Zeiten ausgegeben werden, besitzen der erste feste Durchgangspunkt und der Roboterhandfreigabebefehl eine Zuordnung zueinander.
  • Die Koordinaten des festen Durchgangspunkts und die Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, können in der gleichen Tabelle oder in unterschiedlichen Tabellen verwaltet werden. In jedem Falle sind die Reihenfolge und die Anzahl der Koordinaten des festen Durchgangspunkts und die Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, gleich und haben eine Zuordnung zueinander.
  • Ferner kann der Messblock ein zweidimensionaler Messblock sein, der in der Lage ist, eine zweidimensionale Messung in einer X-Richtung und einer Y-Richtung auszuführen, oder er kann ein dreidimensionaler Messblock sein, der in der Lage ist, eine dreidimensionale Messung in einer Z-Richtung (Höhenrichtung) zusätzlich zu der X-Richtung und der Y-Richtung auszuführen.
  • Es ist bevorzugt, dass ein Benutzerschnittstellenerzeugungsblock, der eine Benutzerschnittstelle bzw. eine Benutzeroberfläche erzeugt, die zeigt, wenn mehrere der festen Durchgangspunkte durch ein Positionsermittlungsverarbeitungsblock ermittelt sind, vorgesehen ist für eine zu durchlaufende Reihenfolge der mehreren festen Durchgangspunkte und zur Ermöglichung der individuellen Bearbeitung der mehreren festen Durchgangspunkte, und ein Anzeigeblock vorgesehen ist, der die von dem Benutzerschnittstellenerzeugungsblock erzeugte Benutzerschnittstelle anzeigt.
  • Dieser Aufbau macht es für den Benutzer möglich, die Reihenfolge des Durchlaufens der mehreren festen Durchgangspunkte auf der Benutzerschnittstelle bzw. Benutzeroberfläche zu erkennen und somit in einfacher Weise die Bewegung der Roboterhand zu visualisieren. Da ferner jeder feste Durchgangspunkt bearbeitet werden kann, kann der Benutzer in einfacher Weise das Programm ändern.
  • Es ist bevorzugt, dass ein Eingangsblock bzw. Eingabeblock, der einen auf der Benutzerschnittstelle hinzugefügten festen Durchgangspunkt und Attributinformation empfängt, die ein Attribut des auf diese Weise hinzugefügten festen Durchgangspunkts zeigt, vorgesehen ist, und der Ausgangsblock kann ausgebildet sein, den festen Durchgangspunkt und die Attributinformation, die durch den Eingabeblock empfangen werden, an die Robotersteuerung auszugeben.
  • Dieser Aufbau macht es für den Benutzer möglich, einen festen Durchgangspunkt hinzuzufügen und, wenn der feste Durchgangspunkt hinzugefügt ist, die Attributinformation über den festen Durchgangspunkt einzugeben. Der hinzugefügte feste Durchgangspunkt und die Attributinformation werden an die Robotersteuerung ausgegeben, und es wird ein Roboterprogramm, das den hinzugefügten festen Durchgangspunkt beinhaltet, erstellt.
  • Es ist bevorzugt, dass der Eingabeblock in der Lage ist, eine von dem Benutzer zugewiesene Zuweisungsposition als einen festen Durchgangspunkt hinzuzufügen.
  • Dieser Aufbau macht es für den Benutzer möglich, eine zugewiesene Position so hinzuzufügen, dass beispielsweise ein Hindernis vermieden wird. Folglich kann die Roboterhand durch einen einfachen von dem Benutzer vorgenommenen Vorgang so bewegt werden, dass sie nicht mit einem Hindernis oder dergleichen kollidiert.
  • Es ist bevorzugt, dass der Eingabeblock in der Lage ist, eine Anordnungsposition des Werkstücks als einen festen Durchgangspunkt hinzuzufügen.
  • Dieser Aufbau macht es für den Benutzer möglich, die Anordnungsposition (Position zum Anordnen) des Werkstücks nach Bedarf hinzuzufügen und ein Programm derart zu erstellen, dass das auf diese Weise hinzugefügte Werkstück an der Anordnungsposition angeordnet wird.
  • Es ist bevorzugt, dass der Ausgangsblock bzw. Ausgabeblock ausgebildet ist, die Anzahl der festen Durchgangspunkte, die von dem Positionsermittlungsverarbeitungsblock ermittelt wird, die Anzahl an Zwischendurchgangspunkten zwischen den festen Durchgangspunkten, wenn mehrere der festen Durchgangspunkte durch den Positionsermittlungsverarbeitungsblock ermittelt sind, Koordinaten jedes der festen Durchgangspunkte und Koordinaten jedes der Zwischendurchgangspunkte an die Robotersteuerung auszugeben.
  • Dieser Aufbau macht es möglich, die Anzahl fester Durchgangspunkte, die Anzahl von Zwischendurchgangspunkten, die Koordinaten jeweils der festen Durchgangspunkte und die Koordinaten jeweils der Zwischendurchgangspunkte an die Robotersteuerung auszugeben, wodurch es auf der Robotersteuerungsseite möglich ist, ein Programm auf der Grundlage dieser Informationselemente zu erstellen.
  • Es ist bevorzugt, dass ein festgelegter Durchgangspunkt mit Attributinformation über die Halteposition in einer speziellen Bewegungsinformation zugeordnet werden kann, die bewirkt, dass die Roboterhand eine spezielle Bewegung, die nicht der Transport zu einer Anordnungsposition ist, ausführt, und der Ausgangsblock kann ausgebildet sein, die spezielle Bewegungsinformation an die Robotersteuerung auszugeben, wenn Koordinaten des festgelegten Durchgangspunkts, der der speziellen Bewegungsinformation zugeordnet ist, ausgegeben wird.
  • Das heißt, wenn beispielsweise das Werkstück in einem Behälter liegt und in der Nähe einer Wandfläche angeordnet ist, kann es schwierig sein, die mögliche Halteposition des Werkstücks einzuhalten. In einem derartigen Fall kann eine spezielle Bewegung erforderlich sein, bei der in einem Zustand, in welchem das Werkstück nicht zu der Anordnungsposition in der vorliegenden Weise transportiert werden kann, das Werkstück zu einer Position bewegt und dort angeordnet wird, an der die mögliche Halteposition eingehalten werden kann. Zu Beispielen der speziellen Bewegung gehören eine Bewegung zum Heranziehen eines Werkstücks, eine Bewegung zum Anheben eines Werkstücks, und dergleichen. Dieser Aufbau bewirkt, wenn die Koordinaten des der speziellen Bewegungsinformation zugeordneten festen Durchgangspunkts ausgegeben werden, dass die spezielle Bewegungsinformation an die Robotersteuerung ausgegeben wird, wodurch die Roboterhand in vereinfachter Weise die zuvor beschriebene spezielle Bewegung ausführen kann.
  • Ferner kann eine Messeinrichtung, die ein in einem Arbeitsbereich angeordnetes Werkstück misst und einen Roboter steuert, der das Werkstück transportiert, aufweisen: einen Messblock, der eine Position und eine Orientierung des in dem Arbeitsbereich angeordneten Werkstücks misst, einen Halteinformationsspeicherblock, der Halteinformation, die eine mögliche Halteinformation des von einer Roboterhand des Roboters gehaltenen Werkstücks zeigt, speichert, einen Positionsermittlungsverarbeitungsblock, der eine von der Roboterhand eingehaltene bzw. gehaltene Halteposition des Werkstücks, das in dem Arbeitsbereich angeordnet ist, ermittelt und Koordinaten eines festen Durchgangspunkts, der ein beliebiges einziges Attribut hat, auf der Grundlage eines Ergebnisses einer von dem Messblock vorgenommenen Messung und der in dem Halteinformationsspeicherblock gespeicherten Halteinformation ermittelt, wobei der feste Durchgangspunkt eine Annäherungsposition der Roboterhand zum Halten der Halteposition, die Halteposition oder die zurückgezogene Position nach dem Halten ist, und wobei der Positionsermittlungsverarbeitungsblock die Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, so verarbeitet, dass die Attributinformation in einen Befehl umgewandelt wird, und einen Ausgangsblock bzw. Ausgabeblock, der den durch den Positionsermittlungsverarbeitungsblock erzeugten Befehl an eine mit dem Roboter verbundene Robotersteuerung ausgibt.
  • Dieser Aufbau macht es möglich, dass die Koordinaten des festen Durchgangspunkts, der ein beliebiges einziges Attribut hat, etwa in Form der Annäherungsposition der Roboterhand zum Halten der Halteposition, der Halteposition oder der eingefahrenen bzw. zurückgezogenen Position nach dem Halten, und der Befehl, der sich aus der Umwandlung der Attributinformation über den festen Durchgangspunkt ergibt, an die Robotersteuerung ausgegeben werden, wodurch es wiederum für den Benutzer möglich ist, das Roboterprogramm in einfacher Weise zu erstellen, indem die Bewegung der Roboterhand gemäß jeder Attributinformation beschrieben und anschließend die Roboterhand in Bewegung versetzt wird.
  • Wie zuvor beschrieben ist, können die Koordinaten des festen Durchgangspunkts, der ein beliebiges Attribut etwa in Form der Annäherungsposition der Roboterhand zum Halten der Halteposition, der Halteposition oder der zurückgezogenen Position nach dem Halten hat, und die Attributinformation über die festen Durchgangspunkte an die Robotersteuerung ausgegeben werden, wodurch es für den Benutzer möglich ist, das Roboterprogramm in einfacher Weise zu erstellen, indem die Bewegung der Roboterhand gemäß jeder Attributinformation beschrieben wird, um eine gewünschte Bewegung zu ermöglichen.
  • Figurenliste
    • 1 ist eine schematische Ansicht, die zeigt, wie ein Werkstück durch ein Robotersystem transportiert wird;
    • 2 ist eine Blockansicht, die einen Aufbau des Robotersystems zeigt;
    • 3 ist eine perspektivische Ansicht, die ein Beispiel eines Sensors zeigt;
    • 4A ist eine schematische Ansicht, die ein Beispiel zeigt, wie das Werkstück von einer Roboterhand gehalten wird;
    • 4B ist eine schematische Ansicht, die ein Beispiel davon zeigt, wie ein hohles Werkstück durch eine Roboterhand gehalten wird, wobei die Roboterhand mit einer Innenfläche des hohlen Werkstücks in Kontakt ist;
    • 4C ist eine schematische Ansicht, die ein Beispiel davon zeigt, wie ein plattenförmiges Werkstück angesaugt und von einer Roboterhand gehalten wird;
    • 5 ist ein Flussdiagramm, das einen Ablauf zur Festlegung eines Suchmodells zeigt;
    • 6 ist ein Flussdiagramm, das einen Ablauf zur Festlegung eines Handmodells und einer Halteposition zeigt;
    • 7 ist eine Ansicht, die ein Beispiel eines Flussdiagramms eines grundlegenden Steuerungsablaufs eines Roboters zeigt;
    • 8 ist eine Ansicht, die ein Beispiel einer Benutzerschnittstelle zur Einstellung einer Roboterverbindung zeigt;
    • 9 ist eine Ansicht, die ein Beispiel einer Benutzerschnittstelle für die Bestätigung eines Robotermodells zeigt;
    • 10 ist eine Ansicht, die ein Beispiel einer Benutzerschnittstelle für Benutzereinstellungen zeigt;
    • 11 ist eine Ansicht, die ein Beispiel eines Attributinformationseingabefensters zeigt;
    • 12 ist eine Ansicht, die ein Beispiel eines Eingabefensters für die Position eines festen Durchgangspunkts zeigt;
    • 13 ist eine Ansicht, die ein Beispiel eines Fensters zur Einstellung einer Bewegungs/Hindernisermittlung zeigt;
    • 14 ist eine Ansicht, die einen Prozessablauf einer Messeinrichtung, einer Robotersteuerung und eines Roboters zeigt;
    • 15A zeigt ein Beispiel eines Hauptprogramms, wenn die Attributinformation auf einer Benutzerschnittstelle zugeordnet und registriert werden kann;
    • 15B zeigt ein Beispiel eines Aktionsprogramms, wenn die Attributinformation in der Benutzerschnittstelle zugeordnet und registriert werden kann;
    • 16 zeigt ein Beispiel des Hauptprogramms, wenn die Attributinformation nicht in der Benutzerschnittstelle zugeordnet und registriert werden kann;
    • 17 ist eine Ansicht, die der 10 entspricht, wenn ein fester Durchgangspunkt (zugewiesene Position) vor einer Annäherungsposition hinzugefügt wird;
    • 18 ist eine Ansicht, die der 15A entspricht, wenn ein fester Durchgangspunkt hinzugefügt wird;
    • 19 ist eine Ansicht, die Datenfelder von Durchgangspunkten und Attributinformationen zeigt, wenn die Attributinformation auf Seite der Robotersteuerung verarbeitet werden;
    • 20 ist eine Ansicht, die Datenfelder von Durchgangspunkten und Attributinformationen zeigt, wenn die Attributinformationen von der Messeinrichtung verarbeitet werden;
    • 21 ist eine Ansicht, die der 15A entspricht, wenn die Attributinformationen auf Seiten der Messeinrichtung verarbeitet werden.
    • 22 ist eine Ansicht, die der 20 entspricht, wenn die Daten eines Durchgangspunkts in einem Befehlsfeld eingefügt werden;
    • 23 ist eine Ansicht zur Beschreibung einer Situation, in der die Roboterhand mit einer Wandfläche eines Behälters kollidieren würde, und somit ein Werkstück nicht halten kann;
    • 24 ist eine Ansicht, die ein Beispiel einer Benutzerschnittstelle zur Einstellung einer speziellen Bewegungsfunktion zeigt; und
    • 25 ist eine Ansicht, die ein Beispiel einer Benutzerschnittstelle zur Festlegung einer Reihenfolge zeigt.
  • DETAILLIERTE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • Nachfolgend werden mit Verweis auf die Zeichnungen Ausführungsformen der vorliegenden Erfindung detailliert beschrieben. Zu beachten ist, dass die folgende Beschreibung der bevorzugten Ausführungsformen lediglich im Wesentlichen ein Beispiel ist und nicht dazu dienen soll, die vorliegende Erfindung, Benutzung der vorliegenden Erfindung und eine Verwendung der vorliegenden Erfindung zu beschränken.
  • 1 ist eine schematische Ansicht, die ein Aufbaubeispiel eines Robotersystems 1000 mit einer Messeinrichtung 100 gemäß der Ausführungsform der vorliegenden Erfindung zeigt. 1 zeigt ein Beispiel davon, wie die Aufnahme bzw. Auswahl aus einer Ansammlung ausgeführt wird, wobei mehrere Werkstücke WK, die in einem Arbeitsbereich in einer Fertigungsstätte für diverse Produkte liegen, von einem Roboter RBT der Reihe nach gehalten bzw. aufgenommen, zu einer Haltung STG, die an einer vorbestimmten Stelle montiert ist, transportiert und auf der der STG angeordnet werden.
  • Das Robotersystem 1000 beinhaltet den Roboter RBT und eine Robotersteuerung 6, die den Roboter RBT steuert. Der Roboter RBT ist ein industrieller Roboter bzw. ein Automat für Allgemeinzwecke und dessen Grundgestell ist an einer Bodenfläche der Fertigungsstätte oder dergleichen befestigt. Der Roboter RBT wird auch beispielsweise als Automat bezeichnet und ist für eine Sechs-Achsen-Steuerung ausgebildet. Der Roboter RBT beinhaltet einen Arm ARM, der sich von dem Grundgestell aus erstreckt, und eine Roboterhand HND, die an einem Ende des Arms ARM vorgesehen ist. Der Arm ARM kann so aufgebaut sein, dass er gelenkig ist, wobei mehrere Gelenke als bewegliche Teile enthalten sind. Die Roboterhand HND kann zu einer Sollposition innerhalb eines Bewegungsbereichs durch Bewegung jedes Gelenks des Arms ARM und durch Drehung des Arms ARM bewegt werden.
  • Die Roboterhand HND ist in der Lage, das Werkstück WK zu halten, und ein Aufbau der Roboterhand HND unterliegt in keiner besonderen Weise einer Beschränkung. Zu Beispielen der Roboterhand HND gehören eine Roboterhand HND1, die so aufgebaut ist, dass sie das Werkstück WK derart hält, dass ein Außenseite des Werkstücks WK von der Roboterhand HND1 gehalten wird, wie in 4A gezeigt ist, eine Roboterhand HND2, die so aufgebaut ist, dass ein hohles Werkstück WK2 mit Klauen der Roboterhand HND2, die in das hohle Werkstück WK2 eingeführt und geöffnet werden, gehalten wird, wie in 4B gezeigt ist, eine Roboterhand HND3, die so aufgebaut ist, dass ein plattenförmiges Werkstück WK3 gehalten wird, wobei das plattenförmige Werkstück WK3 durch die Roboterhand HND3 angesaugt wird, wie in 4A gezeigt ist, und dergleichen, und es kann eine beliebige Hand der Roboterhände verwendet werden. Ferner wird hierin der Begriff „halten“ so verwendet, dass die Bedeutung aller Beispiele miteingeschlossen sind, in denen die Außenseite des Werkstücks WK gehalten wird, wie in 4A gezeigt ist; die Klauen in das Innere des Werkstücks WK eingeführt und dort geöffnet sind; und das Werkstück WK angesaugt wird.
  • Die Robotersteuerung 6 steuert die Bewegung des Arms ARM, eine Bewegung zum Öffnen und Schließen (Haltebewegung) der Roboterhand HND oder dergleichen. Ferner erhält die Robotersteuerung aus der Messeinrichtung 100 Information, die zum Steuern des Roboters RBT erforderlich ist, wie in 2 gezeigt ist. Beispielsweise erfasst die Messeinrichtung 100 eine Position und eine Orientierung jedes der Werkstücke WK, die eine große Anzahl an Teilen repräsentieren, die zufällig in einem Behälter BX angeordnet sind, wie in 1 gezeigt ist, wobei ein Sensor 2, etwa eine dreidimensionale Kamera oder Licht verwendet wird, um die Position und die Orientierung des Werkstücks WK zu erfassen, und die Robotersteuerung 6 erfasst Information über die Position und die Orientierung des Werkstücks WK.
  • 2 zeigt eine Funktionsblockansicht des Robotersystems 1000. Das Robotersystem 1000, das in 2 gezeigt ist, beinhaltet zusätzlich zu dem Roboter RBT und der Robotersteuerung 6 die Messeinrichtung 100, einen Anzeigeblock 3, eine Steuerungstafel 4 und ein Roboterbedienwerkzeug 7.
  • Die Steuerungstafel 4 ist dazu ausgelegt, diverse Einstellungen vorzunehmen. Die Messeinrichtung 100 beinhaltet ferner einen Messblock 20, der ein Bild des Werkstücks WK aufnimmt, um die Position und Orientierung des Werkstücks WK zu messen. Des Weiteren kann ein Benutzer diverse Einstellungen bzw. Festlegungen, eine Bestätigung des Bewegungszustands des Roboters RBT, eine Bestätigung des Bewegungszustands der Messeinrichtung 100 und dergleichen in dem Anzeigeblock 3 vornehmen.
  • Andererseits ist die Robotersteuerung 6 ein gutbekanntes Element, das ausgebildet ist, den Roboter RBT gemäß einem von der Messeinrichtung 100 ausgegebenen Signal zu steuern. Ferner erstellt das Roboterbedienwerkzeug 7 die Bewegungseinstellungen des Roboters RBT. Zu beachten ist, dass in dem in 2 gezeigten Beispiel die Steuerungstafel 4 und das Roboterbedienwerkzeug 7 separate Komponenten sind, dass sie aber als eine integrierte Komponente aufgebaut sein können.
  • Der Sensor 2 ist ein Element, das als eine Robotersehfähigkeit oder gleichen bezeichnet ist, das ein Bild des Arbeitsbereichs oder des Werkstücks WK ausgibt, und gemäß der vorliegenden Ausführungsform ist zumindest das Werkstück WK ein abzubildendes Objekt und das abzubildende Objekt kann den Behälter BX miteinschließen. Es ist möglich, aus dem von dem Sensor 2 erfassten Bild dreidimensionale Formdaten (Bilddaten) zu erhalten, die die dreidimensionale Form jedes der Werkstücke WK, die in einer Ansammlung vorliegen, repräsentieren. Es ist ferner möglich, dreidimensionale Formdaten aus dem von dem Sensor 2 erfassten Bild zu gewinnen, die die dreidimensionale Form des Behälters BX repräsentieren.
  • Zu beachten ist, dass zu Beispielen des Verfahrens zum Gewinnen der dreidimensionalen Form des Werkstücks WK oder des Behälters BX auch ein Mustererkennungsverfahren, ein Stereo-Verfahren, ein Verfahren zur Gewinnung der Form aus dem Fokus, ein Lichtschnittverfahren, ein optisches Radarverfahren, ein Interferometrieverfahren (weißes Interferometrieverfahren), ein TOF-Verfahren und dergleichen gehören, und jedes dieser Verfahren kann angewendet werden. Da jedes Verfahren gut bekannt ist, wird diesbezüglich keine detaillierte Beschreibung angegeben. Gemäß der vorliegenden Erfindung wird aus den diversen Arten von Musterprojektionsverfahren ein Phasenverschiebungsverfahren angewendet, in welchem ein Lichtmuster mit einer periodischen Leuchtstärkeverteilung auf ein abzubildendes Objekt angewendet wird, und das von einer Oberfläche des abzubildenden Objekts reflektierte Licht wird empfangen.
  • Der Sensor 2 und ein Formmessverarbeitungsblock 200 bilden den Messblock 20. Der Formmessverarbeitungsblock 200 ist in der Lage, nicht nur die Position und die Orientierung, die Form und die Größe jedes Teils des Werkstücks WK, sondern auch die Position, Form und Größe des Behälters BX auf der Grundlage der von dem Sensor 2 erfassten Bilddaten zu messen. Der Formmessverarbeitungsblock 200 kann ein Teil der Messeinrichtung 100 sein, kann aber auch als eine separate Komponente aufgebaut sein.
  • Der Messblock 20 kann ein zweidimensionaler Messblock sein, der in der Lage ist, eine zweidimensionale Messung in einer X-Richtung und einer Y-Richtung vorzunehmen, oder er kann ein dreidimensionaler Messblock sein, der in der Lage ist, eine dreidimensionale Messung in einer Z-Richtung (Höhenrichtung) zusätzlich zu der X-Richtung und der Y-Richtung vorzunehmen. Der spezielle Aufbau des Sensors 2, der in dem Messblock 20 enthalten ist, ist auf der Grundlage eines dreidimensionalen Formmessverfahrens festgelegt. In diesem Beispiel beinhaltet der Sensor 2 eine Kamera, eine Lichtquelle, einen Projektor, oder dergleichen. Wenn beispielsweise die dreidimensionale Form des Werkstücks WK durch das Phasenverschiebungsverfahren gemessen wird, wie in 3 gezeigt ist, sind ein Projektor (Lichtprojektionsblock) PRJ und mehrere Kameras (Lichtempfangsblöcke) CME1, CME2, CME3, CME4 als der Sensor 2 vorgesehen. Der Projektor PRJ ist eine Komponente, die das Werkstück WK mit Licht bestrahlt. Die Kameras CME1, CME2, CME3, CME4 sind Komponenten, die jeweils mit einem Bildgebungssensor ausgestattet sind, der das Licht empfängt, das von dem Projektor PRJ projiziert und von der Oberfläche des Werkstücks WK reflektiert wird. Eine Lichtquelle des Lichtprojektionsblocks kann beispielsweise aus mehreren Leuchtdioden, einem Flüssigkristallpaneel, einem organischen EL-Paneel, einer digitalen Mikrospiegeleinrichtung (DMD), oder dergleichen aufgebaut sein.
  • Der Sensor 2 kann aus mehreren Komponenten, etwa den Kameras CME1, CME2, CME3, CME4 und dem Projekt PRJ aufgebaut sein, oder alternativ kann er aus einem einheitlichen Körper aus derartigen Komponenten aufgebaut sein. Beispielsweise kann ein 3D-Bildgebungskopf, der sich aus einer Integration der Kameras CME1, CME2, CME3, CME4 und dem Projektor PRJ zu einer Kopfform ergibt, als der Sensor 2 dienen.
  • Des Weiteren ist der Sensor 2 ferner in der Lage, dreidimensionale Formdaten zu erzeugen. In diesem Falle ist der Sensor 2 mit einem Bildverarbeitungs-IC oder dergleichen versehen, das eine Funktion zur Erzeugung dreidimensionaler Formdaten implementiert. Alternativ kann ein anderer Aufbau eingesetzt werden, in welchem die Erzeugung der dreidimensionalen Formdaten nicht auf Seite des Formmessverarbeitungsblocks 200 ausgeführt wird, und es wird ein Rohbild, das von dem Sensor 2 erfasst wird, als Bild durch einen weiteren Block der Messeinrichtung 100 verarbeitet, um die dreidimensionalen Formdaten, etwa als ein dreidimensionales Bild, zu bilden.
  • Ferner erlaubt eine Kalibrierung auf der Grundlage der Bilddaten, die durch den Sensor 2 erfasst werden, eine Verknüpfung von tatsächlichen Positionskoordinaten des Werkstücks WK (Koordinaten der Bewegungsposition der Roboterhand HND) und von Positionskoordinaten auf dem Bild, das auf dem Anzeigeblock 3 angezeigt wird.
  • Die Messeinrichtung 100 führt eine dreidimensionale Suche, eine Ermittlung von Hindernissen, eine Lösungsberechnung für die Haltefunktion und dergleichen auf der Grundlage der dreidimensionalen Formdaten, etwa der Form der Position und der Orientierung des Werkstücks WK, die durch den Messblock 20 erhalten werden, aus. Die Messeinrichtung 100 kann durch einen Computer für Allgemeinzwecke implementiert werden, der darin ein spezielles Bildverarbeitungsprogramm installiert hat, es kann eine speziell gebaute Bildverarbeitungssteuerung oder eine Hardware für spezielle Zwecke verwendet werden. Alternativ kann die Messeinrichtung 100 durch einen Computer für spezielle Zwecke mit einem darin installierten Bildverarbeitungsprogramm und mit Hardware implementiert werden, etwa mit einer Graphikplatine, die für die Bildinspektionsverarbeitung besonders geeignet ist.
  • Zu beachten ist, dass 2 ein Beispiel zeigt, in welchem der Sensor 2 und der Formmessverarbeitungsblock 200, die in dem Messblock 20 enthalten sind, als separate Komponenten sind, wobei jedoch die vorliegende Erfindung nicht auf einen derartigen Aufbau beschränkt ist, und beispielsweise können der Sensor 2 und der Formmessverarbeitungsblock 200 als eine einzige Einheit zusammengefasst sein, ein Teil des Sensors 2 kann in dem Formmessverarbeitungsblock 200 eingebaut sein, oder alternativ kann ein Teil des Formmessverarbeitungsblocks 200 in dem Sensor 2 eingebaut sein. Wie zuvor beschrieben ist, ist die Unterteilung der in 2 gezeigten Komponenten nur ein Beispiel, und es können mehrere Komponenten integriert sein, oder es kann eine einzelne Komponente unterteilt sein. Beispielsweise können die Steuerungstafel 4 und das Roboterbedienwerkzeug 7 zu einer gemeinsamen Komponente zusammengefasst sein.
  • Wie in 1 gezeigt ist, ist der Sensor 2 separat zu dem Roboter RBT. Das heißt, der Sensor 2 ist nicht auf dem Arm ARM des Roboterkörpers 5 vorgesehen und wird als von der Hand entfernter Typ bezeichnet. Zu beachten ist, dass der Sensor 2 auf dem Arm ARM vorgesehen sein kann.
  • Als der Anzeigeblock 3 kann beispielsweise ein Flüssigkristallbildschirm, eine organische EL-Anzeige, eine CRT oder dergleichen eingesetzt werden. Die Steuerungstafel 4 ist eine Komponente, um diverse Einstellungen für beispielsweise diverse Simulationen oder Bildverarbeitungen vorzunehmen, und eine Eingabeeinrichtung, etwa eine Tastatur oder eine Maus können entsprechend verwendet werden. Ferner ermöglicht die Verwendung eines berührungsempfindlichen Bildschirms in dem Anzeigeblock 3, dass die Steuerungstafel 4 und der Anzeigeblock 3 als integrale Einheit fungieren.
  • Wenn beispielsweise die Messeinrichtung 100 durch einen Computer implementiert ist, der darin das Bildverarbeitungsprogramm installiert hat, wird eine graphische Benutzerschnittstelle (GUI) bzw. graphische Benutzeroberfläche als Bildschirm, die durch die Ausführung des Bildverarbeitungsprogramms erzeugt wird, auf dem Anzeigeblock 3 angezeigt, wie dies später beschrieben ist. Es können diverse Einstellungen bzw. Festlegungen auf der auf dem Anzeigeblock 3 angezeigten GUI vorgenommen werden, und es kann ein Verarbeitungsergebnis und dergleichen auf der GUI angezeigt werden. In diesem Falle kann der Anzeigeblock 3 auch als Einstellblock oder Eingabeblock zum Vornehmen diverser Einstellungen verwendet werden, und der Einstellblock oder der Eingabeblock können die Steuerungstafel 4 beinhalten.
  • Die Robotersteuerung 6 steuert die Bewegung des Roboters auf der Grundlage von beispielsweise Information, die durch den Sensor 2 erfasst wird, auf der Grundlage von Information, die von der Messeinrichtung 100 ausgegeben wird, oder dergleichen. Das Roboterbedienwerkzeug 7 ist eine Komponente, um Bewegungseinstellungen für den Roboter RBT vorzunehmen, und es kann ein sogenannter Bedienungsaufhängeeinrichtung oder dergleichen verwendet werden.
  • Wie in 1 gezeigt, sind mehrere Werkstücke WK zufällig in dem Behälter BX gelagert. Der Sensor 2 ist über einem derartigen Arbeitsbereich angeordnet. Die Robotersteuerung 6 erkennt aus den mehreren Werkstücken WK ein zu haltendes Werkstück WK auf der Grundlage der dreidimensionalen Form des Werkstücks WK, die durch den Sensor 2 ermittelt wird, und sie steuert den Roboter RBT derart, dass das Werkstück WK gehalten wird. Während des Haltens der Halteposition des Werkstücks WK wird dann der Arm ARM an eine vorbestimmte Anordnungsposition, beispielsweise auf der Halterung STG bewegt, um das Werkstück WK in einer vorbestimmten Orientierung anzuordnen. Anders ausgedrückt, die Robotersteuerung 6 steuert die Bewegung des Roboters RBT, um damit zu bewirken, dass die Roboterhand HND ein aufzunehmendes bzw. auszuwählendes (zu haltendes) Werkstück WK hält, das von dem Sensor 2 und der Messeinrichtung 100 erkannt worden ist, die Steuerung platziert das auf diese Weise gehaltene Werkstück WK an einer Anordnungsposition (Halterung STG) in einer vorbestimmten Referenzorientierung, und sie öffnet anschließend die Roboterhand HND. Zu Beispielen der Halterung STG gehören ein Förderband und eine Palette. Ferner kann die Haltebewegung als ein Aufnehmen bzw. Auswählen bezeichnet werden, und die Halteposition kann als eine Auswahlposition bezeichnet werden. Des Weiteren kann die Anordnungsbewegung als ein Platzieren bezeichnet werden, und die Anordnungsposition kann als eine Platzierungsposition bezeichnet werden.
  • Das Aufnehmen bzw. Auswählen gemäß der vorliegenden Ausführungsform ist nicht auf das Aufnehmen aus einer Produktansammlung beschränkt, und es kann ein in einer beliebigen Weise angeordnetes Werkstück WK durch den Roboter RBT transportiert werden. Dabei bedeutet das Aufnehmen bzw. Auswählen aus einer Ansammlung nicht nur, dass die in dem Behälter BX zufällig gelagerten Werkstücke WK einzeln durch den Roboter RBT gehalten und an einer vorbestimmten Position angeordnet werden, sondern dies bezeichnet auch beispielsweise den Vorgang, wonach in einem vorbestimmten Bereich verstaute Werkstücke WK ohne die Verwendung oder ohne einen Behälter jeweils gehalten und platziert werden, oder es ist ein Beispiel mitinbegriffen, in welchem die Werkstücke WK, die in einer vorbestimmten Orientierung angeordnet und verstaut sind, der Reihe nach gehalten und platziert werden. Des Weiteren ist es nicht immer notwendig, dass die Werkstücke WK verstaut sind, und es wird hierin auch ein Zustand, in welchem die Werkstücke WK zufällig auf einer Ebene ohne gegenseitige Überlappung angeordnet sind, als ein Verstauen in einer Ansammlung bezeichnet (dies liegt daran, dass ein sequentielles Aufnehmen bzw. Auswählen ausgeführt wird, und selbst wenn die Werkstücke WK in der abschließenden Phase des Aufnehmens nicht miteinander überlappen, wird dieser Zustand dennoch als Aufnehmen bzw. Auswählen aus einer Ansammlung bezeichnet). Zu beachten ist, dass die vorliegende Erfindung nicht notwendigerweise auf das Aufnehmen bzw. Auswählen aus einer Ansammlung heraus beschränkt ist, und dass sie auch auf einen Fall anwendbar ist, in welchem die Werkstücke WK, die nicht als eine Ansammlung verstaut sind, aufgenommen bzw. ausgewählt werden.
  • Ferner ist indem in 1 gezeigten Beispiel der Sensor 2 über dem Arbeitsbereich befestigt, jedoch kann die fixierte Position des Sensors 2 eine beliebige Position sein, an der der Sensor 2 ein Bild des Arbeitsbereichs aufnehmen kann; daher kann der Sensor 2 an einer beliebigen Position angeordnet sein, etwa an einer Position, die schräg über dem Arbeitsbereich liegt, einer Position auf einer Seite des Arbeitsbereichs, einer Position unter dem Arbeitsbereich oder einer Position, die schräg unter dem Arbeitsbereich liegt. Alternativ kann in einem weiteren Aspekt der Sensor 2 in einer beweglichen Weise an einer nicht-fixierten Position angeordnet sein, etwa an einer Position über dem Arm ARM. Ferner sind die in dem Sensor 2 enthaltenen Kameras und Lichtquellen in ihrer Anzahl nicht auf eins beschränkt, sondern es können mehrere sein. Ferner ist die Verbindung mit dem Sensor 2, dem Roboter RBT und der Robotersteuerung 6 nicht auf eine verdrahte Verbindung beschränkt, sondern es kann stattdessen eine bekannte drahtlose Verbindung vorgesehen sein.
  • Wenn die Bewegung zum Aufnehmen bzw. Auswählen bzw. der Auswahlbewegung aus der Ansammlung heraus durch das Robotersystem 1000 ausgeführt wird, ist es möglich, einen Lernvorgang einschließlich der Einstellungen zum Ausführen der Auswahlbewegung aus der Ansammlung heraus im Voraus auszuführen. Insbesondere ist es möglich, zu registrieren bzw. aufzuzeichnen, welcher Teil des Werkstücks WK von der Roboterhand HND gehalten wird, in welcher Orientierung die Roboterhand HND das Werkstück WK in einer Halteposition hält, eine Orientierung, wenn das Werkstück WK gehalten wird, und dergleichen, und es ist möglich, eine Anordnungsposition, eine Orientierung, wenn das Werkstück WK angeordnet ist, und dergleichen, zu registrieren bzw. aufzuzeichnen. Derartige Einstellungen können durch das Roboterbedienwerkzeug 7, etwa durch eine Aufhängebedienungeinrichtung, vorgenommen werden. Wie ferner nachfolgend beschrieben ist, können die Einstellungen an einem Darstellungsraum ohne Betrieb des eigentlichen Roboters RBT vorgenommen werden.
  • Der Anzeigeblock 3 zeigt ein Arbeitsmodell dreidimensional an, das in virtueller Weise die dreidimensionale Form des Werkstücks WK repräsentiert, oder zeigt ein Roboterhandmodell an, das aus dreidimensionalen CAD-Daten erstellt ist, die die dreidimensionale Form der Roboterhand HND in einem virtuellen dreidimensionalen Raum repräsentieren. Der Anzeigeblock 3 kann ferner ein Bild der Grundrichtungen des Arbeitsmodells als sechs orthogonale Ansichten anzeigen. Dadurch wird ermöglicht, dass der Vorgang des Einstellens der Halteposition bei jeder Orientierung des Arbeitsmodells durchgeführt wird, das in Form sechs orthogonaler Ansichten angezeigt wird, wodurch der Vorgang des Einstellens der Halteposition erleichtert wird, was im Stand im Stand Technik ein schwieriger Arbeitsvorgang ist.
  • (Einstellungsvorgang bzw. Festlegungsvorgang) 5 ist ein Flussdiagramm, das einen Ablauf zur Einstellung bzw. Festlegung eines Suchmodells ist, und 6 ist ein Flussdiagramm, das einen Ablauf zur Einstellung bzw. Festlegung eines Handmodells und einer Halteposition zeigt. Das nachfolgend beschriebene Verfahren ist ein Beispiel, und das Suchmodell kann aus CAD-Daten erstellt werden, oder alternativ kann es aus Punktwolkendaten, die von dem Sensor 2 erfasst werden, erzeugt werden, und die Daten, aus denen das Suchmodell erstellt wird, sind in keiner besonderen Weise eingeschränkt.
  • Die Einstellung bzw. Festlegung des Suchmodells oder die Einstellung bzw. Festlegung des Robotermodells, des Handmodells und der Halteposition kann entsprechend als erstes vorgenommen werden. Die Einstellung bzw. Festlegung des Suchmodells und die Einstellung bzw. Festlegung des Robotermodells, des Handmodells und der Halteposition können durch einen Festlegungsblock 21 vorgenommen werden, der in 2 gezeigt ist.
  • Im Schritt SB1 nach dem Beginn des Flussdiagramms, das den Vorgang zur Festlegung bzw. Einstellung des in 5 gezeigten Suchmodells zeigt, wird das Suchmodell des Werkstücks WK registriert bzw. aufgezeichnet. Das Suchmodell des Werkstücks WK ist ein Modell, das die Form des Werkstücks WK repräsentiert und das verwendet wird, wenn ein Suchvorgang, der nachfolgend beschrieben ist, ausgeführt wird. Wenn das Suchmodell des Werkstücks WK im Schritt SB1 aufgezeichnet ist, werden dreidimensionale CAD-Daten (CAD-Modell) des Werkstücks WK ausgelesen und temporär in einer Speichereinrichtung 42 der Messeinrichtung 100 gespeichert. Die CAD-Daten entsprechen den Daten des Suchmodells des Werkstücks WK und können Daten in einem Format sein, das üblicherweise im Stand der Technik verwendet wird.
  • Ferner kann das Suchmodell des Werkstücks WK beispielsweise ein Hindernisermittlungsmodell sein, das auf der Grundlage einer Oberflächenform erzeugt wird, die sich bei der Betrachtung einer gewissen Oberfläche ergibt. Das heißt, es ist möglich, ein Modell zu verwenden, in welchem eine Punktwolke zur Verwendung bei der Suche auf eine Null-Ebene (Anordnungsebene des Werkstücks WK) als das Hindernisermittlungsmodell gezogen wird. Als ein Vorgang zur Gewinnung des Hindernisermittlungsmodells wird zunächst eine Punktwolkeninformation über das Suchmodell ermittelt, und anschließend wird eine Höhe (Extrusionsbetrag) des Suchmodells und ein Modellfußabdruck aus der Ebeneninformation über die Null-Ebene erhalten. In diesem Zeitpunkt kann ein Hintergrund durch die Verwendung eines Hintergrundentfernungsschwellenwerts oder durch Maskierung entfernt werden. Anschließend wird die Punktwolke entsprechend dem Extrusionsbetrag herausgezogen. Zu diesem Zeitpunkt wird nur die Höheninformation über einen Bereich des Fußabdrucks verwendet. Um Löcher zu füllen oder ein Rauschen zu entfernen, wird die Punktwolkeninformation oder das Höhenbild optional einer Stauchung oder Dehnung in der X- und Y-Richtung unterzogen.
  • Wenn die Oberfläche des Hindernisermittlungsmodells in Vielecke bzw. Polygone umgewandelt wird, können die Vielecke von der Art sein, die durch Eckpunkte benannt ist. Dies macht es möglich, dass die Vielecke in Form eines Eckpunkts-Arrays und eines Eckpunkt-Index-Arrays repräsentiert werden, die einfacher zu handhaben sind und weniger Kapazität als beispielsweise das STL-Format erfordern. Wenn die Oberfläche des Hindernisermittlungsmodells in Vielecke umgewandelt wird, kann optional ein Polygonreduktionsprozess ausgeführt werden. Ferner kann die Punktwolkeninformation optional ausgedünnt werden. Wenn ferner die Punktwolke durch ein Höhenbild repräsentiert ist, kann ein Pixelwert durch Bildreduktion reduziert werden.
  • Selbst wenn das Werkstück WK eine komplizierte Form hat, umgibt die in der zuvor beschriebenen Weise herausgezogene Form einen größeren Bereich und ist daher für die Ermittlung von Hindernissen effektiv. Des Weiteren ist es nicht erforderlich, mehrere Oberflächen zu kombinieren, wodurch der Vorgang einfach wird. Das Vorsehen von mehreren Hindernisermittlungsmodellen als Auszug für ein gewisses Werkstück WK macht es möglich, ein Hindernisermittlungsmodell auszuwählen, das in höchster Weise für die Halteposition und die Orientierung oder die Suchposition und die Orientierung geeignet ist.
  • Ferner kann als das Suchmodell des Werkstücks WK das STL-Format, das das einfachste Format unter den CAD-Datenformaten ist, verwendet werden. Das STL-Format entspricht Daten, die nur aus einer Liste von Teilen von dreieckigen Polygoninformationen aufgebaut sind (Koordinaten von drei Punkten und einem Normalenvektor der Oberfläche). Alternativ kann das Suchmodell des Werkstücks WK aus Punktwolkendaten aufgebaut sein, die eine dreidimensionale Information enthalten. Alternativ kann das Suchmodell des Werkstücks WK aus Bilddaten aufgebaut sein, die eine Höheninformation, beispielsweise ein Höhenbild oder ein Distanzbild, enthalten.
  • Nachdem die CAD-Daten des Suchmodells des Werkstücks WK im Schritt SB1 ausgelesen sind, geht der Ablauf weiter zum Schritt SB2, in welchem das Suchmodell des Werkstücks WK bestätigt und registriert bzw. aufgezeichnet wird. Beispielsweise ermöglicht es das Anzeigen der auf diese Weise ausgelesenen CAD-Daten des Suchmodells des Werkstücks WK auf dem Anzeigeblock 3, dass der Benutzer der Messeinrichtung 100 bestätigt, ob das Suchmodell ein gewünschtes Suchmodell ist. Wenn das Ergebnis zeigt, dass das Suchmodell das gewünschte Suchmodell ist, dann wird das Suchmodell in der Messeinrichtung 100 registriert bzw. aufgezeichnet bzw. als zulässig erklärt. Wenn das Ergebnis der Bestätigung zeigt, dass das Suchmodell nicht das gewünschte Suchmodell ist, werden weitere CAD-Daten eingelesen, und die Bestätigung wird erneut ausgeführt.
  • Im Schritt SB2 wird ein umschriebener Würfel des CAD-Modells definiert, wenn das Suchmodell des Werkstücks WK registriert bzw. angemeldet ist, und es wird ein Vorgang zur Korrektur des Ursprungs ausgeführt, um den Mittelpunkt dieses umschriebenen Würfels in Bezug auf den Ursprung der CAD zu korrigieren. Der Ursprung des Suchmodells des Werkstücks WK wird durch die Messeinrichtung 100 automatisch aus der Koordinateninformation, die in den dreidimensionalen CAD-Daten enthalten ist, ermittelt. Beispielsweise ist es möglich, in Bezug auf die dreidimensionalen CAD-Daten des Suchmodells des Werkstücks WK einen virtuellen Würfel zu definieren, der das Suchmodell umgibt, und anschließend kann der Schwerpunkt dieses virtuellen Würfels als der Ursprung des Suchmodells festgelegt werden.
  • Ferner werden im Schritt SB2 sechs Oberflächen des im Schritt SB1 eingelesenen CAD-Modells, d. h., das Höhenbild des CAD-Modells, das aus jeder Richtung, also von „oben“, „unten“, „links“, „rechts“, „vome“ und „hinten“ betrachtet wird, erzeugt. Zunächst werden sechs Teile der Höhenbilddaten erzeugt, wobei die sechs Teile der Höhenbilddaten entsprechend einer Draufsicht, einer Ansicht von unten, einer linken Seitenansicht, einer rechten Seitenansicht, einer Ansicht von vorne und einer Ansicht von hinten des CAD-Modells entsprechen. Das Höhenbild wird aus diesen Höhenbilddaten gewonnen. Die „Oberseite bzw. oben“ entspricht einem Höhenbild, das von einer positiven Richtung der Z-Achse (Plusseite) aus betrachtet wird, die „Unterseite bzw. unten“ entspricht einem Höhenbild, das von einer negativen Richtung der Z-Achse (Minusseite) aus betrachtet wird, „links“ entspricht einem Höhenbild, das von einer negativen Richtung der X-Achse aus betrachtet wird, „rechts“ entspricht einem Höhenbild, das von einer positiven Richtung der X-Achse aus betrachtet wird, „vome“ entspricht einem Höhenbild, das aus einer negativen Richtung der Y-Achse aus betrachtet wird, und „hinten“ entspricht einem Höhenbild, das von einer positiven Richtung der Y-Achse aus betrachtet wird. Jedoch sind dies lediglich Beispiele, und es kann ein anderes Koordinatensystem verwendet werden, und auf der Grundlage eines Koordinatensystems, das senkrecht zu einer Achse ist, die einer geraden Linie von X = Y in der XY-Ebene entspricht, können Höhenbilder verwendet werden, die aus der positiven und der negativen Richtung jeder Achse aus betrachtet werden. Wenn ferner das Höhenbild aus den dreidimensionalen CAD-Daten erzeugt wird, ist das Höhenbild nicht notwendigerweise ein Höhenbild, das von einer Richtung aus betrachtet wird („oben“, „unten“, „links“, „rechts“, „vorne“, „hinten“), die senkrecht zu jeder Achse der CAD-Daten ist, wobei die Orientierung (der Betrachtungspunkt) des Suchmodells des Werkstücks WK nach Bedarf geändert wird, und das Höhenbild kann auf der Grundlage des geänderten Betrachtungspunkts erzeugt werden.
  • Da ferner das CAD-Modell aus den dreidimensionalen CAD-Daten erstellt wird, werden die dreidimensionalen CAD-Daten in Höhenbilder umgewandelt, die aus der Plusrichtung und der Minusrichtung jeweils der X-, Y- und Z-Koordinaten des CAD-Modells aus betrachtet werden, wodurch Höhenbilder der sechs Oberflächen des CAD-Modells erzeugt werden.
  • Es ist ferner möglich, ein Höhenbild zu löschen, das in Bezug auf die sechs Höhenbilder, die in der zuvor beschriebenen Weise erzeugt sind, das gleiche Aussehen hat. Die Übereinstimmung/Abweichung der äußeren Erscheinung wird auf der Grundlage davon ermittelt, ob Höhenbilder der sechs Oberflächen, die auf der Grundlage der Höhenbilddaten erzeugt werden, und die von oben und von unten des Werkstücks (positive und negative Richtung der Z-Achse), von vorne und hinten (positive und negative Richtung der Y-Achse) und von links und rechts (positive und negative Richtung der X-Achse) betrachtet werden, übereinstimmen. Dabei wird das Werkstück WK jedes Mal um 90° gedreht, wenn die Ermittlung bezüglich der Übereinstimmung erfolgt, und eine Oberfläche, die ihrer Erscheinung nach mit einer anderen Oberfläche übereinstimmt, wird aus den Registrierungszielobjekten des Suchmodells des Werkstücks WK ausgeschlossen.
  • Nach dem jeweiligen Ausschluss werden die verbleibenden Höhenbilddaten gespeichert. Information, die zeigt, ob die zu speichernden Höhenbilddaten einem Bild entsprechen, das von oben, von unten, von links, von rechts, von vorne oder von hinten des CAD-Modells betrachtet wird, d. h., eine Information über die Richtung, wird sodann den Höhenbilddaten hinzugefügt, und die Information über die Richtung und die Höhenbilddaten werden in der Speichereinrichtung 42 einander zugeordnet gespeichert. Dies macht es möglich, dass alle Höhenbilddaten zusammen mit Zuordnungsinformation über jeweils die obere, die untere, die linke, die rechte, die vordere und die hintere Oberfläche gespeichert werden. Zu beachten ist, dass gegebenenfalls auch nur die Höhenbilddaten gespeichert werden, ohne die Zuordnungsinformation über jede Oberfläche zu speichern.
  • Das zuvor beschriebene Verfahren ist auf einen Fall anwendbar, in welchem die CAD-Daten des Werkstücks WK vorhanden sind, wenn es aber keine CAD-Daten des Werkstücks WK gibt, können mehrere Höhenbilder des Suchmodells des Werkstücks WK, das aus unterschiedlichen Richtungen betrachtet wird, als das Suchmodell registriert bzw. aufgezeichnet werden. Das heißt, das Werkstück WK, in welchem die zu registrierende Oberfläche nach oben zeigt, wird auf einer Ebene angeordnet, und es wird eine dreidimensionale Messung ausgeführt. Diese dreidimensionale Messung kann unter Anwendung des Sensors 2 und des Formmessverarbeitungsblocks 200 des Robotersystems 1000 ausgeführt werden. Die Messdaten, die durch die von dem Formmessverarbeitungsblock 200 ausgeführte dreidimensionale Messung gewonnen werden, werden an den Formmessverarbeitungsblock 200 ausgegeben, und die Höhenbilddaten der zu registrierenden Oberfläche des Werkstücks WK können entsprechend auf der Grundlage der Messdaten erhalten werden.
  • Nachdem die Bilddaten auf der Grundlage der auf diese Weise gewonnenen Höhenbilddaten erhalten worden sind, wird das Höhenbild als ein Suchmodell registriert bzw. aufgezeichnet. Nach der Registrierung wird ermittelt, ob Höhenbilder, die für die Suche erforderlich sind, registriert worden sind. Diese Ermittlung kann von dem Benutzer ausgeführt werden, oder alternativ kann sie durch die Messeinrichtung 100 oder eine Bildverarbeitungseinrichtung 300 durchgeführt werden. Das heißt, wenn die Formen des Werkstücks WK, das aus den jeweiligen Richtungen oben, unten, links, rechts, vorne und hinten betrachtet wird, sich voneinander unterscheiden, ist es bevorzugt, die Höhenbilder aller sechs Oberflächen zu erhalten, jedoch im Falle eines Rechtsecks, wie dies zuvor beschrieben ist, wenn es also Oberflächen gibt, die die gleiche Form haben, ist es nicht erforderlich, die Höhenbilder aller sechs Oberflächen zu erhalten. Wenn Höhenbilder, die für die Suche notwendig sind, registriert worden sind, ist der Prozess beendet.
  • Im Schritt SB3 nach dem Schritt SB2 in dem in 5 gezeigten Flussdiagramm wird eine Suchbedingung festgelegt. Die Suchbedingung beinhaltet beispielsweise die Anzahl an Werkstücken WK, die während der Suche erfasst werden können, die untere Grenze des Korrelationswertes zwischen dem Suchmodell und dem Werkstück WK, eine Merkmalsextraktionsbedingung (Kantenextraktionsschwellenwert und dergleichen), und dergleichen. Die Suchbedingung wird von dem Benutzer festgelegt und über den Festlegungsblock 21 empfangen.
  • Als Nächstes wird ein Flussdiagramm beschrieben, das einen Ablauf zur Einstellung bzw. Festlegung eines Handmodells und einer Halteposition, die in 6 gezeigt sind, zeigt. Im Schritt SC1 nach dem Start wird ein Robotermodell registriert. Das Robotermodell spezifiziert diverse Informationen über den Roboter RBT, der vorort verwendet wird. Die diversen Informationen über den Roboter RBT beinhalten beispielsweise eine Länge des Arms ARM, einen Bewegungsbereich des Arms ARM, eine Position des Roboters RBT, eine Schwenkgeschwindigkeit und Drehgeschwindigkeit des beweglichen Teils des Arms ARM, und dergleichen. Die diversen Informationen über den Roboter RBT können ein Modell beinhalten, das die Form des Roboters RBT repräsentiert. In diesem Falle werden Polygon-Daten bzw. Vieleck-Daten (CAD-Daten) des Roboters RBT ausgelesen. Dieser Schritt ist ein RoboterModell-Reg istrierungssch ritt.
  • Nach der Registrierung des Robotermodells im Schritt SC1 geht der Ablauf weiter zum Schritt SC2, und anschließend wird ein Roboterhandmodell registriert. Das Roboterhandmodell ist ein Modell, das die Form der Roboterhand repräsentiert. Wenn ein Handmodell des Roboters RBT registriert wird, werden Polygon-Daten (CAD-Daten) der Roboterhand ausgelesen.
  • Nach dem Weiterschreiten zum Schritt SC3 werden eine relative Position und eine Orientierung zwischen dem Roboterhandmodell, das im Schritt SC2 registriert wurde, und einer Flanschoberfläche des Robotermodells (im Schritt SC1 registriert), an dem das Roboterhandmodell angebracht ist, festgelegt. Insbesondere wird eine Positionsbeziehung zwischen den beiden derart festgelegt, dass eine Befestigungsoberfläche des Roboterhandmodells und die Flanschoberfläche bzw. Auflagefläche des Robotermodells übereinstimmen.
  • Im Schritt SC4 nach dem Schritt SC3 werden Endkoordinaten des Roboterhandmodells, das auf der Flanschoberfläche des Robotermodells montiert ist, zugewiesen. Diese Endkoordinaten können aus der Robotersteuerung 6 erhalten werden oder können von dem Benutzer festgelegt werden. Anschließend wird im Schritt SC5 bestätigt, ob das Roboterhandmodell registriert worden ist.
  • Nachdem das Roboterhandmodell in der zuvor beschriebenen Weise registriert worden ist, geht der Ablauf weiter zum Schritt SC6. Im Schritt SC6 wird eine Oberfläche des Suchmodells, die von dem Handmodell zu halten ist, ausgewählt. Die Oberfläche des Suchmodells kann durch das Höhenbild repräsentiert sein, das in dem in 5 gezeigten Flussdiagramm registriert wurde, und es wird ein Höhenbild, das einer Oberfläche entspricht, die von dem Roboterhandmodell gehalten werden kann, aus den mehreren registrierten Höhenbildern ausgewählt. Der Benutzer kann die Steuerungstafel 4 betätigen, um das entsprechende Höhenbild aus den auf dem Anzeigeblock 3 angezeigten Höhenbildern auszuwählen.
  • Nachdem das Höhenbild im Schritt SC6 ausgewählt ist, geht der Ablauf weiter zum Schritt SC7, und die Position und die Orientierung der Roboterhand HND beim Halten der im Schritt SC6 ausgewählten Oberfläche werden registriert bzw. aufgezeichnet. Beispielsweise ist es möglich, X-Achsenkoordinaten, Y-Achsenkoordinaten, Z-Achsenkoordinaten, einen Drehwinkel um den X-Achse, einen Drehwinkel um die Y-Achse, einen Drehwinkel um die Z-Achse individuell einzugeben, und das Roboterhandmodell entsprechend den auf diese Weise eingegebenen Werten zu bewegen, sodass es an einer Sollposition in dem Höhenbild angeordnet wird. Dies macht es möglich festzulegen, welcher Teil des Suchmodells von der Roboterhand gehalten wird, und in welcher Orientierung das Roboterhandmodell das Suchmodell hält, d. h., es werden die Halteposition und Orientierung festgelegt, während die Position des Roboterhandmodells justiert wird. Die Halteposition und die Orientierung können nicht nur durch die Eingabe numerischer Werte festgelegt werden, sondern beispielsweise auch durch direktes Einwirken auf das Roboterhandmodell mittels einer Maus der Steuerungstafel 4.
  • Die auf diese Weise festgelegte Halteposition ist eine mögliche Halteposition, die von der Roboterhand HND eingenommen wird. Es können mögliche Haltepositionen, die von der Roboterhand HND eingenommen werden, jeweils in Zuordnung zu einem entsprechenden Suchmodell des Werkstücks WK, das bereits registriert ist, festgelegt werden. Beispielsweise können zwei mögliche Haltepositionen in Zuordnung zu einem einzelnen Suchmodell festgelegt werden, und es können vier mögliche Haltepositionen in Zuordnung zu einem weiteren Suchmodell festgelegt werden. Eine Halteinformation, die die mögliche Halteposition des Werkstücks WK zeigt, die auf diese Weise festgelegt wurde, kann zugeordnet zu dem Suchmodell in einem Halteinformationsspeicherblock 42a (in 2 gezeigt) der Speichereinrichtung 42, die in der Messeinrichtung 100 enthalten ist, gespeichert werden.
  • Im Allgemeinen werden häufig mehrere mögliche Haltepositionen für ein einzelnes Werkstück WK registriert. Dies liegt daran, dass, wenn mehrere mögliche Haltepositionen registriert werden, die optimale Lösung aus mehreren Haltelösungen ausgewählt werden kann, und wenn eine mögliche Halteposition, die vorläufig erhalten wird, nicht die endgültige Lösung sein kann aufgrund von beispielsweise einer Behinderung der Roboterhand HND in Verbindung mit einem weiteren Objekt und keine weitere mögliche Haltelösung vorhanden ist, wird dadurch die Wahrscheinlichkeit erhöht, dass ermittelt wird, dass dieser Haltevorgang möglich ist. In einer Konfiguration, in der mehrere derartige mögliche Haltepositionen der Reihe nach von Beginn an registriert werden, ist viel Zeit und Aufwand erforderlich, um ähnliche mögliche Haltepositionen zu registrieren, wodurch der Arbeitsvorgang zeitaufwendig wird. Das Kopieren bereits registrierter möglicher Haltepositionsinformationen und die Änderung einiger Positionsparameter, die für diese mögliche Halteposition festgelegt sind, um damit zu ermöglichen, dass die mögliche Halteposition als eine neue mögliche Halteposition gespeichert wird, machen es dadurch möglich, ohne Zeitaufwand und sonstigen Aufwand mehrere mögliche Haltepositionen in einer vereinfachten Weise zu registrieren. In ähnlicher Weise ist es ferner möglich, eine bestehende mögliche Halteposition auszulesen, den Positionsparameter in geeigneter Weise zu modifizieren und die Änderung zu speichern.
  • Wenn die mögliche Halteposition registriert ist, werden eine relative Position und Orientierung des Roboterhandmodells zum Zeitpunkt des Haltens des Suchmodells des Werkstücks WK in Bezug auf den Ursprung des Suchmodells registriert. Wenn andererseits das Werkstück WK durch die tatsächliche Roboterhand HND aufgenommen wird, ist es erforderlich, Betrachtungskoordinaten, die Koordinaten in dem dreidimensionalen Raum (Betrachtungsraum) entsprechend zu einem Bild des Werkstücks WK sind, das von dem Sensor 2 aufgenommen wird, in Roboterkoordinaten umzuwandeln, die anzuwenden sind, wenn die Robotersteuerung 6 tatsächlich den Roboter RBT in Bewegung versetzt.
  • Insbesondere werden die Position und die Orientierung des Suchmodells des Werkstücks WK aus einer Position (X, Y, Z) und einer Orientierung Rx, RY, RZ) in dem Betrachtungsraum (die Orientierung (RX, RY, RZ) repräsentiert eine Orientierung, die durch ZXY-Euler-Winkel ausgedrückt ist) erhalten werden. Ferner wird die Orientierung des Roboterhandmodells, das das Halten ausführt, auch als die Position (X, Y, Z) und die Orientierung (RX, RY, RZ) in dem virtuellen dreidimensionalen Raum der Messeinrichtung 100 ermittelt. Auf der Grundlage der Position und der Orientierung in einem derartigen Betrachtungsraum müssen, um die Robotersteuerung den Roboter RBT in Bewegung zu versetzen, die Position und die Orientierung in eine Position (X', Y', Z') und eine Orientierung (RX', RY', RZ') umgewandelt werden. Ein Vorgang zur Ermittlung eines Umwandlungsausdrucks zum Umwandeln der Position und der Orientierung, die in dem angezeigten Koordinatensystem berechnet sind, in die Position und Orientierung in dem Koordinatensystem, in welchem die Robotersteuerung 6 die Roboterhand HND in Bewegung versetzt, wird als Kalibrierung bezeichnet. Diese Kalibrierung wird durch ein im Stand der Technik bekanntes Verfahren ausgeführt.
  • Im Schritt SC8 des in 6 gezeigten Flussdiagramms wird eine Ermittlung dahingehend durchgeführt, ob die erforderliche Anzahl möglicher Haltepositionen erfolgreich registriert worden ist. Wenn es eine große Anzahl an Produkten gibt, die von Roboterhand HND gehalten werden können, dann nimmt die Anzahl möglicher Haltepositionen, die zu registrieren sind, zu, wobei dies jedoch eine Angelegenheit ist, die von dem Benutzer zu bestimmen ist, so dass die Ermittlung im Schritt SC8 von dem Benutzer durchgeführt wird. Wenn ein NEIN im Schritt SC8 ermittelt wird, dann muss die erforderliche Anzahl möglicher Haltepositionen noch registriert werden, und es gibt andere mögliche Haltepositionen, die noch registriert werden müssen, und der Ablauf geht über den Schritt SC6 weiter zum Schritt SC7, und die anderen Haltepositionen werden festgelegt und registriert. Das heißt, der Halteinformationsspeicherblock 42a ist in der Lage, mehrere Teile der Halteinformation zu speichern. Wenn andererseits im Schritt SC8 ein JA ermittelt wird, und die erforderliche Anzahl möglicher Haltepositionen registriert worden ist, dann geht der Ablauf zum Schritt SC9 weiter.
  • Im Schritt SC9 werden eine Startposition und eine Anordnungsposition, an der das Werkstück WK angeordnet wird, registriert. Die Startposition ist eine Position, an der der Sensor 2 in Bereitschaft versetzt wird, um ein Bild aufzunehmen.
  • Andererseits ist die Anordnungsposition eine Position, an der das Werkstück WK durch die Roboterhand HND angeordnet wird, und diese kann beispielsweise auf eine Position auf der Halterung STG festgelegt werden, wie in 1 gezeigt ist. Die Startposition und die Anordnungsposition können durch ein Verfahren festgelegt werden, in welchem Koordinaten und dergleichen numerisch eingegeben werden, oder alternativ können diese festgelegt werden, indem beispielsweise direkt mittels einer Maus oder dergleichen der Steuerungstafel 4 auf das Roboterhandmodell eingewirkt wird.
  • Nach Beendigung des Schritts SC9 geht der Ablauf weiter zum Schritt SC10. Im Schritt SC10 wird ein Durchgangspunkt, den das Werkstück WK durchläuft, wenn es sich von der Halteposition zu der Anordnungsposition bewegt, registriert. Es können zwei oder mehr Durchgangspunkte registriert werden. Der Durchgangspunkt kann für mehrere Orte registriert werden, und in diesem Falle können die Durchgangspunkte als Durchgangspunkt 1, Durchgangspunkt 2 oder dergleichen benannt und anschließend gespeichert werden. In diesem Beispiel erfolgt eine Beschreibung einer Konfiguration, wonach der Durchgangspunkt von dem Benutzer registriert wird, wobei die vorliegende Erfindung nicht auf eine derartige Konfiguration beschränkt ist, und es kann die Messeinrichtung 100 ausgebildet sein, den Durchgangspunkt zu berechnen und den Durchgangspunkt für den Benutzer anzuzeigen. In diesem Falle wird der Schritt SC10 übersprungen.
  • Der im Schritt SC10 registrierte Durchgangspunkt ist ein Punkt, den die Roboterhand HND oder das Werkstück WK durchläuft, bis das Werkstück WK an der Anordnungsposition angeordnet wird, nachdem die Roboterhand HND das Werkstück WK aufgenommen bzw. gehalten hat. Der Durchgangspunkt kann durch ein Verfahren festgelegt werden, in welchem Koordinaten oder dergleichen numerisch eingegeben werden, oder kann alternativ beispielsweise durch direktes Einwirken auf das Roboterhandmodul mittels einer Maus oder dergleichen der Steuerungstafel 4 festgelegt werden. Wenn der Durchgangspunkt festgelegt ist, werden die Bewegung des Arms ARM und die Bewegung der Roboterhand HND derart festgelegt, dass ein Teil der Roboterhand HND oder ein Teil des Werkstücks WK den Durchgangspunkt durchläuft, während das von der Roboterhand HND gehaltene Werkstück WK von der Startposition zu der Anordnungsposition transportiert wird.
  • Des Weiteren ist der Festlegungsblock 21 in der Lage, eine Bereitschaftsposition der Roboterhand HND und einen Durchgangspunkt auf einer Vorwärtsbahn festzulegen, die die Roboterhand HND durchläuft, bis die an der Bereitschaftsposition angeordnete Roboterhand HND das Werkstück WK in dem Behälter BX hält bzw. aufnimmt. Die Bereitschaftsposition der Roboterhand HND und der Durchgangspunkt auf der Vorwärtsbahn können durch ein Verfahren festgelegt werden, in welchem Koordinaten oder dergleichen numerisch eingegeben werden, oder können alternativ beispielsweise durch direktes Einwirken auf das Roboterhandmodell mittels einer Maus oder dergleichen der Steuerungstafel 4 festgelegt werden.
  • Zu beachten ist, dass der Durchgangspunkt als Roboterkoordinaten (XYZ, RxRyRz) bereitgestellt wird, wobei jedoch der Durchgangspunkt wünschenswerterweise als ein Gelenkwinkel des Arms ARM vorgegeben wird. Folglich wird die Armposition bzw. Armstellung des Roboters, die der Hindernisermittlung zu unterziehen ist, in eindeutiger Weise festgelegt.
  • Der Gelenkwinkel kann aus den Roboterkoordinaten, etwa der Halteposition in der Messeinrichtung 100 ermittelt und zur Robotersteuerung 6 übertragen werden. Die zugewiesene Position kann auf der Benutzerschnittstelle als Roboterkoordinaten oder als Gelenkwinkel zugewiesen werden. Der Mechanismus zum Ermitteln des Gelenkwinkels aus den Roboterkoordinaten wird als „inverse Kinematik“ bezeichnet und wird auf die Bahnerzeugung ebenso wie bei der Hindernisermittlung angewendet.
  • (Grundlegende Steuerung des Roboters) 7 ist eine Ansicht, die ein Beispiel eines Flussdiagramms einer grundlegenden Steuerung des Roboters RBT zeigt. Im Schritt SD1 nach dem Start erfasst der Messblock 20 ein Bild des Werkstücks WK, misst die Position und die Orientierung des Werkstücks WK und erzeugt Daten zur Verwendung beim Suchvorgang (Höhenbilddaten), der im Schritt SD2 auszuführen ist. Da der Messblock 20 eine dreidimensionale Messung ausführen kann, können die Daten zur Verwendung im Messvorgang eine Höheninformation enthalten.
  • Nachfolgend geht der Ablauf zum Schritt SD2 weiter, und der Suchvorgang zum Erfassen der Position und der Orientierung des Werkstücks WK wird an den Daten zur Verwendung im Suchvorgang, die im Schritt SD1 erzeugt wurden, ausgeführt. Der Suchvorgang führt eine Suche in den Daten zur Verwendung in einem Suchvorgang, die die Höheninformation enthalten, aus, und somit kann dies als eine dreidimensionale Suche bezeichnet werden. Auf der Grundlage des registrierten Suchmodells des Werkstücks WK können insbesondere die Orientierung und die Position des Werkstücks WK ermittelt werden, aber zunächst werden die Daten zur Verwendung im Suchvorgang bezüglich einer Position und Orientierung (X, Y, Z, RX, RY, RZ), in denen charakteristische Punkte des Suchmodells am besten übereinstimmen, gesucht. RX, RY, RZ bezeichnen entsprechend einen Drehwinkel um die X-Achse, einen Drehwinkel um die Y-Achse und einen Drehwinkel um die Z-Achse. Obwohl diverse Verfahren zur Darstellung derartiger Drehwinkel vorgeschlagen worden sind, werden hierin die Z-Y-X-Euler-Winkel verwendet. Ferner muss die Anzahl an übereinstimmenden Positionen und Orientierungen in jedem Suchmodell nicht eins sein, und es können mehrere übereinstimmende Positionen und Orientierungen gegebenenfalls erkannt werden.
  • Die Verwendung des Bildes des Werkstücks WK, das von jeder Oberfläche betrachtet wird, etwa in Form sechs orthogonaler Ansichten als Suchmodell, zur Verwendung in einer dreidimensionalen Suche hat den Vorteil, dass der Berechnungsvorgang der dreidimensionalen Suche im Vergleich zum einem Fall vereinfacht werden kann, in welchem eine perspektivische Ansicht verwendet wird, es kann ferner die Verarbeitungsbelastung reduziert werden, und die Verarbeitungsgeschwindigkeit kann damit erhöht werden. Ferner kann der angezeigte Zustand in einfacher Weise selbst während der Registrierung des Suchmodells betrachtet werden, und ist somit für den Benutzer visuell erkennbar. Ferner kann ein Ergebnis der Überlagerung und des Anzeigens jedes charakteristischen Punkts des Suchmodells zweidimensional oder dreidimensional an der Position des Ergebnisses der dreidimensionalen Suche angezeigt werden. In einer Weise, die davon abhängt, wie viele entsprechende charakteristische Punkte in den Suchdaten für den Suchvorgang vorhanden sind (beispielsweise ein Anteil charakteristischer Punkte in den Daten zur Verwendung in dem Suchvorgang mit einem Fehler eines gewissen Abstands oder weniger, und dergleichen), können sodann die Ergebnisse bewertet werden.
  • Als Ergebnis der Suche, ob ein registriertes Suchmodell vorhanden ist, wird, wenn kein Suchmodell in den Daten zur Verwendung in dem Suchvorgang vorhanden ist, d. h., wenn das Werkstück WK nicht erkannt werden kann, dieser Ablauf beendet.
  • Ferner ermittelt im Schritt SD2 ein Positionsermittlungsverarbeitungsblock 22, der in 2 gezeigt ist, die von der Roboterhand HND gehaltene Halteposition des Werkstücks WK, das in dem Arbeitsbereich angeordnet ist, auf der Grundlage eines Ergebnisses der Messung, die von dem Messblock 20 durchgeführt wird, und auf der Grundlage der Halteinformation, die in dem Halteinformationsspeicherblock 42a gespeichert ist.
  • Beispielsweise wird eine Ermittlung dahingehend durchgeführt, ob die dreidimensionale Punktwolke, die durch Pixeldaten jedes Punkts des Höhenbilds repräsentiert ist, d.h., die die Daten zur Verwendung in einem Suchvorgang sind, mit dem Roboterhandmodell überlappen, das im Voraus eingegeben wird. Vor dieser Hindernisermittlung werden die Position (Haltekoordinaten), an der die Roboterhand HND anzuordnen ist, und die Orientierung der Roboterhand HND in Bezug auf ein Werkstück WK, das durch die dreidimensionale Suche erkannt wird, auf der Grundlage der Position des Werkstücks WK und der Halteorientierung des registrierten Werkstücks WK berechnet. An der auf diese Weise berechneten Position wird eine Ermittlung dahingehend ausgeführt, ob die Roboterhand HND durch ein Umgebungsobjekt behindert wird. In dieser Hindernisermittlung ist es möglich zu ermitteln, ob die dreidimensionale Punktwolke mit einem Schnittmodell überlappt, indem das Schnittmodell der Roboterhand HND verwendet wird. Wenn beispielsweise alle dreidimensionalen Punkte einen Abstand zu dem Schnittmodell der Roboterhand HND haben, dann wird bestimmt, dass die dreidimensionale Punktwolke, d. h., das Höhenbild und das Handmodell HND, einander nicht behindern, während andererseits, wenn mindestens einer der dreidimensionalen Punkte innerhalb des Schnittmodells der Roboterhand HND liegt, oder wenn mindestens einer der dreidimensionalen Punkte mit einem Randbereich des Schnittmodells der Roboterhand HND in Kontakt ist, sodann ermittelt wird, dass die dreidimensionale Punktwolke, d. h., das Höhenbild und das Handmodell HND, einander behindern. Wenn keine Behinderung vorliegt, zeigt dies, dass die Haltelösung für das Werkstück WK erfolgreich berechnet worden ist, d. h., die Halteposition ist erfolgreich berechnet worden, und der Ablauf geht weiter zum Schritt SD3. Wenn andererseits eine Behinderung vorliegt, so zeigt dies, dass die Haltelösung für dieses Werkstück WK fehlerhaft berechnet ist, und dieser Ablauf wird beendet oder es wird ein Versuch unternommen, eine Haltelösung für ein weiteres Werkstück WK zu berechnen.
  • Ferner erzeugt im Schritt SD3 ein Bahnerzeugungsblock 23, der in 2 gezeigt ist, eine Bahn der Roboterhand HND ausgehend von der aktuellen Position der Roboterhand HND zu der im Schritt SD2 berechneten Halteposition über die Annäherungsposition und erzeugt ferner eine Bahn der Roboterhand HND ausgehend von der Startposition (Halteposition) zu der Anordnungsposition. Die in diesem Schritt SD3 erzeugte Bahn wird als eine Bahn erzeugt, die den Durchgangspunkt durchläuft. Femer kann die im SD3 erzeugte Bahn eine Bahn beinhalten, die nicht den Durchgangspunkt durchläuft.
  • Im Schritt SD4 gibt ein Ausgabeblock 24 die Koordinaten der Halteposition, der Anordnungsposition, des Durchgangspunkts und dergleichen aus. Die Robotersteuerung 6 empfängt die Koordinaten der Halteposition, der Anordnungsposition, des Durchgangspunkts und dergleichen, die von dem Ausgabeblock 24 ausgegeben werden, und erzeugt ein Steuersignal und gibt das Steuersignal , das auf diese Weise erzeugt wurde, an den Roboter RBT aus. Nachfolgend erfolgt im Schritt SD5 ein Betrieb des Roboters RBT gemäß dem Steuersignal, so dass das Werkstück WK durch die vorbestimmte Bahn transportiert wird.
  • Punkte, die von dem Bahnerzeugungsblock 23 an die Robotersteuerung 6 ausgegeben werden, beinhalten einen festen Durchgangspunkt (einen festen Punkt, der von dem Benutzer festgelegt wird, und die Annäherungsposition, die Halteposition und die zurückgezogene Position, die automatisch durch den Bahnerzeugungsblock 23 berechnet werden) und einen Zwischendurchgangspunkt für die Bahnerzeugung (einen Punkt, der automatisch von dem Bahnerzeugungsblock 23 berechnet wird). Als Durchgangspunkt, der an die Robotersteuerung 6 auszugeben ist, kann jeweils jeder Gelenkwert des Arms ARM oder es können XYZ und RxRyRz ausgegeben werden.
  • Wenn der Bahnerzeugungsblock 23 die Annäherungsposition, die Halteposition oder dergleichen ausgibt, ist es erforderlich, das Programm auf Seite der Robotersteuerung 6 zu erstellen, um ein Hindernis, etwa den Behälter BX, zu vermeiden, wodurch das Programm kompliziert wird und es für den Benutzer schwierig ist, das Programm anwendungsspezifisch zu erstellen. Jedoch hat in dem vorliegenden Beispiel die Tatsache, dass der Bahnerzeugungsblock 23 veranlasst wird, die gesamte Bewegung der Roboterhand HND zu erstellen und einige Zwischendurchgangspunkte an die Robotersteuerung 6 auszugeben, einen Vorteil dahingehend, dass die Programmierung auf Seite der Robotersteuerung 6 vereinfacht werden kann.
  • Da jedoch die Anzahl an Durchgangspunkten, die die Roboterhand HND durchlaufen muss, nicht festgelegt ist, sofern nicht die Bewegungsbahn des Roboters RBT tatsächlich erzeugt wird, können Durchgangspunkte nicht ermittelt werden, an denen die Robotersteuerung 6 die Roboterhand HND veranlassen muss, die Haltebewegung oder die Anordnungsbewegung auszuführen.
  • Wenn ferner der Benutzer die Anzahl fester Durchgangspunkte erhöht oder verringert, werden die Anzahl der Durchgangspunkte, die von der Messeinrichtung 100 ausgegeben werden, und die Anzahl der Durchgangspunkte, die von dem Programm auf Seite der Robotersteuerung 6 erwartet werden, unterschiedlich zueinander, sofern nicht eine Umprogrammierung auf Seite der Robotersteuerung 6 erfolgt. Daher sind jedes Mal bei einer Vergrößerung oder Verkleinerung der Anzahl an festen Durchgangspunkten durch den Benutzer Zeit und Aufwand erforderlich, um die Umprogrammierung vorzunehmen.
  • Ferner besitzt jeder feste Durchgangspunkt ein eindeutiges Attribut, etwa in Form von „Punkt an welchem die Haltebewegung auszuführen ist“ oder „Punkt, an welchem eine Anordnungsbewegung auszuführen ist“. Wenn beispielsweise der Durchgangspunkt auf Seite der Messeinrichtung 100 geändert wird, wird gegebenenfalls die Haltebewegung oder dergleichen an einer unerwarteten Position ausgeführt, sofern nicht auf Seite der Robotersteuerung 6 die entsprechende Änderung durchgeführt wird, wodurch ebenfalls die Programmerzeugung schwierig wird.
  • Um ein derartiges Problem zu lösen, ist in dem vorliegenden Beispiel der Positionsermittlungsverarbeitungsblock 22 so ausgebildet, dass er nicht nur auf der Grundlage eines Ergebnisses der Messung, die von dem Messblock 20 durchgeführt wird, und auf der Grundlage der Halteinformation, die in dem Halteinformationsspeicherblock 42a gespeichert ist, die von der Roboterhand HND gehaltene Halteposition des Werkstücks WK, das in dem Arbeitsbereich liegt, ermittelt, sondern dass er auch die Koordinaten des festen Durchgangspunkts, der ein beliebiges einzelnes Attribut hat, etwa in Form der Annäherungsposition der Roboterhand HND zum Halten der Halteposition, die auf diese Weise ermittelt ist, der Halteposition oder der zurückgezogenen Position nach dem Halten, ermittelt. Anschließend gibt der Ausgabeblock an die mit dem Roboter RBT verbundene Robotersteuerung 6 die Koordinaten des festen Durchgangspunkts, der durch den Positionsermittlungsverarbeitungsblock 22 bestimmt ist, und die Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, aus.
  • (Details der Betriebsweise der Messeinrichtung 100) Im Weiteren werden Details der Betriebsweise der Messeinrichtung 100 gemäß dem vorliegenden Beispiel beschrieben. Wie in 2 gezeigt ist, beinhaltet die Messeinrichtung 100 einen Benutzerschnittstellenerzeugungsblock 25. Der Benutzerschnittstellenerzeugungsblock 25 ist ein Block, der diverse Benutzerschnittstellen für Einstellungen bzw. Festlegungen der Messeinrichtung 100, eine Benutzerschnittstelle für eine Modellregistrierung, ein Fenster oder dergleichen, erzeugt und den Anzeigeblock 3 veranlasst, ein(e) derartige(s) Schnittstelle oder Fenster anzuzeigen.
  • 8 ist eine Ansicht, die ein Beispiel einer Benutzerschnittstelle zur Einstellung bzw. Festlegung der Roboterverbindung 50 zeigt, wobei die Schnittstelle durch den Benutzerschnittstellenerzeugungsblock 25 erzeugt wird. Die Benutzerschnittstelle für die Einstellung bzw. Festlegung der Roboterverbindung 50 beinhaltet einen Verbindungseinstellungsbereich 50a zur Festlegung eines Herstellers und eines Kommunikationssystems, einen Kommunikationseinstellungsbereich 50b für Netzwerkeinstellungen und dergleichen, einen Betriebseinstellungsbereich 50c zum Bestimmen, ob der Betrieb des Roboters RBT durch die Messeinrichtung 100 zu aktivieren ist oder nicht, und einen Modelleinstellungsbereich 50d zur Festlegung eines Modells des Roboters RBT. Jede Information kann in einen entsprechenden Bereich der Bereiche 50a bis 50d durch Betätigung der Steuerungstafel 4 eingegeben werden. Wenn beispielsweise das Modell des Roboters RBT in dem Modelleinstellungsbereich 50d eingegeben wird, wird eine Verbindung mit der Robotersteuerung 6, die den auf diese Weise eingegebenen Roboter RBT steuert, ermöglicht, und es können auch diverse Datenelemente des eingegebenen Roboters RBT (der Bewegungsbereich des Arms ARM, und dergleichen) automatisch eingelesen werden. Ferner kann das Kommunikationssystem der Messeinrichtung 100 automatisch zu einem System abgeändert werden, das für den Hersteller geeignet ist. Das heißt, beispielsweise sind die Information über einen Hauptroboter RBT, der von einem Haupthersteller des Roboters RBT hergestellt ist, und das Kommunikationssystem in der Speichereinrichtung 42 oder dergleichen im Voraus gespeichert, so dass sie ausgelesen und beim Eingabevorgang des Benutzers verwendet werden können, wodurch die Notwendigkeit des einzelnen Eingebens der Information über den Roboter RBT für die Einstellung entfällt.
  • Wenn die Eingabe über jeweils die Bereiche 50a bis 50d der Benutzerschnittstelle für die Einstellung der Roboterverbindung 50 beendet ist, dann erzeugt der Benutzerschnittstellenerzeugungsblock 25 eine Modellbestätigungsbenutzerschnittstelle 51, die in 9 gezeigt ist, und zeigt die Modellbestätigungsbenutzerschnittstelle 51 auf dem Anzeigeblock 3 an. Die Modellbestätigungsbenutzerschnittstelle 51 beinhaltet einen Roboteranzeigebereich 51a, in welchem ein dreidimensionales Bild angezeigt wird, das den in der Benutzerschnittstelle zur Einstellung der Roboterverbindung eingegebenen Roboter RBT zeigt, und enthält ferner einen Modellanzeigebereich 51b, in welchem der Hersteller und das Modell angezeigt werden, und beinhaltet ferner einen Genauigkeitsbestätigungsbereich 51c, in welchem die Genauigkeit der Position und der Orientierung bestätigt werden. Der Benutzer kann mittels der Modellbestätigungsbenutzerschnittstelle 51 bestätigen, ob der ausgewählte Roboter RBT der richtige ist oder nicht.
  • (Details der Benutzereinstellung, wenn eine Bahn erzeugt wird) 10 ist eine Ansicht, die ein Beispiel einer Benutzereinstellungsbenutzerschnittstelle 52 zeigt. Die Benutzereinstellungsbenutzerschnittstelle 52 beinhaltet einen Roboteranzeigebereich 52a, in welchem ein dreidimensionales Bild, das den ausgewählten Roboter RBT zeigt, angezeigt wird, einen Auswahlbereich 52b, in welchem eine Auswahl aus diversen Einstelloperationen vorgenommen wird, und einen Reihenfolgeanzeigebereich 52c, in welchem eine Bewegungsreihenfolge der Roboterhand HND angezeigt wird. In dem Reihenfolgeanzeigebereich 52c werden feste Durchgangspunkte, etwa die Annäherungsposition, die Halteposition, die zurückgezogene Position, und dergleichen, und Zwischendurchgangspunkte, die automatisch durch Bahnerzeugungsblock 23 berechnet werden, zusammen mit ihren entsprechenden Bezeichnungen angezeigt. Es können Bezeichnungen zum einfacheren Verständnis für den Benutzer verwendet werden, etwa „Annäherungsposition“, „zurückgezogene Position“, „Halteposition“ und „zugewiesene Position“. Die in dem Reihenfolgeanzeigebereich 52c angezeigten Durchgangspunkte werden in dem Roboteranzeigebereich 52a in einem Zustand angezeigt, der die relative Positionsbeziehung in Bezug auf den Roboter RBT erkennbar macht.
  • Der Reihenfolgeanzeigebereich 52c ist ausgebildet, mehrere feste Durchgangspunkte anzuzeigen, wenn der Positionsermittlungsverarbeitungsblock 22 die mehreren festen Durchgangspunkte ermittelt, und eine Durchlaufreihenfolge der festen Durchgangspunkte anzuzeigen. Das heißt, in dem Reihenfolgeanzeigebereich 52c ist die „Startposition“, die eine Position ist, an der die Roboterhand HND eine Bewegung startet, ganz oben angeordnet, und mehrere Durchgangspunkte sind in der zu durchlaufenden Reihenfolge unter der „Startposition“ aufgeführt. Ein Anzeigemodus der festen Durchgangspunkte und der Zwischendurchgangspunkte (im Weiteren zusammen als Durchgangspunkte bezeichnet) ist nicht auf den in 10 gezeigten Modus beschränkt, und es kann beispielsweise ein Modus angewendet werden, in welchem die festen Durchgangspunkte und die Zwischendurchgangspunkte in der Reihenfolge entsprechend der Links-Rechts-Richtung angeordnet sind. Eine Kurve oder eine gerade Linie, die einen Abschnitt zwischen den festen Durchgangspunkten verbindet, ist eine Menge aus Zwischendurchgangspunkten, und ist daher als gleichbedeutend zu dem Zwischendurchgangspunkt zu betrachten.
  • Der Reihenfolgeanzeigebereich 52c beinhaltet einen Hinzufügeknopf 52d, der zu betätigen ist, um einen Durchgangspunkt hinzuzufügen, und beinhaltet einen Einfügeknopf 52e. Ein Bearbeitungsknopf 52f, der zu betätigen ist, um einen Durchgangspunkt zu bearbeiten, ist ebenfalls in dem Reihenfolgeanzeigebereich 52c vorgesehen. Wenn der Benutzer den Hinzufügeknopf 52d oder den Einfügeknopf 52e betätigt, kann ein Durchgangspunkt an einer gewünschten Position hinzugefügt oder eingefügt werden. Wenn der Durchgangspunkt hinzugefügt wird, wie in 11 gezeigt ist, dann erzeugt der Benutzerschnittstellenerzeugungsblock 52 ein Attributinformationseingabefenster 53, in welchem die Attributinformation über den Durchgangspunkt eingegeben wird, und er überlagert das Attributinformationseingabefenster 53 dem Reihenfolgeanzeigebereich 52c. Dieses Attributinformationseingabefenster 53 ermöglicht ein individuelles Bearbeiten mehrerer fester Durchgangspunkte. Zu beachten ist, dass ein unnötiger fester Durchgangspunkt gelöscht werden kann.
  • Die Attributinformation beinhaltet die Annäherungsposition, die Halteposition, die zurückgezogene Position nach dem Halten, die Anordnungsposition, die relative Position und dergleichen für die Roboterhand HND. In dem Attributinformationseingabefenster 53 wird jeder Teil der Attributinformation in auswählbarer Weise angezeigt. Das heißt, ein einzelner fester Durchgangspunkt kann einem einzelnen Element einer Attributinformation zugeordnet werden. Ein Eingabeblock, der verwendet wird, die Attributinformation über den Durchgangspunkt einzugeben, kann aus der Steuerungstafel 4 aufgebaut sein, die in der Lage ist, einen Eingabevorgang in dem Attributinformationseingabefenster 43 auszuführen.
  • Wenn ein OK-Knopf 53a des Attributinformationseingabefensters 53 gedrückt wird, dann wird die Auswahl angewendet, und der feste Durchgangspunkt und die Attributinformation werden in der Speichereinrichtung 42 zugeordnet zueinander gespeichert, und wenn ein Löschknopf 53b gedrückt wird, dann wird die Auswahl verworfen. Wenn der OK-Knopf 53a oder der Löschknopf 53b gedrückt werden, dann wird das Attributinformationseingabefenster 53 geschlossen.
  • Wenn der Bearbeitungsknopf 52f, der in 10 gezeigt ist, gedrückt wird, dann erzeugt der Benutzerschnittstellenerzeugungsblock 25 ein Positionsfestlegungsfenster 54, das in 12 gezeigt ist, und überlagert der Benutzereinstellungsbenutzerschnittstelle 52 das Positionsfestlegungsfenster 54. Das Positionsfestlegungsfenster 54 beinhaltet einen Bezeichnungsanzeigebereich 54a, in welchem eine Bezeichnung eines zu bearbeitenden festen Durchgangspunkts angezeigt wird, und enthält einen Positions- und Orientierungszuweisungsbereich 54b, in welchem die Position des festen Durchgangspunkts oder die Orientierung der Roboterhand HND an dem festen Durchgangspunkt zugewiesen wird. Eine Bezeichnung, die in dem Bezeichnungsanzeigebereich 54a angezeigt wird, kann geändert werden. Ferner ist es in dem Positions- und Orientierungszuweisungsbereich 54b möglich, eine Auswahl zu treffen, ob die Position oder die Orientierung in Form von orthogonalen Koordinaten oder jeweils eines Gelenkwinkels zuzuweisen ist, und es kann eine Aufnahmebereitschaftsposition zugewiesen werden. Die Aufnahmebereitschaftsposition ist eine Position, an der die Roboterhand HND auf eine Position zurückbezogen werden kann, die außerhalb eines Sichtfeldbereichs des Sensors 2 liegt, wenn der Sensor 2 ein Bild des Werkstücks WK aufnimmt.
  • Wen ein Weiter-Knopf 54c des Positionsfestlegungsfensters 54 betätigt wird, dann erzeugt der Benutzerschnittstellenerzeugungsblock 25 ein Bewegungs/Hindernis-Ermittlungsfestlegungsfenster 55, das in 13 gezeigt ist, und überlagert der Benutzereinstellungsbenutzerschnittstelle 52 das Bewegungs/Hindernis-Ermittlungsfestlegungsfenster 55. Das Bewegungs/Hindemis-Ermittlungsfestlegungsfenster 55 beinhaltet einen Bewegungsfestlegungsbereich 55a und einen Hindemisermittlungsfestlegungsbereich 55b. In dem Bewegungsfestlegungsbereich 55a ist es möglich, eine Auswahl zu treffen, ob eine Bahn, die einen Durchgangspunkt durchläuft, zu erzeugen ist oder nicht.
  • Wenn keine Bahn erzeugt wird, ist es möglich, eine Bewegung durch eine durch Gelenk interpolierte Bewegung oder eine Bewegung durch eine linear interpolierte Bewegung auszuwählen. Die durch Gelenk interpolierte Bewegung ist eine lineare Bewegung in dem Gelenkwinkelraum, jedoch ist sie in dem tatsächlichen dreidimensionalen Raum ein Verlauf in einer gekrümmten Linie. Die linear interpolierte Bewegung ist das Gegenteil der durch Gelenk interpolierten Bewegung. Da alle Koordinaten intern auf der Grundlage des Winkels jedes Gelenks verwaltet sind, wird gemäß der vorliegenden Ausführungsform die linear interpolierte Bewegung in striktem Sinne erreicht, indem eine Gruppe aus durch Gelenk interpolierten Bewegungen jeweils einem kleinen Abschnitt zugeordnet wird. In diesem Falle werden mehrere Durchgangspunkte, die als eine ausreichend gerade Linie betrachtet werden können, erzeugt (ein Abschnitt zwischen den auf diese Weise erzeugten Durchgangspunkten entspricht einer durch Gelenk interpolierten Bewegung). Obwohl die Ermittlung zum Zeitpunkt des Einstellens erfolgt, kann im Falle der Erzeugung einer Bahn ein Durchgangspunkt, den der Benutzer nicht explizit festlegt, erzeugt werden. Zu beachten ist, dass obwohl die Hindernisermittlung selbst dann durchgeführt werden kann, wenn keine Bahn erzeugt wird, eine Bahn, die ein Hindernis vermeidet, nicht erzeugt werden kann, und wenn daher eine Behinderung auf der Bahn auftritt, ist die Erzeugung der Bahn als Ganzes fehlerhaft. Wenn beispielsweise eine Bahn erzeugt wird, dann kann der Bahnerzeugungsblock 23 automatisch eine Bahn erzeugen, die durch einen Durchgangspunkt verläuft, und er kann die Bahn in dem Roboteranzeigebereich 52a anzeigen. Wenn die Bahn automatisch erzeugt wird, wird ein Zwischendurchgangspunkt automatisch erzeugt.
  • In dem Hindernisermittlungsfestlegungsbereich 55b kann Randinformation zur Verwendung bei der Ermittlung von Hindernissen numerisch (mm) eingegeben werden. Wenn ein Abstand zwischen der Roboterhand HND und einem Hindernis kleiner als der eingegebene Wert wird, wird dementsprechend ermittelt bzw. bestimmt, dass die Roboterhand HND und das Hindernis einander behindern.
  • 14 ist eine Ansicht, die eine Prozessabfolge der Messeinrichtung 100, der Robotersteuerung 6 und des Roboters RBT zeigt. In S100 in dem Prozessablaufdiagramm gibt die Robotersteuerung 6 an den Bahnerzeugungsblock 23 der Messeinrichtung 100 eine Anfrage bzw. Anforderung nach einem Bahnerzeugungsergebnis aus. In Reaktion auf diese Anforderung erzeugt der Bahnerzeugungsblock 23 eine Bahn und bewirkt, dass der Ausgabeblock 24 an die Robotersteuerung 6 die Anzahl an festen Durchgangspunkten, die Anzahl an Durchgangspunkten zwischen den festen Durchgangspunkten, das Attribut jedes festen Durchgangspunkts, die Koordinaten jedes Durchgangspunkts, das Vorhandensein oder Fehlen einer speziellen Rückzugsposition, und dergleichen ausgibt.
  • Dabei kann die Anzahl an festen Durchgangspunkten dynamisch geändert werden. Wenn beispielsweise die Anzahl der Durchgangspunkte auf der in 10 gezeigten Benutzereinstellungsbenutzerschnittstelle 52 zunimmt, dann steigt auch die Anzahl fester Durchgangspunkte, die an die Robotersteuerung 6 gesendet werden muss, entsprechend an, und wenn die Anzahl fester Durchgangspunkte auf der Benutzereinstellungsbenutzerschnittstelle 52 kleiner wird, dann wird demgemäß auch die Anzahl fester Durchgangspunkte, die an die Robotersteuerung 6 zu senden ist, kleiner. Gemäß der vorliegenden Ausführungsform wird die Attributinformation über jeden festen Durchgangspunkt ausgegeben, oder alternativ wird ein Index jedes festen Durchgangspunkts, der einem jeweiligen Element einer Attributinformation zugeordnet ist, ausgegeben.
  • S101, der in 14 gezeigt ist, ist ein Prozess, der mit sooft wiederholt wird, wie dies der Anzahl an festen Durchgangspunkten entspricht. In diesem Vorgang ermittelt zunächst in S102 die Robotersteuerung 6 einen gewünschten festen Durchgangspunkt. Anschließend wird in S103 ein Befehl für eine Bewegung zu dem Durchgangspunkt an den Roboter RBT ausgegeben. In S104 wird ein Attribut auf der Grundlage der dem aktuellen festen Durchgangspunkt zugeordneten Attributinformation ermittelt. In S105 wird eine Aktionsausführungsdatei, die dem in S104 ermittelten Attribut entspricht, aufgerufen. Die Aktionsausführungsdatei ist beispielsweise ein Halten, ein Anordnen, oder dergleichen. Anschließend wird in S106 eine Aktion an den Roboter RBT ausgegeben. Anschließend wird in S102 ein weiterer fester Durchgangspunkt zugewiesen. S102 bis S106 werden entsprechend der Anzahl fester Durchgangspunkte wiederholt, wodurch das Werkstück WK transportiert wird.
  • (Robotersteuerungspseudoprogramm) Als Nächstes wird ein Robotersteuerungspseudoprogramm beschrieben. Das Robotersteuerungspseudoprogramm beinhaltet ein Verfahren (erstes Verfahren), in welchem die Messeinrichtung 100 die Attributinformation des festen Durchgangspunkts zugeordnet zu dem festen Durchgangspunkt registriert bzw. aufzeichnet und die Attributinformation ausgibt, und auf Seite der Robotersteuerung 6 wird die Attributinformation verarbeitet; und das Programm beinhaltet ferner ein Verfahren (zweites Verfahren), in welchem auf Seite der Messeinrichtung 100 die Attributinformation des festen Durchgangspunkts entsprechend verarbeitet wird, um die Attributinformation in einen Befehl für den Roboter RBT umzuwandeln, und auf Seite der Robotersteuerung 6 wird ein empfangener Befehl eins-zu-eins ausgeführt. Danach werden spezielle Beispiele des ersten Verfahrens und des zweiten Verfahrens beschrieben.
  • (Spezielles Beispiel des ersten Verfahrens) Zunächst zeigt 15A ein Beispiel eines Hauptprogramms für den Fall, dass die den festen Durchgangspunkt betreffende Attributinformation zugeordnet zu dem festen Durchgangspunkt in der Benutzerschnittstelle registriert werden kann. In dem vorliegenden Beispiel nimmt der Messblock 20 eine Messung vor, und wenn es kein Messergebnis gibt, dann wird das Programm beendet. Wenn andererseits ein Messergebnis vorliegt, wird der nachfolgende Prozess ausgeführt. Beispielsweise wird bei Empfang eines Bahnerzeugungsergebnisses die Roboterhand HND zu einem festen Durchgangspunkt oder einem Zwischendurchgangspunkt bewegt, das Attribut des aktuellen festen Durchgangspunkts wird ermittelt und es wird eine Aktion entsprechend dem Attribut ausgegeben. Dabei wird, wie in 15B gezeigt ist, ein Aktionsprogramm als ein weiteres Programm aufgerufen und ausgeführt.
  • Es wird nun ein Fall beschrieben, in welchem die Attributinformation nicht zugeordnet und in der Benutzerschnittstelle registriert werden kann. Wenn Durchgangspunkte in der Reihenfolge festgelegt werden, die in dem Reihenfolgeanzeigebereich 52c in 10 gezeigt ist, wird ein Hauptprogramm, wie es in einem Beispiel der 16 gezeigt ist, erzeugt. Feste Durchgangspunkte 1 bis 5 des Hauptprogramms, das in 16 gezeigt ist, entsprechen der „Annäherungsposition“, der „Halteposition“, der „zurückgezogenen Position“ und den zwei „zugewiesenen Positionen“ in dem Reihenfolgeanzeigebereich 52c, der in 10 gezeigt ist, und es wird auf der Grundlage der Attributinformation jedes Durchgangspunkts eine Aktion ausgegeben.
  • Wie in 17 gezeigt ist, kann ein fester Durchgangspunkt (zugewiesene Position) vor der Annäherungsposition hinzugefügt werden, und es wird in diesem Falle beschrieben, wie sich das Hauptprogramm ändert. 17 zeigt einen Fall, in welchem die „zugewiesene Position“, die in Schwarz gezeigt ist, dem Reihenfolgeanzeigebereich 52c hinzugefügt wird. Wenn die „zugewiesene Position“ hinzugefügt wird, gibt der Benutzer die Attributinformation über das Attributinformationseingabefenster 53, das in 11 gezeigt ist, ein, so dass die auf diese Weise hinzugefügte „zugewiesene Position“ bereits der Attributinformation zugeordnet ist. In diesem Falle löscht das Hauptprogramm „HAND ÖFFNEN" in Zeile 11 und schreibt in die Zeile 16 „HAND ÖFFNEN", wie in 18 gezeigt ist. Anschließend wird die Ausführungshäufigkeit des Prozesses gemäß der Anzahl der hinzugefügten Punkte in Zeile 33 erhöht. Zu beachten ist, dass für die Halteposition „HAND SCHLIESSEN" angewendet wird.
  • Wie zuvor beschrieben ist, können in der Messeinrichtung 100 der Durchgangspunkt und die Attributinformation zugeordnet zueinander registriert und ausgegeben werden, und auf Seite der Robotersteuerung 6 wird die Attributinformation, die dem Durchgangspunkt zugeordnet ist, übersetzt und verarbeitet. In dem vorliegenden Beispiel kann das Bereitstellen zweier Felder aus Durchgangspunkten und Attributinformationen, die den Durchgangspunkten zugeordnet sind, zu einem einfachen Roboterprogramm führen. Ein Beispiel davon, wie Daten in diesem Falle zu halten sind, ist in 19 gezeigt.
  • (Spezielles Beispiel des zweiten Verfahrens) Als Nächstes wird eine Beschreibung des zweiten Verfahrens angegeben, in welchem die Attributinformation über den festen Durchgangspunkt bearbeitet und in einen Befehl auf Seite der Messeinrichtung 100 umgewandelt wird, und der Befehl wird auf Seite der Robotersteuerung 6 eins-zu-eins ausgeführt. In diesem Falle sendet die Messeinrichtung 100 Befehlsinformation und Positionsinformation des Durchgangspunkts an die Robotersteuerung 6, wodurch die Robotersteuerung 6 veranlasst wird, Datenfelder zu unterhalten, wie in 20 gezeigt ist. In 20 bedeutet „Durchgangspunkt“ eine Anforderung, einen Durchgangspunkt aufzufinden, und „Hand“ bedeutet eine Anforderung die Roboterhand HND zu betätigen.
  • Die Robotersteuerung 6 kann mit Verweis auf ein Befehlsfeld, das in 20 gezeigt ist, ermitteln, was als Nächstes geschehen soll. Das Hauptprogramm ist in diesem Falle in 21 gezeigt, wobei ein Bewegungsbefehl in Zeile 11 an den Roboter RBT ausgegeben wird, und anschließend wird eine Handaktion in Zeile 13 an die Roboterhand HND ausgegeben. Wie ferner in 22 gezeigt ist, können in das Befehlsfeld Durchgangspunktdaten eingefügt werden.
  • (Spezielle Bewegungsfunktion) In dem vorliegenden Beispiel wird eine spezielle Bewegungsfunktion implementiert, die es möglich macht, dass das Werkstück WK durch die Roboterhand HND herangezogen oder angehoben wird. Beispielsweise wird, wie in 23 gezeigt ist, angenommen, dass das Werkstück WK in der Nähe einer Wandfläche des Behälters BX liegt, und die Roboterhand HND mit der Wandfläche des Behälters BX in Kontakt tritt, wenn der Versuch unternommen wird, die Roboterhand HND zu veranlassen, die mögliche Halteposition zu halten bzw. einzunehmen, so dass sich ein Fehler ergibt, wenn die mögliche Halteposition gehalten werden soll. Ein derartiger Fall kann auftreten, wenn mehrere mögliche Haltepositionen für jedes Werkstück WK festgelegt sind. Indem in 23 gezeigten Beispiel kommt die Roboterhand HND mit der Wandfläche des Behälters BX innerhalb eines Kreises in Kontakt, der durch ein Bezugszeichen 60 bezeichnet ist. In diesem Falle hält die Roboterhand HND einen Teil des Werkstücks WK, der gehalten werden kann, und bewegt das Werkstück WK, und hält anschließend eine vorgegebene mögliche Halteposition und transportiert das Werkstück WK zu der Anordnungsposition.
  • Konventionell wird die zuvor beschriebene Bewegung durch einen Verzweigungsvorgang auf Seite des Roboterprogramms erreicht, das bei Empfang einer Marke aus einer Messeinrichtung oder dergleichen ausgeführt wird, und die angibt, bei welcher Position das Werkstück WK gehalten wird. Um diese Funktion zu implementieren, müssen die Steuerung der Robotersteuerung 6 und die Steuerung der Messeinrichtung entsprechend konfiguriert werden, wodurch die Wartungseigenschaften beeinträchtigt werden. Die Komplexität des Roboterprogramms vergrößert ferner die Abhängigkeit von den Fähigkeiten des Benutzers.
  • Die spezielle Bewegungsfunktion in dem vorliegenden Beispiel unterscheidet sich vom dem Steuerungsablauf im Stand der Technik dahingehend, dass die Funktion alleine über das Konfigurieren der Messeinrichtung 100 implementiert werden kann. Im Weiteren wird eine spezielle Beschreibung mit Verweis auf eine Benutzerschnittstelle angegeben.
  • 24 ist eine Ansicht, die ein Beispiel einer Benutzerschnittstelle zur Einstellung einer speziellen Bewegungsfunktion 70 zeigt, die von dem Benutzerschnittstellenerzeugungsblock 25 erzeugt und auf dem Anzeigeblock 3 angezeigt wird. Die Benutzerschnittstelle zur Einstellung einer speziellen Bewegungsfunktion 70 beinhaltet einen Anzeigebereich 70a, der in der Lage ist, die Roboterhand HND und das Werkstück WK anzuzeigen. Dieser Benutzerschnittstelle zur Einstellung einer speziellen Bewegungsfunktion 70 wird ein Rückzugsfestlegungsfenster 71 überlagert und dieses wird als ein separates Fenster angezeigt. Das Rückzugsfestlegungsfenster 71 beinhaltet einen Auswahlbereich 71a, der eine Auswahl als die Rückzugsbewegung eine Bewegung zum Anheben des Werkstücks WK oder eine Bewegung zum Heranziehen des Werkstücks WK ermöglicht, und das Fenster beinhaltet ferner einen Bewegungsfestlegungsbereich 71b. In dem Bewegungsfestlegungsbereich 71b kann eine Höhe, wenn das Werkstück WK angehoben wird, in Einheiten von mm festgelegt werden. Ferner können in dem Bewegungsfestlegungsbereich 71b als Einzelheiten der Rückzugsbewegung beispielsweise eine Bewegung zum Anheben des Werkstücks WK in schräger Weise und zum anschließenden Bewegen des Werkstücks WK weg von einer Innenwand des Behälters BX, eine Bewegung zum Bewegen des Werkstücks WK weg von einer Innenwand des Behälters BX und zum anschließenden Anheben des Werkstücks WK und dergleichen festgelegt werden. Ferner ist es auch möglich, einen Abstand festzulegen, der anzeigt, wie weit das Werkstück WK von der Innenwand des Behälters BX entfernt ist.
  • Wie ferner in 25 gezeigt ist, kann eine Reihenfolgefestlegungsbenutzerschnittstelle 72 durch den Benutzerschnittstellenerzeugungsblock 25 erzeugt und auf dem Anzeigeblock 3 angezeigt werden. Die Reihenfolgefestlegungsbenutzerschnittstelle 72 beinhaltet einen Basiseinstellungsbereich 72a und einen Haltepositionseinstellungsbereich 72b. In dem Basiseinstellungsbereich 72a ist es möglich, die Priorität des Haltens während der Ziehbewegung zu verkleinern. Die Halteposition kann in dem Haltepositionseinstellbereich 72b eingestellt werden.
  • Die Ziehbewegung und die Hebebewegung sind spezielle Bewegungen, die nicht zum Transportieren zu der Anordnungsposition gehören. Ein fester Durchgangspunkt mit einer Attributinformation über die Halteposition kann der speziellen Bewegungsinformation zugeordnet werden, die die Roboterhand HND veranlasst, die spezielle Bewegung auszuführen. Wenn beispielsweise der feste Durchgangspunkt mit der Attributinformation über die Halteposition einer Information zugeordnet wird, die bewirkt, dass die Ziehbewegung ausgeführt wird, dann gibt der Ausgabeblock 24 die spezielle Bewegungsinformation an die Robotersteuerung 6 aus, wenn die Koordinaten des festen Durchgangspunkts, der der speziellen Bewegungsinformation zugeordnet ist, ausgegeben werden. Dies macht es möglich, dass die Roboterhand HND die Ziehbewegung ausführt, wenn die Roboterhand HND den festen Durchgangspunkt erreicht. Es ist auch möglich, eine spezielle Bahn festzulegen, etwa eine Bahn, die zu der Anfangsposition zurückkehrt, ohne dass eine Bewegung zu der Anordnungsposition erfolgt, wenn die Roboterhand HND die Ziehbewegung ausführt. Auch in diesem Falle folgt die Robotersteuerung 6 der Bahn ohne eine Einwirkung des Benutzers, wodurch die Belastung für den Benutzer reduziert wird. Das heißt, sobald die Einstellung auf Seite der Messeinrichtung 100 vorgenommen ist, wird die auszugebende Bahn zu einer Bahn, die zu der Anfangsposition zurückkehrt, so dass weder eine Änderung noch eine Verzweigung auf Seite des Roboterprogramms erforderlich sind, und lediglich der ÖFFNEN/SCHLIESSEN-Befehl der Roboterhand HND muss auf Seite des Roboterprogramms für die Ziehbewegung geändert werden.
  • (Ausführung und Wirkung der Ausführungsform) Wie zuvor beschrieben ist, wird, wenn die Position und Orientierung des Werkstücks WK, das in dem Arbeitsbereich liegt, durch den Messblock 20 gemessen werden, die Halteposition des von der Roboterhand HND gehaltenen Werkstücks WK auf der Grundlage eines Ergebnisses der Messung und auf der Grundlage einer vorgespeicherten Halteinformation, die eine mögliche Halteposition des Werkstücks WK zeigt, ermittelt. Es werden auch die Koordinaten des festen Durchgangspunkts, der ein einziges Attribut hat, etwa in Form der Annäherungsposition der Roboterhand HND zum Halten der ermittelten Halteposition, der Halteposition oder der zurückgezogenen Position nach dem Halten, ermittelt. Da die Koordinaten des festen Durchgangspunkts und die Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, von der Messeinrichtung 100 an die Robotersteuerung 6 ausgegeben werden, muss der Benutzer lediglich die Bahneinstellung der Roboterhand HND ohne Berücksichtigung einer Zuordnung auf Seite der Robotersteuerung 6 bearbeiten und muss lediglich die Bewegung der Roboterhand HND, ohne Berücksichtigung der Bewegung des Roboters RBT selbst, verifizieren. Anders ausgedrückt, der Benutzer kann das Roboterprogramm einfach durch Beschreibung der Bewegung der Roboterhand HND in Übereinstimmung mit der jeweiligen Attributinformation erzeugen.
  • Die zuvor beschriebenen Ausführungsformen sind in jeglicher Hinsicht nur Beispiele und sollten nicht als beschränkend erachtet werden. Ferner liegen alle Modifizierungen und Änderungen, die in den Äquivalenzbereich der Ansprüche fallen, innerhalb des Schutzbereichs der vorliegenden Erfindung.
  • Wie zuvor beschrieben ist, ist die Messeinrichtung gemäß der vorliegenden Erfindung auf beispielsweise einen Fall anwendbar, in welchem ein in einem Arbeitsbereich angeordnetes Werkstück gemessen wird, und ein Roboter, der das Werkstück transportiert, wird entsprechend gesteuert.
  • 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 Patentliteratur
    • JP 2018144159 A [0002, 0003]

Claims (8)

  1. Eine Messeinrichtung, die ein in einem Arbeitsbereich angeordnetes Werkstück misst und einen Roboter steuert, der das Werkstück transportiert, wobei die Messeinrichtung aufweist: einen Messblock, der eine Position und Orientierung des in dem Arbeitsbereich angeordneten Werkstücks misst; einen Halteinformationsspeicherblock, der Halteinformation speichert, die eine mögliche Halteposition des von einer Roboterhand des Roboters gehaltenen Werkstücks zeigt; einen Positionsermittlungsverarbeitungsblock, der eine von der Roboterhand gehaltene Halteposition des in dem Arbeitsbereich angeordneten Werkstücks ermittelt und Koordinaten eines festen Durchgangspunkts, der ein einziges Attribut hat, auf der Grundlage eines Ergebnisses der von dem Messblock durchgeführten Messung und auf der Grundlage der in dem Halteinformationsspeicherblock gespeicherten Halteinformation ermittelt, wobei der feste Durchgangspunkt eine Annäherungsposition der Roboterhand zum Halten der Halteposition, die Halteposition oder eine zurückgezogene Position nach dem Halten ist; und einen Ausgabeblock, der an eine mit dem Roboter verbundene Robotersteuerung die Koordinaten des durch den Positionsermittlungsverarbeitungsblock ermittelten festen Durchgangspunkts und Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, ausgibt.
  2. Die Messeinrichtung nach Anspruch 1, die ferner aufweist: einen Benutzerschnittstellenerzeugungsblock, der eine Benutzerschnittstelle erzeugt, die, wenn mehrere der festen Durchgangspunkte durch den Positionsermittlungsverarbeitungsblock ermittelt werden, eine Reihenfolge des Durchlaufens der mehreren festen Durchgangspunkte zeigt und ein individuelles Bearbeiten der mehreren festen Durchgangspunkte ermöglicht; und einen Anzeigeblock, der die von dem Benutzerschnittstellenerzeugungsblock erzeugte Benutzerschnittstelle anzeigt.
  3. Die Messeinrichtung nach Anspruch 2, die ferner einen Eingabeblock aufweist, der einen in der Benutzerschnittstelle hinzugefügten festen Durchgangspunkt empfängt und die Attributinformation, die ein Attribut des hinzugefügten festen Durchgangspunkts zeigt, empfängt, wobei der Ausgabeblock ausgebildet ist, den festen Durchgangspunkt und die Attributinformation, die von dem Eingabeblock empfangen werden, an die Robotersteuerung auszugeben.
  4. Die Messeinrichtung nach Anspruch 3, wobei der Eingabeblock ausgebildet ist, eine zugewiesene Position, die von einem Benutzer zugewiesen wird, als einen festen Durchgangspunkt hinzuzufügen.
  5. Die Messeinrichtung nach Anspruch 3 oder 4, wobei der Eingabeblock ausgebildet ist, eine Anordnungsposition des Werkstücks als einen festen Durchgangspunkt hinzuzufügen.
  6. Die Messeinrichtung nach einem der Ansprüche 1 bis 5, wobei der Ausgangsblock ausgebildet ist, eine Anzahl der festen Durchgangspunkte, die von dem Positionsermittlungsverarbeitungsblock ermittelt werden, eine Anzahl an Zwischendurchgangspunkten zwischen den festen Durchgangspunkten, wenn mehrere der festen Durchgangspunkte von dem Positionsermittlungsverarbeitungsblock ermittelt werden, Koordinaten jedes der festen Durchgangspunkte und Koordinaten jedes der Zwischendurchgangspunkte an die Robotersteuerung auszugeben.
  7. Die Messeinrichtung nach einem der Ansprüche 1 bis 6, wobei eine Zuordnung eines festen Durchgangspunkts mit einer Attributinformation über eine Halteposition zu einer speziellen Bewegungsinformation ausführbar ist, die die Roboterhand veranlasst, eine spezielle Bewegung, die nicht dem Transport zu einer Anordnungsposition dient, auszuführen, und der Ausgabeblock ausgebildet ist, die spezielle Bewegungsinformation an die Robotersteuerung auszugeben, wenn Koordinaten des festen Durchgangspunkts, der der speziehen Bewegungsinformation zugeordnet ist, ausgegeben werden.
  8. Eine Messeinrichtung, die ein in dem Arbeitsbereich angeordnetes Werkstück misst und einen Roboter, der das Werkstück transportiert, steuert, wobei die Messeinrichtung aufweist: einen Messblock, der eine Position und eine Orientierung des in dem Arbeitsbereich angeordneten Werkstücks misst; einen Halteinformationsspeicherblock, der Halteinformationen speichert, die eine mögliche Halteposition des von einer Roboterhand des Roboters gehaltenen Werkstücks zeigt; einen Positionsermittlungsverarbeitungsblock, der eine von der Roboterhand gehaltene Halteposition des in dem Arbeitsbereich angeordneten Werkstücks ermittelt und Koordinaten eines festen Durchgangspunkts, der ein einziges Attribut hat, auf der Grundlage eines Ergebnisses einer von dem Messblock vorgenommenen Messung und auf der Grundlage der in dem Halteinformationsspeicherblock gespeicherten Halteinformation ermittelt, wobei der feste Durchgangspunkt eine Annäherungsposition der Roboterhand zum Halten der Halten der Halteposition, die Halteposition oder eine zurückgezogene Position nach dem Halten ist, und die Attributinformation, die das Attribut des festen Durchgangspunkts zeigt, verarbeitet, um die Attributinformation in einen Befehl umzuwandeln; und einen Ausgabeblock, der den von dem Positionsermittlungsverarbeitungsblock erhaltenen Befehl an eine mit dem Roboter verbundene Robotersteuerung ausgibt.
DE102020132990.3A 2019-12-12 2020-12-10 Messeinrichtung Pending DE102020132990A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019224154A JP2021091055A (ja) 2019-12-12 2019-12-12 測定装置
JP2019-224154 2019-12-12

Publications (1)

Publication Number Publication Date
DE102020132990A1 true DE102020132990A1 (de) 2021-06-17

Family

ID=76085409

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020132990.3A Pending DE102020132990A1 (de) 2019-12-12 2020-12-10 Messeinrichtung

Country Status (3)

Country Link
US (1) US11590652B2 (de)
JP (1) JP2021091055A (de)
DE (1) DE102020132990A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114055473B (zh) * 2021-12-06 2022-06-17 合肥新思路智能科技有限公司 基于搬运机器人的视觉检测识别系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010179388A (ja) * 2009-02-04 2010-08-19 Toshiba Mach Co Ltd ロボット教示システム
JP2015054378A (ja) * 2013-09-13 2015-03-23 セイコーエプソン株式会社 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム
US9844877B1 (en) * 2015-07-14 2017-12-19 X Development Llc Generating a parameter for a movement characteristic for a waypoint trained path of a robot
JP6807949B2 (ja) * 2016-11-16 2021-01-06 三菱電機株式会社 干渉回避装置
JP6846951B2 (ja) * 2017-03-03 2021-03-24 株式会社キーエンス ロボット設定装置、ロボットシステム、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP7116901B2 (ja) * 2017-08-01 2022-08-12 オムロン株式会社 ロボット制御装置、ロボット制御方法及びロボット制御プログラム
WO2019064919A1 (ja) * 2017-09-26 2019-04-04 日本電産株式会社 ロボット教示装置
US11213953B2 (en) * 2019-07-26 2022-01-04 Google Llc Efficient robot control based on inputs from remote client devices

Also Published As

Publication number Publication date
JP2021091055A (ja) 2021-06-17
US20210178584A1 (en) 2021-06-17
US11590652B2 (en) 2023-02-28

Similar Documents

Publication Publication Date Title
DE102013012224B4 (de) Vorrichtung zum Entnehmen von lose gespeicherten Gegenständen durch einen Roboter
DE102014016072B4 (de) Vorrichtung und Verfahren zum Aufheben eines willkürlich aufgestapelten Gegenstands mittels eines Roboters
DE102013109220B4 (de) Robotervorrichtung und Verfahren zum Herausnehmen von Bulk-Ware aus einem Lager
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE102017128543B4 (de) Störbereich-einstellvorrichtung für einen mobilen roboter
DE102013012068B4 (de) Vorrichtung und Verfahren zum Entnehmen von lose gelagerten Objekten durch einen Roboter
DE102015013161B4 (de) Vorrichtung zum Einstellen eines Interferenzbereichs eines Roboters
DE102014016069B4 (de) Vorrichtung und Verfahren zum Aufnehmen eines Gegenstandes im 3- dimensionalen Raum mit einem Roboter
DE102016014658B4 (de) 1, 2Modellerzeugungsvorrichtung, Positions- und Orientierungsberechnungsvorrichtung und Handling Robotervorrichtung
DE102015102740B4 (de) Vorrichtung und Verfahren zum Anordnen von Gegenständen mittels Roboter und Gegenstandübertragungssystem
DE602005003147T2 (de) Messsystem
EP3883716B1 (de) Erkennung von bearbeitungsfehlern eines laserbearbeitungssystems mithilfe von tiefen faltenden neuronalen netzen
DE102015000587B4 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
DE102010018634B4 (de) Verfahren zur Eingabe eines räumlichen Aufbaus von Fertigungseinrichtungen in ein rechnergestütztes Planungsprogramm und dessen Optimierung
DE102016004266A1 (de) Baumaschine, insbesondere Kran, und Verfahren zu deren Steuerung
DE102015016530B4 (de) Roboter-Identifizierungssystem
DE102018109774A1 (de) Bildverarbeitungssystem, Bildverarbeitungsvorrichtung und Bildverarbeitungsprogramm
DE112007001964T5 (de) Verfahren zur Bestätigung von dreidimensionalen Modelldaten und Vorrichtung zur Bestätigung von dreidimensionalen Modelldaten
DE102019212452A1 (de) Interferenzvermeidungsvorrichtung und Robotersystem
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
DE102020118635A1 (de) 3D-Datenerzeugungsvorrichtung und Robotersteuersystem
EP2819109B1 (de) Optoelektronischen 3D-Sensor und Verfahren zum Erkennen von Objekten
DE102020132990A1 (de) Messeinrichtung
DE102016100308A1 (de) Verfahren zur Bestimmung von einer Referenzkoordinate eines Werkstücks und Bearbeitungsmaschine
DE112020003148T5 (de) Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren und programm