DE102018116245B4 - Programmiervorrichtung, die ein Betriebsprogramm erstellt, sowie Verfahren zur Programmerstellung - Google Patents

Programmiervorrichtung, die ein Betriebsprogramm erstellt, sowie Verfahren zur Programmerstellung Download PDF

Info

Publication number
DE102018116245B4
DE102018116245B4 DE102018116245.6A DE102018116245A DE102018116245B4 DE 102018116245 B4 DE102018116245 B4 DE 102018116245B4 DE 102018116245 A DE102018116245 A DE 102018116245A DE 102018116245 B4 DE102018116245 B4 DE 102018116245B4
Authority
DE
Germany
Prior art keywords
image pickup
model
unit
workpiece
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102018116245.6A
Other languages
English (en)
Other versions
DE102018116245A1 (de
Inventor
Hiroyuki Atohira
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.)
Fanuc Corp
Original Assignee
Fanuc 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 Fanuc Corp filed Critical Fanuc Corp
Publication of DE102018116245A1 publication Critical patent/DE102018116245A1/de
Application granted granted Critical
Publication of DE102018116245B4 publication Critical patent/DE102018116245B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/695Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
    • 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/40091Tele-programming by graphical simulation
    • 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/40314Simulation of program locally before remote operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

Programmiervorrichtung (10), die ein Betriebsprogramm erstellt, wodurch eine Bildaufnahmeeinheit (104) oder ein Werkstück (150) durch einen Roboter (102) bewegt wird und das Werkstück durch die Bildaufnahmeeinheit aufgenommen wird, umfassendeine Modellanordnungseinheit (26), die ein Werkstückmodell (150M), das das Werkstück modelliert, ein Robotermodell (102M), das den Roboter modelliert, und ein Bildaufnahmeeinheitsmodell (104M), das die Bildaufnahmeeinheit modelliert, in einem virtuellen Raum anordnet (200);eine Extraktionsbedingungsentgegennahmeeinheit (28), die eine Eingabe einer Extraktionsbedingung erhält;eine Zielstellenextraktionseinheit (30), die basierend auf den dreidimensionalen Bilddaten des Werkstückmodells (150M) eine Zielstelle des Werkstückmodells, die einer Bildaufnahmeobjektstelle des Werkstücks entspricht, gemäß der Extraktionsbedingung extrahiert;eine Simulationseinheit (34), die das Bildaufnahmeeinheitsmodell oder das Werkstückmodell durch das Robotermodell an eine Bildaufnahmeposition, an der das Bildaufnahmeeinheitsmodell die durch die Zielstellenextraktionseinheit extrahierte Zielstelle aufnimmt, bewegt; undeine Programmerstellungseinheit (36), die auf Basis von Positionsdaten des Robotermodells, wenn das Robotermodell das Bildaufnahmeeinheitsmodell oder das Werkstückmodell an der Bildaufnahmeposition positioniert hat, ein Betriebsprogramm, damit die Bildaufnahmeeinheit die Bildaufnahmeobjektstelle aufnimmt, erstellt.

Description

  • Allgemeiner Stand der Technik
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Programmiervorrichtung, die ein Betriebsprogramm erstellt, sowie ein Verfahren zur Programmerstellung.
  • Beschreibung des Stands der Technik
  • Techniken zur automatischen Erstellung des Betriebsprogramms eines Roboters sind bekannt (siehe zum Beispiel die Druckschriften WO 2004/ 085 120 A1 , DE 10 2015 000 587 A1 , EP 2 082 850 B1 und DE 10 2014 108 956 A1 ).
    Es kommt vor, dass ein Betriebsprogramm erstellt wird, bei dem eine Bildaufnahmeeinheit oder ein Werkstück durch einen Roboter bewegt wird und das Werkstück durch die Bildaufnahmeeinheit aufgenommen wird. In diesem Fall wird gewünscht, die Tätigkeiten eines Betreibers, die für die Erstellung dieses Betriebsprogramms erforderlich sind, zu verkürzen.
  • Ferner wird in Druckschrift US 2007 / 0 071 310 A1 Simulationsvorrichtung für einen Roboter, die in der Lage ist, offline zu beurteilen, ob ein Gegenstand um ein zu erfassendes Objekt herum den Bereich eines visuellen Sensors während eines Messvorgangs stört, und in Druckschrift US 2006 / 0 212 171 A1 eine Offline-Lernvorrichtung zum Einstellen eines Bildsensors und zum Durchführen von Einstellungsarbeiten beschrieben.
  • Kurzdarstellung der Erfindung
  • Die Aufgabe der Erfindung wird durch die Programmiervorrichtung nach Anspruch 1 sowie durch das Verfahren nach Anspruch 11 gelöst. Weitere vorteilhafte Ausführungsformen sind in dem Unteransprüchen 2 bis 10 beschrieben.
  • Bei einer Form der vorliegenden Offenbarung umfasst eine Programmiervorrichtung, die ein Betriebsprogramm erstellt, wodurch eine Bildaufnahmeeinheit oder ein Werkstück durch einen Roboter bewegt wird und das Werkstück durch die Bildaufnahmeeinheit aufgenommen wird, eine Modellanordnungseinheit, die ein Werkstückmodell, wofür das Werkstück modelliert wurde, ein Robotermodell, wofür der Roboter modelliert wurde, und ein Bildaufnahmeeinheitsmodell, wofür die Bildaufnahmeeinheit modelliert wurde, in einem virtuellen Raum anordnet; eine Extraktionsbedingungsentgegennahmeeinheit (28), die eine Eingabe einer Extraktionsbedingung erhält; eine Zielstellenextraktionseinheit, die basierend auf den dreidimensionalen Bilddaten des Werkstückmodells eine Zielstelle des Werkstückmodells, die einer Bildaufnahmeobjektstelle des Werkstücks entspricht, gemäß der Extraktionsbedingung extrahiert; eine Simulationseinheit, die das Bildaufnahmeeinheitsmodell oder das Werkstückmodell durch das Robotermodell an eine Bildaufnahmeposition, an der das Bildaufnahmeeinheitsmodell die durch die Zielstellenextraktionseinheit extrahierte Zielstelle aufnimmt, bewegt; und eine Programmerstellungseinheit, die auf Basis von Positionsdaten des Robotermodells, wenn das Robotermodell das Bildaufnahmeeinheitsmodell oder das Werkstückmodell an der Bildaufnahmeposition positioniert hat, ein Betriebsprogramm, damit die Bildaufnahmeeinheit die Bildaufnahmeobjektstelle aufnimmt, erstellt.
  • Bei einer anderen Form der vorliegenden Offenbarung umfasst, ein Verfahren, das ein Betriebsprogramm erstellt, wodurch eine Bildaufnahmeeinheit oder ein Werkstück durch einen Roboter bewegt wird und das Werkstück durch die Bildaufnahmeeinheit aufgenommen wird, das Anordnen eines Werkstückmodells, wofür das Werkstück modelliert wurde, eines Robotermodells, wofür der Roboter modelliert wurde, und eines Bildaufnahmeeinheitsmodells, wofür die Bildaufnahmeeinheit modelliert wurde, in einem virtuellen Raum; das Erhalten einer Extraktionsbedingung als Eingabe in eine Extraktionsbedingungsentgegennahmeeinheit; das Extrahieren basierend auf den dreidimensionalen Bilddaten des Werkstücks einer Zielstelle des Werkstückmodells, die einer Bildaufnahmeobjektstelle des Werkstücks entspricht, gemäß vorab festgelegten Extraktionsbedingungen; das Bewegen des Bildaufnahmeeinheitsmodells oder des Werkstückmodels durch das Robotermodell an eine Bildaufnahmeposition, an der das Bildaufnahmeeinheitsmodell die extrahierte Zielstelle aufnimmt; und das Erstellen eines Betriebsprogramms, damit die Bildaufnahmeeinheit die Bildaufnahmeobjektstelle aufnimmt, auf Basis von Positionsdaten des Robotermodells, wenn das Robotermodell das Bildaufnahmeeinheitsmodell oder das Werkstückmodell an der Bildaufnahmeposition positioniert hat.
  • Da das Lehren eine Betriebsprogramms für eine Betriebsabfolge eines Robotersystems durch die vorliegende Offenbarung unabhängig von der Erfahrung des Betreibers vorgenommen werden kann, kann die Zeit, die für die Tätigkeit zum Anfahren des Systems nötig ist, stark verkürzt werden.
  • Figurenliste
    • 1 ist ein Blockdiagramm einer Programmiervorrichtung nach einer Ausführungsform.
    • 2 zeigt ein Robotersystem und ein Werkstück nach einer Ausführungsform.
    • 3 ist ein Ablaufdiagramm, das ein Beispiel für den Betriebsablauf der in 1 gezeigten Programmiervorrichtung zeigt.
    • 4 zeigt ein Beispiel für einen virtuellen Raum, der in Schritt S1 in 3 erstellt wird.
    • 5 ist eine vergrößerte Ansicht, die den Zustand zeigt, in dem ein Bildaufnahmeeinheitsmodell in Bezug auf ein Werkstück an einer ersten Bildaufnahmeposition angeordnet wurde.
    • 6 ist ein Ablaufdiagramm, das ein Beispiel für den Ablauf von Schritt S5 in 3 zeigt.
    • 7 ist ein Blockdiagramm einer Programmiervorrichtung nach einer anderen Ausführungsform.
    • 8 ist ein Ablaufdiagramm, das ein Beispiel für den Betriebsablauf der in 7 gezeigten Programmiervorrichtung zeigt.
    • 9 ist ein Ablaufdiagramm, das ein Beispiel für den Ablauf von Schritt S22 in 8 zeigt.
    • 10 zeigt ein Beispiel für ein virtuelles Bild, das in das Blickfeld des Bildaufnahmeeinheitsmodells fällt.
    • 11 zeigt ein Beispiel für ein virtuelles Bild, das in das Blickfeld des Bildaufnahmeeinheitsmodells fällt.
    • 12 ist ein Ablaufdiagramm, das ein Beispiel für den Ablauf von Schritt S25 in 9 zeigt.
    • 13 ist ein Blockdiagramm einer Programmiervorrichtung nach noch einer anderen Ausführungsform.
    • 14 ist ein Ablaufdiagramm, das ein Beispiel für den Betriebsablauf der in 13 gezeigten Programmiervorrichtung zeigt.
    • 15 zeigt ein Beispiel für einen virtuellen Raum, der in Schritt S41 in 14 erstellt wird.
    • 16 ist ein Ablaufdiagramm, das ein Beispiel für den Ablauf von Schritt S42 in 14 zeigt.
    • 17 ist ein Ablaufdiagramm, das ein Beispiel für den Ablauf von Schritt S44 in 16 zeigt.
    • 18 ist ein Blockdiagramm einer Programmiervorrichtung nach noch einer anderen Ausführungsform.
    • 19 ist ein Ablaufdiagramm, das ein Beispiel für den Betriebsablauf der in 18 gezeigten Programmiervorrichtung zeigt.
    • 20 ist ein Blockdiagramm einer Programmiervorrichtung nach noch einer anderen Ausführungsform.
    • 21 ist ein Ablaufdiagramm, das ein Beispiel für den Betriebsablauf der in 20 gezeigten Programmiervorrichtung zeigt.
    • 22 ist ein Ablaufdiagramm, das ein Beispiel für den Ablauf von Schritt S60 in 21 zeigt.
    • 23 ist ein Blockdiagramm einer Programmiervorrichtung nach noch einer anderen Ausführungsform.
  • Ausführliche Erklärung
  • Nachstehend werden Ausführungsformen der vorliegenden Offenbarung anhand der Zeichnungen ausführlich erklärt. Bei den verschiedenen Ausführungsformen, die nachstehend erklärt werden, sind gleiche Elemente mit gleichen Bezugszeichen versehen und wird auf eine wiederholte Erklärung verzichtet. Außerdem verweist in der nachstehenden Erklärung zur Bequemlichkeit die positive x-Achsen-Richtung eines Roboterkoordinatensystems CR1 auf rechts, seine positive y-Achsen-Richtung auf hinten, und seine positive z-Achsen-Richtung auf oben.
  • Unter Bezugnahme auf 1 wird eine Programmiervorrichtung 10 nach einer Ausführungsform erklärt. Die Programmiervorrichtung 10 umfasst einen Prozessor 12, einen Systemspeicher 14, einen Arbeitsspeicher 16, eine Ein/Ausgabeschnittstelle (E/A-Schnittstelle) 18, eine Dateneingabeeinheit 20, und eine Anzeigeeinheit 22.
  • Der Prozessor 12 ist über einen Bus 24 kommunikationsfähig mit dem Systemspeicher 14, dem Arbeitsspeicher 16 und der E/A-Schnittstelle 18 verbunden und führt unter Kommunikation mit diesen Elementen verschiedene nachstehend beschriebenen Prozesse aus.
  • Der Systemspeicher 14 ist ein elektrisch löschbarer und wiederbeschreibbarer nichtflüchtiger Speicher und zum Beispiel durch einen EEPROM (eingetragenes Warenzeichen) oder dergleichen gebildet. Der Systemspeicher 14 speichert Konstante, Variable, Einstellwerte, Computerprogramme und dergleichen, die für die Ausführung der verschiedenen nachstehend beschriebenen Prozesse erforderlich sind, auf eine solche Weise, dass sie auch während des Nichtbetriebs der Programmiervorrichtung 10 nicht verloren gehen.
  • Der Arbeitsspeicher 16 hält Daten, die der Prozessor 12 bei der Ausführung verschiedener Prozesse benötigt, temporär. Außerdem werden die in dem Systemspeicher 14 gespeicherten Konstanten, Variablen, Einstellwerte, Computerprogramme und dergleichen passend in den Arbeitsspeicher 16 entwickelt und benutzt der Prozessor 12 die in den Arbeitsspeicher 16 entwickelten Daten für die Ausführung verschiedener Prozesse.
  • Die E/A-Schnittstelle 18 ist kommunikationsfähig mit der Dateneingabeeinheit 20 verbunden und erhält auf Anordnung des Prozessors 12 Daten von der Dateneingabeeinheit 20. Außerdem ist die E/A-Schnittstelle 18 kommunikationsfähig mit der Anzeigeeinheit 22 verbunden und sendet auf Anordnung des Prozessors 12 Bilddaten an die Anzeigeeinheit 22.
  • Die E/A-Schnittstelle 18 kann zum Beispiel durch einen Ethernet-Anschluss oder einen USB-Anschluss oder dergleichen gebildet sein und drahtgebunden mit der Dateneingabeeinheit 20 und der Anzeigeeinheit 22 kommunizieren. Oder die E/A-Schnittstelle 18 kann auch über ein drahtloses LAN wie etwa WiFi oder dergleichen drahtlos mit der Anzeigeeinheit 22 und der Dateneingabeeinheit 20 kommunizieren.
  • Die Dateneingabeeinheit 20 ist zum Beispiel durch eine Tastatur, ein Touchpanel oder eine Maus gebildet, und ein Betreiber kann durch Betätigen der Dateneingabeeinheit 20 Daten eingeben. Die Dateneingabeeinheit 20 sendet die eingegebenen Daten über die E/A-Schnittstelle 18 an den Prozessor 12.
  • Die Anzeigeeinheit 22 ist zum Beispiel durch eine CRT, eine Flüssigkristallanzeige (LCD), oder eine organische EL-Vorrichtung gebildet, erhält von der E/A-Schnittstelle 18 gesendete Bilddaten, und zeigt diese als für den Betreiber erkennbare Bilder an.
  • Die Programmiervorrichtung 10 erstellt ein Betriebsprogramm, wodurch eine Bildaufnahmeeinheit 104 und ein Werkstück 150 durch einen Roboter 102 relativ bewegt werden und das Werkstück 150 durch die Bildaufnahmeeinheit 104 aufgenommen wird.
  • Nachstehend wird unter Bezugnahme auf 2 ein Beispiel für ein Robotersystem 100 im realen Raum erklärt. Das Robotersystem 100 umfasst den Roboter 102 und die Bildaufnahmeeinheit 104. Der Roboter 102 ist ein vertikaler Knickarmroboter, der eine Roboterbasis 106, einen Drehrumpf 108, einen Roboterarm 110 und einen Handgelenkabschnitt 112 aufweist. Die Roboterbasis 106 ist auf dem Boden einer Arbeitszelle in dem realen Raum fixiert.
  • Der Drehrumpf 108 ist um eine vertikale Achse drehbar an der Roboterbasis 106 ausgebildet. Der Roboterarm 110 weist einen Oberarmabschnitt 116, der drehbar mit dem Drehrumpf 108 gekoppelt ist, und einen Unterarmabschnitt 118, der drehbar mit dem Spitzenende des Oberarmabschnitts 116 gekoppelt ist, auf. Der Handgelenkabschnitt 112 ist mit dem Spitzenende des Unterarmabschnitts 118 gekoppelt und hält die Bildaufnahmeeinheit 104 drehbar.
  • Für den Roboter 102 ist ein Roboterkoordinatensystem CR eingerichtet. Der Roboter 102 betreibt die einzelnen beweglichen Elemente des Roboters 102 (das heißt, den Drehrumpf 108, den Oberarmabschnitt 110, den Unterarmabschnitt 118, den Handgelenkabschnitt 112) mit dem Roboterkoordinatensystem CR als Basis. Beispielsweise ist die z-Achse des Roboterkoordinatensystems CR parallel zu der vertikalen Richtung des realen Raums angeordnet und wird der Drehrumpf 108 um die z-Achse des Roboterkoordinatensystems CR gedreht.
  • Für den Handgelenkabschnitt des Roboters 102 (bei der vorliegenden Ausführungsform die Bildaufnahmeeinheit 104) ist ein Werkzeugkoordinatensystem CT eingerichtet. Dieses Werkzeugkoordinatensystem CT ist ein Koordinatensystem, das die Position und die Lage der Bildaufnahmeeinheit 104 in dem Roboterkoordinatensystem CR bestimmt.
  • Der Roboter 102 betreibt den Drehrumpf 108, den Roboterarm 110 und den Handgelenkabschnitt 112 in dem Roboterkoordinatensystem CR so, dass die Position und die Lage der Bildaufnahmeeinheit 104 mit der durch das Werkzeugkoordinatensystem CT bestimmten Position und Lage übereingestimmt werden.
  • Die Bildaufnahmeeinheit 104 ist mit dem Spitzenende des Handgelenkabschnitts 112 gekoppelt. Die Bildaufnahmeeinheit 104 ist zum Beispiel ein optischer Sensor und weist einen Bildaufnahmesensor wie eine CCD oder einen CMOS oder dergleichen und ein optisches System wie etwa eine Fokussierlinse auf. Die Bildaufnahmeeinheit 104 nimmt ein Objekt wie etwa das Werkstück 150 auf und erlangt ein Bild dieses Werkstücks 150.
  • Für die Bildaufnahmeeinheit 104 ist ein Sensorkoordinatensystem Cs eingerichtet. Beispielsweise ist die z-Achse des Sensorkoordinatensystems Cs so eingerichtet, dass sie mit der Sichtlinie der Bildaufnahmeeinheit 104 übereinstimmt. Die Sichtlinie der Bildaufnahmeeinheit 104 stimmt mit der optischen Achse des Lichts, das in das optische System der Bildaufnahmeeinheit 104 einstrahlt, überein.
  • Bei der vorliegenden Ausführungsform weisen das Werkzeugkoordinatensystem CT und das Sensorkoordinatensystem Cs eine gegebene bestimmte Positionsbeziehung auf. Konkret sind die x-y-Ebene des Werkzeugkoordinatensystems CT und die x-y-Ebene des Sensorkoordinatensystems Cs zueinander parallel.
  • Das Robotersystem 100 nimmt durch die Bildaufnahmeeinheit 104 jeweils mehrere Stellen des Werkstücks 150 auf. Bei dem Beispiel, das in 2 gezeigt ist, weist das Werkstück 150 einen Hauptkörperabschnitt 152 und mehrere Elemente 154, 156, 158, 160, 162, 164 und 166, die so ausgebildet sind, dass sie von dem Hauptkörperabschnitt 152 vorspringen, auf.
  • Noch konkreter weist der Hauptkörperabschnitt 152 eine obere Endfläche 168, und eine hintere Endfläche 170 und eine rechte Endfläche 172, die zu der oberen Endfläche 168 orthogonal liegen und sich von der oberen Endfläche 168 abwärts erstrecken, auf. Die Elemente 154, 156 und 158 ragen von der oberen Endfläche 168 nach oben. Die Elemente 160 und 162 ragen von der hinteren Endfläche 170 nach hinten. Die Elemente 164 und 166 ragen von der rechten Endfläche 172 nach rechts.
  • Nachstehend wird ein Beispiel erklärt, bei dem der Betreiber von diesen mehreren Elementen 154, 156, 158, 160, 162, 164 und 166 nur die Elemente 154, 156, 158 und 160 als Bildaufnahmeobjektstellen der Bildaufnahmeeinheit 104 ansetzt.
  • Der Roboter 102 nimmt die Elemente 154, 156, 158 und 160 durch die Bildaufnahmeeinheit 104 in einer bestimmten Reihenfolge auf. Als ein Beispiel bewegt der Roboter 102 die Bildaufnahmeeinheit 104 und positioniert er die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an einer ersten Bildaufnahmeposition.
  • Wenn die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an der ersten Bildaufnahmeposition angeordnet wurde, fällt das Element 154 in das Blickfeld der Bildaufnahmeeinheit 104 und kann dieses Element 154 durch die Bildaufnahmeeinheit 104 aufgenommen werden. Dann nimmt die Bildaufnahmeeinheit 104 das Element 154 auf.
  • Dann bewegt der Roboter 102 die Bildaufnahmeeinheit 104 und positioniert er die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an einer zweiten Bildaufnahmeposition. Wenn die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an der zweiten Bildaufnahmeposition angeordnet wurde, fällt das Element 156 in das Blickfeld der Bildaufnahmeeinheit 104 und kann dieses Element 156 durch die Bildaufnahmeeinheit 104 aufgenommen werden. Dann nimmt die Bildaufnahmeeinheit 104 das Element 156 auf.
  • Dann bewegt der Roboter 102 die Bildaufnahmeeinheit 104 und positioniert er die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an einer dritten Bildaufnahmeposition. Wenn die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an der dritten Bildaufnahmeposition angeordnet wurde, fällt das Element 158 in das Blickfeld der Bildaufnahmeeinheit 104 und kann dieses Element 158 durch die Bildaufnahmeeinheit 104 aufgenommen werden. Dann nimmt die Bildaufnahmeeinheit 104 das Element 158 auf.
  • Dann bewegt der Roboter 102 die Bildaufnahmeeinheit 104 und positioniert er die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an einer vierten Bildaufnahmeposition. Wenn die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an der vierten Bildaufnahmeposition angeordnet wurde, fällt das Element 160 in das Blickfeld der Bildaufnahmeeinheit 104 und kann dieses Element 160 durch die Bildaufnahmeeinheit 104 aufgenommen werden. Dann nimmt die Bildaufnahmeeinheit 104 das Element 160 auf.
  • Auf diese Weise führt das Robotersystem 100 eine Betriebsabfolge aus, bei der es die Bildaufnahmeeinheit 104 durch den Roboter 102 der Reihe nach bewegt und die Elemente 154, 156, 158 und 160 der Bildaufnahmeobjektstellen der Reihe nach durch die Bildaufnahmeeinheit 104 aufnimmt.
  • Die Programmiervorrichtung 10 nach der vorliegenden Ausführungsform erstellt das Betriebsprogramm für eine solche Betriebsabfolge des Robotersystems 100. Nachstehend wird unter Bezugnahme auf 3 ein Beispiel für die Funktion der Programmiervorrichtung 10 erklärt. Der in 3 gezeigte Ablauf beginnt, wenn die Programmiervorrichtung gestartet wurde.
  • In Schritt S1 ordnet der Prozessor 12 ein Werkstückmodell 150M, ein Robotermodell 102M und ein Bildaufnahmeeinheitsmodell 104M in einem virtuellen Raum 200 an. Ein Beispiel für diesen virtuellen Raum 200 ist in 4 gezeigt.
  • Wenn in diesem Dokument die Bezeichnung für ein Aufbauelement in dem realen Raum „XY“ lautet, wird das Modell dieses Aufbauelements in dem virtuellen Traum 200 als „XY-Modell“ bezeichnet. Zum Beispiel wird die „Roboterbasis“ in dem realen Raum als „Roboterbasismodell“ bezeichnet. Das „XY-Modell“ bei der vorliegenden Ausführungsform ist in jedem Fall ein dreidimensionales Modell.
  • Der Prozessor 12 ordnet das Robotermodell 102M gemäß einer Eingabebetätigung durch den Betreiber in dem virtuellen Raum 200 an. Das Robotermodell 102M ist eine dreidimensionale Computergrafik (CG), die den in 2 gezeigten Roboter 102 modelliert, und weist ein Roboterbasismodell 106M, ein Drehrumpfmodell 108M, ein Roboterarmmodell 110M und ein Handgelenkabschnittsmodell 112M auf.
  • Als ein Beispiel sind in dem Systemspeicher 14 im Voraus mehrere Arten von Robotermodellen einschließlich des Robotermodells 102M gespeichert. Der Prozessor 12 erstellt Bilddaten, die die in dem Systemspeicher 14 gespeicherten mehreren Robotermodelle in Form einer Liste darstellen, und stellt diese an der Anzeigeeinheit 14 dar. Der Betreiber wählt durch Betätigen der Dateneingabeeinheit 20 das gewünschte Robotermodell aus der an der Anzeigeeinheit 20 dargestellten Liste.
  • Wenn der Betreiber das in 4 gezeigte Robotermodell 102M wählt, sendet die Dateneingabeeinheit 20 die von dem Betreiber eingegebenen Daten über die E/A-Schnittstelle 18 an den Prozessor 12.
  • Der Prozessor 12 liest den erhaltenen Eingabedaten entsprechend das Robotermodell 102M aus den in dem Systemspeicher 14 gespeicherten mehreren Robotermodellen und ordnet es in dem virtuellen Raum 200 an. Dann richtet der Prozessor 12 das Roboterkoordinatensystem CR und das Werkzeugkoordinatensystem CT für das Robotermodell 102M an den gleichen Positionen wie in 2 ein.
  • Ebenso ordnet der Prozessor 12 einer Eingabebetätigung durch den Betreiber entsprechend das Bildaufnahmeeinheitsmodell 104M in dem virtuellen Raum 200 an. Das Bildaufnahmeeinheitsmodell 104M ist eine dreidimensionale CG, die die in 2 gezeigte Bildaufnahmeeinheit 104 modelliert.
  • Als ein Beispiel sind in dem Systemspeicher 14 mehrere Arten von Bildaufnahmeeinheitsmodellen einschließlich des Bildaufnahmeeinheitsmodells 104M gespeichert. Der Prozessor 12 erstellt Bilddaten, die die in dem Systemspeicher 14 gespeicherten mehreren Bildaufnahmeeinheitsmodelle in Form einer Liste darstellen, und stellt diese an der Anzeigeeinheit 14 dar. Der Betreiber wählt durch Betätigen der Dateneingabeeinheit 20 das gewünschte Bildaufnahmeeinheitsmodell aus der an der Anzeigeeinheit 20 dargestellten Liste.
  • Wenn der Betreiber das in 4 gezeigte Bildaufnahmeeinheitsmodell 104M wählt, liest der Prozessor 12 den von der Dateneingabeeinheit 20 über die E/A-Schnittstelle 18 erhaltenen Daten entsprechend das Bildaufnahmeeinheitsmodell 104M aus den in dem Systemspeicher 14 gespeicherten mehreren Arten von Bildaufnahmeeinheitsmodellen und ordnet es in dem virtuellen Raum 200 an.
  • Dabei ordnet der Prozessor 12 das Bildaufnahmeeinheitsmodell 104M der Anbringungsposition der echten Bildaufnahmeeinheit 104 entsprechend an dem Spitzenende des Handgelenkabschnittsmodells 112M an. Dann richtet der Prozessor 12 das Sensorkoordinatensystem Cs für das Bildaufnahmeeinheitsmodell 104M wie in 2 ein.
  • Auf die gleiche Weise ordnet der Prozessor 12 einer Eingabebetätigung durch den Betreiber entsprechend das Werkstückmodell 150M in dem virtuellen Raum 200 an. Als ein Beispiel sind in dem Systemspeicher 14 vorab mehrere Arten von Werkstückmodellen einschließlich des Werkstückmodells 150M gespeichert. Dann erstellt der Prozessor 12 Bilddaten, die die in dem Systemspeicher 14 gespeicherten mehreren Werkstückmodelle in Form einer Liste darstellen, und stellt diese an der Anzeigeeinheit 14 dar. Der Betreiber wählt durch Betätigen der Dateneingabeeinheit 20 das gewünschte Werkstückmodell aus der an der Anzeigeeinheit 20 dargestellten Liste.
  • Wenn der Betreiber das in 4 gezeigte Werkstückmodell 150M wählt, liest der Prozessor 12 den von der Dateneingabeeinheit 20 über die E/A-Schnittstelle 18 erhaltenen Daten entsprechend das Werkstückmodell 150M aus den in dem Systemspeicher 14 gespeicherten mehreren Arten von Werkstückmodellen und ordnet es in dem virtuellen Raum 200 an.
  • Das Werkstückmodell 150M ist eine dreidimensionale CG, die das in 2 gezeigte Werkstück modelliert, und weist ein Hauptkörperabschnittsmodell 152M und mehrere Elementmodelle 154M, 156M, 158M, 160M, 162M, 164M und 166M auf.
  • Dann richtet der Prozessor 12 für das Werkstückmodell 150M ein Werkstückkoordinatensystem Cw ein. Bei dem Beispiel, das in 4 gezeigt ist, ist das Werkstückkoordinatensystem Cw so eingerichtet, dass sein Ursprungspunkt an der linken hinteren Ecke eines oberen Endflächenmodells 168M des Hauptkörperabschnittsmodells 152M positioniert ist, seine x-y-Ebene parallel zu dem oberen Endflächenmodell 168M verläuft, seine x-z-Ebene parallel zu einem hinteren Endflächenmodell 170M verläuft, und seine y-z-Ebene parallel zu einem rechten Endflächenmodell 172M verläuft.
  • Bei dem Beispiel, das in 4 gezeigt ist, weisen die Elementmodelle 154M, 156M und 164M eine runde Außenform auf, weisen die Elementmodelle 158M, 160M und 166M eine viereckige Außenform auf, und weist das Elementmodell 162M eine dreieckige Außenform auf.
  • Die Größen der Elementmodelle 154M, 156M, 158M, 160M, 162M, 164M und 166M sind wie folgt festgelegt. Das heißt, die Größen der Elementmodelle 154M und 156M betragen „100“, die Größen der Elementmodelle 158M und 166M betragen „300“, die Größe des Elementmodells 160M beträgt „150“, die Größe des Elementmodells 162M beträgt „80“ und die Größe des Elementmodells 164M beträgt „20“, wobei die Einheit für diese Größen zum Beispiel m, m2 oder m3 sein kann.
  • Außerdem ist das Elementmodell 166M in einer anderen Farbe als das Hauptkörperabschnittsmodell 152M und die Elementmodelle 154M, 156M, 158M, 160M, 162M und 164M gefärbt (d.h., schwarz), und kann der Betreiber eine beliebige Stelle des Werkstückmodells 150M durch Betätigen der Dateneingabeeinheit 20 so wie das Elementmodell 166M färben.
  • Dann werden ein Robotersystemmodell 100M, das das Robotermodell 102M und das Bildaufnahmeeinheitsmodell 104M aufweist, und das Werkstückmodell 150M wie in 4 gezeigt im Inneren des virtuellen Raums 200 angeordnet.
  • Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Modellanordnungseinheit 26 (1), die das Werkstückmodell 150M, das Robotermodell 102M und das Bildaufnahmeeinheitsmodell 104M in dem virtuellen Raum 200 anordnet. Der Prozessor 12 erstellt den virtuellen Raum 200 als Bilddaten und zeigt diese als wie in 4 gezeigtes Bild des virtuellen Raums 200 an der Anzeigeeinheit 22 an.
  • In Schritt S2 erhält der Prozessor 12 Extraktionsbedingungen. Diese Extraktionsbedingungen sind Bedingungen, um bei der Extraktion von Zielstellen aus dem Werkstückmodell 150M bei dem nachstehend beschriebenen Schritt S3 die zu extrahierenden Stellen zu bestimmen.
  • Die „Zielstellen“ in diesem Dokument zeigen Stellen des Werkstückmodells 150M (das heißt, die Elementmodelle 154M, 156M, 158M und 160M), die den Bildaufnahmeobjektstellen des Werkstücks 150 (das heißt, den Elementen 154, 156, 158 und 160), die die Bildaufnahmeobjekte der Bildaufnahmeeinheit 104 im realen Raum darstellen, entsprechen.
  • Bei der vorliegenden Ausführungsform beinhalten die Extraktionsbedingungen eine erste Bedingung, die die Form, die Farbe und die Größe der Zielstellen spezifiziert. Als ein Beispiel erstellt der Prozessor 12 Bilddaten, die Spalten zeigen, welche der „Form“, der „Farbe“ und der „Größe“, die die Zielstellen vorgeben, entsprechen, und stellt diese an der Anzeigeeinheit 22 dar.
  • Der Betreiber gibt durch Betätigen der Dateneingabeeinheit 20 die Form der Zielstellen, die bei dem nachstehend beschriebenen Schritt S3 extrahiert werden sollen, zum Beispiel wie durch „runde Form“ „dreieckige Form“ oder „viereckige Form“ in die Spalte „Form“ ein.
  • Oder der Betreiber gibt durch Betätigen der Dateneingabeeinheit 20 die Farbe der Zielstellen, die bei dem nachstehend beschriebenen Schritt S3 extrahiert werden sollen, zum Beispiel wie durch „weiß“, „schwarz“ oder „blau“ in die Spalte „Farbe“ ein.
  • Oder der Betreiber gibt durch Betätigen der Dateneingabeeinheit 20 den Bereich der Größe der Zielstellen, die bei dem nachstehend beschriebenen Schritt S3 extrahiert werden sollen, zum Beispiel wie durch „100 bis 200“ in die Spalte „Größe“ ein. Auf diese Weise kann der Betreiber die erste Bedingung, die die zu extrahierenden Zielstellen auf dem Werkstückmodell 150M bestimmt, eingeben.
  • Außerdem beinhalten die Extraktionsbedingungen bei der vorliegenden Ausführungsform eine zweite Bedingung, die die Form, die Farbe oder die Größe von Stellen des Werkstückmodells 150M, die Stellen des Werkstücks 150 entsprechen, welche als Nichtbildaufnahmeobjekt der Bildaufnahmeeinheit 104 in dem realen Raum angesetzt werden, spezifiziert.
  • Als ein Beispiel erstellt der Prozessor 12 Bilddaten, die Spalten zeigen, welche der „Form“, der „Farbe“ und der „Größe“, die nicht als Objekt angesehen werden soll, entsprechen, und stellt diese an der Anzeigeeinheit 22 dar. Der Betreiber gibt durch Betätigen der Dateneingabeeinheit 20 die Form der Stellen, die bei dem nachstehend besprochenen Schritt S3 als Nichtextraktionsobjekt angesetzt werden, zum Beispiel wie durch „runde Form“ „dreieckige Form“ oder „viereckige Form“ in die Spalte „Form“ ein.
  • Oder der Betreiber gibt durch Betätigen der Dateneingabeeinheit 20 die Farbe der Stellen, die bei dem nachstehend besprochenen Schritt S3 als Nichtextraktionsobjekt angesetzt werden, zum Beispiel wie durch „weiß“, „schwarz“ oder „blau“ in die Spalte „Farbe“ ein.
  • Oder der Betreiber gibt durch Betätigen der Dateneingabeeinheit die Größe von Stellen, die bei dem nachstehend besprochenen Schritt S3 als Nichtextraktionsobjekt angesetzt werden, zum Beispiel wie durch „500 bis 600“ in die Spalte „Größe“ ein. Auf diese Weise kann der Betreiber die zweite Bedingung, die als Nichtextraktionsobjekt angesetzte Stellen auf dem Werkstückmodell 150M bestimmt, eingeben.
  • In der Folge wird ein Beispiel erklärt, bei dem der Betreiber als erste Bedingung der Extraktionsbedingungen „runde Form“ und „viereckige Form“ in die Spalte „Form“ eingibt, und „90 bis 350“ in die Spalte „Größe“ eingibt, sowie als zweite Bedingung der Extraktionsbedingungen „schwarz“ in die Spalte „Farbe“ eingibt.
  • Die Dateneingabeeinheit 20 erhält die Eingabe der Extraktionsbedingungen durch den Betreiber und sendet diese über die E/A-Schnittstelle 18 an den Prozessor 12. Der Prozessor 12 speichert die erhaltenen Extraktionsbedingungen in dem Systemspeicher 14. Auf diese Weise wirkt die Dateneingabeeinheit 20 bei der vorliegenden Ausführungsform als Extraktionsbedingungsentgegennahmeeinheit 28 (1), die eine Eingabe der Extraktionsbedingungen erhält.
  • In Schritt S3 extrahiert der Prozessor 12 die Zielstellen gemäß den in Schritt S2 erhaltenen Extraktionsbedingungen. Konkret nimmt der Prozessor 12 auf die erste Bedingung, die in den in Schritt S2 erhaltenen Extraktionsbedingungen enthalten ist, (das heißt, „Form“ = „runde Form“ oder „viereckige Form“, „Größe“ = „90 bis 350“) Bezug und extrahiert Stellen des Werkstückmodells 150M, die dieser ersten Bedingung entsprechen, als Zielstellen.
  • Bei dem in 4 gezeigten Werkstückmodell 150M sind die Elementmodelle 154M und 156M jene, deren Form eine „runde Form“ ist, und sind 158M, 160M und 166M Stellen, deren Form eine „viereckige Form“ ist. Außerdem sind bei dem Werkstückmodell 150M die Stellen, deren Größe „90 bis 350“ beträgt, die Elementmodelle 154M, 156M, 158M, 160M und 166M.
  • Folglich sind die Stellen des Werkstückmodells 150M, die der ersten Bedingung der Extraktionsbedingungen entsprechen, die Elementmodelle 154M, 156M, 158M, 160M und 166M.
  • Außerdem nimmt der Prozessor 12 auf die zweite Bedingung, die in den in Schritt S2 eingegebenen Extraktionsbedingungen enthalten ist, (das heißt, „Farbe“ = „schwarz“) Bezug und extrahiert Stellen des Werkstückmodells 150M, die dieser zweiten Bedingung entsprechen, nicht als Zielstellen.
  • Bei dem Beispiel, das in 4 gezeigt ist, wurde das Elementmodell 166M durch den Betreiber schwarz gefärbt. Folglich schließt der Prozessor 12 diese Elementstelle 166M aus den Zielstellen aus.
  • Als Folge extrahiert der Prozessor 12 die Elementmodelle 154M, 156M, 158M und 160M des Werkstückmodells 150M als Zielstellen. Der Prozessor 12 kann die Extraktionsbedingungen und die Bilddaten (zum Beispiel 3D-CAD-Daten) des Werkstückmodells 150M vergleichen und den Extraktionsbedingungen entsprechende Zielstellen aus dem Werkstückmodell 150M extrahieren.
  • Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Zielstellenextraktionseinheit 30 ( 1), die gemäß den Extraktionsbedingungen die Zielstellen 154M, 156M, 158M und 160M extrahiert.
  • In Schritt S4 berechnet der Prozessor 12 die Bildaufnahmepositionen. Konkret berechnet der Prozessor 12 die Position des Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell 150M, an der die Zielstelle 154M in das Blickfeld des Bildaufnahmeeinheitsmodells 104M fällt, als erste Bildaufnahmeposition.
  • Die echte Bildaufnahmeeinheit 104 weist ein Blickfeld, das den Bereich, in dem eine Bildaufnahme möglich ist, zeigt, und eine Höhe dieses Blickfelds auf. 5 zeigt ein Blickfeld A des Bildaufnahmeeinheitsmodells 104M, das dem Blickfeld der Bildaufnahmeeinheit 104 entspricht. Die Größe des Blickfelds A und die Blickfeldhöhe B des Bildaufnahmeeinheitsmodells 104M können gemäß den Spezifikationen der Pixelanzahl und des optischen Systems des Bildaufnahmesensors der echten Bildaufnahmeeinheit 104 festgelegt werden.
  • Oder der Betreiber kann die Größe des Blickfelds A und die Blickfeldhöhe B des Bildaufnahmeeinheitsmodells 104M auch durch Betätigen der Dateneingabeeinheit 20 im Voraus bestimmen. Bei der vorliegenden Ausführungsform stimmt die Blickfeldhöhe B mit dem Abstand zwischen dem Zentrum des Blickfelds A und dem Ursprungspunkt des Bildaufnahmekoordinatensystems Cs überein.
  • Der Prozessor 12 berechnet die in 5 gezeigte relative Position des Werkstückmodells 150M und des Bildaufnahmeeinheitsmodells 104M als erste Bildaufnahmeposition. Wenn das Werkstückmodell 150M und das Bildaufnahmeeinheitsmodell 104M an der in 5 gezeigten ersten Bildaufnahmeposition angeordnet sind, verläuft die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M (das heißt, die z-Achse des Sensorkoordinatensystems) durch das Zentrum C1 der Zielstelle 154M. Der Abstand zwischen dem Bildaufnahmeeinheitsmodell 104M und der Zielstelle 154M in der Richtung der Sichtlinie O stimmt mit der Blickfeldhöhe B überein. Die x-y-Ebene des Sensorkoordinatensystems Cs (das heißt, die x-y-Ebene des Werkzeugkoordinatensystems CT ) und die x-y-Ebene des Werkstückkoordinatensystems verlaufen zueinander parallel.
  • Der Prozessor 12 berechnet auf Basis der Position des Werkstückkoordinatensystems Cw in dem Roboterkoordinatensystem CR und der Position des Zentrums C1 in dem Werkstückkoordinatensystem Cw die Position des Zentrums C1 in dem Roboterkoordinatensystem CR . Dann ermittelt der Prozessor 12 auf Basis des berechneten Zentrums C1 und der Blickfeldhöhe B die Position und die Lage des Sensorkoordinatensystems Cs (das heißt, die Ursprungspunktposition und die Richtung jeder Achse) in Bezug auf die erste Bildaufnahmeposition.
  • Ebenso berechnet der Prozessor 12 die Position des Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell 150M, an der die Zielstelle 156M in das Blickfeld A des Bildaufnahmeeinheitsmodells 104M fällt, als zweite Bildaufnahmeposition.
  • Wenn das Werkstückmodell 150M und das Bildaufnahmeeinheitsmodell 104M an der zweiten Bildaufnahmeposition angeordnet sind, verläuft die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M durch das Zentrum C2 der Zielstelle 156M und stimmt der Abstand zwischen dem Bildaufnahmeeinheitsmodell 104M und der Zielstelle 156M in der Richtung der Sichtlinie O mit der Blickfeldhöhe B überein. Außerdem verlaufen die x-y-Ebene des Sensorkoordinatensystems Cs und die x-y-Ebene des Werkstückkoordinatensystems zueinander parallel.
  • Außerdem berechnet der Prozessor 12 die Position des Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell 150M, an der die Zielstelle 158M in das Blickfeld A des Bildaufnahmeeinheitsmodells 104M fällt, als dritte Bildaufnahmeposition.
  • Wenn das Werkstückmodell 150M und das Bildaufnahmeeinheitsmodell 104M an der dritten Bildaufnahmeposition angeordnet sind, verläuft die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M durch das Zentrum C3 der Zielstelle 158M und stimmt der Abstand zwischen dem Bildaufnahmeeinheitsmodell 104M und der Zielstelle 158M in der Richtung der Sichtlinie O mit der Blickfeldhöhe B überein. Außerdem verlaufen die x-y-Ebene des Sensorkoordinatensystems Cs und die x-y-Ebene des Werkstückkoordinatensystems zueinander parallel.
  • Außerdem berechnet der Prozessor 12 die Position des Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell 150M, an der die Zielstelle 160M in das Blickfeld A des Bildaufnahmeeinheitsmodells 104M fällt, als vierte Bildaufnahmeposition.
  • Wenn das Werkstückmodell 150M und das Bildaufnahmeeinheitsmodell 104M an der vierten Bildaufnahmeposition angeordnet sind, verläuft die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M durch das Zentrum C4 der Zielstelle 160M und stimmt der Abstand zwischen dem Bildaufnahmeeinheitsmodell 104M und der Zielstelle 160M in der Richtung der Sichtlinie O mit der Blickfeldhöhe B überein. Außerdem verlaufen die x-y-Ebene des Sensorkoordinatensystems Cs und die x-y-Ebene des Werkstückkoordinatensystems zueinander parallel.
  • Auf diese Weise berechnet der Prozessor 12 die n-te Bildaufnahmeposition (n = 1, 2, 3, 4) in Bezug auf alle in Schritt S3 extrahierten Zielstellen 154M, 156M, 158M, 160M, und speichert sie in dem Systemspeicher 14. Folglich wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Bildaufnahmepositionsberechnungseinheit 32 (1), die die Bildaufnahmepositionen berechnet.
  • Der Betreiber kann die Bedingungen für die n-te Bildaufnahmeposition (das heißt, die Bedingung, dass die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M durch das Zentrum Cn verläuft, die Bedingung, dass der Abstand zwischen dem Bildaufnahmeeinheitsmodell 104M und der Zielstelle 154M mit der Blickfeldhöhe B übereinstimmt, oder die Bedingung, dass die durch das Sensorkoordinatensystem bestimmte Ebene und die durch das Werkstückkoordinatensystem bestimmte Ebene zueinander parallel verlaufen) auch durch Betätigen der Dateneingabeeinheit 20 im Voraus festlegen.
  • In Schritt S5 führt der Prozessor 12 eine Simulation des Positionierungsbetriebs, um das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an einer n-ten Bildaufnahmeposition zu positionieren, aus. Dieser Schritt S5 wird unter Bezugnahme auf 6 erklärt. In Schritt S11 setzt der Prozessor 12 die Nummer „n“, die die Bildaufnahmeposition spezifiziert, auf „1“.
  • In Schritt S12 positioniert der Prozessor 12 das Bildaufnahmeeinheitsmodell 104M und das Werkstückmodell 150M an der n-ten Bildaufnahmeposition. Wenn nun zum Zeitpunkt des Beginns dieses Schritts S12 n = 1 gesetzt wurde, bewegt der Prozessor 12 das Bildaufnahmeeinheitsmodell 104M durch simuliertes Betreiben des Robotermodells 102M in dem virtuellen Raum 200, und positioniert er das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an der ersten Bildaufnahmeposition. Als Folge wird das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an der in 5 gezeigten ersten Bildaufnahmeposition positioniert.
  • In Schritt S13 erlangt der Prozessor 12 n-te Positionsdaten des Robotermodells 102M zu dem Zeitpunkt, als das Bildaufnahmeeinheitsmodell 104M in Schritt S12 in Bezug auf das Werkstückmodell 150M an der n-ten Bildaufnahmeposition positioniert wurde.
  • Als ein Beispiel erlangt der Prozessor 12 als n-te Positionsdaten Daten bezüglich der Position und der Lage des Werkzeugkoordinatensystems CT (das heißt, die Ursprungspunktposition und die Richtungen der einzelnen Achsen) in dem Roboterkoordinatensystem CR zum Zeitpunkt der Positionierung des Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell M an der n-ten Bildaufnahmeposition und speichert diese in dem Systemspeicher 14.
  • Oder der Prozessor 12 erlangt als n-te Positionsdaten die Drehwinkel der einzelnen beweglichen Elementmodelle (das heißt, des Drehrumpfmodells 108M, des Oberarmabschnittsmodells 116M, des Unterarmabschnittsmodells 118M, des Handgelenkabschnittsmodells 112M) des Robotermodells 102M zum Zeitpunkt der Positionierung des Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell M an der n-ten Bildaufnahmeposition und speichert diese in dem Systemspeicher 14.
  • In Schritt S14 erhöht der Prozessor 12 die Nummer „n“, die die Bildaufnahmeposition spezifiziert, um „1“ (das heißt, n = n+1).
  • In Schritt S15 bestimmt der Prozessor 12, ob die Nummer „n“, die die Bildaufnahmeposition spezifiziert, eine größere Zahl als nD geworden ist oder nicht. Hier ist nD die Anzahl der in Schritt S3 extrahierten Zielstellen. Bei der vorliegenden Ausführungsform ist nD = 4.
  • Wenn die Nummer „n“ größer als nD ist (das heißt, n > nD), bestimmt der Prozessor 12 JA und wird der in 6 gezeigte Schritt S5 beendet und zu dem in 3 gezeigten Schritt S6 übergegangen. Wenn die Nummer „n“ andererseits höchstens nD beträgt (das heißt, n ≦ nD), bestimmt der Prozessor 12 NEIN und wird zu Schritt S12 zurückgekehrt. Auf diese Weise führt der Prozessor 12 die Schritte S12 bis S15 als Schleife aus, bis in Schritt S15 JA bestimmt wird.
  • Auf diese Weise führt der Prozessor 12 die Simulation des Positionierungsbetriebs, um das Bildaufnahmeeinheitsmodul 104M in Bezug auf das Werkstückmodell 150M an einer n-ten Bildaufnahmeposition zu positionieren, aus und erlangt er jeweils n-te Positionsdaten des Robotermodells 102M zu dem Zeitpunkt, als das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstück 150M an der n-ten Bildaufnahmeposition positioniert wurde. Folglich wirkt der Prozessor 12 als Simulationseinheit 34 (4), die eine Simulation des Positionierungsbetriebs ausführt.
  • Unter erneuter Bezugnahme auf 6 erstellt der Prozessor 12 in Schritt S6 auf Basis der in Schritt S13 erlangten n-ten Positionsdaten (n = 1, 2, 3, 4) ein Betriebsprogramm für das Robotersystem 100. Konkret setzt der Prozessor 12 die n-ten Positionsdaten als Lehrpunkte, an denen der echte Roboter 102 positioniert werden soll, an und erstellt er ein Betriebsprogramm für eine wie oben beschriebenen Betriebsabfolge des echten Robotersystems 100.
  • Dieses Betriebsprogramm 100 lässt den echten Roboter 102 den gleichen Betrieb wie den Positionierungsbetrieb bei der Simulation von Schritt S5, der das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an einer n-ten Bildaufnahmeposition positioniert, ausführen. Dadurch kann der Roboter 102 die Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 jeweils an einer n-ten Bildaufnahmeposition positionieren.
  • Außerdem lässt dieses Betriebsprogramm die Bildaufnahmeeinheit 104 mit jeder Positionierung der Bildaufnahmeeinheit 104 durch den Roboter an einer n-ten Bildaufnahmeposition eine Bildaufnahmetätigkeit ausführen, bei dem das Element 154, 156, 158 oder 160 des Werkstück, das das Bildaufnahmeobjekt darstellt, aufgenommen wird. Auf diese Weise kann ein Bild des Elements 154, 156, 158 oder 160 des Werkstücks 150 erlangt werden.
  • Wie oben beschrieben wurde, extrahiert der Prozessor 12 bei der vorliegenden Ausführungsform die Zielstellen (154M, 156M, 158M, 160M) auf dem Werkstückmodell 150M automatisch (Schritt S3), und führt er eine Simulation des Positionierungsbetriebs in Bezug auf die extrahierten Zielstellen aus (Schritt S5).
  • Dann erlangt der Prozessor 12 bei der betreffenden Simulation automatisch n-te Positionsdaten (Schritt S13) und erstellt er unter Verwendung dieser n-ten Positionsdaten ein Betriebsprogramm für das echte Robotersystem 100.
  • Da das Lehren eines Betriebsprogramms für eine Betriebsabfolge des Robotersystems 100 durch diesen Aufbau unabhängig von der Erfahrung des Betreibers vorgenommen werden kann, kann die Zeit, die für die Tätigkeit zum Anfahren des Systems nötig ist, stark verkürzt werden.
  • Außerdem enthalten die Extraktionsbedingungen bei der vorliegenden Ausführungsform eine erste Bedingung, die die Form, die Farbe und die Größe der Zielstelle (154M, 156M, 158M, 160M) spezifiziert. Durch diese Ausführung kann der Betreiber die zu extrahierenden Zielstellen des Werkstückmodells 150M durch Bestimmen der Form, der Farbe und der Größe leicht wählen.
  • Außerdem enthalten die Extraktionsbedingungen bei der vorliegenden Ausführungsform eine zweite Bedingung, die die Form, die Farbe und die Größe von Stellen des Werkstückmodells 150M, die nicht als Objekt angesehen werden sollen, spezifiziert. Durch diese Ausführung kann der Betreiber Stellen des Werkstückmodells 150M, die nicht extrahiert werden sollen, durch Bestimmen der Form, der Farbe und der Größe leicht aus den Extraktionsobjekten ausschließen.
  • Außerdem umfasst die Programmiervorrichtung 10 bei der vorliegenden Ausführungsform die Dateneingabeeinheit 20, die als Extraktionsbedingungsentgegennahmeeinheit 28, welche eine Eingabe der Extraktionsbedingungen erhält, wirkt. Da der Betreiber die Extraktionsbedingungen durch diese Ausführung beliebig festlegen und eingeben kann, können Zielstellen leicht und genau bestimmt werden.
  • Außerdem berechnet der Prozessor 12 bei der vorliegenden Ausführungsform eine n-te Bildaufnahmeposition (Schritt S4). Da die n-te Bildaufnahmeposition durch diese Ausführung automatisch berechnet werden kann, ohne dass der Betreiber diese n-te Bildaufnahmeposition händisch bestimmt, kann die Zeit, die für die Tätigkeit zum Anfahren des Systems nötig ist, effektiv verkürzt werden.
  • Als nächstes wird unter Bezugnahme auf 7 bis 10 eine andere Funktion der Programmiervorrichtung 10 erklärt. 7 ist ein Blockdiagramm, das die andere Funktion der Programmiervorrichtung 10 zeigt. Bei der vorliegenden Ausführungsform wirkt der Prozessor 12 außerdem als Bestimmungseinheit 38, als Bildaufnahmepositionssucheinheit 40 und als erste Bildaufnahmepositionskorrektureinheit 42.
  • Unter Bezugnahme auf 8 wird nachstehend die Funktion der Programmiervorrichtung 10 nach der vorliegenden Ausführungsform erklärt. In 8 sind gleiche Prozesse wie bei dem in 3 gezeigten Ablauf mit gleichen Schrittnummern versehen, und es wird auf eine wiederholte Erklärung verzichtet.
  • Nach Schritt S4 legt der Prozessor 12 in Schritt S21 den Bewegungsweg bei der Bewegung des Bildaufnahmeeinheitsmodells 104M durch das Robotermodell 102M in Bezug auf das Werkstückmodell 150M an die einzelnen n-ten Bildaufnahmepositionen bei der Simulation des nachstehend besprochenen Schritts S22 fest.
  • Nun wird der technische Sinn dieses Schritts S21 erklärt. An einer tatsächlichen Produktionsstelle kommt es vor, dass die Bildaufnahmeobjektstelle zur Verkürzung der Zykluszeit durch die Bildaufnahmeeinheit 104 aufgenommen wird, während die Bildaufnahmeeinheit 104 durch den Roboter 102 bewegt wird. In diesem Fall ist es nötig, den Bewegungsweg für die Bewegung der Bildaufnahmeeinheit 104 durch den Roboter 102 so festzulegen, dass er glatt fortlaufend ist (das heißt, dass bei dem Bewegungsweg keine nicht aufeinanderfolgenden Ecken auftreten).
  • Bei der vorliegenden Ausführungsform ändert der Prozessor 12 jede der in Schritt S4 berechneten n-ten Bildaufnahmepositionen zu einer neuen n-ten Bildaufnahmeposition, damit der Bewegungsweg bei der fortlaufenden Bewegung des Bildaufnahmeeinheitsmodells 104M durch das Robotermodell 102M an die erste Bildaufnahmeposition, die zweite Bildaufnahmeposition, ... die n-te Bildaufnahmeposition bei der Simulation des nachstehend besprochenen Schritts S22 zu einem glatt fortlaufenden Weg werden.
  • In Schritt S22 führt der Prozessor 12 eine Simulation des Positionierungsbetriebs, um das Bildaufnahmeeinheitsmodul 104M in Bezug auf das Werkstückmodell 150M an einer n-ten Bildaufnahmeposition zu positionieren, aus. Dieser Schritt S22 wird unter Bezugnahme auf 9 erklärt. Bei dem Ablauf, der in 9 gezeigt ist, sind gleiche Prozesse wie in 6 mit gleichen Schrittnummern versehen, und es wird auf eine wiederholte Erklärung verzichtet.
  • Nach Schritt S12 erlangt der Prozessor 12 in Schritt S23 ein virtuelles Bild. Konkret erstellt der Prozessor 12 ein virtuelles Bild, das in das Blickfeld A des Bildaufnahmeeinheitsmodells 104M fällt, wenn das Robotermodell 102M das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an einer n-ten Bildaufnahmeposition positioniert hat.
  • Der Prozessor 12 kann das virtuelle Bild in diesem Schritt S23 auch erstellen, wenn das Robotermodell 102M das Bildaufnahmeeinheitsmodell 104M in Schritt S12 bewegt.
  • 10 und 11 zeigen virtuelle Bilder, die in das Blickfeld A des Bildaufnahmeeinheitsmodells 104M fallen, wenn das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an einer ersten Bildaufnahmeposition positioniert wurde. In 10 und 11 sind zur Erleichterung des Verständnisses die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M und das Zentrum C1 der Zielstelle 154M dargestellt.
  • Bei dem virtuellen Bild 202, das in 10 gezeigt ist, ist die Zielstelle 154M von der Mitte des virtuellen Bilds 202 zur linken Seite der Papierfläche verschoben und ist ein Teil der Zielstelle 154M nicht in dem virtuellen Bild 202 abgebildet.
  • Das heißt, in diesem Fall stimmen die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M und das Zentrum C1 der Zielstelle 154M nicht miteinander überein und liegt ein Teil der Zielstelle 154M nicht in dem Blickfeld A des Bildaufnahmeeinheitsmodells 104M, wenn das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an der ersten Bildaufnahmeposition positioniert wurde.
  • Bei dem virtuellen Bild 204, das in 11 gezeigt ist, ist die Zielstelle 154M zwar von dem Zentrum des virtuellen Bilds 204 zur linken Seite der Papierfläche verschoben, doch ist die gesamte Zielstelle 154M in dem virtuellen Bild 204 abgebildet.
  • Das heißt, in diesem Fall stimmen zwar die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M und das Zentrum C1 der Zielstelle 154M nicht überein, wenn das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an der ersten Bildaufnahmeposition positioniert wurde, doch liegt die gesamte Zielstelle 154M in dem Blickfeld A des Bildaufnahmeeinheitsmodells 104M.
  • Der Umstand, dass sich die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M und das Zentrum C1 der Zielstelle 154M so verschieben, kann durch Ändern der n-ten Bildaufnahmeposition in dem oben beschriebenen Schritt S21 auftreten. Der Prozessor 12 erstellt in Schritt S23 ein virtuelles Bild wie das virtuelle Bild 202 oder 204 und speichert dieses in dem Systemspeicher 14.
  • In Schritt S24 bestimmt der Prozessor 12, ob die Zielstelle 154M, 156M, 158M oder 160M in dem Blickfeld A liegt oder nicht, wenn das Bildaufnahmeeinheitsmodell 104M und das Werkstückmodell 150M in Schritt S12 an einer n-ten Bildaufnahmeposition positioniert wurden.
  • Wenn nun zum Zeitpunkt des Beginns dieses Schritts S24 n = 1 gesetzt wurde, nimmt der Prozessor 12 eine Bildanalyse des in Schritt S23 erlangten virtuellen Bildes vor und extrahiert er die Kontur der in diesem virtuellen Bild abgebildeten Zielstelle 154M.
  • Außerdem liest der Prozessor 12 die Bilddaten des Robotermodells 102M aus dem Systemspeicher 14 und erlangt aus diesen Bilddaten die Form des Elementmodells 154M (zum Beispiel die Form der Kontur des oberen Endflächenmodells des Elementmodells 154M), das die Zielstelle darstellt.
  • Dann bestimmt der Prozessor 12, ob die Form der Kontur der in dem virtuellen Bild abgebildeten Zielstelle 154M und die Form des Elementmodells 154M in den Bilddaten miteinander übereinstimmen oder nicht. Wenn die Form der in dem virtuellen Bild abgebildeten Zielstelle 154M mit den Bilddaten übereinstimmt, bestimmt der Prozessor 12, dass die Zielstelle 154M in dem Blickfeld A liegt (das heißt, JA), und wird zu Schritt S26 übergegangen.
  • Wenn die Form der in dem virtuellen Bild abgebildeten Zielstelle 154M andererseits nicht mit den Bilddaten übereinstimmt, bestimmt der Prozessor 12, dass die Zielstelle 154M nicht in dem Blickfeld A liegt (das heißt, NEIN), und wird zu Schritt S25 übergegangen.
  • Zum Beispiel weist die Form der Kontur der in dem virtuellen Bild abgebildeten Zielstelle 154M im Fall des in 10 gezeigten virtuellen Bilds 202 eine Kreisform, der ein Teil fehlt, auf, und stimmt sie nicht mit der Form des Elementmodells 154M der Bilddaten (das heißt, einem vollkommenen Kreis) überein. Folglich kommt es dann, wenn in Schritt S23 das virtuelle Bild 202 erlangt wurde, dazu, dass der Prozessor 12 in diesem Schritt S24 NEIN bestimmt.
  • Andererseits bildet die Form der Kontur der in dem virtuellen Bild abgebildeten Zielstelle 154M im Fall des in 11 gezeigten virtuellen Bilds 204 einen vollkommenen Kreis, und stimmt sie mit der Form des Elementmodells 154M der Bilddaten überein. Folglich bestimmt der Prozessor 12 dann, wenn in Schritt S23 das virtuelle Bild 204 erlangt wurde, in diesem Schritt S24 JA.
  • Der Prozessor 12 kann auch den Ähnlichkeitsgrad der Form der Kontur des in dem virtuellen Bild abgebildeten Elementmodells 154M und der Form des Elementmodells 154M der Bilddaten berechnen und JA bestimmen, wenn der Ähnlichkeitsgrad wenigstens einen vorab festgelegten Schwellenwert beträgt. Dieser Ähnlichkeitsgrad ist ein Parameter, der den Grad der Ähnlichkeit von zwei Formen ausdrückt und enthält zum Beispiel das Flächenverhältnis der beiden Formen.
  • Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Bestimmungseinheit 38 (7), die bestimmt, ob die Zielstelle 154M, 156M, 158M oder 160M in das Blickfeld A fällt oder nicht.
  • In Schritt S25 führt der Prozessor ein Such- und Korrekturschema für eine n-te Bildaufnahmeposition aus. Dieser Schritt S25 wird unter Bezugnahme auf 12 erklärt.
  • In Schritt S27 ändert der Prozessor 12 die n-te Bildaufnahmeposition. Konkret ändert der Prozessor 12 die n-te Bildaufnahmeposition, die zum Zeitpunkt des Beginns von Schritt S25 festgelegt war, zu einer relativen Position des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M, wenn das an dieser n-ten Bildaufnahmeposition angeordnete Bildaufnahmeeinheitsmodell 104M um eine bestimmten Entfernung δ1 in der Richtung der x-Achse, der y-Achse oder der z-Achse des Werkzeugkoordinatensystems CT verschoben wurde.
  • Auf diese Weise kann der Prozessor 12 die n-te Bildaufnahmeposition, die zum Zeitpunkt des Beginns von Schritt S25 festgelegt war, zu einer neuen n-ten Bildaufnahmeposition ändern. An der n-ten Bildaufnahmeposition nach der Änderung weicht das Bildaufnahmeeinheitsmodell 104M um die Entfernung δ1 in der Richtung der x-Achse, der y-Achse oder der z-Achse des Werkzeugkoordinatensystems CT von der n-ten Bildaufnahmeposition vor der Änderung ab.
  • In Schritt S28 führt der Prozessor 12 die Positionierungstätigkeit, um das Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell 150M an der n-ten Bildaufnahmeposition zu positionieren, erneut aus. Konkret bringt der Prozessor 12 die Position des Bildaufnahmeeinheitsmodells 104M in dem virtuellen Raum 200 an eine Zwischenposition auf dem Bewegungsweg zu der n-ten Bildaufnahmeposition zurück.
  • Dann führt der Prozessor 12 eine Simulation des Positionierungsbetriebs, um das Bildaufnahmeeinheitsmodul 104M durch das Robotermodell 102M an der n-ten Bildaufnahmeposition nach der Änderung zu positionieren, aus.
  • In Schritt S29 erlangt der Prozessor 12 so wie in dem oben beschriebenen Schritt S23 erneut ein virtuelles Bild.
  • In Schritt S30 bestimmt der Prozessor 12 so wie in dem oben beschriebenen Schritt S24, ob die in dem virtuellen Bild, das in Schritt S29 erlangt wurde, abgebildete Zielstelle 154M, 156M, 158M oder 160M in das Blickfeld A fällt oder nicht.
  • Wenn der Prozessor 12 JA bestimmt, wird zu Schritt S31 übergegangen, während bei einer Bestimmung von NEIN zu Schritt S27 zurückgekehrt wird. Auf diese Weise führt der Prozessor 12 die Schritte S27 bis S30 als Schleife aus, bis in Schritt S24 JA bestimmt wird.
  • Durch diese wiederholte Ausführung der Schritte S27 bis S30 sucht der Prozessor 12 eine relative Position des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M, an der die Zielstelle 154M, 156M, 158M oder 160M in das Blickfeld A fällt. Folglich wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Bildaufnahmepositionssucheinheit 40 (7), die diese relative Position sucht.
  • Wenn der Prozessor 12 die n-te Bildaufnahmeposition in Schritt S27 ändert, bis in Schritt S30 JA bestimmt wird, kann die verschiebende Änderung in der Richtung der x-Achse, die verschiebende Änderung in der Richtung der y-Achse, oder die verschiebende Änderung in der Richtung der z-Achse des Werkzeugkoordinatensystems CT auch gemäß einer bestimmten Reihenfolge vorgenommen werden.
  • Was diese bestimmte Reihenfolge betrifft, kann der Prozessor 12 die n-te Bildaufnahmeposition zum Beispiel in einer solchen Reihenfolge ändern, dass die Änderung in der Richtung der x-Achse zehn Mal ausgeführt wird, dann die Änderung in der Richtung der y-Achse zehn Mal ausgeführt wird, und danach die Änderung in der Richtung der z-Achse zehn Mal ausgeführt wird.
  • Oder wenn die n-te Bildaufnahmeposition in Schritt S27 geändert wird, bis in Schritt S30 JA bestimmt wird, kann auch ein Verschiebungsbereich [α, β] für das Bildaufnahmeeinheitsmodell 104M in der Richtung jeder Achse des Werkzeugkoordinatensystems CT festgelegt werden.
  • Wenn der Verschiebungsbereich des Bildaufnahmeeinheitsmodells 104M in der Richtung der x-Achse des Werkzeugkoordinatensystems CT zum Beispiel als [-10, 10] festgelegt wurde, verschiebt der Prozessor 12 das Bildaufnahmeeinheitsmodell 104M von der n-ten Position, die zum Zeitpunkt des Beginns von Schritt S25 festgelegt war, in einem Bereich von -10 ≦ x ≦ 10 in der Richtung der x-Achse des Werkzeugkoordinatensystems CT .
  • Oder der Prozessor 12 kann bei der Änderung der n-ten Bildaufnahmeposition in Schritt S27, bis in Schritt S30 JA bestimmt wird, auch eine Festlegung erhalten, ob eine verschiebende Änderung des Bildaufnahmeeinheitsmodells 104M in der Richtung der x-Achse, seine verschiebende Änderung in der Richtung der y-Achse, und seine verschiebende Änderung in der Richtung der z-Achse des Werkzeugkoordinatensystems CT gültig oder ungültig ist.
  • Zum Beispiel nimmt der Prozessor 12 bei der Änderung der n-ten Bildaufnahmeposition in Schritt S27 keine verschiebende Änderung des Bildaufnahmeeinheitsmodells 104M in der Richtung der z-Achse vor, wenn eine verschiebende Änderung in der Richtung der z-Achse als „ungültig“ festgelegt wurde.
  • Die bestimmte Reihenfolge, der Bereich [α, β] und die Festlegung der Gültigkeit/Ungültigkeit, die oben beschrieben wurden, können im Voraus bestimmt werden, oder der Prozessor 12 kann von dem Betreiber über die Dateneingabeeinheit 20 eine Eingabe der bestimmten Reihenfolge, des Bereichs [α, β] und der Festlegung der Gültigkeit/Ungültigkeit erhalten.
  • In Schritt S31 korrigiert der Prozessor 12 die n-te Bildaufnahmeposition, die zum Zeitpunkt des Beginns von Schritt S25 festgelegt war, zu der n-ten Bildaufnahmeposition, die zum Zeitpunkt der Bestimmung von JA in Schritt S30 festgelegt ist, und speichert sie in dem Systemspeicher 14.
  • Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als erste Bildaufnahmepositionskorrektureinheit 42 (7), die die n-te Bildaufnahmeposition auf Basis der in Schritt S27 bis S30 gesuchten relativen Position des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M korrigiert. Dann beendet der Prozessor 12 den in 12 gezeigten Schritt S25 und geht zu dem in 9 gezeigten Schritt S13 über.
  • Auf diese Weise sucht der Prozessor 12 dann, wenn die Zielstelle 154M, 156M, 158M oder 160M bei der Ausführung von Schritt S23 nicht in das Blickfeld A fällt, eine relative Position des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M, an der diese Zielstelle in das Blickfeld A fällt (Schritt S27 bis S30) und korrigiert eine n-te Bildaufnahmeposition auf Basis dieser relativen Position (Schritt S31).
  • Durch diese Ausführung kann dann, wenn der Bewegungsweg des Bildaufnahmeeinheitsmodells 104M durch das Robotermodell 102M auf einen glatten Weg festgelegt wurde (Schritt S21), eine n-te Bildaufnahmeposition, an der die Zielstelle 154M, 156M, 158M oder 160M sicher in das Blickfeld A fällt, erlangt werden.
  • Folglich kann ein Betriebsprogramm, um Bildaufnahmeobjektstellen durch die Bildaufnahmeeinheit 104 aufzunehmen, während die Bildaufnahmeeinheit 104 durch den echten Roboter 102 bewegt wird, effektiv erstellt werden.
  • Als nächstes wird unter Bezugnahme auf 13 bis 17 noch eine andere Funktion der Programmiervorrichtung 10 erklärt. 13 ist ein Blockdiagramm, das diese noch andere Funktion der Programmiervorrichtung 10 zeigt. Bei der vorliegenden Ausführungsform wirkt der Prozessor 12 ferner als Interferenzdetektionseinheit 44, als Nichtinterferenzpositionssucheinheit 46, und als zweite Bildaufnahmepositionskorrektureinheit 48.
  • Unter Bezugnahme auf 14 wird nachstehend die Funktion der Programmiervorrichtung 10 nach der vorliegenden Ausführungsform erklärt. In 14 sind gleiche Prozesse wie bei dem in 3 gezeigten Ablauf mit gleichen Schrittnummern versehen, und es wird auf eine wiederholte Erklärung verzichtet.
  • In Schritt S41 wirkt der Prozessor 12 als Modellanordnungseinheit 26 und ordnet er das Werkstückmodell 150M, das Robotermodell 102M, das Bildaufnahmeeinheitsmodell 104M und ein Umgebungsobjektmodell 206M in dem virtuellen Raum 200 an. Ein Beispiel für diesen virtuellen Raum 200 ist in 15 gezeigt. Das Umgebungsobjektmodell 206M ist eine dreidimensionale CG, die ein im Umfeld des Robotersystems 100 und des Werkstücks 150 vorhandenes Objekt wie etwa eine Säule, eine Wand usw. der Arbeitszelle modelliert.
  • Nach Schritt S4 führt der Prozessor 12 in Schritt S42 eine Simulation des Positionierungsbetriebs, um das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M an einer n-ten Bildaufnahmeposition zu positionieren, aus. Dieser Schritt S42 wird unter Bezugnahme auf 16 erklärt. Bei dem in 16 gezeigten Ablauf sind gleiche Schritte wie in 6 mit gleichen Bezugszeichen versehen, und es wird auf eine wiederholte Erklärung verzichtet.
  • Nach Schritt S12 bestimmt der Prozessor 12 in Schritt S43, ob zwischen dem Robotermodell 102M oder dem Bildaufnahmeeinheitsmodell 104M und dem Werkstückmodell 150M oder dem Umgebungsobjektmodell 206M eine Interferenz detektiert wurde oder nicht.
  • Konkret bestimmt der Prozessor 12 auf Basis von Bilddaten des Robotermodells 102M, des Bildaufnahmeeinheitsmodells 104M, des Werkstückmodells 150M und des Umgebungsobjektmodells 206M und Positionsdaten dieser Elemente in dem Roboterkoordinatensystem CR , ob zwischen dem Robotermodell 102M oder dem Bildaufnahmeeinheitsmodell 104M und dem Werkstückmodell 150M oder dem Umgebungsobjektmodell 206M eine Interferenz aufgetreten ist oder nicht.
  • Wenn der Prozessor 12 bestimmt, dass zwischen dem Robotermodell 102M oder dem Bildaufnahmeeinheitsmodell 104M und dem Werkstückmodell 150M oder dem Umgebungsobjektmodell 206M eine Interferenz aufgetreten ist (das heißt, JA), wird zu Schritt S44 übergegangen.
  • Wenn der Prozessor andererseits bestimmt, dass zwischen dem Robotermodell 102M oder dem Bildaufnahmeeinheitsmodell 104M und dem Werkstückmodell 150M oder dem Umgebungsobjektmodell 206M keine Interferenz aufgetreten ist (das heißt, NEIN), wird zu Schritt S13 übergegangen.
  • Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Interferenzdetektionseinheit 44 ( 13), die eine Interferenz zwischen dem Robotermodell 102M oder dem Bildaufnahmeeinheitsmodell 104M und dem Werkstückmodell 150M oder dem Umgebungsobjektmodell 206M detektiert.
  • In Schritt S44 führt der Prozessor 12 ein Nichtinterferenzpositionssuch- und Bildaufnahmepositionskorrekturschema aus. Dieser Schritt S44 wird unter Bezugnahme auf 17 erklärt.
  • In Schritt S45 ändert der Prozessor die relative Position des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M, die in Schritt S12 an der n-ten Bildaufnahmeposition angeordnet wurden. Konkret verschiebt der Prozessor 12 das Bildaufnahmeeinheitsmodell 104M um eine bestimmte Entfernung δ2 in der Richtung der x-Achse, der y-Achse oder der z-Achse des Werkzeugkoordinatensystems CT .
  • Oder der Prozessor 12 dreht das Bildaufnahmeeinheitsmodell 104M um einen bestimmten Winkel θ in eine Richtung um die x-Achse oder um die y-Achse des Werkzeugkoordinatensystems CT (oder des Sensorkoordinatensystems Cs). Auf diese Weise kann der Prozessor 12 die Position des Bildaufnahmeeinheitsmodells 104M um eine Entfernung δ2 oder einen Winkel 9 ändern.
  • Hier ändert der Prozessor 12 in diesem Schritt S45 die Position des Bildaufnahmeeinheitsmodells 104M so, dass die Zielstelle 154A, 156A, 158A oder 160A in das Blickfeld A fällt. Zum Beispiel ändert der Prozessor 12 die Position des Bildaufnahmeeinheitsmodells 104M so, dass die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M durch das Zentrum Cn der Zielstelle 154M, 156M, 158M oder 160M (oder durch einen beliebigen Punkt auf der Zielstelle) verläuft.
  • In Schritt S46 bestimmt der Prozessor 12 so wie bei dem oben beschriebenen Schritt S43, ob zwischen dem Robotermodell 102M oder dem Bildaufnahmeeinheitsmodell 104M und dem Werkstückmodell 150M oder dem Umgebungsobjektmodell 206M eine Interferenz detektiert wurde oder nicht.
  • Wenn der Prozessor 12 JA bestimmt, wird zu Schritt S47 übergegangen, während bei einer Bestimmung von NEIN zu Schritt S45 zurückgekehrt wird. Auf diese Weise führt der Prozessor die Schritte S45 bis S46 als Schleife aus, bis in Schritt S46 JA bestimmt wird.
  • Wenn in Schritt S46 JA bestimmt wurde, kommt es dazu, dass das Robotermodell 102M oder das Bildaufnahmeeinheitsmodell 104M an einer Nichtinterferenzposition, an der keine Interferenz mit dem Werkstückmodell 150M oder dem Umgebungsobjektmodell 206M besteht, angeordnet wird.
  • Durch dieses wiederholte Ausführen der Schritte S45 bis S46 sucht der Prozessor 12 eine Nichtinterferenzposition, an der die genannte Interferenz nicht länger auftritt. Folglich wirkt der Prozessor bei der vorliegenden Ausführungsform als Nichtinterferenzpositionssucheinheit 46 ( 13), die eine Nichtinterferenzposition sucht.
  • Bei der wiederholten Ausführung von Schritt S45, bis in Schritt S46 JA bestimmt wird, kann der Prozessor 12 auch einen Betrieb, bei dem das Bildaufnahmeeinheitsmodell 104M in der Richtung der x-Achse des Werkzeugkoordinatensystems CT bewegt wird, einen Betrieb, bei dem es in der Richtung der y-Achse verschoben wird, einen Betrieb, bei dem es in der Richtung der z-Achse verschoben wird, einen Betrieb, bei dem es um die Richtung der x-Achse des Werkzeugkoordinatensystems CT (oder des Sensorkoordinatensystems Cs) gedreht wird, oder einen Betrieb, bei dem es um die Richtung der y-Achse gedreht wird, gemäß einer bestimmten Reihenfolge ausführen.
  • Oder bei der wiederholten Ausführung von Schritt S45, bis in Schritt S46 JA bestimmt wird, kann auch ein Bereich [γ, ε] für die Bewegung des Bildaufnahmeeinheitsmodells 104M in der Richtung der einzelnen Achsen oder um die einzelnen Achsen des Werkzeugkoordinatensystems CT festgelegt werden.
  • Wenn der Bereich für die Drehung des Bildaufnahmeeinheitsmodells 104M um die y-Achse des Sensorkoordinatensystems Cs zum Beispiel als [-10 °, 10 °] festgelegt wurde, dreht der Prozessor 12 das Bildaufnahmeeinheitsmodell 104M in Schritt S45 von der Position zum Zeitpunkt des Beginns von Schritt S25 in einem Bereich von -10 ° ≦ x ≦ 10 ° um die y-Achse des Sensorkoordinatensystems Cs.
  • Oder der Prozessor 12 kann bei der Ausführung von Schritt S45 auch eine Festlegung der Gültigkeit oder Ungültigkeit eines Betriebs, bei dem das Bildaufnahmeeinheitsmodell 104M in der Richtung der x-Achse des Werkzeugkoordinatensystems CT bewegt wird, eines Betriebs, bei dem es in der Richtung der y-Achse verschoben wird, eines Betriebs, bei dem es in der Richtung der z-Achse verschoben wird, eines Betriebs, bei dem es um die Richtung der x-Achse des Werkzeugkoordinatensystems CT (oder des Sensorkoordinatensystems Cs) gedreht wird, oder eines Betriebs, bei dem es um die Richtung der y-Achse gedreht wird, erhalten.
  • Zum Beispiel nimmt der Prozessor 12 bei der Ausführung von Schritt S45 keinen Betrieb, bei dem eine Drehung um die y-Achse des Sensorkoordinatensystems Cs erfolgt, vor, wenn ein Betrieb, bei dem eine Drehung um die y-Achse des Sensorkoordinatensystems Cs erfolgt, als „ungültig“ festgelegt wurde.
  • Die bestimmte Reihenfolge, der Bereich [γ, ε] und die Festlegung der Gültigkeit/Ungültigkeit, worauf bei Schritt S45 Bezug genommen wird, können im Voraus bestimmt werden, oder der Prozessor 12 kann von dem Betreiber über die Dateneingabeeinheit 20 eine Eingabe der bestimmten Reihenfolge, des Bereichs [γ, ε] und der Festlegung der Gültigkeit/Ungültigkeit erhalten.
  • In Schritt S47 korrigiert der Prozessor 12 die n-te Bildaufnahmeposition, die zum Zeitpunkt des Beginns von Schritt S44 festgelegt war, zu der relativen Position des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M, die zum Zeitpunkt der Bestimmung von JA in Schritt S46 festgelegt ist, und speichert sie in dem Systemspeicher 14.
  • Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als zweite Bildaufnahmepositionskorrektureinheit 48 (13), die eine n-te Bildaufnahmeposition auf Basis der in Schritt S45 bis S46 gesuchten Nichtinterferenzposition korrigiert. Nach Schritt S47 beendet der Prozessor 12 den in Schritt S17 gezeigten Schritt S44 und wird zu dem in 16 gezeigten Schritt S13 zurückgekehrt.
  • Wie oben beschrieben sucht der Prozessor 12 bei der vorliegenden Ausführungsform eine Nichtinterferenzposition, an die die in Schritt S43 detektierte Interferenz nicht länger entsteht (Schritt S45 bis S46), und erstellt er das Betriebsprogramm (Schritt S6) unter Verwendung der auf Basis der Nichtinterferenzposition korrigierten n-ten Bildaufnahmeposition.
  • Durch diese Ausführung kann ein Betriebsprogramm für eine Betriebsabfolge, bei der die Zielstelle 154M, 156M, 158M oder 160M durch die Bildaufnahmeeinheit 104 aufgenommen wird, so erstellt werden, dass in einer Umgebung, in der im Umfeld des Robotersystems 100 ein Umgebungsobjekt vorhanden ist, keine Interferenz zwischen dem Roboter 102 oder der Bildaufnahmeeinheit 104 und dem Werkstück 150 oder dem Umgebungsobjekt auftritt.
  • Als nächstes wird unter Bezugnahme auf 18 und 19 noch eine andere Funktion der Programmiervorrichtung 10 erklärt. 18 ist ein Blockdiagramm, die diese noch andere Funktion der Programmiervorrichtung 10 zeigt. Bei der vorliegenden Ausführungsform wirkt der Prozessor 12 ferner als Bildaufnahmetimingfestlegeeinheit 50.
  • Unter Bezugnahme auf 19 wird nachstehend die Funktion der Programmiervorrichtung 10 nach der vorliegenden Ausführungsform erklärt. In 19 sind gleiche Prozesse wie bei dem in 3 gezeigten Ablauf mit gleichen Schrittnummern versehen, und es wird auf eine wiederholte Erklärung verzichtet.
  • Nach Schritt S5 legt der Prozessor 12 in Schritt S51 einen Anfangszeitpunkt ts und einen Endzeitpunkt te für die Bildaufnahmetätigkeit durch die echte Bildaufnahmeeinheit 104 fest. Als ein Beispiel erhält der Prozessor 12 eine Bestimmung der Bewegungsgeschwindigkeit VR des Roboters 102 bei der Positionierung der Bildaufnahmeeinheit 104 in Bezug auf das Werkstück 150 an einer n-ten Bildaufnahmeposition.
  • Konkret erstellt der Prozessor 12 Bilddaten, die eine Eingabe der Bewegungsgeschwindigkeit VR ermöglichen, und stellt diese an der Anzeigeeinheit 22 dar. Der Betreiber gibt durch Betätigen der Dateneingabeeinheit 20 eine gewünschte Bewegungsgeschwindigkeit VR ein, und der Prozessor erhält die Bewegungsgeschwindigkeit VR über die E/A-Schnittstelle 18.
  • Dann legt der Prozessor 12 auf Basis der erhaltenen Bewegungsgeschwindigkeit VR automatisch den Anfangszeitpunkt ts und den Endzeitpunkt te für die Bildaufnahmetätigkeit fest. Zum Beispiel legt der Prozessor 12 den Anfangszeitpunkt ts auf einen Zeitpunkt fest, der um t1 Sekunden vor dem Zeitpunkt liegt, an dem die Bildaufnahmeeinheit 104 durch den Roboter 102 an eine n-te Bildaufnahmeposition gebracht wird, und legt er den Endzeitpunkt te auf einen Zeitpunkt fest, der um t2 Sekunden nach dem Zeitpunkt liegt, zu dem der Roboter 102 die Bildaufnahmeeinheit 104 an der n-ten Bildaufnahmeposition vorbeiführt.
  • Diese Zeiten t1 und t2 können aus der Bewegungsgeschwindigkeit VR des Roboters 102 ermittelt werden. Auf diese Weise legt der Prozessor 12 den Anfangszeitpunkt ts und den Endzeitpunkt te automatisch auf Basis der Bewegungsgeschwindigkeit VR fest.
  • Als anderes Beispiel können der Anfangszeitpunkt ts und der Endzeitpunkt te auch durch den Betreiber beliebig festgelegt werden. Der Prozessor 12 legt den Anfangszeitpunkt te und den Endzeitpunkt te gemäß den Bestimmungen durch den Betreiber fest und speichert sie in dem Systemspeicher 14. Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Bildaufnahmetimingfestlegeeinheit 50, die den Anfangszeitpunkt ts und den Endzeitpunkt te für die Bildaufnahmetätigkeit festlegt.
  • In Schritt S52 erstellt der Prozessor auf Basis der in Schritt S13 (6) erlangten n-ten Bilddaten (n = 1 bis 4) und des in Schritt S51 festgelegten Anfangszeitpunkts ts und Endzeitpunkts te ein Betriebsprogramm für das Robotersystem 100.
  • Konkret erstellt der Prozessor 12 ein Betriebsprogramm, das die Bildaufnahmeeinheit 104 die Bildaufnahmetätigkeit für einen Zeitraum T (= te - ts, zum Beispiel beträgt T 0,5 Sekunden) von dem Anfangszeitpunkt ts bis zu dem Endzeitpunkt te, die in Schritt S51 festgelegt wurden, ausführen lässt.
  • Zum Beispiel wird dieses Betriebsprogramm so erstellt, dass es die Bildaufnahmeeinheit 104 die Bildaufnahmetätigkeit zu dem Zeitpunkt ts, der um t1 Sekunden vor dem Zeitpunkt liegt, an dem die Bildaufnahmeeinheit 104 durch den Roboter 102 an die n-te Bildaufnahmeposition gebracht wird, beginnen lässt und die Bildaufnahmetätigkeit der Bildaufnahmeeinheit 104 zu dem Zeitpunkt te, der um t2 Sekunden nach dem Zeitpunkt liegt, zu dem der Roboter 102 die Bildaufnahmeeinheit 104 an der n-ten Bildaufnahmeposition vorbeiführt, enden lässt (konkret, den Verschluss schließt).
  • Durch die vorliegende Ausführungsform kann die Bildaufnahmeobjektsstelle beispielsweise bei einem Aufnehmen der Bildaufnahmestelle durch die Bildaufnahmeeinheit 104, während die Bildaufnahmeeinheit 104 durch den Roboter 102 bewegt wird, sicher aufgenommen werden.
  • Als nächstes wird unter Bezugnahme auf 20 bis 22 eine noch andere Funktion der Programmiervorrichtung 10 erklärt. 20 ist ein Blockdiagramm, das die noch andere Funktion der Programmiervorrichtung 10 zeigt. Bei der vorliegenden Ausführungsform wirkt der Prozessor 12 ferner als Reihenfolgenbestimmungseinheit 52.
  • Unter Bezugnahme auf 21 wird nachstehend die Funktion der Programmiervorrichtung 10 nach der vorliegenden Ausführungsform erklärt. In 21 sind gleiche Prozesse wie bei dem in 3 gezeigten Ablauf mit gleichen Schrittnummern versehen, und es wird auf eine wiederholte Erklärung verzichtet.
  • Nach Schritt S5 führt der Prozessor in Schritt S60 ein Kürzestbewegungswegsuchschema aus. Dieser Schritt S60 wird unter Bezugnahme auf 22 erklärt.
  • In dem Schritt S60, der in 22 gezeigt ist, wird die Betriebsabfolge der Schritte S62, S11 bis S13, S15, und S63 bis S65 in 22 für eine bestimmte Anzahl von Malen µ wiederholt ausgeführt, bis in dem nachstehend beschriebenen Schritt S65 JA bestimmt wird. Diese Anzahl von Malen µ wird durch den Betreiber im Voraus festgelegt (z.B. µ = 50) und in dem Systemspeicher 14 gespeichert.
  • In Schritt S61 setzt der Prozessor 12 die Nummer „m“, die die Anzahl der Ausführungen der Betriebsabfolge der Schritte S62, S11 bis S13, S15, und S63 bis S65 in dem Schritt S60 spezifiziert, auf „1“.
  • In Schritt S62 wird eine Reihenfolge für die Positionierung des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M an den in Schritt S4 berechneten mehreren Bildaufnahmepositionen bestimmt.
  • Wie oben besprochen wurde, wurde die erste Bildaufnahmeposition als Position, an der die Zielstelle 154M in das Blickfeld A fällt, festgelegt, die zweite Bildaufnahmeposition als Position, an der die Zielstelle 156M in das Blickfeld A fällt, festgelegt, die dritte Bildaufnahmeposition als Position, an der die Zielstelle 158M in das Blickfeld A fällt, festgelegt, und die vierte Bildaufnahmeposition als Position, an der die Zielstelle 160M in das Blickfeld A fällt, festgelegt.
  • Dadurch wurde das Bildaufnahmeeinheitsmodell 104M bei der Simulation der Bewegung des Bildaufnahmeeinheitsmodells 104M (S5, S22, S42) durch den Prozessor 12 in der Reihenfolge „der Zielstelle 154M entsprechende erste Bildaufnahmeposition, der Zielstelle 156M entsprechende zweite Bildaufnahmeposition, der Zielstelle 158M entsprechende dritte Bildaufnahmeposition, und der Zielstelle 160M entsprechende vierte Bildaufnahmeposition“ bewegt.
  • Bei der vorliegenden Ausführungsformlegt der Prozessor 12 diese Reihenfolge in dem Schritt S62 zufällig fest. Konkret wird der Zielstelle 154M, der Zielstelle 156M, der Zielstelle 158M und der Zielstelle 160M die Nummer „n“ (= 1 bis 4), die die Bildaufnahmeposition spezifiziert, zufällig zugeteilt.
  • Zum Beispiel teilt der Prozessor 12 der Zielstelle 154M, der Zielstelle 156M, der Zielstelle 158M und der Zielstelle 160M die Nummer „n“ so zu, dass die Position, an der die Zielstelle 156M in das Blickfeld A fällt, als erste Bildaufnahmeposition angesetzt wird, die Position, an der die Zielstelle 160M in das Blickfeld A fällt, als zweite Bildaufnahmeposition angesetzt wird, die Position, an der die Zielstelle 158M in das Blickfeld A fällt, als dritte Bildaufnahmeposition angesetzt wird, und die Position, an der die Zielstelle 154M in das Blickfeld A fällt, als vierte Bildaufnahmeposition angesetzt wird.
  • In diesem Fall kommt es dazu, dass der Prozessor 12 das Bildaufnahmeeinheitsmodell 104M bei der Ausführung der Schritte S11, S12, S13 und S15 in Schritt S60 als Schleife in der Reihenfolge „erste Bildaufnahmeposition, an der die Zielstelle 156M in das Blickfeld A fällt, zweite Bildaufnahmeposition, an der die Zielstelle 160M in das Blickfeld A fällt, dritte Bildaufnahmeposition, an der die Zielstelle 158M in das Blickfeld A fällt, und vierte Bildaufnahmeposi- tion, an der die Zielstelle 154M in das Blickfeld A fällt“ bewegt.
  • Auf diese Weise wirkt der Prozessor 12 bei der vorliegenden Ausführungsform als Reihenfolgenbestimmungseinheit 52, die die Reihenfolge der Positionierung des Bildaufnahmeeinheitsmodells 104M und des Werkstückmodells 150M an den mehreren Bildaufnahmepositionen bestimmt.
  • Nach Schritt S62 führt der Prozessor 12 die oben genannten Schritte S11, S12, S13 und S15 auf Basis der in dem unmittelbar vorhergehenden Schritt S62 bestimmten Nummer „n“ der Reihe nach aus, und positioniert er das Bildaufnahmeeinheitsmodell 104M in Bezug auf das Werkstückmodell 150M der Reihe nach an einer n-ten Bildaufnahmeposition.
  • Wenn in Schritt S15 JA bestimmt wurde, wird in Schritt S63 die Länge Lm des Bewegungswegs, über den das Bildaufnahmeeinheitsmodell 104M bei der unmittelbar vorhergehenden Schleife der Schritte S11, S12, S13 und S15 bewegt wurde (das heißt, des Weg, der sich von der ersten Bildaufnahmeposition zu der zweiten Bildaufnahmeposition, ... zu der nD-ten Bildaufnahmeposition erstreckt) berechnet. Der Prozessor 12 speichert die berechnete Länge Lm in dem Systemspeicher 14.
  • In Schritt S64 erhöht der Prozessor 12 die Nummer „m“ um „1“ (das heißt, m = m+1) .
  • In Schritt S65 bestimmt der Prozessor 12, ob die Nummer „m“ eine größere Zahl als µ geworden ist oder nicht. Wenn die Nummer „m“ größer als µ ist, das heißt, (m > µ), bestimmt der Prozessor 12 JA und wird zu Schritt S66 übergegangen.
  • Wenn die Nummer „m“ andererseits höchstens µ beträgt (das heißt, m ≦ µ), bestimmt der Prozessor 12 NEIN und wird zu Schritt S62 zurückgekehrt. Auf diese Weise führt der Prozessor 12 die Schritte S62 bis S65 als Schleife aus, bis in Schritt S65 JA bestimmt wird, und werden der Reihe nach Längen Lm (m = 1, 2, 3, ... µ) von Bewegungswegen bei der Bewegung des Bildaufnahmeeinheitsmodells 104M in Reihenfolgen, die in Schritt S62 zufällig bestimmt wurden, an die mehreren Bildaufnahmepositionen erlangt.
  • In Schritt S66 erlangt der Prozessor 12 den kürzesten Bewegungsweg PMIN. Konkret liest der Prozessor 12 die Längen L1 bis Lµ der Bewegungswege, die mit jeder Ausführung von Schritt S63 erlangt wurden, aus dem Systemspeicher 14 und vergleicht er sie, und wird der Bewegungsweg, der der kürzesten unter den Längen L1 bis Lµ entspricht, als kürzester Bewegungsweg PMIN erlangt.
  • Dann beendet der Prozessor 12 den in 22 gezeigten Schritt S60 und wird zu Schritt S6 in 21 übergegangen. In Schritt S6 wird ein Betriebsprogramm erstellt, das das Bildaufnahmeeinheitsmodell 104M und das Werkstückmodell 105M in der Reihenfolge, die dem in Schritt S66 erlangten kürzesten Bewegungsweg PMIN entspricht, an den n-ten Bildaufnahmepositionen positioniert.
  • Durch die vorliegende Ausführungsform kann der Prozessor 12 automatisch ein Betriebsprogramm, das das Bildaufnahmeeinheitsmodell 104M und das Werkstückmodell 150M auf dem kürzesten Bewegungsweg PMIN an jeder der n-ten Bildaufnahmepositionen positioniert, erstellen. Folglich kann die Zykluszeit beim Betrieb des echten Robotersystems 100 gemäß diesem Betriebsprogramm minimiert werden.
  • Als nächstes wird unter Bezugnahme auf 23 eine Programmiervorrichtung 60 nach einer anderen Ausführungsform erklärt. Die Programmiervorrichtung 60 umfasst eine Modellanordnungseinheit 62, eine Zielstellenextraktionseinheit 64, eine Simulationseinheit 66 und eine Programmerstellungseinheit 68.
  • Die Modellanordnungseinheit 62 ordnet so wie die oben beschriebene Modellanordnungseinheit 26 ein Werkstückmodell 150M, ein Robotermodell 102M und ein Bildaufnahmeeinheitsmodell 104M in einem virtuellen Raum 200 an (Schritt S1). Die Zielstellenextraktionseinheit 64 extrahiert gemäß vorab festgelegten Extraktionsbedingungen Zielstellen 154M, 156M, 158M, 160M auf dem Werkstückmodell 150M (Schritt S3).
  • Die Simulationseinheit 66 führt so wie die oben beschriebene Simulationseinheit 34 eine Simulation des Positionierungsbetriebs zur Positionierung des Bildaufnahmeeinheitsmodells 104M in Bezug auf das Werkstückmodell 150M an einer n-ten Bildaufnahmeposition aus (Schritt S5).
  • Die Programmerstellungseinheit 68 erstellt so wie die oben beschriebene Programmerstellungseinheit 36 auf Basis von Positionsdaten des Robotermodells 102M, die durch die von der Simulationseinheit 66 ausgeführte Simulation erlangt wurden, ein Betriebsprogramm für das Robotersystem 100 (Schritt S6).
  • Die Programmiervorrichtung 60 kann auch aus einem Computer, der einen Prozessor und einen Speicher (einen Systemspeicher 14 oder einen Arbeitsspeicher 16) aufweist, gebildet werden. Oder jedes aus der Modellanordnungseinheit 62, der Zielstellenextraktionseinheit 64, der Simulationseinheit 66 und der Programmerstellungseinheit 68 kann jeweils aus einem Computer, der einen Prozessor und einen Speicher aufweist, gebildet werden.
  • Als erste Bedingung oder zweite Bedingung der Extraktionsbedingungen kann auch eine Bedingung, die eine Bestandteilmodellbezeichnung des Werkstückmodells 150M spezifiziert, hinzugefügt werden. In diesem Fall kann der Betreiber durch Betätigen der Dateneingabeeinheit 20 auch Bezeichnungen („Nabe A“, „Gelenk B“ oder dergleichen) für die einzelnen Elementmodelle aufzeichnen.
  • Die Modellanordnungseinheit 26, 62 kann zusätzlich zu dem Roboterkoordinatensystem CR ein Basiskoordinatensystem Co festlegen und das Basiskoordinatensystem Co als Basis ansetzen. Die n-te Bildaufnahmeposition kann auch so festgelegt werden, dass die Sichtlinie O des Bildaufnahmeeinheitsmodells 104M durch einen beliebigen Punkt auf der Zielstelle verläuft.
  • Bei den oben beschriebenen Ausführungsformen wurde ein Fall beschrieben, bei dem der Roboter 102 (das Robotermodell 102M) die Bildaufnahmeeinheit 104 (das Bildaufnahmeeinheitsmodell 104M) bewegt und in Bezug auf das Werkstück 150 (das Werkstückmodell 150M) an die Bildaufnahmeposition bewegt.
  • Es besteht jedoch keine Beschränkung darauf, es ist auch möglich, das Werkstück 150 (das Werkstückmodell 150M) durch den Roboter 102 (das Robotermodell 102M) zu bewegen und in Bezug auf die Bildaufnahmeeinheit 104 (das Bildaufnahmeeinheitsmodell 104M) zu positionieren. In diesem Fall wird das Werkstück 150 (das Werkstückmodell 150M) mit dem Handgelenkabschnitt 112 (dem Handgelenkabschnittsmodell 112M) gekoppelt.
  • Die Merkmale der in 1, 7, 13, 18 und 20 gezeigten Ausführungsformen können auch miteinander kombiniert werden. Zum Beispiel können die Interferenzdetektionseinheit 44, die Nichtinterferenzpositionsdetektionseinheit 46 und die zweite Bildaufnahmepositionskorrektureinheit 48, die in 13 gezeigt sind, der in 7 gezeigten Ausführungsform hinzugefügt werden. Der Roboter 102 ist nicht auf einen vertikalen Knickarmroboter beschränkt, sondern kann auch ein Parallelgelenkroboter oder eine Ladeeinrichtung oder dergleichen sein.
  • Die vorliegende Offenbarung wurde im Vorhergehenden durch Ausführungsformen erklärt, doch beschränken die oben beschriebenen Ausführungsformen die Erfindung nach den Patentansprüchen nicht.

Claims (11)

  1. Programmiervorrichtung (10), die ein Betriebsprogramm erstellt, wodurch eine Bildaufnahmeeinheit (104) oder ein Werkstück (150) durch einen Roboter (102) bewegt wird und das Werkstück durch die Bildaufnahmeeinheit aufgenommen wird, umfassend eine Modellanordnungseinheit (26), die ein Werkstückmodell (150M), das das Werkstück modelliert, ein Robotermodell (102M), das den Roboter modelliert, und ein Bildaufnahmeeinheitsmodell (104M), das die Bildaufnahmeeinheit modelliert, in einem virtuellen Raum anordnet (200); eine Extraktionsbedingungsentgegennahmeeinheit (28), die eine Eingabe einer Extraktionsbedingung erhält; eine Zielstellenextraktionseinheit (30), die basierend auf den dreidimensionalen Bilddaten des Werkstückmodells (150M) eine Zielstelle des Werkstückmodells, die einer Bildaufnahmeobjektstelle des Werkstücks entspricht, gemäß der Extraktionsbedingung extrahiert; eine Simulationseinheit (34), die das Bildaufnahmeeinheitsmodell oder das Werkstückmodell durch das Robotermodell an eine Bildaufnahmeposition, an der das Bildaufnahmeeinheitsmodell die durch die Zielstellenextraktionseinheit extrahierte Zielstelle aufnimmt, bewegt; und eine Programmerstellungseinheit (36), die auf Basis von Positionsdaten des Robotermodells, wenn das Robotermodell das Bildaufnahmeeinheitsmodell oder das Werkstückmodell an der Bildaufnahmeposition positioniert hat, ein Betriebsprogramm, damit die Bildaufnahmeeinheit die Bildaufnahmeobjektstelle aufnimmt, erstellt.
  2. Programmiervorrichtung nach Anspruch 1, wobei die Extraktionsbedingungen eine erste Bedingung beinhalten, die die Form, die Farbe oder die Größe der Zielstelle spezifiziert, wobei die Zielstellenextraktionseinheit eine Stelle des Werkstückmodells, die mit der ersten Bedingung übereinstimmt, als Zielstelle extrahiert.
  3. Programmiervorrichtung nach Anspruch 2, wobei die Extraktionsbedingungen eine zweite Bedingung beinhalten, die die Form, die Farbe oder die Größe einer Stelle des Werkstückmodells, die einer Stelle des Werkstücks entsprechen, welche als Nichtbildaufnahmeobjekt der Bildaufnahmeeinheit angesetzt wird, spezifiziert, wobei die Zielstellenextraktionseinheit eine Stelle des Werkstückmodells, die mit der zweiten Bedingung übereinstimmt, nicht als Zielstelle extrahiert.
  4. Programmiervorrichtung nach einem der Ansprüche 1 bis 3, ferner umfassend eine Bildaufnahmepositionsberechnungseinheit (32), die die Bildaufnahmepositionen berechnet.
  5. Programmiervorrichtung nach Anspruch 4, wobei die Bildaufnahmepositionsberechnungseinheit eine relative Position des Bildaufnahmeeinheitsmodells und des Werkstückmodells an der die Sichtlinie (O) des Bildaufnahmeeinheitsmodells durch das Zentrum (C1) der Zielposition verläuft, und der Abstand zwischen dem Bildaufnahmeeinheitsmodell und der Zielstelle mit der Höhe (B) eines vorab festgelegten Blickfelds der Bildaufnahmeeinheit übereinstimmt, als Bildaufnahmeposition berechnet.
  6. Programmiervorrichtung nach einem der Ansprüche 1 bis 5, ferner umfassend eine Bestimmungseinheit (38), die bestimmt, ob die Zielstelle in das Blickfeld der Bildaufnahmeeinheit fällt oder nicht, wenn die Simulationseinheit das Bildaufnahmeeinheitsmodell oder das Werkstückmodell durch das Robotermodell an die Bildaufnahmestelle bewegt hat; eine Bildaufnahmepositionssucheinheit (40), die eine relative Position des Bildaufnahmeeinheitsmodells und des Werkstückmodells, an der die Zielstelle in das Blickfeld fällt, sucht, wenn die Bestimmungseinheit bestimmt hat, dass die Zielstelle nicht in das Blickfeld fällt; und eine erste Bildaufnahmepositionskorrektureinheit (42), die die Bildaufnahmeposition auf Basis der durch die Bildaufnahmepositionssucheinheit gesuchten relativen Position korrigiert, wobei die Programmerstellungseinheit das Betriebsprogramm auf Basis der Positionsdaten des Robotermodells, wenn das Robotermodell das Bildaufnahmeeinheitsmodell oder das Werkstückmodell an der durch die erste Bildaufnahmepositionskorrektureinheit korrigierten Bildaufnahmeposition positioniert hat, erstellt.
  7. Programmiervorrichtung nach einem der Ansprüche 1 bis 6, die ferner ein Umgebungsobjektmodell (206), wofür wenigstens ein Umgebungsmodell modelliert wurde, in dem virtuellen Raum anordnet, wobei die Programmiervorrichtung ferner eine Interferenzdetektionseinheit (44), die eine Interferenz zwischen dem Robotermodell oder dem Bildaufnahmeeinheitsmodell und dem Werkstückmodell oder dem Umgebungsobjektmodell detektiert, wenn die Simulationseinheit das Bildaufnahmeeinheitsmodell oder das Werkstückmodell durch das Robotermodell an die Bildaufnahmestelle bewegt hat, eine Nichtinterferenzpositionssucheinheit (46), die eine Nichtinterferenzposition, an der die Zielstelle in das Blickfeld der Bildaufnahmeeinheit fällt und die Interferenz nicht länger auftritt, sucht, wenn die Interferenzdetektionseinheit eine solche Interferenz detektiert hat, und eine zweite Bildaufnahmepositionskorrektureinheit (48), die die Bildaufnahmeposition auf Basis der Nichtinterferenzposition korrigiert, umfasst, wobei die Programmerstellungseinheit das Betriebsprogramm auf Basis der Positionsdaten des Robotermodells, wenn das Robotermodell das Bildaufnahmeeinheitsmodell oder das Werkstückmodell an der durch die zweite Bildaufnahmepositionskorrektureinheit korrigierten Bildaufnahmeposition positioniert hat, erstellt.
  8. Programmiervorrichtung nach einem der Ansprüche 1 bis 7, ferner umfassend eine Bildaufnahmetimingfestlegeeinheit (50), die einen Anfangszeitpunkt und einen Endzeitpunkt für die Bildaufnahmetätigkeit, bei der die Bildaufnahmeeinheit die Bildaufnahmeobjektstelle aufnimmt, festlegt, wobei die Programmerstellungseinheit ein Betriebsprogramm erstellt, das die Bildaufnahmeeinheit die Bildaufnahmetätigkeit über einen Zeitraum von dem Anfangszeitpunkt bis zu dem Endzeitpunkt, die durch die Bildaufnahmetimingfestlegeeinheit festgelegt wurden, hinweg ausführen lässt.
  9. Programmiervorrichtung nach einem der Ansprüche 1 bis 8, ferner umfassend eine Reihenfolgenbestimmungseinheit (52), die die Reihenfolge der Bewegung des Bildaufnahmeeinheitsmodells oder des Werkstückmodells durch das Robotermodell an mehrere Bildaufnahmepositionen bestimmt, wenn die Bildaufnahmeeinheit jeweils mehrere durch die Zielstellenextraktionseinheit extrahierte Zielstellen aufnimmt, wobei die Simulationseinheit das Bildaufnahmeeinheitsmodell oder das Werkstückmodell gemäß der durch die Reihenfolgenbestimmungseinheit bestimmte Reihenfolge jeweils an die mehreren Bildaufnahmepositionen bewegt.
  10. Programmiervorrichtung nach Anspruch 9, wobei die Reihenfolgenbestimmungseinheit (52) die Reihenfolge zufällig festlegt, wobei jedes Mal wenn die Reihenfolgenbestimmungseinheit (52) die Reihenfolge festlegt, die Simulationseinheit das Bildaufnahmeeinheitsmodell oder das Werkstückmodell gemäß der vorbestimmten Reihenfolge bewegt, wobei die Programmiervorrichtung ferner das Folgende aufweist: einen Bewegungswegberechnungseinheit, die eine Länge eines Bewegungswegs des Bildaufnahmeeinheitmodells oder des Werkstückmodells jedes Mal wenn die Simulationseinheit den Betrieb der Bewegung des Bildaufnahmeeinheitsmodell oder des Werkstückmodells an die jeweilige Bildaufnahmepositionen ausführt; und einen Kürzestenbewegungswegerlangungseinheit, die eine Länge eines kürzesten Bewegungswegs aus einer Vielzahl der Längen der Bewegungswege, die von der Bewegungswegberechnungeinheit berechnet wurden, erlangt, wobei die Programmerstellungseinheit (36) ein Betriebsprogramm erstellt, um das Bildaufnahmeeinheitsmodell oder das Werkstückmodell gemäß der durch die Reihenfolgenbestimmungseinheit bestimmte Reihenfolge jeweils an die mehreren Bildaufnahmepositionen zu bewegen.
  11. Verfahren, das ein Betriebsprogramm erstellt, wodurch eine Bildaufnahmeeinheit (104) oder ein Werkstück (150) durch einen Roboter (102) bewegt wird und das Werkstück durch die Bildaufnahmeeinheit aufgenommen wird, umfassend das Anordnen eines Werkstückmodells (150M), wofür das Werkstück modelliert wurde, eines Robotermodells (102M), wofür der Roboter modelliert wurde, und eines Bildaufnahmeeinheitsmodells (104M), wofür die Bildaufnahmeeinheit modelliert wurde, in einem virtuellen Raum (200); das Erhalten einer Extraktionsbedingung als Eingabe in eine Extraktionsbedingungsentgegennahmeeinheit (28); das Extrahieren basierend auf den dreidimensionalen Bilddaten des Werkstückmodells (150M) einer Zielstelle des Werkstückmodells, die einer Bildaufnahmeobjektstelle des Werkstücks entspricht, gemäß der Extraktionsbedingung; das Bewegen des Bildaufnahmeeinheitsmodells oder des Werkstückmodels durch das Robotermodell an eine Bildaufnahmeposition, an der das Bildaufnahmeeinheitsmodell die extrahierte Zielstelle aufnimmt; und das Erstellen eines Betriebsprogramms, damit die Bildaufnahmeeinheit die Bildaufnahmeobjektstelle aufnimmt, auf Basis von Positionsdaten des Robotermodells, wenn das Robotermodell das Bildaufnahmeeinheitsmodell oder das Werkstückmodell an der Bildaufnahmeposition positioniert hat.
DE102018116245.6A 2017-07-11 2018-07-04 Programmiervorrichtung, die ein Betriebsprogramm erstellt, sowie Verfahren zur Programmerstellung Active DE102018116245B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017135717A JP6571723B2 (ja) 2017-07-11 2017-07-11 動作プログラムを生成するプログラミング装置、及びプログラム生成方法
JP2017-135717 2017-07-11

Publications (2)

Publication Number Publication Date
DE102018116245A1 DE102018116245A1 (de) 2019-01-17
DE102018116245B4 true DE102018116245B4 (de) 2021-08-26

Family

ID=64745768

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018116245.6A Active DE102018116245B4 (de) 2017-07-11 2018-07-04 Programmiervorrichtung, die ein Betriebsprogramm erstellt, sowie Verfahren zur Programmerstellung

Country Status (4)

Country Link
US (1) US10434650B2 (de)
JP (1) JP6571723B2 (de)
CN (1) CN109227531B (de)
DE (1) DE102018116245B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024028953A1 (ja) * 2022-08-01 2024-02-08 ファナック株式会社 プログラミング装置
CN117140539B (zh) * 2023-11-01 2024-01-23 成都交大光芒科技股份有限公司 基于空间坐标变换矩阵的机器人三维协同巡检方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004085120A1 (ja) 2003-03-25 2004-10-07 Rorze Corporation ロボットシミュレーション装置、および、シミュレーションプログラム
US20060212171A1 (en) 2005-03-17 2006-09-21 Fanuc Ltd Off-line teaching device
US20070071310A1 (en) 2005-09-28 2007-03-29 Fanuc Ltd Robot simulation device
EP2082850B1 (de) 2008-01-23 2011-05-25 Fanuc Corporation Erzeugungsvorrichtung eines verarbeitenden Roboterprogramms
DE102014108956A1 (de) 2013-06-28 2014-12-31 Fanuc Corporation Vorrichtung zum Entgraten mit visuellem Sensor und Kraftsensor
DE102015000587A1 (de) 2014-01-24 2015-07-30 Fanuc Corporation Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
US20170139407A1 (en) 2015-11-18 2017-05-18 Omron Corporation Simulator, simulation method, and simulation program

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10128686A (ja) * 1996-10-30 1998-05-19 Nippon Telegr & Teleph Corp <Ntt> ロボットマニピュレータの制御方法およびロボットマニピュレータの制御装置
JP3175623B2 (ja) * 1997-03-21 2001-06-11 株式会社デンソー ロボットの制御装置
JP2008296330A (ja) * 2007-05-31 2008-12-11 Fanuc Ltd ロボットシミュレーション装置
JP6016716B2 (ja) * 2013-06-12 2016-10-26 三菱電機株式会社 ビンピッキング性能評価装置及び方法
JP6068423B2 (ja) * 2014-11-28 2017-01-25 ファナック株式会社 加工動作をロボットに教示するロボットプログラミング装置
WO2017033254A1 (ja) * 2015-08-24 2017-03-02 株式会社日立製作所 移動ロボット運用システム、移動ロボット、及び対象物取り出し方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004085120A1 (ja) 2003-03-25 2004-10-07 Rorze Corporation ロボットシミュレーション装置、および、シミュレーションプログラム
US20060212171A1 (en) 2005-03-17 2006-09-21 Fanuc Ltd Off-line teaching device
US20070071310A1 (en) 2005-09-28 2007-03-29 Fanuc Ltd Robot simulation device
EP2082850B1 (de) 2008-01-23 2011-05-25 Fanuc Corporation Erzeugungsvorrichtung eines verarbeitenden Roboterprogramms
DE102014108956A1 (de) 2013-06-28 2014-12-31 Fanuc Corporation Vorrichtung zum Entgraten mit visuellem Sensor und Kraftsensor
DE102015000587A1 (de) 2014-01-24 2015-07-30 Fanuc Corporation Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
US20170139407A1 (en) 2015-11-18 2017-05-18 Omron Corporation Simulator, simulation method, and simulation program

Also Published As

Publication number Publication date
JP2019018250A (ja) 2019-02-07
US20190015986A1 (en) 2019-01-17
US10434650B2 (en) 2019-10-08
JP6571723B2 (ja) 2019-09-04
DE102018116245A1 (de) 2019-01-17
CN109227531A (zh) 2019-01-18
CN109227531B (zh) 2020-05-29

Similar Documents

Publication Publication Date Title
DE112013004851B4 (de) Kalibrierungsverfahren und Kalibrierungsvorrichtung
DE102018215826B4 (de) Robotersystem und Werkstückgreifverfahren
DE102015002760B4 (de) Robotersimulationssystem, das den Prozess des Entnehmens von Werkstücken simuliert
DE3825005C2 (de) Bilderkennungsanordnung
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE112016006262B4 (de) Dreidimensionaler Scanner und Verarbeitungsverfahren zur Messunterstützung für diesen
DE102017001667A1 (de) Bildverarbeitungseinrichtung zum Anzeigen eines Objekts, das anhand einer Eingabebildaufnahme erkannt wird
DE102019118342A1 (de) Objektprüfvorrichtung, Objektprüfsystem, und Verfahren zum Einstellen der Prüfposition
DE102018109304A1 (de) Bedienvorrichtung zum Bedienen eines Roboters, Robotersystem und Bedienverfahren
DE102018116245B4 (de) Programmiervorrichtung, die ein Betriebsprogramm erstellt, sowie Verfahren zur Programmerstellung
DE102018117660A1 (de) Verfahren und system zum bestimmen einer position eines fahrzeugs
DE102018105955B4 (de) Vorrichtung zur Berechnung des Bereichs außerhalb eines Untersuchungsziels und Verfahren zur Berechnung des Bereichs außerhalb eines Untersuchungsziels eines Untersuchungssystems
DE112019007852B4 (de) Informationsverarbeitungsvorrichtung, Werkstückerkennungsvorrichtung und Werkstückaufgreifvorrichtung
DE102018207414A1 (de) Bildverarbeitungssystem
DE102018107857A1 (de) Vorrichtung, System und Verfahren zur automatischen Erzeugung eines Bewegungspfads eines Roboters
DE102018102833A1 (de) Positionskontrollsystem, positionserkennungsvorrichtung und steuerprogramm
DE102018009836B4 (de) Objektprüfsystem und Objektprüfverfahren
DE112019002848T5 (de) System und verfahren zum auffinden und klassifizieren von mustern in einem bild mit einem bildverarbeitungssystem
DE102018113589A1 (de) Vorrichtung und Programm zur Positionserfassung
EP2787485B1 (de) Verfahren und Vorrichtung zur automatischen Fehlerstellenerkennung bei biegeschlaffen Körpern
DE102017216735A1 (de) Verfahren, System zum Beseitigen von Fahrzeugkarosseriedefekten unter Verwendung einer virtuellen Markierung
DE102017127025B4 (de) Bildverarbeitungssystem, Bildverarbeitungseinrichtung, Verfahren zur Rekonfiguration einer Schaltung in einem FPGA und Programm zur Rekonfiguration einer Schaltung in einem FPGA
DE102018103129B4 (de) Vorrichtung und Verfahren zum Erzeugen eines Betriebsprogramms eines Inspektionssystems
BE1029597A1 (de) Bildverarbeitungssysteme und -verfahren zum automatischen Erzeugen eines oder mehrerer Bildverarbeitungsaufträge auf Grundlage interessierender Regionen (ROIs) digitaler Bilder
EP4145238A1 (de) Verfahren zum steuern eines unbemannten fluggeräts für einen inspektionsflug zum inspizieren eines objekts und unbemanntes inspektionsfluggerät

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final