-
Die vorliegende Erfindung betrifft eine Schwingungsunterdrückungsvorrichtung und eine Maschinenlernvorrichtung, und betrifft insbesondere eine Schwingungsunterdrückungsvorrichtung, die eine optimale Beschleunigungs-/Verlangsamungszeit für den Betrieb eines Industrieroboters lernt.
-
Bei einem Herstellungsprozess, der in einem Werk ausgeführt wird, ist das Kürzen einer Herstellungstaktzeit erforderlich. Als ein Verfahren zum Kürzen der Herstellungstaktzeit kann in Betracht gezogen werden, eine Betriebsgeschwindigkeit jeder Herstellungsmaschine zu erhöhen oder die Beschleunigung zu erhöhen. Wenn eine Befehlsgeschwindigkeit eines Servomotors, der jedes Gelenk antreibt, jedoch erhöht wird oder eine Beschleunigungs-/Verlangsamungszeit gekürzt wird, um eine Betriebsgeschwindigkeit eines Industrieroboters, wie eines Knickarmroboters, zu verbessern, ist es wahrscheinlich, dass Schwingung in dem Industrieroboter erzeugt wird.
-
Schwingung des Industrieroboters wird in der Hauptsache während der Beschleunigung und der Verlangsamung erzeugt und nicht, wenn der Servomotor, der jedes Gelenk antreibt, an einer konstanten Geschwindigkeit arbeitet. Bei einem Betriebsplan für den Roboter ist es folglich wichtig, eine optimale Beschleunigungs-/Verlangsamungszeit zu erhalten, die es erlaubt, in einer kürzesten Zeit innerhalb eines zulässigen Schwingungsbereichs bezüglich eines Betriebsplans des Roboters zu beschleunigen und zu verlangsamen.
-
Als eine herkömmliche Technologie zum Verringern einer Schwingungen eines Industrieroboters offenbart zum Beispiel die
JP 2011-167 817 A eine Technologie des Anbringens seines Sensors zum Erfassen einer Position an einem Roboter und des Verringerns einer Schwingung durch Lernen einer Korrekturmenge. Zusätzlich offenbart die
JP 2015-168 053 A ein Verfahren zum Beschleunigen eines Betriebs eines Roboters durch Lernen aus dem Drehmoment eines Motors und Zielfehlerinformation ohne Verwenden eines Sensors.
-
Bei der Technologie, die in der
JP 2011-167 817 A offenbart ist, kann Schwingung hoch präzis basierend auf Sensorinformation gesteuert werden. Iteratives Lernen in einem Zustand, in dem ein Werkstück tatsächlich von einem Industrieroboter an einem Arbeitsort ergriffen wird, ist jedoch notwendig, und es besteht ein Problem, dass einem Benutzer im Laufe der Zeit eine Belastung auferlegt wird. Zusätzlich ist ein Sensor erforderlich, um iteratives Lernen auszuführen, und der Benutzer muss den Sensor an dem Arbeitsort vorbereiten. Es besteht daher ein Problem, dass dem Benutzer hinsichtlich der Kosten eine Last auferlegt wird.
-
Indes wird in der
japanischen Patentanmeldung Nr. 2015-168053 eine Belastung des Benutzers verringert, weil ein Sensor nicht erforderlich ist, und erneutes Lernen innerhalb eines Bereichs unnötig ist. Es besteht jedoch ein Problem ähnlich dem der
JP 2011 - 167 817 A , nämlich, dass Lernen an einem Arbeitsort erforderlich ist. Des Weiteren ergibt sich ein anderes Problem, nämlich, dass die Präzision einer Schwingungsunterdrückung beschränkt ist, weil kein Sensor vorhanden ist. Weitere Dokumente die Hintergrundinformationen zum Stand der Technik enthalten sind beispielsweise die Druckschriften
DE 10 2017 000 063 A1 ,
DE 10 2016 013 731 A1 ,
DE 10 2016 009 444 A1 ,
DE 10 2016 008 987 A1 ,
DE 10 2014 019 409 A1 und
DE 10 2013 202 378 B4 .
-
In diesem Hinblick ist es eine Aufgabe der vorliegenden Erfindung, eine Schwingungsunterdrückungsvorrichtung bereitzustellen, die fähig ist, eine optimale Beschleunigungs-/Verlangsamungszeit zu lernen, um den Betrieb eines Industrieroboters an einer Etappe vor dem Versand des Industrieroboters auszuführen.
-
Um das oben erwähnte Problem zu lösen, weist die Schwingungsunterdrückungsvorrichtung der Erfindung eine Funktion zum Berechnen einer Position jeder Achse und einer Ablenkungsmenge jeder Achse während des Roboterbetriebs sowie zum Schätzen einer Beschleunigungs-/Verlangsamungszeit unter Verwenden einer Maschinenlernvorrichtung (neuronales Netzwerk) basierend auf der Position und der Ablenkungsmenge auf, wodurch ein optimaler Beschleunigungs-/Verlangsamungsbetrieb ausgeführt wird. Das Lernen dieser Maschinenlernvorrichtung (neuronales Netzwerk) kann unter Verwenden eines Sensors an einer Etappe vor dem Versand durch den Hersteller ausgeführt werden, indem Lernen jedes Benutzers an einem Arbeitsort unnötig ist, und der Benutzer keinen Sensor vorzubereiten braucht. Es ist daher möglich, einen optimalen Roboterbetrieb bereitzustellen, ohne dem Benutzer hinsichtlich der Zeit und Kosten eine Belastung aufzuerlegen.
-
Die vorliegende Erfindung ist dadurch gekennzeichnet, dass angenommen wird, dass eine Korrelation zwischen einer Ablenkungsmenge der Achse und der Schwingungsmenge, wie oben beschrieben, besteht, und dass diese Korrelation als eine Eingabe der Maschinenlernvorrichtung (neuronales Netzwerk) verwendet wird. Da jede Achse eines Roboters dreht oder direkte Bewegung ausführt, ist im Allgemeinen in diesem Abschnitt ein Lager vorhanden, und dieser Abschnitt hat geringere Steifigkeit als die eines anderen Armabschnitts. Aus diesem Grund wird Abweichung, die auf der Achse auftritt, zu groß, und der Beitrag zu Schwingung des Roboters steigt. Die Ablenkungsmenge der Achse kann folglich als eine Eingabe zu der Maschinenlernvorrichtung (neuronales Netzwerk), die eine Beschleunigungs-/Verlangsamungszeit zum Unterdrücken einer Schwingung zu einem kleinen Ausmaß erhält, geeignet sein.
-
Eine Schwingungsunterdrückungsvorrichtung gemäß einem Aspekt der vorliegenden Erfindung unterdrückt Schwingung, die während eines Beschleunigungs-/Verlangsamungsbetriebs eines Roboters erzeugt wird, der derart zu steuern ist, dass die Schwingung einem vorbestimmten Schwellenwert oder weniger entspricht, und eine Lehrpositionserfassungseinheit aufweist, die eine Lehrposition erfasst, und eine Geschwindigkeitsplaneinheit, die einen Geschwindigkeitsplan basierend auf der Lehrposition und einem ersten Beschleunigungs-/Verlangsamungsparameter berechnet, eine Ablenkungsberechnungseinheit, die Daten in Zusammenhang mit einer Ablenkung, die während des Beschleunigungs-/Verlangsamungsbetriebs des Roboters auftritt, basierend auf der Lehrposition und dem Geschwindigkeitsplan berechnet, eine Stellungsdatenerfassungseinheit, die Daten in Zusammenhang mit einer Stellung an der Lehrposition basierend auf der Lehrposition erfasst, und eine Maschinenlerneinheit, die einen zweiten Beschleunigungs-/Verlangsamungsparameter bezüglich der Daten in Zusammenhang mit der Ablenkung und der Daten in Zusammenhang mit der Stellung unter Verwenden der Daten in Zusammenhang mit der Ablenkung und der Daten in Zusammenhang mit der Stellung als Eingangsdaten schätzt.
-
Die Schwingungsunterdrückungsvorrichtung kann weiter eine Konvergenzbestimmungseinheit aufweisen, die bestimmt, ob der zweite Beschleunigungs-/Verlangsamungsparameter zu dem ersten Beschleunigungs-/Verlangsamungsparameter konvergiert, wobei, wenn bestimmt wird, dass der zweite Beschleunigungs-/Verlangsamungsparameter nicht konvergiert, die Konvergenzbestimmungseinheit den ersten Beschleunigungs-/Verlangsamungsparameter korrigieren und die Geschwindigkeitsplaneinheit anweisen kann, den Geschwindigkeitsplan unter Verwenden eines Korrekturresultats wieder zu berechnen.
-
Die Schwingungsunterdrückungsvorrichtung kann weiter eine Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung aufweisen, die nach einem schnellsten optimalen Beschleunigungs-/Verlangsamungsparameter aus Beschleunigungs-/Verlangsamungsparametern sucht, die es erlauben, Schwingung des Roboters unter einem vorbestimmten Schwellenwert zu halten, wobei die Maschinenlerneinheit den zweiten Beschleunigungs-/Verlangsamungsparameter unter Verwenden des optimalen Beschleunigungs-/Verlangsamungsparameters, der durch die Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung erhalten wurde, als Lehrerdaten lernen kann. In diesem Fall kann die Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung einen optimalen Beschleunigungs-/Verlangsamungsparameter unter Verwenden eines Simulators erhalten.
-
Die Maschinenlerneinheit kann das Lernen unter Verwenden eines neuronalen Netzwerks ausführen.
-
Die Schwingungsunterdrückungseinheit kann mit einer Mehrzahl von Robotersteuervorrichtungen durch ein Netzwerk verbunden sein, den zweiten Beschleunigungs-/Verlangsamungsparameter schätzen und den geschätzten zweiten Beschleunigungs-/Verlangsamungsparameter zu jeder der Robotersteuervorrichtungen übertragen.
-
Gemäß der vorliegenden Erfindung kann eine optimale Beschleunigungs-/Verlangsamungszeit eines Roboters ohne Lernen an einem Arbeitsort realisiert werden. Auf diese Art kann ein optimaler Roboterbetrieb realisiert werden, ohne einem Benutzer hinsichtlich von Zeit und Kosten eine Last aufzuerlegen. Zusätzlich muss normalerweise eine Tabelle usw. verwendet werden, um eine Beschleunigungs-/Verlangsamungszeit aus einer Stellung eines Roboters und einer Abweichungsmenge jeder Achse zu berechnen. Aufgrund einer großen Anzahl von Eingangsvariablen, sind die Ausmaße der Tabelle übermäßig groß und der Aufbau ist in der Praxis schwierig. Bei der vorliegenden Erfindung kann dieses Problem jedoch durch Verwenden eines neuronalen Netzwerks vermieden werden.
- 1 ist ein schematisches Hardwarekonfigurationsdiagramm einer Schwingungsunterdrückungsvorrichtung gemäß einer ersten Ausführungsform.
- 2 ist ein Funktionsblockschaltbild der Schwingungsunterdrückungsvorrichtung gemäß der ersten Ausführungsform;
- 3 ist ein Diagramm, das ein Beispiel eines Geschwindigkeitsplans veranschaul icht;
- 4 ist ein Diagramm zum Beschreiben eines neuronalen Netzwerks;
- 5 ist ein schematisches Funktionsblockschaltbild einer Schwingungsunterdrückungsvorrichtung gemäß einer zweiten Ausführungsform;
- 6 ist ein schematisches Funktionsblockschaltbild einer Schwingungsunterdrückungsvorrichtung gemäß einer dritten Ausführungsform;
- 7 ist ein schematisches Funktionsblockschaltbild einer Schwingungsunterdrückungsvorrichtung gemäß einer vierten Ausführungsform.
-
1 ist ein schematisches Hardwarekonfigurationsdiagramm, das einen Hauptteil einer Schwingungsunterdrückungsvorrichtung gemäß einer ersten Ausführungsform veranschaulicht.
-
Die Schwingungsunterdrückungsvorrichtung 1 kann zum Beispiel als eine Steuervorrichtung aufgebaut sein, die einen Roboter steuert, oder als ein Computer (zum Beispiel ein Zellenrechner, ein Host-Computer, ein Cloud-Server usw.) aufgebaut sein, der mit der Steuervorrichtung, die den Roboter steuert, verbunden ist. 1 veranschaulicht ein Beispiel eines Falls, in dem die Schwingungsunterdrückungsvorrichtung 1 als eine Steuervorrichtung aufgebaut ist, die einen Roboter 2 steuert.
-
Eine Zentraleinheit (CPU) 11, die in der Schwingungsunterdrückungsvorrichtung 1 gemäß der vorliegenden Ausführungsform enthalten ist, ist ein Prozessor, der die Schwingungsunterdrückungsvorrichtung 1 insgesamt steuert. Die CPU 11 liest ein Systemprogramm, das in einem Nurlesespeicher (ROM) 12 gespeichert ist, über einen Bus 20 und steuert die gesamte Schwingungsunterdrückungsvorrichtung 1 gemäß dem Systemprogramm. Ein Direktzugriffsspeicher (RAM) 13 speichert vorübergehend zeitweilige Berechnungsdaten oder Anzeigedaten, diverse Daten, die von einem Bediener über eine Eingabeeinheit (nicht veranschaulicht) eingegeben werden usw.
-
Ein nichtflüchtiger Speicher ist zum Beispiel als ein Speicher konfiguriert, der sogar in einem Speicherzustand gehalten wird, wenn eine Leistungsquelle der Schwingungsunterdrückungsvorrichtung 1 AUSgeschaltet wird, indem er durch eine Batterie (nicht veranschaulicht) gestützt wird. Der nichtflüchtige Speicher 14 speichert ein Steuerprogramm, das von außen her über eine Schnittstelle (nicht veranschaulicht) gelesen wird, eine Steuerprogrammeingabe über eine Eingabevorrichtung 72, diverse Daten (einen Parameter, der für eine arithmetische Operation erforderlich ist usw.), die von einer Eingabevorrichtung 72 eingegeben werden, diverse Daten (zum Beispiel Daten in Zusammenhang mit einer Abweichungsmenge jedes Gelenks des Roboters 2, die von der CPU 11 berechnet wird, eine Achsenposition jedes Gelenks des Roboters usw.), die aus dem Roboter 2 oder einem Sensor 60 usw. erfasst wird. Das Programm, das in dem nichtflüchtigen Speicher 14 gespeichert ist, kann während des Gebrauchs in den RAM 13 geladen werden. Zusätzlich werden diverse Systemprogramme (einschließlich eines Systemprogramms zum Steuern des Austauschs mit einer Maschinenlernvorrichtung 100), die für einen Betrieb der Schwingungsunterdrückungsvorrichtung 1 erforderlich sind, im Voraus zu dem ROM 12 geschrieben.
-
Eine Anzeigevorrichtung 70 ist eine Vorrichtung zum Anzeigen von Text und Grafiken, die einen Zustand der Schwingungsunterdrückungsvorrichtung 1 oder des Roboters 2, der über eine Schnittstelle 17 ausgegeben wird, angeben, und eine Flüssigkristallanzeige usw. kann verwendet werden. Zusätzlich kann die Eingabevorrichtung 72 einer Tastatur oder einer Maus zum Empfangen einer Eingabe von dem Bediener, einem Programmierhandgerät, das einen Impulsgenerator aufweist, usw. entsprechen. Eine Eingabe aus der Eingabevorrichtung 72 wird zu der CPU 11 über eine Schnittstelle 18 geliefert.
-
Eine Achsensteuerschaltung 30 zum Steuern eines Gelenks (einer Achse) des Roboters 2 empfängt eine Betriebsanweisungsmenge der Achse aus der CPU 11 und gibt einen Achsenbefehl zu einem Servoverstärker 40 aus. Als Reaktion auf diesen Befehl treibt der Steuerverstärker 40 einen Servomotor an, der als eine Achse, die in dem Roboter 2 enthalten ist, arbeitet. Der Servomotor 50 der Achse enthält einen Positions-/Geschwindigkeitsdetektor um ein Positions-/Feedbacksignal aus dem Positions-/Geschwindigkeitsdetektor zu der Achsensteuerschaltung 30 zurück zu melden, wodurch Feedbacksteuerung der Position/Geschwindigkeit ausgeführt wird. In dem Hardwarekonfigurationsdiagramm der 1 sind nur eine Achsensteuerschaltung 30, ein Servoverstärker 40 und ein Servomotor 50 veranschaulicht. In der Praxis entspricht jedoch jede der Anzahl von Achsensteuerschaltungen, der Anzahl von Servoverstärkern und der Anzahl von Servomotoren, die vorzubereiten ist, der Anzahl von Achsen, die in dem Roboter 2, der gesteuert werden soll, enthalten ist.
-
Der Sensor 60 wird verwendet, um Schwingung zu erfassen, die in dem Roboter 2 erzeugt wird, und es ist möglich, einen allgemeinen Beschleunigungssensor oder einen kontaktfreien Typ dreidimensionaler (3D) Messvorrichtung zu verwenden. Alternativ kann eine Bildgebungsvorrichtung usw. als der Sensor 60 angenommen werden, und ein bewegtes Bild, das von der Bildgebungsvorrichtung erfasst wird, kann analysiert werden, um Schwingung zu erfassen. Da Schwingung, die in dem Roboter 2 erzeugt wird, basierend auf Schwankung eines Stroms des Servomotors 50 usw. erfasst werden kann, wird der Sensor 60 eventuell nicht verwendet. Zusätzlich ist bei den Ausführungsformen das Erfassen der Schwingung des Roboters 2 eine notwendige Konfiguration an dem Zeitpunkt des Lernens der Maschinenlernvorrichtung 100. Wenn die Schwingungsunterdrückungsvorrichtung 1 verwendet wird, um Schwingung des Roboters 2 zu unterdrücken, indem die Maschinenlernvorrichtung 100, die das Lernen beendet, verwendet wird, ist eine Konfiguration des Erfassens der Schwingung des Roboters 2 nicht immer notwendig.
-
Eine Schnittfläche 21 ist eine Schnittfläche zum Verbinden der Schwingungsunterdrückungsvorrichtung 1 und der Maschinenlernvorrichtung 100 miteinander. Die Maschinenlernvorrichtung 100 weist einen Prozessor 101 auf, der die gesamte Maschinenlernvorrichtung 100 steuert, einen ROM 102, der ein Systemprogramm usw. speichert, einen RAM 103, der zeitweiliges Speichern in jedem Prozess in Zusammenhang mit dem Maschinenlernen ausführt, und einen nichtflüchtigen Speicher 104, der zum Speichern eines Lernmodells usw. verwendet wird. Die Maschinenlernvorrichtung 100 kann jedes Stück Information, das durch die Schwingungsunterdrückungsvorrichtung 1 über die Schnittfläche 21 erhaltbar ist (zum Beispiel Daten in Zusammenhang mit einer Abweichungsmenge jedes Gelenks des Roboters 2, die von der CPU 11 berechnet werden, einer Achsenposition jedes Gelenks des Roboters 2 usw.) beobachten.
-
Zusätzlich stellt die Schwingungsunterdrückungsvorrichtung 1 einen Parameter in Zusammenhang mit Beschleunigung und Verlangsamung jeder Achse des Roboters 2 usw. basierend auf einem Wert, der aus der Maschinenlernvorrichtung 100 ausgegeben wird, ein.
-
2 ist ein Funktionsblockschaltbild der Schwingungsunterdrückungsvorrichtung 1 gemäß der ersten Ausführungsform.
-
Jeder Funktionsblock, der in 2 veranschaulicht ist, wird realisiert, wenn die CPU 11, die in der Schwingungsunterdrückungsvorrichtung 1, die in 1 veranschaulicht ist, enthalten ist, und der Prozessor 101 der Maschinenlernvorrichtung 100 Systemprogramme jeweils ausführen, um einen Betrieb jeder Einheit der Schwingungsunterdrückungsvorrichtung 1 und der Maschinenlernvorrichtung 100 zu steuern.
-
Diese Schwingungsunterdrückungsvorrichtung 1 weist eine Lehrpositionserfassungseinheit 200 auf, die eine Position des Roboters 2 lehrt, eine Geschwindigkeitsplaneinheit 210, die einen Geschwindigkeitsplan an dem Zeitpunkt des Bewegens des Roboters 2 zu der gelehrten Lehrposition bildet, eine Abweichungsberechnungseinheit 220, die Daten in Zusammenhang mit der Abweichung jeder Achse des Roboters basierend auf dem Geschwindigkeitsplan berechnet, eine Stellungsdatenerfassungseinheit 230, die eine Position jeder Achse des Roboters erfasst, eine Konvergenzbestimmungseinheit 240, die Konvergenzbestimmung eines Beschleunigungs-/Beschleunigungsparameters, der von der Maschinenlernvorrichtung 100 geschätzt wird, basierend auf den Daten in Zusammenhang mit der Abweichung oder der Achsenposition ausführt, eine Steuereinheit 250, die den Roboter basierend auf dem geschätzten Beschleunigungs-/Verlangsamungsparameter steuert, und eine Einheit zum Suchen eines optimalen Beschleunigungs-/Verlangsamungsparameters basierend auf dem geschätzten Beschleunigungs-/Verlangsamungsparameter.
-
Die Lehrpositionserfassungseinheit 200 erfasst eine Lehrposition des Roboters 2 basierend auf einer Eingabe aus der Eingabevorrichtung 72 durch den Bediener (einer Lehrposition des Roboters 2, die von dem Programmierhandgerät usw. eingegeben wird, oder einer Position, die auf einem Lernplan basiert, der von der Tastatur usw. eingegeben wird). Die Lehrposition des Roboters 2, die von der Lehrpositionserfassungseinheit 200 erfasst wird, weist Positionsinformationen jeder Achse, die in dem Roboter 2 enthalten ist, auf.
-
Die Geschwindigkeitsplaneinheit 210 berechnet einen Geschwindigkeitsplan jeder Achse an dem Zeitpunkt des Betreibens zu der Lehrposition des Roboters 2, die von der Lehrpositionserfassungseinheit 200 erfasst wird. Die Geschwindigkeitsplaneinheit 210 berechnet den Geschwindigkeitsplan basierend auf einem anfänglichen Beschleunigungs-/Verlangsamungsparameter, der in dem nichtflüchtigen Speicher 14 eingestellt ist usw. im Voraus, wenn die Lehrposition des Roboters 2, die von der Lehrpositionserfassungseinheit 200 erfasst wird, eingegeben wird. Zusätzlich, wenn die Neuberechnung des Geschwindigkeitsplans aus der Konvergenzbestimmungseinheit 240 angewiesen wird, berechnet die Geschwindigkeitsplaneinheit 210 den Geschwindigkeitsplan basierend auf einem Beschleunigungs-/Verlangsamungsparameter, der gemäß dem Befehl korrigiert ist.
-
3 ist ein Diagramm, das einen Geschwindigkeitsplan veranschaulicht, der von der Geschwindigkeitsplaneinheit 210 berechnet wurde.
-
Bei einem Beispiel der 3 führt jede Achse des Roboters 2 Beschleunigung und Verlangsamung der Achse durch lineare Beschleunigung und Verlangsamung aus. Wenn der Roboter 2 Beschleunigung und Verlangsamung, wie in 3 veranschaulicht, ausführt, kann ein Geschwindigkeitsplan durch eine Lehrposition des Roboters 2, eine Höchstgeschwindigkeitsspezifikation jeder Achse des Roboters 2 und eine Beschleunigungs-/Verlangsamungszeit τ (Primär-Beschleunigungs-/- Verlangsamungszeit τ), die einem Beschleunigungs-/Verlangsamungsparameter entspricht, berechnet werden. Dann kann der Geschwindigkeitsplan durch Einstellen eines Werts der Beschleunigungs-/Verlangsamungszeit τ geändert werden. 3 ist ein Beispiel des Geschwindigkeitsplans, der von der Geschwindigkeitsplaneinheit 210 berechnet wird. Unterschiedliche Beschleunigungs-/Verlangsamungszeiten können zum Beispiel auf einer Beschleunigungsseite und einer Verlangsamungsseite verwendet werden (wobei in diesem Fall die Anzahl von Beschleunigungs-/Verlangsamungsparametern zwei beträgt), oder ein Geschwindigkeitsplan, der zum Beispiel ein Beschleunigungs-/Verlangsamungsfilter oder ein Polynom verwendet, kann berechnet werden, um eine Beschleunigungs-/Verlangsamungswellenform feiner zu steuern (wobei in diesem Fall der Beschleunigungs-/Verlangsamungsparameter in Abhängigkeit von der Anzahl von Beschleunigungs-/Verlangsamungsfiltern oder dem Grad des Polynoms zunimmt).
-
Die Abweichungsberechnungseinheit 220 berechnet Daten in Zusammenhang mit der Abweichung, die Daten zum Spezifizieren der Abweichungsmenge, die in jeder Achse des Roboters 2 auftritt, entsprechen, basierend auf dem Geschwindigkeitsplan, der von der Geschwindigkeitsplaneinheit 210 berechnet wurde. Die Abweichungsberechnungseinheit 220 berechnet zum Beispiel eine Kraft oder ein Moment in Zusammenhang mit jeder Achse des Roboters 2 unter Verwenden eines bekannten Verfahrens, wie des Newton-Euler-Verfahrens, basierend auf einem Geschwindigkeitsplan und einem Verbindungsgewicht, einer Position eines Schwerpunkts und der Trägheit des Roboters 2, und berechnet die Abweichungsmenge jeder Achse des Roboters 2 als Daten in Zusammenhang mit Abweichung durch Multiplizieren der berechneten Kraft oder des berechneten Moments in Zusammenhang mit jeder Achse des Roboters 2 mit einem Steifigkeitskoeffizienten jeder Achse des Roboters 2, der im Voraus durch ein Experiment usw. erhalten wird. Die Daten in Zusammenhang mit der Abweichung, die von der Abweichungsberechnungseinheit 220 berechnet werden, entsprechen eventuell nicht der Abweichungsmenge jeder Achse des Roboters 2, und ein Datensatz, der es erlaubt, die Abweichungsmenge jeder Achse des Roboters 2 indirekt zu erhalten, kann als die Daten in Zusammenhang mit der Abweichung berechnet werden.
-
Die Stellungsdatenerfassungseinheit 230 erfasst Daten in Zusammenhang mit einer Stellung, die Daten zum Spezifizieren einer Stellung an einer Position (Lehrposition), an der der Betrieb des Roboters gestoppt wird, entsprechen. Die Daten in Zusammenhang mit der Stellung entsprechen Daten, die es erlauben, eine Position jeder Achse des Roboters 2 direkt oder indirekt in einem bestimmten Zustand (Stellung) zu spezifizieren, die ein Satz wie ein Satz von Werten sein können, die direkt eine Position jeder Achse in einem bestimmten Zustand angeben (ein Satz von Positionen des Servomotors 50, der jedes Gelenk antreibt), oder ein Satz als ein Wert oder ein Satz von Werten, der eine Position jeder Achse in einem bestimmten Zustand (zum Beispiel, wenn der Roboter 2 ein Roboter mit 6 Achsen ist, wird eine Position jeder Achse eindeutig durch eine Position (Koordinatenwert) eines distalen Endes des Roboters 2 bestimmt, und daher kann ein Wert der Position des distalen Endes des Roboters 2 als die Daten in Zusammenhang mit der Stellung verwendet werden) direkt angeben. Daten in Zusammenhang mit einer Stoppposition jeder Achse des Roboters 2, die durch die Stellungsdatenerfassungseinheit 230 erfasst werden, werden als eine Eingabe eines Lern-/Schätzungsvorgangs durch die Maschinenlernvorrichtung 100 verwendet, da eine Steifigkeitsänderung aufgrund der Stellung des Roboters 2 die Schwingung beeinflusst, wenn der Roboter 2 stoppt.
-
Die Maschinenlernvorrichtung 100 verwendet die Daten in Zusammenhang mit der Abweichung, die von der Abweichungsberechnungseinheit 220 berechnet werden, und die Daten in Zusammenhang mit der Stellung an der Stoppposition des Roboters 2, die von der Stellungsdatenerfassungseinheit 230 erfasst werden, als einen Eingang zum Lernen/Schätzen eines Beschleunigungs-/Verlangsamungsparameters, der es dem Roboter 2 erlaubt, mit einer höchsten Geschwindigkeit innerhalb eines Bereichs zu arbeiten, in dem Schwingung des Roboters 2 in einem Fall unterdrückt werden kann, in dem ein solcher Vorgang ausgeführt wird. Die Maschinenlernvorrichtung 100 lernt einen Beschleunigungs-/Verlangsamungsparameter, der es dem Roboter 2 erlaubt, mit der höchsten Geschwindigkeit innerhalb des Bereichs zu arbeiten, in dem Schwingung des Roboters 2 bezüglich der Daten in Zusammenhang mit der Abweichung und den Daten in Zusammenhang mit der Stellung an der Stoppposition des Roboters 2 unterdrückt werden kann, durch Ausführen überwachten Lernens gemäß einem bekannten Maschinenlernalgorithmus, und schätzt einen Beschleunigungs-/Verlangsamungsparameter, der es dem Roboter 2 erlaubt, an der höchsten Geschwindigkeit innerhalb des Bereichs zu arbeiten, in dem die Schwingung des Roboters 2 basierend auf den Daten in Zusammenhang mit der Abweichung und den Daten in Zusammenhang mit der Stellung an der Stoppposition des Roboters 2 unter Verwenden eines gelernten Modells als ein Lernresultat.
-
Überwachtes Lernen ist eine System, bei dem ein bekannter Datensatz (der Lehrerdaten genannt wird) eine Eingabe und einer Ausgabe, die dem entspricht, gegeben wird, und ein Merkmal, das eine Korrelation zwischen der Eingabe und der Ausgabe andeutet, von den Lehrerdaten unterschieden wird, wodurch ein Korrelationsmodell zum Schätzen einer erforderlichen Ausgabe bezüglich einer neuen Eingabe gelernt wird. Wenn überwachtes Lernen ausgeführt wird, kann zum Beispiel ein neuronales Netzwerk, das in 4 veranschaulicht ist, als eine Lern-/Schätzungseinheit der Maschinenlernvorrichtung 100 verwendet werden. 4 veranschaulicht schematisch ein Modell eines dreischichtigen neuronalen Netzwerks, das durch Kombinieren von Neuronen gebildet wird. In dem neuronalen Netzwerk kann die Anzahl von Teilen von Eingangsdaten und die Anzahl von Teilen von Ausgangsdaten jeweils durch die Anzahl von Neuronen, die in einem Eingangsteil und einem Ausgangsteil angeordnet sind, eingestellt werden. Ein solches neuronales Netzwerk kann zum Beispiel aus einer Arithmetikeinheit, einer Speichereinheit usw., die ein Modell eines Neurons nachahmt, gebildet werden.
-
In einem Fall, in dem ein neuronales Netzwerk in der Maschinenlernvorrichtung 100 verwendet wird, wird ein neuronales Netzwerk, in dem die Daten in Zusammenhang mit der Abweichung und die Daten in Zusammenhang mit der Stellung an der Stoppposition des Roboters 2 als Eingangsdaten x (Eingänge x1, x2, ... , xm) eingestellt sind, und der Beschleunigungs-/Verlangsamungsparameter als Resultatdaten y (Resultate y1, y2, ... , yn) eingestellt ist, im Voraus aufgebaut, und ein erlerntes Modell wird durch Einstellen eines Gewichts w (w1, w2, w3) zwischen Neuronen bei einer Lernetappe der Maschinenlernvorrichtung 100, die unten beschrieben ist, eingestellt.
-
Obwohl das Modell des dreischichtigen neuronalen Netzwerks in 4 veranschaulicht ist, ist es möglich, ein sogenanntes tiefes Lernverfahren zu verwenden, das ein neuronales Netzwerk, das drei oder mehr Schichten aufweist, als die Lern-Schätzungseinheit der Maschinenlernvorrichtung 100 der vorliegenden Erfindung verwendet.
-
Die Konvergenzbestimmungseinheit 240 bestimmt, ob der Beschleunigungs-/Verlangsamungsparameter, der von der Maschinenlernvorrichtung 100 basierend auf den Daten in Zusammenhang mit der Abweichung und den Daten in Zusammenhang mit der Stellung an der Stoppposition des Roboters 2 geschätzt wird, konvergiert hat oder nicht. Die Konvergenzbestimmungseinheit 240 vergleicht den Beschleunigungs-/Verlangsamungsparameter (der als ein erster Beschleunigungs-/Verlangsamungsparameter eingestellt ist), der von der Geschwindigkeitsplaneinheit 210 zum Berechnen des Geschwindigkeitsplans verwendet wird, mit dem Beschleunigungs-/Verlangsamungsparameter (der als ein zweiter Beschleunigungs-/Verlangsamungsparameter eingestellt ist), der von der Maschinenlernvorrichtung 100 basierend auf den Daten in Zusammenhang mit der Abweichung und den Daten in Zusammenhang mit der Stellung an der Stoppposition des Roboters 2, basierend auf dem Beschleunigungs-/Verlangsamungsparameter, geschätzt wird, und bestimmt, dass der Beschleunigungs-/Verlangsamungsparameter, der von der Maschinenlernvorrichtung 100 geschätzt wird, konvergiert hat, wenn ein Unterschied zwischen dem ersten Beschleunigungs-/Verlangsamungsparameter und dem zweiten Beschleunigungs-/Verlangsamungsparameter innerhalb eines vorbestimmten Schwellenwerts, der im Voraus festgelegt wird, konvergiert hat.
-
Falls die Maschinenlernvorrichtung 100 bestimmt, dass der Beschleunigungs-/Verlangsamungsparameter, der von der Maschinenlernvorrichtung 100 geschätzt wurde, noch nicht konvergiert hat, korrigiert die Konvergenzbestimmungseinheit 240 den Beschleunigungs-/Verlangsamungsparameter und weist dann die Geschwindigkeitsplaneinheit 210 an, den Geschwindigkeitsplan wieder zu berechnen. Angenommen der zweite Beschleunigungs-/Verlangsamungsparameter, der von der Maschinenlernvorrichtung 100 geschätzt wird, entspricht der modifizierten Version des ersten Beschleunigungs-/Verlangsamungsparameters, kann die Konvergenzbestimmungseinheit 240 die Geschwindigkeitsplaneinheit 210 anweisen, den Geschwindigkeitsplan wieder unter Verwenden des modifizierten ersten Beschleunigungs-/Verlangsamungsparameters (das heißt mit dem zweiten Beschleunigungs-/Verlangsamungsparameter) zu berechnen. Zusätzlich kann die Konvergenzbestimmungseinheit 240 den ersten Beschleunigungs-/Verlangsamungsparameter unter Verwenden einer Korrekturformel eines Beschleunigungs-/Verlangsamungsparameters, der empirisch im Voraus basierend auf einer Menge des Unterschieds zwischen dem ersten Beschleunigungs-/Verlangsamungsparameter und dem zweiten Beschleunigungs-/Verlangsamungsparameter erhalten wurde, und einem Vorzeichen dieses (die Beziehung von Größen zwischen dem ersten Beschleunigungs-/Verlangsamungsparameter und dem zweiten Beschleunigungs-/Verlangsamungsparameter) korrigieren und die Geschwindigkeitsplaneinheit 210 anweisen, den Geschwindigkeitsplan wieder unter Verwenden des Resultats zu berechnen.
-
Wenn die Maschinenlernvorrichtung 100, die eine hohe Schätzungsfähigkeit aufweist, die fähig ist, einen optimalen Beschleunigungs-/Verlangsamungsparameter durch einmalige Schätzung basierend auf einer zweckdienlichen Eingabe zu berechnen, aufgebaut wird, kann die Konfiguration der Konvergenzbestimmungseinheit 240 weggelassen werden. In diesem Fall wird iterative Berechnung nicht ausgeführt, und ein optimaler Beschleunigungs-/Verlangsamungsparameter kann effizient erhalten werden.
-
Die Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung 260 sucht nach einem Beschleunigungs-/Verlangsamungsparameter zum Betreiben des Roboters 2 mit der höchsten Geschwindigkeit innerhalb des Bereichs, in dem die Schwingung des Roboters 2 unterdrückt werden kann, wenn jede Achse des Roboters 2 zu der Lehrposition betrieben wird. Die Einheit zum Suchen einer optimalen Beschleunigungs-/Verlangsamungsparameters 260 kann nach einem optimalen Beschleunigung/Verlangsamung durch tatsächliches Steuern des Roboters 2 suchen. In diesem Fall veranlasst eine anfängliche Suchetappe der Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung 260 eine Geschwindigkeitsplaneinheit 210, Berechnung basierend auf dem Beschleunigungs-/Verlangsamungsparameter, von dem durch die Konvergenzbestimmungseinheit 240 (als Einschätzung Resultat der Maschinenlernvorrichtung 100) bestimmt wurde, dass er konvergiert wurde, auszuführen, weist die Steuereinheit 250 an, jede Achse des Roboters zu der Lehrposition basierend auf dem berechneten Geschwindigkeitsplan zu betätigen, und erfasst Schwingung, die erzeugt wird, wenn jede Achse des Roboters 2 zu der Lehrposition betrieben wird, aus dem Sensor 60.
-
Wenn die Schwingung des Roboters 2 größer ist als ein vorbestimmter Schwellenwert, der im Voraus eingestellt wurde, stellt die Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung 260 den Beschleunigungs-/Verlangsamungsparameter derart ein, dass der Beschleunigungs-/Verlangsamungsparameter sanfter wird, veranlasst die Geschwindigkeitsplaneinheit 210, den Geschwindigkeitsplan wieder basierend auf dem angepassten Beschleunigungs-/Verlangsamungsparameter zu berechnen, und führt den Betrieb des Roboters 2 und Schwingungsmessung wieder basierend auf dem berechneten Geschwindigkeitsplan aus.
-
Andererseits, wenn die Schwingung des Roboters 2 kleiner ist als der vorbestimmte Schwellenwert, der im Voraus eingestellt wurde, und eine Marge besteht (wenn ein Unterschied mehr als ein Schwellenwert um eine vorbestimmte Margenmenge besteht), stellt die Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung 260 den Beschleunigungs-/Verlangsamungsparameter derart ein, dass der Beschleunigungs-/Verlangsamungsparameter steiler wird, veranlasst die Geschwindigkeitsplaneinheit 210, den Geschwindigkeitsplan wieder basierend auf dem angepassten Beschleunigungs-/Verlangsamungsparameter zu berechnen, und führt den Betrieb des Roboters 2 und Schwingungsmessung wieder basierend auf dem berechneten Geschwindigkeitsplan aus.
-
Durch Wiederholen des oben stehenden Prozesses, erhält die Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung 260 den optimalen Beschleunigungs-/Verlangsamungsparameter, der es dem Roboter 2 erlaubt, mit der höchsten Geschwindigkeit innerhalb des Bereichs zu arbeiten, in dem Schwingung des Roboters 2 unterdrückt werden kann.
-
Die Einheit zum Suchen eines optimalen Beschleunigungs-/Verlangsamungsparameters 260 kann nach einem optimalen Beschleunigungs-/Verlangsamungsparameter ohne tatsächliches Steuern des Roboters 2 suchen. Eine System zum Erhalten des optimalen Beschleunigungs-/Verlangsamungsparameters unter Verwenden eines Hochpräzisionssimulators usw. ist effektiv.
-
Auf diese Art schreitet das Lernen der Maschinenlernvorrichtung 100 unter Verwenden des optimalen Beschleunigungs-/Verlangsamungsparameters, der durch die Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung erhalten wird, der Daten, die mit der Abweichung zusammenhängen, die als Eingangsdaten der Maschinenlernvorrichtung 100 an dem Zeitpunkt des Schätzens des Beschleunigungs-/Verlangsamungsparameters, von dem durch die Konvergenzbestimmungseinheit 240 bestimmt wird, dass er konvergiert hat, verwendet werden, und der Daten in Zusammenhang mit der Stellung an der Stoppposition des Roboters 2 fort.
-
Dann schreitet durch Ausführen der oben stehenden Vorgehensweise unter Verwenden diverser Lehrpositionen, Betriebsgeschwindigkeiten und Lastbedingungen das Lernen der Maschinenlernvorrichtung 100 fort, und ein erlerntes Modell wird aufgebaut.
-
Die Maschinenlernvorrichtung 100 (das erlernte Modell), die auf diese Art erhalten wird, kann ohne Ändern an einem Arbeitsort eines Benutzers verwendet werden, und daher ist das erneute Lernen an dem Arbeitsort des Benutzers unnötig. Aus diesem Grund ist es unnötig, einen Sensor für Schwingungsmessung auf der Benutzerseite vorzubereiten, und es ist möglich, nur ein Resultat des Lernens ohne Auferlegen einer Belastung für den Benutzer zu verwenden.
-
5 ist ein schematisches Funktionsblockschaltbild einer Schwingungsunterdrückungsvorrichtung 1 einer zweiten Ausführungsform, die an dem Arbeitsort des Benutzers verwendet wird. Jeder Funktionsblock, der in 5 veranschaulicht ist, wird realisiert, wenn die CPU 11, die in der Schwingungsunterdrückungsvorrichtung 1, die in 1 veranschaulicht ist, enthalten ist, und der Prozessor 101 der Maschinenlernvorrichtung 100 Systemprogramme jeweils ausführen, um einen Betrieb jeder Einheit der Schwingungsunterdrückungsvorrichtung 1 und der Maschinenlernvorrichtung 100 zu steuern
-
Die Maschinenlernvorrichtung 100, die in der Schwingungsunterdrückungsvorrichtung 1 der vorliegenden Ausführungsform enthalten ist, wird durch Abschließen des Aufbaus des erlernten Modells durch die Schwingungsunterdrückungsvorrichtung 1 der ersten Ausführungsform erhalten, und andere funktionale Mittel funktionieren ähnlich wie bei der ersten Ausführungsform.
-
Wenn der Benutzer weiter die Schwingungsunterdrückungsvorrichtung 1 der vorliegenden Ausführungsform verwendet, ist es nicht nötig, dass sich der Benutzer der Verarbeitung, die von jedem funktionalen Mittel der Schwingungsunterdrückungsvorrichtung 1 ausgeführt wird, bewusst ist. Das Verarbeiten wird automatisch nur durch Lehren einer Position ausgeführt, und der Roboter 2 wird an einer optimalen Beschleunigungs-/Verlangsamungszeitkonstante gesteuert.
-
6 ist ein schematisches Funktionsblockschaltbild der Schwingungsunterdrückungsvorrichtung 1 gemäß einer dritten Ausführungsform, bei der eine Maschinenlernvorrichtung 100 auf einem Server, wie einer Zellensteuervorrichtung, einem Host-Computer einem Cloud-Server usw. verbunden mit einer Steuervorrichtung 3, die einen Roboter über ein Netzwerk 400 steuert, angeordnet ist.
-
Bei der vorliegenden Ausführungsform hat jedes funktionale Mittel dieselbe Funktion wie die der ersten Ausführungsform (2), mit der Ausnahme, dass eine Einheit zum Suchen einer optimalen Beschleunigung/Verlangsamung 260 auf der Steuervorrichtung 3, die den Roboter steuert, angeordnet ist, die Schwingungsunterdrückungsvorrichtung 1 und eine Mehrzahl von Steuervorrichtungen 3 einen Beschleunigungs-/Verlangsamungsparameter, eine Lehrposition, einen Geschwindigkeitsplan usw. durch Kommunikationseinheiten 270 und 310 austauschen, und eine Lehrpositionserfassungseinheit 200 eine Lehrposition jedes Roboters aus jeder der Steuervorrichtungen 3 nach Bedarf erfassen kann. Es ist wünschenswert, dass jeder Roboter 2 ein identischer Roboter ist, der dieselbe Funktion und Leistung besitzt.
-
Die Schwingungsunterdrückungsvorrichtung 1 der vorliegenden Offenbarung erhält einen Beschleunigungs-/Verlangsamungsparameter in Zusammenhang mit jedem Roboter 2 basierend auf der Lehrposition, die aus jeder Steuervorrichtung 3 erfasst wird, und überträgt den erhaltenen Beschleunigungs-/Verlangsamungsparameter zu jeder Steuervorrichtung 3. Zusätzlich betreibt jede Steuervorrichtung 3 tatsächlich den Roboter 2 basierend auf dem Beschleunigungs-/Verlangsamungsparameter, der von der Schwingungsunterdrückungsvorrichtung 1 erhalten wird, sucht nach einem optimalen Beschleunigungs-/Verlangsamungsparameter, und überträgt den gesuchten optimalen Beschleunigungs-/Verlangsamungsparameter zu der Schwingungsunterdrückungsvorrichtung 1. Dann führt die Schwingungsunterdrückungsvorrichtung 1 das Lernen der Maschinenlernvorrichtung 100 basierend auf dem optimalen Beschleunigungs-/Verlangsamungsparameter, der von jeder Steuervorrichtung 3 erhalten wurde, aus. Die Schwingungsunterdrückungsvorrichtung 1 der vorliegenden Offenbarung kann folglich das Lernen parallel zu der Eingabe mehrerer Datensätze unter Verwenden der Mehrzahl von Steuervorrichtungen 3 ausführen und die Geschwindigkeit und Zuverlässigkeit des Maschinenlernens verbessern.
-
7 ist ein schematisches Funktionsblockschaltbild der Schwingungsunterdrückungsvorrichtung 1 gemäß einer vierten Ausführungsform, bei der eine Maschinenlernvorrichtung 100 auf einem Computer (zum Beispiel einem Server, der auf einer Herstellerseite installiert ist) usw. verbunden mit einer Steuervorrichtung 3, die einen Roboter über ein Netzwerk 400 steuert, angeordnet ist.
-
Bei der vorliegenden Ausführungsform hat jedes funktionale Mittel dieselbe Funktion wie die der zweiten Ausführungsform (5) mit der Ausnahme, dass die Schwingungsunterdrückungsvorrichtung 1 und eine Mehrzahl von Steuervorrichtungen 3, die an dem Arbeitsort des Benutzers installiert sind, einen Beschleunigungs-/Verlangsamungsparameter, eine Lehrposition, einen Geschwindigkeitsplan usw. durch Kommunikationseinheiten 270 und 310 austauschen, und eine Lehrpositionserfassungseinheit 200 eine Lehrposition jedes Roboters aus den Steuervorrichtungen 3 erfassen kann. Es ist wünschenswert, dass jeder Roboter 2 ein identischer Roboter ist, der dieselbe Funktion und Leistung besitzt.
-
Wenn der Benutzer weiter die Schwingungsunterdrückungsvorrichtung 1 der vorliegenden Ausführungsform verwendet, ist es nicht nötig, dass sich der Benutzer der Verarbeitung, die von jedem funktionalen Mittel der Schwingungsunterdrückungsvorrichtung 1 ausgeführt wird, bewusst ist. Das Verarbeiten wird automatisch nur durch Lehren einer Position ausgeführt, und der Roboter 2 wird an einer optimalen Beschleunigungs-/Verlangsamungszeitkonstante gesteuert. Bei dieser Konfiguration ist es unnötig, über die Schwingungsunterdrückungsvorrichtung 1 auf der Benutzerseite zu verfügen, und daher können die Kosten für den Benutzer und Wartungskosten der Schwingungsunterdrückungsvorrichtung 1 verringert werden.
-
Zusätzlich können sogar in einem Fall, in dem der Server in einem Werk des Benutzers installiert ist, und nicht auf der Herstellerseite, da nur ein Server für eine Mehrzahl von Robotersteuervorrichtungen erforderlich ist, Kosten für den Benutzer im Vergleich zu einem Fall, in dem eine Funktion in jeder Steuervorrichtung umgesetzt wird, eliminiert werden.
-
Obwohl die vorliegende Erfindung oben beschrieben wurde, ist die vorliegende Erfindung nicht auf diese Ausführungsformen, die oben beschrieben sind, beschränkt, und kann auf diverse Arten durch Ausführen zweckdienlicher Änderungen umgesetzt werden.
-
Wenn die Steifigkeit einer Hand oder eines Werkzeugs, die/das an dem Roboter 2 angebracht und von dem Benutzer verwendet wird, geringer ist als erwartet, besteht eine Möglichkeit, dass Schwingung in einem Teil der Hand oder des Werkzeugs zunimmt. Einem solchen Problem wird durch Bereitstellen der Schwingungsunterdrückungsvorrichtung 1 mit einer Funktion abgeholfen, die es dem Benutzer erlaubt, die Beschleunigungs-/Verlangsamungszeit nach Bedarf einzustellen, da ein Ausmaß der zulässigen Schwingung gemäß einer Anwendung variiert. Nach dem Erhalten eines Beschleunigungs-/Verlangsamungsparameters zum Erhöhen einer Geschwindigkeit während des Unterdrückens einer Schwingung des Roboters ohne Berücksichtigung von Werkzeugschwingung durch die Schwingungsunterdrückungsvorrichtung 1, kann der Beschleunigungs-/Verlangsamungsparameter oder der Geschwindigkeitsplan auf der Anzeigevorrichtung 70 angezeigt werden, und der Benutzer kann den Beschleunigungs-/Verlangsamungsparameter oder den Geschwindigkeitsplan unter Verwenden der Eingabevorrichtung 72 einstellen.
-
Zusätzlich können die Daten in Zusammenhang mit der Abweichung in Anbetracht einer Geschwindigkeitsrichtung unmittelbar vor dem Stoppen des Roboters 2 berechnet werden. Obwohl Abweichung ständig durch Schwerkraft auftritt, ändert sich zum Beispiel die Abweichung, wenn sich der Roboter in eine horizontale Richtung bewegt, nicht, und ein Einfluss einer Schwingung ist gering. Um einen solchen Effekt zu berücksichtigen, kann nur eine Abweichung eines Bauteils in die Geschwindigkeitsrichtung des Roboters als die Daten in Zusammenhang mit Abweichung berechnet werden.
-
Unten wird eine Beschreibung eines Unterschieds zwischen einem Schwingungsunterdrückungsverfahren, das Maschinenlernen der vorliegenden Erfindung verwendet, und einem anderen Schwingungsunterdrückungsverfahren, das kein Maschinenlernen verwendet, gegeben.
-
Es kann einen Ansatz geben, bei dem die Maschinenlernvorrichtung 100 der 2 und der 5 verwendet wird, um eine Zeitkonstante zu berechnen, an der Schwingung nicht auftritt, indem Schwingung unter Verwenden eines Simulators eines physischen Modells berechnet wird. Dieses Verfahren wird verwendet, um eine arithmetische Operation auf einem Vorgang jedes Teils des Roboters durch Simulationsverarbeiten und Simulieren einer Schwingung auszuführen. Ein solches Verfahren weist jedoch einen hohen Rechenaufwand auf, und das Arbeiten in Echtzeit ist schwierig. Zusätzlich, sogar wenn Schwingung simuliert werden kann, ist ein System zum Ändern eines Beschleunigungs-/Verlangsamungsparameters zum Verringern einer Schwingung bis innerhalb eines Schwellenwerts unklar, und wiederholte Berechnung ist erforderlich, was in einer weiteren Steigerung des Rechenaufwands resultiert. Andererseits ist es bei dem Schwingungsunterdrückungsverfahren, das Maschinenlernen der Ausführungsformen verwendet, möglich, den Rechenaufwand in Zusammenhang mit Schätzung eines Beschleunigungs-/Verlangsamungsparameters durch Ausführen von Lernen im Voraus unter Verwenden der Maschinenlernvorrichtung 100 weitgehend zu eliminieren.
-
Es kann zusätzlich einen Ansatz geben, bei dem eine Tabelle, die eine Beziehung zwischen einer Eingabe und einer Ausgabe angibt, angelegt wird, und die Maschinenlernvorrichtung 100 der 2 und der 5 wird verwendet, um einen Beschleunigungs-/Verlangsamungsparameter unter Verwenden der Tabelle zu berechnen. Bei diesem Verfahren ist es jedoch nötig, eine Tabelle mit Ausmaßen anzulegen, die der Anzahl von Eingangsvariablen entsprechen, und die Daten werden enorm. Das Ausführen ist folglich hinsichtlich der Mannstunden der Experimente zum Anlegen der Tabelle und hinsichtlich der Speichermenge bei dem Aufbauen schwierig. Andererseits ist es bei dem Schwingungsunterdrückungsverfahren, das Maschinenlernen der Ausführungsformen verwendet, möglich, sowohl die experimentellen Mannstunden als auch die Speichermenge durch Ausführen des Lernens im Voraus unter Verwenden der Maschinenlernvorrichtung 100 zu eliminieren.