-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft Simulationseinrichtungen und Simulationsverfahren für Robotersysteme.
-
ALLGEMEINER STAND DER TECHNIK
-
Es sind Simulationseinrichtungen für Robotersysteme bekannt, bei denen eine Simulation mit einem dreidimensionalen Modell eines Roboters durchgeführt wird, der in einem virtuellen Raum platziert ist (siehe z. B. Patentliteratur 1),.
-
ENTGEGENHALTUNGSLISTE, PATENTLITERATUR
-
PTL 1: Japanische nicht geprüfte Patentanmeldung Veröffentlichung Nummer 2016-129915
-
KURZDARSTELLUNG DER ERFINDUNG
-
TECHNISCHE AUFGABE
-
Um jedoch eine Simulation mit einem virtuellen Roboter auszuführen, ist es erforderlich, eine Virtueller-Roboter-Steuerung zu generieren, was erfordert, eine große Anzahl von Einstellungen vorzunehmen, ähnlich wie bei einer echten Robotersteuerung. Somit gibt es einen Nachteil, dass es Zeit kostet, eine Virtueller-Roboter-Steuerung für die Simulation zu erzeugen.
-
Die vorliegende Erfindung wurde im Hinblick auf die zuvor beschriebene Situation gemacht, und es ist eine Aufgabe, eine Simulationseinrichtung und ein Simulationsverfahren für ein Robotersystem bereitzustellen, die es ermöglichen, die Zeit zu reduzieren, die für das Erzeugen einer Virtueller-Roboter-Steuerung für die Simulation benötigt wird.
-
LÖSUNG DER AUFGABE
-
Um die obige Aufgabe zu erreichen, sieht die vorliegende Erfindung die folgenden Lösungen vor.
-
Die vorliegende Erfindung stellt in einem Aspekt davon eine Simulationseinrichtung für ein Robotersystem bereit, wobei die Simulationseinrichtung Folgendes umfasst: eine Eingabeeinheit, die die Eingabe der Struktur eines virtuellen Roboters, der simuliert werden soll, erlaubt; eine Speichereinheit, die die Strukturen und Elemente der Virtueller-Roboter-Kandidaten und Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang miteinander speichert; eine Differenzextraktionseinheit, die aus der Speichereinheit die Struktur eines der Virtueller-Roboter-Kandidaten ausliest, die der Struktur des virtuellen Roboters am nächsten kommt, die über die Eingabeeinheit eingegeben wird, und die die Differenz zwischen der ausgelesenen Struktur des Virtueller-Roboter-Kandidaten und der Struktur des virtuellen Roboters, der über die Eingabeeinheit eingegeben wird, extrahiert; eine Virtueller-Roboter-Erzeugungseinheit, die aus der Speichereinheit die Einstellung des Virtueller-Roboter-Steuerung-Kandidaten ausliest, die mit der Struktur des am nächsten kommenden Virtueller-Roboter-Kandidaten in Zusammenhang steht, und die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten, die mit den Elementen der Virtueller-Roboter-Kandidaten im Zusammenhang stehen, die in der Differenz umfasst sind, die von der Differenzextraktionseinheit extrahiert wird, und die die Einstellung des dazugehörigen Virtueller-Roboter-Steuerung-Kandidaten für jedes der Elemente der Virtueller-Roboter-Kandidaten hinzufügt oder löscht, die in der Differenz zu oder von der Einstellung des am nächsten kommenden Virtueller-Roboter-Steuerung-Kandidaten umfasst sind, um die Strukturen neuer Virtueller-Roboter-Kandidaten und Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten, die im Zusammenhang damit stehen, und die Struktur eines neuen virtuellen Roboters und eine Einstellung einer Virtueller-Roboter-Steuerung, die damit im Zusammenhang steht, zu erzeugen; und eine Kandidatenaktualisierungseinheit, die in der Speichereinheit die Strukturen der neuen Virtueller-Roboter-Kandidaten und die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit speichert, die von der Virtueller-Roboter-Erzeugungseinheit erzeugt werden.
-
Gemäß diesem Aspekt wird, wenn die Struktur eines virtuellen Roboters, der simuliert werden soll, mittels der Eingabeeinheit eingegeben wird, die Struktur eines Virtueller-Roboter-Kandidaten ausgelesen, die der eingegebenen Struktur des virtuellen Roboters aus den Strukturen der Virtueller-Roboter-Kandidaten, die in der Speichereinheit gespeichert sind, am nächsten kommt. Dann extrahiert die Differenzextraktionseinheit die Differenz zwischen der ausgelesenen Struktur des Virtueller-Roboter-Kandidaten und der eingegebenen Struktur des virtuellen Roboters. Es ist möglich, eine Einstellung einer gewünschten Virtueller-Roboter-Steuerung zu erhalten, indem die Einstellungen im Zusammenhang mit den Elementen, die in der extrahierten Differenz zu oder von der Einstellung des Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang mit dem am nächsten kommenden Virtueller-Roboter-Kandidaten umfasst sind, hinzugefügt oder gelöscht werden.
-
In diesem Fall fügt die Virtueller-Roboter-Erzeugungseinheit für jedes der in der Differenz, die von der Differenzextraktionseinheit extrahiert wird, umfassten Elemente die Einstellung im Zusammenhang mit dem Element der ausgelesenen Einstellung des Virtueller-Roboter-Steuerung-Kandidaten hinzu bzw. löscht sie aus der ausgelesenen Einstellung, wodurch ein Virtueller-Roboter-Kandidat und eine Einstellung eines Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit erzeugt wird, und die Kandidatenaktualisierungseinheit aktualisiert die Information, die in der Speichereinheit gespeichert ist.
-
Das heißt, in dem Fall, in dem sich die Struktur des virtuellen Roboters, der simuliert werden soll, von der Struktur des am nächsten kommenden Virtueller-Roboter-Kandidaten, die in der Speichereinheit gespeichert ist, unterscheidet, werden Elemente identifiziert, die dem Virtueller-Roboter-Kandidaten hinzugefügt oder daraus gelöscht werden sollen, um die eingegebene Struktur zu erzeugen, und die identifizierten Elemente werden als einzelne Elemente der Einstellung des Virtueller-Roboter-Steuerung-Kandidaten hinzugefügt bzw. daraus gelöscht, die mit dem ausgelesenen Virtueller-Roboter-Kandidaten im Zusammenhang steht, wodurch die Struktur eines neuen Virtueller-Roboter-Kandidaten und eine Einstellung eines Virtueller-Roboter-Steuerung-Kandidaten erzeugt werden, die in der Speichereinheit gespeichert werden.
-
Entsprechend ist es in dem Fall, in dem eine Vielzahl von Elementen in der Differenz umfasst sind, möglich, eine entsprechende Anzahl von Strukturen neuer Virtueller-Roboter-Kandidaten und Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten, die damit im Zusammenhang stehen, in der Speichereinheit zu speichern. Somit ist es möglich, die Wahrscheinlichkeit zu erhöhen, dass ein Virtueller-Roboter-Kandidat mit geringerer Differenz in dem Fall ausgelesen wird, in dem eine Simulation bei einer späteren Gelegenheit neu für einen virtuellen Roboter ausgeführt wird. Dies dient dazu, die Zeit zu verringern, die zum Erzeugen einer Virtueller-Roboter-Steuerung benötigt wird, die simuliert werden soll.
-
Gemäß dem vorstehenden Aspekt kann die Speichereinheit für jedes der Elemente der Virtueller-Roboter-Kandidaten einen Zeitaufwand zum Hinzufügen oder Löschen einer Einstellung, die mit diesem Element im Zusammenhang steht, speichern, und die Differenzextraktionseinheit kann aus der Speichereinheit als den am nächsten kommenden Virtueller-Roboter-Kandidaten einen Virtueller-Roboter-Kandidaten mit dem geringsten Gesamtzeitaufwand zum Erhalten der Einstellung der Virtueller-Roboter-Steuerung auslesen, die im Zusammenhang mit der Struktur des mittels der Eingabeeinheit eingegebenen virtuellen Roboters steht.
-
Entsprechend ist es möglich, in dem Fall, in dem ein virtueller Roboter, der simuliert werden soll, basierend auf den Virtueller-Roboter-Kandidaten, die in der Speichereinheit gespeichert sind, erzeugt wird, eine Einstellung einer Virtueller-Roboter-Steuerung im Zusammenhang damit mit dem geringsten Zeitaufwand zu erzeugen.
-
Gemäß dem obigen Aspekt kann die Differenzextraktionseinheit für jedes der Elemente der Virtueller-Roboter-Kandidaten, die in der Speichereinheit gespeichert sind, den Zeitaufwand für das Hinzufügen des Elements, das in der Speichereinheit im Zusammenhang mit dem Element gespeichert ist, in dem Fall hinzufügen, in dem das Element in dem virtuellen Roboter, der mittels der Eingabeeinheit eingegeben wird, umfasst ist, kann den Zeitaufwand für das Löschen des Elements, das in der Speichereinheit im Zusammenhang mit dem Element gespeichert ist, in dem Fall subtrahieren, in dem das Element nicht in dem virtuellen Roboter, der mittels der Eingabeeinheit eingegeben wird, umfasst ist, und kann den Virtueller-Roboter-Kandidaten mit dem höchsten Wert des Berechnungsergebnisses als den am nächsten kommenden Virtueller-Roboter-Kandidaten auslesen.
-
Entsprechend ist es möglich, die Berechnungsergebnisse als zeitliche Abstände zum Erzeugen des virtuellen Roboters, der simuliert werden soll, aus den in der Speichereinheit gespeicherten Virtueller-Roboter-Kandidaten zu nutzen. Indem der Virtueller-Roboter-Kandidat mit dem höchsten Wert des Berechnungsergebnisses als der am nächsten kommende Virtueller-Roboter-Kandidat verwendet wird, ist es möglich, eine Einstellung einer Virtueller-Roboter-Steuerung im Zusammenhang damit mit dem geringsten Zeitaufwand zu erzeugen.
-
Gemäß dem obigen Aspekt kann die Differenzextraktionseinheit die Zeitaufwände aufsummieren, die in der Speichereinheit im Zusammenhang mit den einzelnen Elementen, die in der Differenz umfasst sind, gespeichert sind, wenn die Einstellungen im Zusammenhang mit diesen Elementen hinzugefügt oder gelöscht werden, und kann den Virtueller-Roboter-Kandidaten mit dem geringsten Wert des Berechnungsergebnisses als den am nächsten kommenden Virtueller-Roboter-Kandidaten verwenden.
-
Entsprechend ist es möglich, die Berechnungsergebnisse als die Zeitaufwände zum Hinzufügen oder Löschen aller Einstellungen zu nutzen, die im Zusammenhang mit den in der Differenz umfassten Elementen stehen. Indem der Virtueller-Roboter-Kandidat mit dem geringsten Wert des Berechnungsergebnisses als der am nächsten kommende Virtueller-Roboter-Kandidat verwendet wird, ist es möglich, eine Einstellung einer Virtueller-Roboter-Steuerung im Zusammenhang damit mit dem geringsten Zeitaufwand zu erzeugen.
-
Gemäß dem obigen Aspekt kann die Simulationseinrichtung überdies Folgendes umfassen: eine Verwendungshäufigkeitszähleinheit, die die Verwendungshäufigkeit eines Virtueller-Roboter-Kandidaten jedes Mal inkrementiert, wenn der Virtueller-Roboter-Kandidat von der Differenzextraktionseinheit als der am nächsten kommende Virtueller-Roboter-Kandidat ausgelesen wird; und eine Speicherkapazitätsdetektionseinheit, die die verbleibende Kapazität der Speichereinheit detektiert, die Kandidatenaktualisierungseinheit kann aus der Speichereinheit die Struktur eines Virtueller-Roboter-Kandidaten löschen, die einem Virtueller-Roboter-Kandidaten mit der größten Verwendungshäufigkeit nahe kommt, und die Einstellung des Kandidaten der Virtueller-Roboter-Steuerung im Zusammenhang damit in dem Fall löschen, in dem die verbleibende Kapazität, die von der Speicherkapazitätsdetektionseinheit detektiert wird, geringer ist als ein vorbestimmter Schwellwert.
-
Da es möglich ist, den virtuellen Roboter, der dem Virtueller-Roboter-Kandidaten mit der größten Verwendungshäufigkeit nahe kommt, aus dem Virtueller-Roboter-Kandidaten mit der größten Verwendungshäufigkeit zu erzeugen, besteht entsprechend keine Notwendigkeit, beide zu speichern. Indem der nahe kommende virtuelle Roboter gelöscht wird, ist es möglich, die verbleibende Kapazität der Speichereinheit wirksam zu erhöhen.
-
Gemäß dem obigen Aspekt kann die Kandidatenaktualisierungseinheit jedes Mal, wenn die Virtueller-Roboter-Erzeugungseinheit die Struktur eines neuen Virtueller-Roboter-Kandidaten und eine Einstellung eines Virtueller-Roboter-Steuerung-Kandidaten, die damit im Zusammenhang steht, erzeugt, die Struktur und die Einstellung in der Speichereinheit speichern.
-
Entsprechend kann die Kandidatenaktualisierungseinheit in der Speichereinheit nacheinander die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten speichern, die von der Virtueller-Roboter-Erzeugungseinheit während des Prozesses des Erzeugens einer neuen Virtueller-Roboter-Steuerung, die simuliert werden soll, erzeugt werden.
-
Gemäß dem obigen Aspekt kann die Kandidatenaktualisierungseinheit jedes Mal, wenn die Virtueller-Roboter-Erzeugungseinheit Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten erzeugt, die mit den Strukturen einer vorbestimmten Anzahl von neuen Virtueller-Roboter-Kandidaten im Zusammenhang steht, die Strukturen und die Einstellungen in der Speichereinheit speichern.
-
Entsprechend werden Einstellungen in der Speichereinheit jedes Mal gespeichert, wenn die Virtueller-Roboter-Erzeugungseinheit die vorbestimmte Anzahl von Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten während des Prozesses des Erzeugens einer neuen Virtueller-Roboter-Steuerung, die simuliert werden soll, erzeugt, was dazu dient, die zum Speichern erforderliche Zeit einzusparen.
-
Gemäß dem obigen Aspekt kann die Kandidatenaktualisierungseinheit die vorbestimmte Anzahl gemäß einer erforderlichen Geschwindigkeit für ein Abspeichern in der Speichereinheit oder der Informationsmenge, die in der Speichereinheit gespeichert werden soll, ändern.
-
Entsprechend wird die Anzahl der Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten, die in einem Durchgang gespeichert werden, in dem Fall erhöht, dass die erforderliche Geschwindigkeit zum Speichern in der Speichereinheit niedrig ist, während die Anzahl in dem Fall, dass die erforderliche Geschwindigkeit hoch ist, verringert wird, was es ermöglicht, Fluktuationen in der erforderlichen Speichergeschwindigkeit zu verhindern. In Anbetracht dessen, dass das Speichern mehr Zeit in Anspruch nimmt, wenn sich die Informationsmenge erhöht, kann die Anzahl von Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten, die in einem Durchgang gespeichert werden, in Abhängigkeit von der Informationsmenge erhöht oder verringert werden, was es auch ermöglicht, Fluktuationen in der zum Speichern erforderlichen Geschwindigkeit zu verhindern.
-
Die vorliegende Erfindung sieht gemäß einem anderen Aspekt davon ein Simulationsverfahren für ein Robotersystem vor, wobei das Simulationsverfahren Folgendes umfasst: einen Eingabeschritt, bei dem eine Eingabe der Struktur eines virtuellen Roboters, der simuliert werden soll, erlaubt wird; einen Differenzextraktionsschritt, bei dem aus einer Speichereinheit die Struktur eines der Virtueller-Roboter-Kandidaten ausgelesen wird, die der Struktur des virtuellen Roboters am nächsten kommt, der in dem Eingabeschritt eingegeben wird, und die Differenz zwischen der ausgelesenen Struktur des Virtueller-Roboter-Kandidaten und der Struktur des virtuellen Roboters, die in dem Eingabeschritt eingegeben wird, extrahiert wird; einen Virtueller-Roboter-Erzeugungsschritt, bei dem aus der Speichereinheit Folgendes ausgelesen wird: die Einstellung des Virtueller-Roboter-Steuerung-Kandidaten, die im Zusammenhang mit der Struktur des am nächsten kommenden Virtueller-Roboter-Kandidaten steht, und die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten, die im Zusammenhang mit Elementen der Virtueller-Roboter-Kandidaten stehen, die in der in dem Differenzextraktionsschritt extrahierten Differenz umfasst sind, und bei dem die Einstellung des dazugehörigen Virtueller-Roboter-Steuerung-Kandidaten für jedes der Elemente des Virtueller-Roboter-Kandidaten, die in der Differenz zu oder von der Einstellung des am nächsten kommenden Virtueller-Roboter-Steuerung-Kandidaten umfasst sind, hinzugefügt oder gelöscht wird, um die Strukturen der neuen Virtueller-Roboter-Kandidaten und die Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit und die Struktur eines neuen virtuellen Roboters und eine Einstellung einer Virtueller-Roboter-Steuerung im Zusammenhang damit zu erzeugen; und einen Kandidatenaktualisierungsschritt, bei dem in der Speichereinheit die Strukturen der neuen Virtueller-Roboter-Kandidaten und die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit gespeichert werden, die in dem Virtueller-Roboter-Erzeugungsschritt erzeugt werden.
-
Gemäß dem obigen Aspekt kann die Speichereinheit für jedes der Elemente der Virtueller-Roboter-Kandidaten einen Zeitaufwand für das Hinzufügen oder Löschen einer Einstellung im Zusammenhang mit diesem Element speichern, und in dem Differenzextraktionsschritt kann ein Virtueller-Roboter-Kandidat mit dem geringsten Gesamtzeitaufwand zum Erhalten der Einstellung der Virtueller-Roboter-Steuerung im Zusammenhang mit der Struktur des virtuellen Roboters, der in dem Eingabeschritt eingegeben wird, als der am nächsten kommende Virtueller-Roboter-Kandidat aus der Speichereinheit ausgelesen werden.
-
VORTEILHAFTE WIRKUNGEN DER ERFINDUNG
-
Gemäß der vorliegenden Erfindung wird ein Vorteil gewährt, der darin besteht, dass es möglich ist, die Zeit zu verringern, die zum Erzeugen einer Virtueller-Roboter-Steuerung, die simuliert werden soll, erforderlich ist.
-
Figurenliste
-
- 1 ist ein Blockdiagramm, das eine Simulationseinrichtung für ein Robotersystem gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
- 2 ist eine Grafik, die ein Beispiel von Informationen zeigt, die in einer Speichereinheit gespeichert sind, die in der Simulationseinrichtung von 1 umfasst ist.
- 3 ist ein Flussdiagramm zum Erklären eines Simulationsverfahrens, das die Simulationseinrichtung von 1 einsetzt.
- 4 ist ein Flussdiagramm zum Erklären eines Prozesses des Bestimmens eines am nächsten kommenden Virtueller-Roboter-Kandidaten in dem Flussdiagramm von 3.
- 5 ist ein Flussdiagramm zum Erklären eines Prozesses des Berechnens eines Auswertungswerts von 4.
-
BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
Eine Simulationseinrichtung 1 für ein Robotersystem gemäß einer Ausführungsform der vorliegenden Erfindung wird nachfolgend mit Bezug auf die Zeichnungen beschrieben.
-
Das Robotersystem umfasst einen Roboter einer beliebigen Form und eine Robotersteuerung, die den Roboter steuert.
-
Die Simulationseinrichtung 1 für ein Robotersystem gemäß dieser Ausführungsform ist eine Einrichtung, die einen virtuellen Roboter, der aus einem dreidimensionalen Modell gebildet sind, das einen Roboter simuliert, der simuliert werden soll, in einem virtuellen Raum platziert, der unter Verwendung eines Computers realisiert wird, der eine Virtueller-Roboter-Steuerung erzeugt, die eine Robotersteuerung auf dem Computer simuliert, und der den virtuellen Roboter mittels der Virtueller-Roboter-Steuerung steuert, um den Betrieb des Roboters auf einem Bildschirm des Computers zu simulieren.
-
Wie in 1 gezeigt, umfasst die Simulationseinrichtung 1 eine Eingabeeinheit 2, die es einem Bediener erlaubt, die Struktur eines virtuellen Roboters, der simuliert werden soll (nachfolgend auch als eine Eingabestruktur bezeichnet), einzugeben, eine Speichereinheit 3, die die Strukturen von Virtueller-Roboter-Kandidaten und die Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang miteinander speichert, eine Differenzextraktionseinheit 4, die die Struktur eines Virtueller-Roboter-Kandidaten (nachfolgend auch als eine Basisstruktur bezeichnet) ausliest, die der Eingabestruktur aus der Speichereinheit 3 am nächsten kommt, und die Differenz der Basisstruktur zu der Eingabestruktur extrahiert, eine Virtueller-Roboter-Erzeugungseinheit 5, die Elemente hinzufügt oder löscht, die in der extrahierten Differenz zu oder von der Basisstruktur umfasst sind, um einen virtuellen Roboter und eine Virtueller-Roboter-Steuerung zu erzeugen, eine Kandidatenaktualisierungseinheit 6, die den erzeugten virtuellen Roboter und die erzeugte Virtueller-Roboter-Steuerung in der Speichereinheit 3 als einen Virtueller-Roboter-Kandidaten und einen Virtueller-Roboter-Steuerung-Kandidaten speichert (zwischenspeichert), und eine Simulationsausführeinheit 7, die die Simulation ausführt, indem sie den erzeugten virtuellen Roboter und die erzeugte Virtueller-Roboter-Steuerung verwendet.
-
Wie in 2 gezeigt, speichert die Speichereinheit 3 die Strukturen und Elemente von Virtueller-Roboter-Kandidaten und die Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang miteinander. Neben den Strukturen von virtuellen Robotern, die in der Vergangenheit erzeugt werden, werden auch einzelne Elemente zum Erzeugen von Virtueller-Roboter-Kandidaten als die Strukturen und Elemente der Virtueller-Roboter-Kandidaten gespeichert.
-
In dem Beispiel, das in 2 gezeigt ist, werden die Strukturen ABCD, ACDE und AEF der Virtueller-Roboter-Kandidaten, die in der Vergangenheit erzeugt werden, und einzelne Elemente A, B, C, D usw. einzeln im Zusammenhang mit den Einstellungen X1, X2, usw. der Virtueller-Roboter-Steuerung-Kandidaten dafür gespeichert.
-
Die Struktur ABCD eines Virtueller-Roboter-Kandidaten ist eine Kombination der individuellen Elemente A, B, C und D. Beispiele der einzelnen Elemente umfassen den Produktnamen des Roboters, den Produktnamen einer zusätzlichen Einrichtung, zum Beispiel einer Servopistole, das Übersetzungsverhältnis, die Beschleunigung, den Betriebsbereich und so weiter.
-
Jede der Einstellungen X1, X2 usw. der Virtueller-Roboter-Steuerung-Kandidaten umfasst ein oder mehrere Einstellungselemente.
-
Die Speichereinheit 3 speichert im Zusammenhang mit den Elementen A, B, C, D usw. von Virtueller-Roboter-Kandidaten Zeitaufwände t11, t21, t31, t41 usw. für das Hinzufügen dieser Elemente A, B, C, D usw. und Zeitaufwände t12, t22, t32, t42 usw. für das Löschen dieser Elemente A, B, C, D usw.
-
Die Differenzextraktionseinheit 4 ist ausgestaltet, eine Vielzahl von Basisstrukturen aus der Speichereinheit 3 auszulesen, wenn eine Eingabestruktur von der Eingabeeinheit 2 eingegeben wird, um die Differenzen zwischen der Eingabestruktur und den Basisstrukturen einzeln zu extrahieren und um Auswertungswerte zu berechnen, die Zeitaufwände für das Erzeugen der Eingabestruktur mittels Hinzufügen oder Löschen der einzelnen Differenzen zu den einzelnen Basisstrukturen abbilden. Der Zeitaufwand für das Erzeugen der Eingabestruktur umfasst die Zeit, die zum Erzeugen eines dreidimensionalen Modells eines virtuellen Roboters benötigt wird, indem Virtueller-Roboter-Kandidaten, die in der Speichereinheit 3 gespeichert sind, kombiniert werden, und die Zeit, die zum Erzeugen der Einstellung einer Virtueller-Roboter-Steuerung im Zusammenhang mit dem virtuellen Roboter benötigt wird.
-
Beispielsweise in dem Fall, in dem die Eingabestruktur ABDEF ist, werden die Basisstrukturen ABCD, ACDE und AEF aus der Speichereinheit 3 ausgelesen, und die einzelnen Differenzen davon, Y1:(-C+EF), Y2:(-C+BF) und Y3:(+BD) werden extrahiert. Hier bezeichnet - (Minuszeichen) das Löschen eines Elements und + (Pluszeichen) bezeichnet das Hinzufügen eines Elements.
-
Der Auswertungswert für jeden der Virtueller-Roboter-Kandidaten wird beispielsweise berechnet, indem die Zeitaufwände für das Hinzufügen der Elemente des Virtueller-Roboter-Kandidaten aufsummiert werden, die in der Eingabestruktur umfasst sind, und die Zeitaufwände für das Löschen der Elemente des Virtueller-Roboter-Kandidaten subtrahiert werden, die nicht in der Eingabestruktur umfasst sind. Dann wird der Virtueller-Roboter-Kandidat, der den höchsten Auswertungswert aufweist, aus der Speichereinheit 3 als ein Virtueller-Roboter-Kandidat ausgelesen, der der Eingabestruktur am nächsten kommt.
-
In dem Fall des obigen Beispiels wird ein Auswertungswert
Z1 wie folgt berechnet, da die Basisstruktur
ABCD Elemente
A,
B und
D umfasst, die in der Eingabestruktur
ABDEF umfasst sind, und ein Element
C umfasst, das nicht in der Eingabestruktur
ABDEF umfasst ist.
-
Des Weiteren wird ein Auswertungswert
Z2 wie folgt berechnet, da die Basisstruktur
ACDE Elemente
A,
D und
E umfasst, die in der Eingabestruktur
ABDEF umfasst sind, und ein Element C umfasst, das nicht in der Eingabestruktur
ABDEF umfasst ist.
-
Des Weiteren wird ein Auswertungswert
Z3 wie folgt berechnet, da die Basisstruktur
AEF Elemente
A,
E und
F umfasst, die in der Eingabestruktur
ABDEF umfasst sind, und nicht ein beliebiges Element umfasst, das in der Eingabestruktur
ABDEF nicht enthalten ist.
-
Dann werden die Größen der Auswertungswerte Z1, Z2 und Z3 miteinander verglichen, und die Basisstruktur, die den höchsten Auswertungswert aufweist, wird aus der Speichereinheit 3 als ein Virtueller-Roboter-Kandidat ausgelesen, die der Eingabestruktur am nächsten kommt.
-
Die Virtueller-Roboter-Erzeugungseinheit 5 verwendet den Virtueller-Robot-Kandidaten, der der Eingabestruktur am nächsten kommt, die von der Differenzextraktionseinheit 4 aus der Speichereinheit 3 wie zuvor beschrieben ausgelesen wird, als eine Basisstruktur und fügt nacheinander die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang mit den Elementen, die die Differenz zu der Eingabestruktur bilden, hinzu bzw. löscht die Einstellungen, wodurch eine Virtueller-Roboter-Steuerung erzeugt wird, die für die Eingabestruktur geeignet ist.
-
In diesem Fall ist die Virtueller-Roboter-Erzeugungseinheit 5 ausgestaltet, Virtueller-Roboter-Steuerung-Kandidaten zu erzeugen, bei denen die einzelnen Elemente, die in der Differenz umfasst sind, eins nach dem anderen in dem Prozess des Erzeugens einer Virtuellen-Roboter-Steuerung hinzugefügt oder gelöscht werden. Die Kandidatenaktualisierungseinheit 6 ist ausgestaltet, jeden der Virtueller-Roboter-Steuerung-Kandidaten bei, die von der Virtueller-Roboter-Erzeugungseinheit 5 erzeugt werden, deren Erzeugen in der Speichereinheit 3 zu speichern.
-
Beispielsweise in dem Fall, in dem die Basisstruktur ACDE aus der Speichereinheit 3 als ein Virtueller-Roboter-Kandidat ausgelesen wird, der der Eingabestruktur in dem obigen Beispiel am nächsten kommt, wird Folgendes einzeln erzeugt: eine Struktur ABCDE, in der das Element B, das in der Differenz Y2 zu der Eingabestruktur umfasst ist, hinzugefügt wird, eine Struktur ABDE, in der das Element C, das in der Differenz Y2 umfasst ist, gelöscht wird, und eine Struktur ABDEF, in der das Element F, das in der Differenz Y2 umfasst ist, hinzugefügt wird. Des Weiteren wird hinsichtlich der Einstellung X2 für den Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang mit der Basisstruktur ACDE die Einstellung X5 im Zusammenhang mit dem Element B hinzugefügt, die Einstellung X6 im Zusammenhang mit dem Element C gelöscht und die Einstellung X9 im Zusammenhang mit dem Element F hinzugefügt, um Virtueller-Roboter-Steuerung-Kandidaten einzeln zu erzeugen. Dann werden diese Strukturen und Virtueller-Roboter-Steuerung-Kandidaten in der Speichereinheit 3 gespeichert.
-
Die Kandidatenaktualisierungseinheit 6 ist ausgestaltet, ein einzelnes Element zusammen mit einem Zeitaufwand für das Hinzufügen oder Löschen des Elements in der Speichereinheit 3 in dem Fall zu speichern, in dem der Zeitaufwand nicht in der Speichereinheit 3 gespeichert ist.
-
Ein Simulationsverfahren, das die derartig ausgestaltete Simulationseinrichtung 1 für ein Robotersystem gemäß dieser Ausführungsform verwendet, wird nachfolgend beschrieben.
-
Wie in 3 gezeigt, wird das Simulationsverfahren für ein Robotersystem gemäß dieser Ausführungsform gestartet, wenn ein Bediener die Struktur eines virtuellen Roboters, der simuliert werden soll (Eingabestruktur), mittels der Eingabeeinheit 2 eingibt (Eingabeschritt S1).
-
Bei Eingabe der Eingabestruktur liest die Differenzextraktionseinheit 4 einen Virtueller-Roboter-Kandidaten aus der Speichereinheit 3 aus, der der Eingabestruktur am nächsten kommt (Schritt S2). Um den am nächsten kommenden Virtueller-Roboter-Kandidaten auszulesen, wie in 4 gezeigt, wird einer der Virtueller-Roboter-Kandidaten (Basisstrukturen), die in der Speichereinheit 3 gespeichert sind, ausgelesen (Schritt S21), und ein Auswertungswert dafür wird berechnet (Schritt S22).
-
Um den Auswertungswert zu berechnen, wie in 5 gezeigt, wird eins der Elemente in der Basisstruktur ausgewählt (Schritt S221), und es wird bestimmt, ob das ausgewählte Element in der Eingabestruktur umfasst ist (Schritt S222). In dem Fall, in dem das ausgewählte Element umfasst ist, wird der Auswertungswert berechnet, indem der Zeitaufwand zum Hinzufügen, der im Zusammenhang mit diesem Element gespeichert ist, hinzugefügt wird (Schritt S223). In dem Fall, in dem das ausgewählte Element nicht umfasst ist, wird der Auswertungswert berechnet, indem der Zeitaufwand zum Löschen, der im Zusammenhang mit diesem Element gespeichert ist, subtrahiert wird (Schritt S224).
-
Dann wird bestimmt, ob die Verarbeitung zum Berechnen des Auswertungswerts unter Verwendung aller Elemente in der Basisstruktur beendet ist oder nicht (Schritt S225). In dem Fall, in dem die Verarbeitung beendet ist, wird der Auswertungswert ausgegeben (Schritt S226). In dem Fall, in dem die Verarbeitung nicht beendet ist, wird die Verarbeitung von Schritt S221 wiederholt.
-
Dann wird bestimmt, ob der Auswertungswert, der in der oben beschriebenen Weise berechnet wird, der höchste aus den Auswertungswerten für die Virtueller-Roboter-Kandidaten, die bis dahin ausgelesen worden sind, ist oder nicht (Schritt S23). In dem Fall, in dem der Auswertungswert der höchste ist, wird der Virtueller-Roboter-Kandidat als der am nächsten kommende Virtueller-Roboter-Kandidat ausgewählt (Schritt S24). In dem Fall, in dem der Auswertungswert nicht der höchste ist, wird bestimmt, ob ein beliebiger anderer Virtueller-Roboter-Kandidat verbleibt oder nicht (Schritt S25).
-
In dem Fall, in dem ein beliebiger anderer Virtueller-Roboter-Kandidat verbleibt, wird die Verarbeitung von Schritt S21 wiederholt. In dem Fall, in dem kein anderer Virtueller-Roboter-Kandidat verbleibt, wird der Virtueller-Roboter-Kandidat, der ausgewählt ist, schließlich aus der Speichereinheit 3 als der am nächsten kommende Virtueller-Roboter-Kandidat ausgelesen.
-
Dann wird die Differenz zwischen der Eingabestruktur und dem Virtueller-Roboter-Kandidaten, der der Eingabestruktur am nächsten kommt, extrahiert (Differenzextraktionsschritt S3). Dann werden die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang mit den einzelnen Elementen, die in der extrahierten Differenz umfasst sind, zu der Einstellung des Virtueller-Roboter-Steuerung-Kandidaten hinzugefügt oder daraus gelöscht, die im Zusammenhang mit dem Virtueller-Roboter-Kandidaten gespeichert ist (Virtueller-Roboter-Erzeugungsschritt S4).
-
Jedes Mal, wenn die Struktur eines neuen Virtueller-Roboter-Kandidaten erzeugt wird, indem ein einzelnes Element hinzugefügt oder gelöscht wird, und die Einstellung eines Virtueller-Roboter-Steuerung-Kandidaten erzeugt wird, werden die Struktur und die Einstellung in der Speichereinheit 3 im Zusammenhang miteinander gespeichert (Kandidatenaktualisierungsschritt S5).
-
Dann wird bestimmt, ob das Hinzufügen oder Löschen für alle Elemente in der extrahierten Differenz beendet ist oder nicht (Schritt S6). In dem Fall, in dem das Hinzufügen oder Löschen nicht beendet ist, wird die Verarbeitung von Schritt S4 wiederholt. In dem Fall, in dem das Hinzufügen oder Löschen beendet ist, da der Virtueller-Roboter-Kandidat und der Virtueller-Roboter-Steuerung-Kandidat, die erzeugt werden, schließlich als die Struktur eines virtuellen Roboters entsprechend der Eingabestruktur und der Einstellung einer Virtueller-Roboter-Steuerung im Zusammenhang damit dienen, wird die Simulation für das Robotersystem ausgeführt, indem der virtuelle Roboter und die Virtueller-Roboter-Steuerung verwendet werden (Schritt S7).
-
Wie zuvor beschrieben werden bei der Simulationseinrichtung 1 und dem Simulationsverfahren für ein Robotersystem gemäß dieser Ausführungsform in dem Prozess des Erzeugens der Struktur eines virtuellen Roboters, der simuliert werden soll, und der Einstellung einer Virtueller-Roboter-Steuerung im Zusammenhang damit die Struktur eines Virtueller-Roboter-Kandidaten, die mittels Hinzufügen oder Löschen eines einzelnen Elements erzeugt wird, und die Einstellung eines Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit auch in der Speichereinheit 3 gespeichert. Dies erhöht die Wahrscheinlichkeit, dass ein näher kommender Virtueller-Roboter-Kandidat ausgewählt werden kann, wenn beim nächsten Mal ein neuer virtueller Roboter erzeugt wird. Entsprechend wird ein Vorteil gewährt, der darin besteht, dass die Zeit zum Einstellen einer Virtueller-Roboter-Steuerung, die simuliert werden soll, verringert werden kann.
-
In dieser Ausführungsform werden die Struktur und die Einstellung in der Speichereinheit 3 jedes Mal gespeichert, wenn die Struktur eines neuen Virtueller-Roboter-Kandidaten und die Einstellung eines Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit erzeugt werden. Als Alternative kann die Speicherhäufigkeit einmal jede bestimmte Anzahl von Malen sein. Des Weiteren kann die Speicherhäufigkeit in Abhängigkeit von der zum Speichern in der Speichereinheit 3 erforderlichen Geschwindigkeit oder der Informationsmenge, die in der Speichereinheit 3 gespeichert werden soll, geändert werden.
-
Die Anzahl von Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten, die in einem Durchgang gespeichert werden, wird in dem Fall erhöht, in dem die zum Speichern in der Speichereinheit 3 erforderliche Geschwindigkeit niedrig ist, während die Anzahl in dem Fall, in dem die erforderliche Geschwindigkeit hoch ist, verringert wird, was es ermöglicht, Fluktuationen in der zum Speichern erforderlichen Geschwindigkeit zu verhindern. In Anbetracht dessen, dass das Speichern mehr Zeit in Anspruch nimmt, wenn die Informationsmenge zunimmt, kann die Anzahl von Einstellungen von Virtueller-Roboter-Steuerung-Kandidaten, die in einem Durchgang gespeichert werden, in Abhängigkeit von der Informationsmenge erhöht oder verringert werden, was es auch ermöglicht, Fluktuationen in der zum Speichern erforderlichen Geschwindigkeit zu verhindern.
-
Eine Verwendungshäufigkeitszähleinheit (nicht gezeigt), die die Verwendungshäufigkeit jedes Mal inkrementiert, wenn ein Virtueller-Roboter-Kandidat ausgewählt wird, der der Eingabestruktur am nächsten kommt, und eine Speicherkapazitätsdetektionseinheit (nicht gezeigt), die die verbleibende Kapazität der Speichereinheit 3 detektiert, können vorgesehen sein.
-
Die von der Verwendungshäufigkeitszähleinheit gezählte Verwendungshäufigkeit kann im Zusammenhang mit Virtueller-Roboter-Kandidaten gespeichert werden, und in dem Fall, in dem die verbleibende Kapazität der Speichereinheit 3, wie sie von der Speicherkapazitätsdetektionseinheit detektiert wird, geringer geworden ist als ein vorbestimmter Schwellwert, können nicht benötigte Virtueller-Roboter-Kandidaten und die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit von der Speichereinheit 3 gelöscht werden. Diese Löschung kann ausgeführt werden, indem eine bevorzugte Löschung eines Virtueller-Roboter-Kandidaten, der einem häufig verwendeten Virtueller-Roboter-Kandidaten nahe kommt, wiederholt wird, bis die verbleibende Kapazität ausreichend wird.
-
Das heißt, ein Virtueller-Roboter-Kandidat, der einem häufig verwendeten Virtueller-Roboter-Kandidaten nahe kommt, kann in einer kurzen Zeit aus dem häufig verwendeten Virtueller-Roboter-Kandidaten eingestellt werden, und somit liegt nur ein kleiner Vorteil in dem Speichern des Virtueller-Roboter-Kandidaten zusätzlich zu dem häufig verwendeten Virtueller-Roboter-Kandidaten. Somit ist es möglich, die verbleibende Kapazität der Speichereinheit 3 zu erhöhen, indem bevorzugt derartige Virtueller-Roboter-Kandidaten gelöscht werden, was es ermöglicht, Virtueller-Roboter-Kandidaten mit größeren Bedarfen und die Einstellungen der Virtueller-Roboter-Steuerung-Kandidaten im Zusammenhang damit zu speichern.
-
Ob ein Virtueller-Roboter-Kandidat einem häufig verwendeten Virtueller-Roboter-Kandidaten nahe kommt oder nicht kann basierend auf dem gleichen Auswertungswert bestimmt werden, der zum Auswählen eines Virtueller-Roboter-Kandidaten verwendet wird, der der Eingabestruktur am nächsten kommt.
-
In der zuvor beschriebenen Ausführungsform wird der Auswertungswert berechnet, indem der Zeitaufwand für das Hinzufügen für jedes Element, das in der Eingabestruktur umfasst ist, aufsummiert und der Zeitaufwand für das Löschen für jedes Element, das nicht in der Eingabestruktur umfasst ist, subtrahiert wird. Als Alternative kann ein Virtueller-Roboter-Kandidat als der am nächsten kommende Virtueller-Roboter-Kandidat ausgewählt werden, der den geringsten Gesamtzeitaufwand aufweist, der erhalten wird, indem alle Zeitaufwände für das Hinzufügen für Elemente, die hinzugefügt werden sollen, und die Zeitaufwände zum Löschen für Elemente, die gelöscht werden sollen, aufsummiert werden, um die Eingabestruktur zu erzeugen.
-
Obwohl die obige Ausführungsform in dem Kontext eines Beispiels beschrieben wird, in dem Basisstrukturen, die jeweils aus einer Kombination einer Vielzahl von Elementen gebildet sind, in der Speichereinheit 3 gespeichert sind, kann, in dem Fall, in dem Basisstrukturen nicht in der Speichereinheit 3 gespeichert sind, ein neuer Virtueller-Roboter-Kandidat erzeugt werden, indem einzelne Elemente kombiniert werden.
-
Aus einzelnen Elementen können, bei Elementen, die nicht gelöscht werden können, zum Beispiel Software-Optionen, unendliche Werte als die Zeitaufwände zum Löschen gespeichert werden.
-
Bezugszeichenliste
-
- 1
- Simulationseinrichtung
- 2
- Eingabeeinheit
- 3
- Speichereinheit
- 4
- Differenzextraktionseinheit
- 5
- Virtueller-Roboter-Erzeugungseinheit
- 6
- Kandidatenaktualisierungseinheit
- S1
- Eingabeschritt
- S3
- Differenzextraktionsschritt
- S4
- Virtueller-Roboter-Erzeugungsschritt
- S5
- Kandidatenaktualisierungsschritt