DE102018123543A1 - Robotersysteme, die cloud-service-systeme enthalten - Google Patents

Robotersysteme, die cloud-service-systeme enthalten Download PDF

Info

Publication number
DE102018123543A1
DE102018123543A1 DE102018123543.7A DE102018123543A DE102018123543A1 DE 102018123543 A1 DE102018123543 A1 DE 102018123543A1 DE 102018123543 A DE102018123543 A DE 102018123543A DE 102018123543 A1 DE102018123543 A1 DE 102018123543A1
Authority
DE
Germany
Prior art keywords
robot
computing device
location
cloud service
service system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102018123543.7A
Other languages
English (en)
Inventor
Matthew Amacker
Arshan Poursohi
Allison Thackston
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Research Institute Inc
Original Assignee
Toyota Research Institute Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/053,165 external-priority patent/US10723027B2/en
Application filed by Toyota Research Institute Inc filed Critical Toyota Research Institute Inc
Publication of DE102018123543A1 publication Critical patent/DE102018123543A1/de
Granted legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

Es werden Robotersysteme offenbart, die einen Roboter, eine On-Premise-Rechenvorrichtung und ein Cloud-Service-System aufweisen. Eine On-Premise-Rechenvorrichtung weist einen Prozessor und eine nichtflüchtige Speichervorrichtung auf, in der maschinenlesbare Befehle gespeichert sind, die bei ihrer Ausführung durch den Prozessor bewirken, dass der Prozessor rohe Sensordaten von einem Roboter empfängt, die Sensordaten vorverarbeitet, um unnötige Informationen aus den Sensordaten zu entfernen und um vorverarbeitete Daten zu erhalten, die vorverarbeiteten Daten an ein Cloud-Service-System sendet, von dem Cloud-Service-System einen Objekttyp, eine Objektraumlage und einen Objektort eines Objekts, das den vorverarbeiteten Daten entspricht, empfängt und auf Basis des Objekttyps, der Objektraumlage und/oder des Objektorts des Objekts ein Signal an den Roboter sendet.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität der am 26. September 2017 eingereichten vorläufigen US-Patentanmeldung Nr. 62/563,424 mit dem Titel „ROBOT SYSTEMS INCORPORATING CLOUD SERVICES SYSTEMS“, die in ihrer Gesamtheit durch Bezugnahme hierin aufgenommen ist.
  • GEBIET DER TECHNIK
  • Hierin beschriebene Ausführungsformen betreffen allgemein Roboter und insbesondere Roboter, die eine Objekterkennung nutzen, um Menschen in einer Umgebung zu unterstützen.
  • HINTERGRUND
  • Roboter können in einer Umgebung eingesetzt werden, um Menschen bei Aufgaben zu unterstützen. Zum Beispiel können Pflegeroboter eingesetzt werden, um behinderten, kranken oder alten Menschen bei alltäglichen Aufgaben zu helfen. Die Roboter können von Anwendern Befehle empfangen, um bestimmte Aufgaben auszuführen. Zum Beispiel kann ein Anwender einen Roboter auffordern, ein bestimmtes Objekt zu finden und zu holen. Der Roboter kann Computervision nutzen, um das Objekt zu lokalisieren, durch die Umgebung navigieren und das Objekt zum Anwender bringen.
  • Derzeit verwenden Roboter eine lokale Verarbeitungsvorrichtung, die im Roboter angeordnet ist, um die Eingaben zu verarbeiten, die sie empfangen, um Daten zu verarbeiten, die von Sensoren erhalten werden, und/oder dergleichen. Die Menge der Verarbeitungsleistung, die nötig ist, um die oben genannten Aufgaben zu erfüllen, kann für die Funktion des Roboters nachteilig sein, da sie die Batterie rasch leer machen kann, die Reaktionszeiten des Roboters verkürzen kann und/oder dergleichen. Somit besteht ein Bedarf an einer Minimierung der Menge an Verarbeitungsleistung, die vom Roboter erbracht wird.
  • KURZFASSUNG
  • In einer Ausführungsform weist eine Vor-Ort-Computervorrichtung bzw. On-Premise-Rechenvorrichtung einen Prozessor und eine nichtflüchtige Speichervorrichtung auf, in der maschinenlesbare Befehle gespeichert sind, die bei ihrer Ausführung durch den Prozessor bewirken, dass der Prozessor rohe Sensordaten von einem Roboter empfängt, die Sensordaten vorverarbeitet, um unnötige Informationen aus den Sensordaten zu entfernen und um vorverarbeitete Daten zu erhalten, die vorverarbeiteten Daten an ein Cloud-Service-System sendet, von dem Cloud-Service-System einen Objekttyp, eine Objektraumlage und einen Objektort eines Objekts, das den vorverarbeiteten Daten entspricht, empfängt und auf Basis des Objekttyps, der Objektraumlage und/oder des Objektorts des Objekts ein Signal an den Roboter sendet.
  • In einer anderen Ausführungsform weist ein Cloud-Service-System einen Prozessor und eine nichtflüchtige Speichervorrichtung auf, in der maschinenlesbare Befehle gespeichert sind, die bei ihrer Ausführung durch den Prozessor bewirken, dass der Prozessor von einer On-Premise-Rechenvorrichtung vorverarbeitete Daten empfängt, einen Objekttyp, eine räumliche Lage eines Objekts und einen Objektort eines Objekts aus den vorverarbeiteten Daten bestimmt und den Objekttyp die räumliche Objektlage und den Objektort an die Vor-Ort-Computervorrichtung bzw. On-Premise-Rechenvorrichtung sendet. Die vorverarbeiteten Daten sind Daten, die von der On-Premise-Rechenvorrichtung aus rohen Sensordaten extrahiert wurden, die von einem Roboter stammen.
  • In einer noch anderen Ausführungsform schließt ein Verfahren zum Steuern eines Roboters ein: Empfangen von rohen Sensordaten vom Roboter an einer Vor-Ort-Computervorrichtung bzw. On-Premise-Rechenvorrichtung, Verringern einer Größe der Sensordaten durch die On-Premise-Rechenvorrichtung, um verarbeitete Sensordaten zu erhalten, Senden der verarbeiteten Sensordaten durch die On-Premise-Rechenvorrichtung an ein Cloud-Service-System, Empfangen eines Objekttyps, einer Objektraumlage und eines Objektortes an der On-Premise-Rechenvorrichtung vom Cloud-Service-System und Senden eines Signals von der On-Premise-Rechenvorrichtung an den Roboter auf Basis des Objekttyps, der Objektraumlage und/oder des Objektortes des Objekts. Der Objekttyp, die Objektraumlage und der Objektort werden vom Cloud-Service-System aus den verarbeiteten Sensordaten bestimmt.
  • Diese und weitere Merkmale, die von den hierin beschriebenen Ausführungsformen bereitgestellt werden, werden angesichts der folgenden ausführlichen Beschreibung in Verbindung mit den Zeichnungen klarer werden.
  • Figurenliste
  • Die in den Zeichnungen dargelegten Ausführungsformen dienen der Veranschaulichung und als Beispiele und sollen die Offenbarung nicht beschränken. Die folgende ausführliche Beschreibung der zur Veranschaulichung dienenden Ausführungsformen wird klar, wenn man sie in Verbindung mit den folgenden Zeichnungen liest, wo eine ähnliche Struktur mit gleichen Bezugszahlen bezeichnet ist:
    • 1 zeigt schematisch ein exemplarisches Robotersystem gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen, das in einer Umgebung arbeitet;
    • 2 zeigt schematisch exemplarische Komponenten eines Robotersystems gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen;
    • 3 zeigt grafisch ein Ablaufschema eines exemplarischen Prozesses eines Arbeitsablaufs zwischen einem Roboter, einer On-Premise-Rechenvorrichtung und einem Cloud-Service-System gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen;
    • 4 zeigt schematisch eine grafische Darstellung von exemplarischen Objekten und der Orte, wo sie sich befinden, innerhalb einer Punkt-Cloud-Umgebung gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen;
    • 5 zeigt schematisch exemplarische Messungen eines Objekts, das von einem Roboter gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen detektiert wird;
    • 6 zeigt schematisch ein exemplarisches Objekt, das von einer Erfassungsregionsblase umgeben ist, gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen;
    • 7 zeigt schematisch exemplarische Komponenten eines Roboters gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen; und
    • 8 zeigt schematisch exemplarische Komponenten einer On-Premise-Rechenvorrichtung gemäß einer oder mehreren hierin beschriebenen und dargestellten Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Hierin offenbarte Ausführungsformen sind auf Robotersysteme gerichtet, die dafür ausgelegt sind, Roboterdienstleistungen, wie etwa eine Objekterkennung und Objektlokalisierung, an einer Rechenvorrichtung an einem anderen Ort durchzuführen, so dass Verarbeitungsanforderungen für den Roboter verringert sind und Informationen, die aus einer kollektiven Gruppe von Robotern erhalten werden, geteilt und von anderen Robotern im Robotersystem verwendet werden können. Eine Speicherung von Informationen, die von einer kollektiven Gruppe von Robotern erfasst werden, ermöglicht ein verbessertes maschinelles Lernen, was zu verbesserten Robotermerkmalen führt. Anders ausgedrückt können Roboter, welche die hierin beschriebenen Robotersysteme verwenden, die Roboter in die Lage versetzen, voneinander zu lernen. Durch Entlasten des Roboters von rechenintensiven Aufgaben wie etwa einer Objekterkennung kann der Roboter weniger Leistungsbedarf haben und somit mit einer einzigen Batterieladung länger betrieben werden. Ausführungsformen hierin geben Verarbeitungsaufgaben für verschiedene Roboter-Ferndienstleistungen an, wie unter anderem eine Objektdeduplizierung, Greifplanungsbewegungsbahnen, Objekteigenschaften (z.B. Objektabmessungen), Anwenderauthentifizierung, Objektorte, Verarbeitung der natürlichen Sprache des Anwenders, Verhaltensentwicklung und/oder dergleichen.
  • Wie nachstehend ausführlicher beschrieben wird, weist ein Robotersystem in manchen Ausführungsformen einen Roboter auf, der kommunikationsfähig mit einer On-Premise-Rechenvorrichtung gekoppelt ist, die manche Rechenaufgaben durchführt, wie etwa Objekterkennung, wodurch der Roboter von solchen Rechenaufgaben entlastet wird. Die On-Premise-Rechenvorrichtung ist ferner kommunikationsfähig mit einem Remote-Cloud-Service-System gekoppelt, das ferner dafür ausgelegt ist, Rechenaufgaben durchzuführen und dem Roboter Daten über die On-Premise-Rechenvorrichtung bereitzustellen.
  • Insbesondere können Roboter entwickelt werden, um Menschen bei einer Reihe verschiedener Aufgaben zu unterstützen. In einem Beispiel werden Fabrikroboter in Fabriken eingesetzt, um repetitive Aufgaben bei der Fertigung von Waren durchzuführen. In einem anderen Beispiel kann ein Roboter in Räumen verwendet werden, wo sich Menschen befinden, wie in Heimen, speziellen Pflegeeinrichtungen und Krankenhäusern. Diese Roboter können sich für Zwecke wie allgemeine Unterstützung und Gesellschaft im gleichen Raum aufhalten wie Menschen. Zum Beispiel kann ein Roboter im Heim einer Person eingesetzt werden, die physische Unterstützung braucht, wie bei einer älteren Person, einer behinderten Person oder einer verletzten Person. Der Roboter kann mobil sein und Stellantriebe aufweisen, die beispielsweise in der Lage sind, Objekte für die Person zu finden und zu holen. Solche Roboter können der Person ein Gefühl größerer Unabhängigkeit geben, da sie weniger auf die Unterstützung anderer Menschen angewiesen ist.
  • In 1 ist ein exemplarischer Roboter 100 gemäß Ausführungsformen gezeigt, der in einem Raum eingesetzt wird, in dem sich Menschen befinden, beispielsweise in einem Heim 10. Der Roboter 100 weist allgemein einen Körper 101 auf, der auf einem oder mehreren motorisierten Rädern 106 (oder anderen Mobilitätskomponenten wie etwa Propellern, Flügeln, Gleitkufen, einer fortlaufenden Schiene und/oder dergleichen) gelagert ist, die in der Lage sind, den Roboter 100 durch das Heim 10 zu bewegen. Der Roboter 100 weist ferner einen oder mehrere Arme 104 auf, die jeweils einen Endeffektor (z.B. einen Greifer, eine Roboterhand und/oder dergleichen) aufweisen, der in der Lage ist, Objekte zu manipulieren. Außerdem weist der Roboter 100 eine Mehrzahl von Sensoren 102 auf, die in der Lage sind, Sensordaten zu produzieren, die den Roboter 100 bei der Detektion von Objekten, der Manipulation von Objekten und/oder der Navigation durch eine Umgebung unterstützen. Die Mehrzahl von Sensoren 102 kann unter anderem Kameras (z.B. CCD-Kameras), Infrarotsensoren, Tiefensensoren, Näherungssensoren, Tastsensoren, Lidarsensoren, Radarsensoren, Flugzeitsensoren und/oder dergleichen einschließen. Man beachte, dass der in 1 gezeigte Roboter 100 nur zur Veranschaulichung dient und dass die Konfiguration des Roboters nicht durch die vorliegende Offenbarung beschränkt wird.
  • Wie oben angegeben kann der Roboter 100 beispielsweise dafür ausgelegt sein, einen Anwender zu unterstützen, der in dem Heim 10 lebt. Das heißt, der Anwender kann dem Roboter 100 befehlen, bestimmte Aufgaben durchzuführen, wie etwa ein Objekt zu finden und zu holen, ein Objekt zu dem Anwender zu bringen, das Objekt an einen anderen Ort zu bewegen, die Position eines Objekts zu ändern, und/oder dergleichen. Der Anwender kann dem Roboter 100 auf verschiedene Weise Befehle erteilen. In einem Beispiel kann der Anwender sagen: „Roboter, such bitte die Schachtel mit den Taschentüchern und bring sie mir“, was von einem Mikrofon empfangen wird, das mit dem Roboter 100 assoziiert ist. In einem anderen Beispiel kann der Anwender eine Rechenvorrichtung, wie etwa einen Computer, ein Tablet, ein Smartphone, eine anwendungsspezifische Rechenvorrichtung oder dergleichen verwenden, um den Roboter zu steuern. Zum Beispiel kann die Rechenvorrichtung eine Anzeige aufweisen, welche die Objekte in einem Raum 130 des Heims 10 darstellt, und der Anwender kann eine grafische Darstellung des Objekts auswählen und außerdem eine Aufgabe auswählen, wie etwa den Roboter 100 auffordern, das Objekt zum Anwender zu bringen. Als weiteres Beispiel kann die Anzeige der Rechenvorrichtung grafisch darstellen, welche Bilderzeugungsvorrichtungen, die mit dem Roboter 100 assoziiert sind, tasten, so dass der Anwender eine Bewegung des Roboters 100 in der Umgebung steuern kann und die Anzeige die Orte der Objekte zeigt, wie diese vom Roboter 100 abgebildet werden. Der Anwender kann dann eines oder mehrere Objekte auswählen und die Erledigung einer oder mehrerer Aufgaben verlangen.
  • Wie ebenfalls in 1 gezeigt ist, können sich viele Objekte in der Umgebung befinden. In dem dargestellten Beispiel gibt es ein Fenster 131, eine Tür 132, einen Tisch 133, eine Getränkedose 134 und einen Schlüsselbund 135 auf dem Tisch 133 und eine Schachtel mit Taschentüchern 136 auf dem Boden des Heims 10. Die hierin beschriebenen Robotersysteme 20 sind in der Lage, den Typ der einzelnen Objekte, den Ort der einzelnen Objekte und die räumliche Lage der einzelnen Objekte zu erfassen. Auf diese Weise verfügt der Roboter 100 über Informationen in Bezug darauf, wo sich die einzelnen Objekte in dem Heim 10 befinden, und ist in der Lage, das Objekt zu finden und zu holen oder eine anderweitige Manipulation an dem Objekt vorzunehmen, nachdem er dazu aufgefordert wurde.
  • Der Roboter 100 ist somit fähig zu einer Objekterkennung unter Verwendung von Daten, die von einem oder mehreren Sensoren 102 bereitgestellt werden. Zum Beispiel kann das Robotersystem 20 einen oder mehrere Objekterfassungsalgorithmen verwenden, um den Typ, die Raumlage und den Ort eines bestimmten Objekts zu bestimmen. Jeder bekannte oder in Zukunft noch entwickelte Objekterkennungsalgorithmus kann verwendet werden. Nichtbeschränkende Objekterkennungsalgorithmen schließen Randerfassungsalgorithmen, Eckenerfassungsalgorithmen, Bloberfassungsalgorithmen, Merkmalsbeschreibungsalgorithmen und/oder dergleichen ein. Es kann auch jedes Computervision-Verfahren zur Erfassung der Art und der Raumlage von Objekten verwendet werden.
  • Da der Roboter 100 über Informationen verfügt, die seinen eigenen Ort und den von anderen Robotern und/oder Sensoren innerhalb der Umgebung (z.B. des Heims 10, das in 1 gezeigt ist) betreffen, kann das Robotersystem 20 die Daten aus den Sensoren 102 verwenden, um einen Ort eines bestimmten Objekts innerhalb der Umgebung zu bestimmen. Zum Beispiel können Tiefeninformationen und Informationen über eine Richtung, in der (mindestens) ein bestimmter Sensor zielt, verwendet werden, um einen Ort eines bestimmten Objekts zu bestimmen.
  • In manchen Ausführungsformen kann mindestens ein zusätzlicher Sensor ebenfalls innerhalb der Umgebung eingesetzt werden, wobei solche zusätzlichen Sensoren nicht physisch mit dem Roboter 100 verbunden sind. Solche zusätzlichen Sensoren können dem Robotersystem 20 beispielsweise zusätzliche Sensordaten bereitstellen. Wie in 1 gezeigt ist, ist ein erster zusätzlicher Sensor 117A an einer ersten Wand 118A bereitgestellt, und ein zweiter zusätzlicher Sensor 117B ist an einer zweiten Wand 118B bereitgestellt. Man beachte, dass eine beliebige Anzahl zusätzlicher Sensoren bereitgestellt werden kann und dass die zusätzlichen Sensoren von jeder Art von Sensor sein können, die in der Lage ist, dem Robotersystem 20 zusätzliche Daten bereitzustellen. Zum Beispiel können die zusätzlichen Sensoren unter anderem Bildaufzeichnungsvorrichtungen, Lidarsysteme, Bewegungssensorsysteme, Lichtsensorsysteme und/oder dergleichen sein.
  • Wie oben angegeben, sind die verschiedenen Rechenprozesse, die der Roboter 100 erledigen muss, um geforderte Aufgaben zu erfüllen, rechenintensiv. Infolgedessen können solche Aufgaben eine erhebliche Menge an Rechenleistung und/oder eine erhebliche Menge an elektrischer Energie erfordern. Somit können diese Rechenprozesse die elektrische Energie, die innerhalb einer oder mehrerer Batterien des Roboters 100 gespeichert ist, rasch aufbrauchen, weswegen der Roboter 100 häufig wiederaufgeladen oder an eine Steckdose angeschlossen werden muss, was die Mobilität des Roboters 100 erheblich verringert.
  • Verschiedene hierin beschriebene Ausführungsformen übertragen manche dieser Rechenprozesse vom Roboter 100 auf andere Komponenten innerhalb des Robotersystems 20. Wie ebenfalls in 1 gezeigt ist, weist das exemplarische Robotersystem 20 mindestens eine Vor-Ort-Computervorrichtung bzw. On-Premise-Rechenvorrichtung 120 auf, die kommunikationsfähig mit dem Roboter 100 (oder in manchen Fällen mit mehreren Robotern) innerhalb des Heims 10 gekoppelt ist. Die On-Premise-Rechenvorrichtung 120 kann über eine drahtgebundene oder drahtlose Verbindung mit dem Roboter 100 kommunizieren, wie von einer ersten Kommunikationsverbindung A zwischen dem Roboter 100 und der On-Premise-Rechenvorrichtung 120 angegeben ist. Wie hierin verwendet, bedeutet der Begriff „On-Premise“, dass die Rechenvorrichtung allgemein in der Nähe des Roboters 100 angeordnet ist (d.h. der Roboter 100 ist ein Roboter am gleichen Ort). Zum Beispiel kann sich die On-Premise-Rechenvorrichtung 120 im gleichen Raum 130, im gleichen Gebäude, im gleichen Komplex, auf dem gleichen Anwesen, innerhalb eines bestimmten Abstands (z.B. innerhalb von 100 Fuß, 100 Yards oder dergleichen) befinden. Man beachte, dass „On-Premise“ Fern-Server, die sich nicht in der Nähe des Roboters 100 befinden, ausdrücklich ausschließt.
  • In der dargestellten Ausführungsform kommuniziert die On-Premise-Rechenvorrichtung 120 mit einem Remote-Cloud-Service-System 150 mittels eines Kommunikationsnetzes 140 wie beispielsweise des Internet, eines Intranet, eines Virtual Private Network und/oder dergleichen. Die On-Premise-Rechenvorrichtung 120 kann mit dem Kommunikationsnetz 140 auf beliebige Weise, wie etwa über ein zelluläres Netzes oder einen Internetdienstanbieter, kommunizieren. Kommunikationen zwischen der On-Premise-Rechenvorrichtung 120 und dem Remote-Cloud-Service-System 150 werden von einer zweiten Kommunikationsverbindung B zwischen der On-Premise-Rechenvorrichtung 120 und dem Kommunikationsnetz 140 und einer dritten Kommunikationsverbindung C zwischen dem Kommunikationsnetz 140 und dem Remote-Cloud-Service-System 150 angegeben.
  • Die On-Premise-Rechenvorrichtung 120 ist elektrisch mit einer externen Leistungsquelle, wie etwa dem Stromnetz, gekoppelt. Wie in 1 gezeigt ist, weist die On-Premise-Rechenvorrichtung 120 zum Beispiel ein elektrisches Kabel 121 auf, das in eine Wechselstromsteckdose 122 gesteckt wird, um elektrische Leistung zu empfangen. Somit ist die On-Premise-Rechenvorrichtung 120 nicht batteriebetrieben und braucht daher nicht wiederaufgeladen werden. Die On-Premise-Rechenvorrichtung 120 kann daher die intensive Grafikverarbeitung durch Ziehen von elektrischer Leistung aus dem Stromnetz oder irgendeiner anderen externen Quelle für elektrische Leistung durchführen.
  • In manchen Ausführungsformen werden Rechenprozesse, die durchgeführt werden, um die Steuerung des Roboters 100 zu bewirken, um geforderte Aufgaben zu erfüllen (z.B. ein Objekt zu finden und zu holen und/oder dergleichen) auf dir Roboter 100, die On-Premise-Rechenvorrichtung 120 und das Remote-Cloud-Service-System 150 verteilt. Man beachte, dass jeder der Rechenprozess am Roboter 100, an der On-Premise-Rechenvorrichtung 120 und/oder am Remote-Cloud-Service-System 150 durchgeführt werden kann. In manchen Ausführungsformen können die Rechenprozesse auf Basis der jeweiligen Verfügbarkeiten des Roboters 100, der On-Premise-Rechenvorrichtung 120 und des Remote-Cloud-Service-Systems 150 für die Erledigung von Prozessen einem bzw. einer oder mehreren vom Roboter 100, von der On-Premise-Rechenvorrichtung 120 und/oder vom Remote-Cloud-Service-System 150 zugeteilt werden. Das heißt, wenn mindestens eine(r) vom Roboter 100, von der On-Premise-Rechenvorrichtung 120 und vom Remote-Cloud-Service-System 150 überlastet ist oder aus anderen Gründen nicht in der Lage ist, einen bestimmten Prozess zu bewältigen, kann ein solcher Prozess nach Bedarf auf eine(n) anderen vom Roboter 100, von der On-Premise-Rechenvorrichtung 120 und vom Remote-Cloud-Service-System 150 übertragen werden. Somit können sich der Roboter 100, die On-Premise-Rechenvorrichtung 120 und das Remote-Cloud-Service-System 150 die Verarbeitungsleistung nach Bedarf teilen.
  • Ebenfalls in 2 sind zusätzliche Komponenten eines exemplarischen Remote-Cloud-Service-Systems 150 des Robotersystems 20 schematisch dargestellt. Mindestens ein Roboter 100 innerhalb einer Umgebung (z.B. dem Heim 10) ist kommunikationsfähig mit der On-Premise-Rechenvorrichtung 120 gekoppelt. Die On-Premise-Rechenvorrichtung 120 kann lokal konfiguriert oder gesteuert werden, beispielsweise durch einen Browser 129, wie in 2 gezeigt ist. Man beachte, dass die On-Premise-Rechenvorrichtung 120 auf andere Weise lokal gesteuert werden kann, wie etwa durch ein bestimmtes Computerprogramm.
  • Die On-Premise-Rechenvorrichtung 120 ist kommunikationsfähig mit einem Kommunikationsnetz 140 verbunden, wie hierin beschrieben. Das Kommunikationsnetz 140 koppelt die On-Premise-Rechenvorrichtung 120 kommunikationsfähig mit dem Remote-Cloud-Service-System 150. Das Remote-Cloud-Service-System 150 kann mindestens eine Datenbank 152 aufweisen, die Rohdaten von der On-Premise-Rechenvorrichtung 120 empfängt. Das Remote-Cloud-Service-System 150 kann ferner mindestens eine Rechenvorrichtung 154 aufweisen, die in der Lage ist, auf Rohdaten innerhalb der mindestens einen Datenbank 152 zuzugreifen, um die verschiedenen oben beschriebenen Rechenprozesse durchzuführen, um eine oder mehrere Cloud-Roboterdienstleistungen bereitzustellen wie beispielsweise eine Objektdatenbank, eine Objektsuche, eine Gesichtserkennung, eine Personenidentifikation, eine Verhaltensrekonstruktion, eine Bewegungsbahnplanung, eine Objekterkennung, eine Objektnachverfolgung und eine Objektdeduplikation. In manchen Ausführungsformen können Prozesse genutzt werden, die auf Maschinenintelligenz 156 und/oder -simulation 158 basieren, um eine oder mehrere der Funktionen und Computerprozesse, die hierin beschrieben sind, durchzuführen. In manchen Ausführungsformen kann eine Verwaltung oder ein anderweitiger Zugriff auf die Rechenvorrichtung 154 für die Cloud-Roboterdienstleistungen durch einen oder mehrere Browser 160 erfolgen, insbesondere durch Computerprogramme, Anwendungsprogrammierschnittstellen und/oder dergleichen.
  • In einem Beispiel übermittelt der Roboter 100 rohe Sensordaten von der Mehrzahl von Sensoren 102 an die On-Premise-Rechenvorrichtung 120. Rohe Sensordaten von dem mindestens einen zusätzlichen Sensor (z.B. vom ersten zusätzlichen Sensor 117A und vom zweiten zusätzlichen Sensor 117B, die in 1 gezeigt sind) können der On-Premise-Rechenvorrichtung 120 ebenfalls bereitgestellt werden. In diesem Beispiel führt die On-Premise-Rechenvorrichtung 120 einen Hauptteil der Rechenprozesse in Bezug auf Objekterkennung, Raumlagenerkennung und Objektorterkennung durch. Zum Beispiel können die rohen Sensordaten eine Mehrzahl von Bildern einschließen, die von der On-Premise-Rechenvorrichtung 120 verarbeitet werden, um die gewünschte Funktion zu erfüllen, wie etwa das Erfassen des Typs eines Objekts, der Raumlage des Objekts und des Ortes des Objekts innerhalb der Umgebung. Nachdem der Objekttyp, die Raumlage des Objekts und der Ort des Objekts bestimmt wurden, werden diese Informationen an das Remote-Cloud-Service-System 150 gesendet. Zumindest manche von den rohen Sensordaten können auch zur Verarbeitung an das Remote-Cloud-Service-System 150 gesendet werden, wie etwa für Maschinenlern- und/oder -verifizierungszwecke. Die On-Premise-Rechenvorrichtung 120 kann auch zusätzliche Roboterdienstleistungen durchführen, wie etwa einen Deduplikationsprozess, der hierin noch ausführlicher beschrieben wird.
  • In einem anderen Beispiel wird ein Hauptteil der Rechenprozesse vom Remote-Cloud-Service-System 150 und nicht von der On-Premise-Rechenvorrichtung 120 durchgeführt. In einem noch anderen Beispiel werden die Rechenprozesse gleichmäßig auf die On-Premise-Rechenvorrichtung 120 und das Remote-Cloud-Service-System 150 verteilt.
  • 3 stellt grafisch ein nichtbeschränkendes Beispiel für einen Arbeitsablauf von Datenkommunikations- und Rechenaufgaben dar, die von einer oder mehreren der verschiedenen Komponenten des Robotersystems 20 (1) ausgeführt werden können. Wie in 1 und 3 gezeigt ist, erhalten die Mehrzahl von Sensoren 102 des Roboters 100 und/oder mindestens ein zusätzlicher Sensor (z.B. der erste zusätzliche Sensor 117A und der zweite zusätzliche Sensor 117B, die in 1 gezeigt sind) rohe Sensordaten in Block 202. Zum Beispiel können die Sensoren aktiviert werden, um Informationen wie etwa Bilder, Tiefeninformationen oder dergleichen zu empfangen. Im Block 204 empfängt die On-Premise-Rechenvorrichtung 120 die rohen Sensordaten von der Mehrzahl von Sensoren 102 des Roboters 100 und/oder dem mindestens einen zusätzlichen Sensor. Die On-Premise-Rechenvorrichtung 120 kann in Block 206 die rohen Sensordaten vorverarbeiten, um vorverarbeitete Daten zu erhalten, bevor die vorverarbeiteten Daten in Block 208 an das Remote-Cloud-Service-System 150 gesendet werden (weiter unten ausführlicher beschrieben). Zum Beispiel kann die On-Premise-Rechenvorrichtung 120 unnötige Informationen aus den rohen Sensordaten entfernen, wenn sie die vorverarbeiteten Daten erzeugt. Das heißt, die On-Premise-Rechenvorrichtung 120 kann die Menge an rohen Sensordaten verringern, bevor sie die Daten an das Remote-Cloud-Service-System 150 sendet, um eine unnötig große Datenübertragung zu vermeiden, eine übermäßige Strapazierung des Remote-Cloud-Service-Systems 150 zu vermeiden und/oder dergleichen. In einem nichtbeschränkenden Beispiel kann eine Kamera des Roboters 100 eine Mehrzahl von Bildern eines Objekts, wie beispielsweise des Gesichts einer Person, aufzeichnen. In manchen der Bilder kann das Gesicht der Person verdeckt sein, so dass zumindest ein Teil davon (z.B. die Augen der Person) nicht im Blickfeld ist. Die On-Premise-Rechenvorrichtung 120 könnte nur Bilder oder Frames auswählen, auf denen die Augen der Person zu sehen sind, so dass die Bilder, die an das Remote-Cloud-Service-System 150 gesendet werden, zufriedenstellende Bilder für Gesichtserkennungsalgorithmen sind. Die übrigen Bilder können lokal gespeichert oder verworfen werden. Auf diese Weise kann die On-Premise-Rechenvorrichtung 120 die Datenmenge verringern, die auf das Remote-Cloud-Service-System 150 geladen wird. Ferner werden nur qualitativ hochwertige Daten (d.h. Daten, die sehr wahrscheinlich verwendet werden, um die Funktionen durchzuführen, die hierin beschrieben sind) zur Verarbeitung auf das Remote-Cloud-Service-System 150 hochgeladen.
  • Im Block 208 sendet die On-Premise-Rechenvorrichtung 120 die verarbeiteten Sensordaten an das Remote-Cloud-Service-System 150. Zum Beispiel sendet die On-Premise-Rechenvorrichtung 120 die Daten unter Verwendung der zweiten Kommunikationsverbindung B und der dritten Kommunikationsverbindung C über das Kommunikationsnetz 140 an das Remote-Cloud-Service-System 150. Nachdem das Remote-Cloud-Service-System 150 die Daten von der On-Premise-Rechenvorrichtung 120 empfangen hat, kann es in Block 210 verschiedene Rechenprozesse, die hierin beschrieben sind, wie etwa Objekterkennung, Deduplikation und/oder dergleichen durchführen. Informationen wie etwa der Objekttyp, die Objektraumlage und der Objektort können im Block 212 bestimmt werden, und diese Informationen werden im Block 214 an der On-Premise-Rechenvorrichtung 120 bereitgestellt. Die Objektinformationen können von der On-Premise-Rechenvorrichtung 120 dann in Block 216 dem Roboter 100 bereitgestellt werden. Somit wird ein Hauptteil der rechenintensiven Prozesse vom Remote-Cloud-Service-System 150 und nicht von der On-Premise-Rechenvorrichtung 100 durchgeführt. Man beachte, dass die Ausführungsformen nicht auf die in 3 gezeigte Rechenarbeitsverteilung beschränkt ist und dass andere Rechenarbeitsverteilung zwischen dem Roboter 100, der On-Premise-Rechenvorrichtung 120 und dem Remote-Cloud-Service-System 150 in Betracht kommen.
  • Unabhängig von der Rechenarbeitsverteilung ist das Remote-Cloud-Service-System 150 ferner dafür ausgelegt, eine Objektbibliothek zu entwickeln und zu speichern, auf die die Roboter 100 innerhalb des Robotersystems 20 zugreifen können. Das Remote-Cloud-Service-System 150 kann Bilddaten von einem Satz von Bildern aus einer oder mehreren Datenquellen empfangen. Zum Beispiel kann das Remote-Cloud-Service-System 150 auf Millionen von Bildern aus einer beliebigen Quelle (z.B. aus Quellen über das Internet) als Trainingsdaten zugreifen, um Typen von Objekten zu klassifizieren. Überwachtes oder unüberwachtes Lernen kann vom Remote-Cloud-Service-System 150 durchgeführt werden, um eine Bibliothek von Objekten zu entwickeln. Außerdem können Daten, die von der On-Premise-Rechenvorrichtung 120 bereitgestellt werden, auch vom Remote-Cloud-Service-System 150 verwendet werden, um die Bibliothek von Objekten entwickeln.
  • Mit jedem Objekt innerhalb der Bibliothek von Objekten ist eine Mehrzahl von Attributen assoziiert. Exemplarische Attribute sind unter anderem Abmessungsinformationen (d.h. Länge, Breite und Höhe), Schwerpunkt, Textur, Merkmale (z.B. Löcher, Kanten, Vorsprünge usw.) dreidimensionale Gitter, optimale Greifmuster und/oder dergleichen, die für jedes Objekt innerhalb der Bibliothek von Objekten gespeichert werden können. Somit können alle Roboter 100 innerhalb des Robotersystems 20 die Bibliothek von Objekten nutzen, die vom Remote-Cloud-Service-System 150 bereitgestellt wird. Wenn der Roboter 100 in der Umgebung auf ein Objekt trifft, kann bzw. können das Remote-Cloud-Service-System 150 und/oder die On-Premise-Rechenvorrichtung 120 durch Vergleichen von Daten, die in Bezug auf das Objekt erhalten werden, mit den Bibliotheksdaten das Objekt als Objekt bestimmen, das in der Bibliothek gespeichert ist. Verschiedene Attribute des in der Bibliothek gespeicherten Objekts können auf das erfasste Objekt angewendet werden. Eine Anwendung dieser gespeicherten Attribute, wie etwa Abmessungsattribute oder dergleichen, kann die Rausch- und die Fehlermenge in den ertasteten Daten in Bezug auf das detektierte Objekt verringern. Infolgedessen kann der Roboter 100 über zusätzliche Informationen verfügen, die dem Roboter 100 ermöglichen, verschiedene Attribute, die das Objekt haben kann, exakter zu bestimmen.
  • Wenn der Roboter 100 die Umgebung durchquert, wie etwa das Heim 10, das in 1 dargestellt ist, arbeiten der Roboter 100, die On-Premise-Rechenvorrichtung 120 und das Remote-Cloud-Service-System 150 zusammen, um einen Ort und eine Raumlage verschiedener Objekte zu bestimmen, die in der Umgebung vorhanden sind. Auf diese Weise verwendet der Roboter 100, wenn er eine Eingabe von einem Anwender empfängt, die einer Aufforderung zum Finden eines Objekts entspricht, eine Programmierung, um das Objekt zu lokalisieren und das optimale Greifmuster auszuführen, um das Objekt auf Basis der Raumlage des Objekts zu greifen. In manchen Ausführungsformen können Orte der jeweiligen Objekte vom Remote-Cloud-Service-System 150 gespeichert werden. Demgemäß kann der Roboter 100 die Orte der Objekte vom Remote-Cloud-Service-System 150 über die On-Premise-Rechenvorrichtung 120 empfangen. Solche Objekte können dann innerhalb der Umgebung nachverfolgt werden.
  • In manchen Ausführungsformen kann eine Rechenvorrichtung, die vom Anwender betätigt wird, grafische Darstellungen eines ertasteten Ortes, wo sich Objekte befinden, ebenso wie die Raumlage der Objekte innerhalb der Umgebung anzeigen. 4 zeigt eine exemplarische grafische Darstellung verschiedener Objekte und ihrer jeweiligen Orte innerhalb einer Umgebung, wie vom Roboter 100 (1) bestimmt. In manchen Ausführungsformen kann über die grafische Darstellung der Objekte ein Bild der Umgebung gelegt werden. Es wird immer noch auf 1 Bezug genommen, wobei in dem Beispiel von 4 die gestrichelten Linien 302 eine Punktewolke darstellen, die von einem oder mehreren Lidarsensoren bestimmt wird. Die Punktewolke kann verschiedene Objekte, Merkmale und/oder dergleichen innerhalb der Umgebung darstellen. Eine oder mehrere grafische Darstellungen 304 zeigen den Ort der Objekte, wie vom Roboter 100, der On-Premise-Rechenvorrichtung 120 und dem Remote-Cloud-Service-System 150 bestimmt. Die grafische Darstellung 304 kann aus generischen Formen bestehen, die farbcodiert sind, oder kann aus Formen bestehen, die dem wirklichen Objekten mehr ähneln. In manchen Ausführungsformen können die grafischen Darstellungen 304 auch Symbole einschließen, welche die wirklichen Objekte darstellen. Ferner können auch Labels 306, die Einzelheiten der Objekte, wie etwa den Typ des Objekts, Eigenschaften des Objekts, Namen der Objekte und/oder dergleichen, beschreiben, angezeigt werden. Andere Informationen können angezeigt werden, wie etwa eine Zeit, zu der das letzte Mal eine Messung des Objekts durchgeführt wurde, eine Beschreibung der Raumlage des Objekts und/oder irgendwelche anderen Informationen, die wichtig sein können. Ein Anwender kann ein Objekt anklicken oder auf andere Weise auswählen, um mehr Informationen über das Objekt anzuzeigen, um ein Menü von Operationen, die an dem Objekt durchgeführt werden können, und/oder dergleichen anzuzeigen. Exemplarische Operationen sind unter anderem ein Finden und Holen des Objekts und eine Übergabe des Objekts an den Anwender, eine Bewegung des Objekts von einem aktuellen Ort an einen anderen Ort, eine Neuanordnung des Objekts, eine Annäherung an das Objekt und/oder dergleichen.
  • Wie hierin angegeben, stellt das Remote-Cloud-Service-System 150 mehrere Roboterdienstleistungen bereit. Ein exemplarisches, nichtbeschränkendes Beispiel für eine Roboterdienstleistung ist eine Deduplikation von Objekten durch den Roboter 100. Bestimmte Sensoren könnten nicht hundertprozentig (100 %) genau sein und könnten bewirken, dass sich ein detektierter Ort eines Objekts im Laufe der Zeit verschiebt. Zum Beispiel kann eine erste Messung, die dem Ort eines Objekts unter Verwendung eines Kamerasensors entspricht, an einem ersten Ort liegen, aber eine zweite Messung kann an einem zweiten Ort liegen, der in Bezug auf den ersten Ort etwas verschoben ist, trotz der Tatsache, dass sich das Objekt an sich nicht bewegt hat. Dies kann bewirken, dass der Roboter 100 unrichtigerweise bestimmt, dass es zwei ähnliche Objekte gibt, die nahe beieinander liegen. Oder der Roboter 100 kann bestimmen, dass es nur ein Objekt gibt, aber der verschobene Ort nicht richtig ist, so dass der Roboter 100 nicht in der Lage ist, Befehle zu erteilen, um das Objekt erfolgreich zu greifen. Somit sind Ausführungsformen der vorliegenden Offenbarung auch auf Systeme und Verfahren für die Deduplikation von Objekten in solchen Situationen gerichtet.
  • In einem nichtbeschränkenden Beispiel eines Deduplikationsprozesses werden in der Vergangenheit durchgeführt Messungen an Objekten verwendet, um zusammen mit einem Konfidenzwert den Ort und die Raumlage eines Objekts zu bestimmen, wobei relativ jungen Messungen ein größeres Gewicht verliehen wird als relativ älteren Messungen. Wenn der Roboter 100 das erste Mal auf ein Objekt trifft, werden die Bilddaten (und andere Daten) des Objekts mit einem relativ kleinen Konfidenzwert gespeichert. Als nichtbeschränkendes Beispiel kann dann, wenn der Konfidenzwert eine Zahl auf einer Skala von 1 bis 100 ist, der Anfangskonfidenzwert etwa 1 sein. Während der ersten Messung werden Abmessungen des Objekts bestimmt. Wie in 1 und 5 gezeigt ist, können beispielsweise die Länge L, die Breite W und die Höhe H eines Objekts, wie etwa einer Schachtel 136 mit Taschentüchern bestimmt werden. Die Messung des Objekts kann mit einer Mehrzahl von Objekten verglichen werden, die in der Bibliothek gespeichert sind. Zum Beispiel kann das Volumen des Objekts mit Volumina von Objekten verglichen werden, die in der Bibliothek gespeichert sind. Das Volumen eines Objekts, das in der Bibliothek gespeichert ist und das dem detektierten Objekt am meisten ähnelt, kann als das Objekt ausgewählt werden. In 5 kann eine Darstellung 136' einer Schachtel mit Taschentüchern innerhalb der Bibliothek von Objekten derjenigen der Schachtel 136 mit Taschentüchern, die von den Sensoren des Roboters 100 detektiert wird, stark ähneln. Auch wenn die Abmessungen nicht ganz übereinstimmen, kann die Darstellung 136' der Schachtel mit Taschentüchern ausgewählt werden, weil sie mit anderen Objekten die in der Bibliothek gespeichert sind, am meisten korreliert. Als nichtbeschränkendes Beispiel kann der Vergleich zwischen Volumina anhand eines Nearest-Point-Verfahrens durchgeführt werden. Wie oben angegeben, wird ein niedriger Konfidenzwert zugewiesen, wenn der Roboter 100 das erste Mal auf das Objekt trifft.
  • Wenn er das zweite Mal auf das Objekt trifft, wird eine ähnliche Analyse durchgeführt, um zu bestimmen, ob das Objekt in der Objektbibliothek gespeichert ist. Falls das Objekt des ersten Aufeinandertreffens und das Objekt des zweiten Aufeinandertreffens gleich sind und ihre Orte verschieden sind, bestimmt das System einen Durchschnitt aus den beiden Orte und erhöht den Konfidenzwert für die jüngste Messung. Während eines dritten Aufeinandertreffens mit dem Objekt wird eine dritter Ortsmessung als Tiebreaker verwendet, um zu bestimmen, welcher von den beiden Messwerten eher korrigiert werden muss. Der Konfidenzwert für die dritte Messung wird über die vorherigen zwei hinaus vergrößert. Da sich Objekte im Zeitverlauf etwas bewegen können (z.B. wegen Vibrationen, die von Menschen verursacht werden, die durchs Haus laufen), wird die jüngste Messung als die wahrscheinlich richtige betrachtet. Somit werden ältere Messungen im Zeitverlauf degradiert. Als nichtbeschränkendes Beispiel können ältere Messungen durch einen Wert (z.B. 0,9) gedrückt werden, während der aktuelle Messwert einen Wert 1 zugewiesen bekommt. In manchen Ausführungsformen wird auch die Raumlage des vermessenen Objekts mit früheren Messwerten verglichen, um die Raumlage des Objekts zu verifizieren. Somit kann der Roboter 100 bestimmen, dass es nur ein Objekt gibt, auch wenn ein kleines Maß an Jitter von dem mindestens einen Sensor 102 beobachtet wird. Ferner werden Messungen am Objekt durch den Roboter 100 von verschiedenen Punkten um das Objekt herum genommen, während sich der Roboter 100 durch den Raum 130 bewegt (z.B. werden sie erhalten, während sich der Roboter 100 zu einem anderen Objekt bewegt). Somit kann es scheinen, dass sich der Ort des Objekts verändert. Jedoch sind kleine Änderungen des Ortes/der Raumlage kein Hinweis auf eine Bewegung des Objekts oder dafür, dass ein anderes Objekt an fast dem gleichen Ort platziert wurde.
  • Falls eine Differenz zwischen dem aktuellen Ort des vermessenen Objekts und dem zuvor gemessenen Ort relativ groß ist (z.B. mehr als die halbe Breite oder mehr als die halbe Größe des Objekts), dann greift das Robotersystem 20 auf alle gespeicherten Winkel des Objekts und die verschiedenen Raumlagen des Objekts zu. Dies wird durchgeführt, um zu bestimmen, ob das detektierte Objekt ein zweites Objekts sein könnte, das sich neben einem zuvor detektierten Objekt befindet. Falls das aktuell vermessene Objekt auf Basis des Volumens oder einer anderen Eigenschaft, die mit dem Objekt assoziiert ist, nicht mit einem zweiten Objekt neben ihm zusammenpasst, dann bestimmt das System, dass eine von den Messungen nicht richtig ist. Der Konfidenzwert der älteren Messung wird verkleinert und der Konfidenzwert der jüngsten Messung wird vergrößert. Jedoch werden beide Messungen gespeichert. Folgende Messungen werden ebenfalls an dem Objekt durchgeführt, um die Konfidenz zu erhöhen, dass es sich dabei um ein und dasselbe Objekt handelt und nicht um doppelte Objekte, da sie alle das gleiche Volumen einnehmen.
  • In manchen Fällen kann das Robotersystem 20 wissen, dass unverwechselbare Dinge innerhalb der Umgebung vorhanden sind, für die solche Dinge jeweils nur einmal vorhanden sein können. Zum Beispiel kann es nur einen Schlüsselbund des Anwenders geben. Das heißt, der Schlüsselbund des Anwenders kann nicht gleichzeitig an zwei verschiedenen Orten sein. Außerdem sind die Schlüssel des Anwenders von den Schlüsseln jeder anderen Person verschieden. In solchen Fällen kann der Anwender ein Objekt als unverwechselbares Objekt auszeichnen, so dass das Robotersystem 20 so programmiert wird, dass es erkennt, dass das Objekt unverwechselbar ist. Das Remote-Cloud-Service-System 150 kann dann so programmiert werden, dass ein unverwechselbares Ding nur einmal vorkommen kann. Im Falle von unverwechselbaren Dingen muss bzw. müssen das Robotersystem 20 (z.B. das Remote-Cloud-Service-System 150 und/oder die On-Premise-Rechenvorrichtung 120) die oben beschriebenen Volumenüberprüfungsschritte nicht durchführen. Stattdessen wird angenommen, dass die jüngste Messung des unverwechselbaren Objekts der korrekte Ort ist. In manchen Ausführungsformen kann der Durchschnittsort mehrerer früherer Messungen bestimmt werden. Falls es eine Ortsmessung gibt, die stark von den früheren Messungen abweicht, wird die jüngste Ortsmessung als wahr genommen und die alten Ortsmessungen sind ungültig. Somit wird die jüngste Ortsmessung am höchsten eingestuft. In manchen Ausführungsformen können alle Messungen aus der Vergangenheit für eine Langzeitverarbeitung gespeichert werden.
  • Ausführungsformen der vorliegenden Offenbarung können auch regionale Detektionsblasen um detektierte Objekte bereitstellen. Diese regionalen Detektionsblasen können vom Remote-Cloud-Service-System 150, von der On-Premise-Rechenvorrichtung 120 und/oder vom Roboter 100 selbst bestimmt werden. Die regionalen Detektionsblasen können das Maß eines Fehlers berücksichtigen, der von den Sensoren 102 des Roboters 100 verursacht wird. Somit kann der Roboter 100 programmiert werden, um zu erkennen, dass ein Objekt innerhalb der regionalen Detektionsblase vorhanden ist, auch in Fällen, so der Roboter 100 das Objekt innerhalb der regionalen Detektionsblase nicht präzise lokalisieren kann.
  • Eine oder mehrere Ausgaben von der Mehrzahl von Sensoren 102 des Roboters 100 können inhärent verrauscht sein. Zum Beispiel kann bekannt sein, dass ein Sensor 102, der an einem Kopfabschnitt eines Roboters 100 angeordnet ist, verrauschte oder unzuverlässige Ausgaben mit einem bestimmten Grad an Genauigkeit ausgibt, insbesondere dann, wenn sich der Roboter 100 bewegt, und der Sensor 102 kann aufgrund der Bewegung des Roboters 100 vibrieren. Somit kann die Genauigkeit der Mehrzahl von Sensoren 102 bestimmt werden, bevor die Sensoren 102 Ausgaben bereitstellen. Zum Beispiel kann bekannt sein, dass ein bestimmter Sensor 102 innerhalb einer bestimmten Distanz bei einer bestimmten Tiefe genau ist (z.B. eine Genauigkeit von 1 Meter). Wenn ein Objekt in dieser Tiefe unter Verwendung des bestimmten Sensors 102 detektiert wird, kann eine Kugel mit einem Radius r der Genauigkeitsdistanz um eine gemessene Mitte des Objekts gelegt werden. Die regionalen Detektionsblase kann durch die Kugel definiert werden. Somit kann der Roboter 100 programmiert werden, um zu erkennen, dass sich ein Objekt in der Kugel befindet.
  • Wie in 6 gezeigt ist, wird eine Schachtel 136 mit Taschentüchern von einem Sensor 102 detektiert, der eine bestimmte Genauigkeit aufweist. Der Sensor 102 kann innerhalb einer Distanz d genau sein. Somit positioniert das Robotersystem 20 eine Kugel, die eine regionale Detektionsblase 139 mit einem Radius r definiert, welcher der Distanz d gleich ist.
  • Ebenfalls in 1 ist gezeigt, dass das Remote-Cloud-Service-System 150 auch verschiedene andere Funktionen erfüllen kann. Als nichtbeschränkendes Beispiel kann die On-Premise-Rechenvorrichtung 120 Sprachdaten, die mündliche Befehle des Anwenders darstellen, an das Remote-Cloud-Service-System 150 senden. Das Remote-Cloud-Service-System 150 kann dann einen oder mehrere Algorithmen für eine Spracherkennung und/oder für die Verarbeitung natürlicher Sprache verwenden, um die Sprachdaten in computerlesbare Befehle umzuwandeln. Das Remote-Cloud-Service-System 150 kann dann die computerlesbaren Befehle befolgen und die Ergebnisse der Befolgung über die On-Premise-Rechenvorrichtung 120 an den Roboter 100 ausgeben.
  • Außerdem kann eine Wegeplanung vom Remote-Cloud-Service-System 150 durchgeführt werden. Zum Beispiel kann der Anwender einen Befehl an den Roboter 100 erteilen, der an das Remote-Cloud-Service-System 150 gesendet wird. Das Remote-Cloud-Service-System 150 kann die Befehle empfangen, Aufgaben bestimmen, die vom Roboter 100 ausgeführt werden sollen, und Aufgaben wie etwa eine Wegeplanung und eine Greifmusterplanung auf Basis einer Modellierung oder irgendeines anderen Verfahrens zum Erzeugen von Wege- und Greifmustern für die Zwecke der Ausführung der bestimmten Aufgaben durchführen. Die Befehle, die dem Wegeplan und/oder dem Greifmuster entsprechen, werden dann über die On-Premise-Rechenvorrichtung 120 an den Roboter 100 gesendet. In manchen Ausführungsformen führt die On-Premise-Rechenvorrichtung 120 sowohl eine Wegeplanung als auch eine Greifmusterplanung durch. In manchen Ausführungsformen können die On-Premise-Rechenvorrichtung 120 und das Remote-Cloud-Service-System 150 gemeinsam die Wegeplanung und die Greifmusterplanung durchführen.
  • In manchen Ausführungsformen können die Informationen, die an das Remote-Cloud-Service-System 150 gesendet werden, beschränkt sein, um die Privatsphäre zu schützen. Zum Beispiel könnten keine wirklichen Bilder an das Remote-Cloud-Service-System 150 gesendet werden. Stattdessen könnten nur Daten, die für Bilder stehen, an das Remote-Cloud-Service-System 150 gesendet werden. Als Teil der Bildverarbeitung, die von der On-Premise-Rechenvorrichtung 120 durchgeführt wird, können personenbezogene Informationen entfernt werden, so dass keine Bilddaten versendet werden. Zum Beispiel kann das Remote-Cloud-Service-System 150 Daten enthalten, die einen Hinweis auf eine Getränkedose an einem bestimmten Ort in dem Heim darstellen, aber über kein wirkliches Bild der Getränkedose oder des Bereichs um die Getränkedose verfügen.
  • Außerdem kann das Robotersystem 20 einen Anwender auf Basis von 3D-Ortsinformationen authentifizieren. Somit könnte ein Anwender generell nur dann auf die Funktionen des Remote-Cloud-Service-Systems 150 und des Robotersystems 20 zugreifen, wenn sich der Anwender sehr nahe am Roboter 100 befindet. Sehr nahe könnte beispielsweise innerhalb eines bestimmten Abstands vom Roboter 100, im gleichen Raum 130 wie der Roboter 100, im gleichen Gebäude wie der Roboter 100 oder dergleichen bedeuten. In einem anderen Beispiel kann ein Anwender an einem anderen Ort dem Robotersystem 20 bekannte Objekte im Heim 10 beschreiben. Zum Beispiel kann der Anwender sagen „Da steht eine Getränkedose in der linken Ecke des Tisches.“. Der Roboter 100 kann dann Informationen abrufen, um zu bestätigen, dass dies wahr ist, und dann zusätzliche Informationen über das Heim 10 bereitstellen, weil der Anwender gerade bewiesen hat, dass er etwas Spezifisches über das Heim 10 weiß. Der Anwender kann beispielsweise unter Verwendung einer mobilen Vorrichtung und des Internet von fern auf das Robotersystem 20 zugreifen.
  • In manchen Ausführungsformen können Anwender eine Bezahlung erhalten oder eine gewisse Vergütung für das Trainieren des Roboters 100 angeboten bekommen. Zum Beispiel kann sich der Anwender bereit erklären, dem Roboter 100 zu sagen „dies ist eine Tasse“ und dann dem Roboter 100 alle Tassen, die der Anwender in dem Heim 10 besitzt, in verschiedenen Raumlagen zeigen. Ferner können Anwender Objekte innerhalb der Umgebung auszeichnen. Zum Beispiel kann der Anwender sagen: „Das sind meine Schlüssel“ oder „Das ist mein Computer“. Das Robotersystem 20 kann dann die Auszeichnung mit den Sensordaten assoziieren, die dem ausgezeichneten Objekt entsprechen. Das Robotersystem 20 kann dafür ausgelegt sein, Hintergrundbilder von dem ausgezeichneten Objekt zu extrahieren. Zum Beispiel kann das Robotersystem 20 einen Schlüsselbund von den Händen und Armen eines Anwenders extrahieren.
  • Es wird nun auf 7 verwiesen, wo Komponenten eines exemplarischen Roboters 100, der in der Lage ist, die hierin beschriebenen Funktionen durchzuführen, schematisch dargestellt sind. Man beachte, dass der Roboter 100 mehr Komponenten aufweisen kann als in 7 dargestellt sind, und dass 7 nur zur Veranschaulichung bereitgestellt ist. Der exemplarische Roboter 100 weist allgemein einen Prozessor 110, einen Kommunikationsweg 111, Netzschnittstellen-Hardware 112, eine Mehrzahl von Sensoren 102, mindestens ein Speichermodul 114, eine Mehrzahl von Eingabe- und Ausgabevorrichtungen 115, eine Mehrzahl von Stellantrieben 116 und einen Ortssensor 113 auf.
  • Der Kommunikationsweg 111 kann aus irgendeinem Medium gebildet werden, das in der Lage ist, ein Signal zu senden, wie beispielsweise aus Leiterdrähten, Leiterbahnen, Lichtwellenleitern oder dergleichen. Darüber hinaus kann der Kommunikationsweg 111 aus einer Kombination von Medien gebildet werden, die in der Lage sind, Signale zu übertragen. In einer Ausführungsform weist der Kommunikationsweg 111 eine Kombination aus Leiterbahnen, Leiterdrähten, Verbindern und Bussen auf, die zusammenarbeiten, um die Übertragung elektrischer Datensignale an Komponenten wie etwa Prozessoren, Speicher, Sensoren, Eingabevorrichtungen, Ausgabevorrichtungen und Kommunikationsvorrichtungen zu ermöglichen, einschließlich der verschiedenen hierin beschriebenen Komponenten. Demgemäß kann der Kommunikationsweg 111 in manchen Ausführungsformen ein Bus sein. Außerdem sei klargestellt, dass der Begriff „Signal“ eine Wellenform (z.B. elektrisch, optisch, magnetisch, mechanisch oder elektromagnetisch), wie etwa Gleichstrom, Wechselstrom, Sinuswelle, Dreieckswelle, Rechteckswelle, Vibration und dergleichen bedeutet, die in der Lage ist, sich durch ein Medium fortzupflanzen. Der Kommunikationsweg 111 verkoppelt die verschiedenen Komponenten des Roboters 100 so, dass sie kommunizieren können. Wie hierin verwendet, bedeutet der Begriff „verkoppelt, so dass sie kommunizieren können“, dass die verkoppelten Komponenten in der Lage sind, Datensignale, wie beispielsweise elektrische Signale über ein leitendes Medium, elektromagnetische Wellen über die Luft, optische Signale über Lichtwellenleiter und/oder dergleichen untereinander auszutauschen.
  • Der Prozessor 110 des Roboters 100 kann jede Vorrichtung sein, die in der Lage ist, maschinenlesbare Befehle, wie etwa die maschinenlesbaren Befehle zur Durchführung der verschiedenen hierin beschriebenen Funktionen auszuführen. Demgemäß kann der Prozessor 110 ein Controller, eine integrierte Schaltung, ein Mikrochip, ein Computer oder irgendeine andere Rechenvorrichtung sein. Der Prozessor 110 ist über den Kommunikationsweg 111 kommunikationsfähig mit den anderen Komponenten des Roboters 100 gekoppelt. Demgemäß kann der Kommunikationsweg 111 eine beliebige Zahl von Prozessoren miteinander koppeln, so dass sie kommunizieren können, und den mit dem Kommunikationsweg 111 verkoppelten Komponenten ermöglichen, in einer verteilten Rechenumgebung zu arbeiten. Genauer kann jede der Komponenten als Knoten arbeiten, der Daten senden und/oder empfangen kann. Man beachte, dass zwar die in 7 gezeigte Ausführungsform nur einen Prozessor 110 aufweist, aber andere Ausführungsformen mehr als einen Prozessor aufweisen können.
  • Die Netzschnittstellen-Hardware 112 ist mit dem Kommunikationsweg 111 gekoppelt und kommunikationsfähig mit dem Prozessor 110 gekoppelt. Die Netzschnittstellen-Hardware 112 kann eine beliebige Vorrichtung sein, die in der Lage ist, Daten über das Kommunikationsnetz 140 zu senden und/oder zu empfangen. Demgemäß kann die Netzschnittstellen-Hardware 112 ein Drahtloskommunikationsmodul aufweisen, das als Kommunikations-Sender/Empfänger zum Senden und/oder Empfangen jeglicher drahtgebundener oder drahtloser Kommunikation ausgelegt ist Zum Beispiel kann die Netzschnittstellen-Hardware 112 eine Antenne, ein Modem, einen LAN-Port, eine Wi-Fi-Karte, eine WiMax-Karte, Mobilkommunikations-Hardware, Nahfeldkommunikations-Hardware, Satellitenkommunikations-Hardware und/oder jegliche drahtgebundene oder drahtlose Hardware zum Kommunizieren mit anderen Netzen und/oder Vorrichtungen aufweisen. In einer Ausführungsform weist die Netzschnittstellen-Hardware 112 Hardware auf, die dafür ausgelegt ist, gemäß einem Drahtloskommunikationsprotokoll wie etwa Bluetooth, Zigbee, Z-Wave, einem 802.11-Standard und/oder dergleichen zu arbeiten. In einer anderen Ausführungsform kann die Netzschnittstellen-Hardware 112 ein Bluetooth-Sende-/Empfangsmodul zum Senden und Empfangen von Bluetooth-Kommunikationen zu/von einer tragbaren elektronischen Vorrichtung einschließen. Die Netzschnittstellen-Hardware 112 kann auch einen Funkfrequenzidentifikations(„RFID“)-Leser aufweisen, der dafür ausgelegt ist, RFID-Auszeichnungen abzufragen und zu lesen. Die Netzschnittstellen-Hardware 112 wird verwendet, um mit der On-Premise-Rechenvorrichtung 120 zu kommunizieren.
  • Die Mehrzahl von Sensoren 102 kann kommunikationsfähig mit dem Prozessor 110 gekoppelt sein. Wie hierin zuvor beschrieben, kann die Mehrzahl von Sensoren 102 jede Art von Sensoren einschließen, die in der Lage sind, dem Roboter 100 Informationen in Bezug auf die Umgebung bereitzustellen. Die Mehrzahl von Sensoren 102 kann unter anderem Kameras (z.B. CCD-Kameras), Infrarotsensoren, Tiefensensoren, Näherungssensoren, Tastsensoren, Lidarsensoren, Radarsensoren, Flugzeitsensoren, Trägheitsmesseinheiten (z.B. ein(en) oder mehrere Beschleunigungsmesser und Gyroskope) und/oder dergleichen einschließen. Wie hierin beschrieben, werden Sensordaten an die On-Premise-Rechenvorrichtung 120 übermittelt.
  • Das Speichermodul 114 des Roboters 100 ist mit dem Kommunikationsweg 111 gekoppelt und kommunikationsfähig mit dem Prozessor 110 gekoppelt. Das Speichermodul 114 kann RAM, ROM, Flash-Speicher, Festplatten oder irgendeine nichtflüchtige Speichervorrichtung einschließen, die in der Lage ist, maschinenlesbare Befehle zu speichern, so dass der Prozessor 110 auf die maschinenlesbaren Befehle zugreifen und diese ausführen kann. Die maschinenlesbaren Befehle können Logik oder mindestens einen Algorithmus aufweisen, geschrieben in irgendeiner Programmiersprache irgendeiner Generation 1GL, 2GL, 3GL, 4GL oder 5GL), wie beispielsweise Maschinensprache, die vom Prozessor direkt ausgeführt werden kann, oder Assembliersprache, objektorientierte Programmierung (OOP), Skriptsprachen, Mikrocode und/oder dergleichen, die bzw. der zu maschinenlesbaren Befehlen kompiliert oder assembliert werden und im Speichermodul 114 gespeichert werden kann. Alternativ dazu können die maschinenlesbaren Befehle in Hardwarebeschreibungssprache (HDL) geschrieben sein, wie etwa als Logik, die über eine Field Programmable Gate Array(FPGA)-Konfiguration oder eine anwendungsspezifische integrierte Schaltung (ASIC) oder deren Äquivalente implementiert wird. Demgemäß kann die hierin beschriebene Funktionalität in jeder herkömmlichen Computerprogrammiersprache, als vorprogrammierte Hardware-Elemente oder als Kombination aus Hardware- und Software-Komponenten implementiert werden. Man beachte, dass die in 7 gezeigte Ausführungsform zwar nur ein einziges Speichermodul 114 aufweist, aber andere Ausführungsformen mehr als ein Speichermodul aufweisen können. Das Speichermodul 114 kann auch Sensordaten speichern wie hierin beschrieben.
  • Die Eingabe- und Ausgabevorrichtungen 115 können eine beliebige Anzahl von Eingabevorrichtungen und Ausgabevorrichtungen aufweisen. Exemplarische Eingabevorrichtungen können unter anderem Tastaturen, Bedienfelder, Schalter, Knöpfe, Touchpads, Touchscreens, Mikrofone, Infrarot-Bewegungssensoren, Mausgeräte und dergleichen einschließen. Beispiele für Ausgabevorrichtungen sind unter anderem Lautsprecher, elektronische Anzeigen, Lampen, Leuchtdioden, Summer, taktile Anzeigen und dergleichen.
  • Die Mehrzahl von Stellantrieben 116 kann beliebige mechanische Stellantriebe einschließen, die den Roboter 100 in die Lage versetzen, durch einen Raum zu navigieren und Objekte zu manipulieren. Die Stellantriebe können motorisierte Radbaugruppen einschließen, die bewirken, dass sich der Roboter 100 in dem Raum bewegt. Stellantriebe können auch Motoren einschließen, die gesteuert werden, um Arme und Effektoren des Roboters 100 zu bewegen, um Objekte zu greifen und zu manipulieren. Solche Stellantriebe 116 sind allgemein verstanden und werden hierin nicht ausführlicher beschrieben.
  • Der Ortssensor 113 ist mit dem Kommunikationsweg 111 gekoppelt und somit kommunikationsfähig mit dem Prozessor 110 gekoppelt. Der Ortssensor 113 kann jede Vorrichtung sein, die in der Lage ist, eine Ausgabe zu erzeugen, die einen Ort angibt. In manchen Ausführungsformen weist der Ortssensor 113 einen Global Positioning System(GPS)-Sensor auf, aber die Ausführungsformen sind nicht darauf beschränkt. In manchen Ausführungsbeispielen kann der Ortssensor 113 ein Drahtlosprotokoll, wie etwa einen 802.11-Standard, Bluetooth und/oder dergleichen, für die Zwecke der Bereitstellung von Ortskoordinaten verwenden. Manche Ausführungsformen müssen keinen Ortssensor 113 enthalten, wie etwa Ausführungsformen, in denen der Roboter 100 den Ort des Roboters 100 nicht bestimmt, oder Ausführungsformen, in denen der Ort auf andere Weise bestimmt wird (z.B. auf Basis von Informationen, die von anderen Geräte empfangen werden). Der Ortssensor 113 kann auch als drahtloser Signalsensor ausgelegt sein, der in der Lage ist, einen Ort des Roboters 100 und des Anwenders durch Triangulation mittels drahtloser Signale zu bestimmen, die er von einer oder mehreren Drahtlossignalantennen empfängt.
  • Man beachte, dass der Roboter 100 andere Komponenten enthalten kann, die in 7 nicht dargestellt sind. Zum Beispiel kann der Roboter 100 durch eine Batterie mit Leistung versorgt werden. Die Batterie kann jede Vorrichtung sein, die in der Lage ist, elektrische Energie zur späteren Verwendung durch den Roboter 100 zu speichern. In manchen Ausführungsbeispielen ist die Batterie eine wiederaufladbare Batterie, wie beispielsweise eine Lithiumionenbatterie oder eine Nickelcadmiumbatterie. In Ausführungsformen, in denen die Batterie eine wiederaufladbare Batterie ist, kann der Roboter 100 einen Aufladeport aufweisen, der verwendet werden kann, um die Batterie aufzuladen.
  • Es wird nun auf 8 verwiesen, wo Komponenten einer On-Premise-Rechenvorrichtung 120 schematisch dargestellt sind. Man beachte, dass die On-Premise-Rechenvorrichtung 120 mehr Komponenten aufweisen kann als in 8 dargestellt sind, und dass 8 nur zur Veranschaulichung bereitgestellt ist. Die exemplarische On-Premise-Rechenvorrichtung 120 weist allgemein einen Prozessor 123, eine Kommunikationsweg 128, eine grafische Verarbeitungseinheit 124, Netzschnittstellen-Hardware 125, mindestens ein Speichermodul 126 und eine Mehrzahl von Eingabe- und Ausgabevorrichtungen 127 auf.
  • Der Kommunikationsweg 128 kann aus irgendeinem Medium gebildet werden, das in der Lage ist, ein Signal zu senden, wie beispielsweise aus Leiterdrähten, Leiterbahnen, Lichtwellenleitern oder dergleichen. Darüber hinaus kann der Kommunikationsweg 128 aus einer Kombination von Medien gebildet werden, die in der Lage sind, Signale zu übertragen. In einer Ausführungsform weist der Kommunikationsweg 128 eine Kombination aus Leiterbahnen, Leiterdrähten, Verbindern und Bussen auf, die zusammenarbeiten, um die Übertragung elektrischer Datensignale an Komponenten wie etwa Prozessoren, Speicher, Sensoren, Eingabevorrichtungen, Ausgabevorrichtungen und Kommunikationsvorrichtungen zu ermöglichen, einschließlich der verschiedenen hierin beschriebenen Komponenten. Demgemäß kann der Kommunikationsweg 128 in manchen Ausführungsformen ein Bus sein. Außerdem sei klargestellt, dass der Begriff „Signal“ eine Wellenform (z.B. elektrisch, optisch, magnetisch, mechanisch oder elektromagnetisch), wie etwa Gleichstrom, Wechselstrom, Sinuswelle, Dreieckswelle, Rechteckswelle, Vibration und dergleichen bedeutet, die in der Lage ist, sich durch ein Medium fortzupflanzen. Der Kommunikationsweg 128 verkoppelt die verschiedenen Komponenten des Roboters 100 so, dass sie kommunizieren können. Wie hierin verwendet, bedeutet der Begriff „verkoppelt, so dass sie kommunizieren können“, dass die verkoppelten Komponenten in der Lage sind, Datensignale, wie beispielsweise elektrische Signale über ein leitendes Medium, elektromagnetische Wellen über die Luft, optische Signale über Lichtwellenleiter und/oder dergleichen untereinander auszutauschen.
  • Der Prozessor 123 kann jede Vorrichtung sein, die in der Lage ist, maschinenlesbare Befehle auszuführen, um die verschiedenen hierin beschriebenen Funktionen auszuführen. Demgemäß kann der Prozessor 123 ein Controller, eine integrierte Schaltung, ein Mikrochip, ein Computer oder irgendeine andere Rechenvorrichtung sein. Der Prozessor 123 ist über den Kommunikationsweg 128 kommunikationsfähig mit den anderen Komponenten der On-Premise-Rechenvorrichtung 120 gekoppelt. Demgemäß kann der Kommunikationsweg 128 eine beliebige Zahl von Prozessoren miteinander koppeln, so dass sie kommunizieren können, und den mit dem Kommunikationsweg 128 verkoppelten Komponenten ermöglichen, in einer verteilten Rechenumgebung zu arbeiten. Genauer kann jede der Komponenten als Knoten arbeiten, der Daten senden und/oder empfangen kann. Man beachte, dass zwar die in 8 gezeigte Ausführungsform nur einen Prozessor 123 aufweist, aber andere Ausführungsformen mehr als einen Prozessor 123 aufweisen können.
  • Die Grafikverarbeitungseinheit 124 ist eine beliebige Vorrichtung, die in der Lage ist, maschinenlesbare Befehle auszuführen und die spezifisch dafür ausgelegt ist, Bildverarbeitungsausgaben, wie etwa eine Objekterkennung, durchzuführen. Die Grafikverarbeitungseinheit 124 kann ein Controller, eine integrierte Schaltung, ein Mikrochip, ein Computer oder irgendeine andere Rechenvorrichtung sein. Jede bekannte oder in Zukunft noch entwickelte Grafikverarbeitungseinheit kann verwendet werden. In manchen Ausführungsformen wird keine Grafikverarbeitungseinheit 124 verwendet. Stattdessen kann der Prozessor 123 die Bildverarbeitungsberechnungen ebenso wie andere Berechnungen nach Bedarf erledigen.
  • Die Netzschnittstellen-Hardware 125 ist mit dem Kommunikationsweg 128 gekoppelt und kommunikationsfähig mit dem Prozessor 123 gekoppelt. Die Netzschnittstellen-Hardware 125 kann eine beliebige Vorrichtung sein, die in der Lage ist, Daten über das Kommunikationsnetz 140 zu senden und/oder zu empfangen. Demgemäß kann die Netzschnittstellen-Hardware 125 ein Drahtloskommunikationsmodul aufweisen, das als Kommunikations-Sender/Empfänger zum Senden und/oder Empfangen jeglicher drahtgebundener oder drahtloser Kommunikation ausgelegt ist Zum Beispiel kann die Netzschnittstellen-Hardware 125 eine Antenne, ein Modem, einen LAN-Port, eine Wi-Fi-Karte, eine WiMax-Karte, Mobilkommunikations-Hardware, Nahfeldkommunikations-Hardware, Satellitenkommunikations-Hardware und/oder jegliche drahtgebundene oder drahtlose Hardware zum Kommunizieren mit anderen Netzen und/oder Vorrichtungen aufweisen. In einer Ausführungsform weist die Netzschnittstellen-Hardware 125 Hardware auf, die dafür ausgelegt ist, gemäß einem Drahtloskommunikationsprotokoll wie etwa Bluetooth, Zigbee, Z-Wave, einem 802.11-Standard und/oder dergleichen zu arbeiten. In einer anderen Ausführungsform kann die Netzschnittstellen-Hardware 125 ein Bluetooth-Sende-/Empfangsmodul zum Senden und Empfangen von Bluetooth-Kommunikationen zu/von einer tragbaren elektronischen Vorrichtung einschließen. Die Netzschnittstellen-Hardware 125 kann auch einen Funkfrequenzidentifikations(„RFID“)-Leser aufweisen, der dafür ausgelegt ist, RFID-Auszeichnungen abzufragen und zu lesen. Die Netzschnittstellen-Hardware 125 wird verwendet, um mit dem Roboter 100 und dem Remote-Cloud-Service-System 150 zu kommunizieren.
  • Das Speichermodul 126 der On-Premise-Rechenvorrichtung 120 ist mit dem Kommunikationsweg 128 gekoppelt und kommunikationsfähig mit dem Prozessor 123 gekoppelt. Das Speichermodul 126 kann RAM, ROM, Flash-Speicher, Festplatten oder irgendeine nichtflüchtige Speichervorrichtung einschließen, die in der Lage ist, maschinenlesbare Befehle zu speichern, so dass der Prozessor 123 auf die maschinenlesbaren Befehle zugreifen und diese ausführen kann. Die maschinenlesbaren Befehle können Logik oder mindestens einen Algorithmus aufweisen, geschrieben in irgendeiner Programmiersprache irgendeiner Generation 1GL, 2GL, 3GL, 4GL oder 5GL), wie beispielsweise Maschinensprache, die vom Prozessor 123 direkt ausgeführt werden kann, oder Assembliersprache, objektorientierte Programmierung (OOP), Skriptsprachen, Mikrocode und/oder dergleichen, die bzw. der zu maschinenlesbaren Befehlen kompiliert oder assembliert werden und im Speichermodul 126 gespeichert werden kann. Alternativ dazu können die maschinenlesbaren Befehle in Hardwarebeschreibungssprache (HDL) geschrieben sein, wie etwa als Logik, die über eine Field Programmable Gate Array(FPGA)-Konfiguration oder eine anwendungsspezifische integrierte Schaltung (ASIC) oder deren Äquivalente implementiert wird. Demgemäß kann die hierin beschriebene Funktionalität in jeder herkömmlichen Computerprogrammiersprache, als vorprogrammierte Hardware-Elemente oder als Kombination aus Hardware- und Software-Komponenten implementiert werden. Man beachte, dass die in 8 gezeigte Ausführungsform zwar nur ein einziges Speichermodul 126 aufweist, aber dass jede Anzahl von Speichermodulen bereitgestellt werden kann. Das Speichermodul 126 kann auch Sensordaten speichern wie hierin beschrieben.
  • Die Eingabe- und Ausgabevorrichtungen 127 können eine beliebige Anzahl von Eingabevorrichtungen und Ausgabevorrichtungen aufweisen. Der Veranschaulichung dienende Eingabevorrichtungen können unter anderem Tastaturen, Bedienfelder, Schalter, Knöpfe, Touchpads, Touchscreens, Mikrofone, Infrarot-Bewegungssensoren, Mausgeräte und dergleichen einschließen. Beispiele für Ausgabevorrichtungen sind unter anderem Lautsprecher, elektronische Anzeigen, Lampen, Leuchtdioden, Summer, taktile Anzeigen und dergleichen.
  • Die On-Premise-Rechenvorrichtung 120 kann zusätzlich dazu, dass sie eine lokale Roboter-Mensch-Schnittstelle bereitstellt, auch als Hub für andere Systeme innerhalb der Umgebung dienen, um einen ständig mit Leistung versorgten (im Gegensatz zu einem batteriebetriebenen) Webserver bereitzustellen, der ständig Messdaten an die Cloud senden, eine lokale grafische Benutzeroberfläche bereitstellen und eine Reduzierung von Berechnungen und Speicherungen am Roboter ermöglichen kann. Viele Informationsbeschaffungsaufgaben können eine Verarbeitung durch eine Grafikverarbeitungseinheit (GPU) erfordern, die leistungsintensiv ist. Ferner kann die On-Premise-Rechenvorrichtung 120 eine Leitung zum Roboter 100 mit hohem Durchsatz sein, die vor dem Hochladen in die Cloud eine Bildverarbeitung und verschiedene andere Aufgaben bereitstellen kann. Die Daten können auf Basis des Bedarfs des Cloud-Service-Systems 150 selektiv vom Roboter 100 zur On-Premise-Rechenvorrichtung 120 gesendet (z.B. gestreamt) werden. Das Cloud-Service-System 150 kann auch einen Fluss zu bestimmten Diensten, wie etwa Maschinenintelligenzdiensten und einer Reihe verschiedener Speichervorrichtungen steuern.
  • In manchen Ausführungsformen ist ein Roboterbetriebssystem (ROS) an dem Roboter bereitgestellt. Das heißt, der Roboter weist Software auf, die dafür ausgelegt ist, die On-Premise-Rechenvorrichtung 120 zu finden, so dass der Roboter sich an der On-Premise-Rechenvorrichtung 120 registrieren kann, wie unter anderem unter Verwendung einer Multicast-Domain-Name-System(MDNS)-Auffindung und einer GRPC-Registrierung. Wenn es zu einer Registrierung kommt, kann die On-Premise-Rechenvorrichtung ein Client des ROS-Masters werden, der auf dem Roboter ausgeführt wird (z.B. über Websockets (GRPC, wenn eine Brücke vorhanden ist)). Die On-Premise-Rechenvorrichtung 120 kann dann verfügbare Dienste, Handlungsweisen und Themen entdecken und diese verfügbaren Dienste, Handlungsweisen und Themen auf der grafischen Benutzeroberfläche des On-Premise-Dienstes darstellen und/oder diese Informationen in das Cloud-Service-System 150 pushen (z.B. über GRPC).
  • Das Cloud-Service-System 150 kann dann die Sammlung von angeforderten Themen verlangen, und die On-Premise-Rechenvorrichtung 120 kann damit beginnen, die Daten zu streamen, unter anderem in kinesischen Streams. Die gestreamten Daten können dann von vielen Vorrichtungen verarbeitet werden und Daten können in einer Gruppe von Speichervorrichtungen aufgezeichnet werden.
  • Es sollte klargeworden sein, dass hierin beschriebene Ausführungsformen auf Robotersysteme gerichtet sind, die einen Roboter, eine On-Premise-Rechenvorrichtung, die mit dem Roboter kommuniziert, und ein Cloud-Service-System, das mit der On-Premise-Rechenvorrichtung kommuniziert, aufweisen. Die On-Premise-Rechenvorrichtung und das Cloud-Service-System entlasten den Roboter von Verarbeitungsanforderungen, so dass der Roboter effizienter funktionieren kann, weniger elektrische Energie verbraucht und über längere Zeiträume mit einer einzigen Batterieladung arbeitet. Die On-Premise-Rechenvorrichtung kann Sensordaten vom Roboter empfangen und ausgewählte Sensordaten dem Cloud-Service-System bereitstellen. Das Cloud-Service-System kann dann energieintensive Objekterkennungs- und andere Prozesse durchführen. Die Ergebnisse dieser Prozesse werden dann vom Cloud-Service-System an die On-Premise-Rechenvorrichtung und dann an den Roboter gesendet. Das Cloud-Service-System kann zusätzliche Dienste bereitstellen, wie etwa eine Deduplikation von Objekten, Wegeplanung, Simulation, Modellierung, Maschinenlernen und/oder dergleichen.
  • Ausführungsformen ermöglichen Robotern daher, durch Senden und Speichern von Daten in der Cloud voneinander zu lernen. Zum Beispiel können Roboter einen Kontext um selbst erzeugte Modelle bauen. Diese Modelle können dann gepusht, indexiert und veröffentlicht werden. Andere Daten, wie Telemetrie, Bilddaten und Audio, können ebenfalls in einen einziges Kollektiv gepusht werden, das in der Lage ist, die Cloud zu nutzen, um Maschinenlemen und/oder Funktionen künstlicher Intelligenz anzuwenden. Dieses Lernen kann Modelle erzeugen, die am Roboter verwendet werden können, um diesen in seinen On-Premise-Interaktionen effizienter und intelligenter zu machen. Außerdem können Dienste wie Gesichts-, Sprach- und Objekterkennung die Rechenleistung verwenden, die in der Cloud zur Verfügung steht.
  • Auch wenn hierin konkrete Ausführungsformen dargestellt und beschrieben wurden, sei klargestellt, dass verschiedene andere Änderungen und Modifikationen vorgenommen werden können, ohne vom Gedanken und Bereich des beanspruchten Gegenstands abzuweichen. Darüber hinaus wurden hierin zwar verschiedene Aspekte des beanspruchten Gegenstands beschrieben, aber diese Aspekte müssen nicht in Kombination verwendet werden. Daher sollen die beigefügten Ansprüche all diese Änderungen und Modifikationen, die im Bereich des beanspruchten Gegenstands liegen, einschließen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62563424 [0001]

Claims (10)

  1. Vor-Ort-Computervorrichtung bzw. On-Premise-Rechenvorrichtung, einen Prozessor und eine nichtflüchtige Speichervorrichtung aufweisend, in der maschinenlesbare Befehle gespeichert sind, die bei ihrer Ausführung durch den Prozessor bewirken, dass der Prozessor: rohe Sensordaten von einem Roboter empfängt; die rohen Sensordaten vorverarbeitet, um unnötige Informationen aus den rohen Sensordaten zu entfernen und vorverarbeitete Daten zu erhalten; die vorverarbeiteten Daten an ein Cloud-Service-System sendet; vom Cloud-Service-System einen Objekttyp, eine Objektraumlage und einen Objektort eines Objekts empfängt, das den vorverarbeiteten Daten entspricht; und auf Basis des Objekttyps, der Objektraumlage und/oder des Objektorts des Objekts ein Signal an den Roboter sendet.
  2. Vor-Ort-Computervorrichtung bzw. On-Premise-Rechenvorrichtung nach Anspruch 1, wobei die maschinenlesbaren Befehle, die bewirken, dass der Prozessor das Signal an den Roboter sendet, ferner bewirken, dass der Prozessor Befehle zum Manipulieren des Objekts an den Roboter sendet.
  3. Cloud-Service-System, einen Prozessor und eine nichtflüchtige Speichervorrichtung aufweisend, in der maschinenlesbare Befehle gespeichert sind, die bei ihrer Ausführung durch den Prozessor bewirken, dass der Prozessor: vorverarbeitete Daten von einer On-Premise-Rechenvorrichtung empfängt, wobei die vorverarbeiteten Daten Daten sind, die von der On-Premise-Rechenvorrichtung aus rohen Sensordaten extrahiert wurden, die von einem Roboter stammen; einen Objekttyp, eine Objektraumlage und einen Objektort eines Objekts aus den vorverarbeiteten Daten bestimmt; und den Objekttyp, die Objektraumlage und den Objektort an die On-Premise-Rechenvorrichtung sendet.
  4. Cloud-Service-System nach Anspruch 3, wobei die vorverarbeiteten Daten Bilddaten sind und der Objekttyp und die Objektraumlage durch Anwenden eines Objekterkennungsalgorithmus auf die Bilddaten bestimmt werden.
  5. Cloud-Service-System nach einem der Ansprüche 3 bis 4, wobei die maschinenlesbaren Befehle ferner bewirken, dass der Prozessor einen Deduplikationsprozess durchführt, der eine Mehrzahl von früheren Messungen eines Objekts evaluiert, um zu bestimmen, ob ein aktuelles Objekt: dasselbe Objekt ist wie eine oder mehrere frühere Messungen oder ein zweites Objekt, das von dem Objekt verschieden ist.
  6. Cloud-Service-System nach einem der Ansprüche 3 bis 5, wobei die maschinenlesbaren Befehle ferner bewirken, dass der Prozessor: einen Roboterwegeplan erzeugt und den Roboterwegeplan an die On-Premise-Rechenvorrichtung sendet.
  7. Cloud-Service-System nach einem der Ansprüche 3 bis 6, wobei die maschinenlesbaren Befehle ferner bewirken, dass der Prozessor: Befehle erzeugt, um zu bewirken, dass der Roboter das Objekt manipuliert; und die Befehle an die On-Premise-Rechenvorrichtung sendet.
  8. Verfahren zur Steuerung eines Roboters, wobei das Verfahren umfasst: Empfangen von rohen Sensordaten vom Roboter an einer On-Premise-Rechenvorrichtung; Reduzieren einer Größe der rohen Sensordaten durch die On-Premise-Rechenvorrichtung, um verarbeitete Sensordaten zu erzeugen; Senden der verarbeiteten Sensordaten durch die On-Premise-Rechenvorrichtung an ein Remote-Cloud-Service-System; Empfangen eines Objekttyps, einer Objektraumlage und eines Objektsorts vom Cloud-Service-System an der On-Premise-Rechenvorrichtung, wobei der Objekttyp, die Objektraumlage und der Objektort vom Cloud-Service-System aus den verarbeiteten Sensordaten bestimmt werden; und Senden eines Signals an den Roboter durch die On-Premise-Rechenvorrichtung auf Basis des Objekttyps, der Objektraumlage und/oder des Objektorts des Objekts.
  9. Verfahren nach Anspruch 8, wobei das Empfangen des Objekttyps, der Objektraumlage und des Objektorts das Empfangen von Informationen über das Objekt einschließt, die als Ergebnis eines Deduplikationsprozesses erzeugt werden, der eine Mehrzahl früherer Messungen des Objekts evaluiert, um zu bestimmen, ob ein aktuelles Objekt dasselbe Objekt wie eine oder mehrere frühere Messungen der Mehrzahl früherer Messungen oder ein anderes Objekt ist.
  10. Verfahren nach einem der Ansprüche 8 bis 9, ferner vor dem Empfangen der rohen Sensordaten vom Roboter das Empfangen eines Befehls über eine Benutzeroberfläche umfassend, wobei der Befehl einem Befehl an den Roboter, eine Aufgabe durchzuführen, entspricht.
DE102018123543.7A 2017-09-26 2018-09-25 Robotersysteme, die cloud-service-systeme enthalten Granted DE102018123543A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762563424P 2017-09-26 2017-09-26
US62/563,424 2017-09-26
US16/053,165 2018-08-02
US16/053,165 US10723027B2 (en) 2017-09-26 2018-08-02 Robot systems incorporating cloud services systems

Publications (1)

Publication Number Publication Date
DE102018123543A1 true DE102018123543A1 (de) 2019-03-28

Family

ID=65638683

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018123543.7A Granted DE102018123543A1 (de) 2017-09-26 2018-09-25 Robotersysteme, die cloud-service-systeme enthalten

Country Status (1)

Country Link
DE (1) DE102018123543A1 (de)

Similar Documents

Publication Publication Date Title
US10723027B2 (en) Robot systems incorporating cloud services systems
US9630318B2 (en) Feature detection apparatus and methods for training of robotic navigation
DE112019002589T5 (de) Tiefenlernsystem
DE112019001144T5 (de) VERFAHREN UND VORRICHTUNGEN ZUR BESTIMMUNG VON GEWICHTUNGEN FÜR DEN EINSATZ MIT CNNs (CONVOLUATIONAL NEURAL NETWORKS)
DE112011104644T5 (de) Mobiles Roboter-System
DE69634221T2 (de) Verfahren und Gerät zur Verarbeitung visueller Information
CN108496127A (zh) 集中于对象的有效三维重构
WO2019020794A1 (de) Magnetometer für die roboternavigation
Nagasawa et al. Model-based analysis of multi-UAV path planning for surveying postdisaster building damage
DE102017100622A1 (de) Vorrichtungen und Verfahren zum Korrigieren von Ausrichtungsinformationen von einem oder mehreren Trägheitssensoren
DE202021102687U1 (de) Elektronisches Gerät zum Anzeigen von Bildern auf einem flexiblen Display
DE102021207269A1 (de) Verfahren und system zum erlernen von perturbationsmengen beim maschinenlernen
Sankar et al. ROS-based human detection and tracking from a wireless controlled mobile robot using kinect
DE102019120561A1 (de) System und verfahren zur automatischen relokalisierung und automatischen angleichung vorhandener nichtdigitaler grundrisspläne
Zhang et al. A machine learning method for vision-based unmanned aerial vehicle systems to understand unknown environments
CN108367436A (zh) 针对三维空间中的物体位置和范围的主动相机移动确定
Vega et al. Open vision system for low-cost robotics education
DE102020134344A1 (de) Affordanzbewusstes freiformobjekt-manipulationsplanen mit mehrfacher auflösung
DE102022210129A1 (de) Bildverarbeitung über isotonische faltungs-neuronalnetze
Akilandeswari et al. Design and development of an indoor navigation system using denoising autoencoder based convolutional neural network for visually impaired people
Ariyanto et al. Teleoperated locomotion for biobot between Japan and Bangladesh
Lemus et al. SLAM-R algorithm of simultaneous localization and mapping using RFID for obstacle location and recognition
DE102021206075A1 (de) Fahrzeuglokalisierung als Mitfahrgelegenheit und Insassenidentifikation für autonome Fahrzeuge
DE102018123543A1 (de) Robotersysteme, die cloud-service-systeme enthalten
Tanwar et al. Designing obstacle’s map of an unknown place using autonomous drone navigation and web services

Legal Events

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