-
HINTERGRUND DER ERFINDUNG
-
Die vorliegende Erfindung bezieht sich auf eine Rechenvorrichtung, die so konfiguriert ist, dass sie Berechnungen zur Steuerung von Vorgängen eines mobilen Manipulators bzw. Roboters durchführt, der eine Mehrzahl von Bewegungszielobjekten mit einem Manipulator hält und die Bewegungszielobjekte an vorbestimmte Positionen bewegt. Die vorliegende Erfindung bezieht sich auch auf ein Maschinenlernverfahren und ein Speichermedium.
-
Es ist ein Roboter bekannt, der so konfiguriert ist, dass er ein Zielobjekt mit einem Manipulator hält. Die japanische Patentanmeldung
JP 2018 - 051 664 A offenbart zum Beispiel eine Technik, bei der der Roboter an einer vorbestimmten Position fixiert wird und ein Maschinenlernmodell die Sequenz lernt, in der der Manipulator eine Mehrzahl von Objekten hält, die in einem vorbestimmten Bereich auf einem Förderband platziert sind. Eine Rechenvorrichtung, die konfiguriert ist, um eine Berechnung zur Steuerung von Vorgängen eines mobilen Manipulators durchzuführen, der konfiguriert ist, um eine Mehrzahl von Zielobjekten mit einem Manipulator zu halten und die Zielobjekte an vorbestimmte Positionen zu bewegen, ist aus der
US 2016 / 0 016 311 A1 bekannt. Darüber hinaus wird in Bezug auf den Stand der Technik noch auf die
DE 10 2018 002 423 A1 , die
DE 10 2016 009 113 A1 , die
US 2016 / 0 176 043 A1 , die
US 2014 / 0 371 907 A1 sowie die
US 2010 / 0 094 786 A1 verwiesen.
-
KURZFASSUNG DER ERFINDUNG
-
Die in der
JP 2018 - 051 664 A offenbarte Technik wird unter der Voraussetzung bereitgestellt, dass der Roboter an der vorgegebenen Position fixiert ist. Daher kann diese Technik nicht auf einen mobilen Manipulator angewendet werden, in dem ein mit einem Manipulator versehener Roboter beweglich ist.
-
Die vorliegende Erfindung hat zur Aufgabe, eine Rechenvorrichtung zu schaffen, die in der Lage ist, aus Zielobjekten in geeigneter Weise ein optimales Bewegungszielobjekt zu bestimmen, das von einem mobilen Manipulator zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll. Zudem soll ein entsprechendes Maschinenlernverfahren für ein Maschinenlernmodell geschaffen sowie ein nichtflüchtiges Speichermedium angeboten, das entsprechende Anweisungen speichert, die von einem oder mehreren Prozessoren ausführbar sind. Diese Aufgabe wird erfindungsgemäß gelöst mit der Rechenvorrichtung nach Anspruch 1, dem Maschinenlernverfahren nach Anspruch 6 und dem nichtflüchtigen Speichermedium nach Anspruch 7; vorteilhafte Weiterbildungen sind Gegenstand der Unteransprüche.
-
Eine Rechenvorrichtung gemäß einem ersten Aspekt der vorliegenden Erfindung ist konfiguriert, um eine Berechnung zur Steuerung von Vorgängen eines mobilen Manipulators durchzuführen, der konfiguriert ist, um eine Mehrzahl von Zielobjekten mit einem Manipulator zu halten und die Zielobjekte an vorbestimmte Positionen zu bewegen. Die Rechenvorrichtung umfasst eine Erfassungseinrichtung, einen Speicher und einen Rechner bzw. eine Recheneinrichtung. Die die Erfassungseinrichtung ist konfiguriert, dass sie eine Zustandsvariable erfasst, die relative Positionen der Zielobjekte zu einem bestimmten Abschnitt des mobilen Manipulators enthält, und die erfasste Zustandsvariable an die Recheneinrichtung überträgt, die so konfiguriert ist, dass sie die von der Erfassungseinrichtung erfasste Zustandsvariable empfängt. Der Speicher ist so konfiguriert, dass er ein trainiertes Maschinenlernmodell speichert, wobei das in dem Speicher gespeicherte trainierte Maschinenlernmodell durch Eingeben einer Mehrzahl von Trainingsdatensätzen trainiert wird, die im Voraus erfasst werden, und die Trainingsdatensätze Kombinationen von Zustandsvariablen und Teilen von Bestimmungsdaten sind, die den Zustandsvariablen zugeordnet sind. Die Recheneinrichtung ist so konfiguriert, dass sie das in dem Speicher gespeicherte trainierte Maschinenlernmodell ausliest und die erfasste Zustandsvariable in das aus dem Speicher ausgelesene trainierte Maschinenlernmodell eingibt, so dass das trainierte Maschinenlernmodell ein Bewegungszielobjekt ausgibt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll. Die der Zustandsvariablen zugeordneten Bestimmungsdaten stellen das Bewegungszielobjekt dar. Die Zustandsvariable enthält eine relative Position eines Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators. Die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators und die relative Position des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators werden durch Daten auf einer Karte oder auf einem Bitmap-Bild dargestellt. Die relativen Positionen der Zielobjekte und des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators enthalten Informationen über eine Schwerkraftrichtung.
-
Die Zustandsvariable des Maschinenlernmodells, die die relativen Positionen der Zielobjekte zum bestimmten Abschnitt des mobilen Manipulators enthält, zeigt die Positionsbeziehungen der Zielobjekte relativ zum bestimmten Abschnitt des mobilen Manipulators. Auf diese Weise ist es möglich, von den Zielobjekten ein optimales Bewegungszielobjekt zu bestimmen, das von dem mobilen Manipulator, dessen absolute Position geändert wird, zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll.
-
Selbst wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators gleich sind, variiert die Leichtigkeit der Bewegung zu einer vorbestimmten Position abhängig davon, ob zwischen dem mobilen Manipulator und jedem Zielobjekt ein Hindernis vorhanden ist. Mit der Zustandsvariablen, die die relative Position des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators enthält, kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt zu einer vorbestimmten Position bewegt werden soll, besser bestimmt werden.
-
Da die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators und die relative Position des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators durch Daten auf einer Karte oder auf einem Bitmap-Bild dargestellt werden, können benachbarte Hindernisse im Prozess des Trainierens des Maschinenlernmodells kollektiv als eine Einheit behandelt werden.
-
Wenn ein Hindernis vor einem Zielobjekt für den mobilen Manipulator länger als das Zielobjekt in Schwerkraftrichtung ist, kann der mobile Manipulator das Zielobjekt nicht halten, es sei denn, der mobile Manipulator bewegt sich an eine Position, an der sich das Zielobjekt vor dem Hindernis für den mobilen Manipulator befindet. Wenn ein Hindernis vor einem Zielobjekt für den mobilen Manipulator kürzer als das Zielobjekt in Schwerkraftrichtung ist, kann der mobile Manipulator das Zielobjekt halten, indem er einen oberen Teil des Zielobjekts in Schwerkraftrichtung greift, obwohl sich das Hindernis vor dem Zielobjekt befindet. Wenn die relativen Positionen der Zielobjekte und des Hindernisses für den bestimmten Abschnitt des mobilen Manipulators die Informationen über die Schwerkraftrichtung enthalten, kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, besser bestimmt werden.
-
In dem oben beschriebenen Aspekt kann eine Ausgabe des Bewegungszielobjekts aus Daten bestehen, die eine relative Position des Bewegungszielobjekts zu dem bestimmten Abschnitt des mobilen Manipulators auf der Karte oder auf dem Bitmap-Bild darstellen. Daher kann die Ausgabe in einer standardisierten Weise dargestellt werden. Es wird daher erwartet, dass die Lernleistung des Maschinenlernmodells weiter verbessert wird. Wenn die Daten, die die relative Position des Bewegungszielobjekts zum bestimmten Abschnitt des mobilen Manipulators darstellen, auf der Karte oder auf dem Bitmap-Bild ausgegeben werden, ist es nicht notwendig, das Bewegungszielobjekt erneut zu identifizieren. Es wird daher erwartet, dass der Rechenaufwand reduziert wird.
-
In dem oben beschriebenen Aspekt kann die Zustandsvariable Weglängen von Routen von dem mobilen Manipulator zu den Zielobjekten enthalten. Die Weglängen werden auf Basis eines Routenplans erhalten. Selbst wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators gleich sind, variiert die Leichtigkeit der Bewegung zu einer vorbestimmten Position in Abhängigkeit von den Weglängen der Routen vom mobilen Manipulator zu den Zielobjekten. Auf diese Weise kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, geeigneter bestimmt werden.
-
In dem oben beschriebenen Aspekt kann die Zustandsvariable Weglängen von Routen von den Zielobjekten zu vorbestimmten, den Zielobjekten zugeordneten Positionen enthalten. Selbst wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators gleich sind, variiert die Leichtigkeit der Bewegung zu einer vorbestimmten Position in Abhängigkeit von den Weglängen der Routen von den Zielobjekten zu den vorbestimmten Positionen, die den Zielobjekten zugeordnet sind. Auf diese Weise kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, geeigneter bestimmt werden.
-
In dem oben beschriebenen Aspekt können die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators Informationen über haltbare Bereiche bzw. Haltebereiche für die Zielobjekte enthalten. Selbst wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators gleich sind, variiert die Leichtigkeit der Bewegung zu einer vorbestimmten Position abhängig davon, ob sich der haltbare Bereich bzw. Haltebereich für jedes Zielobjekt vor oder hinter dem mobilen Manipulator befindet. Wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators die Informationen über die haltbaren Bereiche bzw. Haltebereiche für die Zielobjekte enthalten, kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, geeigneter bestimmt werden.
-
Ein Maschinenlernverfahren gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Maschinenlernverfahren für ein Maschinenlernmodell, das so konfiguriert ist, dass ein Computer eine Funktion zum Ausgeben eines Bewegungszielobjekts ausführt, das bei einem Vorgang des Haltens einer Mehrzahl von Zielobjekten mit einem Manipulator eines mobilen Manipulators und des Bewegens der Zielobjekte an vorbestimmte Positionen zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll. Das Maschinenlernverfahren beinhaltet das Erfassen einer Zustandsvariable, die relative Positionen der Zielobjekte zu einem bestimmten Abschnitt des mobilen Manipulators enthält, und Übertragen der erfassten Zustandsvariable an eine Recheneinrichtung, die so konfiguriert ist, dass sie die erfasste Zustandsvariable empfängt; das Trainieren des Maschinenlernmodells durch Eingeben einer Mehrzahl von Trainingsdatensätzen, die im Voraus erfasst werden, wobei Trainingsdatensätze die Kombinationen von Zustandsvariablen Teilen von Bestimmungsdaten sind, die den Zustandsvariablen zugeordnet sind. Das Maschinenlernverfahren beinhaltet weiter das Auslesen des in einem Speicher gespeicherten trainierten Maschinenlernmodells und Eingeben der erfassten Zustandsvariable in das aus dem Speicher ausgelesene trainierte Maschinenlernmodell, so dass das trainierte Maschinenlernmodell ein Bewegungszielobjekt ausgibt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, wobei die Bestimmungsdaten, die der Zustandsvariablen zugeordnet sind, das Bewegungszielobjekt darstellen. Die Zustandsvariable enthält eine relative Position eines Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators, die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators und die relative Position des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators werden durch Daten auf einer Karte oder auf einem Bitmap-Bild dargestellt. Die relativen Positionen der Zielobjekte und des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators Informationen enthalten über eine Schwerkraftrichtung Auf diese Weise kann das Maschinenlernmodell so trainiert werden, dass ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, geeigneter aus der Mehrzahl von Zielobjekten bei dem Vorgang des Haltens der Zielobjekte mit dem Manipulator des mobilen Manipulators und des Bewegens der Zielobjekte an die vorbestimmten Positionen bestimmt wird.
-
Ein nichtflüchtiges Speichermedium gemäß einem dritten Aspekt der vorliegenden Erfindung speichert Anweisungen, die von einem oder mehreren Prozessoren ausführbar sind und die den einen oder die mehreren Prozessoren veranlassen, Funktionen auszuführen. Zu den Funktionen gehört das Erfassen einer Zustandsvariable, die relative Positionen der Zielobjekte zu einem bestimmten Abschnitt eines mobilen Manipulators enthält, der konfiguriert ist, um die Zielobjekte mit einem Manipulator zu halten und die Zielobjekte an vorbestimmte Positionen zu bewegen, und das Übertragen der erfassten Zustandsvariable an eine Recheneinrichtung, die so konfiguriert ist, dass sie die erfasste Zustandsvariable empfängt. Zu den Funktionen gehört weiter das Trainieren eines Maschinenlernmodells durch Eingeben einer Mehrzahl von im Voraus erfassten Trainingsdatensätzen. Bei den Trainingsdatensätzen handelt es sich um Kombinationen von Zustandsvariablen und Teilen von Bestimmungsdaten, die den Zustandsvariablen zugeordnet sind. Die Funktionen umfassen weiter das Auslesen des in einem Speicher gespeicherten trainierten Maschinenlernmodells und Eingeben der erfassten Zustandsvariable in das aus dem Speicher ausgelesene trainierte Maschinenlernmodell, so dass das trainierte Maschinenlernmodell ein Bewegungszielobjekt ausgibt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, wobei die Bestimmungsdaten, die der Zustandsvariablen zugeordnet sind, das Bewegungszielobjekt darstellen, die Zustandsvariable eine relative Position eines Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators enthält, die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators und die relative Position des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators durch Daten auf einer Karte oder auf einem Bitmap-Bild dargestellt werden, und die relativen Positionen der Zielobjekte und des Hindernisses zu dem bestimmten Abschnitt des mobilen Manipulators Informationen über eine Schwerkraftrichtung enthalten. Auf diese Weise kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, geeigneter bei dem Vorgang des Haltens der Mehrzahl von Zielobjekten mit dem Manipulator des mobilen Manipulators und des Bewegens der Zielobjekte an die vorbestimmten Positionen bestimmt werden.
-
Gemäß der vorliegenden Erfindung ist es möglich, in geeigneter Weise ein optimales Bewegungszielobjekt zu bestimmen, das zum aktuellen Zeitpunkt durch den mobilen Manipulator an eine vorbestimmte Position bewegt werden soll.
-
Figurenliste
-
Die Merkmale und Vorteile sowie die technische und wirtschaftliche Bedeutung beispielhafter Ausführungsformen der Erfindung werden im Folgenden unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen gleiche Bezugszeichen gleichartige Elemente bezeichnen, hierbei zeigt:
- 1 eine perspektivische Außenansicht eines mobilen Manipulators, bei dem eine Rechenvorrichtung gemäß einer Ausführungsform Anwendung findet;
- 2 eine Blockdarstellung, die die Steuerungskonfiguration des mobilen Manipulators veranschaulicht;
- 3 eine Blockdarstellung, die die Konfiguration der Rechenvorrichtung veranschaulicht;
- 4 eine schematische Darstellung zur Beschreibung einer Zustandsvariablen eines Maschinenlernmodells;
- 5 eine schematische Darstellung, die eine Zufallsvariable veranschaulicht, die vorzugsweise in der Zustandsvariablen des Maschinenlernmodells zusammen mit relativen Positionen von Zielobjekten zu einem bestimmten Abschnitt des mobilen Manipulators enthalten sein sollte;
- 6 eine schematische Darstellung, die eine Zufallsvariable veranschaulicht, die vorzugsweise in der Zustandsvariablen des Maschinenlernmodells zusammen mit den relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators enthalten sein sollte;
- 7 eine schematische Darstellung, die eine Zufallsvariable veranschaulicht, die vorzugsweise in der Zustandsvariablen des Maschinenlernmodells zusammen mit den relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators enthalten sein sollte;
- 8 eine schematische Darstellung, die ein Verfahren zum Trainieren eines untrainierten neuronalen Netzes (NN) über einen Aufräumvorgang durch überwachtes Lernen detailliert darstellt;
- 9 eine schematische Darstellung zur Veranschaulichung eines Input/Output-Konzepts eines trainierten NN;
- 10 ein Flussdiagramm, das eine Prozessabfolge veranschaulicht, die durch die Rechenvorrichtung ausgeführt werden soll; und
- 11 ein Flussdiagramm, das eine Prozessabfolge veranschaulicht, die vom mobilen Manipulator ausgeführt werden soll.
-
DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
Im Folgenden wird eine Ausführungsform der vorliegenden Erfindung beschrieben. Die anspruchsgemäße Erfindung ist nicht auf die unten beschriebene Ausführungsform beschränkt. Alle in der Ausführungsform beschriebenen Bestandteile sind für die Lösung des Problems nicht wesentlich. Aus Gründen der Klarheit werden einige Teile der folgenden Beschreibung und der Zeichnungen weggelassen oder gegebenenfalls vereinfacht. In den Zeichnungen werden gleichartige Elemente durch die gleichen Bezugszeichen dargestellt, und auf eine redundante Beschreibung wird, soweit erforderlich, verzichtet.
-
Eine Rechenvorrichtung gemäß dieser Ausführungsform führt Berechnungen zur Steuerung von Vorgängen eines mobilen Manipulators durch, der mit einem Manipulator eine Mehrzahl von Zielobjekten an vorbestimmte Positionen, z.B. in einem Haus oder einer Fabrik, bewegt. Der mobile Manipulator ist mit einem Fahrgestell oder dergleichen beweglich. Beispiele für den Vorgang des Bewegens einer Mehrzahl von Zielobjekten an vorbestimmte Positionen mit dem Manipulator umfassen einen Reinigungs- bzw. Aufräumvorgang.
-
Zunächst wird die Struktur des mobilen Manipulators beschrieben, bei dem die Rechenvorrichtung gemäß dieser Ausführungsform Anwendung findet. 1 ist eine perspektivische Außenansicht eines mobilen Manipulators bzw. Roboters 100, bei dem die Rechenvorrichtung gemäß dieser Ausführungsform Anwendung findet. In 1 stellt eine xy-Ebene ein Bewegungsfeld des mobilen Manipulators 100 dar, und eine positive z-Achsenrichtung stellt eine Aufwärtsrichtung dar. Wie in 1 dargestellt, besteht der mobile Manipulator 100 hauptsächlich aus einem Fahrgestell 110, einem Körper 120, einem Roboterarm 130 und einer Roboterhand 140. Das Fahrgestell 110 dient als Bewegungsmechanismus, der so konfiguriert ist, dass er den mobilen Manipulator 100 auf dem Bewegungsfeld bewegt. Der Roboterarm 130 und die Roboterhand 140 bilden einen Manipulator 150.
-
Das Fahrgestell 110 trägt in einem zylindrischen Gehäuse zwei Antriebsräder 111 und eine Lenkrolle 112, um mit dem Bewegungsfeld in Kontakt zu sein. Die beiden Antriebsräder 111 sind so angeordnet, dass ihre Rotationsachsen übereinstimmen. Die Antriebsräder 111 werden unabhängig voneinander durch Motoren (nicht abgebildet) drehend angetrieben. Die Lenkrolle 112 ist ein angetriebenes Rad, das so gelagert ist, dass eine Drehachse, die sich in vertikaler Richtung vom Fahrgestell 110 erstreckt, von einer Drehachse des Rades entfernt liegt. Die Lenkrolle 112 bewegt sich in Verbindung mit einer Bewegungsrichtung des Fahrgestells 110. Zum Beispiel bewegt sich der mobile Manipulator 100 geradeaus, wenn sich die beiden Antriebsräder 111 mit derselben Drehgeschwindigkeit in dieselbe Richtung drehen, und dreht sich um eine vertikale Achse, die durch das Fahrgestell 110 in der Mitte zwischen den beiden Antriebsrädern 111 verläuft, wenn sich die beiden Antriebsräder 111 mit derselben Drehgeschwindigkeit in entgegengesetzte Richtungen drehen.
-
Der Körper 120 trägt den Roboterarm 130 und hat ein Anzeigefeld 123, das eine Benutzerschnittstelle darstellt. Zum Beispiel ist das Anzeigefeld 123 ein Flüssigkristall-Anzeigefeld, das so konfiguriert ist, dass es das Gesicht einer Person oder Informationen bezüglich des mobilen Manipulators 100 anzeigt. Das Anzeigefeld 123 hat auf seiner Anzeigefläche ein Bildschirmtastfeld, um von einem Benutzer eingegebene Anweisungen zu empfangen.
-
Der Körper 120 verfügt über eine Umgebungskamera 121 an einer Position, an der die Umgebungskamera 121 einen weiten Blick auf einen nach vorne gerichteten Umgebungsraum einschließlich eines Arbeitsbereichs des Manipulators 150 bieten kann. Die Umgebungskamera 121 enthält ein Bildgebungselement, wie z.B. einen CMOS-Bildsensor (Complementary Metal-Oxide Semiconductor), und einen Bilddatengenerator. Die Umgebungskamera 121 gibt Bilddaten aus, die durch die Aufnahme eines Bildes des nach vorne gerichteten Umgebungsraumes erzeugt werden. Der Körper 120 enthält eine Steuereinheit 190. Die Steuereinheit 190 enthält einen Controller und einen Speicher, die später beschrieben werden.
-
Der am Körper 120 gelagerte Roboterarm 130 verfügt über eine Mehrzahl von Gliedern, z.B. zwei Glieder, wie in 1 dargestellt. Der Roboterarm 130 kann verschiedene Haltungen einnehmen, indem Aktuatoren angetrieben werden, die an Gelenken 131 vorgesehen sind (z.B. ein Handgelenk, ein Ellbogengelenk und ein Schultergelenk) und die Glieder so miteinander koppeln, dass die Glieder schwenkbar sind. Jedes Gelenk 131 ist mit einem Mechanismus zur Geschwindigkeitsreduzierung ausgestattet. Die Roboterhand 140 ist mit dem vorderen bzw. distalen Ende des Roboterarms 130 verbunden. Die gesamte Roboterhand 140 wird von einem Aktuator angetrieben, um sich um eine Drehachse parallel zur Ausfahrrichtung des Gliedes am distalen Ende des Roboterarms 130 zu drehen. Die Roboterhand 140 hat einen ersten Finger 140a und einen zweiten Finger 140b, die von einem am distalen Ende der Roboterhand 140 angeordneten Aktuator angetrieben werden. Der erste Finger 140a und der zweite Finger 140b halten ein Objekt, indem sie das Objekt durch einen Vorgang einklemmen, bei dem sich der erste Finger 140a und der zweite Finger 140b, wie durch gestrichelte Linien angezeigt, näher zueinander bewegen. Der Vorgang des Haltens des Zielobjekts mit der Roboterhand 140 ist nicht auf den Vorgang des Ergreifens des Zielobjekts mit dem ersten Finger 140a und dem zweiten Finger 140b der Roboterhand 140 beschränkt, sondern kann auch einen Vorgang des Einspannens des Zielobjekts mit einem am distalen Ende der Roboterhand 140 anzuordnenden Einspannmechanismus umfassen. Der Vorgang des Haltens des Zielobjekts mit der Roboterhand 140 kann auch einen Vorgang des Haltens des Zielobjekts in einer Zusammenarbeit zwischen Greifen und Einspannen durch die Roboterhand 140 umfassen. Die Roboterhand 140 verfügt über eine Handkamera 141. Die Handkamera 141 enthält ein Bildgebungselement, wie z.B. einen CMOS-Bildsensor, und einen Bilddatengenerator. Die Handkamera 141 gibt Bilddaten aus, die durch die Aufnahme eines Bildes von einem Raum vor der Roboterhand 140 erzeugt werden.
-
2 ist eine Blockdarstellung, die die Steuerungskonfiguration des mobilen Manipulators 100 veranschaulicht. Zum Beispiel ist ein Controller 200 eine Zentraleinheit (CPU) und ist in der Steuereinheit 190 des Körpers 120 untergebracht (siehe 1). Eine Antriebsradeinheit 210 befindet sich auf dem Fahrgestell 110 (siehe 1) und enthält Antriebsschaltungen und Motoren für den Antrieb der Antriebsräder 111 (siehe 1).
-
Eine Sensoreinheit 220 umfasst verschiedene Sensoren, die so konfiguriert sind, dass sie ein Hindernis während der Bewegung oder einen externen Kontakt erkennen. Die Sensoren sind im Fahrgestell 110 und im Körper 120 verteilt (siehe 1). Der Controller 200 sendet Steuersignale an die Sensoreinheit 220, um verschiedene Sensoren anzusteuern und deren Ausgaben zu erfassen.
-
Wie oben beschrieben, wird die Umgebungskamera 121 zur Beobachtung eines vorwärts gerichteten Umgebungsraumes einschließlich der Arbeitsbereiche des Roboterarms 130 und der Roboterhand 140 verwendet. Die Umgebungskamera 121 erfasst ein Bild als Reaktion auf eine Bildaufnahmeanweisung vom Controller 200. Die Umgebungskamera 121 überträgt die erzeugten Bilddaten an den Controller 200. Wie oben beschrieben, wird die Handkamera 141 zur Beobachtung eines Raums vor der Roboterhand 140 verwendet. Die Handkamera 141 erfasst ein Bild als Reaktion auf eine Bildaufnahmeanweisung vom Controller 200. Die Handkamera 141 überträgt die erzeugten Bilddaten an den Controller 200.
-
Ein Speicher 240 ist ein nichtflüchtiges Speichermedium wie z.B. ein Solid-State-Laufwerk. Der Speicher 240 speichert ein Steuerprogramm zur Steuerung des mobilen Manipulators 100 sowie verschiedene Parameter, Funktionen und Umsetzungstabellen zur Verwendung in der Steuerung.
-
Zusätzlich zu den strukturellen Teilen, die unter Bezugnahme auf 1 beschrieben sind, enthält der Roboterarm 130 einen Aktuator 132, einen Rotationssensor 134 und einen Kraftsensor 133. Der Aktuator 132 treibt jedes Gelenk 131 an. Der Rotationssensor 134 erfasst Informationen über die Rotation jedes Gelenks 131. Der Kraftsensor 133 erfasst eine Betätigungskraft (Drehmoment) jedes Gelenks 131. Beispiele für den Aktuator 132 sind ein Servomotor. Beispiele für den Rotationssensor 134 umfassen einen Impulsgeber. Beispiele für den Kraftsensor 133 umfassen einen Drehmomentsensor, der so konfiguriert ist, dass er das Drehmoment jedes Gelenks 131 erfasst. Die Roboterhand 140 umfasst einen Aktuator 142 und einen Kraftsensor 143. Der Aktuator 142 treibt den ersten Finger 140a und den zweiten Finger 140b an (siehe 1). Der Kraftsensor 143 erfasst eine Betätigungskraft der Roboterhand 140.
-
Der Controller 200 steuert die Drehung der Antriebsräder 111, indem er ein Antriebssignal an die Antriebsradeinheit 210 überträgt. Der Controller 200 steuert den Betrieb des Roboterarms 130 und der Roboterhand 140 auf Basis eines Berechnungsergebnisses einer Rechenvorrichtung 300 gemäß dieser Ausführungsform. Das heißt, der Controller 200 überträgt Antriebssignale an den Aktuator 132 des Roboterarms 130 und den Aktuator 142 der Roboterhand 140 auf Basis des Berechnungsergebnisses aus der Rechenvorrichtung 300 gemäß dieser Ausführungsform.
-
Als nächstes wird die Konfiguration der Rechenvorrichtung 300 dieser Ausführungsform beschrieben. 3 ist eine Blockdarstellung, die die Konfiguration der Rechenvorrichtung 300 veranschaulicht. Wie in 3 dargestellt, besteht die Rechenvorrichtung 300 hauptsächlich aus einer Erfassungseinrichtung 310, einem Speicher 320 und einer Recheneinrichtung 330.
-
Die Erfassungseinrichtung 310 erfasst eine Zustandsvariable und überträgt die Zustandsvariable an die Recheneinrichtung 330. Die Erfassungseinrichtung 310 erfasst die relativen Positionen von Zielobjekten zu einem bestimmten Abschnitt des mobilen Manipulators 100 durch Analyse von Bilddaten, die eine von der Umgebungskamera 121 oder der Handkamera 141 aufgenommene Arbeitsumgebung zeigen (siehe 2). Der bestimmte Abschnitt des mobilen Manipulators 100 kann eine rechnerisch errechnete Position sein, z.B. eine Position des Schwerpunkts oder eine Position der Roboterhand 140, die auf einen Boden projiziert wird. Die Erfassungseinrichtung 310 enthält eine Kommunikationsschnittstelle zur Verbindung mit dem Internet. Beispiele für die Kommunikationsschnittstelle sind eine Einheit für ein drahtloses lokales Netzwerk (WLAN).
-
Der Speicher 320 ist zum Beispiel ein Festplattenlaufwerk und speichert ein trainiertes Maschinenlernmodell. Beispiele für das Maschinenlernmodell umfassen ein neuronales Netz. Das trainierte Maschinenlernmodell (im Folgenden z.B. als „trainiertes NN 320a“ bezeichnet) wird durch Eingeben einer Mehrzahl von Trainingsdatensätzen trainiert, bei denen es sich um Kombinationen von im Voraus erfassten Zustandsvariablen und Teile von Bestimmungsdaten handelt, die den Zustandsvariablen zugeordnet sind. Später wird ein spezifisches Verfahren zum Trainieren des Maschinenlernmodells beschrieben, um das trainierte NN 320a zu erhalten. Zusätzlich zu dem trainierten NN 320a speichert der Speicher 320 verschiedene Softwareprogramme, die von der Recheneinrichtung 330 ausgeführt werden sollen.
-
Die Recheneinrichtung 330 ist z.B. eine CPU und gibt durch Eingeben der von der Erfassungseinrichtung 310 empfangenen Zustandsvariablen in das aus dem Speicher 320 gelesene trainierte NN 320a ein Bewegungszielobjekt aus, das zum aktuellen Zeitpunkt weggeräumt werden soll.
-
Als nächstes wird die Zustandsvariable des Maschinenlernmodells beschrieben. Die folgende Beschreibung erfolgt gegebenenfalls mit Bezug auf 3. 4 ist eine schematische Darstellung zur Beschreibung der Zustandsvariablen des Maschinenlernmodells. In einer Arbeitsumgebungskarte E werden die Zielobjekte durch Kreise dargestellt. Wie durch Pfeile in 4 angedeutet, enthält die Zustandsvariable des Maschinenlernmodells die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 (in 4 durch Kreise dargestellt). Das heißt, eine relative Position eines Zielobjekts zu einem bestimmten Abschnitt P1 des mobilen Manipulators 100 wird durch einen Vektor vom bestimmten Abschnitt P1 des mobilen Manipulators 100 zum Zielobjekt dargestellt. Die Zustandsvariable, die die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt P1 des mobilen Manipulators 100 enthält, zeigt Positionsbeziehungen der Zielobjekte relativ zu dem bestimmten Abschnitt P1 des mobilen Manipulators 100. Somit kann auch im Falle des mobilen Manipulators 100 dieser Ausführungsform, der sich zur Änderung seiner absoluten Position bewegt, ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, in geeigneter Weise bestimmt werden.
-
Die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 können Informationen über Haltebereiche bzw. haltbare Bereiche für die Zielobjekte enthalten. Die Informationen über die Haltebereiche für die Zielobjekte werden durch Erkennen der Zielobjekte aus Bilddaten gewonnen, die die von der Umgebungskamera 121 oder der Handkamera 141 fotografierte Arbeitsumgebung zeigen. Auch wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 gleich sind, hängt die Leichtigkeit des Aufräumvorgangs davon ab, ob sich der Haltebereich für jedes Zielobjekt vor oder hinter dem mobilen Manipulator 100 befindet. Wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt P1 des mobilen Manipulators 100 die Informationen über die Haltebereiche für die Zielobjekte enthalten, kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, geeigneter bestimmt werden.
-
5 ist eine schematische Darstellung, die eine Zufallsvariable bzw. Variable (EN: variate) zeigt, die vorzugsweise in der Zustandsvariablen des Maschinenlernmodells zusammen mit den relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 enthalten sein sollte. In der Arbeitsumgebungskarte E sind die Zielobjekte durch Kreise und die Hindernisse durch eine schraffierte Fläche dargestellt. Die Hindernisse können durch Punktgruppeninformationen dargestellt werden, die in der schraffierten Fläche enthalten sind. Wie durch Pfeile in 5 angedeutet, enthält die Zustandsvariable des Maschinenlernmodells vorzugsweise relative Positionen der Hindernisse zu dem bestimmten Abschnitt P1 des mobilen Manipulators 100. Die relative Position jedes Hindernisses zu dem bestimmten Abschnitt P1 des mobilen Manipulators 100 wird durch einen Vektor vom bestimmten Abschnitt P1 des mobilen Manipulators 100 zu einer Punktgruppe des Hindernisses dargestellt. Selbst wenn die relativen Positionen der Zielobjekte zum bestimmten Abschnitt P1 des mobilen Manipulators 100 gleich sind, hängt die Leichtigkeit des Aufräumvorgangs davon ab, ob zwischen dem mobilen Manipulator 100 und jedem Zielobjekt ein Hindernis vorhanden ist. Auf diese Weise kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, besser bestimmt werden.
-
Die relativen Positionen der Zielobjekte und der Hindernisse für den bestimmten Abschnitt des mobilen Manipulators 100 können Informationen über eine Schwerkraftrichtung enthalten. Das heißt, die relativen Positionen jedes Zielobjekts und jedes Hindernisses zum bestimmten Abschnitt des mobilen Manipulators 100 werden durch dreidimensionale Vektoren dargestellt. Wenn ein Hindernis vor einem Zielobjekt für den mobilen Manipulator 100 länger als das Zielobjekt in Schwerkraftrichtung ist, kann der mobile Manipulator 100 das Zielobjekt nicht halten, es sei denn, der mobile Manipulator 100 bewegt sich an eine Position, an der sich das Zielobjekt vor dem Hindernis für den mobilen Manipulator 100 befindet. Wenn ein Hindernis vor einem Zielobjekt für den mobilen Manipulator 100 in Schwerkraftrichtung kürzer als das Zielobjekt ist, kann der mobile Manipulator 100 das Zielobjekt halten, indem er einen oberen Teil des Zielobjekts in Schwerkraftrichtung greift, obwohl sich das Hindernis vor dem Zielobjekt befindet. Auf diese Weise kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, besser bestimmt werden.
-
Die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 und die relativen Positionen der Hindernisse zu dem bestimmten Abschnitt des mobilen Manipulators 100 werden vorzugsweise durch Daten auf einer Karte oder auf einem Bitmap-Bild dargestellt. Die Daten repräsentieren in standardisierter Weise einen Zustand, in dem sich irgendwelche Objekte oder Hindernisse in einem umgebenden Raum befinden, oder einen Zustand, in dem kein Objekt vorhanden ist. Daher kann das Lernen unter Berücksichtigung der Positionsbeziehungen in standardisierter Weise erfolgen. Dadurch kann die Lerngenauigkeit erhöht werden.
-
6 ist eine schematisches Darstellung, die eine Zufallsvariable bzw. Variable veranschaulicht, die vorzugsweise in der Zustandsvariablen des Maschinenlernmodells zusammen mit den relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 enthalten sein sollte. In der Arbeitsumgebungskarte E sind die Zielobjekte durch Kreise und die Hindernisse durch eine schraffierte Fläche dargestellt. Wie durch gestrichelte Linien in 6 angedeutet, enthält die Zustandsvariable des Maschinenlernmodells vorzugsweise Weglängen der Routen vom mobilen Manipulator 100 zu den Zielobjekten. Die Weglängen der Routen vom mobilen Manipulator 100 zu den Zielobjekten werden auf der Grundlage eines Routenplans ermittelt. Der Routenplan kann mit Hilfe eines bekannten Verfahrens, wie z.B. einem rapidly-exploring random tree (RRT), erstellt werden. Selbst wenn die relativen Positionen der Zielobjekte zum bestimmten Abschnitt P1 des mobilen Manipulators 100 gleich sind, variiert die Einfachheit des Aufräumvorgangs abhängig von den Weglängen der Routen vom mobilen Manipulator 100 zu den Zielobjekten. Auf diese Weise kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, besser bestimmt werden.
-
7 ist eine schematische Darstellung, die eine Zufallsvariable bzw. Variable veranschaulicht, die vorzugsweise in der Zustandsvariablen des Maschinenlernmodells zusammen mit den relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 enthalten sein sollte. In der Arbeitsumgebungskarte E werden die Zielobjekte durch Kreise dargestellt, und Unterbringungspositionen, die vorgegebene Positionen sind, werden durch Dreiecke dargestellt. Wie durch gestrichelte Linien in 7 angedeutet, enthält die Zustandsvariable des Maschinenlernmodells vorzugsweise Weglängen der Routen von den Zielobjekten zu den mit den Zielobjekten verbundenen Unterbringungspositionen. Selbst wenn die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt P1 des mobilen Manipulators 100 gleich sind, variiert die Leichtigkeit des Aufräumvorgangs in Abhängigkeit von den Weglängen der Routen von den Zielobjekten zu den mit den Zielobjekten verbundenen Unterbringungspositionen. Auf diese Weise kann ein optimales Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, besser bestimmt werden. 7 zeigt einen Fall, in dem die Zielobjekte jeweils an den nächstgelegenen Unterbringungspositionen untergebracht sind. Alternativ kann für jedes Zielobjekt eine Unterbringungspositionen C1, C2, C3 oder C4 bestimmt werden.
-
Die unter Bezugnahme auf 4 bis 7 beschriebenen Zustandsvariablen können gegebenenfalls kombiniert werden.
-
Als nächstes wird ein spezifisches Verfahren zum Trainieren des Maschinenlernmodells beschrieben, um das trainierte NN 320a zu erhalten. Die folgende Beschreibung erfolgt bei Bedarf unter Bezugnahme auf 2 für die Steuerungskonfiguration des mobilen Manipulators 100 und 3 für die Konfiguration der Rechenvorrichtung 300.
-
8 ist eine schematische Darstellung, die das Verfahren zum Trainieren eines untrainierten NN 320b über den Aufräumvorgang durch überwachtes Lernen detailliert beschreibt. In diesem Fall handelt es sich bei dem Verfahren zum Trainieren eines untrainierten Maschinenlernmodells (im Folgenden z.B. als „untrainiertes NN 320b“ bezeichnet) über den Aufräumvorgang um überwachtes Lernen. Das überwachte Lernen ist ein Verfahren, bei dem, wenn im Voraus korrekte Antworten für Lernzieldaten bestimmt werden, eine große Anzahl von Trainingsdatensätzen, die Kombinationen der Lernzieldaten (Input) und der korrekten Antworten (Output) sind, im Voraus bereitgestellt werden, um das Maschinenlernmodell über die Beziehungen zwischen Input bzw. Eingabe und Output bzw. Ausgabe zu trainieren.
-
Wie in 8 dargestellt, wird ein Trainingsdatensatz 160, der eine Kombination aus einer Zustandsvariablen 161 (Input bzw. Eingabe) und Bestimmungsdaten 162 (Output bzw. Ausgabe) ist, dem untrainierten NN 320b zur Verfügung gestellt. Wie oben beschrieben, enthält die Zustandsvariable relative Positionen von Zielobjekten zu dem bestimmten Abschnitt des mobilen Manipulators 100, und die Bestimmungsdaten 162 stellen ein Bewegungszielobjekt dar, das zum aktuellen Zeitpunkt weggeräumt werden soll. Eine Mehrzahl von Trainingsdatensätzen 160 wird im Voraus erfasst. Auf diese Weise lernt das untrainierte NN 320b die Beziehungen zwischen den Zustandsvariablen 161 und den Teilen der Bestimmungsdaten 162 in dem Aufräumvorgang. Durch Erhöhen einer Erfassungsanzahl „n“ der Trainingsdatensätze 160 kann die Bestimmungsgenauigkeit des trainierten NN 320a erhöht werden.
-
9 ist eine schematische Darstellung, die ein Input/Output-Konzept des trainierten NN 320a veranschaulicht. Wie in 9 dargestellt, werden die relativen Positionen (in 9 durch durchgehende Pfeile dargestellt) der Zielobjekte (in 9 durch Kreise dargestellt) zum bestimmten Abschnitt P1 des mobilen Manipulators 100 in der Arbeitsumgebungskarte E in das trainierte NN 320a eingegeben. Dann gibt das trainierte NN 320a ein Bewegungszielobjekt aus, das zum aktuellen Zeitpunkt weggeräumt werden soll (in 9 durch eine Kugel dargestellt). Das trainierte NN 320a kann zusammen mit dem aktuell wegzuräumenden Bewegungszielobjekt Zielobjekte ausgeben, die zum aktuellen Zeitpunkt weggeräumt werden können (dargestellt durch Doppelkreise in 9) oder Zielobjekte, die zum aktuellen Zeitpunkt nicht weggeräumt werden sollen (dargestellt durch ein „X“ in 9).
-
Das Bewegungszielobjekt, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, wird vorzugsweise in Form von Daten ausgegeben, die eine relative Position des Bewegungszielobjekts zu dem bestimmten Abschnitt des mobilen Manipulators 100 auf einer Karte oder auf einem Bitmap-Bild darstellen. Daher kann die Ausgabe in einer standardisierten Weise dargestellt werden. Es wird daher erwartet, dass die Lernleistung des Maschinenlernmodells weiter verbessert wird. Wenn die Daten, die die relative Position des Bewegungszielobjekts zu dem bestimmten Abschnitt des mobilen Manipulators 100 darstellen, auf der Karte oder auf dem Bitmap-Bild ausgegeben werden, ist es nicht notwendig, das Bewegungszielobjekt erneut zu identifizieren. Es wird also erwartet, dass der Rechenaufwand reduziert wird.
-
Als nächstes wird eine Prozessabfolge beschrieben, die durch die Rechenvorrichtung 300 ausgeführt werden soll. 10 ist ein Flussdiagramm, das die von der Recheneinheit 300 auszuführende Prozessabfolge veranschaulicht. Wie in 10 dargestellt, erfasst die Erfassungseinrichtung 310 zunächst eine Zustandsvariable, die die relativen Positionen von Zielobjekten zu dem bestimmten Abschnitt des mobilen Manipulators 100 enthält, indem sie Bilddaten analysiert, die eine von der Umgebungskamera 121 o.ä. fotografierte Arbeitsumgebung zeigen, und überträgt die Zustandsvariable an die Recheneinrichtung 330 (Schritt S1). Dann liest die Recheneinrichtung 330 das trainierte NN 320a aus dem Speicher 320 (Schritt S2). Dann wird die erfasste Zustandsvariable (die die relativen Positionen der Zielobjekte zu dem bestimmten Abschnitt des mobilen Manipulators 100 enthält) in das gelesene trainierte NN 320a eingegeben, und das trainierte NN 320a gibt ein Bewegungszielobjekt aus, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll (Schritt S3). Dann wird die Abfolge der Verarbeitungsvorgänge beendet.
-
Als nächstes wird eine Prozessabfolge beschrieben, die vom mobilen Manipulator 100 ausgeführt werden soll. 11 ist ein Flussdiagramm, das die durch den mobilen Manipulator 100 auszuführende Prozessabfolge veranschaulicht. Wie in 11 dargestellt, wird ein Zielobjekt, das an eine vorbestimmte Position bewegt werden soll, zunächst unter Verwendung des trainierten NN bestimmt (Schritt S101). Diese Verarbeitung entspricht der mit Bezug auf 10 beschriebenen Verarbeitung durch die Rechenvorrichtung 300. Dann werden ein Halteplan und ein Routenplan für das ermittelte Bewegungszielobjekt erstellt (Schritt S102). Der Halteplan und der Routenplan können mit Hilfe einer bekannten Technik erstellt werden.
-
Im Anschluss an Schritt S102 wird bestimmt, ob Lösungen für den Halteplan und den Routenplan erhalten werden (Schritt S103). Wenn in Schritt S103 festgestellt wird, dass Lösungen für den Halteplan und den Routenplan erhalten werden, wird das ermittelte Bewegungszielobjekt gehalten und bewegt (Schritt S104). Wenn in Schritt S103 festgestellt wird, dass für den Halteplan und den Routenplan keine Lösungen erhalten werden, kehrt die Verarbeitung zu Schritt S101 zurück.
-
Im Anschluss an Schritt S104 wird festgestellt, ob das ermittelte Bewegungszielobjekt erfolgreich an die vorbestimmte Position bewegt wurde (Schritt S105). Wenn in Schritt S105 festgestellt wird, dass das ermittelte Bewegungszielobjekt nicht erfolgreich an die vorbestimmte Position bewegt wurde, wird festgestellt, ob das ermittelte Bewegungszielobjekt von der ursprünglichen Position an eine unbeabsichtigte Position bewegt wurde (Schritt S106). Wenn in Schritt S106 festgestellt wird, dass das ermittelte Bewegungszielobjekt nicht von der ursprünglichen Position zu einer unbeabsichtigten Position bewegt wurde, kehrt die Verarbeitung zu Schritt S101 zurück. Wenn in Schritt S106 festgestellt wird, dass das ermittelte Bewegungszielobjekt von der ursprünglichen Position an eine unbeabsichtigte Position bewegt wurde, wird das ermittelte Bewegungszielobjekt vorübergehend vom Bewegungsziel ausgeschlossen (Schritt S107), und die Verarbeitung kehrt zu Schritt S101 zurück.
-
Wenn in Schritt S105 festgestellt wird, dass das ermittelte Bewegungszielobjekt erfolgreich an der vorgegebenen Position untergebracht ist, wird das vorübergehend ausgeschlossene Zielobjekt in das Bewegungsziel aufgenommen (Schritt S108). Dann wird festgestellt, ob alle Zielobjekte an die vorbestimmten Positionen bewegt wurden (Schritt S109). Wenn in Schritt S109 festgestellt wird, dass ein Zielobjekt nicht an die vorbestimmte Position bewegt wurde, kehrt die Verarbeitung zu Schritt S101 zurück. Wenn in Schritt S109 festgestellt wird, dass alle Zielobjekte an die vorbestimmten Positionen bewegt werden, wird die Verarbeitung beendet.
-
Wie oben beschrieben, kann die Recheneinrichtung 300 in geeigneter Weise ein optimales Bewegungszielobjekt bestimmen, das zum aktuellen Zeitpunkt an eine vorbestimmte Position bewegt werden soll, auch wenn der mobile Manipulator beweglich ist.
-
Die vorliegende Erfindung ist nicht auf die oben beschriebene Ausführungsform beschränkt, sondern kann gegebenenfalls modifiziert werden, ohne von der Idee der vorliegenden Erfindung abzuweichen. Beispielsweise wird in der oben beschriebenen Ausführungsform der beispielhafte Fall beschrieben, bei dem der Vorgang des Bewegens einer Mehrzahl von Zielobjekten an vorbestimmte Positionen mit dem Manipulator der Aufräumvorgang ist. Die vorliegende Erfindung ist nicht auf diesen Fall beschränkt. Zum Beispiel kann der Vorgang des Bewegens einer Mehrzahl von Zielobjekten an vorbestimmte Positionen mit dem Manipulator ein Vorbereitungsvorgang sein, der das Anordnen von Objekten an einem bestimmten Ort beinhaltet, während die Objekte von einem oder mehreren Orten aufgenommen werden.
-
In der oben beschriebenen Ausführungsform wird die Rechenvorrichtung getrennt vom Roboter bereitgestellt, sie kann aber im mobilen Manipulator montiert werden.
-
Ein Maschinenlernmodell wie ein rekurrierendes neuronales Netz (RNN) oder ein Sequenz-zu-Sequenz-Modell, das Zeitreihendaten verarbeitet, kann in der oben beschriebenen Ausführungsform in der Rechenvorrichtung verwendet werden. In der oben beschriebenen Ausführungsform wird das Beispiel beschrieben, in dem das untrainierte NN durch beaufsichtigtes Lernen über den Vorgang des Bewegens einer Mehrzahl von Zielobjekten an vorbestimmte Positionen mit dem Manipulator trainiert wird. Die vorliegende Erfindung ist nicht auf diesen Fall beschränkt. Das untrainierte NN kann z.B. durch Verstärkungslernen oder andere Maschinenlernverfahren über den Vorgang des Bewegens einer Mehrzahl von Zielobjekten an vorbestimmte Positionen mit dem Manipulator trainiert werden.
-
Die Bestandteile, die durch die Rechenvorrichtung der oben beschriebenen Ausführungsform implementiert werden, können beispielsweise auch implementiert werden, indem ein Computer (einer oder mehrere Prozessoren) veranlasst wird, ein Steuerprogramm auszuführen. Genauer gesagt können die Bestandteile implementiert werden, indem der Computer veranlasst wird, das in einem Speicher (nicht abgebildet) gespeicherte Steuerprogramm in einen Hauptspeicher (nicht abgebildet) zu laden und das Steuerprogramm im Hauptspeicher auszuführen. Die Bestandteile müssen nicht unbedingt durch ein Software-Programm implementiert werden, sondern können durch jede beliebige Kombination aus Hardware, Firmware und Software implementiert werden.
-
Das oben beschriebene Programm kann dem Computer zugeführt werden, indem es auf verschiedenen Arten von nichtflüchtigen computerlesbaren Medien gespeichert wird. Das nichtflüchtige computerlesbare Medium umfasst verschiedene Arten von konkreten Speichermedien. Beispiele für das nichtflüchtige computerlesbare Medium sind magnetische Speichermedien (z.B. eine Floppy-Disk bzw. Diskette, ein Magnetband und ein Festplattenlaufwerk), magnetooptische Speichermedien (z.B. eine magnetooptische Diskette), einen Compact-Disc-Festspeicher (CD-ROM), eine beschreibbare Compact-Disc (CD-R), eine wiederbeschreibbare Compact-Disc (CD-R/W) und Halbleiterspeicher (zum Beispiel ein mask-ROM, ein programmierbares ROM (PROM), ein löschbares PROM (EPROM), ein Flash-ROM und einen Speicher mit wahlfreiem Zugriff (RAM)). Das Programm kann dem Computer über verschiedene Arten von flüchtigen computerlesbarem Medium zugeführt werden. Beispiele für ein flüchtiges computerlesbares Medium sind ein elektrisches Signal, ein optisches Signal und eine elektromagnetische Welle. Das Programm kann dem Computer durch das flüchtige computerlesbare Medium über ein elektrisches Kabel, eine optische Faser oder andere verdrahtete Kommunikationswege oder über drahtlose Kommunikationswege zugeführt werden.