US-Patent für Methode zum Erstellen einer Karte während der Ausführung von Arbeiten (Patent Nr. 11.656.082, erteilt am 23. Mai 2023) (2023)

QUERVERWEIS AUF VERWANDTE ANWENDUNGEN

Diese Anmeldung ist eine Fortsetzung der nicht vorläufigen US-Patentanmeldung mit der Seriennr. Nr. 17/581,497, eingereicht am 21. Januar 2022, bei der es sich um eine Fortsetzung der nicht vorläufigen US-Patentanmeldung mit der Seriennummer 17/581.497 handelt. Nr. 16/724.328, eingereicht am 22. Dezember 2019, bei der es sich um eine Fortsetzung in einem Teil der nicht vorläufigen U.S.-Anmeldung mit der Seriennummer 16/724.328 handelt. Nr. 16/597,945, eingereicht am 10. Oktober 2019, die Fortsetzung der nicht vorläufigen U.S.-Anmeldung Ser.-Nr. Nr. 16/163.562, eingereicht am 17. Oktober 2018, die den Vorteil der vorläufigen US-Patentanmeldung Nr. 62/573.591, eingereicht am 17. Oktober 2017, beansprucht; 62/637.185, eingereicht am 1. März 2018; 62/613.005, eingereicht am 2. Januar 2018; 62/599.216, eingereicht am 15. Dezember 2017; 62/573.579, eingereicht am 17. Oktober 2017; 62/637.156, eingereicht am 1. März 2018; 62/740.558, eingereicht am 3. Oktober 2018; 62/573.598, eingereicht am 17. Oktober 2017; 62/591.217, eingereicht am 28. November 2017; 62/616.928, eingereicht am 12. Januar 2018; 62/614.449, eingereicht am 7. Januar 2018; 62/590.205, eingereicht am 22. November 2017; 62/666.266, eingereicht am 3. Mai 2018; US-Pat. Nr. 62.661.802, eingereicht am 24. April 2018; 62/631.050, eingereicht am 15. Februar 2018; 62/746.688, eingereicht am 17. Oktober 2018; 62/740.573, eingereicht am 3. Oktober 2018; und 62/740.580, eingereicht am 3. Oktober 2018; 62/640.444, eingereicht am 8. März 2018; 62/648.026, eingereicht am 26. März 2018; 62/655.494, eingereicht am 10. April 2018; 62/665.095, eingereicht am 1. Mai 2018; 62/674.173, eingereicht am 21. Mai 2018; 62/688,497, eingereicht am 22. Juni 2018, die jeweils hiermit durch Bezugnahme einbezogen werden. U.S. Non-Provisional Application Ser.-Nr. Nr. 16/597,945 beansprucht die Vorteile der vorläufigen US-Patentanmeldungen Nr. 62/914,190, eingereicht am 11. Oktober 2019; 62/933.882, eingereicht am 11. November 2019; 62/942.237, eingereicht am 2. Dezember 2019; 62/952.376, eingereicht am 22. Dezember 2019; und 62/952.384, eingereicht am 22. Dezember 2019, die jeweils hiermit durch Bezugnahme aufgenommen werden.

In dieses Patent wurden bestimmte US-Patente, US-Patentanmeldungen oder andere Materialien (z. B. Artikel) durch Bezugnahme einbezogen. Insbesondere die US-Patentanmeldung Ser. Nr. 15/272.752, 15/949.708, 16/277.991, 16/048.179, 16/048.185, 16/163.541, 16/163.562, 16/163.508, 16/185.000, 16/051.328 , 15/449.660, 16/041.286, 16/422.234, 15/406.890, 14/673.633, 15/676.888, 16/163.530, 16/297.508, 16/418.988, 15/614.284, 15/955.480, 15/425.130, 1 5/955.344, 15/243.783, 15/ 954.335, 15/954.410, 15/257.798, 15/674.310, 15/224.442, 15/683.255, 15/048.827, 14/817.952, 15/619.449, 16/198.393, 15/9 81.643, 15/986.670, 15/447.623, 15/951.096, 16/270.489, 16/130.880, 14/948.620, 16/239.410, 16/230.805, 15/447.122, 16/393.921, 16/389.797, 16/509.099, 1 6/389.797, 16/427.317, 62/ 208.791 und 16/109.617 werden hiermit durch Bezugnahme aufgenommen. Der Text solcher US-Patente, US-Patentanmeldungen und anderer Materialien wird jedoch nur durch Bezugnahme einbezogen, soweit kein Konflikt zwischen diesem Material und den hier dargelegten Aussagen und Zeichnungen besteht. Im Falle eines solchen Konflikts ist der Text des vorliegenden Dokuments maßgebend, und die Begriffe in diesem Dokument sollten aufgrund der Art und Weise, wie diese Begriffe in anderen durch Verweis einbezogenen Materialien verwendet werden, nicht enger ausgelegt werden.

GEBIET DER OFFENLEGUNG

Die Offenbarung bezieht sich auf autonome Roboter.

HINTERGRUND

Autonome oder halbautonome Robotergeräte werden zunehmend in Privathaushalten und Gewerbebetrieben eingesetzt. Zu diesen Geräten können Roboterstaubsauger, Rasenmäher, Wischmopps oder andere ähnliche Geräte gehören. Um autonom oder mit minimaler (oder weniger als vollständig manueller) Eingabe und/oder externer Steuerung innerhalb einer Arbeitsumgebung zu arbeiten, können Kartierungs-, Lokalisierungs- und Pfadplanungsmethoden so sein, dass Robotergeräte autonom eine Karte der Arbeitsumgebung erstellen können. Anschließend nutzen Sie die Karte zur Navigation und entwickeln intelligente Pfad- und Aufgabenpläne für eine effiziente Navigation und Aufgabenerledigung.

ZUSAMMENFASSUNG

Im Folgenden wird eine vereinfachte Zusammenfassung einiger Ausführungsformen der hier beschriebenen Techniken präsentiert, um ein grundlegendes Verständnis der Erfindung zu vermitteln. Diese Zusammenfassung ist kein umfassender Überblick über die Erfindung. Es ist nicht beabsichtigt, Schlüsselelemente der Erfindung zu identifizieren oder den Umfang der Erfindung abzugrenzen. Ihr einziger Zweck besteht darin, einige Ausführungsformen der Erfindung in vereinfachter Form als Einleitung für die detailliertere Beschreibung im Folgenden darzustellen.

Einige Aspekte umfassen ein Verfahren für ein greifbares, nichtflüchtiges, maschinenlesbares Medium, auf dem Anweisungen gespeichert werden, die, wenn sie von einem Prozessor eines Roboters ausgeführt werden, Vorgänge auslösen, darunter: Erfassen erster Daten mit mindestens einem Sensor aus mehreren mit dem Roboter verbundenen Sensoren wird zur Angabe einer Position des Roboters in Bezug auf einen Arbeitsbereich und Objekte innerhalb des Arbeitsbereichs verwendet; Erfassen zweiter Daten, die die Bewegung des Roboters anzeigen, mit mindestens einem der mehreren Sensoren, die mit dem Roboter verbunden sind; Erkennen, mit dem Prozessor des Roboters, eines ersten Bereichs des Arbeitsbereichs basierend auf mindestens einem von: einem ersten Teil der ersten Daten und einem ersten Teil der zweiten Daten; Erzeugen, mit dem Prozessor des Roboters, eines ersten Bewegungspfads, der zumindest einen Teil des ersten erkannten Bereichs des Arbeitsbereichs abdeckt; Ansteuern des Roboters, sich entlang des ersten Bewegungspfads zu bewegen, mit dem Prozessor des Roboters; und Erzeugen, mit dem Prozessor des Roboters, einer Karte des Arbeitsbereichs basierend auf mindestens einem von: den ersten Daten und den zweiten Daten; wobei: das Ansteuern des Roboters, sich entlang des ersten Bewegungspfads zu bewegen, mindestens eine sich wiederholende Wiederholung von Folgendem umfasst: Ansteuern, mit dem Prozessor des Roboters, des Roboters, um ein erstes lineares Segment zu überqueren; Betätigen des Roboters mit dem Prozessor des Roboters, um sich in einer ersten Drehung um 180 Grad zu drehen, die das Überqueren einer ersten Strecke in einer Richtung senkrecht zum ersten linearen Segment nach dem Beginn der ersten Drehung und vor dem Beenden der ersten Drehung umfasst; Betätigen des Roboters mit dem Prozessor des Roboters, um ein zweites lineares Segment parallel zum ersten linearen Segment zu überqueren; und Betätigen des Roboters mit dem Prozessor des Roboters, um sich in einer zweiten Drehung um 180 Grad zu drehen, die das Überqueren einer zweiten Strecke in einer Richtung senkrecht zum zweiten linearen Segment nach Beginn der zweiten Drehung und vor Beendigung der zweiten Drehung umfasst; Der Roboter ist mit einer Anwendung eines Benutzergeräts gekoppelt, die so konfiguriert ist, dass sie: die Karte des Arbeitsbereichs anzeigt, einschließlich Trennlinien, die die Karte in Unterbereiche unterteilen; und mindestens eine Benutzereingabe zu empfangen, die eine Hinzufügung, eine Änderung oder eine Löschung eines Teilers in der Karte angibt; eine Hinzufügung, eine Änderung oder eine Löschung eines Namens eines Teilgebiets innerhalb der Karte; und einen Zeitplan für den Roboter, um Arbeiten in mindestens einem Teilbereich auszuführen; und der Prozessor des Roboters oder die Anwendung des Benutzergeräts unterteilt die Karte mithilfe von Teilern in Teilbereiche.

Einige Aspekte umfassen ein Verfahren zum Kartieren und Abdecken eines Arbeitsbereichs, einschließlich: Erfassen erster Daten mit mindestens einem Sensor aus mehreren an einen Roboter gekoppelten Sensoren, die zur Angabe einer Position des Roboters in Bezug auf einen Arbeitsbereich und Objekte darin verwendet werden der Arbeitsbereich; Erfassen zweiter Daten, die die Bewegung des Roboters anzeigen, mit mindestens einem der mehreren Sensoren, die mit dem Roboter verbunden sind; Erkennen, mit einem Prozessor des Roboters, eines ersten Bereichs des Arbeitsbereichs basierend auf mindestens einem von: einem ersten Teil der ersten Daten und einem ersten Teil der zweiten Daten; Erzeugen, mit dem Prozessor des Roboters, eines ersten Bewegungspfads, der zumindest einen Teil des ersten erkannten Bereichs des Arbeitsbereichs abdeckt; Ansteuern des Roboters, sich entlang des ersten Bewegungspfads zu bewegen, mit dem Prozessor des Roboters; Erzeugen, mit dem Prozessor des Roboters, einer Karte des Arbeitsbereichs basierend auf mindestens einem von: den ersten Daten und den zweiten Daten; wobei: der Roboter mit einer Anwendung eines Benutzergeräts gekoppelt ist; ein zweiter Roboter wird mit der Anwendung des Benutzergeräts gekoppelt; der Roboter führt eine erste Reinigungsaufgabe innerhalb des Arbeitsbereichs aus; der zweite Roboter führt eine zweite Reinigungsaufgabe innerhalb des Arbeitsbereichs aus, nachdem der Roboter die erste Reinigungsaufgabe abgeschlossen hat; und die Anwendung des Benutzergeräts ist zum Anzeigen der Karte konfiguriert.

Einige Aspekte umfassen ein Verfahren, bei dem es sich um ein greifbares, nichtflüchtiges, maschinenlesbares Medium handelt, das Anweisungen speichert, die, wenn sie von einem Prozessor eines Roboters ausgeführt werden, Vorgänge auslösen, einschließlich: Erfassen der ersten verwendeten Daten mit mindestens einem Sensor aus mehreren mit dem Roboter verbundenen Sensoren beim Angeben einer Position des Roboters in Bezug auf den Arbeitsbereich und Objekte innerhalb des Arbeitsbereichs; Erfassen zweiter Daten, die die Bewegung des Roboters anzeigen, mit mindestens einem der mehreren Sensoren, die mit dem Roboter verbunden sind; Erkennen, mit dem Prozessor des Roboters, eines ersten Bereichs des Arbeitsbereichs basierend auf mindestens einem von: einem ersten Teil der ersten Daten und einem ersten Teil der zweiten Daten; Erzeugen, mit dem Prozessor des Roboters, eines ersten Bewegungspfads, der zumindest einen Teil des ersten erkannten Bereichs des Arbeitsbereichs abdeckt; und Ansteuern des Roboters, sich entlang des ersten Bewegungspfads zu bewegen, mit dem Prozessor des Roboters; Überwachen, mit dem Prozessor des Roboters, einer Batterieladung einer Batterie des Roboters; Ansteuern, mit dem Prozessor des Roboters, dass der Roboter während einer Reinigungsaufgabe zu einer Ladestation zurückkehrt, um die Batterie des Roboters aufzuladen, wenn die Batterieladung unter einem vorbestimmten Schwellenwert liegt, und die Reinigungsaufgabe dort fortzusetzen, wo der Roboter nach dem Aufladen aufgehört hat die Batterie; Bestimmen, mit dem Prozessor des Roboters, eines Objekttyps des angetroffenen Objekts basierend auf den ersten Daten, wobei die möglichen Objekttypen Schnüre, Kleidungsstücke, Socken, Schuhe, Fäkalien und Kopfhörer umfassen; Erzeugen, mit dem Prozessor des Roboters, einer Karte des Arbeitsbereichs basierend auf mindestens einem von: den ersten Daten und den zweiten Daten; und Speichern der Karte mit dem Prozessor des Roboters in einem Speicher, auf den der Prozessor des Roboters zugreifen kann.

Einige Aspekte umfassen ein System, einschließlich: eines Roboters, einschließlich: eines Antriebsmotors, der so konfiguriert ist, dass er die Bewegung des Roboters auslöst; eine Vielzahl von Sensoren, die mit dem Roboter verbunden sind; ein Prozessor; und Speicher, der Anweisungen speichert, die bei Ausführung durch den Prozessor Vorgänge bewirken, darunter: Erfassen einer ersten Folge von Messwerten eines ersten Datentyps in einer ersten Iteration eines iterativen Prozesses mit einem an den Roboter gekoppelten ersten Sensor; Erfassen, mit einem zweiten, an den Roboter gekoppelten Sensor, in einer ersten Iteration eines iterativen Prozesses, einer ersten Folge von Messwerten eines zweiten Datentyps, wobei der zweite Datentyp die Bewegung des Roboters anzeigt; Erzeugen, mit dem Prozessor des Roboters, einer Karte des Arbeitsbereichs basierend auf mindestens einem von: Daten des ersten Datentyps und Daten des zweiten Datentyps; Erkennen, mit dem Prozessor des Roboters, eines ersten bearbeitbaren Bereichs des Arbeitsbereichs, basierend auf zumindest Messwerten des ersten Datentyps, die bis zu einer aktuellen Iteration erfasst wurden; Erzeugen, mit dem Prozessor des Roboters, eines ersten Bewegungspfads, der zumindest einen Teil des ersten bearbeitbaren Bereichs abdeckt; Ansteuern des Roboters mit dem Prozessor des Roboters, um Arbeit auszuführen, während er entlang des ersten Bewegungspfads navigiert, wobei das Navigieren entlang des ersten Bewegungspfads eine Wiederholung von Folgendem umfasst: Ansteuern des Roboters mit dem Prozessor des Roboters, um lineare Segmente parallel zu überqueren zueinander; Bestimmen, mit dem Prozessor des Roboters, Bereiche des Arbeitsbereichs, in denen Arbeit ausgeführt wurde, und Bereiche des Arbeitsbereichs, in denen noch Arbeit ausgeführt werden muss, während gleichzeitig Arbeit in einer aktuellen Arbeitssitzung ausgeführt wird; Ansteuern, mit dem Prozessor des Roboters, des Roboters, um ein Objekt auf einer Fahrfläche zu manövrieren, auf die der Roboter während der aktuellen Arbeitssitzung trifft, indem ein geplanter Bewegungspfad angepasst wird, um um das Objekt herum zu manövrieren und dann entlang des geplanten Bewegungspfads fortzufahren; Bestimmen, mit dem Prozessor des Roboters, eines Objekttyps des angetroffenen Objekts basierend auf Messwerten des ersten Datentyps, wobei die möglichen Objekttypen Schnüre, Kleidungsstücke, Socken, Schuhe, Fäkalien und Kopfhörer umfassen; Speichern der Karte mit dem Prozessor des Roboters in einem Speicher, auf den der Prozessor in nachfolgenden Arbeitssitzungen zugreifen kann; Überwachen, mit dem Prozessor des Roboters, einer Batterieladung einer Batterie des Roboters; Ansteuern, mit dem Prozessor des Roboters, dass der Roboter während einer Reinigungsaufgabe zu einer Ladestation zurückkehrt, um die Batterie des Roboters aufzuladen, wenn die Batterieladung unter einem vorbestimmten Schwellenwert liegt, und die Reinigungsaufgabe dort fortzusetzen, wo der Roboter nach dem Aufladen aufgehört hat die Batterie; und Verfolgen, mit dem Prozessor des Roboters, einer voreingestellten Konfiguration zum Entleeren des Behälters des Roboters, wobei: der Roboter den Behälter des Roboters basierend auf der voreingestellten Konfiguration in den Behälter der Ladestation entleert; und die voreingestellte Konfiguration umfasst ein voreingestelltes Abfallvolumen im Behälter des Roboters; und eine Anwendung eines mit dem Roboter gekoppelten Smartphones, die so konfiguriert ist, dass sie: die Menge der gereinigten Gesamtfläche anzeigt; eine Gesamtfläche, die nach Abschluss einer Arbeitssitzung gereinigt wird; ein Batteriestand; eine Reinigungsdauer; eine geschätzte Reinigungsdauer, die zum Reinigen des Arbeitsbereichs oder eines Teilbereichs des Arbeitsbereichs erforderlich ist; Objekt und Objekttyp des Objekts; eine Reinigungshistorie; und Firmware-Informationen; und mindestens eine Eingabe zu empfangen, die eine Hinzufügung, eine Änderung oder eine Löschung eines Teilers innerhalb der Karte angibt; eine Saugstufe zur Nutzung innerhalb eines Teilbereichs; eine Zutrittsverbotszone; ein Löschen oder Hinzufügen eines mit der Anwendung gekoppelten Roboters; eine Anweisung, den Roboter zu finden; eine Anweisung, den Kundendienst zu kontaktieren; ein Name oder Objekttyp eines zugeordneten Objekts; eine Anweisung für den Roboter, einen Behälter des Roboters in einen Behälter einer Ladestation zu leeren; eine Anweisung für den Roboter, an der Ladestation anzudocken; eine Anweisung, mit der Reinigung zu beginnen; eine Anweisung zum Reinigen des Arbeitsbereichs oder eines Teilbereichs des Arbeitsbereichs; eine Art der Abdeckung innerhalb des Arbeitsbereichs oder eines Teilbereichs des Arbeitsbereichs; ein Reinigungsplan des Roboters innerhalb des Arbeitsbereichs oder eines Teilbereichs des Arbeitsbereichs; eine Hinzufügung, eine Änderung, eine Löschung eines Namens eines Teilgebiets innerhalb der Karte; und eine Anweisung für den Roboter, einen Bereich in unmittelbarer Nähe eines besonders gekennzeichneten Objekts zu reinigen; und wobei: der Prozessor des Roboters oder die Anwendung des Smartphones die Karte des Arbeitsbereichs mithilfe von Teilern in Teilbereiche unterteilt; der Roboter umfasst außerdem einen Behälter zum Sammeln von Staub; der Behälter des Roboters umfasst einen ersten Mechanismus zum manuellen Entleeren des Behälters des Roboters und einen zweiten Mechanismus zum automatischen Entleeren des Behälters des Roboters in einen zweiten Behälter über einen Luftweg vom ersten Behälter zum zweiten Behälter; eine Ladestation des Roboters beherbergt den zweiten Behälter; Der Roboter lädt seinen Akku auf, nachdem er den Behälter des Roboters geleert hat oder gleichzeitig, während er den Behälter des Roboters leert. und der erste Mechanismus wird verwendet, um den Behälter des Roboters vom Roboter zu entfernen.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

FIG.1A und1Bveranschaulichen ein Beispiel eines Roboters gemäß einigen Ausführungsformen.

FEIGE.2veranschaulicht ein Beispiel einer Unterseite eines Reinigungsroboters gemäß einigen Ausführungsformen.

FIG.3A-3G und4A-4Cveranschaulichen ein Beispiel eines Roboters gemäß einigen Ausführungsformen.

FIG.5A-5Fveranschaulichen ein Beispiel eines Roboters und einer Ladestation gemäß einigen Ausführungsformen.

FIG.6A-6ICHveranschaulichen ein Beispiel eines Roboters und einer Ladestation gemäß einigen Ausführungsformen.

FIG.7A-7Fveranschaulichen Beispiele für periphere Bürsten eines Roboters gemäß einigen Ausführungsformen.

FIG.8A-8Dveranschaulichen Beispiele für verschiedene Positionen und Ausrichtungen von Bodensensoren gemäß einigen Ausführungsformen.

FIG.9A und9Bveranschaulichen Beispiele für verschiedene Positionen und Typen von Bodensensoren gemäß einigen Ausführungsformen.

FEIGE.10veranschaulicht ein Beispiel einer Unterseite eines Reinigungsroboters gemäß einigen Ausführungsformen.

FEIGE.11veranschaulicht ein Beispiel einer Unterseite eines Reinigungsroboters gemäß einigen Ausführungsformen.

FEIGE.12veranschaulicht ein Beispiel einer Unterseite eines Reinigungsroboters gemäß einigen Ausführungsformen.

FIG.13A-13Hveranschaulichen ein Beispiel eines Bürstenfachs gemäß einigen Ausführungsformen.

FIG.14A und14Bveranschaulichen ein Beispiel eines Bürstenfachs gemäß einigen Ausführungsformen.

FIG.15A-15Cveranschaulichen ein Beispiel eines Roboters und einer Ladestation gemäß einigen Ausführungsformen.

FIG.16A und16Bveranschaulichen ein Beispiel eines Wischroboters gemäß einigen Ausführungsformen.

FEIGE.17veranschaulicht ein Beispiel einer mehrdimensionalen Karte gemäß einigen Ausführungsformen.

FEIGE.18veranschaulicht das Ersetzen eines Werts eines Messwerts durch einen Durchschnitt der Werte benachbarter Messwerte gemäß einigen Ausführungsformen.

FIG.19A-19Cveranschaulichen das Generieren einer Karte aus einer Teilmenge gemessener Punkte gemäß einigen Ausführungsformen.

FEIGE.20Azeigt den Roboter, der gemäß einigen Ausführungsformen im Zeitverlauf dieselbe Teilmenge von Punkten misst.

FEIGE.20Bzeigt, wie der Roboter gemäß einigen Ausführungsformen eine einzelne Besonderheit als zwei Besonderheiten identifiziert.

FEIGE.21veranschaulicht einen Pfad des Roboters gemäß einigen Ausführungsformen.

FIG.22A-22Dveranschaulichen ein Beispiel für die Bestimmung eines Umfangs gemäß einigen Ausführungsformen.

FEIGE.23veranschaulicht Beispiele von Umfangsmustern gemäß einigen Ausführungsformen.

FIG.24A und24Bveranschaulichen, wie ein überlappender Bereich in einigen Ausführungsformen mithilfe von rohen Pixelintensitätsdaten und der Kombination von Daten an überlappenden Punkten erkannt wird.

FIG.25A-25Cveranschaulichen, wie ein überlappender Bereich in einigen Ausführungsformen mithilfe von rohen Pixelintensitätsdaten und der Kombination von Daten an überlappenden Punkten erkannt wird.

FIG.26A und26Bgemäß einigen Ausführungsformen ein 2D-Kartensegment veranschaulichen, das aus Tiefenmessungen erstellt wurde, die innerhalb eines ersten Sichtfelds durchgeführt wurden.

FEIGE.27Azeigt ein Robotergerät mit montierter Kamera, das gemäß einigen Ausführungsformen mit der Ausführung von Arbeiten in einem ersten erkannten Bereich der Arbeitsumgebung beginnt.

FIG.27B und27Cgemäß einigen Ausführungsformen ein 2D-Kartensegment veranschaulichen, das aus Tiefenmessungen erstellt wurde, die in mehreren überlappenden aufeinanderfolgenden Sichtfeldern durchgeführt wurden.

FIG.28A und28Bveranschaulichen, wie gemäß einigen Ausführungsformen ein Segment einer 2D-Karte aus Tiefenmessungen erstellt wird, die in zwei überlappenden aufeinanderfolgenden Sichtfeldern durchgeführt werden.

FIG.29A und29Bgemäß einigen Ausführungsformen ein 2D-Kartensegment veranschaulichen, das aus Tiefenmessungen erstellt wurde, die in zwei überlappenden aufeinanderfolgenden Sichtfeldern durchgeführt wurden.

FEIGE.30stellt eine vollständige 2D-Karte dar, die gemäß einigen Ausführungsformen aus Tiefenmessungen erstellt wurde, die in aufeinanderfolgenden überlappenden Sichtfeldern durchgeführt wurden.

FIG.31A und31Bveranschaulichen ein Robotergerät, das sich gemäß einigen Ausführungsformen neu positioniert, um die Umgebung besser beobachten zu können.

FEIGE.32veranschaulicht eine Karte eines Robotergeräts für alternative Lokalisierungsszenarien gemäß einigen Ausführungsformen.

FIG.33A-33F und34A-34Dveranschaulichen ein Boustrophedon-Bewegungsmuster, das gemäß einigen Ausführungsformen von einem Robotergerät ausgeführt werden kann, während es die Umgebung kartiert.

FEIGE.35veranschaulicht ein Flussdiagramm, das ein Beispiel für ein Verfahren zum Ermitteln der Grenze einer Umgebung gemäß einigen Ausführungsformen beschreibt.

FIG.36A und36Bgemäß einigen Ausführungsformen ein Beispiel einer Karte einer Umgebung veranschaulichen.

FIG.37A-37D,38A-38C, und39veranschaulichen ein Beispiel für die Annäherung an einen Umfang gemäß einigen Ausführungsformen.

FIG.40,41A und41Bveranschaulichen ein Beispiel für die Anpassung einer Linie an Datenpunkte gemäß einigen Ausführungsformen.

FEIGE.42veranschaulicht ein Beispiel für Cluster gemäß einigen Ausführungsformen.

FEIGE.43veranschaulicht ein Beispiel für ein Ähnlichkeitsmaß gemäß einigen Ausführungsformen.

FIG.44,45A-45C,46A und46BBeispiele für Clustering gemäß einigen Ausführungsformen veranschaulichen.

FIG.47A und47Bgemäß einigen Ausführungsformen Datenpunkte veranschaulichen, die aus zwei unterschiedlichen Sichtfeldern beobachtet wurden.

FEIGE.48veranschaulicht die Verwendung eines Bewegungsfilters gemäß einigen Ausführungsformen.

FIG.49A und49Bgemäß einigen Ausführungsformen die vertikale Ausrichtung von Bildern veranschaulichen.

FEIGE.50veranschaulicht die Überlappung von Daten an Perimetern gemäß einigen Ausführungsformen.

FEIGE.51veranschaulicht die Überlappung von Daten gemäß einigen Ausführungsformen.

FEIGE.52veranschaulicht das Fehlen einer Überlappung zwischen Daten gemäß einigen Ausführungsformen.

FEIGE.53veranschaulicht einen Weg eines Roboters und die auftretende Überlappung gemäß einigen Ausführungsformen.

FEIGE.54veranschaulicht die resultierende räumliche Darstellung basierend auf dem Pfad inFEIGE.53, gemäß einigen Ausführungsformen.

FEIGE.55veranschaulicht die räumliche Darstellung, die sich aufgrund des Pfades nicht ergibtFEIGE.53, gemäß einigen Ausführungsformen.

FEIGE.56veranschaulicht einen Bewegungspfad eines Roboters gemäß einigen Ausführungsformen.

FIG.57-59veranschaulichen einen Sensor eines Roboters, der die Umgebung beobachtet, gemäß einigen Ausführungsformen.

FEIGE.60stellt gemäß einigen Ausführungsformen einen falsch vorhergesagten Umfang dar.

FEIGE.61veranschaulicht ein Beispiel einer Verbindung zwischen einem Anfang und einem Ende einer Sequenz gemäß einigen Ausführungsformen.

FEIGE.62Averanschaulicht ein Beispiel einer anfänglichen Phasenraumwahrscheinlichkeitsdichte eines Robotergeräts gemäß einigen Ausführungsformen.

FIG.62B-62DBeispiele für die zeitliche Entwicklung der Phasenraum-Wahrscheinlichkeitsdichte gemäß einigen Ausführungsformen veranschaulichen.

FIG.63A-63Dveranschaulichen Beispiele für Anfangsphasenraum-Wahrscheinlichkeitsverteilungen gemäß einigen Ausführungsformen.

FIG.64A und64Bveranschaulichen Beispiele für Beobachtungswahrscheinlichkeitsverteilungen gemäß einigen Ausführungsformen.

FEIGE.65veranschaulicht ein Beispiel einer Karte einer Umgebung gemäß einigen Ausführungsformen.

FIG.66A-66Cveranschaulichen ein Beispiel für eine Entwicklung einer auf q reduzierten Wahrscheinlichkeitsdichte1,Q2Raum zu drei verschiedenen Zeitpunkten, gemäß einigen Ausführungsformen.

FIG.67A-67Cveranschaulichen ein Beispiel für die Entwicklung einer auf p reduzierten Wahrscheinlichkeitsdichte1,Q1Raum zu drei verschiedenen Zeitpunkten, gemäß einigen Ausführungsformen.

FIG.68A-68Cveranschaulichen ein Beispiel für die Entwicklung einer auf p reduzierten Wahrscheinlichkeitsdichte2,Q2Raum zu drei verschiedenen Zeitpunkten, gemäß einigen Ausführungsformen.

FEIGE.69veranschaulicht ein Beispiel einer Karte, die Bodentypen angibt, gemäß einigen Ausführungsformen.

FEIGE.70veranschaulicht ein Beispiel einer aktualisierten Wahrscheinlichkeitsdichte nach Beobachtung des Bodentyps gemäß einigen Ausführungsformen.

FEIGE.71veranschaulicht ein Beispiel einer Wi-Fi-Karte gemäß einigen Ausführungsformen.

FEIGE.72veranschaulicht ein Beispiel einer aktualisierten Wahrscheinlichkeitsdichte nach Beobachtung der WLAN-Stärke gemäß einigen Ausführungsformen.

FEIGE.73veranschaulicht ein Beispiel einer Wandabstandskarte gemäß einigen Ausführungsformen.

FEIGE.74veranschaulicht ein Beispiel einer aktualisierten Wahrscheinlichkeitsdichte nach Beobachtung von Abständen zu einer Wand gemäß einigen Ausführungsformen.

FIG.75-78veranschaulichen ein Beispiel einer Entwicklung einer Wahrscheinlichkeitsdichte einer Position eines Robotergeräts, während es sich bewegt und Türen beobachtet, gemäß einigen Ausführungsformen.

FEIGE.79veranschaulicht ein Beispiel einer Geschwindigkeitsbeobachtungs-Wahrscheinlichkeitsdichte gemäß einigen Ausführungsformen.

FEIGE.80veranschaulicht ein Beispiel einer Straßenkarte gemäß einigen Ausführungsformen.

FIG.81A-81Dveranschaulichen ein Beispiel eines Wellenpakets gemäß einigen Ausführungsformen.

FIG.82A-82EVeranschaulichen Sie ein Beispiel für die Entwicklung einer Wellenfunktion in einem Positions- und Impulsraum mit beobachtetem Impuls gemäß einigen Ausführungsformen.

FIG.83A-83EVeranschaulichen Sie ein Beispiel für die Entwicklung einer Wellenfunktion in einem Positions- und Impulsraum mit beobachtetem Impuls gemäß einigen Ausführungsformen.

FIG.84A-84EVeranschaulichen Sie ein Beispiel für die Entwicklung einer Wellenfunktion in einem Positions- und Impulsraum mit beobachtetem Impuls gemäß einigen Ausführungsformen.

FIG.85A-85EVeranschaulichen Sie ein Beispiel für die Entwicklung einer Wellenfunktion in einem Positions- und Impulsraum mit beobachtetem Impuls gemäß einigen Ausführungsformen.

FIG.86A und86Bveranschaulichen ein Beispiel einer anfänglichen Wellenfunktion eines Zustands eines Robotergeräts gemäß einigen Ausführungsformen.

FIG.87A und87BVeranschaulichen Sie ein Beispiel einer Wellenfunktion eines Zustands eines Robotergeräts nach Beobachtungen gemäß einigen Ausführungsformen.

FIG.88A und88Bveranschaulichen ein Beispiel einer entwickelten Wellenfunktion eines Zustands eines Robotergeräts gemäß einigen Ausführungsformen.

FIG.89A,89B,90A-90Hand91A-91FVeranschaulichen Sie ein Beispiel einer Wellenfunktion eines Zustands eines Robotergeräts nach Beobachtungen gemäß einigen Ausführungsformen.

FIG.92A,92B,93A, und93Bgemäß einigen Ausführungsformen Punktwolken veranschaulichen, die Wände in der Umgebung darstellen.

FEIGE.94veranschaulicht die Samenlokalisierung gemäß einigen Ausführungsformen.

FIG.95A und95Bveranschaulichen Beispiele für Überlappungen zwischen möglichen Standorten des Roboters gemäß einigen Ausführungsformen.

FEIGE.96stellt gemäß einigen Ausführungsformen eine Karte dar.

FIG.97A und97Bgemäß einigen Ausführungsformen einen Weg eines Roboters veranschaulichen.

FIG.98A-98Egemäß einigen Ausführungsformen einen Weg eines Roboters veranschaulichen.

FIG.99A-99Cveranschaulichen ein Beispiel der EKF-Ausgabe gemäß einigen Ausführungsformen.

FIG.100Und101veranschaulichen ein Beispiel eines Abdeckungsbereichs gemäß einigen Ausführungsformen.

FEIGE.102veranschaulicht ein Beispiel eines polymorphen Pfads gemäß einigen Ausführungsformen.

FIG.103Und104veranschaulichen ein Beispiel eines befahrbaren Pfads eines Roboters gemäß einigen Ausführungsformen.

FEIGE.105veranschaulicht ein Beispiel eines nicht begehbaren Pfads eines Roboters gemäß einigen Ausführungsformen.

FEIGE.106veranschaulicht ein Beispiel eines überquerbaren Pfads eines Roboters gemäß einigen Ausführungsformen.

FEIGE.107veranschaulicht Bereiche, die gemäß einigen Ausführungsformen von einem Roboter durchquert werden können.

FEIGE.108stellt gemäß einigen Ausführungsformen Bereiche dar, die von einem Roboter nicht befahren werden können.

FIG.109A-109D,110A,110B,111A, und111BVeranschaulichen Sie gemäß einigen Ausführungsformen, wie sich das Risikoniveau von Bereichen mit Sensormessungen ändert.

FEIGE.112Averanschaulicht ein Beispiel einer kartesischen Ebene, die gemäß einigen Ausführungsformen zum Markieren der Durchquerbarkeit von Bereichen verwendet wird.

FEIGE.112Bveranschaulicht ein Beispiel einer Durchquerbarkeitskarte gemäß einigen Ausführungsformen.

FIG.113A-113Everanschaulichen ein Beispiel einer Pfadplanung gemäß einigen Ausführungsformen.

FIG.114A-114Dveranschaulichen ein Beispiel für kollaborierende Roboter gemäß einigen Ausführungsformen.

FEIGE.115veranschaulicht ein Beispiel für CAIT gemäß einigen Ausführungsformen.

FEIGE.116veranschaulicht ein Beispiel eines Heimnetzwerks gemäß einigen Ausführungsformen.

FIG.117A und117BBeispiele für Verbindungspfade von Geräten durch die Cloud gemäß einigen Ausführungsformen veranschaulichen.

FEIGE.118veranschaulicht ein Beispiel eines lokalen Verbindungspfads von Geräten gemäß einigen Ausführungsformen.

FEIGE.119veranschaulicht den direkten Verbindungspfad zwischen Geräten gemäß einigen Ausführungsformen.

FEIGE.120veranschaulicht ein Beispiel eines lokalen Verbindungspfads von Geräten gemäß einigen Ausführungsformen.

FIG.121A-121Cveranschaulichen ein Beispiel für Beobachtungen eines Roboters zu zwei Zeitpunkten gemäß einigen Ausführungsformen.

FEIGE.122veranschaulicht einen Bewegungspfad eines Roboters gemäß einigen Ausführungsformen.

FIG.123A und123BBeispiele für Flusspfade zum Hoch- und Herunterladen einer Karte gemäß einigen Ausführungsformen veranschaulichen.

FEIGE.124veranschaulicht die Verwendung von Cache-Speicher gemäß einigen Ausführungsformen.

FEIGE.125veranschaulicht die Leistung eines TSOP-Sensors unter verschiedenen Bedingungen.

FEIGE.126veranschaulicht ein Beispiel für Subsysteme eines Roboters gemäß einigen Ausführungsformen.

FEIGE.127veranschaulicht ein Beispiel eines Roboters gemäß einigen Ausführungsformen.

FEIGE.128Averanschaulicht eine Draufsicht einer beispielhaften Umgebung in einigen Anwendungsfällen gemäß einigen Ausführungsformen.

FEIGE.128Bveranschaulicht eine Draufsicht einer beispielhaften zweidimensionalen Karte der Umgebung, die von einem Prozessor eines Roboters gemäß einigen Ausführungsformen generiert wurde.

FEIGE.128Cveranschaulicht eine Draufsicht der angepassten, beispielhaften zweidimensionalen Karte des Arbeitsbereichs gemäß einigen Ausführungsformen.

FIG.129A und129Bveranschaulichen ein Beispiel für den Prozess des Anpassens von Umfangslinien einer Karte gemäß einigen Ausführungsformen.

FEIGE.130veranschaulicht ein Beispiel für einen Bewegungspfad eines Roboters gemäß einigen Ausführungsformen.

FEIGE.131veranschaulicht ein Beispiel eines Systems, das einen Benutzer benachrichtigt, bevor er an einem anderen Fahrzeug vorbeifährt, gemäß einigen Ausführungsformen.

FEIGE.132veranschaulicht ein Beispiel eines Protokolls während eines Firmware-Updates gemäß einigen Ausführungsformen.

FIG.133A-133Cveranschaulichen eine Anwendung eines Kommunikationsgeräts gepaart mit einem Roboter gemäß einigen Ausführungsformen.

FEIGE.134veranschaulicht ein Beispiel eines Computercodes zum Generieren eines Fehlerprotokolls gemäß einigen Ausführungsformen.

FEIGE.135veranschaulicht ein Beispiel einer Diagnosetestmethode für einen Roboter gemäß einigen Ausführungsformen.

FIG.136A-136Everanschaulichen ein Beispiel eines intelligenten Kühlschranks gemäß einigen Ausführungsformen.

FIG.137A-137Dveranschaulichen ein Beispiel eines Lebensmittellieferroboters gemäß einigen Ausführungsformen.

FIG.138A-138Cveranschaulichen ein Beispiel eines Krankenhausbettroboters gemäß einigen Ausführungsformen.

FIG.139A-139Dveranschaulichen ein Beispiel eines Reifenwechselroboters gemäß einigen Ausführungsformen.

FIG.140A-140Cveranschaulichen ein Beispiel eines Batteriewechselroboters gemäß einigen Ausführungsformen.

DETAILLIERTE BESCHREIBUNG EINIGER AUSFÜHRUNGSFORMEN

Die vorliegenden Erfindungen werden nun im Detail unter Bezugnahme auf einige Ausführungsformen beschrieben, die in den beigefügten Zeichnungen dargestellt sind. In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindungen zu ermöglichen. Für den Fachmann ist jedoch klar, dass die vorliegenden Erfindungen oder Teilmengen davon ohne einige oder alle dieser spezifischen Details in die Praxis umgesetzt werden können. In anderen Fällen wurden bekannte Prozessschritte und/oder Strukturen nicht im Detail beschrieben, um die vorliegenden Erfindungen nicht unnötig zu verschleiern. Darüber hinaus sollte betont werden, dass mehrere erfinderische Techniken beschrieben werden und Ausführungsformen nicht auf Systeme beschränkt sind, die alle diese Techniken implantieren, da verschiedene Kosten- und technische Kompromisse Systeme rechtfertigen können, die nur einen Teil der hier beschriebenen Vorteile bieten oder dies tun werden für den Durchschnittsfachmann offensichtlich sein.

In einigen Ausführungsformen kann ein Roboter ein oder mehrere autonome oder halbautonome Robotergeräte mit Kommunikations-, Mobilitäts-, Betätigungs- und/oder Verarbeitungselementen umfassen. In einigen Ausführungsformen umfasst ein Roboter ein Fahrzeug, beispielsweise ein Auto oder einen Lastwagen, mit einem Elektromotor. Beispielsweise kann der Roboter ein Elektroauto mit einem Elektromotor umfassen. In einigen Ausführungsformen umfasst ein Fahrzeug, beispielsweise ein Pkw oder Lkw, mit einem Elektromotor einen Roboter. Beispielsweise kann ein Elektroauto mit Elektromotor einen Roboter enthalten, der von einem Elektromotor angetrieben wird. In einigen Ausführungsformen kann ein Roboter Folgendes umfassen, ist aber nicht darauf beschränkt: ein Gehäuse, ein Fahrgestell einschließlich eines Radsatzes, einen Motor zum Antreiben der Räder und einen Empfänger, der Signale erfasst, die beispielsweise von einem übertragen werden Sendebake, ein Sender zum Übertragen von Signalen, ein Prozessor, ein Speicher, ein Controller, taktile Sensoren, Hindernissensoren, Netzwerk- oder drahtlose Kommunikation, Hochfrequenzkommunikation, Energiemanagement wie eine wiederaufladbare Batterie oder Solarpaneele oder Kraftstoff, eine oder mehrere Uhren oder Synchronisierungsgeräte, Temperatursensoren, Bildsensoren und mindestens ein Reinigungswerkzeug (z. B. Laufrad, Bürste, Mopp, Schrubber, Dampfwischer, Polierpad, UV-Sterilisator usw.). Der Prozessor kann beispielsweise Daten von internen oder externen Sensoren empfangen und verarbeiten, Befehle basierend auf empfangenen Daten ausführen, Motoren wie Radmotoren steuern, die Umgebung kartieren, den Roboter lokalisieren, die Aufteilung der Umgebung in Zonen bestimmen und Bewegungen bestimmen Wege. In einigen Ausführungsformen ist mindestens ein Teil der Sensoren des Roboters in einem Sensorarray bereitgestellt, wobei der mindestens eine Teil der Sensoren an einen flexiblen, halbflexiblen oder starren Rahmen gekoppelt ist. In einigen Ausführungsformen ist der Rahmen an einem Chassis oder Gehäuse des Roboters befestigt. In einigen Ausführungsformen sind die Sensoren entlang des Rahmens so positioniert, dass das Sichtfeld des Roboters maximiert wird, während das Übersprechen oder die Interferenz zwischen den Sensoren minimiert wird. In manchen Fällen kann eine Komponente zwischen benachbarten Sensoren platziert werden, um Übersprechen oder Interferenzen zu minimieren. In einigen Ausführungsformen kann der Roboter Sensoren umfassen, um Beschleunigung, Winkel- und Linearbewegung, Temperatur, Feuchtigkeit, Wasser, Verschmutzung, Partikel in der Luft, zugeführte Energie, Nähe, externe Bewegung, Gerätebewegung, Tonsignale, Ultraschallsignale usw. zu erkennen oder zu erfassen. Lichtsignale, Feuer, Rauch, Kohlenmonoxid, GPS-Signale (Global Positioning Satellite), Hochfrequenzsignale (RF), andere elektromagnetische Signale oder Felder, visuelle Merkmale, Texturen, Signale zur optischen Zeichenerkennung (OCR), Spektrummessgeräte, und dergleichen. In einigen Ausführungsformen kann ein Mikroprozessor oder ein Mikrocontroller des Roboters in bestimmten Abständen eine Vielzahl von Sensoren abfragen.

In einigen Ausführungsformen kann der Roboter einen Kamerasensor umfassen, der kommunikativ mit einem Mikroprozessor oder Mikrocontroller gekoppelt sein kann. In einigen Ausführungsformen können von der Kamera aufgenommene Bilder verarbeitet werden, um Objekte oder Gesichter zu identifizieren, wie weiter unten beschrieben. Beispielsweise kann der Mikroprozessor ein Gesicht in einem Bild identifizieren und eine Bildsuche in einer Datenbank in der Cloud durchführen, um einen Besitzer des Roboters zu identifizieren. In einigen Ausführungsformen kann die Kamera einen integrierten Prozessor umfassen. Beispielsweise können Objekterkennung und Gesichtserkennung auf einem integrierten Prozessor einer Kamera ausgeführt werden. In einigen Ausführungsformen kann die Kamera Standbilder und Videos aufnehmen und eine Tiefenkamera sein. Beispielsweise kann eine Kamera zum Aufnehmen von Bildern oder Videos in einem ersten Zeitintervall verwendet werden und kann als Tiefenkamera verwendet werden, die in einem zweiten Zeitintervall strukturiertes Licht aussendet. Aufgrund der hohen Bildraten von Kameras können einige Bildaufnahmen zeitlich gemultiplext in zwei oder mehr Erfassungsarten erfolgen. In einigen Ausführungsformen kann die Kamera zum Aufnehmen von Standbildern und Videos durch einen Benutzer des Roboters verwendet werden. Beispielsweise kann ein Benutzer die Kamera des Roboters verwenden, um einen Video-Chat durchzuführen, bei dem sich der Roboter optimal so positionieren kann, dass er dem Benutzer gegenübersteht. In Ausführungsformen sind verschiedene Konfigurationen (z. B. Kameratypen, Anzahl der Kameras, interne oder externe Kameras usw.) möglich, die gewünschte Arten der Erfassung (z. B. Entfernung, Hindernis, Anwesenheit) und gewünschte Funktionen (z. B. Erfassung und Aufnahme von Standbildern) ermöglichen Bilder und Videos) können verwendet werden, um ein besseres Benutzererlebnis zu bieten. In einigen Ausführungsformen kann die Kamera des Roboters unterschiedliche Sichtfelder (Fields of View, FOV) haben. Beispielsweise kann eine Kamera ein horizontales Sichtfeld von bis zu 90 Grad oder mehr und ein vertikales Sichtfeld von bis zu 20 Grad oder mehr haben. In einem anderen Beispiel kann die Kamera ein horizontales Sichtfeld zwischen 60 und 120 Grad und ein vertikales Sichtfeld zwischen 10 und 80 Grad haben. In einigen Ausführungsformen kann die Kamera Linsen und optische Anordnungen von Linsen umfassen, um das Sichtfeld vertikal oder horizontal zu vergrößern. Beispielsweise kann die Kamera über Fischaugenlinsen verfügen, um ein größeres Sichtfeld zu erreichen. In einigen Ausführungsformen kann der Roboter mehr als eine Kamera umfassen und jede Kamera kann für eine andere Funktion verwendet werden. Beispielsweise kann eine Kamera zur Festlegung eines Umgebungsumfangs verwendet werden, eine zweite Kamera kann zur Hinderniserkennung verwendet werden und eine dritte Kamera kann zur Anwesenheitserkennung verwendet werden. In einem anderen Beispiel kann zusätzlich zu einer Hauptkamera eine Tiefenkamera verwendet werden. Die Tiefenkamera kann verschiedene Formen haben. In einigen Ausführungsformen kann die Kameraausgabe an einen Bildprozessor zur Verwendung durch einen Benutzer und an einen Mikrocontroller der Kamera zur Tiefenerkennung, Hinderniserkennung, Anwesenheitserkennung usw. bereitgestellt werden. In einigen Ausführungsformen kann die Kameraausgabe lokal verarbeitet werden Der Roboter wird von einem Prozessor gesteuert, der Standard-Bildverarbeitungsfunktionen und Benutzeranwesenheitserkennungsfunktionen kombiniert. Alternativ kann in einigen Ausführungsformen die Video-/Bildausgabe der Kamera zur weiteren Verarbeitung oder visuellen Nutzung an einen Host gestreamt werden. In einigen Ausführungsformen kann es unterschiedliche Optionen für die Kommunikation und Datenverarbeitung zwischen einem dedizierten Bildprozessor und einem Hinderniserkennungs-Coprozessor geben. Beispielsweise kann das Vorhandensein eines Hindernisses im Sichtfeld einer Kamera erkannt werden, dann kann eine Entfernung zum Hindernis bestimmt werden, dann kann die Art des Hindernisses bestimmt werden (z. B. Mensch, Haustier, Tisch, Draht oder ein anderes Objekt). ), dann kann, wenn es sich bei dem Hindernistyp um einen Menschen handelt, eine Gesichtserkennung durchgeführt werden, um den Menschen zu identifizieren. Alle Informationen können in mehreren Abstraktionsebenen verarbeitet werden. In Ausführungsformen können Informationen von lokalen Mikrocontrollern, Mikroprozessoren, GPUs, in der Cloud oder auf einer zentralen Heimsteuereinheit verarbeitet werden.

In einigen Ausführungsformen können zusätzliche Sensoren des Roboters, wie etwa ein Näherungssensor, verwendet werden, um zusätzliche Datenpunkte bereitzustellen, um die Genauigkeit von Schätzungen oder Vorhersagen weiter zu verbessern. In einigen Ausführungsformen können die zusätzlichen Sensoren des Roboters mit dem Mikroprozessor oder Mikrocontroller verbunden sein. In einigen Ausführungsformen können die zusätzlichen Sensoren andere Erfassungsmethoden des Roboters ergänzen. Beispielsweise können bei einigen Sensortypen die aktiv emittierten Lichter in Form von Rechteckwellen oder anderen Wellenformen vorliegen. Das Licht kann mit einer Sinuswelle und einer Kosinuswelle gemischt werden, die mit der LED-Modulation synchronisiert werden können. Dann können ein erstes und ein zweites Objekt im Sichtfeld des Sensors, die jeweils in einem unterschiedlichen Abstand positioniert sind, eine unterschiedliche Phasenverschiebung erzeugen, die mit ihrem jeweiligen Abstand verbunden sein kann.

In einigen Ausführungsformen kann der Roboter eine Steuerung, einen Multiplexer und eine Reihe von Leuchtdioden (LEDs) umfassen, die im Zeitmultiplex arbeiten können, um ein strukturiertes Licht zu erzeugen, das die Kamera in einem gewünschten Zeitfenster erfassen kann. In einigen Ausführungsformen kann in jedem Zeitintervall ein geeigneter Softwarefilter verwendet werden, um die LED-Leuchten anzuweisen, in einer bestimmten Reihenfolge oder Kombination abzuwechseln, und die Kamera anzuweisen, Bilder in einem gewünschten Zeitfenster aufzunehmen. In einigen Ausführungsformen kann ein mikroelektromechanisches Gerät verwendet werden, um eine oder mehrere der LEDs zu multiplexen, sodass die Sichtfelder einer oder mehrerer Kameras abgedeckt werden können. In einigen Ausführungsformen können die LEDs in jedem geeigneten Wellenlängen- und Frequenzbereich betrieben werden, beispielsweise im nahen Infrarotbereich des elektromagnetischen Spektrums. In einigen Ausführungsformen können Lichtimpulse mit einer gewünschten Frequenz ausgesendet werden und die Phasenverschiebung des reflektierten Lichtsignals kann gemessen werden.

In einigen Ausführungsformen kann der Roboter ein abgestuftes Sensorsystem umfassen, wobei Daten eines ersten Sensors verwendet werden können, um zunächst auf ein Ergebnis zu schließen, und Daten eines zweiten Sensors, der zum ersten Sensor komplementär ist, verwendet werden können, um das abgeleitete Ergebnis zu bestätigen. In einigen Ausführungsformen kann der Roboter ein bedingtes Sensorsystem umfassen, wobei Daten eines ersten Sensors verwendet werden können, um zunächst auf ein Ergebnis zu schließen, und ein zweiter Sensor basierend darauf betrieben werden kann, ob das Ergebnis erfolgreich oder nicht erfolgreich ist. Darüber hinaus können in einigen Ausführungsformen mit dem ersten Sensor gesammelte Daten verwendet werden, um zu bestimmen, ob mit dem zweiten Sensor gesammelte Daten benötigt oder bevorzugt werden. In einigen Ausführungsformen kann der Roboter ein Zustandsautomaten-Erkennungssystem umfassen, wobei Daten von einem ersten Sensor verwendet werden können, um zunächst auf ein Ergebnis zu schließen, und wenn eine Bedingung erfüllt ist, kann ein zweiter Sensor betätigt werden. In einigen Ausführungsformen kann der Roboter ein umfragebasiertes Sensorsystem umfassen, bei dem Daten von einem ersten Sensor verwendet werden können, um zunächst auf ein Ergebnis zu schließen, und wenn eine Bedingung erfüllt ist, kann ein zweiter Sensor betätigt werden. In einigen Ausführungsformen kann der Roboter ein stilles Synapsenaktivator-Erfassungssystem umfassen, wobei Daten von einem ersten Sensor verwendet werden können, um eine Beobachtung durchzuführen, die Beobachtung jedoch keine Betätigung verursacht. In einigen Ausführungsformen erfolgt eine Betätigung, wenn innerhalb eines vordefinierten Zeitraums eine zweite ähnliche Erfassung erfolgt. In einigen Ausführungsformen kann es Variationen geben, bei denen ein Mikrocontroller einen ersten Sensormesswert ignorieren und die Verarbeitung eines zweiten (oder dritten) Sensormesswerts zulassen kann. Beispielsweise kann eine übersehene Lichtreflexion vom Boden möglicherweise nicht als Klippe interpretiert werden, es sei denn, eine zweite Lichtreflexion vom Boden wird übersehen. In einigen Ausführungsformen kann eine auf Hebbian basierende Erfassungsmethode verwendet werden, um Korrelationen zwischen verschiedenen Erfassungsarten zu erstellen. Beispielsweise können in Hebbs Theorie zwei beliebige Zellen, die wiederholt zur gleichen Zeit aktiv sind, so assoziiert werden, dass die Aktivität in einem Neuron die Aktivität im anderen erleichtert. Wenn eine Zelle wiederholt dabei hilft, eine andere Zelle anzufeuern, kann ein Axon der ersten Zelle synaptische Knäufe in Kontakt mit dem Soma der zweiten Zelle entwickeln (oder vergrößern). In einigen Ausführungsformen kann das Hebb-Prinzip verwendet werden, um zu bestimmen, wie die Gewichte zwischen künstlichen Neuronen (d. h. Knoten) eines künstlichen neuronalen Netzwerks geändert werden. In einigen Ausführungsformen erhöht sich das Gewicht zwischen zwei Neuronen, wenn zwei Neuronen gleichzeitig aktiviert werden, und verringert sich, wenn sie zu unterschiedlichen Zeiten aktiviert werden. Beispielsweise können zwei Knoten, die sowohl positiv als auch negativ sind, stark positive Gewichte haben, während Knoten mit entgegengesetztem Vorzeichen stark negative Gewichte haben können. In einigen Ausführungsformen ist das Gewicht ωij=xichXJbestimmt werden, wobei ωijist das Gewicht der Verbindung von Neuron j zu Neuron i und xichdie Eingabe für Neuron i. Bei binären Neuronen können Verbindungen auf eins gesetzt werden, wenn verbundene Neuronen die gleiche Aktivierung für ein Muster haben. In einigen Ausführungsformen ist das Gewicht ωijkann bestimmt werden mit

1 P k = 1 P X ich k X J k ,
wobei p die Anzahl der Trainingsmuster und x istichkist Eingabe k für Neuron i. In einigen Ausführungsformen gilt die Hebb-Regel Δωich=ηxichy kann verwendet werden, wobei Δωichist die Änderung des synaptischen Gewichts i, η ist eine Lernrate und y eine postsynaptische Reaktion. In einigen Ausführungsformen kann die postsynaptische Reaktion unter Verwendung von y = Σ bestimmt werdenjOhJXJ. In einigen Ausführungsformen können andere Methoden wie die BCM-Theorie, die Oja-Regel oder der verallgemeinerte Hebbian-Algorithmus verwendet werden.

In einigen Ausführungsformen kann die Anordnung von LEDs, Näherungssensoren und Kameras des Roboters auf ein bestimmtes Sichtfeld ausgerichtet sein. In einigen Ausführungsformen können zumindest einige benachbarte Sensoren des Roboters überlappende FOVs aufweisen. In einigen Ausführungsformen können zumindest einige Sensoren ein Sichtfeld haben, das sich nicht mit dem Sichtfeld eines anderen Sensors überschneidet. In einigen Ausführungsformen können Sensoren an eine gekrümmte Struktur gekoppelt sein, um ein Sensorarray zu bilden, in dem Sensoren divergierende FOVs aufweisen. Wenn die Geometrie des Roboters bekannt ist, können Implementierung und Anordnung der Sensoren je nach Zweck der Sensoren und Anwendung ausgewählt werden.

FEIGE.1Azeigt ein Beispiel eines Roboters mit Sensorfenstern100hinter denen Sensoren positioniert sind, Sensoren101(z. B. Kamera, Lasersender, TOF-Sensor, IR-Sensoren, Entfernungsmesser, LIDAR, Tiefenkameras usw.), Benutzeroberfläche102, und Stoßstange103.FEIGE.1Bzeigt interne Komponenten des Roboters, einschließlich Sensoren101des Sensorarrays104, Leiterplatte105, Radmodule jeweils inklusive Federung106, Batterie107, Bodensensor108, und Rad109. In einigen Ausführungsformen kann ein Prozessor des Roboters von verschiedenen Sensoren gesammelte Daten verwenden, um über verschiedene Verarbeitungsphasen einen polymorphen Pfadplan zu entwickeln.FEIGE.2zeigt ein weiteres Beispiel eines Roboters, insbesondere die Unterseite eines Reinigungsroboters mit rotierenden Doppelbürsten vom Schraubenkompressortyp200, Antriebsräder201, Lenkrolle202, Umfangsbürste203, Sensoren an einer Unterseite des Roboters204, USB-Anschluss205, Stromanschluss206, Power-Taste207, Lautsprecher208, und ein Mikrofon209. Einrückungen210Es kann sich um Vertiefungen für die Finger eines Benutzers zum Anheben des Roboters handeln. In einigen Ausführungsformen können die Vertiefungen mit einem anderen Material als die Unterseite des Roboters beschichtet sein, sodass ein Benutzer die Vertiefungen leicht erkennen kann. In diesem Beispiel gibt es drei Sensoren, einen vorne und zwei seitlich. Die Sensoren können verwendet werden, um die Anwesenheit und die Art der Fahroberfläche zu erfassen. In einigen Ausführungsformen sind einige Sensoren vorne, an den Seiten und unter dem Roboter positioniert. In einigen Ausführungsformen kann der Roboter ein oder mehrere Lenkrollen umfassen. In einigen Ausführungsformen umfassen die Räder des Roboters ein Radaufhängungssystem. In einigen Ausführungsformen umfasst die Radaufhängung eine Längslenkeraufhängung, die mit jedem Rad gekoppelt und zwischen dem Rad und dem Umfang des Roboterchassis positioniert ist. Ein Beispiel für ein Doppelradaufhängungssystem ist in der US-Patentanmeldung Seriennr. Nr. 15/951.096 und 16/270.489, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. Weitere Beispiele für Radaufhängungssysteme, die verwendet werden können, sind in der US-Patentanmeldung Seriennr. Nr. 16/389,797, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In einigen Ausführungsformen können die verschiedenen Radaufhängungssysteme unabhängig voneinander oder in Kombination verwendet werden. In einigen Ausführungsformen können ein oder mehrere Räder des Roboters von einem oder mehreren Elektromotoren angetrieben werden. In einigen Ausführungsformen sind die Räder des Roboters Mecanum-Räder.

FEIGE.3Azeigt ein weiteres Beispiel eines Roboters mit Saug- und Wischfunktionen. Der Roboter enthält ein Modul300das vom Roboter abnehmbar ist, wie in dargestelltFEIGE.3B.FEIGE.3Cveranschaulicht das Modul300mit Mülltonnendeckel301das mit einem Ansaugweg für Schmutz verbunden ist, Modulanschluss302zum Anschluss des Moduls300zum Roboter, Wassereinlasslasche303das geöffnet werden kann, um Wasser in einen Wasserbehälter zu füllen, und ein Wischpad (oder Tuch)304.FEIGE.3Dveranschaulicht interne Komponenten des Moduls300inklusive Dichtung305des Mülleimerdeckels301um zu verhindern, dass der Inhalt in den Mülleimer gelangt306vom Entkommen, Öffnen307des Mülleimerdeckels301Dadurch kann der vom Roboter gesammelte Schmutz in den Mülleimer gelangen306und eine Wasserpumpe308außerhalb des Wassertanks positioniert werden309das Wasser aus dem Wassertank pumpt309zu Wasserspendern310. Wischpad304erhält Wasser aus Wasserspendern310die das Wischpad befeuchtet304zum Reinigen eines Bodens.FEIGE.3Everanschaulicht den Trümmerweg311Vom Roboter in die Mülltonne306und Wasser312im Wassertank309. Sowohl der Mülleimer306und der Wassertank309kann gewaschen werden, da das Laufrad nicht im Mülleimer positioniert ist306und die Wasserpumpe308nicht im Wassertank positioniert ist309.FEIGE.3Fzeigt die Unterseite eines Moduls300einschließlich Wasserspender310und Klettbänder311die zur Befestigung des Wischpads verwendet werden kann304an der Unterseite des Moduls300.FEIGE.3Gzeigt eine alternative Ausführungsform für den Mülleimerdeckel301, wobei Mülleimerdeckel301wird von der Oberseite des Moduls geöffnet300.FIG.4A und4Bveranschaulicht eine alternative Ausführungsform des RobotersFIG.3A-3E. InFEIGE.4Adie Wasserpumpe400befindet sich im Mülleimer des Moduls401und inFEIGE.4Bdie Wasserpumpe400wird außerhalb des Moduls positioniert401und wird über einen Verbindungsschlauch mit dem Modul verbunden402mit Dichtung403um Flüssigkeit abzudichten und zu verhindern, dass diese an der Verbindungsstelle austritt.FEIGE.4Cveranschaulicht ein Modul403zur Umwandlung von Wasser in Wasserstoffperoxid und Wasserpumpe400innerhalb des Moduls positioniert401. In einigen Fällen Modul403kann Wasser aus dem Wassertank des Moduls ansaugen (oder mit einer Pumpe mit Wasser versorgen).401, wandeln Sie das Wasser in Wasserstoffperoxid um und geben Sie das Wasserstoffperoxid in einen zusätzlichen Behälter zur Aufbewahrung des Wasserstoffperoxids ab. Der Behälter, in dem Wasserstoffperoxid aufbewahrt wird, kann ähnliche Methoden verwenden, wie sie für die Abgabe der Flüssigkeit auf das Wischpad beschrieben wurden. In einigen Ausführungsformen kann der Prozess der Wasserelektrolyse zur Erzeugung des Wasserstoffperoxids verwendet werden. In einigen Ausführungsformen kann der Prozess der Umwandlung von Wasser in Wasserstoffperoxid die Oxidation von Wasser über einen Elektrokatalysator in einem Elektrolyten umfassen, was zu im Elektrolyten gelöstem Wasserstoffperoxid führt, das direkt auf die Oberfläche aufgetragen oder vor dem Auftragen auf die Oberfläche weiterverarbeitet werden kann Oberfläche.

In einigen Ausführungsformen kann der Roboter in einen Bereich einer Umgebung eingebaut werden (z. B. Küche, Wohnzimmer, Waschküche, Schlammraum usw.). In einigen Ausführungsformen kann der Behälter des Oberflächenreinigers direkt mit dem zentralen Staubsaugersystem der Umgebung verbunden sein und direkt in dieses entleert werden. In einigen Ausführungsformen kann der Roboter an einer Ladestation angedockt und gleichzeitig mit dem zentralen Staubsaugersystem verbunden sein. In einigen Ausführungsformen kann der Inhalt eines Mülleimers eines Roboters an einer Ladestation des Roboters geleert werden. Zum Beispiel,FEIGE.5Averanschaulicht Roboter500an der Ladestation angedockt501. Roboter500Ladungen durch eine Verbindung zwischen Ladeknoten (nicht gezeigt) des Roboters500mit Ladepads502der Ladestation501. Im angedockten Zustand ein weicher Schlauch503Kann mit einem Roboteranschluss verbunden werden500mit Vakuummotor504verbunden mit einem Einweg-Müllbeutel (oder einem abnehmbaren Mehrwegbehälter)505. Vakuummotor504kann Schmutz ansaugen506aus einer Mülltonne von Robotern500in den Einweg-Müllbeutel505, wie in dargestelltFEIGE.5B. Roboter500kann sich während des Andockens anhand der von Signalsendern empfangenen Signale ausrichten507auf der Ladestation positioniert501.FEIGE.5Cveranschaulicht Komponenten des Heckandockroboters500einschließlich Ladeknoten508, Hafen509zu welchem ​​weichen Schlauch503angeschlossen werden können, und Anwesenheitssensoren510Wird während des Andockens verwendet, um eine ordnungsgemäße Ausrichtung zu erreichen.FEIGE.5Dveranschaulicht Magnete511die an einen weichen Schlauch angeschlossen werden kann503und Hafen509. Magnete511Kann zum Ausrichten und Sichern einer Verbindung zwischen weichen Schläuchen verwendet werden503und Hafen509des Roboters500.FEIGE.5Everanschaulicht eine alternative Ausführungsform, bei der der Vakuummotor504ist mit einem Außenbehälter verbunden512über einen weichen Kunststoffschlauch513.FEIGE.5Fveranschaulicht eine weitere Ausführungsform, bei der der Vakuummotor504und weichem Kunststoffschlauch513werden oben auf der Ladestation platziert501. In manchen Fällen kann der Staubsaugermotor an ein zentrales Staubsaugersystem eines Hauses oder an ein Müllentsorgungssystem eines Hauses angeschlossen werden. In Ausführungsformen kann der Vakuummotor auf beiden Seiten der Ladestation platziert werden.

FEIGE.6Azeigt ein weiteres Beispiel einer Ladestation eines Roboters. Die Ladestation enthält Ladepads600, Bereich601hinter dem Signalgeber positioniert sind, Stecker602, und Taste603zum Zurückziehen des Steckers602. Stecker602kann aus dem Loch gezogen werden604auf die gewünschte Länge und Knopf603kann gedrückt werden, um den Stecker herauszuziehen602zurück im Loch604.FEIGE.6Bveranschaulicht Stecker602aus dem Loch verlängert604.FEIGE.6Czeigt einen Roboter mit Ladeknoten605die möglicherweise mit Ladepads verbunden sind600um den Roboter aufzuladen. Der Roboter verfügt über Sensorfenster606hinter denen Sensoren (z. B. Kamera, Flugzeitsensor, LIDAR usw.) positioniert sind, Stoßstange607, Bürste608, Räder609und taktile Sensoren610. Jeder taktile Sensor kann beim Drücken ausgelöst werden und den Roboter über den Kontakt mit einem Objekt informieren.FEIGE.6Dillustriert Tafel611, bedruckte Knöpfe612und Indikatoren613, und die eigentlichen Tasten614und LED-Anzeigen615innerhalb des Roboters positioniert, die an den aufgedruckten Tasten ausgerichtet sind612und Indikatoren613auf dem Panel611.FEIGE.6Ezeigt den auf der Ladestation positionierten Roboter und eine Verbindung zwischen Ladeknoten605des Roboters und der Ladepads600der Ladestation. Die Ladepads600können federbelastet sein, damit der Roboter sie nicht als Hindernis wahrnimmt.FEIGE.6Fveranschaulicht eine alternative Ausführungsform der Ladestation mit den Ladepads616sind kreisförmig und an einer anderen Stelle positioniert.FEIGE.6Gzeigt eine alternative Ausführungsform des Roboters mit Sensorenfenstern617ist kontinuierlich.FEIGE.6Hzeigt beispielhaft eine Unterseite des Roboters inklusive UV-Lampe618.FEIGE.6ICHzeigt eine Nahaufnahme der UV-Lampe und einer inneren reflektierenden Oberfläche619um die Lampenabdeckung zu maximieren und eine holprige Glasabdeckung zu verhindern620um UV-Strahlen zu streuen.

In einigen Ausführungsformen sind es periphere Bürsten eines Roboterreinigers, beispielsweise eine periphere Bürste203des Reinigungsroboters inFEIGE.2, können strategische Methoden zur Borstenbefestigung implementieren, um den Verlust von Borsten während des Betriebs zu reduzieren. Zum Beispiel,FIG.7A und7BVeranschaulichen Sie eine Methode zur Borstenbefestigung, bei der jedes Borstenbündel vorhanden ist700kann um einen Zylinder gewickelt werden701an einen Hauptkörper gekoppelt702der peripheren Bürste. Jedes Borstenbündel700kann um den Zylinder gewickelt werden701mindestens einmal befestigt und dann mit sich selbst verknotet, um die Befestigung am Hauptkörper zu sichern702der peripheren Bürste.FEIGE.7Cveranschaulicht ein weiteres Verfahren zur Borstenbefestigung, wobei jedes Borstenbündel703Kann in den Hauptkörper hinein- und herausgeschraubt werden702um zwei nebeneinander liegende Borstenbündel zu bilden, wodurch der Borstenverlust während des Betriebs verringert werden kann. In einigen Fällen befindet sich der Teil jedes Borstenbündels innerhalb des Hauptkörpers702kann an der Innenseite des Hauptkörpers befestigt werden702mit Kleber, Nähen oder auf andere Weise.FIG.7D,7E, und7Fveranschaulichen eine weitere Methode zur Borstenbefestigung bei Borstenbündeln704einander gegenüberliegende Elemente werden miteinander verhakt, wie in dargestelltFEIGE.7F. In allen Ausführungsformen kann die Anzahl der Borsten in jedem Borstenbündel variieren.

In Ausführungsformen können Bodensensoren an verschiedenen Stellen auf der Unterseite des Reinigungsroboters positioniert sein und auch unterschiedliche Ausrichtungen und Größen haben. FIG.8A-8D veranschaulichen Beispiele für alternative Positionen (z. B. in einiger Entfernung vom Rad versetzt oder unmittelbar neben dem Rad) und Ausrichtungen (z. B. vertikal oder horizontal) für Bodensensoren800. Die konkrete Anordnung der Sensoren kann von der Geometrie des Roboters abhängen.

In einigen Ausführungsformen können Bodensensoren Infrarotsensoren (IR), Ultraschallsensoren, Lasersensoren, Flugzeitsensoren (TOF), Abstandssensoren, 3D- oder 2D-Entfernungsmesser, 3D- oder 2D-Tiefenkameras usw. sein. Beispielsweise Der Bodensensor befindet sich an der Vorderseite des RobotersFEIGE.2Dabei kann es sich um einen IR-Sensor handeln, während es sich bei den an den Seiten des Roboters angebrachten Bodensensoren um TOF-Sensoren handeln kann. In einem anderen Beispiel,FIG.9A und9Bveranschaulichen Beispiele für alternative Positionen (z. B. in einiger Entfernung vom Rad verschoben, damit der Roboter Zeit zum Reagieren hat, wobei die Reaktionszeit von der Geschwindigkeit des Roboters und der Sensorposition abhängt) von IR-Bodensensoren900an den Seiten der Unterseite des Roboters positioniert. In diesen Beispielen sind die Bodensensoren vor dem Rad positioniert (relativ zur Vorwärtsbewegungsrichtung des Rads), um eine Klippe zu erkennen, während sich der Roboter in der Umgebung vorwärts bewegt. Bodensensoren, die vor dem Rad positioniert sind, können Klippen schneller erkennen als Bodensensoren, die neben dem Rad oder weiter davon entfernt angebracht sind.

In Ausführungsformen kann die Anzahl der an der Unterseite des Reinigungsroboters gekoppelten Bodensensoren je nach Funktionalität variieren. Einige Roboter fahren beispielsweise selten rückwärts, während andere häufiger rückwärts fahren. Einige Roboter drehen sich möglicherweise nur im Uhrzeigersinn, während andere sich möglicherweise gegen den Uhrzeigersinn drehen, während andere möglicherweise beides tun. Einige Roboter können eine Küstenfahrt oder Navigation von einer Seite des Raums aus durchführen. Zum Beispiel,FEIGE.10zeigt ein Beispiel einer Unterseite eines Reinigungsroboters mit vier Bodensensoren1000.FEIGE.11zeigt ein Beispiel einer Unterseite eines Reinigungsroboters mit fünf Bodensensoren1100.FEIGE.12zeigt ein Beispiel einer Unterseite eines Reinigungsroboters mit sechs Bodensensoren1200.

In einigen Ausführungsformen ist der Roboter ein Reinigungsroboter. In einigen Ausführungsformen umfasst der Roboter ein abnehmbares Bürstenfach mit Walzenbürsten, das die Ansammlung von Haaren und Schmutz an einem Verbindungspunkt der Walzenbürsten verhindern soll, und einen Motor, der die Walzenbürsten dreht. In einigen Ausführungsformen kann die Komponente, die die Drehung der Walzenbürsten antreibt, vor einem Benutzer, dem Bürstenfach und den Walzenbürsten verborgen bleiben, indem die Kraftübertragung vom Bürstenfach getrennt wird. In einigen Ausführungsformen können die Walzenbürsten gereinigt werden, ohne dass die Walzenbürsten vollständig entfernt werden müssen, wodurch ein mühsames Entfernen und Neuausrichten und Ersetzen der Bürsten nach der Reinigung vermieden wird.

FEIGE.13Azeigt ein Beispiel eines Bürstenfachs eines Reinigungsroboters inklusive Rahmen1300, Getriebe1301, und Pinsel1302. Der Reinigungsroboter verfügt über einen Motor1303und Getriebe1304das mit dem Getriebe verbunden ist1301des Bürstenfachs, wenn es vollständig in die Unterseite des Saugroboters eingesetzt ist, wie in dargestelltFEIGE.13B. In einigen Ausführungsformen ist der Motor über dem Bürstenfach positioniert, sodass sich Elemente wie Haare und Schmutz nicht an der Verbindungsstelle zwischen der Kraftübertragung und den Bürsten verfangen können. In einigen Ausführungsformen sind der Motor und das Getriebe des Roboters neben dem Bürstenfach oder an einer anderen Position positioniert. In einigen Ausführungsformen erfolgt die Stromerzeugungsbewegung im Motor senkrecht zur Drehachse der Bürsten. In einigen Ausführungsformen können der Motor und das Getriebe des Roboters sowie das Getriebe des Bürstenfachs an beiden Enden des Bürstenfachs positioniert sein. In einigen Ausführungsformen sind mehr als ein Motor und ein Getriebe mit dem Bürstenfach verbunden. In einigen Ausführungsformen können mehr als ein Motor und ein Getriebe des Roboters jeweils mit einem entsprechenden Getriebe des Bürstenfachs verbunden sein.FEIGE.13Cillustriert Pinsel1302bestehend aus zwei Teilen, von denen einer drehbar mit dem Rahmen verbunden ist1300an einem Ende gegenüber dem Getriebe1301des Bürstenfachs, so dass sich der drehbare Teil der Bürste um eine Achse parallel zur Breite des Rahmens drehen kann. In einigen Ausführungsformen sind die beiden Bürstenabschnitte1302können getrennt werden, wenn die Bürsten nicht betriebsbereit sind. In einigen Ausführungsformen sind die beiden Bürstenabschnitte1302sind so getrennt, dass die Bürstenklinge1305Kann von der Bürste entfernt werden1302durch verschiebbares Bürstenblatt1305in Richtung1306. In einigen Ausführungsformen können Bürstenblätter ausgetauscht werden, wenn sie abgenutzt sind, oder können zum Reinigen entfernt werden. In einigen Fällen entfällt dadurch die mühsame Aufgabe, die Bürsten neu auszurichten, wenn sie vollständig vom Roboter entfernt wurden. In einigen Ausführungsformen kann eine Bürste ein einzelnes Stück sein, das an einem Ende drehbar mit dem Rahmen verbunden sein kann, sodass sich die Bürste um eine Achse parallel zur Breite des Rahmens drehen kann. In einigen Ausführungsformen kann die Bürste am Modul befestigt sein, so dass beim Reinigen kein Entfernen der Bürste erforderlich ist, und kann durch einfaches Einrasten der Bürste wieder zusammengebaut werden. In einigen Ausführungsformen ist die Trennung der Bürste vom Modul möglicherweise nicht unbedingt erforderlich, um die Bürste vollständig zu reinigen, eine Trennung kann jedoch möglich sein. In einigen Ausführungsformen kann jedes Ende einer Bürste drehbar mit jedem Ende des Rahmens des Bürstenfachs verbunden sein. In einigen Ausführungsformen können die Bürsten ohne Verwendung des Rahmens direkt am Chassis des Reinigungsroboters befestigt werden. In manchen Ausführungsformen können die Bürsten des Bürstenfachs unterschiedlich zueinander konfiguriert sein. Beispielsweise kann sich eine Bürste während des Betriebs nur um eine Achse der Bürste drehen, während sich die andere zusätzlich um eine Achse parallel zur Breite des Rahmens drehen kann, wenn die Bürste zum Entfernen von Bürstenblättern nicht betriebsbereit ist.FEIGE.13Ezeigt die Bürstenklinge1305vollständig von der Bürste entfernt1302.FEIGE.13Fveranschaulicht Motor1303und Getriebe1304des Reinigungsroboters, der mit dem Getriebe verbunden ist1301des Bürstenfachs durch den Einsatz1307.FEIGE.13Gveranschaulicht Pinsel1302des Bürstenfachs, jede Bürste enthält zwei Portionen. Zum Entfernen der Bürstenblätter1305aus Pinseln1302, die Teile der Bürsten1302Gegengetriebe1301rotieren um eine Achse senkrecht zu den Rotationsachsen der Bürsten1302und Bürstenblätter1305kann von den beiden Bürstenteilen abgezogen werden1302wie in dargestelltFIG.13D und13E.FEIGE.13Hzeigt ein Beispiel eines Verriegelungsmechanismus, der zum Verriegeln der beiden Teile jeder Bürste verwendet werden kann1302zusammen inklusive Verriegelungskern1308gekoppelt an einen Teil jedes Bürsten- und Verriegelungshohlraums1309mit einem zweiten Abschnitt jeder Bürste gekoppelt. Verriegelungskern1308und sperren1309Schnittstelle mit einer anderen, um die beiden Teile jeder Bürste zu verriegeln1302zusammen.

FEIGE.14Azeigt ein weiteres Beispiel eines Bürstenfachs eines Reinigungsroboters mit ähnlichen Komponenten wie oben beschrieben, einschließlich Motor2400und Getriebe1401des Roboterreinigers, der mit dem Getriebe verbunden ist1402des Bürstenfachs. Komponente1403des Getriebes1401des Roboterreinigers, der mit dem Getriebe verbunden ist1402Die Darstellung des Bürstenfachs unterscheidet sich von der AbbildungFEIGE.13A.FEIGE.14Bveranschaulicht diese Komponente1403des Getriebes1401Der Staubsaugerroboter ist über das Bürstenfach zugänglich, wenn er in die Unterseite des Roboterreinigers eingesetzt wird, während der Motor eingeschaltet ist1400und Getriebe1401Die Teile des Reinigungsroboters sind in einem Gehäuse des Reinigungsroboters verborgen.

In einigen Fällen kann der Reinigungsroboter ein Wischmodul umfassen, das mindestens einen Behälter und eine von einem Motor angetriebene Wasserpumpe enthält, um Wasser aus dem Behälter indirekt oder direkt an die Fahrfläche zu liefern. In einigen Ausführungsformen kann die Wasserpumpe autonom aktiviert werden, wenn der Roboterreiniger in Bewegung ist, und deaktiviert werden, wenn der Roboterreiniger stationär ist. In einigen Ausführungsformen kann die Wasserpumpe einen Schlauch umfassen, durch den Flüssigkeit aus dem Behälter fließt. In einigen Ausführungsformen kann der Schlauch mit einem Abflussmechanismus verbunden sein, in den die gepumpte Flüssigkeit aus dem Reservoir fließt. In einigen Ausführungsformen kann der Boden des Entwässerungsmechanismus Entwässerungsöffnungen umfassen. In einigen Ausführungsformen kann ein Wischpad an einer Unterseite des Entwässerungsmechanismus befestigt werden. In einigen Ausführungsformen kann Flüssigkeit aus dem Behälter in den Abflussmechanismus gepumpt werden und Flüssigkeit kann durch eine oder mehrere Abflussöffnungen des Abflussmechanismus auf das Wischpad fließen. In einigen Ausführungsformen können Durchflussreduzierventile an den Abflussöffnungen positioniert sein. In einigen Ausführungsformen kann der Schlauch mit einer verzweigten Komponente verbunden sein, die die Flüssigkeit aus dem Schlauch in verschiedene Richtungen abgibt, sodass die Flüssigkeit in verschiedenen Bereichen eines Wischpads verteilt werden kann. In einigen Ausführungsformen kann die Freisetzung von Flüssigkeit durch Flussreduzierungsventile gesteuert werden, die entlang eines oder mehrerer Wege der Flüssigkeit positioniert sind, bevor sie das Wischpad erreicht.FEIGE.15Azeigt ein Beispiel einer Ladestation1500einschließlich Signalgeber1501die dem Roboter Signale übermitteln1502kann verwendet werden, um sich an der Ladestation auszurichten1500beim Andocken, Saugmotor1503zum Entleeren von Schmutz aus dem Mülleimer des Roboters1502in den Einweg-Müllbeutel (oder Mehrweg-Müllbehälter)1504über Schlauch und Wasserpumpe1505zum Nachfüllen eines Wassertanks eines Roboters1502über Rohr1506Verwendung von Wasser aus der Hausversorgung, das über Rohrleitungen zugeführt wird1507in die Wasserpumpe1505. In manchen Fällen der Müllsack1504der Ladestation1500kann per Knopfdruck an der Ladestation entnommen werden1500.FEIGE.15Bveranschaulicht den Pfad zum Sammeln von Schmutz1508und Ladepads1509UndFEIGE.15Cveranschaulicht den Wasserflussweg1510und Ladepads1509(Roboter zur Visualisierung des Trümmerwegs und des Wasserflusswegs nicht dargestellt). Ladepads der Roboterschnittstelle mit Ladepads1509während des Ladevorgangs. Ladestation1500kann für einen Roboter mit kombinierten Saug- und Wischfunktionen verwendet werden. In manchen Fällen wird der Mülleimer geleert oder der Wassertank wieder aufgefüllt, wenn der Mülleimer oder der Wassertank ein bestimmtes Volumen erreicht, nach einer bestimmten Menge an Oberflächenabdeckung durch den Roboter, nach einer bestimmten Anzahl von Betriebsstunden, nach einer vorgegebenen Zeitspanne Zeit, nach einer vorgegebenen Anzahl von Arbeitssitzungen oder basierend auf einer anderen Metrik. In manchen Fällen kann der Prozessor des Roboters mit der Ladestation kommunizieren, um die Ladestation darüber zu informieren, dass der Mülleimer geleert oder der Wassertank nachgefüllt werden muss. In manchen Fällen kann ein Benutzer eine mit dem Roboter gekoppelte Anwendung verwenden, um den Roboter anzuweisen, seinen Mülleimer zu leeren oder seinen Wassertank wieder aufzufüllen. Die Anwendung kann die Anweisung an den Roboter und/oder die Ladestation übermitteln. In manchen Fällen kann die Ladestation von der Mülltonnenentleerungsstation oder der Wassernachfüllstation getrennt sein.

Einige Ausführungsformen können eine Wischerweiterungseinheit für den Reinigungsroboter bereitstellen, um das gleichzeitige Staubsaugen und Wischen einer Fahrfläche zu ermöglichen und die Notwendigkeit zu verringern (oder zu beseitigen), dass ein spezieller Wischroboter nach einem speziellen Roboterstaubsauger läuft. In einigen Ausführungsformen kann eine Wischverlängerung in einem speziellen Fach des Chassis des Reinigungsroboters installiert oder darin eingebaut sein. In einigen Ausführungsformen kann die Wischverlängerung beispielsweise durch Betätigung eines Knopfes oder einer Verriegelung abnehmbar sein. In einigen Ausführungsformen kann ein auf der Wischverlängerung positioniertes Tuch die Fahrfläche berühren, wenn der Reinigungsroboter durch einen Bereich fährt. In einigen Ausführungsformen können Düsen Flüssigkeit von einem Flüssigkeitsbehälter zu einem Wischtuch leiten. In einigen Ausführungsformen können die Düsen dem Wischtuch kontinuierlich eine konstante Menge Reinigungsflüssigkeit zuführen. In einigen Ausführungsformen können die Düsen dem Tuch regelmäßig vorbestimmte Mengen an Reinigungsflüssigkeit zuführen. In einigen Ausführungsformen kann eine Wasserpumpe Flüssigkeit aus einem Behälter zu einem Wischtuch fördern, wie oben beschrieben. In einigen Ausführungsformen kann die Wischverlängerung einen Satz Ultraschalloszillatoren umfassen, die Flüssigkeit aus dem Behälter verdampfen, bevor sie durch die Düsen an das Wischtuch abgegeben wird. In einigen Ausführungsformen können die Ultraschalloszillatoren Flüssigkeit kontinuierlich mit einer geringen Geschwindigkeit verdampfen, um dem Wischtuch kontinuierlich Dampf zuzuführen. In einigen Ausführungsformen können sich die Ultraschalloszillatoren in vorgegebenen Intervallen einschalten, um dem Wischtuch regelmäßig Dampf zuzuführen. In einigen Ausführungsformen kann alternativ ein Heizsystem zum Verdampfen von Flüssigkeit verwendet werden. Beispielsweise kann eine elektrische Heizspirale in direktem Kontakt mit der Flüssigkeit verwendet werden, um die Flüssigkeit zu verdampfen. Die elektrische Heizspirale kann die Flüssigkeit indirekt über ein anderes Medium erwärmen. In anderen Beispielen kann Strahlungswärme zum Verdampfen der Flüssigkeit verwendet werden. In einigen Ausführungsformen kann Wasser auf eine vorgegebene Temperatur erhitzt und dann mit einem Reinigungsmittel vermischt werden, wobei das erhitzte Wasser als Heizquelle für die Verdampfung der Mischung verwendet wird. In einigen Ausführungsformen kann Wasser in den Behälter gegeben werden und das Wasser kann zur Reaktion gebracht werden, um Wasserstoffperoxid zum Reinigen und Desinfizieren des Bodens zu erzeugen. In solchen Ausführungsformen kann der Prozess der Wasserelektrolyse zur Erzeugung von Wasserstoffperoxid verwendet werden. In einigen Ausführungsformen kann der Prozess eine Wasseroxidation über einem Elektrokatalysator in einem Elektrolyten umfassen, die zu im Elektrolyten gelöstem Wasserstoffperoxid führt, das direkt auf die Fahrfläche oder das Wischpad aufgetragen werden kann oder vor dem Auftragen auf die Fahrfläche weiter verarbeitet werden kann . In einigen Ausführungsformen kann der Reinigungsroboter ein Mittel zum Bewegen des Wischtuchs (und einer Komponente, an der das Wischtuch befestigt werden kann) in einer horizontalen Ebene parallel dazu vor und zurück (z. B. vorwärts und rückwärts oder links und rechts) umfassen Fahroberfläche während des Betriebs (z. B. Bereitstellung einer Schrubbwirkung), so dass das Wischtuch beim Fahren des Roboters möglicherweise mehr als einmal über eine Fläche fährt. In einigen Ausführungsformen kann der Roboter für eine vorgegebene Zeitspanne pausieren, während sich das Wischtuch in einer horizontalen Ebene hin und her bewegt. Danach kann sich der Roboter in einigen Ausführungsformen eine vorgegebene Distanz bewegen, bevor er erneut pausiert, während sich das Wischtuch zurückbewegt und wieder in der horizontalen Ebene hin und her. In einigen Ausführungsformen kann sich das Wischtuch kontinuierlich hin und her bewegen, während der Roboter in der Umgebung navigiert. In einigen Ausführungsformen kann das Wischtuch auf einem vorderen Teil des Reinigungsroboters positioniert sein. In einigen Ausführungsformen kann ein trockenes Tuch auf einem hinteren Teil des Reinigungsroboters positioniert werden. In einigen Ausführungsformen kann das trockene Tuch beim Navigieren des Roboters die Fahrfläche berühren und aufgrund seiner Position auf dem Roboter relativ zum Wischtuch die Fahrfläche trocknen, nachdem die Fahrfläche mit dem Wischtuch gewischt wurde. Zum Beispiel,FEIGE.16Azeigt einen Roboter inklusive Sensorfenstern1600hinter denen Sensoren positioniert sind, Sensoren1601(z. B. Kamera, Lasersender, TOF-Sensor usw.), Benutzeroberfläche1602, eine Batterie1603, ein Nasswisch-Bewegungsmechanismus1604, eine Leiterplatte und eine Verarbeitungseinheit1605, ein Radmotor und ein Getriebe1606, Räder1607, ein Nasswischbehälter1608, ein nasses Wischtuch1609und ein trockenes Wischtuch1610.FEIGE.16Bzeigt den Roboter, der in eine Richtung fährt1611. Während der Fahrt oder während einer Pause ein nasses Wischtuch verwenden1609bewegt sich in Vorwärtsrichtung hin und her1612und Rückwärtsrichtung1613, bzw. Während der Roboter vorwärts fährt, trocknen Sie das Tuch1610trocknet die Fahrfläche, die mit einem feuchten Wischtuch gereinigt wurde1609. In einigen Ausführungsformen kann die Wischverlängerung ein Mittel umfassen, um die Wischverlängerung während des Betriebs in Vibration zu versetzen (z. B. Vibrationsmotoren mit exzentrischer rotierender Masse). In einigen Ausführungsformen kann die Wischverlängerung ein Mittel zum Ein- und Auskuppeln der Wischverlängerung während des Betriebs umfassen, indem die Wischverlängerung in einer vertikalen Ebene senkrecht zur Arbeitsfläche nach oben und unten bewegt wird. In einigen Ausführungsformen kann das Ein- und Ausrücken manuell durch einen Benutzer gesteuert werden. In einigen Ausführungsformen kann das Ein- und Auskuppeln automatisch vom Prozessor basierend auf sensorischen Eingaben gesteuert werden. Beispielsweise kann der Prozessor die Wischverlängerung so betätigen, dass sie sich nach oben von der Fahrfläche wegbewegt, wenn er mithilfe von Sensordaten einen Teppich erkennt.

In einigen Ausführungsformen kann der Prozessor des Roboters mithilfe von Daten, die von Sensoren des Roboters gesammelt werden, eine globale und lokale Karte der Umgebung erstellen. In einigen Ausführungsformen können die Sensoren mindestens einen Bildsensor umfassen. In einer Ausführungsform kann ein Bildsensor Vektoren vom Bildsensor zu Objekten in der Umgebung messen und der Prozessor kann die L2-Norm der Vektoren unter Verwendung von ∥x∥ berechnenP=(Sich|xich|P)1/Pmit P=2, um die Tiefe von Objekten abzuschätzen. In einigen Ausführungsformen kann der Prozessor frühere Daten anpassen, um eine gemessene Bewegung des Roboters zu berücksichtigen, während er sich von der Beobachtung eines Sichtfelds zum nächsten bewegt (z. B. Abweichungen voneinander aufgrund einer unterschiedlichen Sensorhaltung). In einigen Ausführungsformen kann ein Bewegungsmessgerät wie ein Kilometerzähler, ein optischer Verfolgungssensor (OTS), ein Gyroskop, eine Trägheitsmesseinheit (IMU), ein optischer Flusssensor usw. die Bewegung des Roboters und damit des Sensors messen (vorausgesetzt, die beiden bewegen sich). als eine Einheit). In manchen Fällen gleicht der Prozessor einen neuen Datensatz mit zuvor erfassten Daten ab. In einigen Ausführungsformen vergleicht der Prozessor die neuen Daten mit den vorherigen Daten und identifiziert eine Übereinstimmung, wenn eine Anzahl aufeinanderfolgender Messwerte aus den neuen Daten und den vorherigen Daten ähnlich sind. In einigen Ausführungsformen kann das Identifizieren übereinstimmender Muster in den Werten der Messwerte in den neuen Daten und den vorherigen Daten auch zum Identifizieren einer Übereinstimmung verwendet werden. In einigen Ausführungsformen kann die Schwellenwertermittlung zum Identifizieren einer Übereinstimmung zwischen den neuen und vorherigen Daten verwendet werden, wobei interessierende Bereiche oder Objekte in einem Bild mithilfe der Schwellenwertermittlung identifiziert werden können, da unterschiedliche Bereiche oder Objekte unterschiedliche Pixelintensitätsbereiche aufweisen. In einigen Ausführungsformen kann der Prozessor eine Kostenfunktion bestimmen und die Kostenfunktion minimieren, um eine Übereinstimmung zwischen den neuen und den vorherigen Daten zu finden. In einigen Ausführungsformen kann der Prozessor eine Transformation erstellen und die neuen Daten mit den vorherigen Daten zusammenführen und feststellen, ob eine Konvergenz vorliegt. In einigen Ausführungsformen kann der Prozessor eine Übereinstimmung zwischen den neuen Daten und den vorherigen Daten basierend auf der Verschiebung und Drehung des Sensors zwischen aufeinanderfolgenden Bildern, die von einer IMU gemessen werden, bestimmen. Beispielsweise kann auf der Grundlage interozeptiver Sensormessungen auf eine Überlappung von Daten geschlossen werden. In einigen Ausführungsformen kann die Translation und Drehung des Sensors zwischen Frames durch zwei separate Bewegungsmessgeräte (z. B. optischer Encoder und Gyroskop) gemessen werden und die Bewegung des Roboters kann der Durchschnitt der Messungen der beiden separaten Geräte sein. In einigen Ausführungsformen sind die Daten von einem Bewegungsmessgerät die verwendeten Bewegungsdaten und die Daten vom zweiten Bewegungsmessgerät werden zur Bestätigung der Daten des ersten Bewegungsmessgeräts verwendet. In einigen Ausführungsformen kann der Prozessor die Bewegung des Sensors zwischen aufeinanderfolgenden Frames nutzen, um die Übereinstimmung zwischen den neuen und vorherigen Daten zu validieren. Oder in einigen Ausführungsformen kann ein Vergleich zwischen den Werten der neuen Daten und früheren Daten verwendet werden, um die Übereinstimmung zu validieren, die auf der Grundlage der gemessenen Bewegung des Sensors zwischen aufeinanderfolgenden Bildern ermittelt wurde. Beispielsweise kann der Prozessor Daten von einem exterozeptiven Sensor (z. B. Bildsensor) verwenden, um eine Überlappung von Daten von einer IMU, einem Encoder oder einem OTS zu bestimmen. In einigen Ausführungsformen kann der Prozessor die neuen Daten an überlappenden Punkten mit den vorherigen Daten zusammenfügen, um die Karte zu erstellen oder zu aktualisieren. In einigen Ausführungsformen kann der Prozessor die Winkelposition des Roboters auf der Grundlage einer Größe der Überlappung der übereinstimmenden Daten ableiten und die Winkelposition verwenden, um die Informationen des Kilometerzählers anzupassen, um das inhärente Rauschen eines Kilometerzählers zu überwinden.

In einigen Ausführungsformen kann die Karte ein Zustandsraum mit möglichen Werten für x, y, z sein. In einigen Ausführungsformen kann ein Wert von x und y ein Punkt auf einer kartesischen Ebene sein, auf dem der Roboter fährt, und der Wert von z kann eine Höhe von Hindernissen oder eine Tiefe von Klippen sein. In einigen Ausführungsformen kann die Karte zusätzliche Dimensionen enthalten (z. B. Trümmeransammlung, Bodentyp, Hindernisse, Klippen, Stände usw.). Zum Beispiel,FEIGE.17zeigt ein Beispiel einer Karte, die eine Fahrfläche mit vertikalen Wellen darstellt (z. B. angezeigt durch Messungen in x-, y- und z-Richtung). In einigen Ausführungsformen kann ein Kartenfüller jeder Zelle in einer Karte Werte zuweisen (z. B. kartesisch). In einigen Ausführungsformen kann der jeder Zelle zugeordnete Wert verwendet werden, um eine Position der Zelle auf einer ebenen Oberfläche zusammen mit einer Höhe von einer Nullpunktebene zu bestimmen. In einigen Ausführungsformen kann eine Referenzebene (z. B. die x-y-Ebene) so positioniert werden, dass sie einen tiefsten Punkt in der Karte einschließt. Auf diese Weise sind alle vertikalen Messungen (z. B. Z-Werte, die in einer Z-Richtung senkrecht zur Referenzebene gemessen werden) immer positiv. In einigen Ausführungsformen kann der Prozessor des Roboters die Referenzebene jedes Mal anpassen, wenn ein neuer tiefer Punkt entdeckt wird, und alle vertikalen Messungen entsprechend anpassen. In einigen Ausführungsformen kann die Referenzebene auf einer Höhe der Arbeitsoberfläche an einer Stelle positioniert werden, an der der Roboter mit der Ausführung der Arbeit beginnt, und den Daten kann ein positiver Wert zugewiesen werden, wenn ein Bereich mit einer erhöhten Höhe relativ zur Referenzebene vorhanden ist entdeckt (z. B. eine Neigung oder Unebenheit) und ihm wird ein negativer Wert zugewiesen, wenn ein Bereich mit verringerter Höhe relativ zur Referenzebene beobachtet wird. In einigen Ausführungsformen kann eine Karte eine beliebige Anzahl von Dimensionen umfassen. Beispielsweise kann eine Karte Abmessungen enthalten, die Informationen über Bereiche liefern, in denen zuvor eine hohe Ansammlung von Trümmern beobachtet wurde, oder über Bereiche, die zuvor schwer zu durchqueren waren, oder über Bereiche, die zuvor von einem Benutzer identifiziert wurden (z. B. mithilfe einer Anwendung von a). (Kommunikationsgerät), beispielsweise Bereiche, die zuvor von einem Benutzer als Bereiche markiert wurden, die häufig gereinigt werden müssen. In einigen Ausführungsformen kann der Prozessor eine Grenze (z. B. eine Ecke) identifizieren und die Grenze in die Karte einbeziehen.

In einigen Ausführungsformen kann der Prozessor die Karte zumindest auf der Grundlage der L2-Norm von Vektoren generieren oder aktualisieren, die von Sensoren zu Objekten in der Umgebung gemessen werden. In einigen Ausführungsformen kann jede L2-Norm eines Vektors durch einen Durchschnitt der L2-Normen ersetzt werden, die benachbarten Vektoren entsprechen. In einigen Ausführungsformen kann der Prozessor ausgefeiltere Methoden verwenden, um plötzliche Spitzen in den Sensormesswerten herauszufiltern. In einigen Ausführungsformen können plötzliche Spitzen als Ausreißer betrachtet werden. In einigen Ausführungsformen können plötzliche Spitzen oder Abfälle in den Sensormesswerten das Ergebnis einer kurzzeitigen Umwelteinwirkung auf den Sensor sein. In einigen Ausführungsformen kann der Prozessor unter Verwendung aufgenommener Bilder der Umgebung eine Karte generieren oder aktualisieren. In einigen Ausführungsformen kann ein erfasstes Bild verarbeitet werden, bevor das Bild zum Generieren oder Aktualisieren der Karte verwendet wird. In einigen Ausführungsformen kann die Verarbeitung das Ersetzen der jedem Pixel entsprechenden Messwerte durch Durchschnittswerte der benachbarten Pixel entsprechenden Messwerte umfassen.FEIGE.18veranschaulicht ein Beispiel für das Ersetzen eines Messwerts1800entsprechend einem Pixel mit einem Durchschnitt der Messwerte1801der entsprechenden Nachbarpixel1802. In einigen Ausführungsformen können Pixelwerte eines Bildes in ein Array oder eine beliebige Datenstruktur oder einen Container eingelesen werden, der Elemente der Pixelwerte indizieren kann. In einigen Ausführungsformen kann die Datenstruktur zusätzliche Funktionen wie Einfügen oder Löschen in der Mitte, Anfang oder Ende durch Austauschen von Zeigern im Speicher bereitstellen. In einigen Ausführungsformen können Indizes wie i, j und k verwendet werden, um auf jedes Element der Pixelwerte zuzugreifen. In einigen Ausführungsformen zählen negative Indizes vom letzten Element rückwärts. In einigen Ausführungsformen kann der Prozessor des Roboters die Pixelwerte in Graustufen umwandeln. In einigen Ausführungsformen kann die Grauskala von Schwarz bis Weiß reichen und in eine Reihe von Möglichkeiten unterteilt sein. Beispielsweise können Zahlen im Bereich von 0 bis 256 verwendet werden, um 256 Eimer mit Farbintensitäten zu beschreiben. Jedes Element des Arrays kann einen Wert haben, der einem der Farbintensitätsbereiche entspricht. In einigen Ausführungsformen kann der Prozessor ein Diagramm erstellen, das die Beliebtheit jedes Farbbereichs im Bild zeigt. Beispielsweise kann der Prozessor das Array durchlaufen und eine Beliebtheitsabstimmung des 0-Farbintensitäts-Buckets für jedes Element des Arrays erhöhen, das einen Wert von 0 hat. Dies kann für jeden der 256 Farbintensitäts-Buckets wiederholt werden. In einigen Ausführungsformen können Eigenschaften der Umgebung zum Zeitpunkt der Bildaufnahme die Beliebtheit der 256 Farbintensitätsbereiche beeinflussen. Beispielsweise kann ein Bild, das an einem hellen Tag aufgenommen wurde, bei Farbpaletten, die weniger intensive Farben aufweisen, eine höhere Beliebtheit genießen. In einigen Ausführungsformen kann die Hauptkomponentenanalyse verwendet werden, um die Dimensionalität eines Bildes zu reduzieren, wenn die Anzahl der Pixel mit der Auflösung zunimmt. Beispielsweise liegen die Abmessungen eines Megapixel-Bildes im Millionenbereich. In einigen Ausführungsformen kann die Singulärwertzerlegung verwendet werden, um Hauptkomponenten zu finden.

In einigen Ausführungsformen speichert der Prozessor des Roboters einen Teil der L2-Normen, beispielsweise L2-Normen an kritischen Punkten innerhalb der Umgebung. In einigen Ausführungsformen können kritische Punkte zweite oder dritte Ableitungen einer die L2-Normen verbindenden Funktion sein. In einigen Ausführungsformen können kritische Punkte zweite oder dritte Ableitungen von Rohpixelwerten sein. In einigen Ausführungsformen kann die Vereinfachung verlustbehaftet sein. In einigen Ausführungsformen können die verlorenen Informationen bei jedem Tick des Prozessors abgerufen und bereinigt werden, wenn der Roboter weitere Informationen sammelt. In einigen Ausführungsformen kann die Genauigkeit der Informationen zunehmen, wenn sich der Roboter in der Umgebung bewegt. Beispielsweise kann festgestellt werden, dass ein kritischer Punkt im Laufe der Zeit zwei oder mehr kritische Punkte umfasst. In einigen Ausführungsformen tritt der Informationsverlust möglicherweise nicht auf oder kann vernachlässigbar sein, wenn kritische Punkte mit hoher Genauigkeit extrahiert werden.

In einigen Ausführungsformen können Tiefen für alle Objekte in der Umgebung gemessen werden. In einigen Ausführungsformen können Tiefen zu bestimmten Orientierungspunkten (z. B. einigen identifizierten Objekten) oder einem Teil der Objekte in der Umgebung (z. B. einer Teilmenge von Wänden) gemessen werden. In einigen Ausführungsformen kann der Prozessor eine Karte basierend auf den Tiefen eines Teils der Objekte in der Umgebung generieren.FEIGE.19Azeigt ein Beispiel eines Roboters1900mit einem Sensor, der Daten sammelt, die die Tiefe einer Teilmenge von Punkten anzeigen1901entlang der Wände1902der Umwelt.FEIGE.19Bveranschaulicht ein Beispiel eines räumlichen Modells1903basierend auf den Tiefen der Teilmenge der Punkte generiert1901der gezeigten UmgebungFEIGE.119A, vorausgesetzt, die Punkte sind durch Linien verbunden. Als Roboter1900bewegt sich zum Zeitpunkt t von einer ersten Position0zu einer zweiten Position zum Zeitpunkt t10innerhalb der Umgebung und sammelt weitere Daten, das räumliche Modell1903kann aktualisiert werden, um die Umgebung genauer darzustellen, wie in dargestelltFEIGE.19C.

In manchen Ausführungsformen der Sensor des Roboters1900Erfasst weiterhin Daten für die Teilmenge der Punkte1901entlang der Wände1902als der Roboter1900bewegt sich innerhalb der Umgebung. Zum Beispiel,FEIGE.20Azeigt den Sensor des Roboters1900Sammeln von Daten zu derselben Teilmenge von Punkten1901zu drei verschiedenen Zeiten2000,2001, Und2002während sich der Roboter in der Umgebung bewegt. In manchen Fällen können je nach Position des Roboters zwei Besonderheiten als ein einziges Merkmal (oder Merkmal) auftreten. Zum Beispiel,FEIGE.20Bveranschaulicht den Roboter1900an einer Stelle s1Sammeln von Daten, die die Tiefen zu den Punkten A und B angeben. Von Position s1Die Punkte A und B scheinen dasselbe Merkmal zu sein. Als der Roboter1900fährt zu einer Position s2und beobachtet die Kante, auf der die Punkte A und B liegen, aus einem anderen Winkel, dem Prozessor des Roboters1900kann die Punkte A und B als separate Merkmale unterscheiden. In einigen Ausführungsformen gewinnt der Prozessor des Roboters Klarheit über Merkmale, während er in der Umgebung navigiert und die Merkmale von verschiedenen Positionen aus beobachtet, und kann möglicherweise feststellen, ob es sich bei einem einzelnen Merkmal tatsächlich um zwei kombinierte Merkmale handelt.

In einigen Ausführungsformen kann sich der Pfad des Roboters während der Kartierung überschneiden. Zum Beispiel,FEIGE.21zeigt einen Roboter2100, ein Weg des Roboters2101, eine Umgebung2102und ein anfänglicher Bereich kartiert2103während der Arbeit. In einigen Ausführungsformen kann sich der Weg des Roboters überlappen, was zu einer doppelten Abdeckung von Bereichen der Umgebung führt. Zum Beispiel der Weg2101illustriert inFEIGE.21Enthält überlappende Segmente2104. In einigen Fällen verwirft der Prozessor des Roboters möglicherweise einige überlappende Daten von der Karte. In einigen Ausführungsformen kann der Prozessor des Roboters eine Überlappung im Pfad basierend auf Bildern bestimmen, die mit einer Kamera des Roboters aufgenommen wurden, während sich der Roboter in der Umgebung bewegt.

In einigen Ausführungsformen kann der Prozessor Linien extrahieren, die zum Aufbau der Umgebung des Roboters verwendet werden können. In manchen Fällen kann mit jedem Messwert einer verrauschten Sensormessung eine Unsicherheit verbunden sein, und es kann sein, dass keine einzelne Linie durch die Messung verläuft. In solchen Fällen kann der Prozessor anhand eines bestimmten Optimierungskriteriums die bestmögliche Übereinstimmung auswählen. In einigen Fällen können Sensormessungen in Polarkoordinaten bereitgestellt werden, wobei xich=(rich, ichich). Der Prozessor kann die mit jeder Messung verbundene Unsicherheit mit zwei Zufallsvariablen X modellierenich=(Sich,Qich). Um die Markovian-Anforderung zu erfüllen, muss die Unsicherheit in Bezug auf den tatsächlichen Wert von P und Q unabhängig sein, wobei E[Pich·PJ]=E[Pich]E[PJ], E[Qich·QJ]=E[Qich]E[FJ] und E[Pich·QJ]=E[Pich]E[FJ], ∀i,j=1, . . . , N. In einigen Ausführungsformen kann jede Zufallsvariable einer Gaußschen Wahrscheinlichkeit unterliegen, wobei Pich˜N(Sich, (P2)ri) und Qich˜N(θich, (P2)θi). In einigen Ausführungsformen kann der Prozessor entsprechende euklidische Koordinaten x = ρ cos θ und y = ρ sin θ einer Polarkoordinate bestimmen. In einigen Ausführungsformen kann der Prozessor eine Linie bestimmen, auf der alle Messungen liegen, d. h. ρ cos θ cos α + ρ sin θ sin α – r = ρ cos cos(θ – α) – r = 0. Der Wert Null stellt jedoch eine ideale Situation dar, in der kein Fehler vorliegt. Tatsächlich ist dies ein Maß für den Fehler zwischen einem Messpunkt (ρ,θ) und der Linie, insbesondere im Hinblick auf den minimalen orthogonalen Abstand zwischen dem Punkt und der Linie. In einigen Ausführungsformen kann der Prozessor den Fehler minimieren. In einigen Ausführungsformen kann der Prozessor die Quadratsumme aller Fehler unter Verwendung von S = Σ minimierenichDich2=Sich(Richcos cos(i−α)−r)2, wobei

S A = 0 Und S R = 0 .
In einigen Fällen weisen Messungen möglicherweise nicht dieselben Fehler auf. In einigen Ausführungsformen kann ein Messpunkt der räumlichen Darstellung der Umgebung einen Mittelwert der Messung darstellen und ein Kreis um den Punkt kann die Varianz der Messung anzeigen. Die Größe des Kreises kann bei verschiedenen Messungen unterschiedlich sein und einen Hinweis auf den Einfluss geben, den jeder Punkt auf die Bestimmung der Lage der Umfangslinie haben kann. Zum Beispiel inFEIGE.22Awerden drei Messungen A, B und C mit jeweils einem Kreis angezeigt2200Angabe der Varianz der jeweiligen Messung. Die Umfangslinie2201liegt näher an Messung B, da sie ein höheres Vertrauen und eine geringere Varianz aufweist. In manchen Fällen ist die Umfangslinie abhängig von den Maßen und deren Abweichungen möglicherweise keine gerade Linie. Während diese Methode zur Bestimmung einer Position einer Begrenzungslinie zu einer Begrenzungslinie führen kann2201gezeigt inFEIGE.22B, kann die Umfangslinie der Umgebung tatsächlich wie die Umfangslinie aussehen2202oder2203illustriert inFEIGE.22CoderFEIGE.22D. In einigen Ausführungsformen kann der Prozessor nach bestimmten Mustern in den Messpunkten suchen. Beispielsweise kann es wünschenswert sein, Muster zu finden, die eine der Kombinationen in darstellenFEIGE.23.

In einigen Ausführungsformen kann der Prozessor (oder ein vom Prozessor ausgeführter SLAM-Algorithmus) Scandaten erhalten, die von Sensoren des Roboters während der Drehung des Roboters gesammelt werden. In einigen Ausführungsformen kann eine Teilmenge der Daten zum Erstellen der Karte ausgewählt werden. Beispielsweise können 49 Datenscans für die Kartenerstellung erfasst werden, und vier davon können als Datenscans identifiziert werden, die zum Abgleichen und Erstellen der Karte geeignet sind. In einigen Ausführungsformen kann der Prozessor eine passende Datenlage ermitteln und entsprechend eine Korrektur vornehmen. Beispielsweise kann eine passende Pose als (−0,994693, −0,105234, −2,75821) bestimmt und auf (−1,01251, −0,0702046, −2,73414) korrigiert werden, was einem Kursfehler von 1,3792 Grad und einer Gesamtkorrektur von ( −0,0178176, 0,0350292, 0,0240715) nach der Reise (0,0110555, 0,0113022, 6,52475). In einigen Ausführungsformen kann ein Multi-Map-Scan-Matcher zum Abgleichen von Daten verwendet werden. In einigen Ausführungsformen kann der Multi-Map-Scan-Matcher fehlschlagen, wenn ein Übereinstimmungsschwellenwert nicht erreicht wird. In einigen Ausführungsformen kann ein Chi-Quadrat-Test verwendet werden.

Einige Ausführungsformen können es dem Prozessor des Roboters ermöglichen, mithilfe von Daten von einer oder mehreren Kameras eine Karte der Umgebung zu erstellen, während der Roboter Arbeiten in erkannten Bereichen der Umgebung durchführt. Die Arbeitsumgebung kann Möbel, Hindernisse, statische Objekte, sich bewegende Objekte, Wände, Decken und Vorrichtungen umfassen, ist aber nicht darauf beschränkt (ein Ausdruck, der weder hier noch an anderer Stelle in diesem Dokument so verstanden werden soll, dass er andeutet, dass andere Listen einschränkend sind). , Umfänge, Gegenstände, Komponenten der oben genannten und/oder andere Artikel. Die Umgebung kann auf allen Seiten geschlossen sein oder eine oder mehrere Öffnungen, offene Seiten und/oder offene Abschnitte aufweisen und kann jede beliebige Form haben. In einigen Ausführungsformen kann der Roboter eine Bordkamera umfassen, beispielsweise eine mit null Freiheitsgraden der aktivierten Bewegung relativ zum Roboter (der selbst drei Freiheitsgrade relativ zu einer Umgebung haben kann), oder einige Ausführungsformen können eine haben mehr oder weniger Freiheitsgrade; Beispielsweise kann die Kamera in einigen Fällen relativ zum Roboter hin und her scannen.

Eine wie hierin beschriebene Kamera kann verschiedene optische und nichtoptische Bildgebungsgeräte umfassen, ist aber nicht darauf beschränkt, wie eine Tiefenkamera, Stereovisionskamera, Time-of-Flight-Kamera oder jede andere Art von Kamera, die Daten aus welcher Tiefe ausgibt Auf Objekte kann über ein Sichtfeld oder jede andere Art von Kamera, die in der Lage ist, eine Pixmap zu erstellen, oder über jedes Gerät, dessen Ausgabedaten zur Wahrnehmung der Umgebung verwendet werden können, geschlossen werden. Eine Kamera kann auch mit einer Infrarotbeleuchtung (IR) (z. B. einem Projektor mit strukturiertem Licht) kombiniert werden, und die Tiefe von Objekten kann aus Bildern abgeleitet werden, die von Objekten aufgenommen wurden, auf die IR-Licht projiziert wird (z. B. basierend auf Verzerrungen in einem Muster von). strukturiertes Licht). Beispiele für Methoden zum Schätzen der Tiefe von Objekten unter Verwendung mindestens eines IR-Lasers, mindestens eines Bildsensors und eines Bildprozessors sind in der US-Patentanmeldung Seriennr. Nr. 15/243.783, 62/208.791, 15/224.442 und 15/674.310, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. Es können auch andere bildgebende Geräte verwendet werden, mit denen die Tiefe von Objekten beobachtet werden kann, beispielsweise Ultraschallsensoren, Sonar-, LIDAR- und LADAR-Geräte. Somit können verschiedene Kombinationen einer oder mehrerer Kameras und Sensoren verwendet werden.

In einigen Ausführungsformen misst eine beispielsweise am Roboter installierte Kamera die Tiefe von der Kamera zu Objekten innerhalb eines ersten Sichtfelds. In einigen Ausführungsformen erstellt ein Prozessor des Roboters ein erstes Segment der Karte aus den im ersten Sichtfeld erfassten Tiefenmessungen. Der Prozessor kann einen ersten erkannten Bereich innerhalb der Arbeitsumgebung festlegen, der durch das erste Segment der Karte und die äußeren Grenzen des ersten Sichtfelds begrenzt ist. In einigen Ausführungsformen beginnt der Roboter mit der Ausführung von Arbeiten innerhalb des ersten erkannten Bereichs. Während sich der Roboter mit angeschlossener Kamera im ersten erkannten Bereich dreht und verschiebt, nimmt die Kamera kontinuierlich Tiefenmessungen zu Objekten im Sichtfeld der Kamera vor. Unter der Annahme, dass die Bildrate der Kamera schnell genug ist, um in der Zeit, die der Roboter benötigt, um die Breite des Bildes zu drehen, mehr als ein Datenbild zu erfassen, überlappt ein Teil der in jedem Sichtfeld erfassten Daten mit einem Teil der erfassten Daten innerhalb des vorherigen Sichtfeldes. Wenn sich der Roboter bewegt, um ein neues Sichtfeld zu beobachten, passt der Prozessor in einigen Ausführungsformen Messungen aus vorherigen Sichtfeldern an, um die Bewegung des Roboters zu berücksichtigen. In einigen Ausführungsformen verwendet der Prozessor Daten von Geräten wie einem Kilometerzähler, einem Gyroskop und/oder einem optischen Encoder, um die Bewegung des Roboters mit angeschlossener Kamera zu bestimmen.

In einigen Ausführungsformen vergleicht der Prozessor die im zweiten Sichtfeld erfassten Tiefenmessungen mit denen im ersten Sichtfeld, um die überlappenden Messungen zwischen den beiden Sichtfeldern zu ermitteln. Der Prozessor kann verschiedene Methoden verwenden, um Messungen aus überlappenden Sichtfeldern zu vergleichen. Ein Überlappungsbereich zwischen den beiden Sichtfeldern wird identifiziert (z. B. bestimmt), wenn (z. B. während der Bewertung mehrere Kandidaten überlappen) eine Reihe aufeinanderfolgender (z. B. im Pixelraum benachbarter) Tiefen vom ersten und zweiten Sichtfeld entfernt sind gleich oder nahe im Wert sind. Obwohl der Wert überlappender Tiefenmessungen aus dem ersten und zweiten Sichtfeld möglicherweise nicht genau derselbe ist, können Tiefen mit ähnlichen Werten, die innerhalb eines Toleranzbereichs voneinander liegen, identifiziert werden (z. B. basierend auf der Ähnlichkeit der Werte als übereinstimmend bestimmt werden). Werte). Darüber hinaus kann die Identifizierung übereinstimmender Muster im Wert der Tiefenmessungen innerhalb des ersten und zweiten Sichtfelds auch zur Identifizierung des Überlappungsbereichs verwendet werden. Beispielsweise kann ein plötzlicher Anstieg und dann Abfall der in beiden Messreihen beobachteten Tiefenwerte zur Identifizierung des Überlappungsbereichs herangezogen werden. Beispiele hierfür sind die Anwendung eines Kantenerkennungsalgorithmus (wie Haar oder Canny) auf die Sichtfelder und die Ausrichtung von Kanten in den resultierenden transformierten Ausgaben. Andere Muster, beispielsweise steigende Werte gefolgt von konstanten Werten oder konstante Werte gefolgt von abnehmenden Werten oder jedes andere Muster in den Werten der wahrgenommenen Tiefen, können ebenfalls zur Schätzung des Überlappungsbereichs verwendet werden. Zur Identifizierung solcher Ähnlichkeiten können eine Jacobi- und eine Hesse-Matrix verwendet werden.

In einigen Ausführungsformen kann die Schwellenwertermittlung zum Identifizieren von Überlappungen verwendet werden, wobei interessierende Bereiche oder Objekte innerhalb eines Bilds mithilfe der Schwellenwertermittlung identifiziert werden können, da unterschiedliche Bereiche oder Objekte unterschiedliche Pixelintensitätsbereiche aufweisen. Beispielsweise kann ein in einem Bild erfasstes Objekt mit einem hohen Intensitätsbereich von einem Hintergrund mit einem geringen Intensitätsbereich durch Schwellenwertbildung getrennt werden, wobei alle Pixelintensitäten unterhalb eines bestimmten Schwellenwerts verworfen oder segmentiert werden, sodass nur die interessierenden Pixel übrig bleiben . In einigen Ausführungsformen kann eine Metrik wie der Szymkiewicz-Simpson-Koeffizient verwendet werden, um anzugeben, wie gut die Überlappung zwischen den beiden Sätzen von Tiefenmessungen ist. In einigen Ausführungsformen können die Winkelgeschwindigkeit und die Zeit zwischen aufeinanderfolgenden Sichtfeldern verwendet werden, um den Überlappungsbereich abzuschätzen. Oder einige Ausführungsformen können eine Überlappung mit einer Faltung bestimmen. Einige Ausführungsformen können eine Kernelfunktion implementieren, die ein aggregiertes Maß für Unterschiede (z. B. einen quadratischen Mittelwert) zwischen einigen oder allen einer Sammlung benachbarter Tiefenmesswerte in einem Bild im Verhältnis zu einem Teil des anderen Bildes bestimmt, für das die Kernelfunktion gilt wird angewandt. Einige Ausführungsformen können dann die Faltung dieser Kernelfunktion über das andere Bild bestimmen, z. B. in einigen Fällen mit einem Schritt von mehr als einem Pixelwert. Einige Ausführungsformen können dann einen Mindestwert der Faltung als einen Bereich der identifizierten Überlappung auswählen, der den Teil des Bildes, aus dem die Kernelfunktion gebildet wurde, mit dem Bild ausrichtet, auf das die Faltung angewendet wurde.

In einigen Ausführungsformen kann der Prozessor Überlappungen mithilfe von Rohpixelintensitätswerten identifizieren.FIG.24A und24BVeranschaulichen Sie ein Beispiel für die Identifizierung eines Überlappungsbereichs mithilfe von rohen Pixelintensitätsdaten und der Kombination von Daten an überlappenden Punkten. InFEIGE.24A, der überlappende Bereich zwischen überlappenden Bildern2400in einem ersten Sichtfeld und Bild erfasst2401Die in einem zweiten Sichtfeld erfassten Werte können durch Vergleich der Pixelintensitätswerte jedes erfassten Bildes (oder deren Transformation, wie z. B. die Ausgabe einer Pipeline, die die Normalisierung der Pixelintensitäten, die Anwendung der Gaußschen Unschärfe zur Reduzierung des Rauscheffekts und die Erkennung von Kanten umfasst) bestimmt werden die unscharfe Ausgabe (z. B. Canny- oder Haar-Kantenerkennung) und die Schwellenwertberechnung der Ausgabe von Kantenerkennungsalgorithmen, um eine Bitmap wie die gezeigte zu erzeugen) und das Identifizieren übereinstimmender Muster in den Pixelintensitätswerten der beiden Bilder, beispielsweise durch Ausführen von Operationen, durch die einige Ausführungsformen bestimmen eine Überlappung mit einer Faltung. Linien2402stellen Pixel mit hohem Pixelintensitätswert (z. B. über einem bestimmten Schwellenwert) in jedem Bild dar. Bereich2403des Bildes2400und Bereich2404des Bildes2401Erfassen Sie den gleichen Bereich der Umgebung und daher wird im Bereich das gleiche Muster für Pixelintensitätswerte erfasst2403des Bildes2400und Bereich2404des Bildes2401. Nach der Identifizierung übereinstimmender Muster in den Pixelintensitätswerten im Bild2400Und2401kann ein passender Überlappungsbereich zwischen beiden Bildern ermittelt werden. InFEIGE.24B, werden die Bilder im Überlappungsbereich kombiniert2405um ein größeres Bild zu erzeugen2406der Umwelt. In einigen Fällen können den Bildern entsprechende Daten kombiniert werden. Beispielsweise können Tiefenwerte basierend auf der anhand des Bilds ermittelten Ausrichtung ausgerichtet werden.

FIG.25A-25CVeranschaulichen Sie ein weiteres Beispiel für die Identifizierung eines Überlappungsbereichs mithilfe von Rohpixelintensitätsdaten und der Kombination von Daten an überlappenden Punkten.FEIGE.25Averanschaulicht eine Draufsicht (Draufsicht) eines Objekts, beispielsweise einer Wand, mit unebenen Oberflächen, wobei beispielsweise die Oberfläche2500ist weiter von einem Beobachter entfernt als die Oberfläche2501oder Oberfläche2502ist weiter von einem Beobachter entfernt als die Oberfläche2503. In einigen Ausführungsformen kann mindestens ein Infrarot-Linienlaser, der in einem Abwärtswinkel relativ zu einer horizontalen Ebene positioniert ist und mit mindestens einer Kamera gekoppelt ist, verwendet werden, um die Tiefe mehrerer Punkte auf den unebenen Oberflächen aus erfassten Bildern des Linienlasers zu bestimmen, die auf die unebenen Oberflächen projiziert werden unebene Oberflächen des Objekts. Da der Linienlaser in einem nach unten gerichteten Winkel positioniert ist, erscheint die Position des Linienlasers im aufgenommenen Bild für näher gelegene Oberflächen höher und für weiter entfernte Oberflächen niedriger. Ähnliche Ansätze können mit Lasern angewendet werden, die in der horizontalen Ebene von einer Kamera versetzt sind. Die Position der Laserlinie (oder eines Merkmals eines strukturierten Lichtmusters) im Bild kann erkannt werden, indem Pixel mit einer Intensität über einem Schwellenwert gefunden werden. Die Position des Linienlasers im aufgenommenen Bild kann mit einem Abstand von der Oberfläche, auf die der Linienlaser projiziert wird, in Zusammenhang stehen. InFEIGE.25B, aufgenommene Bilder2504Und2505Dargestellt sind die Werte der auf die Objektoberfläche projizierten Laserlinie für zwei verschiedene Sichtfelder. Projizierte Laserlinien mit niedrigerer Position, z. B. Laserlinien2506Und2507in Bildern2504Und2505entsprechen jeweils Objektoberflächen2500Und2502, bzw. weiter vom Infrarotstrahler und der Kamera entfernt. Projizierte Laserlinien mit höherer Position, z. B. Laserlinien2508Und2509in Bildern2504Und2505entsprechen jeweils Objektoberflächen2501Und2503, bzw. näher am Infrarotstrahler und an der Kamera. Aufgenommene Bilder2504Und2505Bilder aus zwei verschiedenen Sichtfeldern können zu einem größeren Bild der Umgebung kombiniert werden, indem ein Überlappungsbereich zwischen den beiden Bildern gefunden und an Überlappungspunkten zusammengefügt wird. Der überlappende Bereich kann durch Identifizieren einer ähnlichen Anordnung von Pixelintensitäten in beiden Bildern gefunden werden, wobei Pixel mit hoher Intensität die Laserlinie sein können. Zum Beispiel Bildbereiche2504Und2505innerhalb gestrichelter Linien gebunden2510weisen eine ähnliche Anordnung der Pixelintensitäten auf, da beide Bilder denselben Teil des Objekts in ihrem Sichtfeld erfassen. Daher Bilder2504Und2505können an überlappenden Punkten kombiniert werden, um ein größeres Bild zu erstellen2511der gezeigten UmgebungFEIGE.25C. Die Position der Laserlinien im Bild2511, angezeigt durch Pixel mit einem Intensitätswert über einem Intensitätsschwellenwert, kann auch verwendet werden, um die Tiefe von Objektoberflächen aus dem Infrarotstrahler und der Kamera abzuleiten (siehe US-Patentanmeldung Nr. 15/674,310, deren gesamter Inhalt hiermit veröffentlicht wird). durch Bezugnahme einbezogen).

In einigen Ausführungsformen verwendet der Prozessor die gemessene Bewegung des Roboters mit angeschlossener Kamera, um die Überlappung zwischen Tiefenmessungen innerhalb des ersten Sichtfelds und des zweiten Sichtfelds zu ermitteln. In anderen Ausführungsformen wird die gemessene Bewegung verwendet, um die identifizierte Überlappung zwischen Tiefenmessungen zu überprüfen, die innerhalb überlappender Sichtfelder durchgeführt werden. In einigen Ausführungsformen wird der identifizierte Überlappungsbereich überprüft, wenn die identifizierte Überlappung innerhalb eines Schwellenwinkelabstands von der Überlappung liegt, die unter Verwendung mindestens einer der oben beschriebenen Methoden identifiziert wurde. In einigen Ausführungsformen verwendet der Prozessor die gemessene Bewegung, um einen Startpunkt für den Vergleich zwischen Messungen aus dem ersten Sichtfeld und Messungen aus dem zweiten Sichtfeld auszuwählen. Beispielsweise verwendet der Prozessor die gemessene Bewegung, um einen Startpunkt für den Vergleich zwischen Messungen aus dem ersten Sichtfeld und Messungen aus dem zweiten Sichtfeld zu wählen. Der Prozessor iteriert mit einer Methode wie der oben beschriebenen, um den Überlappungsbereich zu bestimmen. Der Prozessor überprüft den Überlappungsbereich, wenn er innerhalb eines Schwellenwinkelabstands zur Überlappung liegt, der anhand der gemessenen Bewegung geschätzt wird.

Einige Ausführungsformen können DB-SCAN für Tiefen und verwandte Werte wie Pixelintensität implementieren, z. B. in einem Vektorraum, der sowohl Tiefen als auch Pixelintensitäten entsprechend diesen Tiefen umfasst, um mehrere Cluster zu bestimmen, die jeweils Tiefenmessungen desselben Merkmals entsprechen eines Objekts. Einige Ausführungsformen können einen dichtebasierten Clustering-Algorithmus wie DBSCAN ausführen, um Gruppen zu erstellen, die den resultierenden Clustern entsprechen, und Ausreißer auszuschließen. Um nach Tiefenvektoren und zugehörigen Werten wie der Intensität zu gruppieren, können einige Ausführungsformen jeden der Tiefenvektoren durchlaufen und einen Tiefenvektor als Kerntiefenvektor festlegen, wenn mindestens eine Schwellenwertanzahl der anderen Tiefenvektoren innerhalb eines Schwellenwertabstands im liegt Vektorraum (der in Fällen, in denen die Pixelintensität einbezogen wird, höher als dreidimensional sein kann). Einige Ausführungsformen können dann jeden der Kerntiefenvektoren durchlaufen und einen Graphen erreichbarer Tiefenvektoren erstellen, wobei Knoten auf dem Graphen als Reaktion darauf identifiziert werden, dass entsprechende Nicht-Kern-Tiefenvektoren innerhalb eines Schwellenwertabstands eines Kerntiefenvektors im Graphen liegen und als Reaktion darauf, dass Kerntiefenvektoren im Diagramm durch andere Kerntiefenvektoren im Diagramm erreichbar sind, wobei zwei Tiefenvektoren voneinander erreichbar sind, wenn es einen Pfad von einem Tiefenvektor zum anderen Tiefenvektor gibt, wobei jede Verbindung und die Der Pfad ist ein Kerntiefenvektor und liegt innerhalb eines Schwellenwertabstands voneinander. Der Satz von Knoten in jedem resultierenden Diagramm kann in einigen Ausführungsformen als Cluster bezeichnet werden, und aus den Diagrammen ausgeschlossene Punkte können als Ausreißer bezeichnet werden, die keinen Clustern entsprechen.

Einige Ausführungsformen können dann den Schwerpunkt jedes Clusters in den räumlichen Dimensionen eines Ausgabetiefenvektors zum Erstellen von Grundrisskarten bestimmen. In einigen Fällen haben alle Nachbarn das gleiche Gewicht und in anderen Fällen hängt das Gewicht jedes Nachbarn von seinem Abstand von der betrachteten Tiefe oder (d. h. und/oder) der Ähnlichkeit der Pixelintensitätswerte ab. In einigen Ausführungsformen wird der k-nächste-Nachbarn-Algorithmus nur auf überlappende Tiefen mit Diskrepanzen angewendet. In einigen Ausführungsformen wird ein erster Satz von Messwerten festgelegt und als Referenz verwendet, während der zweite Satz von Messwerten, der sich mit dem ersten Satz von Messwerten überlappt, so transformiert wird, dass er mit der festen Referenz übereinstimmt. In einigen Ausführungsformen wird der transformierte Satz von Messwerten mit der festen Referenz kombiniert und als neue feste Referenz verwendet. In einer anderen Ausführungsform wird nur der vorherige Satz von Messwerten als feste Referenz verwendet. Die anfängliche Schätzung einer Transformationsfunktion zum Ausrichten der neu gelesenen Daten an der festen Referenz wird iterativ überarbeitet, um minimierte Abstände zwischen den neu gelesenen Daten und der festen Referenz zu erzeugen. Die Transformationsfunktion kann die Summe der quadrierten Differenzen zwischen übereinstimmenden Paaren aus den neu gelesenen Daten und früheren Messwerten aus der festen Referenz sein. Beispielsweise wird in einigen Ausführungsformen für jeden Wert in den neu gelesenen Daten der nächstliegende Wert unter den Messwerten in der festen Referenz gefunden. Im nächsten Schritt wird eine Methode zur Minimierung der Punkt-zu-Punkt-Abstandsmetrik verwendet, sodass jeder Wert in den neuen Messwerten bestmöglich an seine Übereinstimmung angepasst wird, die in den vorherigen Messwerten der festen Referenz gefunden wurde. Eine Methode zur Minimierung der Punkt-zu-Punkt-Abstandsmetrik, die verwendet werden kann, schätzt die Kombination von Rotation und Translation unter Verwendung eines quadratischen Mittelwerts. Der Prozess wird wiederholt, um die neu gelesenen Werte mithilfe der erhaltenen Informationen umzuwandeln. Diese Methoden können unabhängig voneinander verwendet oder zur Verbesserung der Genauigkeit kombiniert werden. In einigen Ausführungsformen wird die auf überlappende Tiefen innerhalb des Überlappungsbereichs angewendete Anpassung auf andere Tiefen jenseits des identifizierten Überlappungsbereichs angewendet, wobei die neuen Tiefen innerhalb des überlappenden Bereichs bei der Anpassung als Grundwahrheit betrachtet werden.

In einigen Ausführungsformen können aufgrund von Messrauschen Diskrepanzen zwischen den Werten überlappender Tiefenmessungen aus einem ersten Sichtfeld und einem zweiten Sichtfeld bestehen und die Werte der überlappenden Tiefen sind möglicherweise nicht genau gleich. In solchen Fällen können neue Tiefen berechnet werden oder einige der Tiefen können als genauer ausgewählt werden als andere. Beispielsweise können die überlappenden Tiefen aus dem ersten Sichtfeld und dem zweiten Sichtfeld (oder mehreren Sichtfeldern, in denen sich mehr Bilder überlappen, wie mehr als drei, mehr als fünf oder mehr als 10) mithilfe eines gleitenden Durchschnitts kombiniert werden (oder es kann ein anderes Maß der zentralen Tendenz angewendet werden, wie ein Median oder Modus) und als neue Tiefen für den Überlappungsbereich übernommen werden. Die minimale Fehlersumme kann auch zum Anpassen und Berechnen neuer Tiefen für den Überlappungsbereich verwendet werden, um den Mangel an Präzision zwischen überlappenden Tiefen auszugleichen, die im ersten und zweiten Sichtfeld wahrgenommen werden. Als weiteres Beispiel kann der minimale mittlere quadratische Fehler verwendet werden, um eine genauere Schätzung der Tiefen innerhalb des überlappenden Bereichs bereitzustellen. Andere mathematische Methoden können ebenfalls verwendet werden, um die Tiefen innerhalb des Überlappungsbereichs weiter zu verarbeiten, wie zum Beispiel der Split-and-Merge-Algorithmus, der inkrementelle Algorithmus, die Hough-Transformation, die Linienregression, der Random Sample Consensus, der Expectation-Maximization-Algorithmus oder die Kurvenanpassung. um angesichts der überlappenden Tiefen, die im ersten und zweiten Sichtfeld wahrgenommen werden, realistischere Tiefen abzuschätzen. Die berechneten Tiefen werden als neue Tiefenwerte für die identifizierten überlappenden Tiefen verwendet. In einer anderen Ausführungsform kann der k-nächste Nachbarn-Algorithmus verwendet werden, bei dem jede neue Tiefe als Durchschnitt der Werte ihrer k-nächsten Nachbarn berechnet wird. Bei diesen mathematischen Methoden handelt es sich nicht um eine erschöpfende Liste von Methoden, die zur Verarbeitung von Tiefenmessungen verwendet werden können, sondern um ein Beispiel für die Arten von Methoden, die verwendet werden können. Darüber hinaus können mathematische Methoden kombiniert werden.

In manchen Fällen wird ein Konfidenzwert für Überlappungsbestimmungen berechnet, z. B. basierend auf einem Ausmaß der Überlappung und einem aggregierten Ausmaß an Unstimmigkeiten zwischen Tiefenvektoren im Bereich der Überlappung in den verschiedenen Sichtfeldern, und die oben genannten Bayes'schen Techniken gewichten Aktualisierungen herunter zu Priors, basierend auf einem Rückgang des Vertrauens. In einigen Ausführungsformen wird die Größe des Überlappungsbereichs verwendet, um die Winkelbewegung zu bestimmen, und wird verwendet, um die Informationen des Kilometerzählers anzupassen, um das inhärente Rauschen des Kilometerzählers zu überwinden (z. B. durch Berechnen eines durchschnittlichen Bewegungsvektors für den Roboter basierend auf einem Vektor von des Kilometerzählers und eines aus den Sichtfeldern abgeleiteten Bewegungsvektors). Die Winkelbewegung des Roboters von einem Sichtfeld zum nächsten kann beispielsweise auf der Grundlage des Winkelinkrements zwischen Vektormessungen innerhalb eines Sichtfelds, Parallaxenänderungen zwischen Sichtfeldern übereinstimmender Objekte oder deren Merkmalen in Bereichen bestimmt werden der Überlappung und der Anzahl der entsprechenden Überlappungstiefen zwischen den beiden Sichtfeldern.

In einigen Ausführungsformen erweitert der Prozessor die Anzahl überlappender Tiefenmessungen, um eine vorgegebene (oder dynamisch bestimmte) Anzahl von Tiefenmessungen einzuschließen, die unmittelbar vor und nach (oder räumlich benachbart) den identifizierten überlappenden Tiefenmessungen aufgezeichnet werden. Sobald ein Überlappungsbereich identifiziert ist (z. B. als Begrenzungsrahmen von Pixelpositionen oder als Schwellenwertwinkel einer vertikalen Ebene, bei dem die Überlappung in jedem Sichtfeld beginnt), erstellt der Prozessor ein größeres Sichtfeld, indem er die beiden Sichtfelder kombiniert Verwendung der überlappenden Tiefenmessungen als Befestigungspunkte. Das Kombinieren kann das Transformieren von Vektoren mit unterschiedlichen Ursprüngen in ein gemeinsames Koordinatensystem mit einem gemeinsamen Ursprung umfassen, z. B. basierend auf einem Ausmaß der Translation oder Rotation eines Tiefenerfassungsgeräts zwischen Frames, beispielsweise durch Hinzufügen eines Translations- oder Rotationsvektors zu Tiefenvektoren. Die Transformation kann vor, während oder nach der Kombination durchgeführt werden. Die Methode, mit der Kamera Tiefen in aufeinanderfolgenden überlappenden Sichtfeldern wahrzunehmen und mit dem Prozessor überlappende Tiefenmessungen zu identifizieren und zu kombinieren, wird wiederholt, z. B. bis alle Bereiche der Umgebung entdeckt und eine Karte erstellt sind.

In einigen Ausführungsformen weist der Prozessor jeder Tiefenmessung eine Gewichtung zu. Der Wert der Gewichtung wird auf der Grundlage verschiedener Faktoren bestimmt, beispielsweise dem Grad der Ähnlichkeit zwischen Tiefenmessungen, die aus unterschiedlichen Sichtfeldern aufgezeichnet wurden, der Qualität der Messungen, der Gewichtung benachbarter Tiefenmessungen oder der Anzahl benachbarter Tiefenmessungen mit hoher Auflösung Gewicht. In einigen Ausführungsformen ignoriert der Prozessor Tiefenmessungen mit einer geringeren Gewichtung als einem Betrag (z. B. einem vorgegebenen oder dynamisch bestimmten Schwellenwert), da Tiefenmessungen mit höherer Gewichtung als genauer angesehen werden. In einigen Ausführungsformen wird den überlappenden Tiefen, die zu einer größeren Anzahl überlappender Tiefen zwischen zwei Datensätzen gehören, ein höheres Gewicht beigemessen, und den überlappenden Tiefen, die zu einer kleineren Anzahl überlappender Tiefen zwischen zwei Datensätzen gehören, wird weniger Gewicht beigemessen. In einigen Ausführungsformen ist die den Messwerten zugewiesene Gewichtung proportional zur Anzahl überlappender Tiefenmessungen.

In einigen Ausführungsformen überlappen sich mehr als zwei aufeinanderfolgende Sichtfelder, was dazu führt, dass mehr als zwei Tiefensätze in einen Überlappungsbereich fallen. Dies kann passieren, wenn die Winkelbewegung zwischen aufeinanderfolgenden Sichtfeldern gering ist, insbesondere wenn die Bildrate der Kamera so hoch ist, dass mehrere Bilder, in denen Vektormessungen durchgeführt werden, erfasst werden, während der Roboter kleine Bewegungen ausführt oder wenn das Feld Wenn das Sichtfeld der Kamera groß ist oder wenn der Roboter eine langsame Winkelgeschwindigkeit hat und die Bildrate der Kamera hoch ist. Überlappende Tiefen können mit mehr Tiefen, die in anderen Sichtfeldern gemessen werden, höher gewichtet werden, da eine größere Anzahl überlappender Tiefensätze eine genauere Bodenwahrheit liefert. In einigen Ausführungsformen ist die den gemessenen Tiefen zugewiesene Gewichtung proportional zur Anzahl der Tiefen aus anderen Datensätzen, die sich damit überlappen. Einige Ausführungsformen können überlappende Tiefen zusammenführen und einen neuen Satz von Tiefen für die überlappenden Tiefen mit einer genaueren Grundwahrheit erstellen. Die verwendete mathematische Methode kann ein gleitender Durchschnitt oder eine komplexere Methode sein.

In einigen Ausführungsformen kann mehr als eine Kamera verwendet werden, um die Genauigkeit der Karte zu verbessern. Beispielsweise können mehrere Tiefenmesskameras (z. B. vom Roboter getragen) gleichzeitig (oder gleichzeitig) verwendet werden, wobei die Tiefenmessungen jeder Kamera verwendet werden, um die Umgebung genauer abzubilden. Durch den Einsatz mehrerer Tiefenmesskameras soll beispielsweise die Erfassung von Tiefenmessungen aus unterschiedlichen Perspektiven und Winkeln möglich sein. Wenn mehr als eine Tiefenmesskamera verwendet wird, können zur weiteren Verfeinerung und Genauigkeit der Daten Triangulation oder andere geeignete Methoden eingesetzt werden. In einigen Ausführungsformen wird ein 360-Grad-LIDAR verwendet, um eine Karte der Umgebung zu erstellen. Es sollte jedoch betont werden, dass Ausführungsformen nicht auf Techniken beschränkt sind, die eine Karte auf diese Weise erstellen, da die vorliegenden Techniken auch für die Flugzeugsuche in der erweiterten Realität, die Barrierenerkennung in Virtual-Reality-Anwendungen, die Außenkartierung mit autonomen Drohnen usw. verwendet werden können. und andere ähnliche Anwendungen, was nicht bedeuten soll, dass eine andere Beschreibung einschränkend ist.

In einigen Ausführungsformen können Bilder vorverarbeitet werden, bevor die Überlappung bestimmt wird. Beispielsweise können einige Ausführungsformen den Betrag der Verschiebung des Roboters zwischen Bildern ableiten, z. B. durch Integration von Messwerten einer Trägheitsmesseinheit oder eines Kilometerzählers (in einigen Fällen nach Anwendung eines Kalman-Filters) und dann den Ursprung für Vektoren in einem Bild transformieren um einen Ursprung für Vektoren im anderen Bild basierend auf der gemessenen Verschiebung anzupassen, z. B. durch Subtrahieren eines Verschiebungsvektors von jedem Vektor im nachfolgenden Bild. Darüber hinaus können einige Ausführungsformen die Auflösung von Bildern herabsetzen, um einen schnelleren Abgleich zu ermöglichen, z. B. durch Auswahl jedes zweiten, jeden fünften oder mehr oder weniger Vektoren oder durch Mittelung benachbarter Vektoren, um zwei Versionen der auszurichtenden Bilder mit niedrigerer Auflösung zu bilden. Die resultierende Ausrichtung kann dann angewendet werden, um die beiden Bilder mit höherer Auflösung auszurichten.

In einigen Ausführungsformen wird ein modifizierter RANSAC-Ansatz verwendet, bei dem zwei beliebige Punkte, einer aus jedem Datensatz, durch eine Linie verbunden werden. Eine Grenze wird in Bezug auf beide Seiten der Linie definiert. Alle über die Grenze hinausgehenden Punkte aus beiden Datensätzen gelten als Ausreißer und werden ausgeschlossen. Der Vorgang wird mit zwei weiteren Punkten wiederholt. Der Prozess soll Ausreißer entfernen, um eine höhere Wahrscheinlichkeit zu erreichen, dass es sich um den wahren Abstand zur wahrgenommenen Wand handelt. Stellen Sie sich einen Extremfall vor, bei dem ein sich bewegendes Objekt in zwei überlappenden Bildern erfasst wird und mehrere Bilder ohne das sich bewegende Objekt aufgenommen werden. Der beschriebene Ansatz oder die RANSAC-Methode können verwendet werden, um Datenpunkte abzulehnen, die dem sich bewegenden Objekt entsprechen. Dieses Verfahren oder ein RANSAC-Verfahren können unabhängig voneinander verwendet oder mit anderen oben beschriebenen Verarbeitungsmethoden kombiniert werden.

In einigen Ausführungsformen können Berechnungen basierend auf einer Art der Bewegung des Roboters zwischen Bildern beschleunigt werden. Beispielsweise können einige Ausführungsformen bestimmen, ob der Verschiebungsvektor des Roboters zwischen Bildern weniger als einen Schwellenwert für die vertikale Verschiebung aufweist (z. B. Null ist). Als Reaktion darauf können einige Ausführungsformen die oben beschriebene Faltung mit einer horizontalen Schrittweite und einer geringeren oder keiner vertikalen Schrittweite anwenden, z. B. in derselben Zeile des zweiten Bilds, aus der Vektoren im ersten Bild entnommen werden, um die Kernelfunktion zu bilden.

In einigen Ausführungsformen kann der Prozessor (oder eine Gruppe davon) auf dem Roboter, ein entferntes Computersystem in einem Datenzentrum oder beide in Koordination Tiefenmessungen von Bordsensoren des Roboters aus den Daten des Roboters (oder der Sensoren, falls vorhanden) übersetzen (unterschiedlicher) Bezugsrahmen, der sich relativ zu einem Raum bewegen kann, zum Bezugsrahmen des Raums, der statisch sein kann. In einigen Ausführungsformen können Vektoren zwischen den Referenzrahmen mit einer Lorentz-Transformation oder einer Galilei-Transformation verschoben werden. In einigen Fällen kann die Übersetzung beschleunigt werden, indem ein grundlegendes lineares Algebra-Subsystem (BLAS) eines Prozessors des Roboters aktiviert wird. In einigen Fällen, in denen lineare Algebra verwendet wird, werden Basic Linear Algebra Subprograms (BLAS) implementiert, um Operationen wie Vektoraddition, Vektornormen, Skalarmultiplikation, Matrixmultiplikation, Matrizentransponierung, Matrix-Vektor-Multiplikation, Linearkombinationen, Punktprodukte usw. auszuführen. Kreuzprodukte und dergleichen.

In einigen Ausführungsformen kann sich der Bezugsrahmen des Roboters mit einem, zwei, drei oder mehr Freiheitsgraden relativ zu dem des Raums bewegen, z. B. können sich einige Bezugsrahmen für einige Arten von Sensoren sowohl horizontal als auch in zwei orthogonalen Richtungen verschieben Der Roboter bewegt sich über einen Boden und dreht sich dabei um eine Achse senkrecht zum Boden. Der „Bezugsrahmen des Raums“ kann in Bezug auf den Raum statisch sein oder, wie hier Bezeichnungen und ähnliche Bezeichnungen verwendet werden, sich bewegen, solange der Bezugsrahmen des Raums als gemeinsamer Ziel-Bezugsrahmen dient, zu dem Tiefenvektoren gehören aus dem Bezugssystem des Roboters werden aus verschiedenen Orten und Ausrichtungen (zusammen Positionen) des Roboters übersetzt. Tiefenvektoren können für jeden Bezugsrahmen in verschiedenen Formaten ausgedrückt werden, beispielsweise mit den verschiedenen oben beschriebenen Koordinatensystemen. (Eine Datenstruktur muss im Programmcode nicht als Vektor bezeichnet werden, um einen Vektor zu bilden, solange die Datenstruktur die Informationen kodiert, die einen Vektor bilden.) In einigen Fällen können Skalare von Vektoren quantisiert werden, z. B. in einem Raster , in einigen Darstellungen. Einige Ausführungsformen können Vektoren aus nicht quantisierten oder relativ granular quantisierten Darstellungen in quantisierte oder gröbere Quantisierungen übersetzen, z. B. von der Tiefenmessung eines Sensors auf 16 signifikante Ziffern zu einer Zelle in einer Bitmap, die 8 signifikanten Ziffern in einer Entfernungseinheit entspricht. In einigen Ausführungsformen kann eine Sammlung von Tiefenvektoren einer einzelnen Position oder Pose des Roboters im Raum entsprechen, z. B. einem Tiefenbild, oder in einigen Fällen kann jeder Tiefenvektor möglicherweise einer anderen Pose des Roboters relativ zu entsprechen das Zimmer.

In Ausführungsformen kann die erstellte Karte in verschiedenen Formen codiert werden. Beispielsweise können einige Ausführungsformen eine Punktwolke aus zweidimensionalen oder dreidimensionalen Punkten konstruieren, indem sie jeden der Vektoren in einen Vektorraum mit einem gemeinsamen Ursprung transformieren, z. B. auf der Grundlage der oben beschriebenen Verschiebungsvektoren, in einigen Fällen mit verfeinerten Verschiebungsvektoren basierend auf gemessenen Tiefen. Oder einige Ausführungsformen können Karten mit einem Satz von Polygonen darstellen, die erkannte Oberflächen modellieren, z. B. durch Berechnen einer konvexen Hülle über gemessene Vektoren innerhalb eines Schwellenwertbereichs, wie ein Kachelpolygon. Es wird erwartet, dass Polygone eine schnellere Abfrage von Karten während der Navigation ermöglichen und weniger Speicher verbrauchen als Punktwolken, allerdings auf Kosten einer höheren Rechenlast bei der Kartierung. Vektoren müssen im Programmcode nicht als „Vektoren“ gekennzeichnet werden, um Vektoren zu bilden, was nicht bedeutet, dass andere mathematische Konstrukte so eingeschränkt sind. In einigen Ausführungsformen können Vektoren als Tupel von Skalaren, als Einträge in einer relationalen Datenbank, als Attribute eines Objekts usw. codiert werden. Ebenso sollte betont werden, dass Bilder nicht als solche angezeigt oder explizit gekennzeichnet werden müssen, um Bilder zu bilden. Darüber hinaus können Sensoren während der Aufnahme eines bestimmten Bildes einer gewissen Bewegung unterliegen, und die einem Tiefenbild entsprechende Pose eines Sensors kann in manchen Fällen ein Posenbereich sein, über den das Tiefenbild aufgenommen wird.

In einigen Ausführungsformen können Karten dreidimensionale Karten sein, die z. B. die Position von Wänden, Möbeln, Türen und dergleichen in einem Raum angeben, der kartiert wird. In einigen Ausführungsformen können Karten zweidimensionale Karten sein, z. B. Punktwolken oder Polygone oder endliche geordnete Listen, die Hindernisse in einer bestimmten Höhe (oder einem Höhenbereich, beispielsweise von null bis 5 oder 10 Zentimetern oder weniger) über dem Boden angeben. Zweidimensionale Karten können aus zweidimensionalen Daten oder aus dreidimensionalen Daten erstellt werden, wobei Daten in einer bestimmten Höhe über dem Boden verwendet werden und Daten zu höheren Merkmalen verworfen werden. Karten können in Vektorgrafikformaten, Bitmapformaten oder anderen Formaten kodiert sein.

Der Roboter kann beispielsweise die Karte verwenden, um während des Betriebs autonom durch die Umgebung zu navigieren, z. B. indem er auf die Karte zugreift, um festzustellen, dass eine mögliche Route durch ein auf der Karte gekennzeichnetes Hindernis blockiert ist, um daraus eine Route mit einem Routenfindungsalgorithmus auszuwählen einem aktuellen Punkt zu einem Zielpunkt oder dergleichen. In einigen Ausführungsformen wird die Karte zur zukünftigen Verwendung im Speicher gespeichert. Die Speicherung der Karte kann im temporären Speicher erfolgen, sodass eine gespeicherte Karte nur während einer Betriebssitzung verfügbar ist, oder in dauerhafteren Formen des Speichers, sodass die Karte bei der nächsten Sitzung oder beim nächsten Start verfügbar ist. In einigen Ausführungsformen wird die Karte weiterverarbeitet, um Räume und andere Segmente zu identifizieren. In einigen Ausführungsformen wird bei jeder Verwendung eine neue Karte erstellt oder eine vorhandene Karte wird basierend auf neu erfassten Daten aktualisiert.

Einige Ausführungsformen können bei nachfolgenden Kartierungsvorgängen auf frühere Karten verweisen. Beispielsweise können Ausführungsformen Bayes'sche Techniken zur gleichzeitigen Lokalisierung und Kartierung anwenden und Prioritäten in vorhandenen Karten basierend auf Kartierungsmessungen aktualisieren, die in nachfolgenden Sitzungen durchgeführt wurden. Einige Ausführungsformen können auf frühere Karten verweisen und Objekte in einem Sichtfeld als bewegliche Objekte klassifizieren, wenn ein Unterschied erkannt wird, der größer als ein Schwellenwert ist.

In einigen Ausführungsformen können Lücken in der gezeichneten Grenze des Gehäuses von einem oder mehreren Prozessoren des Roboters identifiziert und von einem oder mehreren Prozessoren des Roboters, der die Kamera steuert, weiter untersucht werden, bis eine vollständige (oder vollständigere) geschlossene Schleife des Gehäuses entsteht Gehege wird geplottet. In einigen Ausführungsformen sind keine Beacons erforderlich und die Verfahren und Geräte arbeiten im Vergleich zu herkömmlichen Verfahren mit minimaler oder reduzierter Verarbeitungsleistung, was nicht bedeutet, dass eine andere beschriebene Funktion erforderlich ist.

FEIGE.26Averanschaulicht Kamera2600am Roboter montiert2601Messtiefen2602in vorgegebenen Schritten innerhalb eines ersten Sichtfeldes2603des Arbeitsumfeldes2604. Tiefenmessungen2602mit der Kamera aufgenommen2600Messen Sie die Tiefe mit der Kamera2600widersprechen2605, in diesem Fall eine Wand. In Bezug aufFEIGE.26B, ein Prozessor des Roboters erstellt ein 2D-Kartensegment2606aus Tiefenmessungen2602im ersten Sichtfeld aufgenommen2603. Gestrichelt2607Demonstrieren Sie das resultierende 2D-Kartensegment2606entspricht Tiefenmessungen2602im Sichtfeld aufgenommen2603. Der Prozessor legt den ersten erkannten Bereich fest2608des Arbeitsumfeldes2604begrenzt durch Kartensegment2606und äußere Grenzen2609des ersten Sichtfeldes2603. Roboter2601beginnt mit der Arbeit innerhalb des ersten anerkannten Bereichs2608während Kamera2600führt kontinuierlich Tiefenmessungen durch.

FEIGE.27Averanschaulicht Roboter2601vorwärts in die Richtung übersetzen2700um sich innerhalb des erkannten Bereichs zu bewegen2608des Arbeitsumfeldes2604während Kamera2600Nimmt kontinuierlich Tiefenmessungen im Sichtfeld der Kamera vor2600. Da Roboter2601lässt sich vorwärts bewegen, ohne sich zu drehen, keine neuen Bereiche der Arbeitsumgebung2604werden per Kamera erfasst2600Allerdings kombiniert der Prozessor Tiefenmessungen2701im Sichtfeld aufgenommen2702mit überlappenden Tiefenmessungen, die zuvor innerhalb des Bereichs durchgeführt wurden2608um die Genauigkeit der Karte weiter zu verbessern. Als Roboter2601beginnt mit der Ausführung von Arbeiten innerhalb des anerkannten Bereichs2608Es positioniert sich so, dass es sich in vertikaler Richtung bewegen kann2703indem Sie zuerst in die Richtung drehen2704.

FEIGE.27Bveranschaulicht Roboter2601in Richtung drehend2704während Kamera2600nimmt Tiefenmessungen vor2701,2705Und2706innerhalb der Sichtfelder2707,2708, Und2709, bzw. Der Prozessor kombiniert die innerhalb dieser Sichtfelder durchgeführten Tiefenmessungen miteinander und mit zuvor durchgeführten Tiefenmessungen2602(FEIGE.26A), wobei überlappende Tiefenmessungen als Befestigungspunkte verwendet werden. Der Abstand zwischen den Sichtfeldern2707,2708, Und2709ist trivial und dient der Veranschaulichung.

InFEIGE.27CDer Prozessor erstellt ein größeres Kartensegment2710aus Tiefenmessungen2602,2701,2705Und2706innerhalb des Sichtfeldes aufgenommen2603,2707,2708Und209bzw. sie kombinieren, indem überlappende Tiefenmessungen als Befestigungspunkte verwendet werden. Gestrichelt2711Demonstrieren Sie das resultierende 2D-Kartensegment2710entspricht kombinierten Tiefenmessungen2602,2701,2705, Und2706. Kartenausschnitt2710wurde vom ersten Kartensegment erweitert2606(FEIGE.26B), da aufgezeichnete Tiefenmessungen aus mehreren Sichtfeldern kombiniert wurden, um ein größeres Kartensegment zu erstellen2710. Der Prozessor stellt außerdem einen größeren erkannten Bereich her2712des Arbeitsumfeldes2604(im Vergleich zum ersten erkannten Bereich2608(FEIGE.26B)) durch Kartensegment gebunden2710und äußere Grenzen der Sichtfelder2603Und2710durch gestrichelte Linie dargestellt2713.

FEIGE.28Averanschaulicht Roboter2601weiterhin in Richtung drehen2704bevor Sie beginnen, sich vertikal in die Richtung zu bewegen2703innerhalb eines erweiterten anerkannten Bereichs2712des Arbeitsumfeldes2604. Kamera2600misst Tiefen2800von der Kamera2600widersprechen2605innerhalb des Sichtfeldes2801Überlappung mit vorangegangenen Tiefenmessungen2706im Sichtfeld aufgenommen2709(FEIGE.27B). Da der Prozessor von Roboter2601Ist in der Lage, seine Position zu verfolgen (mithilfe von Geräten wie einem Kilometerzähler oder einem Gyroskop), kann der Prozessor die ungefähre Überlappung mit zuvor durchgeführten Tiefenmessungen abschätzen2706innerhalb des Sichtfeldes2709. Tiefenmessungen2802stellen die Überlappung zwischen zuvor durchgeführten Tiefenmessungen dar2706und Tiefenmessungen2800.FEIGE.28Bveranschaulicht einen 2D-Kartenausschnitt2710resultierend aus zuvor kombinierten Tiefenmessungen2602,2701,2705Und2706und Kartenausschnitt2803resultierend aus Tiefenmessungen2800. Gestrichelt2711Und2804Zeigen Sie die resultierenden 2D-Kartensegmente2710Und2803entsprechen zuvor kombinierten Tiefenmessungen2602,2701,2705,2706und zu Tiefenmessungen2800, bzw. Der Prozessor erstellt ein 2D-Kartensegment2805aus der Kombination von 2D-Kartensegmenten2710Und2803begrenzt durch die äußersten gestrichelten Linien von2711Und2804. Die Kamera nimmt Tiefenmessungen vor2800innerhalb überlappenden Sichtfeldes2801. Der Prozessor vergleicht Tiefenmessungen2800zu zuvor durchgeführten Tiefenmessungen2706um überlappende Tiefenmessungen zu identifizieren, die durch die innersten gestrichelten Linien von begrenzt werden2711Und2804. Der Prozessor verwendet eine oder mehrere der oben beschriebenen Methoden zum Vergleichen von Tiefenmessungen und zum Identifizieren eines Überlappungsbereichs. Der Prozessor schätzt neue Tiefenmessungen für die überlappenden Tiefenmessungen unter Verwendung einer oder mehrerer der oben beschriebenen Kombinationsmethoden. Um einen größeren Kartenausschnitt zu erstellen2805, Der Prozessor kombiniert zuvor erstellte 2D-Kartensegmente2710und 2D-Kartensegment2803durch Verwendung überlappender Tiefenmessungen, begrenzt durch innerste gestrichelte Linien von2711Und2804, als Befestigungspunkte. Der Prozessor erweitert auch den erkannten Bereich2712innerhalb welchem ​​Roboter2601Arbeitet im anerkannten Bereich2808des Arbeitsumfeldes2604begrenzt durch Kartensegment2805und gestrichelte Linie2809.

FEIGE.29Averanschaulicht Roboter2601in Richtung drehend2900während es weiterhin Arbeiten in der Arbeitsumgebung verrichtet2604. Der Prozessor hat den erkannten Bereich erweitert308zum Bereich2901durch eine Mauer gebunden2605und gestrichelte Linie2902. Kamera2600nimmt Tiefenmessungen vor2903von der Kamera2600widersprechen2605innerhalb des Sichtfeldes2904Überlappung mit vorangegangenen Tiefenmessungen2905im Sichtfeld aufgenommen2906. Tiefenmessungen2907stellen Überlappungen zwischen zuvor durchgeführten Tiefenmessungen dar2905und Tiefenmessungen2903.FEIGE.29Bzeigt einen erweiterten Kartenausschnitt2908und erweiterter anerkannter Bereich2909resultiert aus der Kombination von Tiefenmessungen durch den Prozessor2903Und2905bei überlappenden Tiefenmessungen2907. Diese Methode wird als Kamera wiederholt2600Nimmt als Roboter Tiefenmessungen innerhalb nacheinander überlappender Sichtfelder vor2601bewegt sich innerhalb der Umgebung und der Prozessor kombiniert die Tiefenmessungen an überlappenden Punkten, bis eine 2D-Karte der Umgebung erstellt wird.

FEIGE.30veranschaulicht ein Beispiel einer vollständigen 2D-Karte3000mit gebundenem Bereich3001. Der Prozessor des Roboters2601erstellt eine Karte3000durch die Kombination von Tiefenmessungen, die in aufeinanderfolgenden überlappenden Sichtfeldern der Kamera vorgenommen wurden2600. 2D-Karte3000kann beispielsweise von Robotern genutzt werden2601mit montierter Tiefenkamera2600während des Betriebs autonom durch die Arbeitsumgebung navigieren. In einigen Ausführungsformen befindet sich der Roboter in einer Position, in der die Beobachtung der Umgebung durch Sensoren eingeschränkt ist. Dies kann beispielsweise auftreten, wenn der Roboter an einem Ende einer Umgebung positioniert ist und die Umgebung sehr groß ist. In einem solchen Fall erstellt der Prozessor des Roboters eine temporäre Teilkarte seiner Umgebung, während er sich in Richtung des Zentrums der Umgebung bewegt, wo seine Sensoren in der Lage sind, die Umgebung zu beobachten. Dies ist in dargestelltFEIGE.31A, wo Roboter2601wird in einer Ecke eines großen Raumes positioniert3100, etwa 20 Zentimeter von jeder Wand entfernt. Aufgrund der Raumgröße ist die Beobachtung der Umgebung durch Sensoren eingeschränkt3100wobei Sichtfeld3101Der Sensor erfasst keine Merkmale der Umgebung3100. Ein großer Raum, z. B. Zimmer3100, kann beispielsweise 8 Meter lang und 6 Meter breit sein. Der Prozessor des Roboters2601erstellt mithilfe von Sensordaten eine temporäre Teilkarte, während es sich in Richtung Mitte bewegt3102des Raumes3100in Richtung3103. InFEIGE.31BRoboter2601wird in der Mitte des Raumes angezeigt3100wo Sensoren Merkmale der Umgebung beobachten können3100.

Es wird davon ausgegangen, dass die hier beschriebenen Merkmals- und Standortkarten identisch sind. Beispielsweise umfasst eine merkmalsbasierte Karte in einigen Ausführungsformen mehrere Standortkarten, wobei jede Standortkarte einem Merkmal entspricht und ein starres Koordinatensystem mit Ursprung am Merkmal aufweist. Zwei Vektoren X und X′ entsprechen den starren Koordinatensystemen S bzw. S′ und beschreiben jeweils ein anderes Merkmal in einer Karte. Die Entsprechungen jedes Merkmals können mit C bzw. C′ bezeichnet werden. Entsprechungen können unter anderem Winkel und Abstand umfassen. Wenn der Vektor X stationär ist oder sich relativ zum Vektor Es gibt Vektoren, die in zwei beliebigen starren Koordinatensystemen gemessen werden.

In einigen Ausführungsformen bestimmt der Prozessor die Transformation zwischen den beiden gemessenen Vektoren. In einigen Ausführungsformen verwendet der Prozessor die Galileische Gruppentransformation, um die Transformationen zwischen den beiden Vektoren zu bestimmen, die jeweils relativ zu einem anderen Koordinatensystem gemessen werden. Die Galileische Transformation kann zur Transformation zwischen Koordinaten zweier Koordinatensysteme verwendet werden, die sich nur durch konstante Relativbewegung unterscheiden. Diese Transformationen bilden zusammen mit räumlichen Rotationen und Translationen in Raum und Zeit die inhomogene Galileische Gruppe, für die die Gleichungen nur bei Geschwindigkeiten gelten, die deutlich unter der Lichtgeschwindigkeit liegen. In einigen Ausführungsformen verwendet der Prozessor die Galileische Gruppe zur Transformation zwischen zwei Vektoren X und X‘, gemessen relativ zu den Koordinatensystemen S und5′ bzw. die Koordinatensysteme mit räumlichen Ursprüngen, die bei t=t′=0 zusammenfallen und sich in gleichmäßiger relativer Bewegung in ihren gemeinsamen Richtungen befinden.

In einigen Ausführungsformen bestimmt der Prozessor die Transformation X′=RX+a+νt zwischen dem relativ zum Koordinatensystem gemessenen Vektor X′5' und Vektor X, gemessen relativ zum Koordinatensystem S, um zwischen Koordinatensystemen zu transformieren, wobei R eine Rotationsmatrix ist, die auf Vektor X wirkt,5′, a ist ein Vektor, der die Verschiebung des Koordinatensystems beschreibt5′ relativ zum Koordinatensystem S, ν ist ein Vektor, der die gleichmäßige Geschwindigkeit des Koordinatensystems beschreibt5' und t ist die Zeit. Nach der Verschiebung beträgt die Zeit t′=t+s, wobei s die Zeit ist, in der die Verschiebung stattgefunden hat.

Wenn T1=T1(R1; A1; N1; S1) und T2=T2(R1; A1; N1; S1) eine erste und zweite Transformation bezeichnen, kann der Prozessor des Roboters die erste Transformation zum Zeitpunkt t auf den Vektor X anwenden, was zu T führt1{X,t}={X′, t′} und wenden Sie die zweite Transformation auf den resultierenden Vektor X′ zum Zeitpunkt t′ an, was T ergibt2{X′, t′}={X″, t″}. Vorausgesetzt T3=T2T1, wobei die Transformationen in umgekehrter Reihenfolge angewendet werden, die einzige andere Transformation ist, die das gleiche Ergebnis von {X'', t''} liefert, dann kann der Prozessor die Transformationen als T bezeichnen3{X,t}={X″, t″}. Die Transformation kann mit X''=R bestimmt werden2(R1X+a1+n1t)+a2+n2(t+s1) und t″=t+s1+s2, wobei (R1X+a1+n1t) repräsentiert die erste Transformation T1{X,t}={X′,t′}. Weiter, R3=R2R1, A3=a2+R2+a1+n2S1, N3=n2+R2N1, und s3=s2+s1zutreffen.

In einigen Ausführungsformen ist die Galileische Gruppentransformation dreidimensional, es werden zehn Parameter verwendet, um die Vektoren X und X' in Beziehung zu setzen. Es gibt drei Rotationswinkel, drei Raumverschiebungen, drei Geschwindigkeitskomponenten und eine Zeitkomponente, mit den drei Rotationsmatrizen) R1(θ)=[1 0 0 0 cos θ−sin θ0 sin θ cos θ], R2(θ)=[cos θ 0 sin θ0 1 0−sin θ0 cos θ] und R3(θ)=[cos θ−sin θ0 sin θ cos θ0 0 0 1]. Die Vektoren X und ), bzw. Das hier beschriebene Transformationsverfahren ermöglicht es dem Prozessor, Vektoren, die relativ zu verschiedenen Koordinatensystemen gemessen werden und die zu transformierende Umgebung beschreiben, in ein einziges Koordinatensystem zu transformieren.

In einigen Ausführungsformen verwendet der Prozessor des Roboters Sensordaten, um seinen Standort in der Umgebung vor Beginn und während des Kartierungsprozesses abzuschätzen. In einigen Ausführungsformen erfassen Sensoren des Roboters Daten und der Prozessor schätzt zunächst den Standort des Roboters basierend auf den Daten und der gemessenen Bewegung (z. B. unter Verwendung von Geräten wie einem Gyroskop, einem optischen Encoder usw.) des Roboters. Wenn mehr Daten erfasst werden, erhöht der Prozessor das Vertrauen in die geschätzte Position des Roboters, und wenn eine Bewegung auftritt, verringert der Prozessor das Vertrauen aufgrund von Rauschen in der gemessenen Bewegung.

In einigen Ausführungsformen können IMU-Messungen in einem Mehrkanalstrom, die die Beschleunigung entlang dreier oder sechs Achsen anzeigen, über die Zeit integriert werden, um eine Änderung der Pose des Roboters abzuleiten, z. B. mit einem Kalman-Filter. In einigen Fällen kann die Posenänderung als Bewegungsvektor im Bezugssystem des Raums ausgedrückt werden, durch den sich der Roboter bewegt. Einige Ausführungsformen können den Roboter lokalisieren oder den Raum auf der Grundlage dieses Bewegungsvektors (und in einigen Fällen von Kontaktsensoren) kartieren, selbst wenn der Bildsensor nicht funktionsfähig oder defekt ist. In einigen Fällen können IMU-Messungen mit bildbasierten (oder anderen exterozeptiven) Kartierungsdaten in einer Karte oder Lokalisierungsbestimmung kombiniert werden, z. B. mit Techniken wie den in Chen et. al „Echtzeit-3D-Mapping mit einem 2D-Laserscanner und IMU-gestütztem visuellen SLAM“, 2017 IEEE International Conference on Real-time Computing and Robotics (RCAR), DOI: 10.1109/RCAR.2017.8311877, oder in Ye et. al, LiDAR and Inertial Fusion for Pose Estimation by Non-linear Optimization, arXiv:1710.07104 [cs.RO], deren Inhalte hiermit durch Bezugnahme aufgenommen werden. Oder in manchen Fällen können Daten von jeweils einem aktiven Sensor zur Lokalisierung oder Kartierung verwendet werden, und der andere Sensor kann passiv bleiben, z. B. bei der Erfassung von Daten, aber diese Daten werden möglicherweise nicht zur Lokalisierung oder Kartierung verwendet, während der andere Sensor dies tut aktiv. Einige Ausführungsformen können einen Puffer mit Sensordaten vom passiven Sensor aufrechterhalten (z. B. einschließlich Messungen über eine vorangegangene Dauer, etwa eine Sekunde oder zehn Sekunden) und bei einigen bei einem Failover vom aktiven Sensor zum passiven Sensor, der dann aktiv werden kann Ausführungsformen können auf den Puffer zugreifen, um eine aktuelle Position oder Kartenmerkmale basierend auf aktuell erfassten Daten und gepufferten Daten abzuleiten. In einigen Ausführungsformen können die gepufferten Daten auf den Standort oder die kartierten Merkmale des zuvor aktiven Sensors kalibriert werden, z. B. mit den oben beschriebenen Sensorfusionstechniken.

In Ausführungsformen ist die erstellte Karte des Roboters möglicherweise nur bei genauer Lokalisierung des Roboters gültig. Zum Beispiel inFEIGE.32, genaue Lokalisierung des Roboters3200vor Ort3201mit Position x1, ja1kann zu einer Karte führen3202während ungenaue Lokalisierung des Roboters3200vor Ort3203mit Position x2, ja2kann zu einer ungenauen Karte führen3204wobei Umfänge der Karte fälschlicherweise näher am Roboter erscheinen3200als Roboter3200ist an der falschen Stelle lokalisiert3203. Um solche Vorkommnisse zu beseitigen oder zu reduzieren, erstellt der Prozessor in einigen Ausführungsformen eine Karte für jeden oder einen Teil der möglichen Standorte des Roboters3200und bewertet die Alternativszenarien möglicher Roboterstandorte3200und entsprechende erstellte Karten dieser Orte. Der Prozessor bestimmt die Anzahl der auszuwertenden Alternativszenarien in Echtzeit oder wird vorgegeben. In einigen Ausführungsformen fügt jedes neue betrachtete Szenario der Umgebung des Roboters eine neue Dimension hinzu3200. Mit der Zeit verwirft der Prozessor weniger wahrscheinliche Szenarien. Zum Beispiel, wenn der Prozessor ein Szenario für die Platzierung eines Roboters in Betracht zieht3200in der Mitte eines Raumes und doch Roboter3200Wird ein Kontakt mit einem Perimeter beobachtet, stellt der Prozessor fest, dass es sich bei dem betrachteten Szenario um eine falsche Interpretation der Umgebung handelt, und die entsprechende Karte wird verworfen. In einigen Ausführungsformen ersetzt der Prozessor verworfene Szenarios durch wahrscheinlichere Szenarios oder andere mögliche Szenarios. In einigen Ausführungsformen verwendet der Prozessor eine Fitness-Proportionate-Auswahltechnik, bei der eine Fitnessfunktion verwendet wird, um möglichen Alternativszenarien eine Fitness zuzuweisen und die fittesten Standorte und entsprechenden Karten überleben, während diejenigen mit geringer Fitness verworfen werden. In einigen Ausführungsformen verwendet der Prozessor das Fitnessniveau alternativer Szenarien, um jedem alternativen Szenario eine Auswahlwahrscheinlichkeit zuzuordnen, die mithilfe der Fitnessfunktion bestimmt werden kann

P ich = F ich J = 1 N F J ,
wobei ƒichist die Fitness des alternativen Szenarios i von N möglichen Szenarien und pichist die Wahrscheinlichkeit der Auswahl des Alternativszenarios i. In einigen Ausführungsformen ist es weniger wahrscheinlich, dass der Prozessor Alternativszenarien mit einem höheren Fitnessniveau aus den derzeit betrachteten Alternativszenarien eliminiert. In einigen Ausführungsformen interpretiert der Prozessor die Umgebung mithilfe einer Kombination aus einer Sammlung alternativer Szenarien mit hohem Fitnessniveau.

In einigen Ausführungsformen ist das Bewegungsmuster des Roboters während des Kartierungsprozesses ein Boustrophedon-Bewegungsmuster. Dies kann für die Kartierung der Umgebung von Vorteil sein. Wenn der Roboter beispielsweise in unmittelbarer Nähe einer Wand beginnt, vor der er steht, und versucht, die Umgebung abzubilden, indem er sich in seiner Ausgangsposition um 360 Grad dreht, können Bereiche in der Nähe des Roboters und solche in weiter Entfernung von den Sensoren möglicherweise nicht erfasst werden Die Bereiche um den Roboter herum sind zu nah und die weit entfernten Bereiche sind zu weit entfernt. Der minimale und maximale Erfassungsabstand kann beispielsweise 30 bzw. 400 Zentimeter betragen. Stattdessen bewegt sich der Roboter in einigen Ausführungsformen rückwärts (d. h. entgegen der Vorwärtsrichtung, wie unten definiert) um eine gewisse Distanz von der Wand weg und die Sensoren beobachten Bereiche der Umgebung, die zuvor zu nah an den Sensoren waren, um beobachtet zu werden. Der Rückwärtsbewegungsweg ist in manchen Ausführungsformen nicht besonders groß, er kann beispielsweise 40, 50 oder 60 Zentimeter betragen. In manchen Fällen ist der Abstand nach hinten größer als der minimale Erkennungsabstand. In einigen Ausführungsformen ist der Abstand nach hinten größer oder gleich dem minimalen Erkennungsabstand plus einem gewissen Prozentsatz einer Differenz zwischen dem minimalen und maximalen Erkennungsabstand des Robotersensors, z. B. 5 %, 10 %, 50 % oder 80 %.

In einigen Ausführungsformen dreht sich der Roboter (oder der Sensor daran, wenn der Sensor so konfiguriert ist, dass er sich unabhängig vom Roboter dreht) dann um 180 Grad, um in den offenen Raum der Umgebung zu blicken. Dabei beobachten die Sensoren Bereiche vor dem Roboter und innerhalb des Erfassungsbereichs. In einigen Ausführungsformen führt der Roboter zwischen der Rückwärtsbewegung und dem Abschluss der 180-Grad-Drehung keine Translation durch, oder in einigen Ausführungsformen wird die Drehung ausgeführt, während der Roboter rückwärts translatiert. In einigen Ausführungsformen vollendet der Roboter die 180-Grad-Drehung ohne Pause, oder in einigen Fällen dreht sich der Roboter möglicherweise teilweise, z. B. um Grad, bewegt sich um weniger als eine Schwellendistanz (z. B. weniger als 10 cm) und vollendet dann die anderen 90 Grad der Wende.

Verweise auf Winkel sollten so verstanden werden, dass sie Winkel zwischen plus oder minus 20 Grad des aufgeführten Winkels umfassen, sofern keine andere Toleranz angegeben ist. Beispielsweise können einige Ausführungsformen solche Toleranzen innerhalb von plus oder minus 15 Grad, 10 Grad, 5 Grad oder 1 Grad halten der Rotation. Verweise auf Drehung können sich auf eine Drehung um eine vertikale Achse beziehen, die senkrecht zu einem Boden oder einer anderen Oberfläche steht, auf der der Roboter eine Aufgabe ausführt, wie etwa Reinigung, Kartierung oder Reinigung und Kartierung. In einigen Ausführungsformen kann der Sensor des Roboters, durch den ein Arbeitsbereich zumindest teilweise abgebildet wird und von dem aus die Vorwärtsrichtung definiert wird, ein Sichtfeld haben, das weniger als 360 Grad in der horizontalen Ebene normal zu der Achse, um die es geht, beträgt Der Roboter dreht sich beispielsweise um weniger als 270 Grad, weniger als 180 Grad, weniger als 90 Grad oder weniger als 45 Grad. In einigen Ausführungsformen kann die Kartierung in einer Sitzung durchgeführt werden, in der mehr als 10 %, mehr als 50 % oder der gesamte Raum kartiert wird, und die Sitzung kann von einer Startposition aus beginnen, an der die derzeit beschriebenen Routinen beginnen kann einem Standort einer Basisstation entsprechen oder ein Standort sein, zu dem der Roboter fährt, bevor er die Routine startet.

In einigen Ausführungsformen bewegt sich der Roboter dann in Vorwärtsrichtung (definiert als die Richtung, in die der Sensor zeigt, z. B. die Mittellinie des Sichtfelds des Sensors) um eine erste Distanz, die es den Sensoren ermöglicht, Umgebungsbereiche innerhalb des Roboters zu beobachten Erfassungsbereich, während sich der Roboter bewegt. In einigen Ausführungsformen bestimmt der Prozessor die erste Vorwärtsdistanz des Roboters durch die Erkennung eines Hindernisses durch einen Sensor, wie z. B. eine Wand oder ein Möbel, z. B. durch Kontakt mit einem Kontaktsensor oder indem er das Hindernis näher an die maximale Erkennung heranbringt Entfernung des Sensors des Roboters für die Kartierung. In einigen Ausführungsformen ist die erste Vorwärtsentfernung vorbestimmt oder in einigen Ausführungsformen wird die erste Vorwärtsentfernung dynamisch bestimmt, z. B. basierend auf Daten vom Sensor, die angeben, dass sich ein Objekt innerhalb der Erkennungsentfernung befindet.

In einigen Ausführungsformen dreht sich der Roboter dann um weitere 180 Grad und bewegt sich um eine Distanz von einer Sekunde in Vorwärtsrichtung (aus Sicht des Roboters), kehrt dann in seinen ursprünglichen Bereich zurück und geht in einigen Fällen seinen Weg zurück. In einigen Ausführungsformen kann der Prozessor die zweite Vorwärtsfahrdistanz durch die Erkennung eines Hindernisses durch einen Sensor ermitteln, z. B. indem er sich bewegt, bis sich eine Wand oder ein Möbelstück in Reichweite des Sensors befindet. In einigen Ausführungsformen wird die zweite Vorwärtsfahrdistanz auf die oben beschriebene Weise vorbestimmt oder dynamisch bestimmt. Dabei beobachten die Sensoren alle verbleibenden unentdeckten Bereiche aus der ersten Vorwärtsstrecke, die durch die Umgebung zurückgelegt wird, während der Roboter in die entgegengesetzte Richtung zurückfährt. In einigen Ausführungsformen wird diese beschriebene Hin- und Herbewegung wiederholt (z. B. mit einem gewissen Grad an orthogonaler Versatzverschiebung zwischen den Iterationen, etwa einem Betrag, der einer Abdeckungsbreite eines Reinigungswerkzeugs des Roboters entspricht, zum Beispiel weniger als 100 % davon). Breite, 95 % dieser Breite, 90 % dieser Breite, 50 % dieser Breite usw.), wobei der Roboter zwei 180-Grad-Drehungen durchführt, die durch einen gewissen Abstand voneinander getrennt sind, so dass die Bewegung des Roboters ein Boustrophedon-Muster ist und sich zurück- und zurückbewegt weiter in der Umgebung. In einigen Ausführungsformen ist der Roboter zunächst möglicherweise nicht einer Wand zugewandt, zu der er sich in unmittelbarer Nähe befindet. Der Roboter kann von jedem beliebigen Bereich in der Umgebung aus mit der Ausführung des Boustrophedon-Bewegungsmusters beginnen. In einigen Ausführungsformen führt der Roboter neben Boustrophedon allein oder in Kombination auch andere Bewegungsmuster aus.

In anderen Ausführungsformen unterscheidet sich das Boustrophedon-Bewegungsmuster (oder ein anderes Abdeckungspfadmuster) des Roboters während des Kartierungsprozesses. In einigen Ausführungsformen befindet sich der Roboter beispielsweise an einem Ende der Umgebung und ist in Richtung des offenen Raums gerichtet. Von hier aus bewegt sich der Roboter in einer ersten Vorwärtsrichtung (aus der oben definierten Perspektive des Roboters) um eine gewisse Strecke und dreht sich dann um 90 Grad im Uhrzeigersinn. Der Prozessor bestimmt die erste Vorwärtsdistanz, die der Roboter zurücklegt, indem er ein Hindernis wie eine Wand oder ein Möbelstück durch einen Sensor erkennt. In einigen Ausführungsformen ist die erste Vorwärtsdistanz vorbestimmt (z. B. wird sie von einem anderen Sensor wie einem Kilometerzähler oder durch Integration von Signalen von einer Trägheitsmesseinheit gemessen). Der Roboter bewegt sich dann um eine gewisse Distanz in eine zweite Vorwärtsrichtung (aus der Perspektive des Raums, und die aus der Perspektive des Roboters dieselbe Vorwärtsrichtung sein kann, z. B. die Richtung, in die sein Sensor nach der Drehung zeigt); und dreht sich um weitere 90 Grad im Uhrzeigersinn. Der nach der ersten 90-Grad-Drehung zurückgelegte Weg ist möglicherweise nicht besonders groß und hängt möglicherweise vom Ausmaß der gewünschten Überlappung beim Reinigen der Oberfläche ab. Wenn der Abstand beispielsweise gering ist (z. B. kleiner als die Breite der Hauptbürste eines Roboterstaubsaugers), überlappt die zu reinigende Oberfläche mit der bereits gereinigten Oberfläche, wenn der Roboter zu dem Bereich zurückkehrt, von dem aus er begonnen hat. In manchen Fällen kann dies wünschenswert sein. Wenn der Abstand zu groß ist (z. B. größer als die Breite der Hauptbürste), werden möglicherweise einige Bereiche der Oberfläche nicht gereinigt. Beispielsweise liegt die Bürstengröße bei kleinen Robotern wie einem Roboterstaubsauger typischerweise zwischen 15 und 30 cm. Wenn bei Verwendung eines Pinsels mit 15 cm Breite eine Überlappung von 50 % gewünscht wird, beträgt der Verfahrweg 7,5 cm. Wenn sich die Abdeckung nicht überlappt und keine Bereiche abgedeckt werden, beträgt die Verfahrstrecke 15 cm und alles, was größer als 15 cm ist, würde dazu führen, dass ein Bereich nicht abgedeckt wird. Bei größeren kommerziellen Robotern kann die Bürstengröße zwischen 50 und 60 cm liegen. Anschließend bewegt sich der Roboter um eine dritte Distanz in Vorwärtsrichtung zurück in den Bereich seiner ursprünglichen Startposition, wobei der Prozessor die dritte Distanz nach vorne bestimmt, indem er ein Hindernis wie eine Wand oder ein Möbelstück durch einen Sensor erkennt. In einigen Ausführungsformen ist der dritte Vorwärtsabstand vorbestimmt. In einigen Ausführungsformen wird diese beschriebene Hin- und Herbewegung wiederholt, wobei der Roboter wiederholt zwei 90-Grad-Drehungen durchführt, die durch einen gewissen Abstand voneinander getrennt sind, bevor er sich in die entgegengesetzte Richtung bewegt, so dass die Bewegung des Roboters ein Boustrophedon-Muster ist und sich quer über die Richtung hin und her bewegt Umfeld. In anderen Ausführungsformen sind die Drehrichtungen entgegengesetzt zu dem, was in dieser beispielhaften Ausführungsform beschrieben wird. In einigen Ausführungsformen ist der Roboter möglicherweise zunächst nicht auf eine Wand gerichtet, zu der er sich in unmittelbarer Nähe befindet. Der Roboter kann von jedem beliebigen Bereich in der Umgebung aus mit der Ausführung des Boustrophedon-Bewegungsmusters beginnen. In einigen Ausführungsformen führt der Roboter neben Boustrophedon allein oder in Kombination auch andere Bewegungsmuster aus.

FIG.33A-33DVeranschaulichen Sie ein Beispiel für ein Boustrophedon-Bewegungsmuster des Roboters. InFEIGE.33ARoboter3300beginnt in der Nähe der Wand3301, an der Lade- oder Basisstation angedockt3302. Roboter3300dreht sich um 360 Grad in seine Ausgangsposition, um zu versuchen, die Umgebung abzubilden3303, jedoch Bereiche3304werden von den Sensoren des Roboters nicht beobachtet3300wie die Bereiche rund um den Roboter3300sind zu nah, und die Bereiche am anderen Ende der Umgebung3303sind zu weit entfernt, um beobachtet zu werden. Der minimale und maximale Erfassungsabstand kann beispielsweise 30 bzw. 400 Zentimeter betragen. Stattdessen inFEIGE.33B, Roboter3300bewegt sich zunächst in die Richtung rückwärts3305nicht in der Nähe der Lade- oder Basisstation3302mit einigem Abstand3306wo Bereiche3307werden beobachtet. Distanz3306nicht besonders groß ist, kann es beispielsweise 40 Zentimeter sein. InFEIGE.33C, Roboter3300dreht sich dann um 180 Grad in die Richtung3308was zu beobachteten Bereichen führt3307expandieren. Bereiche unmittelbar auf beiden Seiten des Roboters3300sind zu nah, um von den Sensoren beobachtet zu werden, während eine Seite ebenfalls unsichtbar ist, wobei die unsichtbare Seite von der Drehrichtung abhängt. InFEIGE.33D, Roboter3300bewegt sich dann in Vorwärtsrichtung3309mit einigem Abstand3310, beobachtete Bereiche3307als Roboter weiter ausbauen3300erkundet unentdeckte Gebiete. Der Prozessor des Roboters3300bestimmt die Entfernung3310von welchem ​​Roboter3300fährt vorwärts, wenn ein Hindernis, z. B. eine Wand, erkannt wird3311oder Möbel oder Entfernung3310ist vorgegeben. InFEIGE.33E, Roboter3300dreht sich dann um weitere 180 Grad in die Richtung3308. InFEIGE.33F, Roboter3300bewegt sich um einige Distanz3312in Vorwärtsrichtung3313Beobachtung verbleibender unentdeckter Gebiete. Der Prozessor bestimmt die Entfernung3312durch den der Roboter3300fährt vorwärts, wenn ein Hindernis, z. B. eine Wand, erkannt wird3301oder Möbel oder Entfernung3312ist vorgegeben. Die beschriebene Hin- und Herbewegung wiederholt sich beim Roboter3300macht zwei 180-Grad-Drehungen, die durch einen gewissen Abstand voneinander getrennt sind, so dass sich der Roboter bewegt3300ist ein Boustrophedon-Muster, das sich beim Kartieren in der Umgebung hin und her bewegt. In anderen Ausführungsformen kann die Drehrichtung entgegengesetzt zu der in dieser beispielhaften Ausführungsform dargestellten sein.

FIG.34A-34Dveranschaulichen eine weitere Ausführungsform eines Boustrophedon-Bewegungsmusters des Roboters während des Kartierungsprozesses.FEIGE.34Averanschaulicht Roboter3300Beginn des Mapping-Vorgangs gegenüber der Wand3400, wenn es beispielsweise an der Lade- oder Basisstation angedockt ist3401. In einem solchen Fall Roboter3300bewegt sich zunächst in Rückwärtsrichtung3402von der Ladestation entfernt3401mit einigem Abstand3403. Distanz3403ist nicht besonders groß, es kann beispielsweise 40 Zentimeter sein. InFEIGE.34B, Roboter3300dreht sich um 180 Grad in die Richtung3404so dieser Roboter3300ist in den offenen Raum der Umgebung gerichtet3405. InFEIGE.34C, Roboter3300bewegt sich in Vorwärtsrichtung3406mit einigem Abstand3407dreht sich dann um 90 Grad in die Richtung3404. Der Prozessor bestimmt die Entfernung3407von welchem ​​Roboter3300fährt vorwärts, wenn ein Hindernis, z. B. eine Wand, erkannt wird3408oder Möbel oder Entfernung3407ist vorgegeben. InFEIGE.34D, Roboter3300bewegt sich dann um eine gewisse Strecke3409in Vorwärtsrichtung3410und dreht sich um weitere 90 Grad in die Richtung3404. Distanz3409ist nicht besonders groß und hängt von der Menge der gewünschten Überlappung beim Reinigen der Oberfläche ab. Zum Beispiel, wenn Entfernung3409ist klein (z. B. kleiner als die Breite der Hauptbürste eines Roboterstaubsaugers), wie der Roboter3300kehrt in die Richtung zurück3412, kann es sein, dass die zu reinigende Oberfläche mit der Oberfläche überlappt, die bereits beim Roboter gereinigt wurde3300in Richtung gefahren3406. In manchen Fällen kann dies wünschenswert sein. Wenn Abstand3409Wenn die Bürste zu groß ist (z. B. größer als die Breite der Hauptbürste), werden möglicherweise einige Bereiche der Oberfläche nicht gereinigt. Beispielsweise liegt die Bürstengröße bei kleinen Robotern wie einem Roboterstaubsauger typischerweise zwischen 15 und 30 cm. Wenn bei Verwendung eines Pinsels mit 15 cm Breite eine Überlappung von 50 % gewünscht wird, beträgt der Verfahrweg 7,5 cm. Wenn sich die Abdeckung nicht überlappt und keine Bereiche abgedeckt werden, beträgt die Verfahrstrecke 15 cm und alles, was größer als 15 cm ist, würde dazu führen, dass ein Bereich nicht abgedeckt wird. Bei größeren kommerziellen Robotern kann die Bürstengröße zwischen 50 und 60 cm liegen. Endlich, Roboter3300bewegt sich um einige Distanz3411in Vorwärtsrichtung3412Richtung Ladestation3401. Der Prozessor bestimmt die Entfernung3411von welchem ​​Roboter3300Die Vorwärtsfahrt kann durch die Erkennung eines Hindernisses, beispielsweise einer Wand, bestimmt werden3400oder Möbel oder Entfernung3411ist vorgegeben. Diese beschriebene Hin- und Herbewegung wiederholt sich beim Roboter3300macht wiederholt zwei 90-Grad-Kurven mit einem gewissen Abstand voneinander, bevor er in die entgegengesetzte Richtung fährt, so dass sich der Roboter bewegt3300ist ein Boustrophedon-Muster, das sich beim Kartieren in der Umgebung hin und her bewegt. Wiederholte Bewegung3413ist in dargestelltFEIGE.34Ddurch gestrichelte Linien. In anderen Ausführungsformen kann die Drehrichtung entgegengesetzt zu der in dieser beispielhaften Ausführungsform dargestellten sein.

FEIGE.35veranschaulicht ein Flussdiagramm, das Ausführungsformen eines Pfadplanungsverfahrens eines Roboters beschreibt3500,3501,3502Und3503entsprechend den in einigen Ausführungsformen durchgeführten Schritten.

In einigen Ausführungsformen steht dem Benutzer die Karte des Bereichs, einschließlich, aber nicht beschränkt auf, Türen, Unterbereiche, Umfangsöffnungen und Informationen wie Abdeckungsmuster, Raumbeschriftungen, Reihenfolge der Räume usw., über eine grafische Benutzeroberfläche zur Verfügung ( GUI) wie ein Smartphone, ein Computer, ein Tablet, eine dedizierte Fernbedienung oder ein anderes Gerät, das Ausgabedaten des Roboters anzeigen und Eingaben von einem Benutzer empfangen kann. Über die GUI kann ein Benutzer beispielsweise die Karte der Umgebung und Einstellungen, Funktionen und Vorgänge des Roboters innerhalb der Umgebung überprüfen, akzeptieren, ablehnen oder Änderungen daran vornehmen, wozu unter anderem der Typ gehören kann Abdeckungsalgorithmus des gesamten Bereichs oder jedes Teilbereichs, Korrigieren oder Anpassen von Kartengrenzen und der Position von Türen, Erstellen oder Anpassen von Teilbereichen, Reihenfolge der Reinigung von Teilbereichen, geplante Reinigung des gesamten Bereichs oder jedes Teilbereichs und Aktivieren oder Deaktivieren von Werkzeugen wie UV Licht, Saugen und Wischen. Benutzereingaben werden von der GUI zur Implementierung an den Roboter gesendet. Daten können zwischen dem Roboter und der Benutzeroberfläche über eine oder mehrere Netzwerkkommunikationsverbindungen gesendet werden. Es kann jede Art von drahtlosen Netzwerksignalen verwendet werden, einschließlich, aber nicht beschränkt auf, Wi-Fi-Signale oder Bluetooth-Signale. Diese Techniken werden in der US-Patentanmeldung Ser. Nr. 15/949,708 und 15/272,752, deren Gesamtheit durch Bezugnahme hierin aufgenommen wird.

In einigen Ausführungsformen kann der Prozessor die Karte manipulieren, indem er die Karte für Navigationszwecke oder ästhetische Zwecke bereinigt (z. B. um die Karte einem Benutzer anzuzeigen). Zum Beispiel,FEIGE.36Averanschaulicht einen Umfang3600einer Umgebung, die für einen Benutzer möglicherweise nicht ästhetisch ansprechend ist.FEIGE.36Bzeigt eine alternative Version der in abgebildeten KarteFEIGE.36Awobei der Umfang3601kann für den Benutzer ästhetisch ansprechender sein. In einigen Ausführungsformen kann der Prozessor eine Reihe von Techniken, eine Variation jeder Technik und/oder eine Variation in der Reihenfolge der Anwendung der Techniken verwenden, um in jedem Fall das gewünschte Ergebnis zu erzielen. Zum Beispiel,FEIGE.37Averanschaulicht eine Reihe von Messungen3700zum Umfang3701einer Umgebung. In manchen Fällen kann es wünschenswert sein, dass der Umfang angepasst wird3701der Umgebung dargestellt. In Ausführungsformen können unterschiedliche Methoden bei der Verarbeitung der Daten zum Erzeugen einer Umfangslinie verwendet werden. In einigen Ausführungsformen kann der Prozessor mithilfe der Methode der kleinsten Quadrate eine Linie aus allen Datenpunkten generieren, z. B. inFEIGE.37A. In einigen Ausführungsformen kann der Prozessor die Abstände von jedem Punkt zur Linie bestimmen und lokale maximale und minimale L2-Normwerte auswählen.FEIGE.37Bveranschaulicht die Messreihe3700linieren3701wird basierend auf der Kleinste-Quadrat-Schätzung aller Datenpunkte und ausgewählten lokalen maximalen und minimalen L2-Normwerten generiert3702. In einigen Ausführungsformen kann der Prozessor lokale maximale und minimale L2-Normwerte verbinden. Zum Beispiel,FEIGE.37Cveranschaulicht lokale maximale und minimale L2-Normwerte3702miteinander verbunden. In einigen Ausführungsformen können die verbundenen lokalen maximalen und minimalen L2-Normwerte den Umfang der Umgebung darstellen.FEIGE.37Dveranschaulicht eine mögliche Darstellung des Umfangs3703der Umwelt.

Bei einer anderen Methode kann der Prozessor zunächst eine Teilmenge der Daten untersuchen. Zum Beispiel,FEIGE.38Averanschaulicht Datenpunkte3800. Zunächst kann der Prozessor Datenpunkte untersuchen, die in die Spalten eins bis drei oder den Bereich fallen3801. In einigen Ausführungsformen kann der Prozessor beispielsweise mithilfe der Methode der kleinsten Quadrate eine Linie an die Teilmenge der Daten anpassen.FEIGE.38Bveranschaulicht eine Linie3802An Datenpunkte anpassen, die in die Spalten eins bis drei fallen. In einigen Ausführungsformen kann der Prozessor Datenpunkte neben der Datenteilmenge untersuchen und bestimmen, ob die Datenpunkte zu derselben Linie gehören, die an die Datenteilmenge angepasst ist. Zum Beispiel inFEIGE.38C, kann der Prozessor Datenpunkte berücksichtigen, die in Spalte vier fallen3803und kann bestimmen, ob die Datenpunkte zur Linie gehören3802an die Datenpunkte angepasst, die mit den Spalten eins bis drei fallen. In einigen Ausführungsformen kann der Prozessor den Prozess der Untersuchung von Daten wiederholen, die an den zuletzt untersuchten Satz von Datenpunkten angrenzen. Zum Beispiel nach der Untersuchung von Datenpunkten, die mit Spalte vier in fallenFEIGE.38C, kann der Prozessor Datenpunkte untersuchen, die in Spalte fünf fallen. In einigen Ausführungsformen können andere Variationen dieser Technik verwendet werden. Beispielsweise kann der Prozessor zunächst Daten untersuchen, die in die ersten drei Spalten fallen, und dann die nächsten drei Spalten untersuchen. Der Prozessor kann eine an die ersten drei Spalten angepasste Linie mit einer an die nächsten drei Spalten angepassten Linie vergleichen. Diese Variante der Technik kann zu einer Umfangslinie führen, wie sie in dargestellt istFEIGE.39. In einer anderen Variante untersucht der Prozessor Datenpunkte, die in die ersten drei Spalten fallen, und untersucht dann Datenpunkte, die in weitere drei Spalten fallen, von denen sich einige mit den ersten drei Spalten überschneiden. Beispielsweise können die ersten drei Spalten die Spalten eins bis drei sein und die anderen drei Spalten können die Spalten drei bis fünf oder zwei bis vier sein. Der Prozessor kann eine an die ersten drei Spalten angepasste Linie mit einer an die anderen drei Spalten angepassten Linie vergleichen. In anderen Ausführungsformen können andere Variationen verwendet werden.

Bei einem anderen Verfahren kann der Prozessor einen ersten Datenpunkt A und einen zweiten Datenpunkt B aus einem Satz von Datenpunkten auswählen. In einigen Ausführungsformen können Datenpunkt A und Datenpunkt B nebeneinander oder nahe beieinander liegen. In einigen Ausführungsformen kann der Prozessor einen dritten Datenpunkt C aus dem Satz von Datenpunkten auswählen, der räumlich zwischen Datenpunkt A und Datenpunkt B positioniert ist. In einigen Ausführungsformen kann der Prozessor Datenpunkt A und Datenpunkt B durch a verbinden Linie. In einigen Ausführungsformen kann der Prozessor bestimmen, ob Datenpunkt C den Kriterien der Linie entspricht, die die Datenpunkte A und B verbindet. In einigen Ausführungsformen stellt der Prozessor fest, dass die Datenpunkte A und B innerhalb des Datenpunktsatzes nicht auf derselben Linie liegen . Zum Beispiel,FEIGE.40veranschaulicht eine Reihe von Datenpunkten4000, ausgewählte Datenpunkte A, B und C und Linie4001Datenpunkt A und B verbinden. Da Datenpunkt C nicht den Linienkriterien entspricht4001, kann festgestellt werden, dass die Datenpunkte A und B innerhalb der Datenpunktmenge liegen4000fallen nicht entlang derselben Linie. In einer anderen Variante kann der Prozessor einen ersten Datenpunkt A und einen zweiten Datenpunkt B aus einem Satz von Datenpunkten auswählen und die Datenpunkte A und B durch eine Linie verbinden. In einigen Ausführungsformen kann der Prozessor einen Abstand zwischen jedem Datenpunkt des Satzes von Datenpunkten und der Linie bestimmen, die die Datenpunkte A und B verbindet. In einigen Ausführungsformen kann der Prozessor die Anzahl der Ausreißer und Inliers bestimmen. In einigen Ausführungsformen kann der Prozessor anhand der Anzahl der Ausreißer und Inliers bestimmen, ob die Datenpunkte A und B entlang derselben Linie liegen. In einigen Ausführungsformen kann der Prozessor zwei weitere Datenpunkte C und D auswählen, wenn die Anzahl der Ausreißer oder das Verhältnis von Ausreißern zu Inliers größer als ein vorgegebener Schwellenwert ist, und kann den Prozessor mit den Datenpunkten C und D wiederholen.FEIGE.41Averanschaulicht eine Reihe von Datenpunkten4100, Datenpunkte A und B und Linie4101Verbinden der Datenpunkte A und B. Der Prozessor ermittelt die Entfernungen4102aus jedem der Datenpunkte der Datenpunktmenge4100linieren4101. Der Prozessor bestimmt die Anzahl der Datenpunkte, deren Entfernungen innerhalb der Region liegen4103als die Anzahl der Inlier-Datenpunkte und die Anzahl der Datenpunkte mit Entfernungen, die außerhalb der Region liegen4103als Anzahl der Ausreißerpunkte. In diesem Beispiel gibt es zu viele Ausreißer. Deshalb,FEIGE.41Bzeigt zwei weitere ausgewählte Datenpunkte C und D. Der Vorgang wird wiederholt und in diesem Fall werden weniger Ausreißer gefunden, da weniger Datenpunkte mit Abständen vorhanden sind4104außerhalb der Region liegen4105. In einigen Ausführungsformen kann der Prozessor weiterhin zwei weitere Datenpunkte auswählen und den Vorgang wiederholen, bis eine Mindestanzahl von Ausreißern gefunden wird oder die Anzahl der Ausreißer oder das Verhältnis von Ausreißern zu Inliers unter einem vorgegebenen Schwellenwert liegt. In einigen Ausführungsformen kann es zu viele Datenpunkte innerhalb des Datenpunktsatzes geben, um Datenpunkte in Zweiersätzen auszuwählen. In einigen Ausführungsformen kann der Prozessor die Anzahl der auszuwählenden und zu prüfenden Datenpunkte probabilistisch auf der Grundlage der erforderlichen Genauigkeit oder Mindestwahrscheinlichkeit bestimmen. Beispielsweise kann der Prozessor die Methode 20 Mal wiederholen, um eine Erfolgswahrscheinlichkeit von 99 % zu erreichen. Alle beschriebenen Methoden und Techniken können unabhängig oder nacheinander verwendet oder mit anderen Methoden kombiniert und in unterschiedlicher Reihenfolge angewendet werden.

In einigen Ausführungsformen kann der Prozessor Bildableitungstechniken verwenden. Bildableitungstechniken können mit Daten verwendet werden, die in verschiedenen Formen bereitgestellt werden, und sind nicht auf die Verwendung mit Bildern beschränkt. Beispielsweise können Bildableitungstechniken mit einer Reihe von Entfernungsmesswerten (z. B. einer Karte) verwendet werden, oder andere Arten von Messwerten funktionieren genauso gut mit einer Kombination dieser Methoden. In einigen Ausführungsformen kann der Prozessor eine diskrete Ableitung als Näherung einer Ableitung eines Bildes I verwenden. In einigen Ausführungsformen bestimmt der Prozessor eine Ableitung in einer x-Richtung für ein Pixel x1als Differenz zwischen dem Wert von Pixel x1und die Werte der Pixel links und rechts vom Pixel x1. In einigen Ausführungsformen bestimmt der Prozessor eine Ableitung in einer y-Richtung für ein Pixel y1als Differenz zwischen dem Wert von Pixel y1und die Werte der Pixel oberhalb und unterhalb des Pixels y1. In einigen Ausführungsformen bestimmt der Prozessor eine Intensitätsänderung IXund ichjfür ein Graustufenbild als Pixelableitungen in x- bzw. y-Richtung. In einigen Ausführungsformen können die beschriebenen Techniken auf Farbbilder angewendet werden. Jedes RGB eines Farbbildes kann einen unabhängigen Pixelwert hinzufügen. In einigen Ausführungsformen kann der Prozessor Ableitungen für jeden der RGB- oder Farbkanäle des Farbbilds bestimmen. Für eine bessere Qualität können mehr Farben und Kanäle verwendet werden. In einigen Ausführungsformen bestimmt der Prozessor einen Bildgradienten ∇I, einen 2D-Vektor, als Ableitung in x- und y-Richtung. In einigen Ausführungsformen kann der Prozessor eine Gradientengröße bestimmen,

„\[LeftBracketingBar]“ ICH „\[RightBracketingBar]“ = ( ICH X 2 + ICH j 2 ) ,
Dies kann auf die Stärke der Intensitätsänderung hinweisen. In einigen Ausführungsformen kann der Prozessor einen Gradientenwinkel α=Arctan 2(I) bestimmenX,ICHj), was auf den Winkel hinweisen kann, bei dem die Bildintensitätsänderung dominanter ist. Da es sich bei den Ableitungen eines Bildes um diskrete Werte handelt, gibt es keine mathematische Ableitung. Daher kann der Prozessor mithilfe diskreter Differenzierungsoperatoren Näherungen für die Ableitungen eines Bildes verwenden. Beispielsweise kann der Prozessor den Prewitt-Operator verwenden, der das Bild mit einem kleinen, trennbaren und ganzzahligen Filter in horizontaler und vertikaler Richtung faltet. Der Prewitt-Operator kann zwei 3×3-Kerne verwenden, [−1 0 1−1 0 1−1 0 1] und [−1−1−1 0 0 0 1 1 1], die mit dem Originalbild I gefaltet werden können um Näherungen der Ableitungen in x- und y-Richtung zu bestimmen, d. h. IX=I*[−1 0 1−1 0 1−1 0 1] und Ij=I*[−1−1−1 0 0 0 1 1 1]. In einem anderen Beispiel kann der Prozessor den Sobel-Feldman-Operator verwenden, einen isotropen 3×3-Bildgradientenoperator, der an jedem Punkt im Bild entweder den entsprechenden Gradientenvektor oder die Norm des Gradientenvektors zurückgibt, die das Bild mit einem kleinen Wert faltet , trennbarer und ganzzahliger Filter in horizontaler und vertikaler Richtung. Der Sobel-Feldman-Operator kann zwei 3×3-Kerne verwenden, [−1 0 1−2 0 2−1 0 1] und [−1−2−1 0 0 0 1 2 1], die mit dem Original gefaltet werden können Bild I zur Bestimmung von Näherungen der Ableitungen in x- und y-Richtung, also IX=I*[−1 0 1−2 0 2−1 0 1] und Ij=I*[−1−2−1 0 0 0 1 2 1]. Der Prozessor kann andere Operatoren verwenden, beispielsweise den Kayyali-Operator, den Laplace-Operator und den Robert-Cross-Operator.

In einigen Ausführungsformen kann der Prozessor in einem oder mehreren Verarbeitungsschritten Methoden zur Bildrauschunterdrückung verwenden, um Rauschen aus einem Bild zu entfernen und gleichzeitig die Integrität, Details und Struktur des Bildes beizubehalten. In einigen Ausführungsformen kann der Prozessor die Gesamtvariation eines Bildes als Summe der Gradientennorm J(I)=∫|∇I|dxdy oder J(I)=Σ bestimmenxy|∇I|, wobei das Integral über alle Pixel des Bildes gebildet wird. In einigen Ausführungsformen kann der Prozessor Gaußsche Filter verwenden, um Ableitungen eines Bildes I zu bestimmenX=I*GXund ichj=I*Gj, wobei GXund Gjsind die x- und y-Ableitungen einer Gaußschen Funktion GAmit Standardabweichung σ. In einigen Ausführungsformen kann der Prozessor Total Variation Denoising oder Total Variation Regularization verwenden, um Rauschen zu entfernen und gleichzeitig Kanten beizubehalten. In einigen Ausführungsformen kann der Prozessor eine Gesamtvariationsnorm von 2D-Signalen y (z. B. Bildern) unter Verwendung von V(y) = Σ bestimmeni,j√{Quadratwurzel aus (|yi+1,j−yi,j|2+|yi,j+1−yi,j|2)}, das isotrop und nicht differenzierbar ist. In einigen Ausführungsformen kann der Prozessor eine alternative anisotrope Version verwenden, V(y)=Σi,j√{Quadratwurzel aus (|yi+1,j−yi,j|2)}+√{Quadratwurzel aus (|yi,j+1−yi,j|2)}=Si,j|yi+1,j−yi,j|+|yi,j+1−yi,j|. In einigen Ausführungsformen kann der Prozessor das Standardproblem der Gesamtvariationsentrauschung [E(x,y)+λV(y)] lösen, wobei E die 2D-L2-Norm ist. In einigen Ausführungsformen können unterschiedliche Algorithmen zur Lösung des Problems verwendet werden, beispielsweise die Primzahl-Dual-Methode oder die Split-Bergman-Methode. In einigen Ausführungsformen kann der Prozessor die Rudin-Osher-Fatemi (ROF)-Entrauschungstechnik für ein verrauschtes Bild verwenden, um ein entrauschtes Bild u über einen 2D-Raum zu bestimmen. In einigen Ausführungsformen kann der Prozessor das ROF-Minimierungsproblem lösen

u Fernseher ( Oh ) + l 2 Oh ( F - u ) 2 dx ,
wobei BV(Ω) die begrenzte Variation über den Bereich Ω ist, TV(Ω) die Gesamtvariation über den Bereich ist und λ ein Strafterm ist. In einigen Ausführungsformen kann u glatt sein und der Prozessor kann die Gesamtvariation mithilfe von ∥u∥ bestimmenFernsehen(Oh)Oh∥∇u∥dx und das Minimierungsproblem wird

Oh [ u + l 2 ( F - u ) ] 2 dx .
Unter der Annahme, dass keine Zeitabhängigkeit vorliegt, kann die Euler-Lagrange-Gleichung zur Minimierung die nichtlineare elliptische partielle Differentialgleichung liefern

{ · ( u u ) + l ( F - u ) = 0 , u Oh u N = 0 , u Oh .
In einigen Ausführungsformen kann der Prozessor stattdessen die zeitabhängige Version des ROF-Problems lösen.

u T = · ( u u ) + l ( F - u ) .
In einigen Ausführungsformen kann der Prozessor andere Entrauschungstechniken verwenden, wie z. B. Chroma-Rauschenreduzierung, Luminanzrauschreduzierung, anisotrope Diffusion, Rudin-Osher-Fatemi und Chambolle. Verschiedene Geräuschverarbeitungstechniken können unterschiedliche Vorteile bieten und können in Kombination und in beliebiger Reihenfolge verwendet werden.

In einigen Ausführungsformen kann der Prozessor die Korrelation in x- und y-Richtung, C, bestimmen(ICH1ICH2)xy=Sxy(ICH1(xy),I2(xy)) zwischen zwei Nachbarschaften, wobei Punkte in einem ersten Bild I1korrespondieren mit Punkten in einem zweiten Bild I2und ƒ ist eine ortsübergreifende Funktion. In einigen Ausführungsformen summiert der Prozessor alle Pixel in benachbarten Fenstern in x- und y-Richtung. In einigen Ausführungsformen kann die Größe benachbarter Fenster einen Radius von einem Pixel, einen Radius von zwei Pixeln oder einen Radius von n Pixeln betragen. In einigen Ausführungsformen kann die Fenstergeometrie ein Dreieck, ein Quadrat, ein Rechteck oder eine andere geometrische Form sein. In einigen Ausführungsformen kann der Prozessor eine Transformation verwenden, um ein Bild einem anderen Bild zuzuordnen, indem er Ähnlichkeitspunkte identifiziert. Es können verschiedene Transformationsmethoden verwendet werden (z. B. linear oder komplexer). Beispielsweise kann eine affine Karte ƒ: A→B zwischen zwei affinen Räumen A und B eine Karte auf den Punkten sein, die linear auf die Vektoren wirkt, wobei ƒ eine lineare Transformation φ bestimmt, so dass für jedes Punktpaar P, Q∈ A, ƒ{rechter Pfeil über ((P)ƒ(Q))}=φ{rechter Pfeil über ((PQ))} oder ƒ(Q)−ƒ(P)=φ(Q−P). Andere Interpretationen können verwendet werden. Zum Beispiel für einen Ursprung O∈A und wenn B sein Bild ƒ(O)∈B bezeichnet, dann gilt für jeden Vektor {rechter Pfeil über (x)}, ƒ:(O+{rechter Pfeil über (x)})→( B+φ({rechter Pfeil über (x)})). Und ein gewählter Ursprung O′∈B kann als affine Transformation g:A→B zerlegt werden, die O→O′ sendet, d. h. g: (O+{rechter Pfeil über (x)})→(O′+φ({ rechter Pfeil über (x)})), gefolgt von der Übersetzung durch einen Vektor {rechter Pfeil über (b)}={rechter Pfeil über (O′B)}. In diesem Beispiel umfasst ƒ eine Übersetzung und eine lineare Karte.

In einigen Ausführungsformen kann der Prozessor unüberwachtes Lernen oder Clustering einsetzen, um unbeschriftete Daten auf der Grundlage ihrer Ähnlichkeiten in Gruppen zu organisieren. Beim Clustering kann es darum gehen, Datenpunkte Clustern zuzuordnen, wobei die Datenpunkte im selben Cluster möglichst ähnlich sind. In einigen Ausführungsformen können Cluster mithilfe von Ähnlichkeitsmaßen, beispielsweise der Entfernung, identifiziert werden. In einigen Ausführungsformen kann der Prozessor einen Satz von Datenpunkten in Cluster unterteilen. Zum Beispiel,FEIGE.42veranschaulicht eine Reihe von Datenpunkten4200in vier Cluster unterteilt4201. In einigen Ausführungsformen kann der Prozessor Cluster aufteilen oder zusammenführen. In einigen Ausführungsformen kann der Prozessor Näherungs- oder Ähnlichkeitsmaße verwenden. Ein Ähnlichkeitsmaß kann eine reellwertige Funktion sein, die die Ähnlichkeit zwischen zwei Objekten quantifizieren kann. In einigen Ausführungsformen kann das Ähnlichkeitsmaß die Umkehrung der Distanzmetriken sein, wobei sie groß sind, wenn die Objekte ähnlich sind, und klein (oder negativ), wenn die Objekte unähnlich sind. Beispielsweise kann der Prozessor ein Ähnlichkeitsmaß s(x) verwendenich,XJ), die groß sein kann, wenn xich,XJähnlich sind, oder ein Unähnlichkeitsmaß (oder Abstandsmaß) d(x).ich,XJ), die klein sein kann, wenn xich,XJsind ähnlich. Dies wird in visualisiertFEIGE.43. Beispiele für ein Unähnlichkeitsmaß sind der euklidische Abstand,

D ( X ich , X J ) = k = 1 D ( X ich ( k ) - X J ( k ) ) 2 ,
welches translatorisch invariant ist, Manhattan-Distanz,

D ( X ich , X J ) = k = 1 D „\[LeftBracketingBar]“ ( X ich ( k ) - X J ( k ) ) „\[RightBracketingBar]“ ,
Dies ist eine Annäherung an den Euklidischen Abstand, den Minkowski-Abstand,

D P ( X ich , X J ) = k = 1 M ( „\[LeftBracketingBar]“ ( X ICH - X jk ) „\[RightBracketingBar]“ P ) 1 P ,
wobei p eine positive ganze Zahl ist. Ein Beispiel für ein Ähnlichkeitsmaß ist die Tanimoto-Ähnlichkeit,

T S = J = 1 k ( A J × B J ) J = 1 k A J 2 + J = 1 k B J 2 - J = 1 k A J × B J ,
zwischen zwei Punkten aJ, BJ, mit k-Dimensionen. Die Tanimoto-Ähnlichkeit gilt möglicherweise nur für eine binäre Variable und reicht von null bis eins, wobei eins die höchste Ähnlichkeit angibt. In einigen Fällen kann die Tanimoto-Ähnlichkeit auf einen Bitvektor angewendet werden (wobei der Wert jeder Dimension entweder Null oder Eins ist), den der Prozessor verwenden kann

F ( A , B ) = A · B „\[LeftBracketingBar]“ A „\[RightBracketingBar]“ 2 + „\[LeftBracketingBar]“ B „\[RightBracketingBar]“ 2 - A · B
Ähnlichkeit festzustellen. Diese Darstellung basiert auf A·B=ΣichAichBich=SichAich∧Bichund |A|2=SichAich2=SichAich. Beachten Sie, dass die Eigenschaften von TSgelten nicht unbedingt für ƒ. In einigen Fällen können andere Variationen der Tanimoto-Ähnlichkeit verwendet werden. Zum Beispiel ein Ähnlichkeitsverhältnis,

T S = ich X ich Y ich ich ( X ich Y ich ) ,
wobei X und Y Bitmaps sind und Xichist Bit i von X. Ein Distanzkoeffizient TD(X,Y)=−(TS(X,Y)), basierend auf dem Ähnlichkeitsverhältnis, kann auch für Bitmaps mit einer Ähnlichkeit ungleich Null verwendet werden. Es können andere Ähnlichkeits- oder Unähnlichkeitsmaße verwendet werden, beispielsweise der RBF-Kernel beim maschinellen Lernen. In einigen Ausführungsformen kann der Prozessor ein Kriterium zur Bewertung der Clusterbildung verwenden, wobei eine gute Clusterbildung von einer schlechten Clusterbildung unterschieden werden kann. Zum Beispiel,FEIGE.44veranschaulicht eine schlechte Clusterbildung. In einigen Ausführungsformen kann der Prozessor ein Ähnlichkeitsmaß verwenden, das eine Ähnlichkeitsmatrix der Größe n×n für einen Satz von n Datenpunkten bereitstellt, wobei der Eintrag i,j das Negativ des euklidischen Abstands zwischen i und j sein kann oder a sein kann komplexeres Maß wie das Gaußsche Maß

e - S 1 - S 2 2 2 P 2 .

In einigen Ausführungsformen kann der Prozessor Fuzzy-Clustering verwenden, wobei jeder Datenpunkt zu mehr als einem Cluster gehören kann. In einigen Ausführungsformen kann der Prozessor Fuzzy-C-Means-Clustering (FCM) verwenden, wobei eine Anzahl von Clustern ausgewählt wird, jedem Datenpunkt zufällig Koeffizienten für seine Zugehörigkeit zu den Clustern zugewiesen werden und der Prozess wiederholt wird, bis der Algorithmus konvergiert, wobei die Die Änderung der Koeffizienten zwischen zwei Iterationen liegt unter einer Empfindlichkeitsschwelle. Der Prozess kann außerdem die Bestimmung eines Schwerpunkts für jeden Cluster und die Bestimmung des Koeffizienten jedes Datenpunkts für seine Zugehörigkeit zu den Clustern umfassen. In einigen Ausführungsformen bestimmt der Prozessor den Schwerpunkt eines Clusters mithilfe von

C k = X Oh k ( X ) M X k Oh k ( X ) M ,
wobei ein Punkt x einen Satz von Koeffizienten ω hatk(x) gibt den Grad der Zugehörigkeit zum Cluster k an, wobei m der Hyperparameter ist, der steuert, wie unscharf der Cluster sein wird. In einigen Ausführungsformen kann der Prozessor einen FCM-Algorithmus verwenden, der eine endliche Sammlung von n Elementen X={x partitioniert1, . . . , XN} in eine Sammlung von c Fuzzy-Clustern in Bezug auf ein bestimmtes Kriterium. In einigen Ausführungsformen kann der FCM-Algorithmus bei einem gegebenen endlichen Datensatz eine Liste von c Clusterzentren C={c zurückgeben1, . . . , C2} und eine Partitionsmatrix W=ωi,j∈[0,1] für i=1, . . . , n und j=1, . . . , c, wobei jedes Element ωijgibt den Grad an, in dem jedes Element xichgehört zum Cluster cJ. In einigen Ausführungsformen minimiert der FCM-Algorithmus die Zielfunktionen argminC

ich = 1 N J = 1 C Oh ich J M „\[LeftBracketingBar]“ „\[LeftBracketingBar]“ X ich - C J „\[RightBracketingBar]“ „\[RightBracketingBar]“ 2 , worin Oh ij = 1 k = 1 C ( „\[LeftBracketingBar]“ „\[LeftBracketingBar]“ X ich - C J „\[RightBracketingBar]“ „\[RightBracketingBar]“ „\[LeftBracketingBar]“ „\[LeftBracketingBar]“ X ich - C k „\[RightBracketingBar]“ „\[RightBracketingBar]“ ) 2 M - 1 .
In einigen Ausführungsformen kann der Prozessor k-Means-Clustering verwenden, was auch die gleiche Zielfunktion minimiert. Der Unterschied zum C-Means-Clustering besteht in den Additionen von ωijund m∈R, für m≥1. Ein großes m führt zu einem kleineren ωijWerte als Cluster sind unschärfer, und wenn m=1, ωijkonvergiert gegen Null oder Eins, was eine klare Partitionierung impliziert. Zum Beispiel,FEIGE.45Averanschaulicht eindimensionale Datenpunkte4500entlang einer x-Achse. Die Daten können in zwei Cluster gruppiert werden. InFEIGE.45B, eine Schwelle4501entlang der x-Achse kann ausgewählt werden, um Datenpunkte zu gruppieren4500in die Cluster A und B. Jeder Datenpunkt kann einen Mitgliedschaftskoeffizienten w mit einem Wert von Null oder Eins haben, der entlang der y-Achse dargestellt werden kann. Beim Fuzzy-Clustering kann jeder Datenpunkt eine Zugehörigkeit zu mehreren Clustern haben und der Zugehörigkeitskoeffizient kann ein beliebiger Wert zwischen Null und Eins sein.FEIGE.45CVeranschaulicht das Fuzzy-Clustering von Datenpunkten X00, wobei ein neuer Schwellenwert vorliegt4502und Zugehörigkeitskoeffizienten w für jeden Datenpunkt können basierend auf den Schwerpunkten der Cluster und einem Abstand von jedem Clusterschwerpunkt ausgewählt werden. Der Datenpunkt, der den Schwellenwert schneidet4502gehört zu den beiden Clustern A und B und hat einen Mitgliedschaftskoeffizienten von 0,4 für die Cluster A und B.

In einigen Ausführungsformen kann der Prozessor spektrale Clustering-Techniken verwenden. In einigen Ausführungsformen kann der Prozessor ein Spektrum (oder Eigenwerte) einer Ähnlichkeitsmatrix von Daten verwenden, um die Dimensionalität zu reduzieren, bevor er in weniger Dimensionen gruppiert wird. In einigen Ausführungsformen kann die Ähnlichkeitsmatrix die relative Ähnlichkeit jedes Punktpaars in einem Datensatz angeben. Beispielsweise kann die Ähnlichkeitsmatrix für einen Satz von Datenpunkten eine symmetrische Matrix A sein, wobei Aij≥0 gibt ein Maß für die Ähnlichkeit zwischen Datenpunkten mit den Indizes i und j an. In einigen Ausführungsformen kann der Prozessor eine allgemeine Clustering-Methode, wie z. B. k-means, für relevante Eigenvektoren einer Laplace-Matrix von A verwenden. In einigen Ausführungsformen sind die relevanten Eigenvektoren diejenigen, die den kleinsten mehreren Eigenwerten des Laplace-Matrix mit Ausnahme des Eigenwerts entsprechen mit einem Wert von Null. In einigen Ausführungsformen bestimmt der Prozessor die relevanten Eigenvektoren als die Eigenvektoren, die den größten mehreren Eigenwerten einer Funktion des Laplace-Operators entsprechen. In einigen Ausführungsformen kann spektrales Clustering mit der Partitionierung eines Masse-Feder-Systems verglichen werden, wobei jede Masse einem Datenpunkt zugeordnet sein kann und jede Federsteifigkeit einem Gewicht einer Kante entsprechen kann, die eine Ähnlichkeit zweier verwandter Datenpunkte beschreibt. In einigen Ausführungsformen kann das Eigenwertproblem transversaler Schwingungsmoden eines Masse-Feder-Systems dasselbe sein wie das Eigenwertproblem des Graphen Laplace-Matrix, L:=D – A, wobei D die Diagonalmatrix D istii=SJAij. Die durch Federn fest verbundenen Massen bewegen sich in niederfrequenten Schwingungsmoden aus der Gleichgewichtsposition heraus, sodass Komponenten der Eigenvektoren, die den kleinsten Eigenwerten des Laplace-Graphen entsprechen, zur Clusterung der Massen verwendet werden können. In einigen Ausführungsformen kann der Prozessor einen normalisierten Schnittalgorithmus für die spektrale Clusterbildung verwenden, wobei Punkte in zwei Sätze unterteilt werden können (B1,B2) basierend auf einem Eigenvektor ν, der dem zweitkleinsten Eigenwert des symmetrischen normalisierten Laplace-Operators entspricht,

L N Ö R M := ICH - D - 1 2 A D - 1 2 .
Alternativ kann der Prozessor den Eigenvektor bestimmen, der dem größten Eigenwert der normalisierten Random-Walk-Adjazenzmatrix, P=D, entspricht−1A. In einigen Ausführungsformen kann der Prozessor die Daten aufteilen, indem er einen Medianwert m der Komponenten des kleinsten Eigenvektors ν bestimmt und alle Datenpunkte, deren Komponente in ν größer als m ist, in B platziert1und der Rest in B2. In einigen Ausführungsformen kann der Prozessor einen solchen Algorithmus für die hierarchische Clusterbildung verwenden, indem er unter Verwendung der beschriebenen Partitionierungsmethode wiederholt Teilmengen von Daten partitioniert.

In einigen Ausführungsformen können die beschriebenen Clustering-Techniken verwendet werden, um mit relativ geringem Rechenaufwand Einblicke in Daten zu erhalten (die mit anderen Methoden verfeinert werden können). In einigen Fällen kann die generische Klassifizierung jedoch eine Herausforderung darstellen, da die anfängliche Anzahl der Klassen möglicherweise unbekannt ist und ein überwachter Lernalgorithmus die Anzahl der Klassen möglicherweise im Voraus benötigt. In einigen Ausführungsformen kann ein Klassifizierungsalgorithmus mit einer festen Anzahl von Klassen bereitgestellt werden, in die Daten gruppiert werden können. Die Bestimmung der festen Anzahl von Klassen kann jedoch schwierig sein. Zum Beispiel bei der UntersuchungFEIGE.46AEs kann festgestellt werden, dass Datenpunkte vorliegen4600in vier Klassen gegliedert4601kann zu einem optimalen Ergebnis führen. Oder das Organisieren von Datenpunkten4600in fünf Klassen4602, wie in dargestelltFEIGE.46B, kann zu einer guten Klassifizierung führen. Bei einem unbekannten Bild oder einer unbekannten Umgebung ist es jedoch schwieriger, die feste Anzahl von Klassen im Voraus zu bestimmen. Darüber hinaus sind A-priori-Wahrscheinlichkeiten für jede Klasse P(ωJ) für j=1, 2, . . . Möglicherweise muss man das auch wissen. In einigen Ausführungsformen kann der Prozessor anhand der Winkelauflösung der Sensoren, der Anzahl der Scans pro Sekunde und der Winkelverschiebung des Roboters im Verhältnis zur Größe schätzen, wie viele der insgesamt gescannten Datenpunkte zu jeder Klasse gehören Umfeld. In einigen Ausführungsformen kann der Prozessor klassenbedingte Wahrscheinlichkeitsdichten P(ω) annehmenJ, ichJ) sind bekannt für j=1, . . . , C. In einigen Ausführungsformen sind die Werte von c Parametervektoren θ1, . . . , ichCund Klassenbezeichnungen sind möglicherweise unbekannt. In einigen Ausführungsformen kann der Prozessor die Mischungsdichtefunktion verwenden

P ( ich ) = J = 1 C P ( X | Oh J , ich J ) P ( Oh J ) ,
wobei θ=(θ1, . . . , ichC)T, bedingte Dichte P(x|ωJ, ichJ) ist eine Komponentendichte und priori P(ωJ) ist ein Mischparameter zur Schätzung des Parametervektors θ. In einigen Ausführungsformen kann der Prozessor Stichproben aus den Mischungsdichten ziehen, um den Parametervektor θ abzuschätzen. In einigen Ausführungsformen kann der Prozessor unter der Voraussetzung, dass θ bekannt ist, die Mischungsdichten in Komponenten zerlegen und einen Maximum-a-posteriori-Klassifikator für die abgeleiteten Dichten verwenden. In einigen Ausführungsformen gilt für einen Datensatz D={x1, . . . , XN} mit n unbeschrifteten Datenpunkten, die unabhängig voneinander aus einer Mischungsdichte gezogen wurden

P ( ich ) = J = 1 C P ( X | Oh J , ich J ) P ( Oh J ) ,
wobei der Parametervektor θ unbekannt, aber fest ist, kann der Prozessor die Wahrscheinlichkeit der beobachteten Probe als Verbindungsdichte P(θ)=Π bestimmenk=1NP(xk|θ). In einigen Ausführungsformen bestimmt der Prozessor die maximale Wahrscheinlichkeitsschätzung θ für θ als den Wert von θ, der die Wahrscheinlichkeit von D bei gegebenem θ maximiert. In einigen Ausführungsformen kann davon ausgegangen werden, dass die Verbindungsdichte P(θ) von θ differenzierbar ist. In einigen Ausführungsformen kann der Prozessor den Logarithmus der Wahrscheinlichkeit bestimmen,

l = k = 1 N ln P ( X k | ich ) ,
und der Gradient von l bezüglich

ich ich , ich ich l = k = 1 N 1 P ( X k | ich ) ich ich [ J = 1 C P ( X k | Oh J , ich J ) P ( Oh J ) ] .
Wenn θichund θJsind unabhängig und i≠j dann

P ( Oh ich | X k , ich ) = P ( Oh ich , ich ich ) P ( Oh ich ) P ( ich )
und der Prozessor kann den Gradienten der Log-Likelihood anhand von bestimmen

ich ich l = k = 1 N P ( Oh ich | X k , ich ) ich ich ln P ( X k | Oh ich , ich ich ) .
Da der Gradient als Wert von θ verschwinden mussichdas maximiert l, die maximale Wahrscheinlichkeitsschätzung θ}ichmuss die Bedingungen erfüllen

k = 1 N P ( Oh ich | X k , ich ) ich ich ln P ( X k | Oh ich , ich ich ) = 0 für ich = 1 , , C .
In einigen Ausführungsformen findet der Prozessor die Maximum-Likelihood-Lösung unter den Lösungen der Gleichungen für θich. In einigen Ausführungsformen können die Ergebnisse verallgemeinert werden, um A-priori-Wahrscheinlichkeiten P(ω) einzuschließenich) unter den unbekannten Größen. In einem solchen Fall erstreckt sich die Suche nach den Maximalwerten von P(θ) über θ und P(ωich), wobei P(ωich)≥0 für i=1, . . . , c und

ich = 1 C P ( Oh ich ) = 1.
In einigen Ausführungsformen gilt P}(ωich) kann die Maximum-Likelihood-Schätzung für P(ω) seinich) und {Zirkumflex über (θ)}ichkann die Maximum-Likelihood-Schätzung für θ seinich. Ob die Likelihood-Funktion differenzierbar ist und ob

P ˆ ( Oh ich ) 0 für beliebig ich , Dann P ˆ ( Oh ich ) Und ich ˆ ich erfüllen P ˆ ( Oh ich ) = 1 N k = 1 N P ˆ ( Oh ich | X k , ich ˆ ) Und k = 1 N P ˆ ( Oh ich | X k , ich ˆ ) ich ich ln P ( X k | Oh ich , ich ˆ ich ) = 0 ,
worin

P ˆ ( Oh ich | X k , ich ˆ ) = P ( Oh ich , ich ^ ich ) P ˆ ( Oh ich ) J = 1 C P ( X k | Oh J , ich ^ ich ) P ˆ ( Oh J ) .
Dies besagt, dass die Maximum-Likelihood-Schätzung der Wahrscheinlichkeit einer Kategorie der Durchschnitt der aus jeder Kategorie abgeleiteten Schätzung über den gesamten Datensatz ist, wobei jede Stichprobe gleich gewichtet wird. Die letztere Gleichung hängt mit dem Bayes-Theorem zusammen, jedoch mit der Schätzung der Wahrscheinlichkeit für die Klasse ωichhängt von θ abichund nicht direkt das volle θ. Da P}≠0 und für den Fall, dass n=1,

k = 1 N P ˆ ( Oh ich | X k , ich ˆ ) ich ich ln P ( X k | Oh ich , ich ˆ ich ) = 0
besagt, dass die Wahrscheinlichkeitsdichte als Funktion von θ maximiert wirdich.

In einigen Ausführungsformen kann die Clusterbildung aufgrund der kontinuierlichen Erfassung von Daten, die zu verschiedenen Zeitpunkten unterschiedlich sein kann, und aufgrund von Änderungen am Ort, von dem aus Daten erfasst werden, eine Herausforderung darstellen. Zum Beispiel,FEIGE.47Averanschaulicht Datenpunkte4700aus einer bestimmten Perspektive betrachtet4701eines Sensors undFEIGE.47Bveranschaulicht Datenpunkte4700aus einem anderen Blickwinkel betrachtet4702des Sensors. Dies veranschaulicht diese Datenpunkte4700erscheinen je nach Blickwinkel des Sensors unterschiedlich. In einigen Ausführungsformen kann der Prozessor den Kompromiss zwischen Stabilität und Plastizität nutzen, um bei der Lösung solcher Herausforderungen zu helfen. Das Stabilitäts-Plastizitäts-Dilemma ist eine bekannte Einschränkung für künstliche neuronale Systeme, da ein neuronales Netzwerk neue Eingaben aus der Umgebung lernen muss, ohne durch diese gestört zu werden. Das neuronale Netzwerk benötigt möglicherweise Plastizität für die Integration neuen Wissens, aber auch Stabilität, um zu verhindern, dass früheres Wissen vergessen wird. In einigen Ausführungsformen kann zu viel Plastizität zu katastrophalem Vergessen führen, wobei ein neuronales Netzwerk zuvor gelernte Informationen vollständig vergisst, wenn es neuen Informationen ausgesetzt wird. Neuronale Netze wie Backpropagation-Netze können aufgrund der stark verteilten internen Darstellungen des Netzes sehr empfindlich auf katastrophales Vergessen reagieren. In solchen Fällen kann katastrophales Vergessen minimiert werden, indem die Überlappung zwischen internen Darstellungen, die im neuronalen Netzwerk gespeichert sind, verringert wird. Daher können solche Netzwerke beim Lernen von Eingabemustern zwischen ihnen wechseln und die entsprechenden Gewichte in kleinen Schritten anpassen, um jeden Eingabevektor korrekt dem zugehörigen Ausgabevektor zuzuordnen. In einigen Ausführungsformen kann ein duales Speichersystem, d. h. ein Kurzzeit- und ein Langzeitgedächtnis, verwendet werden, um katastrophales Vergessen zu vermeiden, wobei Informationen zunächst in einem Kurzzeitgedächtnis innerhalb eines Langzeitgedächtnisses konsolidiert werden können. In einigen Ausführungsformen kann zu viel Stabilität zu einem Verankerungseffekt führen, der zu altersbegrenzten Lerneffekten beitragen kann. In einigen Ausführungsformen kann der Verankerungseffekt minimiert werden, indem der Plastizitätsverlust als Funktion der Übertragungsfunktion und des Fehlers variiert wird. In einigen Ausführungsformen kann der Prozessor den Fahlman-Offset verwenden, um die Plastizität neuronaler Netze zu modulieren, indem er der Ableitung der Sigmoidfunktion eine konstante Zahl hinzufügt, sodass diese nicht auf Null geht und die flachen Stellen in der Sigmoidfunktion vermeidet, an denen Gewichtungen auftreten können verschanzt.

In einigen Ausführungsformen können Entfernungsmessgeräte, die zur Beobachtung der Umgebung verwendet werden, unterschiedliche Sichtfelder (Field of Views, FOVs) haben und Winkelauflösungen können verwendet werden. Beispielsweise kann ein Tiefensensor Tiefenmesswerte innerhalb eines Sichtfelds im Bereich von null bis 90 Grad mit einer Winkelauflösung von einem Grad liefern. Ein anderer Abstandssensor kann Abstandswerte innerhalb eines Sichtfelds im Bereich von null bis 180 Grad mit einer Winkelauflösung von 0,5 Grad liefern. In einem anderen Fall kann ein LIDAR ein Sichtfeld von 270 oder 360 Grad bieten.

In einigen Ausführungsformen kann die Immunität eines Entfernungsmessgeräts mit einer vom Gerät abgegebenen Beleuchtungsleistung und einer Empfindlichkeit eines Empfängers des Geräts zusammenhängen. In einigen Fällen kann die Immunität gegenüber Umgebungslicht durch Lux definiert werden. Beispielsweise kann ein LIDAR eine typische Immunität von 500 Lux und eine maximale Immunität von 1500 Lux haben. Ein anderer LIDAR kann eine typische Immunität von 2000 Lux und eine maximale Immunität von 4500 Lux haben. In einigen Ausführungsformen kann die in Hz angegebene Scanfrequenz auch die Immunität von Entfernungsmessgeräten beeinflussen. Beispielsweise kann ein LIDAR eine minimale Scanfrequenz von 4 Hz, eine typische Scanfrequenz von 5 Hz und eine maximale Scanfrequenz von 10 Hz haben. In einigen Fällen können Lasersicherheitsstandards der Klasse I verwendet werden, um die von einem Sender abgegebene Leistung zu begrenzen. In einigen Ausführungsformen können ein Laser und eine optische Linse zum Senden und Empfangen eines Lasersignals verwendet werden, um eine Hochfrequenzentfernung zu erreichen. In einigen Fällen kann die Sauberkeit von Lasern und optischen Linsen auch negative Auswirkungen auf die Immunität haben. In einigen Ausführungsformen kann der Prozessor bestimmte Techniken verwenden, um die Reflexion von Beleuchtungslicht von Umgebungslicht zu unterscheiden, beispielsweise verschiedene Softwarefilter. Sobald beispielsweise Tiefendaten empfangen wurden, können diese verarbeitet werden, um die Reflexion von Beleuchtungslicht vom Umgebungslicht zu unterscheiden.

In einigen Ausführungsformen kann sich die Mitte des rotierenden Kerns eines LIDAR, der zur Beobachtung der Umgebung verwendet wird, von der Mitte des Roboters unterscheiden. In solchen Ausführungsformen kann der Prozessor eine Transformationsfunktion verwenden, um die Messwerte des LIDAR-Sensors auf die physische Dimension des Roboters abzubilden. In einigen Ausführungsformen kann sich das LIDAR im oder gegen den Uhrzeigersinn drehen. In einigen Ausführungsformen können die LIDAR-Messwerte je nach Bewegung des Roboters unterschiedlich sein. Beispielsweise können die Messwerte des LIDAR unterschiedlich sein, wenn sich der Roboter in die gleiche Richtung wie ein LIDAR-Motor dreht, als wenn sich der Roboter geradeaus bewegt oder in die entgegengesetzte Richtung zum LIDAR-Motor dreht. In manchen Fällen stimmt der Nullwinkel des LIDAR möglicherweise nicht mit dem Nullwinkel des Roboters überein.

In einigen Ausführungsformen können Daten mithilfe eines propriozeptiven Sensors und eines exterozeptiven Sensors gesammelt werden. In einigen Ausführungsformen kann der Prozessor Daten von einem der beiden Sensortypen verwenden, um die Karte zu erstellen oder zu aktualisieren, und kann Daten von dem anderen Sensortyp verwenden, um die bei der Erstellung oder Aktualisierung der Karte verwendeten Daten zu validieren. In einigen Ausführungsformen kann der Prozessor beide Szenarien umsetzen, wobei die Daten des propriozeptiven Sensors zur Validierung der Daten des exterozeptiven Sensors verwendet werden und umgekehrt. In einigen Ausführungsformen können die von beiden Sensortypen erfassten Daten zum Erstellen oder Aktualisieren der Karte verwendet werden. In einigen Ausführungsformen können die von einem Sensortyp gesammelten Daten zum Erstellen oder Aktualisieren einer lokalen Karte verwendet werden, während Daten vom anderen Sensortyp zum Erstellen oder Aktualisieren einer globalen Karte verwendet werden können. In einigen Ausführungsformen können die von beiden Sensortypen gesammelten Daten Tiefendaten (z. B. Tiefe zu Umfängen, Hindernissen, Kanten, Ecken, Objekten usw.), Rohbilddaten oder eine Kombination umfassen.

In einigen Ausführungsformen kann es mögliche Überschneidungen bei den von einem exterozeptiven Sensor erfassten Daten geben. In einigen Ausführungsformen kann ein Bewegungsfilter verwendet werden, um kleine Schwankungen herauszufiltern, die der Roboter möglicherweise verspürt, während er Messungen mit einem Bildsensor oder anderen Sensoren durchführt.FEIGE.48veranschaulicht einen Flusspfad eines Bildes, wobei das Bild vor der Verarbeitung durch einen Bewegungsfilter geleitet wird. In einigen Ausführungsformen kann der Prozessor erfasste Bilder vertikal ausrichten, wenn Bilder möglicherweise nicht auf exakt derselben Höhe erfasst werden.FEIGE.49Averanschaulicht nicht ausgerichtete Bilder4900da die Bilder in unterschiedlichen Höhen aufgenommen wurden.FEIGE.49Billustriert die Bilder4900nach Ausrichtungen. In einigen Ausführungsformen erkennt der Prozessor eine Überlappung zwischen Daten an einem Datenumfang. Ein solches Beispiel ist in dargestelltFEIGE.50, wobei ein Überlappungsbereich5000an einem Rand der Daten5001wird durch den Pfeil angezeigt5002. In einigen Ausführungsformen kann der Prozessor Überlappungen zwischen Daten auf andere Weise erkennen. Ein Beispiel für einen alternativen Überlappungsbereich3403zwischen Daten5001ist in dargestelltFEIGE.51. In einigen Ausführungsformen kann es zu keiner Überlappung zwischen den Daten kommen5001und der Prozessor kann eine Transponierungsfunktion verwenden, um eine virtuelle Überlappung basierend auf einem optischen Fluss oder einer Trägheitsmessung zu erzeugen.FEIGE.52verdeutlicht einen Mangel an Überschneidungen zwischen den Daten.

In einigen Ausführungsformen kann die Bewegung des Roboters von einem Encoder, einer IMU und/oder einem optischen Trackingsensor (OTS) gemessen und verfolgt werden, und von einem Bildsensor erfasste Bilder können kombiniert werden, um eine räumliche Darstellung basierend auf der Überlappung von Daten zu bilden und/oder gemessene Bewegung des Roboters. In einigen Ausführungsformen bestimmt der Prozessor eine logische Überlappung zwischen Daten und stellt Daten in einer räumlichen Darstellungsausgabe nicht zweimal dar. Zum Beispiel,FEIGE.53veranschaulicht einen Weg5300des Roboters und ein Maß an Überlappung5301. In einigen Ausführungsformen können überlappende Teile zum Kombinieren von Bildern verwendet werden, die räumliche Darstellung umfasst jedoch möglicherweise nur einen Satz (oder nur einige Sätze) der überlappenden Daten oder in anderen Fällen kann sie alle Sätze der überlappenden Daten umfassen. In einigen Ausführungsformen kann der Prozessor eine Faltung verwenden, um einen einzelnen Datensatz aus den beiden überlappenden Datensätzen zu erhalten. In solchen Fällen erfolgt die räumliche Darstellung nach dem Sammeln von Daten während der Ausführung des Pfades5300InFEIGE.53kann wie in erscheinenFEIGE.54, im Gegensatz zur räumlichen Darstellung inFEIGE.55wobei räumliche Daten doppelt dargestellt werden. Während der Erkennung kann sich ein Pfad des Roboters häufig überschneiden, wie im Beispiel vonFEIGE.56Allerdings verwendet der Prozessor möglicherweise nicht alle überlappenden Daten, die während dieser überlappenden Pfade erfasst wurden, wenn er die räumliche Darstellung erstellt.

In einigen Ausführungsformen können Sensoren des Roboters, die zur Beobachtung der Umgebung verwendet werden, ein begrenztes Sichtfeld haben. In einigen Ausführungsformen beträgt das Sichtfeld 360 oder 180 Grad. In einigen Ausführungsformen kann das Sichtfeld des Sensors vertikal oder horizontal oder in einer anderen Richtung oder Weise begrenzt sein. In einigen Ausführungsformen können Sensoren mit größeren FOVs für einige Bereiche blind sein. In einigen Ausführungsformen können tote Winkel von Robotern mit komplementären Sensortypen ausgestattet sein, die sich überlappen und manchmal Redundanz bieten können. Beispielsweise kann ein Sonarsensor das Vorhandensein oder Nichtvorhandensein eines Hindernisses innerhalb eines breiteren Sichtfelds besser erkennen, während eine Kamera die Position des Hindernisses innerhalb des Sichtfelds liefern kann. In einem Beispiel kann ein Sensor eines Roboters mit einem linearen 360-Grad-Sichtfeld in einem einzigen Moment eine gesamte Ebene einer Umgebung bis hin zu den nächstgelegenen Objekten (z. B. Umzäunungen oder Möbeln) beobachten, es können jedoch einige tote Winkel vorhanden sein. Während ein lineares 360-Grad-Sichtfeld ein ausreichendes Sichtfeld in einer Ebene bietet, kann das Sichtfeld vertikale Einschränkungen aufweisen.FEIGE.57zeigt einen Roboter5700Beobachtung einer Umgebung5701, mit totem Winkel5702dass Sensoren des Roboters5700nicht beobachten kann. Bei einem begrenzten Sichtfeld kann es Bereiche geben, die während der Bewegung des Roboters unbeobachtet bleiben. Zum Beispiel,FEIGE.58veranschaulicht Roboter5800und Sichtfelder5801Und5802eines Sensors des Roboters, wenn sich der Roboter jeweils von einer ersten Position zu einer zweiten Position bewegt. Aufgrund des kleinen Sichtfelds oder des toten Winkels des Objekts5803innerhalb des Bereichs5804bleibt unbemerkt, wenn sich der Roboter aus dem Beobachtungsfeld entfernt5801Zu5802. In manchen Fällen passt der Prozessor des Roboters in eine Linie5805Und5806zu den in FOVs erfassten Daten5801Und5802, bzw. In einigen Ausführungsformen passt der Prozessor in eine Zeile5807zu den in FOVs erfassten Daten5801Und5802das an den Linien ausgerichtet ist5805Und5806, bzw. In einigen Ausführungsformen richtet der Prozessor die in verschiedenen FOVs beobachteten Daten aus, um eine Karte zu erstellen. In einigen Ausführungsformen verbindet der Prozessor Leitungen5805Und5806durch eine Verbindungslinie oder durch eine an die in FOVs erfassten Daten angepasste Linie5801Und5802. In manchen Ausführungsformen sind die Leitungen Verbindungsleitungen5805Und5806hat eine geringere Sicherheit, da es sich um einen unbeobachteten Bereich handelt5804. Zum Beispiel,FEIGE.59zeigt den geschätzten Umfang5900, wobei Umfangslinie5900wird an die in FOVs erfassten Daten angepasst5801Und5802. Der Teil der Umfangslinie5900in den Bereich fallen5804, für die die Sensoren des Roboters blind waren, kann anhand einer Linie, die Linien verbindet, geschätzt werden5805Und5806wie in dargestelltFEIGE.58. Allerdings seit Bereich5804von den Sensoren des Roboters unbemerkt bleibt, ist sich der Prozessor über den Teil des Umfangs weniger sicher5900in den Bereich fallen5804. Beispielsweise ist sich der Prozessor nicht sicher, ob es sich um einen Umfangsabschnitt handelt5900in den Bereich fallen5804ist eigentlich Umfang5901. Ein solcher Umfangsschätzungsansatz kann verwendet werden, wenn die Geschwindigkeit der Datenerfassung höher ist als die Geschwindigkeit des Roboters.

In einigen Ausführungsformen können geschichtete Karten zur Vermeidung toter Winkel verwendet werden. In einigen Ausführungsformen kann der Prozessor eine Karte mit mehreren Ebenen generieren. In einigen Ausführungsformen kann eine Schicht Bereiche mit hoher Wahrscheinlichkeit der Richtigkeit umfassen (z. B. Bereiche, die auf beobachteten Daten basieren), während eine andere Schicht Bereiche mit geringerer Wahrscheinlichkeit der Richtigkeit umfassen kann (z. B. Bereiche, die nicht gesehen und auf der Grundlage beobachteter Daten vorhergesagt wurden). In einigen Ausführungsformen umfasst eine Ebene der Karte oder einer anderen generierten Karte möglicherweise nur Bereiche, die vom Prozessor des Roboters nicht beobachtet und vorhergesagt wurden. Der Prozessor kann jederzeit Karten voneinander entfernen, Karten miteinander hinzufügen (z. B. durch Layering von Karten) oder Layer ausblenden.

In einigen Ausführungsformen kann eine Ebene einer Karte eine Karte sein, die ausschließlich auf der Grundlage der Beobachtungen eines bestimmten Sensortyps erstellt wurde. Beispielsweise kann eine Karte drei Ebenen umfassen und jede Ebene kann eine Karte sein, die ausschließlich auf der Grundlage der Beobachtungen eines bestimmten Sensortyps erstellt wurde. In einigen Ausführungsformen können Karten verschiedener Ebenen vertikal oder horizontal, deterministisch oder probabilistisch und lokal oder global überlagert werden. In einigen Ausführungsformen kann eine Karte horizontal mit Daten von einem Sensor (oder einer Sensorklasse) und vertikal mit Daten von einem anderen Sensor (oder einer anderen Sensorklasse) gefüllt werden.

In einigen Ausführungsformen können unterschiedliche Ebenen der Karte unterschiedliche Auflösungen haben. Beispielsweise kann es sein, dass ein weitreichender FOV-Sensor eines Roboters ein bestimmtes Hindernis nicht erkennt. Dadurch wird das Hindernis aus einer Karte ausgeschlossen, die auf der Grundlage der vom Sensor mit begrenztem Sichtfeld für große Entfernungen erfassten Daten erstellt wird. Wenn sich der Roboter jedoch dem Hindernis nähert, kann ein Hindernissensor mit kurzer Reichweite das Hindernis beobachten und es einer Karte hinzufügen, die auf der Grundlage der Daten des Hindernissensors erstellt wird. Der Prozessor kann die beiden Karten überlagern und so das Hindernis beobachten. In manchen Fällen kann der Prozessor das Hindernis zu einer Kartenebene hinzufügen, die dem Hindernissensor entspricht, oder zu einer anderen Kartenebene. In einigen Ausführungsformen hängt die Auflösung der Karte (oder der Kartenebene) vom Sensor ab, von dem die zur Erstellung der Karte verwendeten Daten stammen. In einigen Ausführungsformen können Karten mit unterschiedlichen Auflösungen für verschiedene Zwecke erstellt werden. In einigen Ausführungsformen wählt der Prozessor basierend auf der ausgeführten Aktion oder den Einstellungen des Roboters eine bestimmte Auflösung für die Navigation aus. Wenn der Roboter beispielsweise mit langsamer Fahrgeschwindigkeit fährt, kann eine Kartenebene mit niedrigerer Auflösung verwendet werden. In einem anderen Beispiel fährt der Roboter mit erhöhter Geschwindigkeit in einem Gebiet mit hoher Hindernisdichte, daher kann eine Kartenebene mit höherer Auflösung verwendet werden. In manchen Fällen werden die Daten der Karte in einem Speicher des Roboters gespeichert. In einigen Ausführungsformen werden Daten mit geringerer Genauigkeit verwendet oder einige Gleitkommazahlen können in einigen Berechnungen für Karten mit niedrigerer Auflösung ausgeschlossen werden. In einigen Ausführungsformen können Karten mit unterschiedlichen Auflösungen alle dieselben zugrunde liegenden Rohdaten verwenden, anstatt mehrere Kopien dieser Rohinformationen zu speichern.

In einigen Ausführungsformen führt der Prozessor eine Reihe von Prozeduren aus, um Ebenen einer Karte zu generieren, die zum Erstellen der Karte aus gespeicherten Werten im Speicher verwendet werden. In einigen Ausführungsformen kann die gleiche Reihe von Prozeduren verwendet werden, um die Karte mit unterschiedlichen Auflösungen zu erstellen. In einigen Ausführungsformen kann es spezielle Verfahrensreihen zum Erstellen verschiedener Karten geben. In einigen Ausführungsformen kann eine separate Ebene einer Karte in einer separaten Datenstruktur gespeichert werden. In einigen Ausführungsformen können verschiedene Ebenen einer Karte oder verschiedene Kartentypen zumindest teilweise aus denselben zugrunde liegenden Datenstrukturen erstellt werden.

In einigen Ausführungsformen identifiziert der Prozessor Lücken in der Karte (z. B. aufgrund von Bereichen, die für einen Sensor blind sind, oder einer Reichweite eines Sensors). In einigen Ausführungsformen kann der Prozessor den Roboter dazu veranlassen, sich auf die Lücke zuzubewegen und diese zu untersuchen, Beobachtungen zu sammeln und neue Gebiete zu kartieren, indem er der Karte neue Beobachtungen hinzufügt, bis die Lücke geschlossen ist. In einigen Fällen kann es jedoch vorkommen, dass die Lücke oder ein Bereich, der für den Sensor nicht sichtbar ist, nicht erkannt wird. In einigen Ausführungsformen kann ein Umfang falsch vorhergesagt werden und somit Bereiche blockieren, die für den Sensor des Roboters blind waren. Zum Beispiel,FEIGE.60zeigt den tatsächlichen Umfang6000, blinder Fleck6001und falsch vorhergesagter Umfang6002, blockiert den toten Winkel6001. Ein ähnliches Problem kann auftreten, wenn beispielsweise eine Bettdecke oder ein Vorhang zunächst wie eine Begrenzung aussieht, der Roboter jedoch in Wirklichkeit hinter der Bettdecke oder dem Vorhang navigiert.

Probleme im Zusammenhang mit einer falschen Perimetervorhersage können durch gründliche Inspektion der Umgebung und Schulung beseitigt werden. Beispielsweise können Daten von einem zweiten Sensortyp verwendet werden, um eine erste Karte zu validieren, die auf der Grundlage von Daten erstellt wurde, die von einem ersten Sensortyp gesammelt wurden. In einigen Ausführungsformen können zusätzliche Informationen, die von mehreren Sensoren entdeckt werden, in mehreren Schichten oder unterschiedlichen Schichten oder in derselben Schicht enthalten sein. In einigen Ausführungsformen kann eine Trainingsperiode des Roboters umfassen, dass der Roboter die Umgebung mehrmals mit demselben Sensor oder mit einem zweiten (oder mehreren) Sensortyp untersucht. In einigen Ausführungsformen kann der Trainingszeitraum über eine Sitzung (z. B. während einer Ersteinrichtung des Roboters) oder über mehrere Sitzungen erfolgen. In einigen Ausführungsformen kann ein Benutzer den Roboter anweisen, jederzeit mit dem Training zu beginnen. In einigen Ausführungsformen kann der Prozessor des Roboters die Karte zur Validierung und weiteren maschinellen Lernverarbeitung an die Cloud übertragen. Beispielsweise kann die Karte in der Cloud verarbeitet werden, um Räume auf der Karte zu identifizieren. In einigen Ausführungsformen kann die Karte, die verschiedene Informationen enthält, in ein grafisches Objekt umgewandelt und dem Benutzer präsentiert werden (z. B. über eine Anwendung eines Kommunikationsgeräts). In einigen Ausführungsformen wird die Karte dem Benutzer möglicherweise erst angezeigt, wenn sie mehrmals vollständig überprüft wurde und eine hohe Genauigkeit aufweist. In einigen Ausführungsformen deaktiviert der Prozessor eine Hauptbürste und/oder eine Seitenbürste des Roboters im Trainingsmodus oder beim Suchen und Navigieren zu einer Ladestation.

In einigen Ausführungsformen kann eine Lücke in den Umgebungsrändern auf eine Öffnung in der Wand zurückzuführen sein (z. B. eine Türöffnung oder eine Öffnung zwischen zwei separaten Bereichen). In einigen Ausführungsformen kann die Erkundung der unentdeckten Bereiche, in denen die Lücke identifiziert wurde, zur Entdeckung eines Raums, eines Flurs oder eines anderen separaten Bereichs führen. In einigen Ausführungsformen können identifizierte Lücken, bei denen es sich beispielsweise um eine Öffnung in der Wand handelt, dazu verwendet werden, Bereiche in kleinere Unterbereiche zu unterteilen. Beispielsweise kann die Öffnung in der Wand zwischen zwei Räumen dazu verwendet werden, den Bereich in zwei Unterbereiche zu unterteilen, wobei jeder Raum ein einzelner Unterbereich ist. Dies kann auf beliebig viele Räume erweitert werden. In einigen Ausführungsformen kann der Prozessor des Roboters für jeden Unterbereich ein eindeutiges Etikett bereitstellen und das eindeutige Etikett verwenden, um die Unterbereiche für die Abdeckung durch den Roboter zu ordnen, verschiedene Arbeitsfunktionen für verschiedene Unterbereiche auszuwählen, Beschränkungen für Unterbereiche hinzuzufügen und Reinigungspläne festzulegen verschiedene Teilbereiche und dergleichen. In einigen Ausführungsformen kann der Prozessor einen zweiten Raum hinter einer Öffnung in der Wand erkennen, die innerhalb eines abgedeckten ersten Raums erkannt wurde, und die Öffnung in der Wand zwischen den beiden Räumen als Tür identifizieren. Methoden zur Identifizierung einer Türöffnung werden in der US-Patentanmeldung Seriennr. Nr. 16/163.541 und 15/614.284, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In einigen Ausführungsformen kann der Prozessor beispielsweise Tiefendatenpunkte an ein Linienmodell anpassen und jede Abweichung vom Linienmodell kann vom Prozessor als Öffnung in der Wand identifiziert werden. In einigen Ausführungsformen kann der Prozessor die vom Tiefensensor für jeden Messwert aufgezeichnete Entfernung und Lichtintensität verwenden, um einen Fehler zu berechnen, der mit der Abweichung der Entfernungsdaten von einem Linienmodell verbunden ist. In einigen Ausführungsformen kann der Prozessor die Lichtintensität und die Reichweite eines vom Tiefensensor erfassten Punkts in Beziehung setzen

ICH ( N ) = A R ( N ) 4 ,
wobei I(n) die Intensität von Punkt n ist, r(n) die Entfernung des jeweiligen Punktes auf einem Objekt ist und a=E(I(n)r(n)4) ist eine Konstante, die vom Prozessor anhand einer Gaußschen Annahme bestimmt wird.

Gegeben dMindest, der Mindestentfernung aller erfassten Messwerte, kann der Prozessor die Entfernung berechnen

R ( N ) = D Mindest Sünde Sünde ( - ich ( N ) )
entsprechend einem Punkt n auf einem Objekt bei jeder Winkelauflösung θ(n). In einigen Ausführungsformen kann der Prozessor den Horizont α=asin d bestimmenMindest/Dmaxdes Tiefensensors gegeben dMindestund dmax, die minimalen bzw. maximalen Messwerte aller erfassten Messwerte. Der Prozessor kann eine kombinierte verwenden

Fehler e = ( ICH ( N ) R ( N ) 4 - A ) 2 + ( R ( N ) - ( D Mindest Sünde Sünde ( - ich ( N ) ) ) ) 2
der vom Tiefensensor ausgegebenen Reichweite und Lichtintensität, um Abweichungen vom Linienmodell und damit eine Öffnung in der Wand zu erkennen. Der Fehler e ist bei Wänden minimal und bei einer Öffnung in der Wand deutlich höher, da die Daten deutlich vom Linienmodell abweichen. In einigen Ausführungsformen kann der Prozessor einen Schwellenwert verwenden, um zu bestimmen, ob die berücksichtigten Datenpunkte auf eine Öffnung in der Wand hinweisen, wenn beispielsweise der Fehler einen bestimmten Schwellenwert überschreitet. In einigen Ausführungsformen kann der Prozessor einen adaptiven Schwellenwert verwenden, wobei die Werte unterhalb des Schwellenwerts als eine Wand betrachtet werden können.

In einigen Ausführungsformen betrachtet der Prozessor Öffnungen, deren Breite unter einem bestimmten Schwellenwert liegt, möglicherweise nicht als Öffnung in der Wand, beispielsweise Öffnungen, deren Breite zu klein ist, um als Tür betrachtet zu werden, oder zu klein, als dass der Roboter hindurchpassen könnte. In einigen Ausführungsformen kann der Prozessor die Breite der Öffnung in der Wand schätzen, indem er Winkel φ mit einem gültigen Bereichswert und einer Intensität größer oder gleich identifiziert

A D max .
Der Unterschied zwischen dem kleinsten und dem größten Winkel unter allen

Phi = { ich ( N ) ( { R ( N ) } ) ( ICH ( N ) ( A D max ) 4 ) }
Winkel können eine Schätzung der Breite der Öffnung liefern. In einigen Ausführungsformen kann der Prozessor auch die Breite einer Öffnung in der Wand bestimmen, indem er den Winkel identifiziert, bei dem der gemessene Bereich merklich zunimmt, und den Winkel, bei dem der gemessene Bereich merklich abnimmt, und indem er die Differenz zwischen den beiden Winkeln ermittelt.

In einigen Ausführungsformen kann der Prozessor mithilfe einer rekursiven Linienanpassung der Daten eine Wand oder eine Öffnung in der Wand erkennen. Der Prozessor kann den Fehler (y−(ax+b)) vergleichen2der Datenpunkte n1zu n2bis zu einem Schwellenwert T1und summiert die Anzahl der Fehler unterhalb des Schwellenwerts. Der Prozessor kann dann die Differenz zwischen der Anzahl der berücksichtigten Punkte (n2−n1) und die Anzahl der Datenpunkte mit Fehlern unterhalb des Schwellenwerts T1. Wenn die Differenz unter einem Schwellenwert liegt

T 2 , ich . e . , ( ( N 2 - N 1 ) - N 1 N 2 ( C - ( A X + B ) ) 2 < T 1 ) < T 2 ,
Dann ordnet der Prozessor den Datenpunkten eine Wand zu, andernfalls ordnet er die Datenpunkten einer Öffnung in der Wand zu.

In einer anderen Ausführungsform kann der Prozessor Entropie verwenden, um eine Öffnung in der Wand vorherzusagen, da eine Öffnung in der Wand zu ungeordneten Messdaten und damit zu einem größeren Entropiewert führt. In einigen Ausführungsformen kann der Prozessor Daten mit einer Entropie über einem bestimmten Schwellenwert als Öffnung in der Wand markieren. In einigen Ausführungsformen bestimmt der Prozessor die Entropie der Daten mithilfe von

H ( X ) = - ich = 1 N P ( X ich ) Protokoll Protokoll P ( X ich )
wobei X=(x1, X2, . . . , XN) ist eine Sammlung möglicher Daten, beispielsweise Tiefenmessungen. P(xich) ist die Wahrscheinlichkeit, dass ein Datenwert den Wert x hatich. P(xich) kann beispielsweise durch Zählen der Anzahl der Messungen innerhalb eines bestimmten interessierenden Bereichs mit dem Wert x bestimmt werdenichund Teilen dieser Zahl durch die Gesamtzahl der Messungen innerhalb des betrachteten Bereichs. In einigen Ausführungsformen kann der Prozessor die Entropie der gesammelten Daten mit der Entropie der Daten vergleichen, die einer Wand entsprechen. Beispielsweise kann die Entropie für die Wahrscheinlichkeitsdichtefunktion (PDF) der Daten berechnet werden, um vorherzusagen, ob im interessierenden Bereich eine Öffnung in der Wand vorhanden ist. Im Falle einer Wand zeigt das PDF möglicherweise die Lokalisierung der Messwerte um Wandkoordinaten herum an, wodurch die Sicherheit erhöht und die Entropie verringert wird.

In einigen Ausführungsformen kann der Prozessor eine probabilistische Methode anwenden, indem er einen Klassifikator vorab trainiert, um eine A-priori-Vorhersage bereitzustellen. In einigen Ausführungsformen kann der Prozessor einen überwachten maschinellen Lernalgorithmus verwenden, um Merkmale von Öffnungen und Wänden zu identifizieren. Ein Trainingssatz von beispielsweise Tiefendaten kann vom Prozessor verwendet werden, um dem Klassifikator gemeinsame Merkmale oder Muster in den Daten beizubringen, die Öffnungen und Wänden entsprechen, sodass der Prozessor Wände und Öffnungen in Wänden mit einer gewissen Wahrscheinlichkeitsverteilung identifizieren kann. Auf diese Weise kann eine A-priori-Vorhersage eines Klassifikators in Kombination mit einer Echtzeit-Datenmessung zusammen verwendet werden, um eine genauere Vorhersage einer Wand oder Öffnung in der Wand zu ermöglichen. In einigen Ausführungsformen kann der Prozessor das Bayes-Theorem verwenden, um die Wahrscheinlichkeit einer Öffnung in der Wand anzugeben, vorausgesetzt, dass sich der Roboter in der Nähe einer Öffnung in der Wand befindet

P ( B ) = P ( B | A ) P ( A ) P ( B ) .
P(A|B) ist die Wahrscheinlichkeit einer Öffnung in der Wand, vorausgesetzt, der Roboter befindet sich in der Nähe einer Öffnung in der Wand, P(A) ist die Wahrscheinlichkeit einer Öffnung in der Wand, P(B) ist die Wahrscheinlichkeit dass sich der Roboter in der Nähe einer Öffnung in der Wand befindet, und P(B|A) ist die Wahrscheinlichkeit, dass sich der Roboter in der Nähe einer Öffnung in der Wand befindet, vorausgesetzt, dass eine Öffnung in der Wand erkannt wird.

Die oben beschriebenen verschiedenen Methoden zur Erkennung einer Öffnung in der Wand können in einigen Ausführungsformen kombiniert und in anderen unabhängig voneinander verwendet werden. Beispiele für Verfahren zur Erkennung einer Türöffnung sind beispielsweise in der US-Patentanmeldung Seriennr. Nr. 15/615.284 und 16/163.541, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In einigen Ausführungsformen kann der Prozessor die Position von Türen auf einer Karte der Umgebung markieren. In einigen Ausführungsformen kann der Roboter so konfiguriert sein, dass er das Überqueren einer identifizierten Türöffnung für eine vorbestimmte Zeitspanne oder bis der Roboter eine vorbestimmte Anzahl von Malen auf die Türöffnung gestoßen ist, vermeidet. In einigen Ausführungsformen kann der Roboter so konfiguriert sein, dass er zur Reinigung durch die identifizierte Türöffnung in einen zweiten Unterbereich fährt, bevor er in die entgegengesetzte Richtung durch die Türöffnung zurückfährt. In einigen Ausführungsformen kann der Roboter die Reinigung im aktuellen Bereich abschließen, bevor er durch die Tür geht und den angrenzenden Bereich reinigt. In einigen Ausführungsformen kann der Roboter so konfiguriert sein, dass er bei der Identifizierung eines Türdurchgangs eine beliebige Anzahl von Aktionen ausführt, und es können unterschiedliche Aktionen für unterschiedliche Türdurchgänge ausgeführt werden. In einigen Ausführungsformen kann der Prozessor Türen verwenden, um die Umgebung in Unterbereiche zu segmentieren. Beispielsweise kann der Roboter einen Wall-Folge-Abdeckungsalgorithmus in einem ersten Teilbereich und einen Rechteckspiral-Abdeckungsalgorithmus in einem zweiten Teilbereich ausführen oder nur den ersten Teilbereich reinigen, oder er kann den ersten Teilbereich und den zweiten Teilbereich an bestimmten Tagen und zu bestimmten Zeiten reinigen . In einigen Ausführungsformen können jedem Teilbereich eindeutige Tags, beispielsweise eine Nummer oder eine beliebige Bezeichnung, zugewiesen werden. In einigen Ausführungsformen kann der Benutzer jedem Unterbereich eindeutige Tags zuweisen, und Ausführungsformen können diese Eingabe empfangen und das eindeutige Tag (z. B. einen für Menschen lesbaren Namen eines Raums, z. B. „Küche“) mit dem Bereich im Speicher verknüpfen. Einige Ausführungsformen können durch diese eindeutigen Tags Anweisungen erhalten, die Aufgaben Bereichen zuordnen, z. B. kann ein Benutzer eine Anweisung in Form von „Vakuumküche“ in den Roboter eingeben und der Roboter kann darauf reagieren, indem er auf die entsprechende zugeordnete Karte im Speicher zugreift mit dieser Bezeichnung, um den Befehl auszuführen. In einigen Ausführungsformen kann der Roboter jedem Teilbereich eindeutige Tags zuweisen. Die eindeutigen Tags können verwendet werden, um den Betrieb und die Ausführung von Aufgaben innerhalb jedes Teilbereichs festzulegen und zu steuern und um die Reihenfolge der Abdeckung jedes Teilbereichs festzulegen. Beispielsweise kann der Roboter zuerst einen bestimmten Teilbereich und zuletzt einen anderen bestimmten Teilbereich abdecken. In einigen Ausführungsformen ist die Reihenfolge der Abdeckung der Teilbereiche so, dass eine wiederholte Abdeckung innerhalb des Gesamtbereichs minimiert wird. In einer anderen Ausführungsform ist die Reihenfolge der Abdeckung der Teilbereiche so, dass die Abdeckungszeit des Gesamtbereichs minimiert wird. Die Reihenfolge der Teilbereiche kann je nach Aufgabenstellung oder gewünschtem Ergebnis geändert werden. Das bereitgestellte Beispiel veranschaulicht der Einfachheit halber nur zwei Unterbereiche, kann jedoch erweitert werden, um mehrere Unterbereiche, Räume oder Umgebungen usw. einzuschließen. In einigen Ausführungsformen kann der Prozessor Unterbereiche mithilfe einer Stapelstruktur darstellen, beispielsweise für Backtracking-Zwecke, wobei der Pfad der Die Rückkehr des Roboters in seine Ausgangsposition kann mithilfe der Stapelstruktur gefunden werden.

In einigen Ausführungsformen kann eine Karte aus Daten generiert werden, die von Sensoren erfasst werden, die mit einem tragbaren Gegenstand gekoppelt sind. Beispielsweise können Sensoren, die an Brillen oder Linsen eines Benutzers gekoppelt sind, der sich in einem Raum bewegt, beispielsweise ein Video aufzeichnen, Bilder aufnehmen und den Raum kartieren. Beispielsweise können die Sensoren verwendet werden, um Messungen (z. B. Tiefenmessungen) der Wände des Raums in zwei oder drei Dimensionen zu erfassen, und die Messungen können an überlappenden Punkten kombiniert werden, um mithilfe von SLAM-Techniken eine Karte zu erstellen. In einem solchen Fall kann ein Schrittzähler anstelle eines Kilometerzählers (wie er beispielsweise beim Roboter während der Kartierung verwendet wird) verwendet werden, um die Bewegung des Benutzers zu messen. In einigen Ausführungsformen kann die Karte in Echtzeit generiert werden. In einigen Ausführungsformen kann der Benutzer mithilfe der Brille oder Linsen einen Raum visualisieren und virtuelle Objekte innerhalb des visualisierten Raums zeichnen. In einigen Ausführungsformen kann der Prozessor des Roboters mit dem Prozessor der Brille oder Linsen verbunden sein. In einigen Ausführungsformen wird die Karte mit dem Prozessor des Roboters geteilt. In einem Beispiel kann der Benutzer eine virtuelle Begrenzungslinie für den Roboter in die Karte zeichnen. Der Prozessor der Brille kann diese Informationen an den Prozessor des Roboters übermitteln. Oder in einem anderen Fall kann der Benutzer einen Bewegungspfad des Roboters zeichnen oder Bereiche auswählen, in denen der Roboter arbeiten soll.

In einigen Ausführungsformen kann der Prozessor eine Zeitspanne zum Erstellen der Karte bestimmen. In einigen Ausführungsformen kann ein Internet der Dinge (IoT)-Subsystem eine binäre Karte erstellen und/oder an die Cloud und eine Anwendung eines Kommunikationsgeräts senden. In einigen Ausführungsformen kann das IoT-Subsystem unbekannte Punkte innerhalb der Karte speichern. In einigen Ausführungsformen können die Binärkarten ein Objekt mit Methoden und Eigenschaften wie Kapazität, Rohgröße usw. sein, das Datentypen wie ein Byte aufweist. In einigen Ausführungsformen kann eine binäre Karte die Anzahl der Hindernisse enthalten. In einigen Ausführungsformen kann die Karte analysiert werden, um Türen im Raum zu finden. In einigen Ausführungsformen kann der Zeitpunkt der Analyse bestimmt werden. In einigen Ausführungsformen kann die globale Karte im ASCII-Format bereitgestellt werden. In einigen Ausführungsformen kann ein Wi-Fi-Befehlshandler die Karte nach der Komprimierung in die Cloud übertragen. In einigen Ausführungsformen können Informationen in Paketformate unterteilt werden. In einigen Ausführungsformen können Komprimierungen wie zlib verwendet werden. In einigen Ausführungsformen kann jedes Paket im ASCII-Format vorliegen und mit einem Algorithmus wie zlib komprimiert werden. In einigen Ausführungsformen kann jedes Paket einen Zeitstempel und eine Prüfsumme haben. In einigen Ausführungsformen kann ein Handler, beispielsweise ein Wi-Fi-Befehlshandler, die Karte schrittweise in Intervallen und Schritten in die Cloud verschieben. In einigen Ausführungsformen kann die Karte nach Abschluss der Abdeckung in die Cloud übertragen werden, wobei der Roboter jeden Bereich innerhalb der Karte untersucht hat, indem er jeden Bereich besucht und alle erforderlichen Korrekturen an der Karte vorgenommen hat. In einigen Ausführungsformen kann die Karte nach einigen Durchläufen bereitgestellt werden, um eine genaue Darstellung der Umgebung bereitzustellen. In einigen Ausführungsformen kann eine gewisse grafische Verarbeitung in der Cloud oder auf dem Kommunikationsgerät erfolgen, das die Karte präsentiert. In einigen Ausführungsformen kann die Karte einem Benutzer nach einer ersten Trainingsrunde präsentiert werden. In einigen Ausführungsformen kann ein Kartenhandle eine ASCII-Karte rendern. Die Renderzeit kann von der Auflösung und den Abmessungen abhängen. In einigen Ausführungsformen kann die Karte einen Neigungswert in Grad haben.

In einigen Ausführungsformen können Bilder oder andere Sensormesswerte an beiden Enden zusammengefügt und verknüpft werden, sodass die zusammengefügten Bilder kein Ende haben, wie zFEIGE.61, wobei Daten A1zu einem5werden zusammengefügt, ebenso wie Daten A1und Daten A5. Beispielsweise kann ein Benutzer mit einem Finger nach links über den Bildschirm eines Mobiltelefons streichen, auf dem ein Panoramabild angezeigt wird, um die rechte Seite des Panoramabilds anzuzeigen, daran vorbeizugehen und dann die gegenüberliegende Seite des Panoramabilds anzuzeigen , kontinuierlich. In einigen Ausführungsformen können die Bilder oder andere Sensormesswerte zweidimensional oder dreidimensional sein. Beispielsweise können dreidimensionale Lesungen Tiefe und damit räumliche Realität vermitteln.

Der Roboter kann beispielsweise die Karte verwenden, um während des Betriebs autonom durch die Umgebung zu navigieren, z. B. indem er auf die Karte zugreift, um festzustellen, dass eine mögliche Route durch ein in der Karte gekennzeichnetes Hindernis blockiert ist, um mit einem Pfadplanungsalgorithmus einen Pfad aus einem auszuwählen aktuellen Punkt zu einem Zielpunkt oder dergleichen. Es sollte jedoch betont werden, dass Ausführungsformen nicht auf Techniken beschränkt sind, die Karten auf die hier beschriebene Weise erstellen, da die vorliegenden Techniken auch für die Flugzeugsuche in der erweiterten Realität, die Barrierenerkennung in Virtual-Reality-Anwendungen und die Außenkartierung mit autonomen Drohnen verwendet werden können und andere ähnliche Anwendungen, was nicht bedeuten soll, dass eine andere Beschreibung einschränkend ist. Weitere Einzelheiten zu Kartierungsmethoden, die verwendet werden können, sind in der US-Patentanmeldung Ser. Nr. 16/048.179, 16/048.185, 16/163.541, 16/163.562, 16/163.508 und 16/185.000, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird.

In einigen Ausführungsformen lokalisiert der Prozessor den Roboter während der Kartierung oder während des Betriebs. In einigen Ausführungsformen sind Lokalisierungsmethoden von Natur aus unabhängig von der Kartierung und Pfadplanung, können jedoch zusammen mit jeder Kartierungs- oder Pfadplanungsmethode verwendet werden oder können unabhängig voneinander verwendet werden, um den Roboter unabhängig vom Pfad oder der Karte der Umgebung zu lokalisieren. In einigen Ausführungsformen verwendet der Prozessor Quanten-SLAM.

In einigen Ausführungsformen kann der Prozessor den Roboter innerhalb der Umgebung lokalisieren, die durch einen Phasenraum oder Hilbert-Raum dargestellt wird. In einigen Ausführungsformen kann der Raum alle möglichen Zustände des Roboters innerhalb des Raums umfassen. In einigen Ausführungsformen kann der Prozessor des Roboters eine Wahrscheinlichkeitsverteilung verwenden, um die Wahrscheinlichkeit zu schätzen, dass sich der Zustand des Roboters in einem bestimmten Bereich des Raums befindet. In einigen Ausführungsformen kann der Prozessor des Roboters eine Phasenraum-Wahrscheinlichkeitsverteilung über alle möglichen Zustände des Roboters innerhalb des Phasenraums bestimmen, indem er ein statistisches Ensemble verwendet, das eine große Sammlung virtueller, unabhängiger Kopien des Roboters in verschiedenen Zuständen des Phasenraums enthält . In einigen Ausführungsformen kann der Phasenraum aus allen möglichen Werten von Positions- und Impulsvariablen bestehen. In einigen Ausführungsformen kann der Prozessor das statistische Ensemble durch eine Phasenraum-Wahrscheinlichkeitsdichtefunktion ρ(p, q, t) darstellen, wobei q und p Positions- und Geschwindigkeitsvektoren bezeichnen. In einigen Ausführungsformen kann der Prozessor die Phasenraum-Wahrscheinlichkeitsdichtefunktion ρ(p,q,t) verwenden, um die Wahrscheinlichkeit ρ(p,q,t)dqdp zu bestimmen, dass der Roboter zum Zeitpunkt t im infinitesimalen Phasenraumvolumen gefunden wird dqdp. In einigen Ausführungsformen kann die Phasenraum-Wahrscheinlichkeitsdichtefunktion ρ(p,q,t) die Eigenschaften ρ(p,q,t)≥0 und ∫ρ(ρ,q,t)d(p,q)=1 haben , ∀t≥0, und die Wahrscheinlichkeit, dass die Position q innerhalb eines Positionsintervalls a,b liegt, ist P[a≤q≤b]=∫AB∫ρ(p,q,t)dpdq. Ebenso ist die Wahrscheinlichkeit, dass die Geschwindigkeit p innerhalb eines Geschwindigkeitsintervalls c,d liegt, P[c≤q≤d]=∫CD∫ρ(p,q,t)dqdp. In einigen Ausführungsformen kann der Prozessor Werte durch Integration über den Phasenraum bestimmen. Beispielsweise kann der Prozessor den Erwartungswert der Position q durch q=∫qρ(p,q,t)d(p,q) bestimmen.

In einigen Ausführungsformen kann der Prozessor jeden Zustand innerhalb des Ensembles über die Zeit t gemäß einer Bewegungsgleichung weiterentwickeln. In einigen Ausführungsformen kann der Prozessor die Bewegung des Roboters unter Verwendung eines Hamiltonschen dynamischen Systems mit verallgemeinerten Koordinaten q, p modellieren, wobei dynamische Eigenschaften durch eine Hamiltonsche Funktion H modelliert werden können. In einigen Ausführungsformen kann die Funktion die Gesamtenergie des Systems darstellen . In einigen Ausführungsformen kann der Prozessor die zeitliche Entwicklung eines einzelnen Punktes im Phasenraum mithilfe von Hamilton-Gleichungen darstellen

dp dt = - H Q , dq dt = H P .
In einigen Ausführungsformen kann der Prozessor das gesamte statistische Ensemble der Phasenraumdichtefunktion ρ(p,q,t) unter einem Hamilton-Operator H unter Verwendung der Liouville-Gleichung entwickeln

R T = - { R , H } ,
wobei {⋅,⋅} die Poisson-Klammer bezeichnet und H der Hamilton-Operator des Systems ist. Für zwei Funktionen ƒ, g im Phasenraum kann die Poisson-Klammer gegeben sein durch

{ F , G } = ich = 1 N ( F Q ich G P ich - F P ich G Q ich ) .
Bei diesem Ansatz kann der Prozessor jeden möglichen Zustand im Phasenraum über die Zeit entwickeln, anstatt die Phasenraumdichte über die Zeit konstant zu halten, was besonders vorteilhaft ist, wenn die Sensormesswerte zeitlich spärlich sind.

In einigen Ausführungsformen kann der Prozessor die Phasenraum-Wahrscheinlichkeitsdichtefunktion ρ(p,q,t) über die Zeit unter Verwendung der Fokker-Plank-Gleichung entwickeln, die die zeitliche Entwicklung einer Wahrscheinlichkeitsdichtefunktion eines Partikels unter Widerstand und zufälligen Kräften beschreibt. Im Vergleich zum Verhalten des Roboters, das sowohl durch die Hamilton- als auch die Liouville-Gleichung modelliert wird, die rein deterministisch sind, beinhaltet die Fokker-Planck-Gleichung stochastisches Verhalten. Gegeben sei ein stochastischer Prozess mit dXT=μ(XT,t)dt+σ(XT,t)dWT, wobei XTund μ(XT,t) sind M-dimensionale Vektoren, σ(XT,t) ist eine M×P-Matrix und WTist ein P-dimensionaler Standard-Wiener-Prozess, die Wahrscheinlichkeitsdichte ρ(x,t) für XTerfüllt die Fokker-Planck-Gleichung

R ( X , T ) T = - ich = 1 M X T ˙ [ M ich ( X , T ) R ( X , T ) ] + ich = 1 M J = 1 M 2 X ich X J [ D ich J ( X , T ) R ( X , T ) ]
mit Driftvektor μ=(μ1, . . . , MM) und Diffusionstensor

D = 1 2 P P T .
In einigen Ausführungsformen kann der Prozessor stochastische Kräfte zur Bewegung des Roboters hinzufügen, die durch den Hamilton-Operator H gesteuert wird, und die Bewegung des Roboters kann dann durch die stochastische Differentialgleichung gegeben sein

D X T = ( dq dp ) = ( + H P - H Q ) dt = ( 0 N P N ( P , Q , T ) ) D W T ,
wobei αNist eine N×N-Matrix und dWTist ein N-dimensionaler Wiener-Prozess. Dies führt zur Fokker-Plank-Gleichung

R T = - { R , H } + P · ( D P R ) ,
wobei ∇p den Gradienten bezüglich der Position p bezeichnet, ∇ die Divergenz bezeichnet und

D = 1 2 P N P N T Ist
der Diffusionstensor.

In anderen Ausführungsformen kann der Prozessor stochastisches Verhalten integrieren, indem er die Dynamik des Roboters mithilfe der Langevin-Dynamik modelliert, die Reibungskräfte und Störungen des Systems modelliert, anstelle der Hamilton-Dynamik. Die Langevin-Gleichungen können durch M{umlaut über (q)}=−∇ angegeben werdenQU(q)−γp+√{Quadratwurzel über (2γkBTM)}R(t), wobei (−γp) Reibungskräfte sind, R(t) Zufallskräfte mit Nullmittelwert und Delta-korreliertem stationärem Gauß-Prozess sind, T die Temperatur ist, kBist die Boltzmann-Konstante, γ ist eine Dämpfungskonstante und M ist eine diagonale Massenmatrix. In einigen Ausführungsformen kann die Langevin-Gleichung in eine Fokker-Planck-Gleichung umformuliert werden

R T = - { R , H } + P · ( C P R ) + k B T P · ( C M P R )
die der Prozessor verwenden kann, um die Phasenraum-Wahrscheinlichkeitsdichtefunktion im Laufe der Zeit zu entwickeln. In einigen Ausführungsformen ist der Term zweiter Ordnung ∇P·(γM∇Pρ) ist ein Modell der klassischen Brownschen Bewegung, das einen Diffusionsprozess modelliert. In einigen Ausführungsformen können partielle Differentialgleichungen zur zeitlichen Entwicklung der Wahrscheinlichkeitsdichtefunktion vom Prozessor des Roboters beispielsweise mithilfe von Finite-Differenzen- und/oder Finite-Elemente-Methoden gelöst werden.

FEIGE.62Averanschaulicht ein Beispiel einer Anfangsphasenraum-Wahrscheinlichkeitsdichte eines Roboters, eines Gaußschen im (q,p)-Raum.FEIGE.62Bveranschaulicht ein Beispiel für die zeitliche Entwicklung der Phasenraum-Wahrscheinlichkeitsdichte nach vier Zeiteinheiten, wenn sie unter Verwendung der Liouville-Gleichung unter Einbeziehung der Hamilton-Dynamik entwickelt wird.

R T = - { R , H }
mit Hamiltonian

H = 1 2 P 2 .
FEIGE.62Cveranschaulicht ein Beispiel für die zeitliche Entwicklung der Phasenraum-Wahrscheinlichkeitsdichte nach vier Zeiteinheiten, wenn sie unter Verwendung der Fokker-Planck-Gleichung unter Einbeziehung der Hamilton-Dynamik entwickelt wird.

R T = - { R , H } + P · ( D P R )
mit D=0,1.FEIGE.62Dveranschaulicht ein Beispiel für die zeitliche Entwicklung der Phasenraum-Wahrscheinlichkeitsdichte nach vier Zeiteinheiten, wenn sie unter Verwendung der Fokker-Planck-Gleichung unter Einbeziehung der Langevin-Dynamik entwickelt wird.

R T = - { R , H } + P · ( C P R ) + k B T P · ( C M P R )
mit γ=0,5, T=0,2 und kB=1.FEIGE.62Bveranschaulicht, dass die Liouville-Gleichung, die die Hamilton-Dynamik berücksichtigt, den Impuls über die Zeit hinweg erhält, da die anfängliche Dichte inFEIGE.62Aist nur in der q-Achse (Position) verzerrt. Im Vergleich,FIG.62C und62Dveranschaulichen auch die Diffusion entlang der p-Achse (Geschwindigkeit), da beide Evolutionsgleichungen stochastische Kräfte berücksichtigen. Mit der Fokker-Planck-Gleichung, die die Hamilton-Dynamik berücksichtigt, verteilt sich die Dichte gleichmäßiger (FEIGE.62C) im Vergleich zur Fokker-Planck-Gleichung unter Einbeziehung der Langevin-Dynamik, bei der die Dichte begrenzter bleibt (FEIGE.62D) aufgrund der zusätzlichen Reibungskräfte.

In einigen Ausführungsformen kann der Prozessor des Roboters die Phasenraum-Wahrscheinlichkeitsverteilung aktualisieren, wenn der Prozessor Messwerte (oder Messungen oder Beobachtungen) empfängt. Es kann jede Art von Messwert verwendet werden, der als Wahrscheinlichkeitsverteilung dargestellt werden kann, die die Wahrscheinlichkeit beschreibt, dass sich der Zustand des Roboters in einem bestimmten Bereich des Phasenraums befindet. Zu den Messwerten können Messungen oder Beobachtungen gehören, die von Sensoren des Roboters oder externen Geräten wie einer Wi-Fi™-Kamera erfasst wurden. Jeder Messwert kann Teilinformationen über den wahrscheinlichen Zustandsbereich des Roboters innerhalb des Phasenraums liefern und/oder ausschließen, dass der Zustand des Roboters in einem bestimmten Bereich des Phasenraums liegt. Beispielsweise kann ein Tiefensensor des Roboters ein Hindernis in unmittelbarer Nähe des Roboters erkennen. Basierend auf dieser Messung und unter Verwendung einer Karte des Phasenraums kann der Prozessor des Roboters die Wahrscheinlichkeit verringern, dass der Zustand des Roboters ein beliebiger Zustand des Phasenraums in großer Entfernung von einem Hindernis ist. In einem anderen Beispiel kann der Prozessor des Roboters einen Messwert eines Bodensensors des Roboters und eine Bodenkarte verwenden, um die Wahrscheinlichkeit anzupassen, dass sich der Zustand des Roboters innerhalb des bestimmten Bereichs des Phasenraums befindet, der mit dem Typ übereinstimmt Boden gespürt. In einem weiteren Beispiel kann der Prozessor des Roboters eine gemessene Wi-Fi™-Signalstärke und eine Karte der erwarteten Wi-Fi™-Signalstärke innerhalb des Phasenraums verwenden, um die Phasenraum-Wahrscheinlichkeitsverteilung anzupassen. Als weiteres Beispiel kann eine Wi-Fi™-Kamera die Abwesenheit des Roboters in einem bestimmten Raum beobachten. Basierend auf dieser Beobachtung kann der Prozessor des Roboters die Wahrscheinlichkeit verringern, dass der Zustand des Roboters ein beliebiger Zustand des Phasenraums ist, der den Roboter in dem bestimmten Raum platziert. In einigen Ausführungsformen generiert der Prozessor eine simulierte Darstellung der Umgebung für jeden hypothetischen Zustand des Roboters. In einigen Ausführungsformen vergleicht der Prozessor die Messung mit jeder simulierten Darstellung der Umgebung (z. B. einer Grundrisskarte, einer räumlichen Karte, einer WLAN-Karte usw.), die einer Perspektive jedes der hypothetischen Zustände des Roboters entspricht. In einigen Ausführungsformen wählt der Prozessor den Zustand des Roboters, der am sinnvollsten ist, als den realisierbarsten Zustand des Roboters. In einigen Ausführungsformen wählt der Prozessor zusätzliche hypothetische Zustände des Roboters als Backup für den am besten realisierbaren Zustand des Roboters aus.

In einigen Ausführungsformen kann der Prozessor des Roboters die aktuelle Phasenraum-Wahrscheinlichkeitsverteilung ρ(p, q, t) aktualisierenich) durch Neugewichtung der Phasenraum-Wahrscheinlichkeitsverteilung mit einer Beobachtungswahrscheinlichkeitsverteilung m(p,q, tich) entsprechend

R ¯ ( P , Q , T ich ) = R ( P , Q , T ich ) · M ( P , Q , T ich ) R ( P , Q , T ich ) M ( P , Q , T ich ) D ( P , Q ) .
In einigen Ausführungsformen kann die Beobachtungswahrscheinlichkeitsverteilung vom Prozessor des Roboters für einen Messwert zum Zeitpunkt t bestimmt werdenichunter Verwendung eines inversen Sensormodells. In einigen Ausführungsformen, in denen die Beobachtungswahrscheinlichkeitsverteilung die Konfidenz oder Unsicherheit des erfassten Messwerts nicht berücksichtigt, kann der Prozessor des Roboters die Unsicherheit in die Beobachtungswahrscheinlichkeitsverteilung integrieren, indem er eine aktualisierte Beobachtungswahrscheinlichkeitsverteilung ermittelt

M ˆ = 1 - A C + A M
Dies kann zur Neugewichtung der aktuellen Phasenraum-Wahrscheinlichkeitsverteilung verwendet werden, wobei α die Konfidenz des Messwerts mit einem Wert von 0 ≤ α ≤ 1 und c = ∫∫dpdq ist. Zu jedem gegebenen Zeitpunkt kann der Prozessor des Roboters einen Bereich des Phasenraums schätzen, innerhalb dessen der Zustand des Roboters wahrscheinlich anhand der Phasenraum-Wahrscheinlichkeitsverteilung zu dem jeweiligen Zeitpunkt liegen wird.

Zur weiteren Erläuterung der beschriebenen Lokalisierungsmethoden werden Beispiele bereitgestellt. In einem ersten Beispiel nutzt der Prozessor einen zweidimensionalen Phasenraum des Roboters, einschließlich Position q und Geschwindigkeit p. Der Prozessor begrenzt die Position des Roboters q auf ein Intervall [0, 10] und die Geschwindigkeit p auf ein Intervall [−5, +5], begrenzt durch die Höchstgeschwindigkeit des Roboters, daher den Phasenraum (p,q) ist das Rechteck D=[−5,5]×[0,10]. Der Prozessor verwendet eine Hamilton-Funktion

H = P 2 2 M ,
mit der Masse m und den resultierenden Bewegungsgleichungen p = 0 und

Q ˙ = P M
um die Bewegung des Roboters zu beschreiben. Der Prozessor fügt stochastische Kräfte im Langevin-Stil hinzu, um Bewegungsgleichungen zu erhalten

P . = - C P + 2 C M k B T R ( T ) Und Q . = P M ,
wobei R(t) Zufallskräfte bezeichnet und m=1. Der Prozessor des Roboters generiert zunächst eine gleichmäßige Phasenraum-Wahrscheinlichkeitsverteilung über den Phasenraum D.FIG.63A-63Dveranschaulichen Beispiele für Anfangsphasenraum-Wahrscheinlichkeitsverteilungen, die der Prozessor verwenden kann.FEIGE.63Averanschaulicht eine Gaußsche Verteilung über den Phasenraum, zentriert bei q=5, p=0. Es wird geschätzt, dass sich der Roboter mit hoher Wahrscheinlichkeit in unmittelbarer Nähe des Mittelpunkts befindet, wobei die Wahrscheinlichkeit exponentiell abnimmt, wenn der Abstand des Punkts vom Mittelpunkt zunimmt.FEIGE.63Bveranschaulicht die gleichmäßige Verteilung für q∈[4.75, 5.25], p∈[−5, 5] über den Phasenraum, wobei es keine Annahme für p gibt und q mit gleicher Wahrscheinlichkeit in [4.75, 5.25] liegt.FEIGE.63Cveranschaulicht mehrere Gaußsche Verteilungen undFEIGE.63Dzeigt eine begrenzte Spitze bei q=5, p=0, was anzeigt, dass der Prozessor sich über den Zustand des Roboters sicher ist.

In diesem Beispiel entwickelt der Prozessor des Roboters die Phasenraum-Wahrscheinlichkeitsverteilung über die Zeit gemäß der Langevin-Gleichung

R T = - { R , H } + ( C P ) · ( P R ) + C k B T 2 R P 2 ,
worin

{ R , H } = P R Q
und m=1. Somit löst der Prozessor

R T = - P R Q + C ( R + P R P ) + C k B T 2 R P 2 für T > 0
mit Anfangsbedingung ρ(p,q,0)=ρ0und homogene Neumann-Perimeter-Bedingungen. Die Perimeterbedingungen bestimmen, was passiert, wenn der Roboter einen Extremzustand erreicht. Im Positionszustand kann dies dem Erreichen einer Wand durch den Roboter entsprechen, im Geschwindigkeitszustand kann es der Motorgrenze entsprechen. Der Prozessor des Roboters kann die Phasenraum-Wahrscheinlichkeitsverteilung jedes Mal aktualisieren, wenn ein neuer Messwert vom Prozessor empfangen wird.FIG.64A und64Bveranschaulichen Beispiele für Beobachtungswahrscheinlichkeitsverteilungen für Odometriemessungen bzw. Entfernungsmessungen.FEIGE.64Averanschaulicht eine enge Gaußsche Beobachtungswahrscheinlichkeitsverteilung für die Geschwindigkeit p, die einen genauen Odometriesensor widerspiegelt. Die Position q ist einheitlich, da Odometriedaten keine Positionsangaben machen.FEIGE.64Bveranschaulicht eine bimodale Beobachtungswahrscheinlichkeitsverteilung für Position q einschließlich der Unsicherheit für eine Umgebung mit einer Wand bei q=0 und q=10. Daher befindet sich der Roboter bei einer Distanzmessung von vier entweder bei q=4 oder q=6, was zu einer bimodalen Verteilung führt. Die Geschwindigkeit p ist einheitlich, da Distanzdaten keine Geschwindigkeit anzeigen. In einigen Ausführungsformen kann der Prozessor den Phasenraum in periodischen Intervallen oder zu vorgegebenen Intervallen oder Zeitpunkten aktualisieren. In einigen Ausführungsformen kann der Prozessor des Roboters eine Beobachtungswahrscheinlichkeitsverteilung eines Messwerts mithilfe eines inversen Sensormodells bestimmen und die Phasenraumwahrscheinlichkeitsverteilung kann vom Prozessor aktualisiert werden, indem er sie mit der Beobachtungswahrscheinlichkeitsverteilung des Messwerts neu gewichtet.

Das beschriebene Beispiel kann auf einen vierdimensionalen Phasenraum mit Position q=(x,y) und Geschwindigkeit p=(p) erweitert werdenX,Pj). Der Prozessor löst dieses vierdimensionale Beispiel mithilfe der Fokker-Planck-Gleichung

R T = - { R , H } + P · ( C P R ) + k B T P · ( γM P R )
mit M=I2(2D-Identitätsmatrix), T=0,1, γ=0,1 und kB=1. In alternativen Ausführungsformen verwendet der Prozessor die Fokker-Planck-Gleichung ohne Hamiltonoperator und Geschwindigkeit und wendet das Geschwindigkeitsdriftfeld direkt über die Odometrie an, wodurch die Dimension um den Faktor zwei reduziert wird. Die Karte der Umgebung für dieses Beispiel ist in angegebenFEIGE.65, wobei der Leerraum der für den Roboter zugängliche Bereich ist. Die Karte beschreibt den Bereich für q1,Q2∈D. In diesem Beispiel ist die Geschwindigkeit auf p begrenzt1,P2∈[−1,1]. Der Prozessor modelliert die anfängliche Wahrscheinlichkeitsdichte ρ(p,q,0) als Gaußsche Funktion, wobei p eine vierdimensionale Funktion ist.FIG.66A-66Cveranschaulichen die Entwicklung von ρ reduziert auf q1,Q2Raum zu drei verschiedenen Zeitpunkten (d. h. die über p integrierte Dichte).1,P2, RRot=∫∫ρ(S1,P2,Q1,Q2)dp1dp2). Mit zunehmender Zeit beginnt die ursprünglich in der Mitte der Karte konzentrierte Dichte in andere Räume zu fließen.FIG.67A-67Cveranschaulichen die Entwicklung von ρ reduziert auf p1,Q1Raum und68A-68C veranschaulichen die Entwicklung von ρ reduziert auf p2,Q2Raum zu den gleichen drei verschiedenen Zeitpunkten, um zu zeigen, wie sich die Geschwindigkeit im Laufe der Zeit mit der Position entwickelt. Das vierdimensionale Beispiel wird wiederholt, jedoch mit der Hinzufügung von Bodensensordatenbeobachtungen.FEIGE.69veranschaulicht eine Karte der Umgebung, auf der verschiedene Bodentypen angegeben sind6900,6901,6902, Und6903bezüglich q1,Q2. Vorausgesetzt, dass der Sensor keinen Fehler aufweist, kann der Prozessor anhand des gemessenen Bodentyps den Bereich, in dem sich der Roboter befindet, genau vorhersagen, woraufhin alle anderen angenommenen Standorte des Roboters ungültig werden. Beispielsweise kann der Prozessor die Verteilung m(p) verwenden1,P2,Q1,Q2)={const>0,q1,Q2mit dem beobachteten Bodentyp 0, sonst. Wenn der Sensor eine durchschnittliche Fehlerrate ϵ hat, kann der Prozessor die Verteilung m(p) verwenden1,P2,Q1,Q2)={c1>0, q1,Q2mit dem beobachteten Bodentyp c2>0, sonst mit c1,C2so gewählt, dass ∫PDobsmd(q1,Q2)d(S1,P2)=1−ϵ und ∫PDobsCmd(q1,Q2)d(S1,P2)=ϵ. Dobsist das q1,Q2mit dem beobachteten Bodentyp und DobsCist seine Ergänzung. Konstruktionsbedingt hat die Verteilung m eine Wahrscheinlichkeit 1 − ϵ für q1,Q2∈Dobsund Wahrscheinlichkeit ϵ für q1,Q2∈DobsC. Vorausgesetzt, der Bodensensor misst den Bodentyp5302, aktualisiert der Prozessor die Wahrscheinlichkeitsverteilung für die Position wie in gezeigtFEIGE.70. Beachten Sie, dass die Ecken der Verteilung vom Prozessor mithilfe eines Gaußschen Kernels geglättet wurden, was einer erhöhten Fehlerrate in der Nähe der Grenzen eines Bereichs entspricht. Als nächstes werden Beobachtungen der WLAN-Signalstärke betrachtet. Angesichts einer Karte der erwarteten Signalstärke, wie z. B. inFEIGE.71, kann der Prozessor basierend auf einer gemessenen WLAN-Signalstärke eine Dichte generieren, die den möglichen Standort des Roboters beschreibt. Die dunkleren Bereiche inFEIGE.71stellen eine stärkere WLAN-Signalstärke dar und die Signalquelle ist bei q1,Q2=4,0, 2,0. Vorausgesetzt, dass der Roboter eine WLAN-Signalstärke von 0,4 misst, generiert der Prozessor die Wahrscheinlichkeitsverteilung für die in gezeigte PositionFEIGE.72. Der wahrscheinliche Bereich des Roboters ist größer, da das Wi-Fi-Signal nicht stark schwankt. Eine Wandentfernungskarte, wie in gezeigtFEIGE.73kann vom Prozessor verwendet werden, um anhand einer gemessenen Entfernung die Fläche des Roboters anzunähern. Vorausgesetzt, dass der Roboter eine Distanz von drei Distanzeinheiten misst, generiert der Prozessor die Wahrscheinlichkeitsverteilung für die in gezeigte PositionFEIGE.74. Beispielsweise entwickelt der Prozessor die Fokker-Planck-Gleichung im Laufe der Zeit weiter und gewichtet bei aufeinanderfolgenden Beobachtungen die Dichtefunktion bei jeder Beobachtung neu, wobei Teile, die nicht mit der Beobachtung übereinstimmen, als weniger wahrscheinlich und Teile, die sehr gut mit den Beobachtungen übereinstimmen, als weniger wahrscheinlich angesehen werden relative Erhöhung der Wahrscheinlichkeit. Ein Beispiel für Beobachtungen im Zeitverlauf könnte sein: t=1: beobachte p2=0,75; t=2: p beobachten2=0,95 und WLAN-Signalstärke 0,56; t=3: Wandabstand 9,2 beachten; t=4: Bodentyp 2 beachten; t=5: Bodentyp 2 und WLAN-Signalstärke 0,28 beachten; t=6: Wandabstand 3,5 beachten; t=7: Bodentyp 4, Wandabstand 2,5 und WLAN-Signalstärke 0,15 beachten; t=8: Bodentyp 4, Wandabstand 4 und WLAN-Signalstärke 0,19 beachten; t=8,2: Bodentyp 4, Wandabstand 4 und WLAN-Signalstärke 0,19 beachten.

In einem anderen Beispiel navigiert der Roboter entlang eines langen Bodens (z. B. x-Achse, eindimensional). Der Prozessor modelliert den Boden mithilfe des Liouville-Äquators

R T = - { R , H }
mit Hamiltonian

H = 1 2 P 2
wobei q∈[−10,10] und p∈[−5,5]. Der Boden hat drei Türen bei q0=−2,5, q1=0 und q2=5,0 und der Prozessor des Roboters ist in der Lage, anhand der beobachteten Sensordaten zu bestimmen, wann er sich an einer Tür befindet, und der Impuls des Roboters ist konstant, aber unbekannt. Der Standort des Roboters ist zunächst unbekannt, daher generiert der Prozessor eine Anfangszustandsdichte wie inFEIGE.75. Wenn der Prozessor feststellt, dass sich der Roboter vor einer Tür befindet, wird der mögliche Standort des Roboters eingegrenzt, nicht jedoch der Impuls. Daher kann der Prozessor die Wahrscheinlichkeitsdichte auf die in gezeigte aktualisierenFEIGE.76. Der Prozessor berechnet die Wahrscheinlichkeitsdichte und nach fünf Sekunden ist die Wahrscheinlichkeit wie in dargestelltFEIGE.77, wobei sich die Unsicherheit im Ortsraum aufgrund der Unbekanntheit des Impulses wieder ausgeweitet hat. Die entwickelte Wahrscheinlichkeitsdichte verfolgt jedoch die Korrelation zwischen Position und Impuls. Wenn der Prozessor erneut feststellt, dass sich der Roboter vor einer Tür befindet, wird die Wahrscheinlichkeitsdichte auf aktualisiertFEIGE.78, wobei sich die Dichte erheblich verringert hat, was auf eine Reihe von Spitzen hinweist, die mögliche Standort- und Impulskombinationen des Roboters darstellen. Für die linke Tür besteht die gleiche Wahrscheinlichkeit für p=0, p=−0,5 und p=−1,5. Diese Impulswerte entsprechen der Bewegung des Roboters von einer der drei Türen in fünf Sekunden. Dies gilt auch für die anderen beiden Türen.

In einigen Ausführungsformen kann der Prozessor die Bewegung des Roboters mithilfe der Gleichungen x = ν cos cos ω, γ = ν sin sin ω und θ = ω modellieren , wobei ν und ω Translations- bzw. Rotationsgeschwindigkeiten sind. In einigen Ausführungsformen können Translations- und Rotationsgeschwindigkeiten des Roboters unter Verwendung beobachteter Radwinkelgeschwindigkeiten ω berechnet werdenlund ωRunter Verwendung von (ω)=J(ωlOhR)=(rl/2rR/2−rl/brR/b), wobei J der Jacobi ist, rlund rRsind die linken bzw. rechten Radradien und b ist der Abstand zwischen den beiden Rädern. Unter der Annahme, dass stochastische Kräfte auf die Radgeschwindigkeiten wirken, kann der Prozessor des Roboters die Wahrscheinlichkeitsdichte ρ=(x,y,θ,ω) entwickelnl, OhR)Runter Verwendung von ∂ρ/∂t=−(ν cos θ ν cos θ ω);∇Qρ+∇P·(D∇Pρ) wobei D=½σNPNTist ein 2-mal-2-Diffusionstensor, q=(x,y,θ) und p=(ωl, OhR). In einigen Ausführungsformen kann die Domäne durch Auswahl von x, y in der Karte der Umgebung, θ∈[0,2π) und ω erhalten werdenl, OhRgemäß den Roboterspezifikationen. In einigen Ausführungsformen kann das Lösen der Gleichung eine Herausforderung sein, da sie fünfdimensional ist. In einigen Ausführungsformen kann das Modell reduziert werden, indem die Odometrie durch die Gaußsche Dichte mit Mittelwert und Varianz ersetzt wird. Dadurch wird das Modell auf eine dreidimensionale Dichte ρ=(x,y,θ) reduziert. In einigen Ausführungsformen können unabhängige Gleichungen für ω gebildet werdenl, OhRdurch Verwendung von Odometrie- und Trägheitsmesseinheitsbeobachtungen. Beispielsweise kann dieser Ansatz das System auf eine dreidimensionale partielle Differentialgleichung und zwei gewöhnliche Differentialgleichungen reduzieren. Der Prozessor kann dann die Wahrscheinlichkeitsdichte mit der Zeit weiterentwickeln

R T = - ( v ¯ cos ich v ¯ cos ich Oh ¯ ) · R + · ( D R ) , T > 0
wobei D=(dν2Telefonnummer2sin θ cos θ0dν2sin θ cos θdn2θ 0 0 0 dω2),N,Ohrepräsentieren die aktuellen mittleren Geschwindigkeiten und dν, dω die aktuelle Abweichung. In einigen Ausführungsformen kann der Prozessor bestimmenN,Ohaus Mittelwert und Abweichung der linken und rechten Radgeschwindigkeiten ωLund ωRmit (NOh)=J(ohLOhR). In einigen Ausführungsformen kann der Prozessor Neumann-Umfangsbedingungen für x, y und periodische Umfangsbedingungen für θ verwenden.

In einem Beispiel lokalisiert der Prozessor den Roboter mit der Positionskoordinate q=(x,y) und der Impulskoordinate p=(pX,Pj). Zur Vereinfachung beträgt die Masse des Roboters 1,0, die Erde wird als planar angenommen und q ist eine Position in Bezug auf einen beliebigen Punkt und eine beliebige Entfernung. Somit entwickelt der Prozessor die Wahrscheinlichkeitsdichte ρ über die Zeit entsprechend

R T = - P · Q R + P · ( D P R ) ,
wobei D wie oben definiert ist. Der Prozessor verwendet ein bewegliches Gitter, wobei der allgemeine Standort des Roboters nur bis zu einer bestimmten Genauigkeit (z. B. 100 m) bekannt ist und das Gitter nur auf den bekannten Bereich angewendet wird. Der Prozessor verschiebt das Gitter entlang der zeitlichen Entwicklung der Wahrscheinlichkeitsdichte und zentriert das Gitter alle paar Zeiteinheiten ungefähr in der Mitte im q-Raum der aktuellen Wahrscheinlichkeitsdichte. Da der Impuls über die Zeit konstant ist, verwendet der Prozessor ein Intervall [−15,15]×[−15,15], was einer maximalen Geschwindigkeit von 15 m/s in jede Raumrichtung entspricht. Der Prozessor nutzt Geschwindigkeits- und GPS-Positionsbeobachtungen, um die Genauigkeit der ungefähren Lokalisierung des Roboters zu erhöhen. Geschwindigkeitsmessungen geben keine Auskunft über die Position, geben aber Aufschluss über SX2+Sj2, die kreisförmige Wahrscheinlichkeitsverteilung im p-Raum, wie in dargestelltFEIGE.79mit |p|=10 und großer Unsicherheit. GPS-Positionsmessungen liefern keine direkten Impulsinformationen, sondern eine Positionsdichte. Darüber hinaus nutzt der Prozessor eine Karte, um unmögliche Zustände des Roboters auszuschließen. Beispielsweise ist es nicht möglich, durch Wände zu fahren, und bei hoher Geschwindigkeit besteht eine höhere Wahrscheinlichkeit, dass sich der Roboter in bestimmten Bereichen befindet.FEIGE.80veranschaulicht eine vom Prozessor in diesem Beispiel verwendete Karte mit weißen Bereichen8000weisen auf Bereiche mit geringer Hindernisdichte und Graubereiche hin8001weisen auf Bereiche mit hoher Hindernisdichte hin und die Höchstgeschwindigkeit in Bereichen mit hoher Hindernisdichte beträgt ±5 m/s. Position8002ist die aktuelle Wahrscheinlichkeitsdichte, reduziert auf q1,Q2Raum. Durch die Kombination der Karteninformationen mit den Geschwindigkeitsbeobachtungen stellt der Prozessor fest, dass es bei einer Odometriemessung von |p|=10 höchst unwahrscheinlich ist, dass sich der Roboter an einer Position mit hoher Hindernisdichte befindet. In einigen Ausführungsformen können andere Arten von Informationen verwendet werden, um die Genauigkeit der Lokalisierung zu verbessern. Zum Beispiel eine Karte zum Korrelieren von Position und Geschwindigkeit, Entfernung und Wahrscheinlichkeitsdichte anderer Roboter, die ähnliche Technologie verwenden, eine Wi-Fi-Karte zum Extrahieren der Position und Videomaterial zum Extrahieren der Position.

In einigen Ausführungsformen kann der Prozessor Finite-Differenzen-Methoden (FDM) verwenden, um partielle Differentialgleichungen der Form numerisch anzunähern

R T = - { R , H } + P · ( D P R ) .
Die numerische Näherung kann aus zwei Komponenten bestehen: der räumlichen und der zeitlichen Diskretisierung. Die Finite-Differenzen-Methode kann auf der Diskretisierung einer Funktion auf einem einheitlichen Gitter basieren. Ableitungen können dann durch Differenzengleichungen angenähert werden. Zum Beispiel eine Konvektions-Diffusionsgleichung in einer Dimension und u(x,t) mit Geschwindigkeit ν, Diffusionskoeffizient a,

u T = A 2 u X 2 - v u X
auf einem Netz x0, . . . , XJ, und mal t0, . . . , TNkann durch eine Wiederholungsgleichung der Form angenähert werden

u J N + 1 - u J N k = A u J + 1 N - 2 u J N + u J - 1 N H 2 - v u J + 1 N - u J - 1 N 2 H
mit Raumgittergröße h und Zeitschritt k und uJN≈u(xJ, TN). Die linke Seite der Wiederholungsgleichung ist eine Vorwärtsdifferenz zum Zeitpunkt tN, und die rechte Seite ist eine zentrale Differenz zweiter Ordnung und eine zentrale Differenz erster Ordnung für die Raumableitungen bei xJ, wobei

u J N + 1 - u J N k u ( X J , T N ) T , u J + 1 N - 2 u J N + u J - 1 N H 2 2 u ( X J , T N ) X 2 , Und u J + 1 N - u J - 1 N 2 H u ( X J , T N ) X .
Dies ist eine explizite Methode, da der Prozessor möglicherweise die neue Näherung u erhältJn+1ohne irgendwelche Gleichungen zu lösen. Es ist bekannt, dass diese Methode stabil ist

H < 2 A v Und k < H 2 2 A .
Die Stabilitätsbedingungen begrenzen die Zeitschrittgröße k, was möglicherweise eine Einschränkung des expliziten Methodenschemas darstellt. Wenn stattdessen der Prozessor zum Zeitpunkt t eine zentrale Differenz verwendetn+1/2, die Wiederholungsgleichung lautet

u J N + 1 - u J N k = 1 2 ( A u J + 1 N + 1 - 2 u J N + 1 + u J - 1 N + 1 H 2 - v u J + 1 N + 1 - u J - 1 N + 1 2 H + A u J + 1 N - 2 u J N + u J - 1 N H 2 - v u J + 1 N - u J - 1 N 2 H ) ,
bekannt als die Crank-Nicolson-Methode. Der Prozessor kann die neue Näherung u erhaltenJn+1durch Lösen eines linearen Gleichungssystems ist die Methode also implizit und numerisch stabil, wenn

k < H 2 A .
Auf ähnliche Weise kann der Prozessor eine Rückwärtsdifferenz in der Zeit nutzen und so eine andere implizite Methode erhalten

u J N + 1 - u J N k = u J + 1 N + 1 - 2 u J N + 1 + u J - 1 N + 1 H 2 - v u J + 1 N + 1 - u J - 1 N + 1 2 H ,
Dies ist für einen Zeitschritt bedingungslos stabil, der Kürzungsfehler kann jedoch groß sein. Während beide impliziten Methoden hinsichtlich der Zeitschrittgröße weniger restriktiv sind, erfordern sie in der Regel mehr Rechenleistung, da sie in jedem Zeitschritt die Lösung eines Systems linearer Gleichungen erfordern. Da die Differenzengleichungen auf einem einheitlichen Gitter basieren, setzt das FDM außerdem Einschränkungen hinsichtlich der Form der Domäne.

In einigen Ausführungsformen kann der Prozessor Finite-Elemente-Methoden (FEM) verwenden, um partielle Differentialgleichungen der Form numerisch anzunähern

R T = - { R , H } + P · ( D P R ) .

Im Allgemeinen führt die Formulierung des Problems mit der Finite-Elemente-Methode zu einem System algebraischer Gleichungen. Dies ergibt Näherungswerte der Unbekannten an einer diskreten Anzahl von Punkten über der Domäne. Um das Problem zu lösen, unterteilt es ein großes Problem in kleinere, einfachere Teile, die als finite Elemente bezeichnet werden. Die einfachen Gleichungen, die diese finiten Elemente modellieren, werden dann zu einem größeren Gleichungssystem zusammengesetzt, das das gesamte Problem modelliert. Die Methode kann das Konstruieren eines Netzes oder einer Triangulation der Domäne, das Finden einer schwachen Formulierung der partiellen Differentialgleichung (d. h. Integration nach Teilen und der Green-Identität) und die Entscheidung für einen Lösungsraum (z. B. stückweise linear auf Netzelementen) umfassen. Dies führt zu einer diskretisierten Version in Form einer linearen Gleichung. Zu den Vorteilen gegenüber FDM gehören komplizierte Geometrien, eine größere Auswahl an Approximationsableitungen und im Allgemeinen eine höhere Qualität der Approximation. Beispielsweise kann der Prozessor die partielle Differentialgleichung verwenden

R T = L R ,
mit Differentialoperator, z. B. L=−(⋅,H)+∇P·(D∇P). Der Prozessor kann die abstrakte Gleichung im Raum diskretisieren (z. B. durch FEM oder FDM).

R ¯ T = L ¯ R ¯ ,
worinR,Lsind die Projektionen von ρ,L auf den diskretisierten Raum. Der Prozessor kann die Gleichung mithilfe eines numerischen Zeitintegrators (z. B. Crank-Nicolson) zeitlich diskretisieren.

R - N + 1 - R - N H = 1 2 ( L ¯ R ¯ - N + 1 + L ¯ R ¯ - N ) ,
führt zur Gleichung

( ICH - H 2 L ¯ ) R ¯ - N + 1 = ( ICH + H 2 L ¯ ) R ¯ - N ,
die der Prozessor lösen kann. In einem vollständig diskretisierten System ist dies eine lineare Gleichung. Abhängig vom Raum und der Diskretisierung handelt es sich um eine gebänderte, dünn besetzte Matrix. In einigen Ausführungsformen kann der Prozessor eine implizite alternierende Richtungsaufteilung (ADI) verwenden, um den Lösungsprozess zu vereinfachen. In der FEM kann der Prozessor den Raum mithilfe eines Netzes diskretisieren, eine schwache Formulierung unter Einbeziehung eines Testraums konstruieren und seine Variationsform lösen. Bei FDM kann der Prozessor die Ableitungen mithilfe von Differenzen in einem Gitter der Domäne diskretisieren. In einigen Fällen kann der Prozessor FEM/FDM mit Rückwärtsdifferentialformulierung (BDF)/Radau (Empfehlung von Marlis) implementieren, beispielsweise die Netzgenerierung, und dann ein Variationsproblem mit Rückwärts-Euler konstruieren und lösen. In anderen Fällen kann der Prozessor FDM mit ADI implementieren, was zu einem gebänderten, dreidiagonalen, symmetrischen, linearen System führt. Der Prozessor kann ein Upwind-Schema verwenden, wenn die Peclet-Zahl (d. h. das Verhältnis von Advektion zu Diffusion) größer als 2 oder kleiner als –2 ist.

Randbedingungen können bei der Lösung der partiellen Differentialgleichungen von entscheidender Bedeutung sein. Perimeterbedingungen sind eine Reihe von Einschränkungen, die bestimmen, was an den Perimetern der Domäne geschieht, während die partielle Differentialgleichung das Verhalten innerhalb der Domäne beschreibt. In einigen Ausführungsformen kann der Prozessor eine oder mehrere der folgenden Perimeterbedingungen verwenden: Reflektierend, Nullfluss (d. h. homogene Neumann-Perimeterbedingungen)

R N = 0
für p,q∈d∂D,{rechter Pfeil über (n)} Einheitsnormalenvektor auf Perimetern; absorbierende Perimeterbedingungen (d. h. homogene Dirichlet-Perimeterbedingungen) ρ=0 für p,q∈∂D; und konstante Konzentrationsumfangsbedingungen (d. h. Dirichlet) ρ=ρ0für p,q∈∂D. Um die Perimeterbedingungen in FDM zu integrieren, modifiziert der Prozessor die Differenzengleichungen an den Perimetern, und bei Verwendung von FEM werden sie Teil der schwachen Form (d. h. partielle Integration) oder werden in den Lösungsraum integriert. In einigen Ausführungsformen kann der Prozessor Fenics für eine effiziente Lösung partieller Differentialgleichungen verwenden.

In einigen Ausführungsformen kann der Prozessor Quantenmechanik nutzen, um den Roboter zu lokalisieren. In einigen Ausführungsformen kann der Prozessor des Roboters eine Wahrscheinlichkeitsdichte über alle möglichen Zustände des Roboters mithilfe einer komplexwertigen Wellenfunktion für ein Einzelteilchensystem Ψ({r},t) bestimmen, wobei { rechter Pfeil über (r)} kann ein Vektor von Raumkoordinaten sein. In einigen Ausführungsformen kann die Wellenfunktion Ψ(r,t) proportional zur Wahrscheinlichkeitsdichte sein, dass das Teilchen an einer Position r gefunden wird, d. h. ρ(r). Pfeil über (r)},t)=|Ψ({rechter Pfeil über (r)},t)|2. In einigen Ausführungsformen kann der Prozessor des Roboters die Wellenfunktion normalisieren, die der Gesamtwahrscheinlichkeit entspricht, das Teilchen, oder in diesem Fall den Roboter, irgendwo zu finden. Die Gesamtwahrscheinlichkeit, den Roboter irgendwo zu finden, kann sich auf eins ∫|Ψ({rechter Pfeil über (r)},t)| summieren2dr=1. In einigen Ausführungsformen kann der Prozessor des Roboters eine Fourier-Transformation auf die Wellenfunktion Ψ(r,t) anwenden, um die Wellenfunktion Φ(p,t) zu erhalten Impulsraum, mit zugehöriger Impulswahrscheinlichkeitsverteilung σ({rechter Pfeil über (p)},t)=Φ({rechter Pfeil über (p)},t)|2. In einigen Ausführungsformen kann der Prozessor die Wellenfunktion Ψ(r,t) unter Verwendung der Schrödinger-Gleichung entwickeln

ich T Ps ( R , T ) = [ - 2 2 M 2 + V ( R ) ] Ps ( R , T ) ,
wobei das eingeklammerte Objekt der Hamilton-Operator ist

H ˆ = - 2 2 M 2 + V ( R ) ,
i ist die imaginäre Einheit, ℏ ist die reduzierte Planck-Konstante, ∇2ist der Laplace-Operator und V({rechter Pfeil über (r)}) ist das Potential. Ein Operator ist eine Verallgemeinerung des Funktionsbegriffs und wandelt eine Funktion in eine andere um. Zum Beispiel erklärt der Impulsoperator {circumflex over (p)}=−iℏ∇, warum

- 2 2 M 2
entspricht kinetischer Energie. Die Hamilton-Funktion

H = P 2 2 M + V ( R )
hat den entsprechenden Hamilton-Operator

H ˆ = - 2 2 M 2 + V ( R ) .
Für konservative Systeme (konstante Energie) kann der zeitabhängige Faktor von der Wellenfunktion getrennt werden

( e . G . , Ps ( R , T ) = Phi ( R ) e - iEt ,
Angabe der zeitunabhängigen Schrödinger-Gleichung

[ - 2 2 M 2 + V ( R ) ] Phi ( R ) = E Phi ( R ) ,
oder andernfalls ĤΦ=EΦ, eine Eigenwertgleichung mit Eigenfunktionen und Eigenwerten. Die Eigenwertgleichung kann eine Basis liefern, die durch die Eigenfunktionen {ϕ} des Hamilton-Operators gegeben ist. Daher kann die Wellenfunktion in einigen Ausführungsformen durch Ψ({r},t)=Σ gegeben seinkCk(t)fk({rechter Pfeil über (r)}), entsprechend der Darstellung der Wellenfunktion in der durch Energieeigenfunktionen gegebenen Basis. Einsetzen dieser Gleichung in die Schrödinger-Gleichung

C k ( T ) = C k ( 0 ) e - ich ˙ E k T
erhalten wird, wobei Ekist die Eigenenergie zur Eigenfunktion φk. Zum Beispiel die Wahrscheinlichkeit, eine bestimmte Energie E zu messenkzum Zeitpunkt t kann durch den Koeffizienten der Eigenfunktion gegeben werden

Phi k , „\[LeftBracketingBar]“ C k ( T ) „\[RightBracketingBar]“ 2 = „\[LeftBracketingBar]“ C k ( 0 ) e - Dh k T „\[RightBracketingBar]“ 2 = „\[LeftBracketingBar]“ C k ( 0 ) „\[RightBracketingBar]“ 2 .
Somit ist die Wahrscheinlichkeit für die Messung der gegebenen Energie über die Zeit konstant. Dies gilt jedoch möglicherweise nur für die Energieeigenwerte, nicht für andere Observablen. Stattdessen ist die Wahrscheinlichkeit, das System an einer bestimmten Position zu finden, ρ(r)=|Ψ(r,t)|2könnte genutzt werden.

In einigen Ausführungsformen kann die Wellenfunktion ψ ein Element eines komplexen Hilbert-Raums H sein, der ein vollständiger Innenproduktraum ist. Jede physikalische Eigenschaft ist mit einem linearen hermiteschen Operator verbunden, der auf diesen Hilbert-Raum wirkt. Eine Wellenfunktion oder ein Quantenzustand kann als abstrakter Vektor in einem Hilbert-Raum betrachtet werden. In einigen Ausführungsformen kann ψ durch das Symbol |ψ (d. h. ket) bezeichnet werden, und entsprechend kann das komplex konjugierte ϕ* durch ϕ| bezeichnet werden (d. h. BH). Das Integral über das Produkt zweier Funktionen kann analog zu einem inneren Produkt abstrakter Vektoren sein, ∫ϕ*ψdτ=ϕ|·|ψ≡ϕ|ψ. In einigen Ausführungsformen ist ϕ| und |ψ können Zustandsvektoren eines Systems sein und der Prozessor kann die Wahrscheinlichkeit bestimmen, ϕ| zu finden im Zustand |ψ mit p(ϕ|,|ψ)=|ϕ|ψ|2. Für einen hermiteschen Operator  können Eigenketten und Eigenwerte mit A|n=a bezeichnet werdenN|n, wobei |n das Eigenket ist, das dem Eigenwert a zugeordnet istN. Für einen hermiteschen Operator sind Eigenwerte reelle Zahlen, Eigenkets, die verschiedenen Eigenwerten entsprechen, sind orthogonal, Eigenwerte, die mit Eigenkets verknüpft sind, sind die gleichen wie die Eigenwerte, die mit Eigenbras verknüpft sind, d. h. n|A=n|aN. Für jede physikalische Eigenschaft (Energie, Ort, Impuls, Drehimpuls usw.) kann ein zugehöriger linearer, hermitescher Operator  (am beobachtbar genannt) existieren, der auf den Hilbert-Raum H wirkt. Gegeben sei A mit Eigenwerten aNund Eigenvektoren |n und ein System im Zustand |ϕ kann der Prozessor die Wahrscheinlichkeit bestimmen, a zu erhaltenNals Ergebnis einer Messung von A unter Verwendung von p (aN)=|n|ϕ|2. In einigen Ausführungsformen kann der Prozessor die zeitabhängige Schrödinger-Gleichung unter Verwendung entwickeln

ich „\[LeftBracketingBar]“ P T = H ˆ | P .
Bei einem gegebenen Zustand |ϕ und einer Messung der Observablen A kann der Prozessor den Erwartungswert von A mithilfe von A=ϕ|A|ϕ bestimmen, entsprechend

= ϕ A ϕ D T ϕ ϕ D T
für Beobachtungsoperator  und Wellenfunktion ϕ. In einigen Ausführungsformen kann der Prozessor die Wellenfunktion aktualisieren, wenn er eine Observable beobachtet, indem er die Wellenfunktion auf die Eigenfunktionen oder den Eigenraum reduziert, die dem beobachteten Eigenwert entsprechen.

Wie oben beschrieben, kann der Prozessor zur Lokalisierung des Roboters die Wellenfunktion Ψ({r},t) unter Verwendung der Schrödinger-Gleichung entwickeln

ich T P ( R , T ) = [ - 2 2 M 2 + V ( R ) ] P ( R , T ) .
In einigen Ausführungsformen kann eine Lösung in Form von Eigenfunktionen ψ geschrieben werdenNmit Eigenwerten ENder zeitunabhängigen Schrödinger-Gleichung HψN=ENPN, wobei Ψ({r},t)=ΣCNCNe−iENt/hPNund CN=∫Ψ({rechter Pfeil über (r)},0)ψN*DR. In einigen Ausführungsformen kann die Zeitentwicklung als Zeitentwicklung über einen einheitlichen Operator U(t) ausgedrückt werden, Ψ(r,t)=U(t)Ψ(r) },0) wobei U(t)=e−Ht/h. In einigen Ausführungsformen kann die Wahrscheinlichkeitsdichte des Hilbert-Raums vom Prozessor des Roboters jedes Mal aktualisiert werden, wenn eine Beobachtung oder Messung vom Prozessor des Roboters empfangen wird. Für jede Beobachtung mit dem Beobachtungsoperator A kann der Prozessor des Roboters eine Eigenzerlegung Aω durchführenN=aNOhN, wobei der Eigenwert der beobachteten Größe entspricht. In einigen Ausführungsformen kann der Prozessor einen Wert a mit einer Wahrscheinlichkeit von 0 ≤ p ≤ 1 beobachten. In einigen Ausführungsformen, in denen der Operator ein endliches Spektrum hat oder ein einzelner Eigenwert beobachtet wird, kann der Prozessor des Roboters mit entsprechender Wahrscheinlichkeit auf die Eigenfunktion(en) kollabieren

Ps ( R , T ) C N = 1 N P ( A N ) D N Oh N , worin D N = Oh N * Ps D R ,
p(a) ist die Wahrscheinlichkeit, den Wert a zu beobachten, und γ ist eine Normalisierungskonstante. In einigen Ausführungsformen, in denen der Operator ein kontinuierliches Spektrum hat, kann die Summierung durch eine Integration Ψ({r},t)→γ∫p(a)d ersetzt werdenNOhNda, wobei dN=∫ωN*Ψdr.

Stellen Sie sich beispielsweise einen Roboter vor, der sich nur innerhalb eines Intervalls bewegen kann

[ - 1 2 , 1 2 ] .
Der Einfachheit halber setzt der Prozessor ℏ=m=1 und es werden ein unendliches Potential und der reguläre kinetische Energieterm angenommen. Der Prozessor löst die zeitunabhängigen Schrödinger-Gleichungen, was zu Wellenfunktionen führt

P N = { 2 Sünde Sünde ( k N ( X - 1 2 ) ) e - ich Oh N T , - 1 2 < X < 1 2 0 ,
andernfalls, wobei kN=nπ und EN=ohN=n2Pi2. Im Impulsraum entspricht dies den Wellenfunktionen

ϕ N ( P , T ) = 1 2 Pi - P N ( X , T ) e - ich P X dx = 1 Pi N Pi N Pi + P Sünde C ( 1 2 ( N Pi - P ) ) .
Der Prozessor übernimmt geeignete Funktionen und berechnet eine Entwicklung in Eigenfunktionen. Bei einem gegebenen Koeffizientenvektor berechnet der Prozessor die zeitliche Entwicklung dieser Wellenfunktion auf Eigenbasis. Betrachten Sie in einem anderen Beispiel einen Roboter, der sich frei auf einer x-Achse bewegen kann. Der Einfachheit halber setzt der Prozessor ℏ=m=1. Der Prozessor löst die zeitunabhängigen Schrödinger-Gleichungen, was zu Wellenfunktionen führt

P E ( X , T ) = Ae ich ( px - E T ) ,
wobei Energie

E = 2 k 2 2 M
und Impuls p=ℏk. Für die Energie E gibt es zwei unabhängige, gültige Funktionen mit ±p. Gegeben sei die Wellenfunktion im Ortsraum, im Impulsraum seien die entsprechenden Wellenfunktionen

ϕ E ( P , T ) = e ich ( px - E T ) ,
die mit den Energieeigenfunktionen identisch sind. Für eine gegebene anfängliche Wellenfunktion ψ(x,0) erweitert der Prozessor die Wellenfunktion in Impuls/Energie

ϕ ( P ) = 1 2 πℏ P ( X , 0 ) e - ipx dx ,
dann erhält der Prozessor die Zeitabhängigkeit, indem er das inverse Fourier-Ergebnis nimmt

P ( X , T ) = 1 2 πℏ ϕ ( P ) e ipx e - iEt D P .
Ein Beispiel für einen üblichen Typ einer anfänglichen Wellenfunktion ist ein Gaußsches Wellenpaket, das aus Impulseigenfunktionen multipliziert mit einer Gaußschen Funktion im Ortsraum besteht

P ( X ) = A e - ( X A ) 2 e IP 0 X ,
wobei p0ist der durchschnittliche Impulswert der Wellenfunktion und a ist ein grobes Maß für die Breite des Pakets. Im Impulsraum hat diese Wellenfunktion die Form

ϕ ( P ) = B e - ( A ( P - P 0 ) 2 H ) 2 ,
Das ist eine Gaußsche Funktion des Impulses, zentriert auf p0mit ungefährer Breite

2 A .
Beachten Sie das Heisenbergsche Unschärfeprinzip, bei dem die Breite im Ortsraum ˜a und im Impulsraum ˜1/a beträgt.FIG.81A und81Bveranschaulichen ein Beispiel eines Wellenpakets zu einem ersten Zeitpunkt für ψ(x) bzw. ϕ(p) mit x0, P0=0, 2, ℏ=0,1, m=1 und a=3, wobei8100sind Realteile und8101sind imaginäre Teile. Im Laufe der Zeit bewegt sich der Peak mit konstanter Geschwindigkeit p0/m und die Breite des Wellenpakets im Ortsraum nimmt zu. Dies liegt daran, dass sich die verschiedenen Impulskomponenten des Pakets mit unterschiedlichen Geschwindigkeiten bewegen. Im Impulsraum ist die Wahrscheinlichkeitsdichte |ϕ(p,t)|2bleibt über die Zeit konstant. SehenFIG.81C und81Dfür dasselbe Wellenpaket zum Zeitpunkt t=2.

Wenn der Roboter mithilfe der Quantenphysik modelliert wird und der Prozessor einige Observable beobachtet, kann der Prozessor die Wellenfunktion auf den Unterraum der Beobachtung reduzieren. Betrachten Sie beispielsweise den Fall, dass der Prozessor den Impuls eines Wellenpakets beobachtet. Der Prozessor drückt die Unsicherheit der Messung durch eine Funktion ƒ(p) aus (d. h. die Wahrscheinlichkeit, dass das System den Impuls p hat), wobei ƒ normalisiert ist. Die Wahrscheinlichkeitsverteilung des Impulses in diesem Beispiel wird durch eine Gaußsche Verteilung mit der Mitte um p=2,5 mit σ=0,05 angegeben, eine starke Annahme, dass der Impuls 2,5 beträgt. Da der Beobachtungsoperator der Impulsoperator ist, ist die durch die Eigenfunktionen des Beobachtungsoperators ausgedrückte Wellenfunktion ϕ(p,t). Der Prozessor projiziert ϕ(p,t) mit der Wahrscheinlichkeit ƒ in den Beobachtungsraum, indem er ϕ}(p,t)=ƒ(p)ϕ(p,t) bestimmt. Der Prozessor normalisiert die aktualisierte ϕ} und führt die inverse Fourier-Transformation durch, um die Wellenfunktion im Positionsraum zu erhalten.FIG.82A,82B,82C,82D, und82Everanschaulichen die anfängliche Wellenfunktion im Ortsraum ψ(x), die anfängliche Wellenfunktion im Impulsraum ϕ(p), die Beobachtungsdichte im Impulsraum, die aktualisierte Wellenfunktion im Impulsraum ϕ} (p,t) nach der Beobachtung und die Wellenfunktion im Ortsraum ψ(x) nach Beobachtung des Impulses jeweils zum Zeitpunkt t=2, mit x0,P0=0, 2, ℏ=0,1, m=1 und a=3. Beachten Sie, dass in jeder Abbildung die dunkleren Diagramme die Realteile und die helleren Diagramme die Imaginärteile sind. Die resultierende Wellenfunktion im Ortsraum (FEIGE.82D) kann unerwartet sein, nachdem eine sehr enge Impulsdichte beobachtet wurde (FEIGE.82C), da es zu dem Schluss kommt, dass sich die Position weiter von der ursprünglichen Wellenfunktion im Positionsraum entfernt haben muss (FEIGE.82A). Dieser Effekt könnte auf Heisenbergs Unschärferelation zurückzuführen sein. Mit abnehmendem h nimmt dieser Effekt ab, wie in zu sehen istFIG.83A-83EUndFIG.84A-84E, das Gleiche veranschaulichendFIG.82A-82Eaber mit ℏ=0,05 bzw. ℏ=0,001. Ähnlich wie bei der Beobachtung des Impulses kann auch die Position beobachtet und berücksichtigt werden, wie in dargestelltFIG.85A-85Edie die anfängliche Wellenfunktion im Ortsraum ψ(x), die anfängliche Wellenfunktion im Impulsraum ϕ(p), die Beobachtungsdichte im Ortsraum, die aktualisierte Wellenfunktion im Impulsraum ϕ veranschaulichen }(x,t) nach der Beobachtung bzw. die Wellenfunktion im Ortsraum ψ(p) nach Beobachtung der Position jeweils zum Zeitpunkt t=2, mit x0,P0=0,2, ℏ=0,1, m=1 und a=3.

In der Quantenmechanik stellen Wellenfunktionen die Wahrscheinlichkeitsamplitude dar, das System in einem bestimmten Zustand zu finden. Physikalische reine Zustände in der Quantenmechanik können als Einheitsnormvektoren in einem speziellen komplexen Hilbert-Raum dargestellt werden, und die zeitliche Entwicklung in diesem Vektorraum kann durch Anwendung des Evolutionsoperators angegeben werden. Darüber hinaus sollte in der Quantenmechanik jede Observable mit einem selbstadjungierten linearen Operator verknüpft sein, der reelle Eigenwerte liefern muss, z. B. sie müssen Hermitianer sein. Die Wahrscheinlichkeit jedes Eigenwerts kann mit der Projektion des physikalischen Zustands auf den Unterraum in Zusammenhang stehen, der sich auf diesen Eigenwert bezieht, und Observablen können Differentialoperatoren sein. Beispielsweise navigiert ein Roboter entlang eines eindimensionalen Bodens, der drei Türen an den Türen bei x enthält0=−2,5, x1=0 und x2=5,0. Der Prozessor des Roboters ist in der Lage, anhand der beobachteten Sensordaten zu bestimmen, wann er sich an einer Tür befindet, und der Impuls des Roboters ist konstant, aber unbekannt. Der Standort des Roboters ist zunächst unbekannt, daher generiert der Prozessor anfängliche Wellenfunktionen des in gezeigten ZustandsFIG.86A und86B. Wenn der Prozessor feststellt, dass sich der Roboter vor einer Tür befindet, wird die mögliche Position des Roboters auf drei mögliche Positionen eingegrenzt, nicht jedoch der Impuls, was zu den in gezeigten Wellenfunktionen führtFIG.87A und87B. Der Prozessor entwickelt die Wellenfunktionen mit einem Hamilton-Operator weiter, und nach fünf Sekunden sind die Wellenfunktionen wie in gezeigtFIG.88A und88B, wobei sich der Ortsraum bei unbekanntem Impuls wieder ausgeweitet hat. Die entwickelte Wahrscheinlichkeitsdichte verfolgt jedoch die Korrelation zwischen Position und Impuls. Wenn der Prozessor erneut feststellt, dass sich der Roboter vor einer Tür befindet, werden die Wellenfunktionen aktualisiertFIG.89A und89B, wobei die Wellenfunktionen erheblich eingegrenzt wurden, was auf eine Reihe von Spitzen hinweist, die mögliche Positions- und Impulskombinationen des Roboters darstellen. Und tatsächlich, wenn der Prozessor eine andere Beobachtung beobachtet, wie zum Beispiel den Impuls p=1,0 bei t=5,0, kollabiert auch die Wellenfunktion im Ortsraum auf die einzig verbleibende mögliche Kombination, den Ort in der Nähe von x=5,0, wie in gezeigtFIG.90A und90B. Der Prozessor kollabiert die Impulswellenfunktion entsprechend. Außerdem reduziert der Prozessor die Positionswellenfunktion auf einen Spitzenwert bei x=5,0. Bei konstantem Impuls, einer Impulsbeobachtung von p=1,0 und einem Abstand der beiden Türbeobachtungen von 5 Sekunden ist die Position x=5,0 die einzig verbleibende gültige Positionshypothese.FIG.90C und90DVeranschaulichen Sie stattdessen die resultierende Wellenfunktion für eine Impulsbeobachtung von p=0,0 bei t=5,0.FIG.90E und90FVeranschaulichen Sie stattdessen die resultierende Wellenfunktion für eine Impulsbeobachtung von p=−1,5 bei t=5,0.FIG.90G und90HVeranschaulichen Sie stattdessen die resultierende Wellenfunktion für eine Impulsbeobachtung von p=0,5 bei t=5,0. In ähnlicher Weise kollabiert der Prozessor die Impulswellenfunktion, wenn die Position statt des Impulses beobachtet wird.FIG.91A und91BVeranschaulichen Sie stattdessen die resultierende Wellenfunktion für eine Positionsbeobachtung von x=0,0 bei t=5,0.FIG.91C und91DVeranschaulichen Sie stattdessen die resultierende Wellenfunktion für eine Positionsbeobachtung von x=−2,5 bei t=5,0.FIG.91E und91FVeranschaulichen Sie stattdessen die resultierende Wellenfunktion für eine Positionsbeobachtung von x=5,0 bei t=5,0.

In einigen Ausführungsformen kann der Prozessor mehrere Roboter simulieren, die sich an verschiedenen möglichen Orten in der Umgebung befinden. In einigen Ausführungsformen kann der Prozessor die Umgebung aus der Perspektive jedes einzelnen simulierten Roboters betrachten. In einigen Ausführungsformen kann die Sammlung simulierter Roboter ein Ensemble bilden. In einigen Ausführungsformen kann der Prozessor den Standort jedes simulierten Roboters oder des Ensembles im Laufe der Zeit weiterentwickeln. In einigen Ausführungsformen kann der Bewegungsbereich jedes simulierten Roboters unterschiedlich sein. In einigen Ausführungsformen kann der Prozessor die Umgebung aus dem Sichtfeld jedes simulierten Roboters betrachten, wobei jeder simulierte Roboter eine etwas andere Karte der Umgebung basierend auf seinem simulierten Standort und Sichtfeld hat. In einigen Ausführungsformen kann die Sammlung simulierter Roboter einen ungefähren Bereich bilden, in dem sich der Roboter tatsächlich befindet. In einigen Ausführungsformen ist der wahre Standort des Roboters einer der simulierten Roboter. In einigen Ausführungsformen kann der Prozessor, wenn eine Messung der Umgebung durchgeführt wird, die Messung der Umgebung anhand der Karte der Umgebung jedes der simulierten Roboter überprüfen. In einigen Ausführungsformen kann der Prozessor vorhersagen, dass sich der Roboter tatsächlich am Standort des simulierten Roboters befindet, und zwar über eine Karte, die am besten mit der Messung der Umgebung übereinstimmt. In einigen Ausführungsformen kann sich der simulierte Roboter, von dem der Prozessor glaubt, dass er der wahre Roboter ist, ändern oder derselbe bleiben, wenn neue Messungen durchgeführt werden und sich das Ensemble im Laufe der Zeit weiterentwickelt. In einigen Ausführungsformen kann das Ensemble simulierter Roboter zusammenbleiben, während sich das Ensemble im Laufe der Zeit weiterentwickelt. In einigen Ausführungsformen kann die Gesamtenergie der Sammlung simulierter Roboter in jedem Zeitstempel konstant bleiben, jedoch ist die Energieverteilung zum Vorwärtsbewegen jedes simulierten Roboters während der Evolution möglicherweise nicht gleichmäßig auf die simulierten Roboter verteilt. Beispielsweise kann es vorkommen, dass ein simulierter Roboter in einem Fall viel weiter entfernt ist als die übrigen simulierten Roboter oder zu weit rechts oder links steht, in zukünftigen Fällen jedoch und im Zuge der Weiterentwicklung des Ensembles möglicherweise wieder in die Nähe der Gruppe der simulierten Roboter kommt. In einigen Ausführungsformen kann sich das Ensemble so weiterentwickeln, dass es den Sensormesswerten möglichst nahe kommt, beispielsweise einem Gyroskop oder einem optischen Sensor. In einigen Ausführungsformen kann die Entwicklung des Standorts simulierter Roboter auf der Grundlage von Eigenschaften des physischen Roboters begrenzt sein. Beispielsweise kann ein Roboter eine begrenzte Geschwindigkeit und eine begrenzte Drehung der Räder haben, sodass es für den Roboter unmöglich wäre, sich zwischen den Zeitschritten beispielsweise zwei Meter zu bewegen. In einem anderen Beispiel befindet sich der Roboter möglicherweise nur in bestimmten Bereichen einer Umgebung, in denen es für den Roboter möglicherweise unmöglich ist, sich in Bereichen zu befinden, in denen sich beispielsweise ein Hindernis befindet. In einigen Ausführungsformen kann diese Methode verwendet werden, um bestimmte Elemente zurückzuhalten oder das Gesamtverständnis der Umgebung zu ändern. Wenn der Prozessor beispielsweise insgesamt zehn simulierte Roboter einzeln anhand einer Messung prüft und einen simulierten Roboter als echten Roboter auswählt, filtert der Prozessor neun simulierte Roboter heraus.

In einigen Ausführungsformen umfasst das Sichtfeld jedes simulierten Roboters möglicherweise nicht genau die gleichen Merkmale wie die anderen. In einigen Ausführungsformen kann der Prozessor das Sichtfeld jedes der simulierten Roboter im Speicher speichern. In einigen Ausführungsformen kann der Prozessor die FOVs jedes simulierten Roboters kombinieren, um mithilfe von Methoden wie der Methode der kleinsten Quadrate ein FOV des Ensembles zu erstellen. In einigen Ausführungsformen kann der Prozessor das Sichtfeld jedes einzelnen simulierten Roboters und das Sichtfeld des gesamten Ensembles verfolgen. In einigen Ausführungsformen können andere Methoden verwendet werden, um das FOV des Ensembles (oder eines Teils des Ensembles) zu erstellen. Beispielsweise kann ein Klassifikator-KI-Algorithmus verwendet werden, etwa ein naiver Bayes-Klassifikator, Kleinste-Quadrate-Unterstützungsvektormaschinen, k-nächster Nachbar, Entscheidungsbäume und neuronale Netze. In einigen Ausführungsformen kann mehr als ein FOV des Ensembles (oder eines Teils des Ensembles) vom Prozessor generiert und verfolgt werden, wobei jedes FOV mit einer anderen Methode erstellt wird. Beispielsweise kann der Prozessor das FOV von zehn simulierten Robotern und zehn unterschiedlich generierte FOVs des Ensembles verfolgen. Bei jedem Messzeitstempel kann der Prozessor die Messung anhand des FOV der zehn simulierten Roboter und/oder der zehn unterschiedlich generierten FOVs des Ensembles prüfen und eines dieser 20 möglichen FOVs als Grundwahrheit auswählen. In einigen Ausführungsformen kann der Prozessor die 20 FOVs anstelle der FOVs der simulierten Roboter untersuchen und eine Ableitung als Grundwahrheit auswählen. Die Anzahl der simulierten Roboter und/oder die Anzahl der generierten FOVs kann variieren. Während der Kartierung kann der Prozessor beispielsweise ein erstes Sichtfeld des Sensors nehmen und ein FOV für das Ensemble oder jeden einzelnen Beobachter (simulierten Roboter) innerhalb des Ensembles berechnen und es mit dem vom Sensor erfassten zweiten Sichtfeld kombinieren Ensemble oder jeder einzelne Beobachter innerhalb des Ensembles. Der Prozessor kann zwischen dem FOV jedes Beobachters (z. B. wie bei mehreren CCTV-Kameras in einer Umgebung, zwischen der ein Bediener wechseln kann) und/oder einem oder mehreren FOVs des Ensembles (oder eines Teils des Ensembles) umschalten und die FOVs auswählen ist es wahrscheinlicher, dass sie der Grundwahrheit nahe kommen. Bei jeder Zeititeration kann sich das Sichtfeld jedes Beobachters und/oder Ensembles näher an der Grundwahrheit entwickeln.

In einigen Ausführungsformen können simulierte Roboter in zwei oder mehr Klassen unterteilt werden. Beispielsweise können simulierte Roboter anhand ihrer Zuverlässigkeit, beispielsweise gute Zuverlässigkeit, schlechte Zuverlässigkeit oder durchschnittliche Zuverlässigkeit, oder anhand ihrer Geschwindigkeit, beispielsweise schnell und langsam, klassifiziert werden. Es können Klassen verwendet werden, die sich stark zur Seite bewegen. Es kann jedes beliebige Klassifizierungssystem erstellt werden, beispielsweise lineare Klassifikatoren wie die lineare Diskriminante nach Fisher, logistische Regression, naiver Bayes-Klassifikator und Perzeptron, Unterstützungsvektormaschinen wie Kleinste-Quadrate-Unterstützungsvektormaschinen, quadratische Klassifikatoren, Kernelschätzung wie k-nächster Nachbar, Boosting (Meta-Klassifikatoren). Algorithmus), Entscheidungsbäume wie Random Forests, neuronale Netze und lernende Vektorquantisierung. In einigen Ausführungsformen kann sich jede der Klassen unterschiedlich entwickeln. Bei Klassen mit schneller und langsamer Geschwindigkeit kann sich beispielsweise jede Klasse anders bewegen, wobei sich die simulierten Roboter in der schnellen Klasse sehr schnell bewegen und den anderen simulierten Robotern in der langsamen Klasse voraus sein werden, die sich langsamer bewegen und zurückfallen. Die Art und der Zeitpunkt der Evolution können unterschiedliche Auswirkungen auf verschiedene simulierte Roboter innerhalb des Ensembles haben. Die Entwicklung des Ensembles als Ganzes kann gleich bleiben oder auch nicht. Das Ensemble kann homogen oder inhomogen sein.

In einigen Ausführungsformen können Proben aus dem Phasenraum entnommen werden. In einigen Ausführungsformen können die Intervalle, in denen Proben entnommen werden, fest oder dynamisch oder maschinell erlernt sein. In einem Probenahmesystem mit festen Intervallen kann eine Zeit voreingestellt werden. In einem dynamischen Intervallsystem kann die Abtastfrequenz von Faktoren wie der Geschwindigkeit oder der Glätte des Bodens und anderen Parametern abhängen. Wenn beispielsweise die Geschwindigkeit des Roboters zunimmt, können mehr Proben entnommen werden. Oder es können weitere Proben entnommen werden, wenn der Roboter in unebenem Gelände unterwegs ist. In einem maschinell erlernten System kann die Häufigkeit der Probenahme von der vorhergesagten Drift abhängen. Wenn beispielsweise in früheren Zeitstempeln die durchgeführten Messungen darauf hindeuten, dass der Roboter die beabsichtigte Position einigermaßen gut erreicht hat, kann die Häufigkeit der Probenentnahme reduziert werden. In einigen Ausführungsformen kann das oben erläuterte dynamische System gleichermaßen zur Bestimmung der Größe des Ensembles verwendet werden. Wenn beispielsweise in früheren Zeitstempeln die durchgeführten Messungen darauf hindeuten, dass der Roboter die beabsichtigte Position ziemlich gut erreicht hat, kann ein kleineres Ensemble verwendet werden, um die Kenntnis darüber zu korrigieren, wo sich der Roboter befindet. In einigen Ausführungsformen kann das Ensemble in jedem Intervall neu generiert werden. In einigen Ausführungsformen kann ein Teil des Ensembles regeneriert werden. In einigen Ausführungsformen kann ein Teil des Ensembles, der mit größerer Wahrscheinlichkeit die Grundwahrheit abbildet, erhalten bleiben und der andere Teil regeneriert werden. In einigen Ausführungsformen wird das Ensemble möglicherweise nicht neu generiert, aber einer der Beobachter (simulierte Roboter) im Ensemble, der mit größerer Wahrscheinlichkeit der Grundwahrheit entspricht, kann als die am besten geeignete Darstellung des echten Roboters ausgewählt werden. In einigen Ausführungsformen können Beobachter (simulierte Roboter) im Ensemble dazu beitragen, die bestmögliche Darstellung des echten Roboters zu erhalten, basierend darauf, wie ihre individuelle Beschreibung der Umgebung mit der durchgeführten Messung übereinstimmt.

In einigen Ausführungsformen kann der Prozessor ein Ensemble hypothetischer Positionen verschiedener simulierter Roboter innerhalb der Umgebung generieren. In einigen Ausführungsformen kann der Prozessor eine simulierte Darstellung der Umgebung für jede hypothetische Position des Roboters aus der Perspektive generieren, die jeder hypothetischen Position entspricht. In einigen Ausführungsformen kann der Prozessor die Messung mit jeder simulierten Darstellung der Umgebung (z. B. einer Bodentypkarte, einer räumlichen Karte, einer Wi-Fi-Karte usw.) vergleichen, die einer Perspektive jeder der hypothetischen Positionen der Umgebung entspricht Roboter. In einigen Ausführungsformen kann der Prozessor die hypothetische Position des Roboters, die am sinnvollsten ist, als die realistischste Position des Roboters auswählen. In einigen Ausführungsformen kann der Prozessor zusätzliche hypothetische Positionen des Roboters als Ersatz für die am besten geeignete Position des Roboters auswählen. In einigen Ausführungsformen kann der Prozessor eine oder mehrere hypothetische Positionen als möglichen Anführer oder anderweitig mögliche Position des Roboters benennen. In einigen Ausführungsformen kann der Prozessor eine hypothetische Position des Roboters als möglichen Anführer benennen, wenn die Messung gut mit der simulierten Darstellung der Umgebung übereinstimmt, die der Perspektive der hypothetischen Position entspricht. In einigen Ausführungsformen kann der Prozessor die Nominierung einer hypothetischen Position auf andere hypothetische Positionen des Roboters verschieben. In einigen Ausführungsformen können die hypothetischen Positionen mit der höchsten Anzahl an Zurückstellungen als mögliche Leiter ausgewählt werden. In einigen Ausführungsformen kann der Prozess des Vergleichens von Messungen mit simulierten Darstellungen der Umgebung, die den Perspektiven verschiedener hypothetischer Positionen des Roboters entsprechen, der Nominierung hypothetischer Positionen als mögliche Anführer und der Auswahl der hypothetischen Position, die die am besten realisierbare Position des Roboters darstellt, sein iterativ. In einigen Fällen kann der Prozessor die hypothetische Position mit der geringsten Abweichung zwischen der Messung und der simulierten Darstellung der Umgebung auswählen, die der Perspektive der hypothetischen Position als Anführer entspricht. In einigen Ausführungsformen kann der Prozessor eine oder mehrere hypothetische Positionen speichern, die nach einer weiteren Bewegung des Roboters nicht als Anführer für eine weitere Iterationsrunde ausgewählt werden. In anderen Fällen eliminiert der Prozessor möglicherweise eine oder mehrere hypothetische Positionen, die nicht als Anführer gewählt wurden, oder eliminiert einen Teil und speichert einen Teil für die nächste Iterationsrunde. In manchen Fällen kann der Prozessor den Teil der einen oder mehreren hypothetischen Positionen auswählen, der auf der Grundlage eines oder mehrerer Kriterien gespeichert wird. In einigen Fällen kann der Prozessor den Teil der hypothetischen Positionen, die zufällig und auf der Grundlage eines oder mehrerer Kriterien gespeichert werden, auswählen. In manchen Fällen kann der Prozessor einige der hypothetischen Positionen des Roboters eliminieren, die das eine oder die mehreren Kriterien erfüllen. In einigen Ausführungsformen kann der Prozessor das Ensemble hypothetischer Positionen des Roboters ähnlich einem genetischen Algorithmus entwickeln. In einigen Ausführungsformen kann der Prozessor einen MDP verwenden, um den Fehler zwischen der Messung und der Darstellung der Umgebung, die jeder hypothetischen Position entspricht, im Laufe der Zeit zu reduzieren, wodurch die Chancen jeder hypothetischen Position, führend zu werden oder zu bleiben, verbessert werden. In einigen Fällen kann der Prozessor die Spieltheorie auf die hypothetischen Positionen der Roboter anwenden, sodass hypothetische Positionen miteinander konkurrieren, wenn es darum geht, Anführer zu werden oder zu bleiben. In einigen Ausführungsformen können hypothetische Positionen miteinander konkurrieren und das Ensemble stellt ein Gleichgewicht dar, bei dem der Anführer, der einer Richtlinie folgt (π), Anführer bleibt, während die anderen hypothetischen Positionen die meiste Zeit ihre aktuellen Positionen beibehalten.

In einigen Ausführungsformen dockt der Roboter ab, um eine Aufgabe auszuführen. In einigen Ausführungsformen führt der Prozessor eine Seed-Lokalisierung durch, während der Roboter die Umgebung wahrnimmt. In einigen Ausführungsformen verwendet der Prozessor einen Chi-Quadrat-Test, um eine Teilmenge von Datenpunkten auszuwählen, die bei der Lokalisierung des Roboters oder der Erstellung der Karte nützlich sein können. In einigen Ausführungsformen generiert der Prozessor des Roboters eine Karte der Umgebung, nachdem er eine Seed-Lokalisierung durchgeführt hat. In einigen Ausführungsformen wird die Lokalisierung des Roboters iterativ verbessert. In einigen Ausführungsformen aggregiert der Prozessor Daten in der Karte, während sie erfasst werden. In einigen Ausführungsformen überträgt der Prozessor die Karte an eine Anwendung eines Kommunikationsgeräts (z. B. damit ein Benutzer darauf zugreifen und sie anzeigen kann), nachdem die Aufgabe abgeschlossen ist.

In einigen Ausführungsformen generiert der Prozessor eine räumliche Darstellung der Umgebung in Form einer Punktwolke aus Sensordaten. In einigen Ausführungsformen kann der Prozessor des Roboters die Umfänge der Umgebung annähern, indem er Umfänge ermittelt, die allen Einschränkungen entsprechen. Zum Beispiel,FEIGE.92Averanschaulicht Punktwolke9200basierend auf Daten von Sensoren des Roboters9201und ungefährer Umfang9202angepasst an die Punktwolke9200für Wände9203einer Umgebung9204. In einigen Ausführungsformen kann der Prozessor des Roboters eine Monte-Carlo-Methode verwenden. In einigen Ausführungsformen ist mehr als ein möglicher Umfang möglich9202entsprechend mehr als einer möglichen Position des Roboters9201kann wie in dargestellt betrachtet werdenFEIGE.92B. Dieser Prozess kann rechenintensiv sein. In einigen Ausführungsformen kann der Prozessor des Roboters einen statistischen Test verwenden, um Punkte aus der Punktwolke herauszufiltern, die keine statistisch signifikanten Informationen liefern. Zum Beispiel,FEIGE.93Averanschaulicht eine Punktwolke9300UndFEIGE.93Bveranschaulicht Punkte9301die möglicherweise herausgefiltert werden, nachdem festgestellt wurde, dass sie keine wesentlichen Informationen liefern. In einigen Ausführungsformen können einige Punkte statistisch unbedeutend sein, wenn überlappende Daten zusammengeführt werden. In einigen Ausführungsformen lokalisiert der Prozessor des Roboters den Roboter anhand der Teilmenge der verbleibenden Punkte, nachdem Punkte herausgefiltert wurden, die möglicherweise keine signifikanten Informationen liefern. In einigen Ausführungsformen erstellt der Prozessor nach der Lokalisierung die Karte unter Verwendung aller Punkte aus der Punktwolke. Da die zur Lokalisierung des Roboters verwendete Teilmenge der Punkte zu einer Karte mit geringerer Auflösung führt, ist der Bereich, in dem sich der Roboter möglicherweise befindet, größer als die tatsächliche Größe des Roboters.FEIGE.94zeigt eine Punktwolkenkarte mit niedriger Auflösung9400mit einer Fläche9401einschließlich möglicher Standorte des Roboters, die insgesamt einen größeren Bereich als die tatsächliche Größe des Roboters umfassen. In einigen Ausführungsformen erstellt der Prozessor nach der Seed-Lokalisierung eine Karte, die alle Punkte der Punktwolke von jedem der möglichen Standorte des Roboters enthält. In einigen Ausführungsformen kann der genaue Standort des Roboters als ein Standort gewählt werden, der allen möglichen Standorten des Roboters gemeinsam ist. In einigen Ausführungsformen kann der Prozessor des Roboters die Überlappung aller angenäherten Standorte des Roboters bestimmen und den genauen Standort des Roboters als einen Standort annähern, der der Überlappung entspricht.FEIGE.95Averanschaulicht zwei mögliche Standorte (A und B) des Roboters und den Mittelpunkt der Überlappung9500Der Abstand zwischen den beiden kann als der genaue Standort des Roboters angenähert werden.FEIGE.95Bzeigt ein Beispiel für drei Standorte des Roboters9501,9502, Und9503basierend auf Sensordaten und Überlappung angenähert7904der drei Standorte9501,9502, Und9503. In einigen Ausführungsformen erstellt der Prozessor nach der Bestimmung eines genauen Standorts des Roboters die Karte unter Verwendung aller Punkte aus der Punktwolke basierend auf dem Standort des Roboters relativ zur Teilmenge von Punkten. In einigen Ausführungsformen untersucht der Prozessor alle Punkte in der Punktwolke. In einigen Ausführungsformen wählt der Prozessor eine Teilmenge von Punkten aus der Punktwolke aus, um zu prüfen, ob ein hohes Vertrauen besteht, dass genügend Punkte vorhanden sind, um die Grundwahrheit darzustellen und Verluste zu vermeiden. In einigen Ausführungsformen kann der Prozessor des Roboters die exakte ursprüngliche Punktwolke verlustfrei regenerieren. In einigen Ausführungsformen akzeptiert der Prozessor einen Verlust als Kompromiss. In einigen Ausführungsformen kann dieser Vorgang mit einer höheren Auflösung wiederholt werden.

In einigen Ausführungsformen verliert der Prozessor des Roboters die Lokalisierung des Roboters, wenn er sich schwer zu navigierenden Bereichen gegenübersieht. Beispielsweise kann der Prozessor die Lokalisierung des Roboters verlieren, wenn der Roboter an einem Bodenübergang stecken bleibt oder wenn der Roboter Schwierigkeiten hat, sich von einem Gegenstand zu befreien, der in einer Bürste oder einem Rad des Roboters verfangen ist. In einigen Ausführungsformen kann der Prozessor mit einem schwierigen Anstieg rechnen und die Fahrgeschwindigkeit des Roboters erhöhen, bevor er sich dem Anstieg nähert. In einigen Ausführungsformen erhöht der Prozessor die Fahrgeschwindigkeit aller Motoren des Roboters, wenn ein Aufstieg fehlschlägt. Wenn ein Roboter beispielsweise an einem Übergang stecken bleibt, kann der Prozessor die Geschwindigkeit aller Motoren des Roboters auf ihre jeweilige Höchstgeschwindigkeit erhöhen. In einigen Ausführungsformen können die Motoren des Roboters mindestens einen Seitenbürstenmotor und einen Hauptbürstenmotor umfassen. In einigen Ausführungsformen kann der Prozessor eine Drehrichtung von mindestens einem Motor des Roboters umkehren (z. B. im oder gegen den Uhrzeigersinn) oder die Drehrichtung von mindestens einem Motor des Roboters ändern. In einigen Ausführungsformen kann das Anpassen der Geschwindigkeit oder Drehrichtung von mindestens einem Motor des Roboters den Roboter und/oder Gegenstände um den Roboter herum bewegen, sodass der Roboter in eine verbesserte Situation übergehen kann.

In einigen Ausführungsformen versucht der Prozessor des Roboters möglicherweise, seine Lokalisierung wiederherzustellen, nachdem er die Lokalisierung des Roboters verloren hat. In einigen Ausführungsformen kann der Prozessor des Roboters mehrmals nacheinander mit derselben Methode oder alternativen Methoden versuchen, die Lokalisierung wiederherzustellen. In einigen Ausführungsformen versucht der Prozessor des Roboters möglicherweise Methoden, die mit hoher Wahrscheinlichkeit zu einem Ergebnis führen, bevor er andere, weniger erfolgreiche Methoden ausprobiert. In einigen Ausführungsformen kann der Prozessor des Roboters die Kartierung und Lokalisierung neu starten, wenn die Lokalisierung nicht wiederhergestellt werden kann.

In einigen Ausführungsformen ordnet der Prozessor jedem Raum Eigenschaften zu, während der Roboter Räume nacheinander entdeckt. In einigen Ausführungsformen werden die Eigenschaften in einem Diagramm oder einem Stapel gespeichert, sodass der Prozessor des Roboters die Lokalisierung wiedererlangen kann, wenn der Roboter in einem Raum verloren geht. Wenn beispielsweise der Prozessor des Roboters die Lokalisierung innerhalb eines Raums verliert, muss der Roboter möglicherweise die Abdeckung innerhalb dieses Raums neu starten. Sobald der Roboter jedoch den Raum verlässt, kann es sein, dass der Prozessor dies weiß, vorausgesetzt, er verlässt ihn durch dieselbe Tür, durch die er ihn betreten hat anhand der Stapelstruktur in den bisherigen Raum eintauchen und so die Lokalisierung wiedergewinnen. In einigen Ausführungsformen verliert der Prozessor des Roboters möglicherweise die Lokalisierung innerhalb eines Raums, weiß aber immer noch, in welchem ​​Raum er sich befindet. In einigen Ausführungsformen kann der Prozessor eine neue Neulokalisierung in Bezug auf den Raum durchführen, ohne eine neue Neulokalisierung für die gesamte Umgebung durchzuführen. In solchen Szenarien führt der Roboter möglicherweise eine neue vollständige Abdeckung des Raums durch. Es kann zu Überlappungen mit zuvor abgedeckten Bereichen innerhalb des Raums kommen. Nach Abschluss der Abdeckung des Raums kann der Roboter jedoch weiterhin gezielt andere Bereiche der Umgebung abdecken. In einigen Ausführungsformen kann der Prozessor des Roboters bestimmen, ob ein Raum bekannt oder unbekannt ist. In einigen Ausführungsformen kann der Prozessor die Eigenschaften des Raums mit den Eigenschaften bekannter Räume vergleichen. Beispielsweise können die Position einer Tür im Verhältnis zu einem Raum, die Größe eines Raums oder andere Merkmale verwendet werden, um festzustellen, ob sich der Roboter in einem Bereich aufgehalten hat oder nicht. In einigen Ausführungsformen passt der Prozessor die Ausrichtung der Karte an, bevor er Vergleiche durchführt. In einigen Ausführungsformen kann der Prozessor beim Durchführen von Vergleichen verschiedene Kartenauflösungen eines Raums verwenden. Beispielsweise können mögliche Kandidaten mithilfe einer Karte mit niedriger Auflösung in die engere Auswahl genommen werden, um eine schnelle Übereinstimmungssuche zu ermöglichen, und dann mithilfe von Karten mit höherer Auflösung weiter eingegrenzt werden. In einigen Ausführungsformen kann ein vollständiger Stapel einschließlich eines Raums, der vom Prozessor als zuvor besucht identifiziert wurde, ebenfalls als Kandidat für einen bereits besuchten Raum in Frage kommen. In einem solchen Fall kann der Prozessor einen neuen Stapel verwenden, um neue Bereiche zu entdecken. In einigen Fällen ermöglicht die Graphentheorie eine detaillierte Analyse dieser Situationen.

In einigen Ausführungsformen beginnt der Roboter möglicherweise nicht mit der Ausführung der Arbeit von einem letzten in der gespeicherten Karte gespeicherten Standort aus. Solche Szenarien können auftreten, wenn sich der Roboter beispielsweise nicht auf einer zuvor gespeicherten Karte befindet. Beispielsweise kann ein Roboter den ersten Stock eines zweistöckigen Hauses reinigen und daher spiegelt die gespeicherte Karte möglicherweise nur den ersten Stock des Hauses wider. Ein Benutzer platziert den Roboter möglicherweise im zweiten Stock des Hauses und der Prozessor kann den Roboter möglicherweise nicht auf der gespeicherten Karte lokalisieren. Der Roboter kann mit der Arbeit beginnen und der Prozessor kann eine neue Karte erstellen. Oder in einem anderen Beispiel kann ein Benutzer den Roboter einer anderen Person leihen. In einem solchen Fall kann der Prozessor den Roboter möglicherweise nicht auf der gespeicherten Karte lokalisieren, da er sich in einem anderen Zuhause als dem des Benutzers befindet. Somit beginnt der Roboter mit der Arbeit. In einigen Fällen kann der Prozessor des Roboters mit dem Erstellen einer neuen Karte beginnen. In einigen Ausführungsformen kann eine neue Karte als separater Eintrag gespeichert werden, wenn die Differenz zwischen einer gespeicherten Karte und der neuen Karte einen bestimmten Schwellenwert überschreitet. In einigen Ausführungsformen umfasst ein Kaltstartvorgang das Abrufen von N Karten aus der Cloud und das Lokalisieren (oder den Versuch, dies zu lokalisieren) des Roboters mithilfe jeder der N Karten. In einigen Ausführungsformen sind solche Vorgänge langsam, insbesondere wenn sie seriell ausgeführt werden. In einigen Ausführungsformen verwendet der Prozessor eine Lokalisierungswiederherstellungsmethode, um den Roboter zu lokalisieren, wenn die Reinigung beginnt. In einigen Ausführungsformen kann die Methode zur Wiederherstellung der Lokalisierung in eine Methode zur Wiederherstellung der globalen Lokalisierung geändert werden. In einigen Ausführungsformen kann das schnelle und robuste Verfahren zur Wiederherstellung der Lokalisierung innerhalb von Sekunden abgeschlossen werden. In einigen Ausführungsformen lädt der Prozessor eine nächste Karte, nachdem die Wiederherstellung der Lokalisierung auf einer aktuellen Karte fehlschlägt, und wiederholt den Prozess des Versuchs, die Lokalisierung wiederherzustellen. In einigen Ausführungsformen kann die gespeicherte Karte nur ein Minimum an nützlichen Informationen enthalten und die niedrigste akzeptable Auflösung haben. Dies kann den Platzbedarf der Karte verringern und somit die Rechen-, Größen- (in Bezug auf die Latenz) und finanziellen Kosten (z. B. für Cloud-Dienste) reduzieren.

In einigen Ausführungsformen ignoriert der Prozessor möglicherweise zumindest einige Elemente (z. B. Begrenzungslinie), die der Karte von einem Benutzer hinzugefügt wurden, wenn er in einer neuen Arbeitssitzung die Lokalisierung wiedererlangt. In einigen Ausführungsformen berücksichtigt der Prozessor möglicherweise nicht alle Merkmale in der Umgebung, um Verwechslungen mit den Wänden in der Umgebung zu vermeiden und gleichzeitig die Lokalisierung wiederherzustellen.

In einigen Ausführungsformen kann der Prozessor Odometrie-, IMU- und OTS-Informationen verwenden, um eine EKF zu aktualisieren. In einigen Ausführungsformen können Schiedsrichter eingesetzt werden. Zum Beispiel ein Multiroom-Schiedsrichterstatus. In einigen Ausführungsformen kann der Roboter die Hardware und dann andere Software initialisieren. In einigen Ausführungsformen kann bei der Initialisierung ein Standardparameter als Startwert bereitgestellt werden. In einigen Ausführungsformen kann der Standardwert durch Messwerte eines Sensors ersetzt werden. In einigen Ausführungsformen kann der Roboter eine anfängliche Zirkulation der Umgebung durchführen. In einigen Ausführungsformen kann die Zirkulation 180 Grad, 360 Grad oder einen anderen Betrag betragen. In einigen Ausführungsformen können Kilometerzählerstände auf die OTS-Werte skaliert werden. In einigen Ausführungsformen kann ein Kilometerzähler/OTS-Korrektor einen angepassten Wert als Ausgabe erzeugen. In einigen Ausführungsformen kann der Kursrotationsversatz berechnet werden.

Weitere Einzelheiten zu Lokalisierungsmethoden, die verwendet werden können, sind in der US-Patentanmeldung Ser. Nr. 16/297.508, 15/955.480, 15/425.130, 15/955.344, 16/509.099, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird.

In einigen Ausführungsformen können die hier beschriebenen SLAM-Methoden zum Nachbilden einer virtuellen räumlichen Realität verwendet werden. In einigen Ausführungsformen kann eine 360-Grad-Erfassung der Umgebung verwendet werden, um eine virtuelle räumliche Realität der Umgebung zu erstellen, in der sich ein Benutzer bewegen kann. In einigen Ausführungsformen kann eine virtuelle räumliche Realität für Spiele verwendet werden. Beispielsweise bewegt sich eine virtuelle oder erweiterte räumliche Realität eines Raumes mit der Schrittgeschwindigkeit eines Benutzers, der die virtuelle räumliche Realität erlebt. In einigen Ausführungsformen kann die Gehgeschwindigkeit des Benutzers mithilfe eines vom Benutzer getragenen Schrittzählers bestimmt werden. In einigen Ausführungsformen kann eine räumliche virtuelle Realität erstellt und später in einem Spiel implementiert werden, wobei sich die räumliche virtuelle Realität auf der Grundlage einer Verschiebung eines Benutzers bewegt, die mithilfe eines vom Benutzer getragenen SLAM-Geräts gemessen wird. In manchen Fällen kann ein SLAM-Gerät genauer sein als ein Schrittzähler, da Schrittzählerfehler durch Scans ausgeglichen werden. In einigen aktuellen Virtual-Reality-Spielen muss ein Benutzer möglicherweise eine zusätzliche Komponente verwenden, z. B. einen Stuhl, der mit dem Spiel synchronisiert wird (z. B. indem er sich bewegt, um das Gefühl einer Achterbahnfahrt zu imitieren), um ein realistischeres Erlebnis zu haben. In der hier beschriebenen räumlichen virtuellen Realität kann ein Benutzer steuern, wohin er sich innerhalb der virtuellen räumlichen Realität bewegt (z. B. nach links, rechts, oben, unten, still bleiben). In einigen Ausführungsformen kann die Bewegung des Benutzers, die mithilfe eines vom Benutzer getragenen SLAM-Geräts gemessen wird, die Reaktion eines vom Benutzer gesehenen Virtual-Spatial-Reality-Videos bestimmen. Wenn ein Benutzer beispielsweise rennt, kann ein Video der virtuellen räumlichen Realität schneller abgespielt werden. Dreht sich der Nutzer nach rechts, zeigt das Video der virtuellen Raumrealität die Bereiche rechts vom Nutzer.

In einigen Ausführungsformen kann der Prozessor des Roboters Bereiche identifizieren, die vom Roboter leicht abgedeckt werden können (z. B. Bereiche ohne oder mit minimalen Hindernissen). Zum Beispiel,FEIGE.96veranschaulicht einen Bereich9600die vom Roboter leicht abgedeckt werden können9601indem Sie dem Boustrophedon-Pfad folgen9602. In einigen Ausführungsformen kann der Weg des Roboters ein Boustrophedon-Weg sein. In einigen Ausführungsformen können Boustrophedon-Pfade leicht modifiziert werden, um eine angenehmere Pfadplanungsstruktur zu ermöglichen. Zum Beispiel,FIG.97A und97Bveranschaulichen Beispiele für einen Boustrophedon-Pfad9700. Angenommen, der Roboter bewegt sich in die entsprechende Richtung9701, der Roboter bewegt sich in einer geraden Linie und am Ende der geraden Linie, gekennzeichnet durch Kreise9703folgt einem gekrümmten Pfad, dreht sich um 180 Grad und bewegt sich entlang einer geraden Linie in die entgegengesetzte Richtung. In einigen Fällen folgt der Roboter einem glatteren Pfadplan, um sich um 180 Grad zu drehen, der durch einen Kreis gekennzeichnet ist9704. In einigen Ausführungsformen erhöht der Prozessor des Roboters die Geschwindigkeit des Roboters, wenn er sich dem Ende einer geraden, rechten Linie nähert, bevor er sich dreht, da der Prozessor mit großer Sicherheit sicher ist, dass es in einem solchen Bereich keine Hindernisse zu überwinden gibt. In einigen Ausführungsformen umfasst der Weg des Roboters das Fahren entlang eines rechteckigen Wegs (z. B. indem er einer Wand folgt) und das Reinigen innerhalb des Rechtecks. In einigen Ausführungsformen kann der Roboter damit beginnen, der Wand zu folgen, und nachdem der Prozessor beispielsweise zwei oder drei Perimeter identifiziert hat, kann der Prozessor den Roboter dann betätigen, um den Bereich innerhalb der Perimeter abzudecken, bevor er den Vorgang wiederholt.

In einigen Ausführungsformen kann der Roboter entlang des Umfangs oder der Oberfläche eines Objekts fahren9800mit einem Winkel wie dem in dargestelltFEIGE.98A. In einigen Ausführungsformen fährt der Roboter möglicherweise mit einer bestimmten Geschwindigkeit und wenn der Roboter um den spitzen Winkel fährt, kann sich der Abstand des Roboters vom Objekt vergrößern, wie in dargestelltFEIGE.98Bmit Objekt9801und Weg9802des Roboters. In einigen Ausführungsformen kann der Prozessor den Abstand des Roboters vom Objekt neu anpassen. In einigen Ausführungsformen kann der Roboter mit einem Winkel wie dem in dargestellt entlang des Umfangs oder der Oberfläche eines Objekts fahrenFEIGE.98Cmit Objekt9803und Weg9804des Roboters. In einigen Ausführungsformen kann der Prozessor des Roboters den Weg des Roboters glätten, wie in dargestelltFEIGE.98Dmit Objekt9803und geebneter Weg9805des Roboters. In einigen Fällen, wie zum Beispiel inFEIGE.98E, kann der Roboter entlang einer Bahn fahren9806angrenzend an den Umfang oder die Oberfläche des Objekts9803und plötzlich an einem Punkt den Umfang oder die Oberfläche des Objekts verfehlen9807wo sich die Richtung des Umfangs oder der Oberfläche ändert. In solchen Fällen hat der Roboter möglicherweise Schwung und eine plötzliche Korrektur ist möglicherweise nicht erwünscht. Durch eine Glättung des Pfades können solche Situationen vermieden werden. In einigen Ausführungsformen kann der Prozessor einen Pfad mit systematischen Diskrepanzen zwischen der Odometrie (Odom) und einem OTS aufgrund der Dynamik des Roboters glätten (z. B. wenn der Roboter aufhört, sich zu drehen).FIG.99A-99Cveranschaulichen ein Beispiel für eine Ausgabe eines EKF (Odom: νX, Nw, Zeitstempel; OTS: νX, Nw, Zeitstempel (in OTS-Koordinaten); und IMU: νw, Zeitstempel) für drei Phasen. In Phase eins, dargestellt inFEIGE.99A, Kilometerzähler, OTS und IMU stimmen darin überein, dass sich der Roboter dreht. In Phase zwei, dargestellt inFEIGE.99B, meldet der Kilometerzähler 0,0 ohne Herunterfahren und mit einer Verzögerung von ~150 ms, während OTS und IMU übereinstimmen, dass sich der Roboter bewegt. Die EKF lehnt den Kilometerzähler ab. Solche Diskrepanzen können behoben werden, indem die Verlangsamungsphase des Roboters geglättet wird, um den Schwung des Roboters auszugleichen.FEIGE.99Cveranschaulicht Phase drei, in der Kilometerzähler, OTS und IMU eine geringe (oder keine) Bewegung des Roboters melden.

In einigen Ausführungsformen kann ein TSSP- oder LED-IR-Ereignis erkannt werden, während der Roboter einen Pfad innerhalb der Umgebung entlang fährt. Beispielsweise kann ein TSSP-Ereignis erkannt werden, wenn ein Hindernis auf der rechten Seite des Roboters beobachtet wird, und kann als (L: 0 ​​R: 1) an ein Steuermodul weitergeleitet werden. In einigen Ausführungsformen kann der Prozessor neu entdeckte Hindernisse (z. B. statische und dynamische Hindernisse) und/oder Klippen zur Karte hinzufügen, wenn er während der Abdeckung unerwartet (oder erwartet) angetroffen wird. In einigen Ausführungsformen kann der Prozessor den Weg des Roboters anpassen, wenn er ein Hindernis erkennt.

In einigen Ausführungsformen kann ein Pfadausführer dem Roboter befehlen, für eine aufeinanderfolgende Anzahl von Sekunden einem geraden oder gekrümmten Pfad zu folgen. In manchen Fällen kann es sein, dass der Pfadausführer aus verschiedenen Gründen beendet wird, beispielsweise weil er das Ziel erreicht hat. In einigen Ausführungsformen kann ein Kurven-zu-Punkt-Pfad geplant werden, um den Roboter von einem aktuellen Standort zu einem gewünschten Standort zu fahren und dabei einen größeren Pfad zu absolvieren. In manchen Ausführungsformen kann das Reisen entlang einer geplanten Route undurchführbar sein. Beispielsweise kann das Durchfahren einer nächsten geplanten gekrümmten oder geraden Bahn durch den Roboter nicht durchführbar sein. In einigen Ausführungsformen kann der Prozessor verschiedene Machbarkeitsbedingungen verwenden, um zu bestimmen, ob ein Pfad vom Roboter überquert werden kann. In einigen Ausführungsformen kann die Machbarkeit für die jeweiligen Abmessungen des Roboters bestimmt werden.

In einigen Ausführungsformen kann der Prozessor des Roboters die Karte (z. B. Standorte von Räumen, Anordnung von Bereichen usw.) verwenden, um eine effiziente Abdeckung der Umgebung zu bestimmen. In einigen Ausführungsformen kann sich der Prozessor dafür entscheiden, zuerst in näheren Räumen zu arbeiten, da das Reisen in entferntere Räume belastend sein kann und/oder mehr Zeit und Batterielebensdauer erfordern kann. Beispielsweise kann sich der Prozessor eines Roboters dafür entscheiden, das erste Schlafzimmer eines Hauses zu reinigen, wenn er feststellt, dass die Wahrscheinlichkeit eines dynamischen Hindernisses im Heimbüro hoch und die Wahrscheinlichkeit eines dynamischen Hindernisses im ersten Schlafzimmer sehr gering ist. Allerdings liegt das erste Schlafzimmer in einem Grundriss des Hauses mehrere Räume vom Roboter entfernt. Im Interesse einer optimalen Betriebseffizienz kann sich der Verarbeiter daher dafür entscheiden, den Flur, einen Waschraum und ein zweites Schlafzimmer zu reinigen, jeweils auf dem Weg zum ersten Schlafzimmer. In einem alternativen Szenario kann der Prozessor feststellen, dass im Flur und im Waschraum eine geringe Wahrscheinlichkeit für ein dynamisches Hindernis besteht und dass im zweiten Schlafzimmer eine höhere Wahrscheinlichkeit für ein dynamisches Hindernis besteht, und kann sich daher dafür entscheiden, den Flur und den Waschraum zu reinigen, bevor er prüft, ob ein dynamisches Hindernis vorhanden ist ist ein dynamisches Hindernis im zweiten Schlafzimmer. Alternativ kann der Prozessor nach der Reinigung des Flurs und des Waschraums das zweite Schlafzimmer überspringen und nach der Reinigung des ersten Schlafzimmers prüfen, ob das zweite Schlafzimmer gereinigt werden sollte.

In einigen Ausführungsformen kann der Prozessor die Messwerte von Hindernissensoren verwenden, um die Abdeckung einer Umgebung zu bestimmen. In einigen Ausführungsformen können Hindernisse mithilfe der Daten eines Tiefensensors entdeckt werden, wenn sich der Tiefensensor den Hindernissen aus verschiedenen Blickwinkeln und Entfernungen nähert. In einigen Ausführungsformen kann der Tiefensensor aktive oder passive Tiefenerfassungsmethoden verwenden, wie etwa Fokussierung und Defokussierung, IR-Reflexionsintensität (d. h. Leistung), IR (oder nahe IR oder sichtbares), strukturiertes Licht, IR (oder nahe IR oder). sichtbar) Laufzeit (z. B. 2D-Messung und Tiefe), IR-Laufzeit-Einzelpixelsensor oder eine beliebige Kombination davon. In einigen Ausführungsformen kann der Tiefensensor passive Methoden verwenden, wie sie beispielsweise in Bewegungsmeldern und IR-Wärmebildern (z. B. in 2D) verwendet werden. In einigen Ausführungsformen können Stereovision, Polarisationstechniken, eine Kombination aus strukturiertem Licht und Stereovision und andere Methoden verwendet werden. In einigen Ausführungsformen deckt der Roboter zunächst Bereiche mit geringer Hindernisdichte ab und führt dann eine robuste Abdeckung durch. In einigen Ausführungsformen umfasst eine robuste Abdeckung die Abdeckung von Bereichen mit hoher Hindernisdichte. In einigen Ausführungsformen kann der Roboter eine robuste Abdeckung durchführen, bevor er eine Abdeckung mit geringer Dichte durchführt. In einigen Ausführungsformen deckt der Roboter nacheinander offene Bereiche (oder Bereiche mit geringer Hindernisdichte) ab, führt eine Wandverfolgung aus, deckt Bereiche mit hoher Hindernisdichte ab und navigiert dann zurück zu seiner Ladestation. In einigen Ausführungsformen kann der Prozessor des Roboters einen Benutzer benachrichtigen (z. B. über eine Anwendung eines Kommunikationsgeräts), wenn ein Bereich zu komplex für die Abdeckung ist, und kann dem Benutzer vorschlagen, diesen Bereich zu überspringen oder die Navigation des Roboters manuell zu steuern (z. B. B. ein autonomes Fahrzeug manuell steuern oder einen Roboter-Oberflächenreiniger manuell mit einer Fernbedienung bedienen).

In einigen Ausführungsformen kann der Prozessor bei der Bestimmung der Abdeckung ein beobachtetes Aktivitätsniveau in Bereichen der Umgebung verwenden. Beispielsweise kann ein Prozessor eines Oberflächenreinigungsroboters der konsequenten Reinigung eines Wohnzimmers Priorität einräumen, wenn im Wohnzimmer ein hohes Maß an menschlicher Aktivität beobachtet wird, da es im Vergleich zu einem Bereich mit geringerer menschlicher Aktivität eher schmutzig wird. In einigen Ausführungsformen kann der Prozessor des Roboters erkennen, wenn ein Haus oder Raum von einem Menschen (oder Tier) bewohnt wird. In einigen Ausführungsformen kann der Prozessor eine bestimmte Person identifizieren, die sich in einem Bereich aufhält. In einigen Ausführungsformen kann der Prozessor die Anzahl der Personen identifizieren, die einen Bereich bewohnen. In einigen Ausführungsformen kann der Prozessor einen Bereich als besetzt erkennen oder eine bestimmte Person identifizieren, basierend auf der Aktivität von Lichtern innerhalb des Bereichs (z. B. ob Lichter eingeschaltet sind), Gesichtserkennung, Spracherkennung und Benutzermustererkennung, die anhand von gesammelten Daten bestimmt werden ein Sensor oder eine Kombination von Sensoren. In einigen Ausführungsformen kann der Roboter einen Menschen (oder andere Objekte mit unterschiedlichem Material und unterschiedlicher Textur) mithilfe von Beugung erkennen. In einigen Fällen verwendet der Roboter möglicherweise ein Spektrometer, ein Gerät, das sich das Konzept der Beugung zunutze macht, um Objekte wie Menschen und Tiere zu erkennen. Ein Spektrometer nutzt die Beugung (und die anschließende Interferenz) von Licht von Schlitzen, um Wellenlängen zu trennen, sodass schwache Energiespitzen bei bestimmten Wellenlängen erkannt und aufgezeichnet werden können. Daher können die von einem Spektrometer gelieferten Ergebnisse zur Unterscheidung eines Materials oder einer Textur und damit eines Objekttyps verwendet werden. Die Ausgabe eines Spektrometers kann beispielsweise zur Identifizierung von Flüssigkeiten, Tieren oder Hunden verwendet werden. In einigen Ausführungsformen kann die Erkennung eines bestimmten Ereignisses durch verschiedene Sensoren des Roboters oder anderer intelligenter Geräte innerhalb des Bereichs in einem bestimmten Muster oder in einer bestimmten Reihenfolge die Zuverlässigkeit der Erkennung des bestimmten Ereignisses erhöhen. Beispielsweise kann das Erkennen des Öffnens oder Schließens von Türen darauf hinweisen, dass eine Person ein Haus betritt oder verlässt, während das Erkennen von Funksignalen von einem bestimmten Smartphone, das versucht, sich einem drahtlosen Netzwerk anzuschließen, darauf hindeuten kann, dass eine bestimmte Person im Haushalt oder ein Fremder das Haus betritt. In einigen Ausführungsformen kann das Erkennen eines Ereignismusters innerhalb eines Zeitfensters oder dessen Fehlen eine Aktion des Roboters auslösen. Beispielsweise kann die Erkennung einer Smartphone-MAC-Adresse, die einem Heimnetzwerk unbekannt ist, den Roboter dazu veranlassen, sich am Eingang des Hauses zu positionieren, um Fotos von einer Person zu machen, die das Haus betritt. Das Bild kann mit einer Reihe von Merkmalen von Besitzern oder Personen verglichen werden, die der Roboter zuvor getroffen hat, und kann in einigen Fällen zur Identifizierung einer bestimmten Person führen. Wenn ein Benutzer nicht identifiziert wird, können die Merkmale weiter auf Gemeinsamkeiten mit den Eigentümern analysiert werden, um ein Geschwister oder einen Elternteil oder ein Geschwister eines häufigen Besuchers zu identifizieren. In einigen Fällen kann das Bild mit in einer Datenbank gespeicherten Merkmalen lokaler Krimineller verglichen werden.

In einigen Ausführungsformen kann der Prozessor bei der Bestimmung einer Priorisierung von Räumen für die Reinigung eine in der Vergangenheit gesammelte oder beobachtete Menge an Schmutz an verschiedenen Orten in der Umgebung verwenden. In einigen Ausführungsformen kann die in der Umgebung gesammelte oder beobachtete Menge an Schmutz katalogisiert und einem Benutzer zur Verfügung gestellt werden. In einigen Ausführungsformen kann der Benutzer Bereiche zur Reinigung basierend auf den ihm bereitgestellten Schmutzdaten auswählen.

In einigen Ausführungsformen kann der Prozessor einen Durchfahrbarkeitsalgorithmus verwenden, um verschiedene Bereiche zu bestimmen, die vom Roboter sicher durchquert werden können, woraus ein Abdeckungsplan des Roboters entnommen werden kann. In einigen Ausführungsformen erhält der Verfahrbarkeitsalgorithmus einen Teil der Daten aus der Karte, die den Bereichen rund um den Roboter zu einem bestimmten Zeitpunkt entsprechen. In einigen Ausführungsformen umfasst die mehrdimensionale und dynamische Karte eine globale und lokale Karte der Umgebung, die sich ständig in Echtzeit ändert, wenn neue Daten erfasst werden. In einigen Ausführungsformen umfasst die globale Karte alle globalen Sensordaten (z. B. LIDAR-Daten, Tiefensensordaten) und die lokale Karte enthält alle lokalen Sensordaten (z. B. Hindernisdaten, Klippendaten, Trümmerdaten, frühere Stände, Bodenübergangsdaten). Bodentypdaten usw.). In einigen Ausführungsformen kann der Durchquerbarkeitsalgorithmus einen besten zweidimensionalen Abdeckungsbereich basierend auf dem aus der Karte entnommenen Datenanteil bestimmen. Die Größe, Form, Ausrichtung, Position usw. des zweidimensionalen Abdeckungsbereichs können sich in jedem Intervall ändern, abhängig vom Datenanteil, der der Karte entnommen wird. In einigen Ausführungsformen kann der zweidimensionale Abdeckungsbereich ein Rechteck oder eine andere Form sein. In einigen Ausführungsformen wird ein rechteckiger Abdeckungsbereich so gewählt, dass er mit den Wänden der Umgebung übereinstimmt.FEIGE.100veranschaulicht ein Beispiel eines Abdeckungsbereichs10000für Roboter10001innerhalb der Umgebung10002. In einigen Ausführungsformen können die ausgewählten Abdeckungsbereiche unterschiedliche Formen und Größen haben. Zum Beispiel,FEIGE.101veranschaulicht einen Abdeckungsbereich10100für Roboter10001mit einer anderen Form innerhalb der Umgebung10002.

In einigen Ausführungsformen verwendet der Durchquerbarkeitsalgorithmus eine simulierte Glühtechnik, um mögliche zweidimensionale Abdeckungsbereiche (z. B. unterschiedliche Positionen, Ausrichtungen, Formen, Größen usw. von zweidimensionalen Abdeckungsbereichen) zu bewerten und einen besten zweidimensionalen Abdeckungsbereich auszuwählen ( z. B. der zweidimensionale Abdeckungsbereich, der eine einfachste Abdeckung durch den Roboter ermöglicht). In Ausführungsformen kann simuliertes Tempern den Prozess des Aufheizens eines Systems und des langsamen Abkühlens des Systems auf kontrollierte Weise modellieren. Wenn ein System während des Temperns erhitzt wird, kann die Wärme jeder Energiekomponente jedes Moleküls eine Zufälligkeit verleihen. Infolgedessen kann jede Energiekomponente eines Moleküls vorübergehend einen energetisch ungünstigen Wert annehmen und das Gesamtsystem kann Konfigurationen mit hoher Energie erkunden. Wenn die Temperatur des Systems allmählich gesenkt wird, kann die Entropie des Systems allmählich verringert werden, da die Moleküle besser organisiert werden und eine Anordnung mit niedriger Energie annehmen. Wenn die Temperatur sinkt, erhöht sich möglicherweise auch die Wahrscheinlichkeit, dass das System eine optimale Konfiguration findet. Schließlich kann sich die Entropie des Systems gegen Null bewegen, wobei die Zufälligkeit der Moleküle minimiert wird und eine optimale Konfiguration gefunden werden kann.

Beim simulierten Tempern kann ein Ziel darin bestehen, das System von einem Anfangszustand in einen Zustand mit minimal möglicher Energie zu bringen. Letztendlich kann die Glühsimulation verwendet werden, um eine Annäherung an ein globales Minimum für eine Funktion mit vielen Variablen zu finden, wobei die Funktion analog zur inneren Energie des Systems in einem bestimmten Zustand sein kann. Das Tempern kann effektiv sein, da das System selbst bei mäßig hohen Temperaturen leicht Regionen im Konfigurationsraum bevorzugt, die insgesamt eine niedrigere Energie haben und daher eher das globale Minimum enthalten. Bei jedem Zeitschritt der Glühsimulation kann ein benachbarter Zustand eines aktuellen Zustands ausgewählt werden und der Prozessor kann probabilistisch entscheiden, ob er in den benachbarten Zustand wechseln oder im aktuellen Zustand bleiben soll. Schließlich bewegt sich der simulierte Glühalgorithmus in Richtung von Zuständen mit niedrigerer Energie und die Glühsimulation kann abgeschlossen sein, sobald ein angemessener Zustand (oder eine angemessene Energie) erreicht ist.

In einigen Ausführungsformen klassifiziert der Durchfahrbarkeitsalgorithmus die Karte in Bereiche, zu denen der Roboter navigieren, die er durchqueren und die er arbeiten kann. In einigen Ausführungsformen kann der Durchquerbarkeitsalgorithmus stochastische oder andere Methoden verwenden, um eine X-, Y-, Z-, K-, L- usw. Position der Karte in eine Klasse einer Durchquerbarkeitskarte zu klassifizieren. Für Karten niedrigerer Dimensionen kann der Prozessor des Roboters analytische Methoden wie Ableitungen und das Lösen von Gleichungen verwenden, um optimale Modellparameter zu finden. Da die Modelle jedoch immer komplizierter werden, verwendet der Prozessor des Roboters möglicherweise lokale Ableitungen und Gradientenmethoden, beispielsweise in neuronalen Netzen und Maximum-Likelihood-Methoden. In einigen Ausführungsformen kann es mehrere Maxima geben, daher kann der Prozessor mehrere Suchvorgänge von unterschiedlichen Startbedingungen aus durchführen. Im Allgemeinen steigt die Sicherheit einer Entscheidung mit zunehmender Anzahl von Suchen oder Simulationen. In einigen Ausführungsformen verwendet der Prozessor möglicherweise naive Ansätze. In einigen Ausführungsformen kann der Prozessor eine Suche auf Bereiche ausrichten, in denen die Lösung voraussichtlich liegt, und kann einen Grad an Zufälligkeit implementieren, um einen besten oder nahezu besten Parameter zu finden. In einigen Ausführungsformen kann der Prozessor Boltzman-Lern- oder genetische Algorithmen unabhängig oder in Kombination verwenden.

In einigen Ausführungsformen kann der Prozessor das System als Netzwerk von Knoten mit bidirektionalen Verbindungen modellieren. In einigen Ausführungsformen können bidirektionale Verbindungen entsprechende Gewichtungen w habenij=wji. In einigen Ausführungsformen kann der Prozessor das System als eine Sammlung von Zellen modellieren, wobei ein einer Zelle zugewiesener Wert die Übertragbarkeit zu einer bestimmten benachbarten Zelle angibt. In einigen Ausführungsformen können Werte bereitgestellt werden, die die Durchquerbarkeit von der Zelle zu jeder benachbarten Zelle angeben. Der Wert, der die Durchgängigkeit angibt, kann binär sein oder eine Gewichtung sein, die einen Grad (oder eine Wahrscheinlichkeit) der Durchgängigkeit angibt. In einigen Ausführungsformen kann der Prozessor jeden Knoten als Magnet modellieren, das Netzwerk aus N Knoten als N Magneten modellieren und jeder Magnet einen Nordpol und einen Südpol haben. In einigen Ausführungsformen sind die Gewichte wij Funktionen des Abstands zwischen den Magneten. In einigen Ausführungsformen trägt ein Magnet i, der nach oben zeigt, in die gleiche Richtung wie das Magnetfeld, eine kleine positive Energie zum Gesamtsystem bei und hat einen Zustandswert sich=+1 und ein nach unten gerichteter Magnet i trägt eine kleine negative Energie zum Gesamtsystem bei und hat einen Zustandswert sich=−1. Daher ist die Gesamtenergie der Ansammlung von N Magneten proportional zur Gesamtzahl der nach oben gerichteten Magnete. Die Wahrscheinlichkeit, dass das System eine bestimmte Gesamtenergie hat, kann mit der Anzahl der Konfigurationen des Systems zusammenhängen, die zu derselben positiven Energie oder derselben Anzahl nach oben gerichteter Magnete führen. Das höchste Energieniveau hat nur eine einzige mögliche Konfiguration, d. h.

( N N ich ) = ( N 0 ) = 1
wobei Nichist die Anzahl der nach unten gerichteten Magnete. Im zweithöchsten Energieniveau zeigt ein einzelner Magnet nach unten. Jeder einzelne Magnet der Magnetsammlung kann derjenige sein, der nach unten zeigt. Im dritthöchsten Energieniveau zeigen zwei Magnete nach unten. Die Wahrscheinlichkeit, dass das System das dritthöchste Energieniveau aufweist, hängt von der Anzahl der Systemkonfigurationen ab, bei denen nur zwei Magnete nach unten zeigen, d. h.

( N 2 ) = N ( N - 1 ) 2 .
Die Zahl der möglichen Konfigurationen nimmt mit zunehmender Zahl der nach unten gerichteten Magnete exponentiell ab, ebenso wie der Boltzman-Faktor.

In einigen Ausführungsformen weist das modellierte System eine große Anzahl von Magneten N auf, von denen jeder einen Zustand s aufweistichfür i=1, . . . , N. In einigen Ausführungsformen kann der Wert jedes Zustands einer von zwei booleschen Werten sein, beispielsweise ±1, wie oben beschrieben. In einigen Ausführungsformen bestimmt der Prozessor die Werte der Zuständeichdie eine Kosten- oder Energiefunktion minimieren. In einigen Ausführungsformen kann die Energiefunktion sein

E = - 1 2 ich , J = 1 N w ich J S ich S J ,
wobei das Gewicht wijkann positiv oder negativ sein. In einigen Ausführungsformen eliminiert der Prozessor Selbstrückmeldungsterme (d. h. wii=0) als Nicht-Null-Werte für wiiFügen Sie der Funktion E eine Konstante hinzu, die unabhängig von s keine Bedeutung hatich. In einigen Ausführungsformen bestimmt der Prozessor eine Wechselwirkungsenergie

E ich J = - 1 2 w ij S ich S J ,
zwischen benachbarten Magneten basierend auf ihren Zuständen, ihrem Abstand und anderen physikalischen Eigenschaften. In einigen Ausführungsformen bestimmt der Prozessor eine Energie eines gesamten Systems durch das Integral aller Energien, die innerhalb des Systems interagieren. In einigen Ausführungsformen bestimmt der Prozessor die Konfiguration der Magnetzustände, die das niedrigste Energieniveau und somit die stabilste Konfiguration aufweist. In einigen Ausführungsformen hat der Raum 2Nmögliche Konfigurationen. Angesichts der großen Anzahl möglicher Konfigurationen kann die Bestimmung der Konfiguration mit dem niedrigsten Energieniveau rechenintensiv sein. In einigen Fällen kann die Verwendung eines Greedy-Algorithmus dazu führen, dass man in lokalen Energieminima stecken bleibt oder nie konvergiert. In einigen Ausführungsformen bestimmt der Prozessor eine Wahrscheinlichkeit

P ( C ) = e - E C / T Z ( T )
des Systems mit einer (diskreten) Konfiguration γ mit der Energie Eγ bei der Temperatur T, wobei Z(T) eine Normalisierungskonstante ist. Der Zähler der Wahrscheinlichkeit P(γ) ist der Boltzmann-Faktor und der Nenner Z(T) ist durch die Partitionsfunktion Σe gegeben−EC/T. Die Summe der Boltzmann-Konstante für alle möglichen Konfigurationen Z(T)=Σe−EC/Tgarantiert, dass die Gleichung eine wahre Wahrscheinlichkeit darstellt. Angesichts der Vielzahl möglicher Konfigurationen, 2N, Z(T) darf nur für einfache Fälle bestimmt werden.

In einigen Ausführungsformen kann der Prozessor einen Boustrophedon-Pfad an den ausgewählten zweidimensionalen Abdeckungsbereich anpassen, indem er die längeren Segmente des Boustrophedon-Pfads, die sich von einer Seite des Abdeckungsbereichs zur anderen kreuzen, verkürzt oder verlängert und einige davon hinzufügt oder entfernt längere Segmente des Boustrophedon-Pfades unter Beibehaltung eines gleichen Abstands zwischen den längeren Segmenten, unabhängig vom gewählten zweidimensionalen Abdeckungsbereich (z. B. oder durch Anpassen von Parametern, die den Boustrophedon-Pfad definieren). Da die Karte dynamisch ist und sich aufgrund von Echtzeitbeobachtungen ständig ändert, ist der zweidimensionale Abdeckungsbereich polymorph und ändert sich ebenfalls ständig (z. B. Form, Größe, Position, Ausrichtung usw.). Daher ist der Bewegungspfad des Boustrophedons polymorph und verändert sich ständig (z. B. Ausrichtung, Segmentlänge, Anzahl der Segmente usw.). In einigen Ausführungsformen kann ein Abdeckungsbereich ausgewählt werden und ein Boustrophedon-Pfad kann in Echtzeit auf der Grundlage von Echtzeitbeobachtungen daran angepasst werden. Während der Roboter den Pfadplan ausführt (d. h. die Abdeckung des Abdeckungsbereichs über den Boustrophedon-Pfad) und zusätzliche Bereiche entdeckt, kann der Pfadplan polymorphisiert werden, wobei der Prozessor den ursprünglichen Pfadplan mit einem angepassten Pfadplan überschreibt (z. B. angepasster Abdeckungsbereich usw.). Boustrophedon-Pfad). Zum Beispiel,FEIGE.102veranschaulicht einen Pfadplan, der dreimal polymorphisiert ist. Zunächst ein kleines Rechteck10200Als Abdeckungsgebiet wird ein Boustrophedonpfad gewählt10201wird an das kleine Rechteck angepasst10200. Nachdem jedoch weitere Informationen erhalten wurden, wird eine Überschreibung des ursprünglichen Pfadplans (z. B. Abdeckungsbereich und Pfad) ausgeführt und somit polymorphisiert, was zum Abdeckungsbereich führt10200vergrößert sich bis zum Rechteck10202. Daher die zweite Boustrophedon-Reihe10203wird an einen größeren Abdeckungsbereich angepasst10202. Dies geschieht ein weiteres Mal, was zu einem größeren Abdeckungsbereich führt10204und größerer Boustrophedon-Pfad10205vom Roboter ausgeführt10206.

In einigen Ausführungsformen kann der Prozessor eine Machbarkeitsfunktion, eine probabilistische Methode, verwenden, um mögliche Abdeckungsbereiche zu bewerten und Bereiche zu bestimmen, in denen der Roboter eine angemessene Chance auf eine erfolgreiche Traverse (oder einen erfolgreichen Aufstieg) haben könnte. In einigen Ausführungsformen kann die Machbarkeitsfunktion für die jeweiligen Radabmessungen und andere mechanische Eigenschaften des Roboters bestimmt werden. In einigen Ausführungsformen können die mechanischen Eigenschaften konfigurierbar sein. Zum Beispiel,FEIGE.103veranschaulicht einen Weg10300vom Roboter befahrbar, da alle Z-Werte (die die Höhe angeben) innerhalb der Zellen fünf sind und die besonderen Radabmessungen und mechanischen Eigenschaften des Roboters es dem Roboter ermöglichen, Bereiche mit einem Z-Wert von fünf zu überwinden.FEIGE.104zeigt ein weiteres Beispiel für einen überfahrbaren Pfad10400. In diesem Fall ist der Pfad befahrbar, da die Werte von z allmählich ansteigen, wodurch der Bereich für den Roboter erklimmbar (oder befahrbar) wird.FEIGE.105veranschaulicht ein Beispiel für einen Pfad10500die vom Roboter nicht überquert werden kann, da der Wert von z zwischen zwei benachbarten Zellen plötzlich ansteigt.FEIGE.106veranschaulicht eine Anpassung des Pfades10500illustriert inFEIGE.105das vom Roboter überquert werden kann.FEIGE.107zeigt Beispiele für Bereiche, die vom Roboter durchquert werden können10700aufgrund der allmählichen Steigung/Gefälle oder der Größe des Rades10701des Roboters10700bezogen auf den Bereich, in dem eine Höhenänderung beobachtet wird.FEIGE.108zeigt Beispiele für Bereiche, die vom Roboter nicht befahren werden können10700aufgrund der allmählichen Steigung/Gefälle oder der Größe des Rades10701des Roboters10700bezogen auf den Bereich, in dem eine Höhenänderung beobachtet wird. In einigen Ausführungsformen kann der Z-Wert jeder Zelle positiv oder negativ sein und einen Abstand relativ zu einer Nullpunktebene darstellen.

In einigen Ausführungsformen kann ein Algorithmus im Voraus über ein neuronales Netzwerk trainiert werden, um Bereiche mit hoher Wahrscheinlichkeit, durchquerbar zu sein, und Bereiche mit geringer Wahrscheinlichkeit, durchquerbar zu sein, zu identifizieren. In einigen Ausführungsformen kann der Prozessor einen Echtzeitklassifikator verwenden, um die Wahrscheinlichkeit des Durchquerens eines Gebiets zu ermitteln. In einigen Ausführungsformen können Voreingenommenheit und Varianz angepasst werden, um es dem Prozessor des Roboters zu ermöglichen, unterwegs zu lernen oder frühere Lehren zu verwenden. In einigen Ausführungsformen kann der maschinell erlernte Algorithmus verwendet werden, um aus Fehlern zu lernen und die bei der Pfadplanung für aktuelle und zukünftige Arbeitssitzungen verwendeten Informationen zu verbessern. In einigen Ausführungsformen können überquerbare Bereiche zunächst in einer Trainingsarbeitssitzung bestimmt werden und am Ende der Schulung kann ein Wegplan erstellt und in den folgenden Arbeitssitzungen befolgt werden. In einigen Ausführungsformen können befahrbare Bereiche in aufeinanderfolgenden Arbeitssitzungen angepasst und ausgebaut werden. In einigen Ausführungsformen können Bias und Varianz angepasst werden, um zu bestimmen, wie abhängig der Algorithmus vom Training ist und wie abhängig der Algorithmus von neuen Erkenntnissen ist. Ein niedriger Wert des Bias-Varianz-Verhältnisses kann verwendet werden, um festzustellen, dass die neu erlernten Daten nicht als verlässlich gelten. Dies kann jedoch zum Verlust einiger wertvoller, in Echtzeit erlernter Informationen führen. Ein hohes Bias-Varianz-Verhältnis kann darauf hindeuten, dass man sich vollständig auf die neuen Daten verlässt. Dies kann jedoch dazu führen, dass neue Erkenntnisse das anfängliche Klassifizierungstraining verfälschen. In einigen Ausführungsformen kann ein Überwachungsalgorithmus, der ständig Daten aus der Cloud und/oder von Robotern in einer Flotte empfängt (z. B. Echtzeiterfahrungen), dynamisch ein Bias-Varianz-Verhältnis bestimmen.

In einigen Ausführungsformen können Daten von mehreren Sensorklassen zur Bestimmung der Durchquerbarkeit eines Bereichs verwendet werden. In einigen Ausführungsformen kann ein von einer Kamera aufgenommenes Bild zur Bestimmung der Durchquerbarkeit eines Bereichs verwendet werden. In einigen Ausführungsformen kann eine einzelne Kamera verwendet werden, die unterschiedliche Filter und Beleuchtungen in unterschiedlichen Zeitstempeln verwenden kann. Beispielsweise kann ein Bild ohne aktive Beleuchtung aufgenommen werden und atmosphärische Beleuchtung verwenden. Dieses Bild kann für einige Beobachtungen der Umgebung verwendet werden. Viele Algorithmen können verwendet werden, um verwertbare Informationen aus einem von der Umgebung aufgenommenen Bild zu extrahieren. In einem nächsten Zeitstempel kann das erfasste Bild der Umgebung beleuchtet werden. In einigen Ausführungsformen kann der Prozessor einen Unterschied zwischen den beiden Bildern nutzen, um zusätzliche Informationen zu extrahieren. In einigen Ausführungsformen kann strukturierte Beleuchtung verwendet werden und der Prozessor kann Tiefeninformationen mithilfe verschiedener Methoden extrahieren. In einigen Ausführungsformen kann der Prozessor ein mit einem ersten Zeitstempel erfasstes Bild (z. B. mit oder ohne Beleuchtung oder mit strukturierter Lichtbeleuchtung) a priori in einem Bayes'schen System verwenden. Im Seitenzahnbereich kann jede der oben genannten Methoden angewendet werden. In einigen Ausführungsformen kann der Prozessor eine Fahroberflächenebene aus einem Bild ohne Beleuchtung extrahieren. In einigen Ausführungsformen kann die Fahrflächenebene bei der Bestimmung der Durchfahrbarkeit eines Bereichs stark gewichtet werden. In einigen Ausführungsformen kann eine ebene Fahroberfläche in aufgenommenen Bildern als einheitliche Farbe erscheinen. In einigen Ausführungsformen können Hindernisse, Klippen, Löcher, Wände usw. in den aufgenommenen Bildern als unterschiedliche Texturen erscheinen. In einigen Ausführungsformen kann der Prozessor angesichts des erwarteten Winkels der Fahroberfläche in Bezug auf die Kamera die Fahroberfläche von anderen Objekten wie Wänden, Decken und anderen flachen und glatten Oberflächen unterscheiden. Ebenso können Decken und Wände von anderen Oberflächen unterschieden werden. In einigen Ausführungsformen kann der Prozessor Tiefeninformationen verwenden, um Informationen zu bestätigen oder weitere granulare Informationen bereitzustellen, sobald eine Oberfläche unterschieden wird. In einigen Ausführungsformen kann dies durch Beleuchten des Sichtfelds der Kamera mit einem Satz voreingestellter lichtemittierender Geräte erfolgen. In einigen Ausführungsformen kann der Satz voreingestellter Licht emittierender Geräte eine einzelne Lichtquelle umfassen, die in ein Muster umgewandelt wurde (z. B. einen Linienlichtemitter mit einem optischen Gerät, wie z. B. einer Linse), eine Linie, die mit mehreren Lichtquellen erzeugt wurde (z. B B. LEDs), die in einer Anordnung von Punkten angeordnet sind, die als Linie erscheinen, oder eine einzelne Lichtquelle, die mit einer oder mehreren Linsen und einem Hindernis optisch manipuliert wird, um eine Reihe von Punkten in einer Linie, einem Gitter oder einem beliebigen gewünschten Muster zu erzeugen.

In einigen Ausführungsformen können auch Daten von einer IMU (oder einem Gyroskop) verwendet werden, um die Durchquerbarkeit eines Bereichs zu bestimmen. In einigen Ausführungsformen kann eine IMU verwendet werden, um die Steilheit einer Rampe zu messen, und ein mit der IMU synchronisierter Timer kann die Dauer der gemessenen Steilheit messen. Basierend auf diesen Daten kann ein Klassifikator das Vorhandensein einer Rampe (oder in anderen Fällen einer Bodenwelle, einer Klippe usw.) bestimmen. Andere Klassen von Sensoren, die zur Bestimmung der Durchquerbarkeit eines Bereichs verwendet werden können, können Tiefensensoren, Entfernungsmesser oder Entfernungsmesssensoren umfassen. In einem Beispiel kann eine Messung, die auf eine negative Höhe hinweist (z. B. eine Klippe), die Wahrscheinlichkeit der Durchquerbarkeit eines Gebiets leicht verringern. Nach einer einzelnen Messung ist die Wahrscheinlichkeit der Durchquerbarkeit jedoch möglicherweise nicht niedrig genug, damit der Prozessor den Abdeckungsbereich als nicht durchquerbar markieren kann. Ein zweiter Sensor kann eine kleine negative Höhe für denselben Bereich messen, was die Wahrscheinlichkeit der Durchquerbarkeit des Bereichs erhöhen kann, und der Bereich kann als überquerbar markiert werden. Allerdings verringert ein anderer Sensorwert, der auf eine hohe negative Höhe im selben Bereich hinweist, die Wahrscheinlichkeit der Durchquerbarkeit des Bereichs. Wenn die Wahrscheinlichkeit der Durchquerbarkeit eines Gebiets einen Schwellenwert unterschreitet, kann das Gebiet als Hochrisikogebiet markiert werden. In einigen Ausführungsformen kann es unterschiedliche Schwellenwerte zur Angabe unterschiedlicher Risikostufen geben. In einigen Ausführungsformen kann den Abdeckungsbereichen ein Wert zugewiesen werden, um die Schwere des Risikos anzugeben.

FEIGE.109Azeigt einen Sensor des Roboters10900Messen einer ersten Höhe relativ zu einer Fahrebene10901des Roboters10900.FEIGE.109Bzeigt zum jetzigen Zeitpunkt ein geringes Risikoniveau, da nur eine einzige Messung auf eine hohe Höhe hinweist. Die Wahrscheinlichkeit der Durchquerbarkeit nimmt leicht ab und das Gebiet wird als risikoreicher markiert, reicht aber nicht aus, um es als nicht durchquerbares Gebiet zu markieren.FEIGE.109Czeigt den Sensor des Roboters10900Messen einer zweiten Höhe relativ zur Fahrebene10901des Roboters10900.FEIGE.109Dzeigt eine Verringerung des Risikoniveaus zu diesem Zeitpunkt aufgrund der zweiten Messung, die auf einen geringen oder keinen Höhenunterschied hinweist. In einigen Ausführungsformen kann sich das Risikoniveau allmählich verringern. In einigen Ausführungsformen kann ein Dämpfungswert verwendet werden, um das Risiko schrittweise zu reduzieren.FEIGE.110Averanschaulicht Sensoren des Roboters11000einen ersten nehmen11001und zweitens11002Messung zur Fahrebene11003.FEIGE.110Bzeigt einen Anstieg des Risikoniveaus auf ein mittleres Risikoniveau nach der zweiten Messung, da beide Messungen eine hohe Höhe anzeigen. Abhängig von den physikalischen Eigenschaften des Roboters und den eingestellten Parametern kann es sein, dass der Bereich vom Roboter nicht befahren werden kann.FEIGE.111Averanschaulicht Sensoren des Roboters11100einen ersten nehmen11101und zweitens11102Messung zur Fahrebene11103.FEIGE.111Bzeigt einen Anstieg des Risikoniveaus auf ein hohes Risikoniveau nach der zweiten Messung, da beide Messungen eine sehr hohe Höhe anzeigen. Aufgrund des hohen Risikoniveaus kann der Bereich für den Roboter möglicherweise nicht befahrbar sein.

In einigen Ausführungsformen kann zusätzlich zu den Rohentfernungsinformationen eine zweite Ableitung einer Folge von Entfernungsmessungen verwendet werden, um die Änderungsrate der Z-Werte (d. h. der Höhe) verbundener Zellen in einer kartesischen Ebene zu überwachen. In einigen Ausführungsformen können die zweite und dritte Ableitung, die auf eine plötzliche Höhenänderung hinweisen, das Risikoniveau eines Gebiets (hinsichtlich der Durchquerbarkeit) erhöhen.FEIGE.112Astellt eine kartesische Ebene dar, wobei jede Zelle eine Koordinate mit dem Wert (x,y,T) hat, wobei T die Durchquerbarkeit angibt.FEIGE.112Bveranschaulicht eine visuelle Darstellung einer Durchquerbarkeitskarte, wobei verschiedene Muster die Durchquerbarkeit der Zelle durch den Roboter anzeigen. In diesem Beispiel entsprechen Zellen mit einer höheren Dichte an schwarzen Bereichen einer geringeren Wahrscheinlichkeit der Durchquerbarkeit durch den Roboter. In einigen Ausführungsformen kann die Durchquerbarkeit T ein numerischer Wert oder eine Bezeichnung (z. B. niedrig, mittel, hoch) sein, die auf Echtzeit- und früheren Messungen basiert. Beispielsweise ein Bereich, in dem es zuvor zu einer Verwicklung mit einer Bürste des Roboters kam oder ein Bereich, in dem zuvor eine Flüssigkeit detektiert wurde oder ein Bereich, in dem der Roboter zuvor feststeckte oder ein Bereich, in dem sich zuvor eine Seitenbürste des Roboters befand Wenn sich Gegenstände mit Quasten eines Teppichs verfangen, kann dies das Risiko erhöhen und die Wahrscheinlichkeit verringern, dass das Gebiet durchquert werden kann. In einem anderen Beispiel kann das Vorhandensein eines versteckten Hindernisses oder die plötzliche Entdeckung eines dynamischen Hindernisses (z. B. einer gehenden Person) in einem Bereich auch das Risikoniveau erhöhen und die Wahrscheinlichkeit der Durchquerbarkeit des Bereichs verringern. In einem Beispiel kann eine plötzliche Änderung der Art der Fahroberfläche in einem Gebiet oder die plötzliche Entdeckung einer Klippe in einem Gebiet Auswirkungen auf die Wahrscheinlichkeit der Durchquerbarkeit des Gebiets haben. In einigen Ausführungsformen kann die Durchquerbarkeit für jeden Pfad von einer Zelle zu jeder ihrer benachbarten Zellen bestimmt werden. In einigen Ausführungsformen kann es für den Roboter möglich sein, von einer aktuellen Zelle zu mehr als einer benachbarten Zelle zu wechseln. In einigen Ausführungsformen kann eine Wahrscheinlichkeit der Durchquerbarkeit von einer Zelle zu jeder einzelnen oder einem Teil ihrer benachbarten Zellen bestimmt werden. In einigen Ausführungsformen entscheidet der Prozessor des Roboters, den Roboter zu betätigen, um sich von einer aktuellen Zelle zu einer benachbarten Zelle zu bewegen, basierend auf der höchsten Wahrscheinlichkeit der Überquerbarkeit von der aktuellen Zelle zu jeder ihrer benachbarten Zellen.

In einigen Ausführungsformen kann der Prozessor des Roboters (oder beispielsweise der Pfadplaner) den Roboter anweisen, zu einem Zentrum eines ersten zweidimensionalen Abdeckungsbereichs zurückzukehren, wenn der Roboter einen Endpunkt in einem aktuellen Pfadplan erreicht, bevor er dorthin fährt ein Zentrum eines nächsten Pfadplans.FEIGE.113Averanschaulicht den Roboter11300an einem Endpunkt eines polymorphen Pfadplans mit Abdeckungsbereich11301und Boustrophedon-Pfad11302.FEIGE.113Bveranschaulicht einen nachfolgenden Moment, in dem der Prozessor über einen nächsten polymorphen rechteckigen Abdeckungsbereich entscheidet11303. Die gepunktete Linie11304zeigt einen vorgeschlagenen L-förmigen Pfad zurück zu einem zentralen Punkt eines ersten polymorphen rechteckigen Abdeckungsbereichs an11301und dann zu einem zentralen Punkt des nächsten polymorphen rechteckigen Abdeckungsbereichs11303. Aufgrund der polymorphen Natur dieser Pfadplanungsmethoden kann der Pfad durch einen besseren Pfad überschrieben werden, dargestellt durch die durchgezogene Linie11305. Der durch die durchgezogene Linie definierte Pfad11305kann den durch die gepunktete Linie definierten Pfad überschreiben11304. Der Akt des Überschreibens kann ein Merkmal sein, das im Bereich des Polymorphismus definiert werden kann.FEIGE.113Cillustriert einen lokalen Planer11306(d. h. das graue Rechteck) mit einer teilweise gefüllten Karte.FEIGE.113Dzeigt, dass im Laufe der Zeit mehr Messwerte in die lokale Karte eingefügt werden11306. In einigen Ausführungsformen kann die lokale Erfassung der globalen Karte überlagert werden und eine dynamische und sich ständig weiterentwickelnde Karte erstellen. In einigen Ausführungsformen aktualisiert der Prozessor die globale Karte, während die globalen Sensoren während des gesamten Betriebs zusätzliche Informationen bereitstellen. Zum Beispiel,FEIGE.113Everanschaulicht, dass von globalen Sensoren erfasste Daten in die globale Karte integriert werden11307. Wenn sich der Roboter Hindernissen nähert, fallen diese möglicherweise in die Reichweite des Entfernungssensors und der Prozessor fügt die Hindernisse nach und nach zur Karte hinzu.

In Ausführungsformen sind die hierin beschriebenen Pfadplanungsverfahren dynamisch und ändern sich ständig. In einigen Ausführungsformen bestimmt der Prozessor während des Betriebs mithilfe von maschinellem Lernen die Bereiche, in denen der Roboter arbeitet, und die Vorgänge, an denen der Roboter teilnimmt. In einigen Ausführungsformen können Informationen wie der Fahrbahntyp und das Vorhandensein oder Nichtvorhandensein dynamischer Hindernisse bei der Entscheidungsfindung verwendet werden. In einigen Ausführungsformen verwendet der Prozessor Daten aus früheren Arbeitssitzungen, um einen Navigationsplan und einen Aufgabenplan für die Durchführung von Aufgaben zu bestimmen. In einigen Ausführungsformen kann der Prozessor verschiedene Arten von Informationen verwenden, um einen möglichst effizienten Navigations- und Aufgabenplan zu ermitteln. In einigen Ausführungsformen sammeln Sensoren des Roboters neue Daten, während der Roboter den Navigations- und Aufgabenplan ausführt. Der Prozessor kann den Navigations- und Aufgabenplan des Roboters basierend auf den neuen Daten ändern und die neuen Daten für die zukünftige Verwendung speichern.

Andere Pfadplanungsverfahren, die verwendet werden können, sind in der US-Patentanmeldung Seriennr. Nr. 16/041.286, 16/422.234, 15/406.890, 15/676.888 und 14/673.633, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In einigen Ausführungsformen kann der Prozessor des Roboters beispielsweise einen Bewegungspfad in Echtzeit basierend auf der beobachteten Umgebung generieren. In einigen Ausführungsformen kann ein topologischer Graph den Bewegungspfad darstellen und mit einem Satz von Scheitelpunkten und Kanten beschrieben werden, wobei die Scheitelpunkte durch Kanten verbunden sind. Scheitelpunkte können als einzelne Punkte dargestellt werden, während Kanten Linien, Bögen oder Kurven sein können. Die Eigenschaften jedes Scheitelpunkts und jeder Kante können zur Laufzeit als Argumente bereitgestellt werden, basierend auf sensorischen Echtzeit-Eingaben der Umgebung. Der topologische Graph kann die nächsten Aktionen des Roboters definieren, während er Kanten folgt, die an Eckpunkten verbunden sind. Bei der Ausführung des Bewegungspfads können in einigen Ausführungsformen Belohnungen vom Prozessor zugewiesen werden, wenn der Roboter Aktionen zum Übergang zwischen Zuständen durchführt und die kumulative Nettobelohnung verwendet, um einen bestimmten Bewegungspfad, der aus Aktionen und Zuständen besteht, zu bewerten. Eine Zustandsaktionswertfunktion kann während der Ausführung des Bewegungspfads iterativ berechnet werden, basierend auf der aktuellen Belohnung und der maximalen zukünftigen Belohnung im nächsten Zustand. Ein Ziel könnte darin bestehen, die optimale Funktion des Zustandsaktionswerts und die optimale Richtlinie zu finden, indem die Aktion mit dem höchsten Wert für jeden Zustand identifiziert wird. Da im Laufe der Zeit unterschiedliche topologische Diagramme einschließlich Scheitelpunkten und Kanten mit unterschiedlichen Eigenschaften ausgeführt werden, nimmt die Anzahl der erlebten Zustände, der von jedem Zustand ergriffenen Aktionen und der Übergänge zu. Der vom Prozessor des Roboters entworfene Pfad kann sich iterativ weiterentwickeln, um effizienter zu werden, indem Übergänge ausgewählt werden, die zu den günstigsten Ergebnissen führen, und indem Situationen vermieden werden, die zuvor zu einer niedrigen Nettobelohnung geführt haben. Nach der Konvergenz kann festgestellt werden, dass der entwickelte Bewegungspfad effizienter ist als alternative Pfade, die mithilfe sensorischer Echtzeiteingaben der Umgebung entwickelt werden können. In einigen Ausführungsformen kann ein MDP verwendet werden.

In einigen Ausführungsformen kann der Prozessor des Roboters die optimale (z. B. lokal oder globale) Aufteilung und Abdeckung der Umgebung bestimmen, indem er eine Kostenfunktion minimiert oder eine Belohnungsfunktion maximiert. In einigen Ausführungsformen kann die Gesamtkostenfunktion C einer Zone oder einer Umgebung vom Prozessor des Roboters auf der Grundlage der Reise- und Reinigungskosten K und der Abdeckung L berechnet werden. In einigen Ausführungsformen können andere Faktoren Eingaben in die Kostenfunktion sein. Der Prozessor kann versuchen, die Reise- und Reinigungskosten K zu minimieren und die Abdeckung L zu maximieren. In einigen Ausführungsformen kann der Prozessor die Reise- und Reinigungskosten K ermitteln, indem er die individuellen Kosten für jede Zone berechnet und die erforderlichen Fahrkosten zwischen den Zonen addiert. Die Fahrkosten zwischen Zonen können davon abhängen, wo der Roboter die Abdeckung in einer Zone beendet hat und wo er in einer folgenden Zone mit der Abdeckung beginnt. Die Reinigungskosten können von Faktoren wie dem Weg des Roboters, der Abdeckungszeit usw. abhängen. In einigen Ausführungsformen kann der Prozessor die Abdeckung basierend auf den Quadratmetern der vom Roboter abgedeckten Fläche (oder anderweitig bearbeiteten Fläche) bestimmen. In einigen Ausführungsformen kann der Prozessor des Roboters die Gesamtkostenfunktion minimieren, indem er Zonen der Umgebung modifiziert, indem er beispielsweise Zonen entfernt, hinzufügt, verkleinert, erweitert, verschiebt und die Reihenfolge der Abdeckung von Zonen ändert. Beispielsweise kann der Prozessor in einigen Ausführungsformen Zonen auf eine rechteckige Form beschränken, dem Roboter ermöglichen, eine Zone an jedem Oberflächenpunkt zu betreten oder zu verlassen, und eine Überlappung zwischen rechteckigen Zonen zulassen, um optimale Zonen einer Umgebung zu bestimmen. In einigen Ausführungsformen kann der Prozessor zusätzliche Bedingungen einschließen oder ausschließen. In einigen Ausführungsformen berücksichtigen die Kosten zusätzliche Funktionen neben oder zusätzlich zu den Reise- und Betriebskosten und der Deckung. Beispiele für Merkmale, die Eingaben in die Kostenfunktion sein können, können Abdeckung, Größe und Fläche der Zone, Zonenüberlappung mit Perimetern (z. B. Wände, Gebäude oder andere Bereiche, die der Roboter nicht befahren kann), Lage von Zonen und Überlappung zwischen Zonen umfassen Zonen, Lage der Zonen und gemeinsame Grenzen zwischen Zonen. In einigen Ausführungsformen kann der Prozessor eine Hierarchie verwenden, um die Wichtigkeit von Merkmalen zu priorisieren (z. B. können unterschiedliche Gewichtungen solchen Merkmalen in einer differenzierbaren gewichteten, normalisierten Summe zugeordnet werden). Beispielsweise kann die erste Stufe einer Hierarchie die Lage der Zonen sein, sodass die zurückgelegte Distanz zwischen aufeinanderfolgenden Zonen minimiert wird und die Grenzen aufeinanderfolgender Zonen gemeinsam genutzt werden, die zweite Stufe kann dazu dienen, Perimeter zu vermeiden, und die dritte Stufe kann dazu dienen, Überschneidungen mit anderen Zonen zu vermeiden Stufe vier könnte darin bestehen, die Abdeckung zu erhöhen.

In einigen Ausführungsformen kann der Prozessor verschiedene Funktionen nutzen, um die Optimierung der Abdeckung der Umgebung weiter zu verbessern. Zu diesen Funktionen können gehören: eine Erkennungsfunktion, mit der eine neue kleine Zone zu großen und nicht abgedeckten Bereichen hinzugefügt werden kann, eine Löschfunktion, mit der jede Zone mit einer Größe unter einem bestimmten Schwellenwert gelöscht werden kann, und eine Schrittgrößenkontrollfunktion, mit der die Schrittgröße im Gradienten verringert wird Der Abstieg kann kontrolliert werden, eine Pessimismusfunktion, bei der jede Zone mit individuellen Betriebskosten unter einem bestimmten Schwellenwert gelöscht werden kann, und eine Schnellwachstumsfunktion, bei der jeder an eine Zone angrenzende Raum, der überwiegend nicht von einer anderen Zone beansprucht wird, schnell in die Zone integriert werden kann .

In einigen Ausführungsformen kann der Prozessor zur Optimierung der Zoneneinteilung einer Umgebung die folgende Iteration für jede Zone einer Zonenfolge durchlaufen, beginnend mit der ersten Zone: Erweiterung der Zone, wenn Nachbarzellen leer sind, Bewegung des Roboters zu einem Punkt in der Zone, die der aktuellen Position des Roboters am nächsten liegt, Hinzufügen einer neuen Zone, die mit dem Verfahrweg des Roboters von seiner aktuellen Position zu einem Punkt in der Zone zusammenfällt, der dem Roboter am nächsten liegt, wenn die Verfahrstrecke von seiner aktuellen Position abweicht Die Position ist von Bedeutung, die Ausführung eines Abdeckungsmusters (z. B. Boustrophedon) innerhalb der Zone und die Entfernung aller nicht abgedeckten Zellen aus der Zone.

In einigen Ausführungsformen kann der Prozessor die optimale Aufteilung von Zonen einer Umgebung bestimmen, indem er Zonen als Flüssigkeitsemulsionen, beispielsweise Blasen, modelliert. In einigen Ausführungsformen kann der Prozessor Zonen beliebiger Form, aber ähnlicher Größe erstellen, Überlappungen von Zonen mit statischen Strukturen der Umgebung vermeiden und die Oberfläche und die Wegstrecke zwischen Zonen minimieren. In einigen Ausführungsformen können Verhaltensweisen von Flüssigkeitsemulsionen, wie etwa die Minimierung der Oberflächenspannung und des Oberflächenbereichs sowie die durch einen Innendruck gesteuerte Ausdehnung und Kontraktion der Emulsion, bei der Modellierung der Zonen der Umgebung verwendet werden. Zu diesem Zweck kann in einigen Ausführungsformen die Umgebung durch eine Gitterkarte dargestellt und vom Prozessor in Zonen unterteilt werden. In einigen Ausführungsformen kann der Prozessor die Gitterkarte in einen Routing-Graphen G umwandeln, der aus Knoten N besteht, die durch Kanten E verbunden sind. Der Prozessor kann eine Zone A darstellen, indem er einen Satz von Knoten des Routing-Graphen verwendet, wobei A⊂N. Die Knoten können verbunden sein und einen Bereich auf der Rasterkarte darstellen. In einigen Ausführungsformen kann der Prozessor einer Zone A einen Satz von Umfangskanten E zuweisen, wobei eine Umfangskante e=(n1,N2) verbindet einen Knoten n1∈A mit einem Knoten n2∉A. Somit definiert die Menge der Umfangskanten klar die Menge der Umfangsknoten ∂A und liefert Informationen über die Knoten, die sich direkt innerhalb von Zone A befinden, sowie über die Knoten direkt außerhalb von Zone A. Umfangsknoten in Zone A können mit ∂ bezeichnet werden AInund umgibt Knoten außerhalb der Zone A um ∂Aaus. Die Sammlung von ∂AInund ∂Aauszusammen sind alle Knoten in ∂A. In einigen Ausführungsformen kann der Prozessor die Größe einer Zone A erweitern, indem er Knoten von ∂A hinzufügtauszu Zone A und verkleinern Sie die Größe der Zone, indem Sie Knoten in ∂A entfernenInaus Zone A, was eine Kontraktion und Expansion der Flüssigkeit ermöglicht. In einigen Ausführungsformen kann der Prozessor einen numerischen Wert bestimmen, der jedem Knoten in ∂A zugewiesen werden soll, wobei der Wert jedes Knotens angibt, ob der Knoten zur Zone A hinzugefügt oder daraus entfernt werden soll.

In einigen Ausführungsformen kann der Prozessor die beste Aufteilung einer Umgebung ermitteln, indem er eine Kostenfunktion minimiert, die als Differenz zwischen der theoretischen (z. B. mit Unsicherheit modellierten) Fläche der Umgebung und der tatsächlich abgedeckten Fläche definiert ist. Der theoretische Bereich der Umgebung kann vom Prozessor anhand einer Karte der Umgebung bestimmt werden. Der tatsächlich abgedeckte Bereich kann vom Prozessor durch aufgezeichnete Bewegungen des Roboters beispielsweise mithilfe eines Kilometerzählers oder eines Gyroskops ermittelt werden. In einigen Ausführungsformen kann der Prozessor die beste Aufteilung der Umgebung bestimmen, indem er eine Kostenfunktion minimiert, die von einem vom Roboter zurückgelegten Pfad abhängt und die Pfade umfasst, die innerhalb jeder Zone und zwischen Zonen zurückgelegt werden. Der Prozessor kann Zonen darauf beschränken, rechteckig zu sein (oder eine andere definierte Anzahl von Eckpunkten oder Seiten zu haben) und kann den Roboter darauf beschränken, eine Zone an einer Ecke zu betreten und eine Serpentinenroutine (oder eine andere Fahrroutine) entweder in x- oder y-Richtung zu fahren -Richtung, sodass die Flugbahn an einer anderen Ecke der Zone endet. Die mit einer bestimmten Aufteilung einer Umgebung und Reihenfolge der Zonenabdeckung verbundenen Kosten können als Summe der Entfernungen des Serpentinenpfads berechnet werden, die für die Abdeckung innerhalb jeder Zone zurückgelegt wurden, und die Summe der Entfernungen, die zwischen Zonen (von Ecke zu Ecke) zurückgelegt wurden. Um die Kostenfunktion zu minimieren und die Abdeckungseffizienz zu verbessern, können Zonen weiter unterteilt, zusammengelegt, für die Abdeckung neu angeordnet und Ein-/Ausstiegspunkte von Zonen angepasst werden. In einigen Ausführungsformen kann der Prozessor des Roboters diese Aktionen zufällig initiieren oder gezielt darauf abzielen. In einigen Ausführungsformen, in denen Aktionen vom Prozessor zufällig (z. B. basierend auf einem Pseudozufallswert) initiiert werden, kann der Prozessor eine zufällige Aktion auswählen, wie etwa das Teilen, Zusammenführen oder Neuanordnen von Zonen, und die Aktion ausführen. Der Prozessor kann dann Ein-/Ausstiegspunkte für die ausgewählten Zonen und die Reihenfolge der Zonen optimieren. Eine Differenz zwischen den neuen Kosten und den alten Kosten kann vom Prozessor als Δ = neue Kosten − alte Kosten berechnet werden, wobei eine Aktion, die zu einer Differenz < 0 führt, akzeptiert wird, während eine Differenz > 0 mit der Wahrscheinlichkeit exp(−Δ/T) akzeptiert wird. wobei T eine Skalierungskonstante ist. Da die Kosten in einigen Ausführungsformen stark von zufällig bestimmten Aktionen des Prozessors des Roboters abhängen, können Ausführungsformen zehn verschiedene Instanzen entwickeln und nach einer bestimmten Anzahl von Iterationen einen Prozentsatz der schlechtesten Instanzen verwerfen.

In einigen Ausführungsformen kann der Prozessor den Roboter dazu veranlassen, die besten oder mehrere der besten Instanzen auszuführen und die tatsächlichen Kosten zu berechnen. In Ausführungsformen, in denen Aktionen zielgerichtet sind, kann der Prozessor den größten Kostenverursacher ermitteln, beispielsweise die höchsten Reisekosten, und eine gezielte Aktion einleiten, um den größten Kostenverursacher zu reduzieren. In Ausführungsformen können zufällige und gezielte Aktionsansätze zur Minimierung der Kostenfunktion durch den Prozessor des Roboters auf Umgebungen angewendet werden, die mehrere Räume umfassen. In Ausführungsformen kann der Prozessor den Roboter direkt ansteuern, um eine Abdeckung für eine bestimmte Unterteilung der Umgebung und Reihenfolge der Zonenabdeckung auszuführen, ohne zunächst verschiedene mögliche Unterteilungen und Reihenfolgen der Zonenabdeckung durch Simulation zu bewerten. In Ausführungsformen kann der Prozessor die beste Aufteilung der Umgebung bestimmen, indem er eine Kostenfunktion minimiert, die ein Maß für die theoretische Fläche der Umgebung, die tatsächlich abgedeckte Fläche und den vom Roboter innerhalb jeder Zone und zwischen Zonen zurückgelegten Weg umfasst.

In einigen Ausführungsformen kann der Prozessor eine Belohnung bestimmen und diese einer Richtlinie basierend auf der Leistung der Abdeckung der Umgebung durch den Roboter zuordnen. In einigen Ausführungsformen kann die Richtlinie die erstellten Zonen, die Reihenfolge, in der sie abgedeckt wurden, und den Abdeckungspfad umfassen (d. h. sie kann Daten enthalten, die diese Dinge beschreiben). In einigen Ausführungsformen kann die Richtlinie eine Sammlung von Zuständen und Aktionen umfassen, die der Roboter während der Abdeckung der Umgebung aufgrund der erstellten Zonen, der Reihenfolge, in der sie abgedeckt wurden, und des Abdeckungspfads erfährt. In einigen Ausführungsformen kann die Belohnung auf tatsächlicher Abdeckung, wiederholter Abdeckung, Gesamtabdeckungszeit, Reisedistanz zwischen Zonen usw. basieren. In einigen Ausführungsformen kann der Prozess iterativ wiederholt werden, um die Richtlinie zu bestimmen, die die Belohnung maximiert. In einigen Ausführungsformen bestimmt der Prozessor mithilfe eines MDP wie oben beschrieben die Richtlinie, die die Belohnung maximiert. In einigen Ausführungsformen kann ein Prozessor eines Roboters offline verschiedene Bereiche einer Umgebung bewerten. Beispiele für Methoden zur Aufteilung einer Umgebung in Abdeckungszonen sind in der US-Patentanmeldung Seriennr. Nr. 14/817.952, 15/619.449, 16/198.393, 14/673.633 und 15/676.888, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird.

Die hier beschriebenen Bayes'schen oder probabilistischen Methoden können mehrere praktische Vorteile bieten. Beispielsweise kann ein Roboter, der verhaltensmäßig funktioniert, indem er auf alles reagiert, was die Sensoren des Roboters erfassen, dazu führen, dass der Roboter auf viele falsch positive Beobachtungen reagiert. Beispielsweise kann ein Sensor des Roboters die Anwesenheit einer Person erkennen, die schnell am Roboter vorbeigeht, und der Prozessor kann den Roboter anweisen, sofort anzuhalten, auch wenn dies möglicherweise nicht notwendig ist, da die Anwesenheit der Person nur kurz und vorübergehend ist. Darüber hinaus markiert der Prozessor diesen Ort möglicherweise fälschlicherweise als unpassierbaren Bereich. In einem anderen Beispiel können Bürsten und Schrubber zu falsch positiven Sensorbeobachtungen führen, da der Sensor an der Unterseite des Roboters und neben einer Bürste, die mit der Unterseite des Roboters verbunden ist, verdeckt ist. In manchen Fällen kann es zu Kompromissen bei der Form der Bürsten kommen. In manchen Fällen müssen Bürsten Lücken zwischen den Borstensätzen aufweisen, damit es zeitliche Abläufe gibt, in denen die an der Unterseite des Roboters positionierten Sensoren nicht verdeckt werden. Bei einer probabilistischen Methode stellt ein einzelner Verschluss eines Sensors möglicherweise kein falsch positives Ergebnis dar.

In einigen Ausführungsformen können die beschriebenen probabilistischen Methoden Bayes'sche Methoden verwenden, wobei die Wahrscheinlichkeit einen Grad des Glaubens an ein Ereignis darstellen kann. In einigen Ausführungsformen kann der Grad der Überzeugung auf Vorkenntnissen über das Ereignis oder auf Annahmen über das Ereignis basieren. In einigen Ausführungsformen kann das Bayes-Theorem verwendet werden, um Wahrscheinlichkeiten nach Erhalt neuer Daten zu aktualisieren. Der Satz von Bayes kann die bedingte Wahrscheinlichkeit eines Ereignisses auf der Grundlage von Daten sowie früheren Informationen oder Überzeugungen über das Ereignis oder mit dem Ereignis verbundene Bedingungen beschreiben. In einigen Ausführungsformen kann der Prozessor die bedingte Wahrscheinlichkeit bestimmen

P ( B ) = P ( B „\[LeftBracketingBar]“ A ) P ( A ) P ( B )
eines Ereignisses A unter der Voraussetzung, dass B wahr ist, wobei P(B)≠0. In der Bayes'schen Statistik kann A eine Aussage darstellen und B neue Daten oder frühere Informationen. P(A), die A-priori-Wahrscheinlichkeit von A, kann als die Wahrscheinlichkeit dafür angesehen werden, dass A wahr ist, bevor B berücksichtigt wird. P(B|A), die Wahrscheinlichkeitsfunktion, kann als die Wahrscheinlichkeit dafür angenommen werden, dass die Information B wahr ist A ist wahr. P(A|B), die A-posteriori-Wahrscheinlichkeit, kann als die Wahrscheinlichkeit dafür angesehen werden, dass die Aussage A wahr ist, nachdem Information B berücksichtigt wurde. In Ausführungsformen kann das Bayes-Theorem die A-priori-Wahrscheinlichkeit P(A) aktualisieren, nachdem Informationen B berücksichtigt wurden. In einigen Ausführungsformen kann der Prozessor die Wahrscheinlichkeit des Beweises bestimmen

P ( B ) = ich P ( A ich ) P ( A ich )
unter Verwendung des Gesetzes der Gesamtwahrscheinlichkeit, wobei {A1, A2, . . . , AN} ist die Menge aller möglichen Ergebnisse. In einigen Ausführungsformen kann es schwierig sein, P(B) zu bestimmen, da die Bestimmung von Summen und Integralen erforderlich sein kann, was zeitaufwändig und rechenintensiv sein kann. Daher kann der Prozessor in einigen Ausführungsformen die A-Posteriori-Wahrscheinlichkeit als P(B)∝P(B|A)P(A) bestimmen. In einigen Ausführungsformen kann der Prozessor die A-posteriori-Wahrscheinlichkeit annähern, ohne P(B) zu berechnen, indem er Methoden wie Markov Chain Monte Carlo oder Variations-Bayesian-Methoden verwendet.

In einigen Ausführungsformen kann der Prozessor Bayes'sche Schlussfolgerungen verwenden, wobei die Unsicherheit in Schlussfolgerungen mithilfe der Wahrscheinlichkeit quantifiziert werden kann. Beispielsweise kann bei einem Bayes'schen Ansatz eine Aktion auf der Grundlage einer Schlussfolgerung ausgeführt werden, für die es einen Prior und einen Posterior gibt. Beispielsweise kann ein erster Messwert eines Sensors eines Roboters, der auf ein Hindernis oder einen unpassierbaren Bereich hinweist, als A-priori-Information betrachtet werden. Der Prozessor des Roboters darf den Roboter nicht allein aufgrund apriorischer Informationen anweisen, eine Aktion auszuführen. Wenn jedoch eine zweite Beobachtung auftritt, kann die Schlussfolgerung der zweiten Beobachtung eine auf den A-priori-Informationen basierende Hypothese bestätigen und der Prozessor kann dann den Roboter anweisen, eine Aktion auszuführen. In einigen Ausführungsformen können statistische Modelle verwendet werden, die eine Reihe statistischer Annahmen und Prozesse spezifizieren, die darstellen, wie die Beispieldaten generiert werden. Beispielsweise können für eine mit einer Bernoulli-Verteilung modellierte Situation nur zwei Möglichkeiten modelliert werden. Bei der Bayes'schen Inferenz können Modellparametern Wahrscheinlichkeiten zugewiesen werden. In einigen Ausführungsformen kann der Prozessor das Bayes-Theorem verwenden, um die Wahrscheinlichkeiten zu aktualisieren, nachdem weitere Informationen erhalten wurden. Statistische Modelle, die Bayes'sche Statistiken verwenden, erfordern, dass vorherige Verteilungen für alle unbekannten Parameter bekannt sind. In einigen Fällen können Parameter früherer Verteilungen frühere Verteilungen aufweisen, was zu einer Bayes'schen hierarchischen Modellierung führt, oder können miteinander in Beziehung stehen, was zu Bayes'schen Netzwerken führt.

Bei der Verwendung der hier beschriebenen Bayes'schen Methoden schadet ein falsch positiver Sensormesswert nicht der Funktionalität des Roboters, da der Prozessor einen anfänglichen Sensormesswert nur dazu verwendet, eine vorherige Annahme zu bilden. In einigen Ausführungsformen benötigt der Prozessor möglicherweise eine zweite oder dritte Beobachtung, um eine Schlussfolgerung zu ziehen und die vorherige Überzeugung zu beeinflussen. Erfolgt eine zweite Beobachtung nicht rechtzeitig (oder nach mehreren Zählungen), gilt die zweite Beobachtung möglicherweise nicht als eine nachträgliche Beobachtung und hat möglicherweise keinen Einfluss auf eine frühere Annahme. In einigen Ausführungsformen können andere statistische Interpretationen verwendet werden. Beispielsweise kann der Prozessor eine frequentistische Interpretation verwenden, bei der eine bestimmte Häufigkeit einer Beobachtung erforderlich sein kann, um eine Überzeugung zu bilden. In einigen Ausführungsformen können andere einfachere Implementierungen zum Formulieren von Überzeugungen verwendet werden. In einigen Ausführungsformen kann jedem Fall einer Beobachtung eine Wahrscheinlichkeit zugeordnet werden. Beispielsweise kann jede Beobachtung als eine Wahrscheinlichkeit von 50 % gelten, dass die Beobachtung wahr ist. Bei dieser Implementierung kann eine Wahrscheinlichkeit von mehr als 50 % erforderlich sein, damit der Roboter Maßnahmen ergreift.

In einigen Ausführungsformen wandelt der Prozessor partielle Differentialgleichungen (PDEs) in bedingte Erwartungen basierend auf dem Feynman-Kac-Theorem um. Zum Beispiel für eine PDE

u T ( X , T ) + M ( X , T ) u X ( X , T ) + 1 2 P 2 ( X , T ) 2 u X 2 ( X , T ) - V ( X , T ) u ( X , T ) + F ( X , T ) = 0 ,
für alle x∈R und t∈[0,T] und unter der Endbedingung u(x,t)=ψ(x), wobei μ,σ, ψ, V, ƒ bekannte Funktionen sind, T ein Parameter ist, und u: R×[0,T]→R die Unbekannte ist, liefert die Feyman-Kac-Formel eine Lösung, die als bedingte Erwartung u(x,t)=E geschrieben werden kannQ[∫TTe−∫TRV(XT,t)dtƒ(XR,r)dr+e−ƒTTV(XTt)dtψ(XT)|XT=x] unter einem Wahrscheinlichkeitsmaß Q, so dassQ, wobei WQ(t) ist ein Weiner-Prozess oder eine Brownsche Bewegung unter Q und der Anfangsbedingung X(t)=x. In einigen Ausführungsformen kann der Prozessor die Mittelfeldinterpretation von Feynman-Kac-Modellen oder Diffusions-Monte-Carlo-Methoden verwenden.

In einigen Ausführungsformen kann der Prozessor einen Mean-Field-Auswahlprozess oder andere Verzweigungs- oder Evolutionsalgorithmen bei der Modellierung von Mutations- oder Auswahlübergängen verwenden, um den Übergang des Roboters von einem Zustand zum nächsten vorherzusagen. In einigen Ausführungsformen entwickeln sich Wanderer während eines Mutationsübergangs zufällig und unabhängig in einer Landschaft. Jeder Läufer kann als Simulation einer möglichen Flugbahn eines Roboters betrachtet werden. In einigen Ausführungsformen kann der Prozessor Quantenteleportation oder Populationsrekonfiguration verwenden, um ein häufiges Problem der Gewichtsungleichheit zu lösen, die zu einem Gewichtskollaps führt. In einigen Ausführungsformen kann der Prozessor die Extinktions- oder Absorptionswahrscheinlichkeiten einiger Markov-Prozesse steuern. In einigen Ausführungsformen kann der Prozessor eine Fitnessfunktion verwenden. In einigen Ausführungsformen kann der Prozessor unterschiedliche Mechanismen verwenden, um ein Aussterben zu verhindern, bevor die Gewichte zu ungleichmäßig werden. In einigen Ausführungsformen kann der Prozessor adaptive Resampling-Kriterien verwenden, einschließlich der Varianz der Gewichte und der relativen Entropie in Bezug auf eine gleichmäßige Verteilung. In einigen Ausführungsformen kann der Prozessor räumliche Verzweigungsprozesse kombiniert mit konkurrierender Auswahl verwenden.

In einigen Ausführungsformen kann der Prozessor einen Vorhersageschritt verwenden, der durch die Chapman-Kolmogrov-Transportgleichung gegeben ist, eine Identität, die die gemeinsame Wahrscheinlichkeitsverteilung verschiedener Koordinatensätze in einem stochastischen Prozess in Beziehung setzt. Beispielsweise für einen stochastischen Prozess, der durch eine indizierte Sammlung von Zufallsvariablen {ƒich}, Pich1, . . . , ichN1, . . . , ƒN) kann die gemeinsame Wahrscheinlichkeitsdichtefunktion der Werte von Zufallsvariablen ƒ sein1bis ƒN. In einigen Ausführungsformen kann der Prozessor die durch p gegebene Chapman-Kolmogrov-Gleichung verwendenich1, . . . , ichn−11, . . . , ƒn−1)=∫−∞▪Sich1, . . . , (ƒ1, . . . , ƒN)dƒN, eine Marginalisierung gegenüber der Belästigungsvariablen. Wenn der stochastische Prozess ein Markovianischer Prozess ist, kann die Chapman-Kolmogrov-Gleichung einer Identität für Übergangsdichten entsprechen, wobei i1< . . . Nfür eine Markov-Kette. Angesichts der Markov-Eigenschaft, Sich1, . . . , ichN1, . . . , ƒN)=Sich11)Pich2;ich121). . . PichN;ichn−1Nn−1), wobei die bedingte Wahrscheinlichkeit pi;jichJ) ist eine Übergangswahrscheinlichkeit zwischen den Zeitpunkten i>j. Daher kann die Chapman-Kolmogrov-Gleichung durch p angegeben werdenich3;ich131)=∫−∞▪Sich3;i▪232)Pich2;ich121)dƒ2, wobei die Wahrscheinlichkeit des Übergangs von Zustand eins zu Zustand drei durch Summieren der Wahrscheinlichkeiten des Übergangs von Zustand eins zu Zwischenzustand zwei und Zwischenzustand zwei zu Zustand drei bestimmt werden kann. Wenn die Wahrscheinlichkeitsverteilung im Zustandsraum einer Markov-Kette diskret und die Markov-Kette homogen ist, kann der Prozessor die Chapman-Kolmogrov-Gleichung verwenden, die durch P(t+s)=P(t)P(s) gegeben ist, wobei P (t) ist die Übergangsmatrix des Sprungs t, sodass der Eintrag (i,j) der Matrix die Wahrscheinlichkeit des Übergangs der Kette vom Zustand i in t Schritte enthält. Um die Übergangsmatrix von Sprung t zu bestimmen, kann die Übergangsmatrix von Sprung eins mit t potenziert werden, d. h. P(t)=PT. In manchen Fällen wird die Differentialform der Chapman-Kolmogrov-Gleichung als Mastergleichung bezeichnet.

In einigen Ausführungsformen kann der Prozessor eine Teilmengensimulationsmethode verwenden. In einigen Ausführungsformen kann der Prozessor leicht fehlgeschlagenen oder leicht umgeleiteten Szenarien eine kleine Wahrscheinlichkeit zuweisen. In einigen Ausführungsformen kann der Prozessor des Roboters eine geringe Ausfallwahrscheinlichkeit über eine Reihe von Ereignissen überwachen und neue mögliche Fehler einführen und wiederhergestellte Fehler bereinigen. Beispielsweise kann erwartet werden, dass ein Rad, das 20 ms lang mit einer bestimmten Geschwindigkeit rotieren soll, den Roboter um einen bestimmten Betrag bewegt. Wenn sich das Rad jedoch auf einem Teppich, Gras oder einer harten Oberfläche befindet, kann es sein, dass die Bewegung des Roboters, die sich aus der Drehung des Rads mit einer bestimmten Geschwindigkeit für 20 ms ergibt, nicht gleich ist. In einigen Ausführungsformen können Teilmengensimulationsverfahren verwendet werden, um Systeme mit hoher Zuverlässigkeit zu erreichen. In einigen Ausführungsformen kann der Prozessor unter der Bedingung, dass Fehlerinstanzen auftreten, adaptiv Stichproben generieren, um langsam Bereiche vom Bereich häufiger bis hin zu eher gelegentlichen Ereignissen zu füllen.

In einigen Ausführungsformen kann der Prozessor eine komplementäre kumulative Verteilungsfunktion (CCDF) der interessierenden Menge verwenden, die den betreffenden Fehler bestimmt, um die Bereiche mit hoher und niedriger Wahrscheinlichkeit abzudecken. In einigen Ausführungsformen kann der Prozessor stochastische Suchalgorithmen verwenden, um eine Population möglicher Kandidatenlösungen unter Verwendung von Mutations- und Auswahlmechanismen unter Einführung von Routinefehlern und -wiederherstellungen zu verbreiten.

In interagierenden Systemen mit mehreren Agenten kann der Prozessor das kollektive Verhalten komplexer Systeme mit interagierenden Personen überwachen. In einigen Ausführungsformen kann der Prozessor ein Kontinuumsmodell von Agenten mit mehreren Spielern über mehrere Dimensionen hinweg überwachen. In einigen Ausführungsformen können die oben genannten Methoden auch zur Untersuchung der Ursache, des genauen Zeitpunkts des Auftretens und der Folgen eines Fehlers verwendet werden.

In einigen Ausführungsformen kann der Prozessor während des Betriebs des Roboters dynamische Hindernisse und Bodentypen erkennen. Während der Roboter in der Umgebung arbeitet, können am Roboter angeordnete Sensoren Informationen sammeln, beispielsweise über die Art der Fahroberfläche. In manchen Fällen kann die Art der Fahrfläche wichtig sein, beispielsweise im Fall eines Oberflächenreinigungsroboters. Beispielsweise können Informationen, die darauf hinweisen, dass in einem Raum ein dickfloriger Teppich und ein Holzboden vorhanden sind, für den Betrieb eines Oberflächenreinigungsroboters wichtig sein, da das Vorhandensein zweier unterschiedlicher Fahrflächen eine Anpassung der Einstellungen durch den Roboter beim Übergang vom Betrieb auf dickem Untergrund erforderlich machen kann Florteppich mit höherer Höhe zum Holzboden mit niedrigerer Höhe oder umgekehrt. Zu den Einstellungen können Reinigungsart (z. B. Staubsaugen, Wischen, Dampfreinigung, UV-Sterilisation usw.) und Einstellungen des Roboters (z. B. Fahrgeschwindigkeit, Höhe des Roboters oder seiner Komponenten von der Fahrfläche usw.) und seiner Komponenten gehören ( (z. B. Drehzahl des Hauptbürstenmotors, Drehzahl des Seitenbürstenmotors, Drehzahl des Laufradmotors usw.). Beispielsweise kann der Oberflächenreinigungsroboter das Staubsaugen auf dem dicken Teppich und das Staubsaugen und Wischen auf dem Holzboden durchführen. In einem anderen Beispiel kann eine höhere Saugleistung verwendet werden, wenn der Oberflächenreinigungsroboter auf einem Teppich mit dickem Flor arbeitet, da Schmutz sich leicht in den Fasern des Teppichs festsetzen kann und eine höhere Saugleistung erforderlich sein kann, um den Schmutz vom Teppich aufzusammeln. In einem Beispiel kann eine schnellere Hauptbürstengeschwindigkeit verwendet werden, wenn der Roboter auf dicken Teppichen im Vergleich zu Holzböden arbeitet. In einem anderen Beispiel kann der Prozessor Informationen über Bodenbelagstypen in einer Umgebung verwenden, um den Roboter auf bestimmten, von einem Benutzer angegebenen Bodenbelagstypen zu betreiben. Ein Benutzer könnte es beispielsweise vorziehen, dass ein Paketzustellroboter nur auf gefliesten Oberflächen arbeitet, um zu vermeiden, dass Schmutz auf Teppichoberflächen entsteht.

In einigen Ausführungsformen kann ein Benutzer eine Anwendung eines mit dem Roboter gekoppelten Kommunikationsgeräts verwenden, um Fahroberflächentypen (oder andere Informationen wie Bodentypübergänge, Hindernisse usw.) in einem Diagramm der Umgebung anzugeben, um den Prozessor bei der Erkennung zu unterstützen Fahrbahntypen. In solchen Fällen kann der Prozessor einen Fahrbahntyp an einem bestimmten Ort vorhersehen, bevor er auf die Fahrbahn an dem bestimmten Ort trifft. In einigen Ausführungsformen kann der Prozessor die Position von Grenzen zwischen verschiedenen Fahroberflächentypen autonom lernen.

In einigen Ausführungsformen kann der Prozessor die Standorte von Hindernissen (z. B. statisch und dynamisch) auf der Karte markieren. In einigen Ausführungsformen kann die Karte eine spezielle Hinderniskarte sein. In einigen Ausführungsformen kann der Prozessor jedes Mal, wenn ein Hindernis angetroffen wird, den Ort und die Art eines Hindernisses auf der Karte markieren. In einigen Ausführungsformen können die markierten Hindernisse ausgeblendet sein. In einigen Ausführungsformen kann der Prozessor jedem Hindernis einen Abklingfaktor zuweisen und Hindernisse können verschwinden, wenn sie im Laufe der Zeit nicht kontinuierlich beobachtet werden. In einigen Ausführungsformen kann der Prozessor ein Hindernis als dauerhaftes Hindernis markieren, wenn das Hindernis im Laufe der Zeit wiederholt auftritt. Dies kann über verschiedene Parameter gesteuert werden. In einigen Ausführungsformen kann der Prozessor ein Hindernis als dynamisches Hindernis markieren, wenn das Hindernis wiederholt nicht an einer erwarteten Stelle vorhanden ist. Alternativ kann der Prozessor ein dynamisches Hindernis an einem Ort markieren, an dem wiederholt ein unerwartetes Hindernis an dem Ort beobachtet wird. In einigen Ausführungsformen kann der Prozessor ein dynamisches Hindernis an einem Ort markieren, wenn ein solches Hindernis bei einigen Gelegenheiten an dem Ort auftritt, bei anderen jedoch nicht. In einigen Ausführungsformen kann der Prozessor ein dynamisches Hindernis an einer Stelle markieren, an der ein Hindernis unerwartet beobachtet wird, verschwunden ist oder unerwartet aufgetaucht ist. In einigen Ausführungsformen implementiert der Prozessor die oben genannten Methoden zur Identifizierung dynamischer Hindernisse in einer einzigen Arbeitssitzung. In einigen Ausführungsformen wendet der Prozessor eine Dämpfungszeit auf beobachtete Hindernisse an, wobei ein beobachtetes Hindernis nach einiger Zeit aus der Karte oder dem Speicher entfernt wird. In einigen Ausführungsformen verlangsamt der Roboter die Geschwindigkeit und inspiziert den Standort eines beobachteten Hindernisses ein anderes Mal.

In einigen Ausführungsformen kann der Speicher des Roboters eine interne Datenbank mit Hindernissen enthalten, auf die man in der Umgebung wahrscheinlich stößt. In einigen Ausführungsformen kann ein in der Umgebung angetroffenes Hindernis mithilfe verschiedener Sensoren identifiziert werden, um Merkmale des Hindernisses zu erfassen, und der Prozessor kann die Art des Hindernisses auf der Grundlage der internen Datenbank bestimmen. Der Bearbeiter stellt möglicherweise die erhöhte Wahrscheinlichkeit fest, dass sich diese Art von Hindernis in dem Bereich der Umgebung befindet, in dem es angetroffen wurde. In einigen Ausführungsformen kann der Prozessor den Standort auf der Karte markieren. In einigen Ausführungsformen kann der Prozessor außerdem bestimmen, ob ein Hindernis vom Roboter überwunden werden kann. Wenn dies der Fall ist, versucht der Roboter möglicherweise, über das Hindernis zu fahren. Wenn der Roboter jedoch auf ein großes Hindernis, beispielsweise einen Stuhl oder einen Tisch, trifft, stellt der Prozessor möglicherweise fest, dass er das Hindernis nicht überwinden kann, und versucht möglicherweise, das Hindernis zu umgehen und seinen Weg fortzusetzen. In einigen Ausführungsformen können Regionen, in denen ständig auf Hindernisse gestoßen wird, vom Prozessor als Bereich mit hoher Hindernisdichte klassifiziert und in der Karte der Umgebung markiert werden. In einigen Ausführungsformen versucht der Prozessor möglicherweise, seinen Weg zu ändern, um Bereiche mit hoher Hindernisdichte zu vermeiden. In einigen Ausführungsformen kann der Prozessor einen Benutzer warnen, wenn ein unerwartetes Hindernis den Weg des Roboters blockiert, insbesondere wenn der Roboter das Hindernis möglicherweise nicht durch Manövrieren oder Überfahren des Hindernisses überwinden kann. Der Roboter kann den Benutzer warnen, indem er ein Geräusch erzeugt, eine Nachricht an eine Anwendung eines Kommunikationsgeräts sendet, eine Nachricht auf einem Bildschirm des Roboters anzeigt, Lichter aufleuchtet und dergleichen.

In einigen Ausführungsformen können Daten von einem Sensor verwendet werden, um eine L2-Norm für ein nächstgelegenes Hindernis im Sichtfeld des Sensors bereitzustellen. Die Genauigkeit einer solchen Beobachtung kann auf die Auflösung oder Anwendung des Sensors beschränkt sein oder der Atmosphäre innewohnen. In einigen Ausführungsformen können intrinsische Einschränkungen überwunden werden, indem der Prozessor trainiert wird, eine bessere Schätzung aus den Beobachtungen basierend auf einem spezifischen Kontext der Anwendung des Empfängers bereitzustellen. In einigen Ausführungsformen kann eine Variation des Gradientenabfalls verwendet werden, um die Beobachtungen zu verbessern. In einigen Ausführungsformen kann das Problem weiter verarbeitet werden, um von einem Intensitätsproblem in ein Klassifizierungsproblem umzuwandeln, wobei der Prozessor eine aktuelle Beobachtung einem oder mehreren aus einem Satz möglicher Etiketten zuordnen kann. Beispielsweise kann eine Beobachtung auf 12 Millimeter und eine andere Beobachtung auf 13 Millimeter abgebildet werden. In einigen Ausführungsformen kann der Prozessor eine Tabellensuchtechnik verwenden, um die Leistung zu verbessern. In einigen Ausführungsformen kann der Prozessor jede Beobachtung einem voraussichtlichen möglichen Zustand zuordnen, der durch eine Tabellensuche ermittelt wird. In einigen Ausführungsformen können Dreiecks- oder Gaußsche Methoden verwendet werden, um den Zustand einer optimierten nächsten Möglichkeit zuzuordnen, anstatt auf einen nächsten Zustand aufzurunden, der durch eine Auflösung definiert ist. In einigen Ausführungsformen kann es zu einem kurzen Messwert kommen, wenn der Raum zwischen dem Empfänger (oder Sender) und der zu messenden Oberfläche (oder dem zu messenden Objekt) durch eine unerwünschte Anwesenheit beeinträchtigt wird. Wenn beispielsweise aufgewirbelte Partikel und Schmutz zwischen einem Empfänger und dem Boden vorhanden sind, kann es zu kurzen Messwerten kommen. In einem anderen Beispiel kann die Anwesenheit einer Person oder eines Haustiers, die vor einem Roboter läuft, kurze Messwerte auslösen. Solche Geräusche können auch mit statistischen Methoden modelliert und optimiert werden. Beispielsweise nimmt die Anwesenheit eines unerwünschten Objekts ab, wenn die Reichweite eines Sensors abnimmt.

In einigen Ausführungsformen kann es zu einem kurzen Messwert kommen, wenn der Raum zwischen dem Empfänger (oder Sender) und der zu messenden Oberfläche (oder dem zu messenden Objekt) durch eine unerwünschte Anwesenheit beeinträchtigt wird. Wenn beispielsweise aufgewirbelte Partikel und Schmutz zwischen einem Empfänger und dem Boden vorhanden sind, kann es zu kurzen Messwerten kommen. In einem anderen Beispiel kann die Anwesenheit einer Person oder eines Haustiers, die vor einem Roboter läuft, kurze Messwerte auslösen. Solche Geräusche können auch mit statistischen Methoden modelliert und optimiert werden. Beispielsweise nimmt die Anwesenheit eines unerwünschten Objekts ab, wenn die Reichweite eines Sensors abnimmt.

In einigen Fällen kann die herkömmliche Hinderniserkennung eine reaktive Methode sein und anfällig für falsch-positive und falsch-negative Ergebnisse sein. Beispielsweise kann bei einer herkömmlichen Methode ein einzelner Sensormesswert zu einem reaktiven Verhalten des Roboters ohne Validierung des Sensormesswerts führen, was zu einer Reaktion auf ein falsch positives Ergebnis führen kann. In einigen Ausführungsformen können probabilistische und Bayes'sche Methoden zur Hinderniserkennung verwendet werden, wodurch die Hinderniserkennung als Klassifizierungsproblem behandelt werden kann. In einigen Ausführungsformen kann der Prozessor einen maschinell erlernten Klassifizierungsalgorithmus verwenden, der alle verfügbaren Beweise nutzen kann, um auf der Grundlage der Wahrscheinlichkeit, dass jedes berücksichtigte Element eine Möglichkeit nahelegt, zu einer Schlussfolgerung zu gelangen. In einigen Ausführungsformen kann der Klassifizierungsalgorithmus einen logistischen Klassifikator oder einen linearen Klassifikator Wx+b=y verwenden, wobei W die Gewichtung und b die Voreingenommenheit ist. In einigen Ausführungsformen kann der Prozessor ein neuronales Netzwerk verwenden, um verschiedene Kostenfunktionen auszuwerten, bevor er sich für eine Klassifizierung entscheidet. In einigen Ausführungsformen kann das neuronale Netzwerk eine Softmax-Aktivierungsfunktion verwenden

S ( j ich ) = e j ich J e j J .
In einigen Ausführungsformen kann die Softmax-Funktion Zahlen (z. B. Logits) als Eingabe- und Ausgabewahrscheinlichkeiten empfangen, deren Summe eins ergibt. In einigen Ausführungsformen kann die Softmax-Funktion einen Vektor ausgeben, der die Wahrscheinlichkeitsverteilungen einer Liste potenzieller Ergebnisse darstellt. In einigen Ausführungsformen kann die Softmax-Funktion dem Gradienten der LogSumExp-Funktion LSE(x) entsprechen1, . . . , XN)=log (zX1+ . . . +eXN. In einigen Ausführungsformen kann LogSumExp, wenn das erste Argument auf Null gesetzt ist, der multivariablen Verallgemeinerung einer Softplus-Funktion mit einer Variablen entsprechen. In einigen Fällen ist die Softplus-Funktion ƒ(x)=log(1+eX) kann als glatte Annäherung an einen Gleichrichter verwendet werden. In einigen Ausführungsformen die Ableitung der Softplus-Funktion

F ' ( X ) = e X 1 + e X = 1 1 + e - X
kann der logistischen Funktion äquivalent sein und die logistische Sigmoidfunktion kann als glatte Näherung der Ableitung des Gleichrichters, der Heaviside-Stufenfunktion, verwendet werden. In einigen Ausführungsformen kann die Softmax-Funktion, bei der das erste Argument auf Null gesetzt ist, der multivariablen Verallgemeinerung der Logistikfunktion entsprechen. In einigen Ausführungsformen kann das neuronale Netzwerk eine Gleichrichteraktivierungsfunktion verwenden. In einigen Ausführungsformen kann der Gleichrichter das Positive seines Arguments ƒ(x)=x sein+=max(0,x), wobei x die Eingabe in ein Neuron ist. In Ausführungsformen können unterschiedliche ReLU-Varianten verwendet werden. ReLUs können beispielsweise Gaußsches Rauschen beinhalten, wobei ƒ(x)=(0,x+Y) mit Y˜N(0,σ(x)) ist, bekannt als Noisy ReLU. In einem Beispiel können ReLUs einen kleinen, positiven Gradienten enthalten, wenn die Einheit inaktiv ist, wobei ƒ(x)={x, wenn x>0,0,01x andernfalls gilt, was als Leaky ReLU bekannt ist. In einigen Fällen können parametrische ReLUs verwendet werden, wobei der Leckagekoeffizient ein Parameter ist, der zusammen mit anderen neuronalen Netzwerkparametern gelernt wird, d. h. ƒ(x)={x, wenn x>0, andernfalls ax. Für a≤1 gilt ƒ(x)=max(x,ax). In einem anderen Beispiel können exponentielle lineare Einheiten verwendet werden, um zu versuchen, die mittleren Aktivierungen auf Null zu reduzieren und somit die Lerngeschwindigkeit zu erhöhen, wobei ƒ(x)={x, wenn x>0, a(eX−1) andernfalls ist a ein Hyperparameter und a≥0 eine Einschränkung. In einigen Ausführungsformen können lineare Variationen verwendet werden. In einigen Ausführungsformen können lineare Funktionen parallel verarbeitet werden. In einigen Ausführungsformen kann die Klassifizierungsaufgabe in mehrere Teilaufgaben unterteilt werden, die parallel berechnet werden können. In einigen Ausführungsformen können Algorithmen so entwickelt werden, dass sie die Vorteile der in gewisser Hardware integrierten Parallelverarbeitung nutzen.

In einigen Ausführungsformen kann der Klassifizierungsalgorithmus (oben beschrieben und andere hierin beschriebene Klassifizierungsalgorithmen) von einem menschlichen Beobachter vorab trainiert oder gekennzeichnet werden. In einigen Ausführungsformen kann der Klassifizierungsalgorithmus nach dem Training getestet und/oder validiert werden. In einigen Ausführungsformen können Training, Tests, Validierung und/oder Klassifizierung fortgesetzt werden, während weitere Sensordaten erfasst werden. In einigen Ausführungsformen können Sensordaten an die Cloud gesendet werden. In einigen Ausführungsformen können Training, Tests, Validierung und/oder Klassifizierung in der Cloud ausgeführt werden. In einigen Ausführungsformen können gekennzeichnete Daten verwendet werden, um die Grundwahrheit zu ermitteln. In einigen Ausführungsformen kann die Grundwahrheit optimiert werden und sich weiterentwickeln, um genauer zu sein, je mehr Daten gesammelt werden. In einigen Ausführungsformen können gekennzeichnete Daten in einen Trainingssatz und einen Testsatz unterteilt werden. In einigen Ausführungsformen können die gekennzeichneten Daten zum Trainieren und/oder Testen des Klassifizierungsalgorithmus durch Dritte verwendet werden. In einigen Ausführungsformen kann die Kennzeichnung zur Bestimmung der Beschaffenheit von Objekten in einer Umgebung verwendet werden. Beispielsweise können Datensätze Daten enthalten, die als Objekte innerhalb eines Hauses gekennzeichnet sind, beispielsweise ein Fernseher und ein Kühlschrank. In einigen Ausführungsformen kann ein Benutzer die Verwendung seiner Daten für verschiedene Zwecke zulassen. Beispielsweise kann ein Benutzer zustimmen, dass seine Daten zur Fehlerbehebung, nicht jedoch zur Klassifizierung verwendet werden. In einigen Ausführungsformen kann eine Reihe von Fragen oder Einstellungen (z. B. über eine Anwendung eines Kommunikationsgeräts zugänglich) es dem Benutzer ermöglichen, die Art seiner Einwilligung spezifisch zu definieren.

In einigen Ausführungsformen kann der Prozessor des Roboters Bereiche, in denen Probleme aufgetreten sind, auf der Karte markieren und in einigen Fällen zukünftige Entscheidungen in Bezug auf diese Bereiche auf der Grundlage der aufgetretenen Probleme treffen. In einigen Ausführungsformen aggregiert der Prozessor Trümmerdaten und generiert eine neue Karte, die Bereiche mit einem höheren Verschmutzungsrisiko markiert. In einigen Ausführungsformen kann der Prozessor des Roboters Bereiche mit hoher Trümmerdichte innerhalb der aktuellen Karte markieren. In einigen Ausführungsformen kann der Prozessor unerwartete Ereignisse in der Karte markieren. Beispielsweise markiert der Prozessor des Roboters ein unerwartetes Ereignis auf der Karte, wenn ein TSSP-Sensor ein unerwartetes Ereignis auf der rechten oder linken Seite des Roboters erkennt, beispielsweise einen unerwarteten Aufstieg.

In einigen Fällen verwendet der Prozessor möglicherweise die Parallelitätskontrolle, die die Regeln definiert, die für die Konsistenz der Daten sorgen. In einigen Ausführungsformen kann der Prozessor von einem Sensor gelesene Daten ignorieren, wenn diese nicht mit den zuvor gelesenen Daten übereinstimmen. Wenn beispielsweise ein Roboter, der auf eine Wand zufährt, über eine Bodenwelle fährt, vergrößert sich der Neigungswinkel des Roboters vorübergehend gegenüber dem Horizont. In diesem bestimmten Moment können die räumlichen Daten einen plötzlichen Anstieg der L2-Normwerte zur Wand anzeigen. Da der Prozessor jedoch weiß, dass der Roboter eine positive Geschwindigkeit hat und die Größe der Geschwindigkeit kennt, markiert der Prozessor die räumlichen Daten, die den plötzlichen Anstieg anzeigen Anstieg als Ausreißer.

In einigen Ausführungsformen kann der Prozessor Entscheidungen auf der Grundlage von Daten von mehr als einem Sensor treffen. Beispielsweise kann der Prozessor eine Wahl, einen Zustand oder ein Verhalten auf der Grundlage der Übereinstimmung oder Nichtübereinstimmung zwischen mehr als einem Sensor bestimmen. Beispielsweise kann eine Übereinstimmung zwischen einigen dieser Sensoren zu einer zuverlässigeren Entscheidung führen (z. B. besteht eine hohe Sicherheit dafür, dass an einem Ort eine Kante vorhanden ist, wenn Daten von N von M Bodensensoren dies anzeigen). In einigen Ausführungsformen kann es sich bei den Sensoren um unterschiedliche Sensortypen handeln (z. B. kann die anfängliche Beobachtung durch einen schnellen Sensor erfolgen und die endgültige Entscheidung kann auf der Beobachtung eines langsameren, zuverlässigeren Sensors basieren). In einigen Ausführungsformen können verschiedene Sensoren verwendet werden und ein trainierter KI-Algorithmus kann verwendet werden, um bestimmte Muster zu erkennen, die auf weitere Details hinweisen können, beispielsweise auf einen Kantentyp (z. B. Ecke gegenüber gerader Kante).

In einigen Ausführungsformen passt der Prozessor des Roboters Einstellungen autonom auf der Grundlage von Umgebungsmerkmalen an, die mithilfe eines oder mehrerer Umgebungssensoren beobachtet werden (z. B. Sensoren, die Attribute einer Fahroberfläche, einer Wand oder einer Oberfläche eines Hindernisses in einer Umgebung erfassen). Beispiele für Verfahren zum Anpassen der Einstellungen eines Roboters basierend auf beobachteten Umgebungseigenschaften sind in der US-Patentanmeldung Nr. 62/735,137 und der Seriennr. Nr. 16/239.410. Beispielsweise kann der Prozessor beim Fahren über Teppich im Vergleich zu Hartholz die den Rädern zugeführte Leistung erhöhen, sodass trotz der zusätzlichen Reibung durch den Teppich eine bestimmte Geschwindigkeit beibehalten werden kann. Der Prozessor kann den Fahrbahntyp mithilfe von Sensordaten bestimmen, wobei beispielsweise Entfernungsmessungen für harte Fahrbahntypen aufgrund der Grasstruktur im Laufe der Zeit konsistenter sind als für weiche Fahrbahnoberflächen. In einigen Ausführungsformen ist der Umgebungssensor kommunikativ mit dem Prozessor des Roboters verbunden und der Prozessor des Roboters verarbeitet die Sensordaten (ein Begriff, der allgemein für Informationen verwendet wird, die auf erfassten Informationen in verschiedenen Phasen einer Verarbeitungspipeline basieren). In einigen Ausführungsformen umfasst der Sensor einen eigenen Prozessor zur Verarbeitung der Sensordaten. Zu den Beispielen für Sensoren gehören unter anderem Bodensensoren, Trümmersensoren, Hindernissensoren, Klippensensoren, akustische Sensoren, Kameras, Bodensensoren, Trümmersensoren, Hindernissensoren, Klippensensoren, Akustiksensoren, Kameras usw. optische Sensoren, Abstandssensoren, Bewegungssensoren, taktile Sensoren, elektrische Stromsensoren und dergleichen. In einigen Ausführungsformen kann das oben beschriebene optoelektronische System verwendet werden, um Bodentypen beispielsweise auf der Grundlage der Lichtreflexion zu erkennen. Beispielsweise ist die Lichtreflexion einer harten Oberfläche, beispielsweise eines Hartholzbodens, scharf und konzentriert, während die Lichtreflexion einer weichen Oberfläche, beispielsweise eines Teppichs, aufgrund der Textur der Oberfläche gestreut wird. In einigen Ausführungsformen kann der Bodentyp vom Prozessor verwendet werden, um die erstellten Räume oder Zonen zu identifizieren, da verschiedene Räume oder Zonen einen bestimmten Bodenbelagstyp umfassen. In einigen Ausführungsformen kann das optoelektronische System gleichzeitig als Klippensensor verwendet werden, wenn es entlang der Seiten des Roboters positioniert wird. Beispielsweise ist das von einer Klippe reflektierte Licht viel schwächer als das von der Fahrbahnoberfläche reflektierte Licht. In einigen Ausführungsformen kann das optoelektronische System auch als Schmutzsensor verwendet werden. Beispielsweise können die Muster im in den aufgenommenen Bildern reflektierten Licht auf eine Ansammlung von Schmutz, einen Grad der Ansammlung von Schmutz (z. B. hoch oder niedrig), eine Art von Schmutz (z. B. Staub, Haare, feste Partikel) oder den Zustand hinweisen die Trümmer (z. B. fest oder flüssig) und eine Größe der Trümmer (z. B. klein oder groß). In einigen Ausführungsformen werden Bayes'sche Techniken angewendet. In einigen Ausführungsformen kann der Prozessor die Datenausgabe des optoelektronischen Systems verwenden, um eine a-priori-Messung durchzuführen (z. B. den Grad der Schmutzansammlung oder die Art der Schmutzpartikel oder die Art des Bodens), und er kann die Datenausgabe eines anderen Sensors verwenden, um eine nachträgliche Messung zur Verbesserung durchzuführen die Wahrscheinlichkeit, richtig zu liegen. Beispielsweise kann der Prozessor mögliche Räume oder Zonen, in denen sich der Roboter befindet, a priori basierend auf dem Bodentyp auswählen, der mithilfe der Datenausgabe des optoelektronischen Sensors erkannt wurde, und dann die Auswahl von Räumen oder Zonen später basierend auf der vom Tiefensensor ermittelten Türerkennung verfeinern Daten. In einigen Ausführungsformen werden die Ausgabedaten des optoelektronischen Systems in den oben beschriebenen Verfahren zur Aufteilung der Umgebung in zwei oder mehr Zonen verwendet.

Der eine oder die mehreren Umgebungssensoren können verschiedene Attribute eines oder mehrerer dieser Merkmale einer Umgebung erfassen, z. B. Partikeldichte, Rollwiderstand der Roboterräder, Härte, Position, Teppichtiefe, Gleitreibung der Roboterbürsten, Härte, Farbe , akustisches Reflexionsvermögen, optisches Reflexionsvermögen, Ebenheit, akustische Reaktion einer Oberfläche auf eine Bürste und dergleichen. In einigen Ausführungsformen nimmt der Sensor Messwerte der Umgebung vor (z. B. regelmäßig, etwa öfter als einmal alle 5 Sekunden, jede Sekunde, alle 500 ms, alle 100 ms oder dergleichen) und der Prozessor erhält die Sensordaten. In einigen Ausführungsformen sind die erfassten Daten mit Standortdaten des Roboters verknüpft, die den Standort des Roboters zum Zeitpunkt der Erfassung der Sensordaten angeben. In einigen Ausführungsformen leitet der Prozessor Umgebungseigenschaften aus den sensorischen Daten ab (z. B. Klassifizierung der lokalen Umgebung des erfassten Standorts innerhalb einer bestimmten Schwellenentfernung oder über ein Polygon wie ein Rechteck als Teil einer Umgebungsart innerhalb einer Ontologie, beispielsweise einer hierarchischen Ontologie). ). In einigen Ausführungsformen leitet der Prozessor Eigenschaften der Umgebung in Echtzeit (z. B. während einer Reinigungs- oder Kartierungssitzung, mit 10 Sekunden Erfassung, innerhalb von 1 Sekunde nach Erfassung oder schneller) aus Echtzeit-Sensordaten ab. In einigen Ausführungsformen passt der Prozessor verschiedene Betriebsparameter von Aktoren an, wie Geschwindigkeit, Drehmoment, Arbeitszyklus, Frequenz, Anstiegsgeschwindigkeit, Durchflussrate, Druckabfall, Temperatur, Bürstenhöhe über dem Boden oder zeitliche Ableitungen zweiter oder dritter Ordnung davon . Beispielsweise passen einige Ausführungsformen die Geschwindigkeit von Komponenten (z. B. Hauptbürste, Peripheriebürste, Rad, Laufrad, Rasenmähermesser usw.) basierend auf den abgeleiteten Umgebungseigenschaften an (in einigen Fällen in Echtzeit gemäß den vorangehenden Schiebefenstern). von Zeit). In einigen Ausführungsformen aktiviert oder deaktiviert der Prozessor Funktionen (z. B. Staubsaugen, Wischen, UV-Sterilisation, Graben, Mähen, Salzverteilung usw.) (oder moduliert deren Intensität) basierend auf den abgeleiteten Umgebungseigenschaften (ein Begriff, der weit gefasst wird und dazu gehört). Klassifizierung und Wertung). In anderen Fällen passt der Prozessor einen Bewegungspfad, einen Betriebsplan (z. B. die Zeit, zu der verschiedene bestimmte Bereiche bearbeitet oder Vorgänge ausgeführt werden) und dergleichen basierend auf sensorischen Daten an. Beispiele für Umgebungsmerkmale sind die Art der Fahrbahn, die Hindernisdichte, der Raumtyp, der Grad der Schmutzansammlung, der Grad der Benutzeraktivität, die Zeit der Benutzeraktivität usw.

In einigen Ausführungsformen markiert der Prozessor des Roboters abgeleitete Umgebungsmerkmale verschiedener Orte der Umgebung innerhalb einer Karte der Umgebung basierend auf Beobachtungen aus allen oder einem Teil der aktuellen und/oder historischen Sensordaten. In einigen Ausführungsformen modifiziert der Prozessor die Umgebungseigenschaften verschiedener Orte innerhalb der Umgebungskarte, wenn neue sensorische Daten erfasst und mit zuvor erfassten sensorischen Daten oder basierend auf Aktionen des Roboters (z. B. Betriebsverlauf) aggregiert werden. Beispielsweise bestimmt der Prozessor eines Straßenkehrroboters in einigen Ausführungsformen die Wahrscheinlichkeit, dass an einem Ort unterschiedliche Grade der Trümmeransammlung vorliegen (z. B. die Wahrscheinlichkeit, dass ein bestimmter Ort eine geringe, mittlere und hohe Trümmeransammlung aufweist), basierend auf den Sensordaten. Wenn der Standort mit hoher Wahrscheinlichkeit eine hohe Schmutzansammlung aufweist und gerade gereinigt wurde, verringert der Prozessor die Wahrscheinlichkeit, dass der Standort eine hohe Schmutzansammlung aufweist, und erhöht die Wahrscheinlichkeit einer geringen Schmutzansammlung. Basierend auf erfassten Daten können einige Ausführungsformen verschiedene Bereiche einer Arbeitsumgebung nach verschiedenen Dimensionen klassifizieren oder bewerten, z. B. durch Klassifizierung nach Fahrflächentyp in einer hierarchischen Fahrflächentyp-Ontologie oder nach einer Schmutzansammlungsbewertung nach Schmutzdichte oder -rate Akkumulation.

In einigen Ausführungsformen ist die Karte der Umgebung eine Gitterkarte, wobei die Karte in Zellen (z. B. Einheitskacheln in regelmäßiger oder unregelmäßiger Kachelung) unterteilt ist, wobei jede Zelle einen anderen Ort innerhalb der Umgebung darstellt. In einigen Ausführungsformen unterteilt der Prozessor die Karte, um eine Gitterkarte zu bilden. In einigen Ausführungsformen ist die Karte eine kartesische Koordinatenkarte, während in anderen Ausführungsformen die Karte von einem anderen Typ ist, beispielsweise einer polaren, homogenen oder sphärischen Koordinatenkarte. In einigen Ausführungsformen sammelt der Umgebungssensor Daten, während der Roboter durch die Umgebung navigiert oder innerhalb der Umgebung arbeitet, während der Prozessor die Umgebung kartiert. In einigen Ausführungsformen ordnet der Prozessor jeden oder einen Teil der Umgebungssensormesswerte der bestimmten Zelle der Gitterkarte zu, in der sich der Roboter befand, als die bestimmten Sensormesswerte erfasst wurden. In einigen Ausführungsformen ordnet der Prozessor direkt gemessene oder aus Sensormesswerten abgeleitete Umgebungseigenschaften der bestimmten Zelle zu, in der sich der Roboter befand, als die bestimmten Sensormesswerte erfasst wurden. In einigen Ausführungsformen verknüpft der Prozessor Umgebungssensordaten, die von einem festen Sensorgerät und/oder einem anderen Roboter erhalten wurden, mit Zellen der Gitterkarte. In einigen Ausführungsformen arbeitet der Roboter weiterhin in der Umgebung, bis Daten vom Umgebungssensor für jede oder eine ausgewählte Anzahl von Zellen der Gitterkarte erfasst werden. In einigen Ausführungsformen umfassen die (vorhergesagten oder gemessenen oder abgeleiteten) Umgebungseigenschaften, die den Zellen der Gitterkarte zugeordnet sind, einen Fahrbahntyp, sind aber nicht darauf beschränkt (was nicht bedeuten soll, dass in allen Ausführungsformen eine andere beschriebene Eigenschaft erforderlich ist). , ein Raum- oder Bereichstyp, eine Art Fahrflächenübergang, ein Ausmaß der Trümmeransammlung, eine Art von Trümmern, eine Größe von Trümmern, eine Häufigkeit der Begegnung mit Trümmeransammlungen, Tag und Uhrzeit der Begegnung mit Trümmeransammlungen, ein Grad der Benutzeraktivität , ein Zeitpunkt der Benutzeraktivität, eine Hindernisdichte, ein Hindernistyp, eine Hindernisgröße, eine Häufigkeit der Begegnung mit einem bestimmten Hindernis, ein Tag und eine Uhrzeit der Begegnung mit einem bestimmten Hindernis, ein Verkehrsaufkommen, eine Fahrbahnqualität, eine Gefahr, usw. In einigen Ausführungsformen basieren die mit Zellen der Gitterkarte verknüpften Umgebungsmerkmale auf Sensordaten, die während mehrerer Arbeitssitzungen gesammelt wurden, wobei den Merkmalen auf der Grundlage von Beobachtungen der Umgebung im Laufe der Zeit eine Wahrscheinlichkeit zugewiesen wird, dass sie wahr sind.

In einigen Ausführungsformen verknüpft der Prozessor (z. B. im Speicher des Roboters) Informationen wie Datum, Uhrzeit und Standort mit jedem Sensormesswert oder anderen darauf basierenden Umgebungsmerkmalen. In einigen Ausführungsformen ordnet der Prozessor Informationen nur einem Teil der Sensormesswerte zu. In einigen Ausführungsformen speichert der Prozessor alle oder einen Teil der Umgebungssensordaten und alle oder einen Teil aller anderen mit den Umgebungssensordaten verbundenen Daten in einem Speicher des Roboters. In einigen Ausführungsformen verwendet der Prozessor die aggregierten gespeicherten Daten zur Optimierung (ein Begriff, der hier verwendet wird, um sich auf eine Verbesserung im Vergleich zu früheren Konfigurationen zu beziehen und kein globales Optimum erfordert) von Vorgängen innerhalb der Umgebung, indem er die Einstellungen von Komponenten so anpasst, dass sie ideal sind (oder auf andere Weise verbessert) für die besonderen Umwelteigenschaften des Standorts, der gewartet wird oder gewartet werden soll.

In einigen Ausführungsformen generiert der Prozessor bei jeder Arbeitssitzung eine neue Rasterkarte mit neuen Eigenschaften, die jeder oder einem Teil der Zellen der Rasterkarte zugeordnet sind. Beispielsweise kann jeder Einheitskachel eine Vielzahl von Umgebungsmerkmalen zugeordnet sein, etwa Klassifizierungen in einer Ontologie oder Bewertungen in verschiedenen Dimensionen, wie die oben besprochenen. In einigen Ausführungsformen kompiliert der Prozessor die am Ende einer Arbeitssitzung generierte Karte mit einer aggregierten Karte, die auf einer Kombination von Karten basiert, die während jeder oder eines Teils früherer Arbeitssitzungen generiert wurden. In einigen Ausführungsformen integriert der Prozessor die während einer Arbeitssitzung gesammelten Daten direkt in die aggregierte Karte, entweder nach der Arbeitssitzung oder in Echtzeit, während die Daten gesammelt werden. In einigen Ausführungsformen aggregiert der Prozessor die aktuell erfassten Sensordaten mit allen oder einem Teil der Sensordaten, die zuvor während früherer Arbeitssitzungen des Roboters erfasst wurden (z. B. konsolidiert er mehrere Werte zu einem einzigen Wert auf der Grundlage der mehreren Werte). In einigen Ausführungsformen aggregiert der Prozessor auch alle oder einen Teil der Sensordaten, die von Sensoren anderer Roboter oder festen Sensorgeräten, die die Umgebung überwachen, erfasst werden.

In einigen Ausführungsformen bestimmt der Prozessor (z. B. eines Roboters oder eines Remote-Serversystems, von denen einer (oder eine Kombination davon) die verschiedenen hier beschriebenen logischen Operationen implementieren kann) Wahrscheinlichkeiten von Umgebungsmerkmalen (z. B. ein Hindernis, ein Fahrbahntyp, Art des Fahrbahnübergangs, Raum- oder Bereichstyp, Ausmaß der Schmutzansammlung, Art oder Größe von Trümmern, Hindernisdichte, Verkehrsdichte, Fahrbahnqualität usw.), die an einem bestimmten Ort vorhanden sind die Umgebung basierend auf aktuellen Sensordaten und Sensordaten, die während vorheriger Arbeitssitzungen gesammelt wurden. Beispielsweise aktualisiert der Prozessor in einigen Ausführungsformen Wahrscheinlichkeiten für verschiedene Fahrbahntypen, die an einem bestimmten Ort der Umgebung vorhanden sind, basierend auf dem aktuell abgeleiteten Fahrbahntyp des bestimmten Standorts und den zuvor während der vorherigen Arbeit abgeleiteten Fahrbahntypen des bestimmten Standorts Sitzungen des Roboters und/oder anderer Roboter oder fest installierter Sensorgeräte, die die Umgebung überwachen. In einigen Ausführungsformen aktualisiert der Prozessor die Gesamtkarte nach jeder Arbeitssitzung. In einigen Ausführungsformen passt der Prozessor die Geschwindigkeit von Komponenten an und/oder aktiviert/deaktiviert Funktionen basierend auf Umgebungseigenschaften mit der höchsten Wahrscheinlichkeit, dass sie an dem bestimmten Standort des Roboters vorhanden sind, so dass sie ideal für die vorhergesagten Umgebungseigenschaften sind. Basierend auf aggregierten sensorischen Daten besteht beispielsweise eine 85-prozentige Wahrscheinlichkeit, dass es sich bei der Art der Fahrfläche an einem bestimmten Ort um Hartholz handelt, eine 5-prozentige Wahrscheinlichkeit, dass es sich um Teppich handelt, und eine 10-prozentige Wahrscheinlichkeit, dass es sich um Fliesen handelt. Der Prozessor passt die Geschwindigkeit der Komponenten an die ideale Geschwindigkeit für Hartholzböden an, da die Wahrscheinlichkeit hoch ist, dass der Standort über Hartholzböden verfügt. Einige Ausführungsformen können Einheitskacheln in eine Bodenbelag-Ontologie klassifizieren, und Einträge in dieser Ontologie können im Speicher verschiedenen Betriebseigenschaften von Aktuatoren des Roboters zugeordnet werden, die angewendet werden sollen.

In einigen Ausführungsformen verwendet der Prozessor die aggregierte Karte, um Bereiche vorherzusagen, in denen ein hohes Risiko für einen Strömungsabriss, eine Kollision mit Hindernissen und/oder ein Verfangen mit einem Hindernis besteht. In einigen Ausführungsformen zeichnet der Prozessor den Ort jedes solchen Vorkommnisses auf und markiert die entsprechende(n) Gitterzelle(n), in der das Vorkommnis stattgefunden hat. Beispielsweise verwendet der Prozessor aggregierte Hindernissensordaten, die über mehrere Arbeitssitzungen gesammelt wurden, um Bereiche mit hoher Wahrscheinlichkeit von Kollisionen zu bestimmen, oder aggregierte elektrische Stromsensoren eines peripheren Bürstenmotors oder Motors eines anderen Geräts, um Bereiche mit hoher Wahrscheinlichkeit eines erhöhten elektrischen Stroms aufgrund von zu bestimmen Verstrickung mit einem Hindernis. In einigen Ausführungsformen veranlasst der Prozessor den Roboter, Besuche in solchen Bereichen zu vermeiden oder zu reduzieren.

In einigen Ausführungsformen verwendet der Prozessor die aggregierte Karte, um einen Navigationspfad innerhalb der Umgebung zu bestimmen, der in einigen Fällen einen Abdeckungspfad in verschiedenen Bereichen umfassen kann (z. B. Bereiche, die Ansammlungen benachbarter Einheitenkacheln umfassen, wie Räume in einem Mehrraum). Arbeitsumgebung). Basierend auf den Umgebungsmerkmalen verschiedener Standorte innerhalb der Gesamtkarte können verschiedene Navigationspfade implementiert werden. Beispielsweise kann der Prozessor einen Bewegungspfad generieren, der Bereiche abdeckt, die nur eine niedrige Drehzahl des Laufradmotors erfordern (z. B. Bereiche mit geringer Schmutzansammlung, Bereiche mit Hartholzböden usw.), wenn festgestellt wird, dass sich Personen in der Umgebung aufhalten oder deren Anwesenheit vorhergesagt wird um Lärmbelästigungen zu reduzieren. In einem anderen Beispiel generiert der Prozessor einen Bewegungspfad (er bildet z. B. eine neue Instanz oder wählt eine vorhandene Instanz aus), der Bereiche abdeckt, in denen sich mit hoher Wahrscheinlichkeit ein hohes Maß an Schmutzansammlungen ansammelt; z. B. kann ein Bewegungspfad ausgewählt werden, der einen ersten Bereich abdeckt mit einer ersten historischen Rate der Trümmeransammlung und deckt kein zweites Gebiet mit einer zweiten, niedrigeren, historischen Rate der Trümmeransammlung ab.

In einigen Ausführungsformen verwendet der Prozessor des Roboters Echtzeit-Umgebungssensordaten (oder daraus abgeleitete Umgebungseigenschaften) oder aus verschiedenen Arbeitssitzungen aggregierte Umgebungssensordaten oder Informationen aus der aggregierten Karte der Umgebung, um die Geschwindigkeit von Komponenten und/oder Komponenten dynamisch anzupassen. oder Funktionen des Roboters während des Betriebs in einer Umgebung aktivieren/deaktivieren. Beispielsweise kann ein elektrischer Stromsensor verwendet werden, um die von einem Motor einer Hauptbürste aufgenommene Strommenge in Echtzeit zu messen. Der Prozessor kann anhand der entnommenen Strommenge auf die Art der Fahroberfläche schließen und als Reaktion darauf die Geschwindigkeit der Komponenten so anpassen, dass sie für den jeweiligen Fahroberflächentyp ideal sind. Wenn beispielsweise der vom Motor der Hauptbürste aufgenommene Strom hoch ist, kann der Prozessor daraus schließen, dass sich ein Roboterstaubsauger auf einem Teppich befindet, da mehr Leistung erforderlich ist, um die Hauptbürste auf einem Teppich mit einer bestimmten Geschwindigkeit zu drehen, als auf einem Hartboden (z. B. Holz oder Fliesen). Als Reaktion auf die Schlussfolgerung des Teppichs kann der Prozessor die Geschwindigkeit der Hauptbürste und des Laufrads erhöhen (oder das angelegte Drehmoment erhöhen, ohne die Geschwindigkeit zu ändern, oder Geschwindigkeit und Drehmoment erhöhen) und die Geschwindigkeit der Räder für eine gründlichere Reinigung verringern. Einige Ausführungsformen können als Reaktion auf eine ähnliche Schlussfolgerung eine Bürste anheben oder absenken, z. B. das Absenken einer Bürste, um eine gründlichere Reinigung zu erreichen. In ähnlicher Weise kann ein elektrischer Stromsensor, der den von einem Motor eines Rads aufgenommenen Strom misst, verwendet werden, um die Art der Fahroberfläche vorherzusagen, da zum Beispiel Teppich oder Gras eine höhere Stromaufnahme durch den Motor erfordern, um aufrechtzuerhalten eine bestimmte Geschwindigkeit im Vergleich zu hartem Fahrbelag. In einigen Ausführungsformen aggregiert der Prozessor den während verschiedener Arbeitssitzungen gemessenen Motorstrom und bestimmt anhand der aggregierten Daten Anpassungen der Geschwindigkeit von Komponenten. In einem anderen Beispiel nimmt ein Abstandssensor Abstandsmessungen vor und der Prozessor leitet anhand der Abstandsmessungen die Art der Fahroberfläche ab. Beispielsweise leitet der Prozessor die Art der Fahroberfläche aus Distanzmessungen eines Flugzeitsensors („TOF“) ab, der beispielsweise auf der Unterseite des Roboters als harte Fahroberfläche positioniert ist Im Laufe der Zeit werden konsistente Abstandsmessungen beobachtet (bis auf einen Schwellenwert) und eine weiche Fahroberfläche, wenn Unregelmäßigkeiten in den Messwerten aufgrund der Beschaffenheit von beispielsweise Teppich oder Gras beobachtet werden. In einem weiteren Beispiel verwendet der Prozessor Sensorwerte eines Bildsensors mit mindestens einem IR-Strahler oder einem anderen strukturierten Licht, das auf der Unterseite des Roboters positioniert ist, um auf die Art der Fahroberfläche zu schließen. Der Prozessor beobachtet die Signale, um auf die Art der Fahroberfläche zu schließen. Beispielsweise erzeugen Fahrflächen wie Teppiche oder Gras aufgrund ihrer Beschaffenheit im Vergleich zu harten Fahrflächen stärker verzerrte und gestreute Signale. Der Prozessor kann diese Informationen verwenden, um auf die Art der Fahroberfläche zu schließen.

In einigen Ausführungsformen schließt der Prozessor aus sensorischen Daten eines Bewegungssensors auf die Anwesenheit von Benutzern (z. B. während der Roboter statisch ist oder wenn ein Sensor so konfiguriert ist, dass er Signale von der Bewegung des Roboters selbst zurückweist). Als Reaktion auf die Schlussfolgerung, dass Benutzer anwesend sind, kann der Prozessor die Motorgeschwindigkeit von Komponenten (z. B. die Geschwindigkeit des Laufradmotors) reduzieren, um die Lärmbelästigung zu verringern. In einigen Ausführungsformen leitet der Prozessor aus sensorischen Daten eines Audiosensors den Grad der Schmutzansammlung ab. Beispielsweise leitet der Prozessor anhand des aufgezeichneten Geräuschpegels einen bestimmten Grad der Schmutzansammlung und/oder eine bestimmte Art von Schmutz ab. Beispielsweise unterscheidet der Prozessor zwischen dem akustischen Signal großer Feststoffpartikel, kleiner Feststoffpartikel oder Luft, um die Art des Schmutzes zu bestimmen, und identifiziert anhand der Dauer verschiedener akustischer Signale Bereiche mit einer größeren Menge an Schmutzansammlungen. Als Reaktion auf die Beobachtung einer hohen Schmutzansammlung erhöht der Prozessor eines Oberflächenreinigungsroboters beispielsweise die Laufradgeschwindigkeit für eine stärkere Saugkraft und reduziert die Radgeschwindigkeiten, um mehr Zeit zum Sammeln der Schmutzpartikel zu haben. In einigen Ausführungsformen leitet der Prozessor mithilfe eines IR-Senders und -Empfängers, die entlang des Trümmerflusspfads positioniert sind, den Grad der Trümmeransammlung ab, wobei eine verringerte Signaldichte auf eine erhöhte Trümmeransammlung hinweist. In einigen Ausführungsformen leitet der Prozessor den Grad der Schmutzansammlung anhand von Daten ab, die von einem bildgebenden Gerät erfasst werden, das entlang des Schmutzflusspfads positioniert ist. In anderen Fällen verwendet der Prozessor Daten von einem IR-Näherungssensor, der auf die Oberfläche gerichtet ist, da verschiedene Oberflächen (z. B. sauberer Hartholzboden, schmutziger Hartholzboden mit dicker Staubschicht usw.) unterschiedliche Reflexionsgrade aufweisen und dadurch unterschiedliche Signalausgaben erzeugen. In einigen Fällen verwendet der Prozessor Daten von einem Gewichtssensor einer Mülltonne, um Schmutz zu erkennen und die Menge des gesammelten Schmutzes abzuschätzen. In einigen Fällen wird ein piezoelektrischer Sensor in einem Schmutzaufnahmebereich des Roboters platziert, sodass Schmutz mit dem Sensor in Kontakt kommen kann. Der Prozessor verwendet die Daten des piezoelektrischen Sensors, um die Menge des gesammelten Schmutzes und die Art des Schmutzes anhand der vom Sensor gemessenen Stärke und Dauer der Kraft zu erkennen. In einigen Ausführungsformen erfasst eine Kamera Bilder eines Trümmeraufnahmebereichs und der Prozessor analysiert die Bilder, um Trümmer zu erkennen, die Menge der angesammelten Trümmer zu schätzen (z. B. im Laufe der Zeit oder über einen Bereich) und die Art der angesammelten Trümmer zu bestimmen. In einigen Ausführungsformen projiziert ein IR-Strahler ein Muster aus Punkten oder Linien auf ein Objekt im Sichtfeld der Kamera. Die Kamera nimmt Bilder des projizierten Musters auf, wobei das Muster je nach Menge und Art der gesammelten Trümmer auf unterschiedliche Weise verzerrt wird. Der Prozessor analysiert die Bilder, um zu erkennen, wann Trümmer angesammelt werden, und um die Menge und Art der angesammelten Trümmer abzuschätzen. In einigen Ausführungsformen leitet der Prozessor aus sensorischen Daten eines Hindernissensors einen Grad der Hindernisdichte ab. Wenn beispielsweise eine hohe Hindernisdichte festgestellt wird, reduziert der Prozessor die Radgeschwindigkeiten, um Kollisionen zu vermeiden. In manchen Fällen passt der Prozessor eine Bildrate (oder Geschwindigkeit) eines Bildgebungsgeräts und/oder eine Rate (oder Geschwindigkeit) der Datenerfassung eines Sensors basierend auf sensorischen Daten an.

In einigen Ausführungsformen umfasst ein Speicher des Roboters eine interne Datenbank mit Arten von Trümmern, die in der Umgebung wahrscheinlich anzutreffen sind. In einigen Ausführungsformen identifiziert der Prozessor die Art der in der Umgebung gesammelten Trümmer, indem er die Daten verschiedener Sensoren verwendet, die die Merkmale der Trümmer erfassen (z. B. Kamera, Drucksensor, akustischer Sensor usw.) und diese Merkmale mit Merkmalen anderer vergleicht Arten von Trümmern, die in der internen Datenbank gespeichert sind. In einigen Ausführungsformen bestimmt der Prozessor die Wahrscheinlichkeit der Ansammlung einer bestimmten Art von Trümmern in verschiedenen Bereichen der Umgebung, beispielsweise basierend auf aktuellen und historischen Daten. Beispielsweise stößt ein Roboter auf angesammelte Hundehaare auf der Oberfläche. Bildsensoren des Roboters erfassen Bilder der Trümmer und der Prozessor analysiert die Bilder, um Merkmale der Trümmer zu bestimmen. Der Prozessor vergleicht die Merkmale mit denen verschiedener Schmutzarten in der internen Datenbank und ordnet sie Hundehaaren zu. Der Prozessor markiert die Region, in der Hundehaare gefunden wurden, in einer Umgebungskarte als Region mit erhöhter Wahrscheinlichkeit, Hundehaare zu finden. Der Prozessor erhöht die Wahrscheinlichkeit, in dieser bestimmten Region auf Hundehaare zu stoßen, mit zunehmender Häufigkeit. In einigen Ausführungsformen bestimmt der Prozessor außerdem, ob die Art des angetroffenen Schmutzes durch eine Reinigungsfunktion des Roboters gereinigt werden kann. Beispielsweise stellt ein Prozessor eines Roboterstaubsaugers fest, dass es sich bei dem angetroffenen Schmutz um eine Flüssigkeit handelt und dass der Roboter nicht in der Lage ist, den Schmutz zu entfernen. In einigen Ausführungsformen kommuniziert der Prozessor des Roboters, der nicht in der Lage ist, die bestimmte Art von identifiziertem Schmutz zu entfernen, beispielsweise mit einem Prozessor eines anderen Roboters, der in der Lage ist, den Schmutz aus der Umgebung zu entfernen. In einigen Ausführungsformen vermeidet der Prozessor des Roboters die Navigation in Bereichen, in denen bestimmte Arten von Trümmern erkannt wurden.

In einigen Ausführungsformen kann der Prozessor die Geschwindigkeit von Komponenten anpassen, Aktionen des Roboters auswählen und Einstellungen des Roboters anpassen, jeweils als Reaktion auf Echtzeit- oder aggregierte (d. h. historische) Sensordaten (oder daraus abgeleitete Daten). Beispielsweise kann der Prozessor die Geschwindigkeit oder das Drehmoment eines Hauptbürstenmotors, eines Laufradmotors, eines peripheren Bürstenmotors oder eines Radmotors anpassen, die UV-Behandlung durch ein zur Emission konfiguriertes UV-Licht aktivieren oder deaktivieren (oder die Leuchtkraft oder Frequenz ändern). B. unter einem Roboter, Dampfwischen, Wischen mit Flüssigkeiten (z. B. Modulieren der Flussrate von Seife oder Wasser), Fegen oder Staubsaugen (z. B. Modulieren des Druckabfalls oder der Flussrate), Festlegen eines Zeitplans, Anpassen eines Pfads usw. als Reaktion auf die Realität -zeitliche oder aggregierte Sensordaten (oder daraus abgeleitete Umgebungsmerkmale). In einem Fall kann der Prozessor des Roboters einen Pfad basierend auf der angesammelten Trümmeransammlung bestimmen, sodass der Pfad zunächst Bereiche mit hoher Wahrscheinlichkeit einer hohen Trümmeransammlung (im Vergleich zu anderen Bereichen der Umgebung) und dann Bereiche mit hoher Wahrscheinlichkeit abdeckt von geringer Schmutzansammlung. Oder der Prozessor kann einen Weg festlegen, der auf der Reinigung aller Bereiche mit einem ersten Bodenbelagstyp basiert, bevor er alle Bereiche mit einem zweiten Bodenbelagstyp reinigt. In einem anderen Fall kann der Prozessor des Roboters die Geschwindigkeit eines Laufradmotors basierend auf der wahrscheinlichsten Schmutzgröße oder dem Bodentyp in einem Gebiet in der Vergangenheit bestimmen, sodass höhere Geschwindigkeiten in Bereichen mit hoher Wahrscheinlichkeit von großen Schmutzpartikeln oder Teppichen und niedrigere Geschwindigkeiten verwendet werden werden in Bereichen mit hoher Wahrscheinlichkeit von kleinem Schmutz oder hartem Bodenbelag verwendet. In einem anderen Beispiel kann der Prozessor des Roboters anhand historischer Daten, die die Schmutzart in einem bestimmten Bereich angeben, bestimmen, wann eine UV-Behandlung eingesetzt werden soll, sodass Bereiche mit hoher Wahrscheinlichkeit, dass Schmutz vorhanden ist, der gesundheitliche Probleme verursachen kann, wie z. B. Lebensmittel, UV-Strahlung oder Ähnlichem ausgesetzt sind Art der Spezialbehandlung. In einem weiteren Beispiel reduziert der Prozessor die Geschwindigkeit lauter Komponenten, wenn er in einem bestimmten Bereich arbeitet, oder meidet den bestimmten Bereich, wenn aufgrund historischer Daten wahrscheinlich ein Benutzer anwesend ist, um Lärmbelästigungen für den Benutzer zu reduzieren. In einigen Ausführungsformen steuert der Prozessor den Betrieb einer oder mehrerer Komponenten des Roboters basierend auf Umgebungseigenschaften, die aus sensorischen Daten abgeleitet werden. Beispielsweise deaktiviert der Prozessor beim Überfahren von Stellen mit hoher Hindernisdichte eine oder mehrere Randbürsten eines Flächenreinigungsgerätes, um ein Verfangen mit Hindernissen zu vermeiden. In einem anderen Beispiel aktiviert der Prozessor eine oder mehrere periphere Bürsten, wenn er über Stellen mit hoher Schmutzansammlung fährt. In manchen Fällen passt der Prozessor die Geschwindigkeit einer oder mehrerer peripherer Bürsten entsprechend dem Ausmaß der Schmutzansammlung an.

In einigen Ausführungsformen kann der Prozessor des Roboters die Geschwindigkeit von Komponenten und Aktionen des Roboters an einem Standort basierend auf unterschiedlichen Umgebungseigenschaften des Standorts bestimmen. In einigen Ausführungsformen kann der Prozessor bestimmten Umgebungsmerkmalen ein höheres Gewicht (z. B. Wichtigkeit oder Vertrauen) zuweisen, wenn er die Geschwindigkeit von Komponenten und Aktionen des Roboters bestimmt. In einigen Ausführungsformen spezifiziert oder modifiziert eine Eingabe in eine Anwendung des Kommunikationsgeräts (z. B. durch einen Benutzer) Umgebungseigenschaften verschiedener Orte innerhalb der Karte der Umgebung. Beispielsweise können Fahrbahntypen von Standorten, Standorte, an denen wahrscheinlich eine hohe und geringe Ansammlung von Trümmern zu erwarten ist, Standorte, an denen wahrscheinlich eine bestimmte Art oder Größe von Trümmern vorhanden ist, Standorte mit großen Hindernissen usw. mithilfe der Anwendung spezifiziert oder geändert werden Kommunikationsgerät.

In einigen Ausführungsformen kann der Prozessor Techniken des maschinellen Lernens verwenden, um Umgebungseigenschaften mithilfe von Sensordaten vorherzusagen, sodass Anpassungen der Geschwindigkeit von Komponenten des Roboters autonom und in Echtzeit vorgenommen werden können, um sie an die aktuelle Umgebung anzupassen. In einigen Ausführungsformen können Bayes'sche Methoden zur Vorhersage von Umgebungseigenschaften verwendet werden. Um beispielsweise das Vertrauen in Vorhersagen (oder Messungen oder Schlussfolgerungen) von Umgebungsmerkmalen an verschiedenen Orten der Umgebung zu erhöhen, kann der Prozessor einen ersten Satz von Sensordaten verwenden, die von einem ersten Sensor gesammelt wurden, um ein Umgebungsmerkmal vorherzusagen (oder zu messen oder abzuleiten). eines bestimmten Standorts a priori zur Verwendung eines zweiten Satzes von Sensordaten, die von einem zweiten Sensor gesammelt wurden, um eine Umgebungseigenschaft des bestimmten Standorts vorherzusagen. Beispiele für Anpassungen können unter anderem Anpassungen der Geschwindigkeit von Komponenten sein (z. B. eines Reinigungswerkzeugs wie einer Hauptbürste oder Seitenbürste, Rädern, Laufrad, Schneidmesser, Bagger, Salz- oder Düngerverteiler oder anderer abhängiger Komponenten). abhängig vom Robotertyp), Aktivieren/Deaktivieren von Funktionen (z. B. UV-Behandlung, Kehren, Dampf- oder Flüssigkeitswischen, Staubsaugen, Mähen, Pflügen, Salzverteilung, Düngerverteilung, Graben und andere Funktionen je nach Robotertyp), Anpassungen B. an Bewegungspfad, Anpassungen der Aufteilung der Umgebung in Unterbereiche und Betriebsplan usw. In einigen Ausführungsformen kann der Prozessor einen Klassifikator wie etwa ein Faltungs-Neuronales Netzwerk verwenden, um Echtzeit-Sensordaten eines Standorts innerhalb der Umgebung zu klassifizieren verschiedene Umgebungscharakteristikklassen wie Fahrbahntypen, Raum- oder Flächentypen, Grad der Schmutzansammlung, Trümmerarten, Trümmergrößen, Verkehrsaufkommen, Hindernisdichte, menschliche Aktivitätsniveau, Qualität der Fahrbahn und dergleichen. In einigen Ausführungsformen kann der Prozessor die Geschwindigkeit von Komponenten des Roboters basierend auf den aktuellen Umgebungseigenschaften dynamisch und in Echtzeit anpassen. Zunächst kann der Klassifikator so trainiert werden, dass er Sensordaten ordnungsgemäß in verschiedene Umgebungscharakteristikklassen einordnen kann. In einigen Ausführungsformen kann das Training aus der Ferne ausgeführt werden und die Parameter des trainierten Modells können auf den Roboter heruntergeladen werden, was nicht bedeutet, dass hier irgendeine andere Operation am Roboter durchgeführt werden muss. Der Klassifikator kann beispielsweise trainiert werden, indem ihm Trainings- und Zieldaten bereitgestellt werden, die die korrekten Umgebungscharakteristikklassifizierungen der Sensormesswerte in den Trainingsdaten enthalten. Beispielsweise kann der Klassifikator darauf trainiert werden, Stromsensordaten eines Radmotors in verschiedene Fahroberflächentypen zu klassifizieren. Wenn zum Beispiel die Größe des vom Radmotor aufgenommenen Stroms für eine vorgegebene Zeitspanne größer als ein bestimmter Schwellenwert ist, kann der Klassifikator die aktuellen Sensordaten einer Teppich-Fahroberflächentypklasse (oder einer anderen weichen Fahroberfläche, je nach Typ) klassifizieren die Umgebung des Roboters) mit einiger Sicherheit. In anderen Ausführungsformen kann der Prozessor Sensordaten basierend auf der Wertänderung der Sensordaten über einen vorgegebenen Zeitraum oder unter Verwendung von Entropie klassifizieren. Beispielsweise kann der Prozessor aktuelle Sensordaten eines Radmotors auf der Grundlage der Änderung des elektrischen Stroms über einen vorgegebenen Zeitraum oder des Entropiewerts in eine Fahrflächentypklasse klassifizieren. Als Reaktion auf die Vorhersage einer Umgebungseigenschaft, beispielsweise einer Fahrart, kann der Prozessor die Geschwindigkeit von Komponenten so anpassen, dass sie für den Betrieb in einer Umgebung mit den bestimmten vorhergesagten Eigenschaften, beispielsweise einem vorhergesagten Fahrbahntyp, optimal sind. In einigen Ausführungsformen kann das Anpassen der Geschwindigkeit von Komponenten das Anpassen der Geschwindigkeit der Motoren umfassen, die die Komponenten antreiben. In einigen Ausführungsformen kann der Prozessor auch Aktionen und/oder Einstellungen des Roboters als Reaktion auf vorhergesagte (oder gemessene oder abgeleitete) Umgebungseigenschaften eines Standorts auswählen. In anderen Beispielen kann der Klassifizierer Abstandssensordaten, Audiosensordaten oder optische Sensordaten in verschiedene Umgebungscharakteristikklassen klassifizieren (z. B. verschiedene Arten von Fahrflächen, Raum- oder Flächentypen, Grade der Schmutzansammlung, Schmutzarten, Schmutzgrößen, Verkehr). Hindernisniveau, Hindernisdichte, menschliches Aktivitätsniveau, Fahrbahnqualität usw.).

In einigen Ausführungsformen kann der Prozessor Umgebungssensordaten von mehr als einem Sensortyp verwenden, um Vorhersagen von Umgebungseigenschaften zu verbessern. Verschiedene Arten von Sensoren können unter anderem Hindernissensoren, Audiosensoren, Bildsensoren, TOF-Sensoren und/oder Stromsensoren umfassen. In einigen Ausführungsformen kann der Klassifikator mit verschiedenen Arten von Sensordaten versorgt werden und im Laufe der Zeit kann die Gewichtung jedes Typs von Sensordaten bei der Bestimmung der vorhergesagten Ausgabe durch den Klassifikator optimiert werden. Beispielsweise kann ein Klassifikator sowohl elektrische Stromsensordaten eines Radmotors als auch Abstandssensordaten verwenden, um die Fahrart vorherzusagen, wodurch das Vertrauen in die vorhergesagte Art der Fahroberfläche erhöht wird. In einigen Ausführungsformen kann der Prozessor Schwellenwerte, zeitliche Änderungen der Sensordaten, Verzerrungen der Sensordaten und/oder Entropie verwenden, um Umgebungseigenschaften vorherzusagen. In anderen Fällen kann der Prozessor andere Ansätze zum Vorhersagen (oder Messen oder Ableiten) von Umgebungseigenschaften von Standorten innerhalb der Umgebung verwenden.

In einigen Fällen kann ein Benutzer mithilfe einer Anwendung eines Kommunikationsgeräts (wie oben beschrieben) oder einer Schnittstelle des Roboters unterschiedliche Einstellungen für verschiedene Bereiche innerhalb der Umgebung festlegen. Beispielsweise könnte ein Benutzer eine reduzierte Laufradgeschwindigkeit in Schlafzimmern bevorzugen, um den Lärm zu reduzieren, oder eine hohe Laufradgeschwindigkeit in Bereichen mit weichen Bodenarten (z. B. Teppich) oder einem hohen Anteil an Staub und Schmutz. Während der Roboter durch die Umgebung navigiert und Sensoren Daten sammeln, kann der Prozessor den Klassifikator verwenden, um in Echtzeit Umgebungseigenschaften des aktuellen Standorts des Roboters vorherzusagen, wie z. B. Fahrbahntyp, Raum- oder Bereichstyp, Trümmeransammlung, Trümmertyp, Trümmer B. Größe, Verkehrsniveau, menschliches Aktivitätsniveau, Hindernisdichte usw. In einigen Ausführungsformen ordnet der Prozessor die Umgebungsmerkmale einem entsprechenden Ort der Umgebungskarte zu. In einigen Ausführungsformen kann der Prozessor die Standardgeschwindigkeit von Komponenten anpassen, um sie am besten an die Umgebungseigenschaften des vorhergesagten Standorts anzupassen.

In einigen Ausführungsformen kann der Prozessor die Geschwindigkeit von Komponenten anpassen, indem er dem Motor, der die Komponenten antreibt, mehr oder weniger Leistung zuführt. Bei Gras verringert der Prozessor beispielsweise die den Radmotoren zugeführte Leistung, um die Geschwindigkeit der Räder und des Roboters zu verringern, und erhöht die dem Schneidmessermotor zugeführte Leistung, um das Schneidmesser für einen gründlichen Grasschnitt mit erhöhter Geschwindigkeit zu drehen.

In einigen Ausführungsformen kann der Prozessor alle oder einen Teil der Echtzeitentscheidungen, die einem bestimmten Ort in der Umgebung entsprechen, in einem Speicher des Roboters aufzeichnen. In einigen Ausführungsformen kann der Prozessor alle oder einen Teil der Echtzeitentscheidungen markieren, die einem bestimmten Ort innerhalb der Umgebungskarte entsprechen. Beispielsweise markiert ein Prozessor beim Erhöhen der Geschwindigkeit der Radmotoren den bestimmten Standort auf der Karte, der dem Standort des Roboters entspricht, da er einen bestimmten Fahrbahntyp vorhersagt. In einigen Ausführungsformen können Daten in ASCII oder anderen Formaten gespeichert werden, um minimalen Speicherplatz zu beanspruchen.

In einigen Ausführungsformen kann der Prozessor Umgebungsmerkmale mithilfe von Ordinal-, Kardinal- oder Nominalwerten darstellen und unterscheiden, beispielsweise numerischen Bewertungen in verschiedenen Dimensionen oder beschreibenden Kategorien, die als Nominalwerte dienen. Beispielsweise kann der Prozessor verschiedene Fahrbahntypen wie Teppich, Gras, Gummi, Hartholz, Zement und Fliesen durch numerische Kategorien wie 1, 2, 3, 4, 5 bzw. 6 kennzeichnen. In einigen Ausführungsformen können numerische oder beschreibende Kategorien ein Wertebereich sein. Beispielsweise kann der Prozessor unterschiedliche Grade der Trümmeransammlung durch kategorische Bereiche wie 1–2, 2–3 und 3–4 bezeichnen, wobei 1–2 keine Trümmeransammlung bis zu einem geringen Grad an Trümmeransammlung bedeutet, 2–3 bedeutet ein niedriges bis mittleres Maß an Schmutzansammlung und 3-4 bezeichnet ein mittleres bis hohes Maß an Schmutzansammlung. In einigen Ausführungsformen kann der Prozessor die numerischen Werte mit einer Karte der Umgebung kombinieren, um eine mehrdimensionale Karte zu bilden, die Umgebungseigenschaften verschiedener Orte innerhalb der Umgebung beschreibt, z. B. in einer Mehrkanal-Bitmap. In einigen Ausführungsformen kann der Prozessor die Karte mit neu erfassten Sensordaten und/oder aus den neuen Sensordaten abgeleiteten Informationen in Echtzeit oder nach einer Arbeitssitzung aktualisieren. In einigen Ausführungsformen kann der Prozessor eine aggregierte Karte aller oder eines Teils der während jeder Arbeitssitzung generierten Karten erstellen, wobei der Prozessor die in jeder Karte vorhergesagten Umgebungsmerkmale desselben Standorts verwendet, um Wahrscheinlichkeiten für jedes am jeweiligen Standort vorhandene Umgebungsmerkmal zu bestimmen Standort.

In einigen Ausführungsformen kann der Prozessor Umgebungsmerkmale der Umgebung verwenden, um zusätzliche Informationen wie Grenzen zwischen Räumen oder Bereichen, Übergänge zwischen verschiedenen Arten von Fahrflächen und Arten von Bereichen abzuleiten. Beispielsweise kann der Prozessor daraus schließen, dass ein Übergang zwischen unterschiedlichen Arten von Fahrflächen an einem Ort der Umgebung existiert, an dem zwei benachbarte Zellen unterschiedliche vorhergesagte Arten von Fahrflächen aufweisen. In einem anderen Beispiel kann der Prozessor mit einem gewissen Grad an Sicherheit schlussfolgern, dass eine Sammlung benachbarter Orte innerhalb der Karte, deren kombinierte Fläche unter einem bestimmten Schwellenwert liegt und alle über eine harte Fahrfläche verfügen, mit einer bestimmten Umgebung verknüpft sind, beispielsweise einem Badezimmer, wie es bei Badezimmern im Allgemeinen der Fall ist kleiner als alle anderen Räume in einer Umgebung und verfügen im Allgemeinen über harte Böden. In einigen Ausführungsformen beschriftet der Prozessor Bereiche oder Räume der Umgebung basierend auf solchen abgeleiteten Informationen.

In einigen Ausführungsformen kann der Prozessor dem Roboter befehlen, den Betrieb auf einer Art von Fahroberfläche abzuschließen, bevor er zu einer anderen Art von Fahroberfläche übergeht. In einigen Ausführungsformen kann der Prozessor dem Roboter befehlen, den Betrieb an Standorten mit einer bestimmten Umgebungseigenschaft zuerst zu priorisieren (z. B. Standorte mit hoher Schmutzansammlung, Standorte mit Teppich, Standorte mit minimalen Hindernissen usw.). In einigen Ausführungsformen kann der Prozessor einen Pfad generieren, der Orte mit einer bestimmten Umgebungseigenschaft verbindet, und der Prozessor kann dem Roboter befehlen, entlang des Pfades zu arbeiten. In einigen Ausführungsformen kann der Prozessor dem Roboter befehlen, über Orte mit einer bestimmten Umgebungseigenschaft langsamer oder schneller für eine vorgegebene Zeitspanne und/oder mit einer vorgegebenen Häufigkeit über einen Zeitraum hinweg zu fahren. Beispielsweise kann ein Prozessor einem Roboter befehlen, fünfmal pro Woche an Standorten mit einer bestimmten Fahroberfläche, beispielsweise Hartholzböden, zu arbeiten. In einigen Ausführungsformen kann ein Benutzer dem Roboter die oben genannten Befehle und/oder andere Befehle über eine Anwendung eines mit dem Roboter gekoppelten Kommunikationsgeräts oder eine Schnittstelle des Roboters bereitstellen.

In einigen Ausführungsformen bestimmt der Prozessor des Roboters auf der Grundlage früherer Erfahrungen vor Beginn einer Aufgabe einen Umfang der Abdeckung, den er in einer Arbeitssitzung durchführen kann. In einigen Ausführungsformen kann diese Bestimmung fest codiert sein. In einigen Ausführungsformen kann einem Benutzer (z. B. über eine Anwendung eines Kommunikationsgeräts) die Möglichkeit geboten werden, eine Aufgabe auf mehr als eine Arbeitssitzung aufzuteilen, wenn die erforderliche Aufgabe nicht in einer Arbeitssitzung erledigt werden kann. In einigen Ausführungsformen kann der Roboter die Aufgabe auf mehr als eine Arbeitssitzung aufteilen, wenn er sie nicht innerhalb einer einzigen Arbeitssitzung erledigen kann. In einigen Ausführungsformen kann die Entscheidung des Prozessors zufällig sein oder auf früheren Benutzerauswahlen, früheren Auswahlen anderer in der Cloud gespeicherter Benutzer, einem Standort des Roboters, historischer Sauberkeit von Bereichen, in denen die Aufgabe ausgeführt werden soll, basieren. historisches menschliches Aktivitätsniveau von Bereichen, in denen die Aufgabe ausgeführt werden soll usw. Beispielsweise kann der Prozessor des Roboters entscheiden, in einer ersten Arbeitssitzung den Teil der Aufgabe auszuführen, der in seine aktuelle Umgebung fällt, und dann den verbleibenden Teil der Aufgabe in einer oder mehreren anderen Arbeitssitzungen.

In einigen Ausführungsformen kann der Prozessor des Roboters entscheiden, einen Behälter des Roboters in einen größeren Behälter zu entleeren, nachdem eine bestimmte Quadratmeterzahl abgedeckt wurde. In einigen Ausführungsformen kann ein Benutzer eine Quadratmeterabdeckung auswählen, nach der der Roboter seinen Behälter in den größeren Behälter entleeren soll. In einigen Fällen kann die Quadratmeterzahl der Abdeckung, nach der der Roboter seinen Behälter leeren soll, während der Herstellung bestimmt und in den Roboter eingebaut werden. In einigen Ausführungsformen kann der Prozessor in Echtzeit bestimmen, wann der Behälter geleert werden muss, basierend auf mindestens einem der folgenden Faktoren: der vom Roboter abgeschlossenen Abdeckung oder einer Schmutzmenge im Behälter des Roboters. In einigen Ausführungsformen kann der Prozessor Bayes'sche Methoden verwenden, um zu bestimmen, wann der Behälter des Roboters geleert werden muss, wobei die Abdeckungsmenge als A-priori-Information und das Schmutzvolumen im Behälter als spätere Information oder umgekehrt verwendet werden kann. In anderen Fällen können andere Informationen verwendet werden. In einigen Ausführungsformen kann der Prozessor anhand historischer Daten die Quadratmeterzahl vorhersagen, die der Roboter zurücklegen kann, bevor der Roboter den Behälter leeren muss. In einigen Ausführungsformen kann ein Benutzer aufgefordert werden, die Räume auszuwählen, die in einer ersten Arbeitssitzung gereinigt werden sollen, und die Räume auszuwählen, die in einer zweiten Arbeitssitzung gereinigt werden sollen, nachdem der Behälter geleert wurde.

Ein Ziel einiger Ausführungsformen kann darin bestehen, den Stromverbrauch des Roboters (oder eines anderen Geräts) zu reduzieren. Eine Reduzierung des Stromverbrauchs kann zu einer Erweiterung der Einsatzmöglichkeiten des Roboters führen. Beispielsweise waren bestimmte Arten von Robotern, wie zum Beispiel Roboter-Dampfwischer, bisher nicht für den privaten Gebrauch geeignet, da die Roboter zu klein waren, um die Anzahl an Batteriezellen zu tragen, die zur Deckung des Stromverbrauchsbedarfs der Roboter erforderlich war. Wenn weniger Batteriestrom für Prozesse wie Lokalisierung, Wegplanung, Kartierung, Steuerung und Kommunikation mit anderen Computergeräten aufgewendet wird, kann möglicherweise mehr Energie für andere Prozesse oder Aktionen bereitgestellt werden, beispielsweise für eine erhöhte Saugleistung oder Erwärmung oder Ultraschall zum Verdampfen von Wasser oder anderen Flüssigkeiten. In einigen Ausführungsformen erhöht die Reduzierung des Stromverbrauchs des Roboters die Laufzeit des Roboters. In einigen Ausführungsformen kann ein Ziel darin bestehen, das Verhältnis zwischen der Zeit, die zum Aufladen des Roboters erforderlich ist, und der Laufzeit des Roboters zu minimieren, da dadurch Aufgaben effizienter ausgeführt werden können. Beispielsweise kann die Anzahl der Roboter, die für die 24-Stunden-Reinigung eines Flughafens erforderlich sind, abnehmen, da die Laufzeit jedes Roboters zunimmt und die zum Aufladen jedes Roboters erforderliche Zeit abnimmt, da Roboter möglicherweise mehr Zeit mit der Reinigung und weniger Zeit im Standby-Modus verbringen, während sie aufgeladen werden. In einigen Ausführungsformen kann der Roboter mit einem Energiesparmodus ausgestattet sein, um den Stromverbrauch zu reduzieren, wenn ein Benutzer den Roboter nicht verwendet. In einigen Ausführungsformen kann der Energiesparmodus mithilfe eines Timers implementiert werden, der eine festgelegte Zeitspanne herunterzählt, seit der Benutzer dem Roboter das letzte Mal eine Eingabe gegeben hat. Beispielsweise kann ein Roboter so konfiguriert sein, dass er in einen Schlafmodus oder einen anderen Modus wechselt, der weniger Strom verbraucht als der Vollbetriebsmodus, wenn ein Benutzer fünf Minuten lang keine Eingabe getätigt hat. In einigen Ausführungsformen kann ein Teilsatz der Schaltung in den Energiesparmodus wechseln. Beispielsweise kann ein drahtloses Modul eines Geräts in den Energiesparmodus wechseln, wenn das drahtlose Netzwerk nicht verwendet wird, während andere Module möglicherweise noch betriebsbereit sind. In einigen Ausführungsformen kann der Roboter in den Energiesparmodus wechseln, während der Benutzer den Roboter verwendet. Beispielsweise kann ein Roboter in den Energiesparmodus wechseln, weil der Benutzer beim Lesen von Inhalten auf dem Roboter, beim Ansehen eines Films oder beim Hören von Musik innerhalb eines bestimmten Zeitraums keine Eingabe vorgenommen hat. In einigen Fällen kann die Wiederherstellung aus dem Energiesparmodus einige Zeit dauern und die Eingabe von Anmeldeinformationen durch den Benutzer erfordern.

Eine Reduzierung des Stromverbrauchs kann auch die Rentabilität solarbetriebener Roboter erhöhen. Da Roboter über eine begrenzte Oberfläche verfügen, auf der Solarmodule befestigt werden können (proportional zur Größe des Roboters), sammelt die begrenzte Anzahl installierter Solarmodule möglicherweise nur eine geringe Energiemenge. In einigen Ausführungsformen kann die Energie in einer Batteriezelle des Roboters gespeichert und für die Ausführung von Aufgaben verwendet werden. Während sich Solarmodule verbessert haben, um einen viel größeren Gewinn pro Fläche zu erzielen, kann eine sparsame Nutzung der gewonnenen Energie zu einer besseren Leistung führen. Beispielsweise kann ein Roboter effizient genug sein, um in Echtzeit zu laufen, wenn Sonnenenergie absorbiert wird, wodurch verhindert wird, dass der Roboter im Standby-Modus bleiben muss, während die Batterien aufgeladen werden. Solarenergie kann auch zur Nutzung in Zeiten gespeichert werden, in denen Solarenergie nicht verfügbar ist oder in Zeiten, in denen die Solarenergie nicht ausreicht. In einigen Fällen kann die Energie zur späteren Verwendung in einer kleineren Batterie gespeichert werden. Um Szenarien zu berücksichtigen, in denen nur minimale Sonnenenergie absorbiert wird oder verfügbar ist, kann es wichtig sein, dass der Roboter weniger Last trägt und effizienter ist. Beispielsweise kann der Roboter effizient arbeiten, indem er sich in einem Bereich mit mehr Licht positioniert, wenn dem Roboter nur minimale Energie zur Verfügung steht. In einigen Ausführungsformen kann Energie drahtlos unter Verwendung verschiedener Strahlungs- oder Fernfeldtechniken und nichtstrahlender oder Nahfeldtechniken übertragen werden. In einigen Ausführungsformen kann der Roboter zusätzlich zu Solarpaneelen auch in der Umgebung verfügbare Radiofrequenzen nutzen. In einigen Ausführungsformen kann sich der Roboter intelligent positionieren, sodass sein Empfänger optimal in der Richtung der abgestrahlten Leistung positioniert ist und diese überlappt. In einigen Ausführungsformen kann der Roboter beim Parken oder während der Ausführung einer Aufgabe drahtlos aufgeladen werden, wenn Prozesse wie Lokalisierung, Kartierung und Pfadplanung weniger Energie erfordern.

In einigen Ausführungsformen kann der Roboter seine Energie drahtlos (oder in einigen Fällen drahtgebunden) teilen. Beispielsweise könnte der Roboter das kabellose Laden von Smartphones ermöglichen. In einem anderen Beispiel kann der Roboter Geräte von Benutzern, die eine Ausstellung mit begrenzter Anzahl an Steckdosen besuchen, im Handumdrehen drahtlos aufladen. In einigen Ausführungsformen kann sich der Roboter auf der Grundlage der Position von Steckdosen innerhalb einer Umgebung (z. B. der Position mit der geringsten Dichte an Steckdosen) oder der Position von Geräten der Benutzer (z. B. der Position mit der höchsten Dichte an elektronischen Geräten) positionieren. In einigen Ausführungsformen können gekoppelte elektromagnetische Resonatoren in Kombination mit langlebigen Schwingungsresonanzmodi verwendet werden, um Leistung von einer Stromversorgung zu einer Leistungsentnahme zu übertragen.

In Ausführungsformen kann es einen Kompromiss zwischen Leistung und Stromverbrauch geben. In einigen Ausführungsformen benötigt eine große CPU möglicherweise einen Lüfter zum Kühlen der CPU. In einigen Ausführungsformen kann der Kühlventilator für kurze Zeiträume verwendet werden, wenn er wirklich benötigt wird. In einigen Ausführungsformen kann der Prozessor den Lüfter autonom zum Ein- und Ausschalten betätigen (z. B. durch Ausführen von Computercode, der solche Vorgänge ausführt). In manchen Fällen kann der Kühlventilator unerwünscht sein, da er zum Betrieb Strom und zusätzlichen Platz benötigt und ein unerwünschtes Brummgeräusch erzeugen kann. In einigen Ausführungsformen kann Computercode effizient genug sein, um auf kompakten Prozessoren von Controllern ausgeführt zu werden, sodass kein Kühlventilator erforderlich ist, wodurch der Stromverbrauch reduziert wird.

In einigen Ausführungsformen kann der Prozessor den Energieverbrauch des Roboters vorhersagen. In einigen Ausführungsformen kann der vorhergesagte Energieverbrauch des Roboters Schätzungen von Funktionen umfassen, die vom Roboter über eine zurückgelegte Strecke oder einen vom Roboter abgedeckten Bereich ausgeführt werden können. Wenn ein Roboter beispielsweise so eingestellt ist, dass er nur einen Teil eines Bereichs dampfwischt, kann der prognostizierte Energieverbrauch eine größere Abdeckung als den vom Roboter abgedeckten Teil ermöglichen. In einigen Ausführungsformen kann ein prognostizierter Bedarf an Auftanken aus früheren Arbeitssitzungen des Roboters oder aus früheren Arbeitssitzungen anderer Roboter, die im Laufe der Zeit in der Cloud gesammelt wurden, abgeleitet werden. Bei einer Punkt-zu-Punkt-Anwendung kann einem Benutzer eine vorhergesagte Batterieladung für zurückgelegte Entfernungen angezeigt werden, bevor der Roboter zu einem Ziel fährt. In einigen Ausführungsformen können dem Benutzer mögliche Tankstellen entlang der Route des Roboters angezeigt werden und er kann die Route des Roboters ändern, indem er eine Tankstelle auswählt (z. B. mithilfe einer Anwendung oder einer grafischen Benutzeroberfläche auf dem Roboter). In einer Abdeckungsanwendung kann einem Benutzer eine vorhergesagte Batterieladung für unterschiedliche Flächenabdeckungsmengen angezeigt werden, bevor der Roboter mit einer Abdeckungsaufgabe beginnt. In einigen Ausführungsformen kann sich der Benutzer dafür entscheiden, die Abdeckungsaufgabe in kleinere Aufgaben mit kleinerer Oberflächenabdeckung aufzuteilen. Die Benutzereingabe kann zu Beginn der Sitzung, während der Sitzung oder überhaupt nicht empfangen werden. In einigen Ausführungsformen können von einem Benutzer bereitgestellte Eingaben das Verhalten des Roboters für den Rest einer Arbeitssitzung oder nachfolgende Arbeitssitzungen ändern. In einigen Ausführungsformen kann der Benutzer identifizieren, ob eine Einstellung einmalig oder dauerhaft angewendet werden soll. In einigen Ausführungsformen kann der Prozessor entscheiden, zuzulassen, dass eine Änderung während einer aktuellen Arbeitssitzung, für einen bestimmten Zeitraum, für mehrere Arbeitssitzungen oder dauerhaft wirksam wird. In einigen Ausführungsformen kann der Prozessor die Abdeckungsaufgabe auf der Grundlage eines Satzes von Kostenfunktionen in kleinere Aufgaben aufteilen.

In Ausführungsformen kann der Pfadplan in einer Punkt-zu-Punkt-Anwendung einen Startpunkt und einen Endpunkt umfassen. In Ausführungsformen kann der Pfadplan in einer Abdeckungsanwendung eine Startoberfläche und eine Endoberfläche umfassen, beispielsweise Räume oder Teile von Räumen oder Teile von Bereichen, die von einem Benutzer oder vom Prozessor des Roboters definiert werden. In einigen Ausführungsformen kann der Pfadplan zusätzliche Informationen enthalten. Bei einem Gartenbewässerungsroboter kann der Wegplan beispielsweise zusätzlich die Wassermenge in einem Tank des Roboters berücksichtigen. Der Benutzer kann aufgefordert werden, den Wegplan in zwei oder mehr Wegpläne aufzuteilen und dazwischen eine Wasserauffüllsitzung einzuplanen. Der Benutzer muss möglicherweise auch den Pfadplan basierend auf dem Batterieverbrauch aufteilen und möglicherweise eine Aufladesitzung festlegen. In einem anderen Beispiel kann der Wegplan eines Roboters, der andere Roboter auflädt (z. B. Roboter, deren Ladung während eines Vorgangs erschöpft ist), die Menge an Batterieladung berücksichtigen, die der Roboter anderen Robotern nach Abzug der für die Fahrt erforderlichen Energie zur Verfügung stellen kann das Ziel und die nächstgelegenen Ladepunkte für sich. Der Roboter kann andere Roboter über eine Verbindung oder drahtlos mit Akkuladung versorgen. In einem anderen Beispiel kann der Wegplan eines Obstpflückroboters die Anzahl der Bäume berücksichtigen, die der Roboter bedienen kann, bevor ein Obstbehälter voll und die Batterie aufgeladen ist. In einem Beispiel kann der Wegplan eines Düngerdosierroboters die Größe der Oberfläche, die eine bestimmte Düngermenge abdecken kann, und den Kraftstoffstand berücksichtigen. Eine Düngeaufgabe kann in mehrere Arbeitssitzungen mit einer oder mehreren Nachfüllsitzungen für Düngemittel und einer oder mehreren Auftanksitzungen dazwischen unterteilt werden.

In einigen Ausführungsformen kann der Prozessor des Roboters Informationen übertragen, die zur Identifizierung von Problemen verwendet werden können, mit denen der Roboter konfrontiert war oder derzeit konfrontiert ist. In einigen Ausführungsformen können die Informationen vom Kundendienst verwendet werden, um Probleme zu beheben und den Roboter zu verbessern. In einigen Ausführungsformen können die Informationen an die Cloud gesendet und weiterverarbeitet werden. In einigen Ausführungsformen können die Informationen als Problemtyp kategorisiert und verarbeitet werden, nachdem sie an die Cloud gesendet wurden. In einigen Ausführungsformen können Korrekturen basierend auf der Häufigkeit des Auftretens des jeweiligen Problems priorisiert werden. In einigen Ausführungsformen kann die Übertragung der Informationen drahtlose Aktualisierungen und Lösungen ermöglichen. In einigen Ausführungsformen kann ein automatisches Kundensupportticket geöffnet werden, wenn der Roboter auf ein Problem stößt. In einigen Ausführungsformen kann eine proaktive Maßnahme ergriffen werden, um das Problem zu lösen. Wenn beispielsweise bei einem Verbrauchsteil des Roboters ein Problem auftritt, bevor die erwartete Lebensdauer des Teils abgelaufen ist, kann die Erkennung des Problems eine automatische Versandanfrage des Teils an den Kunden auslösen. In einigen Ausführungsformen kann eine Benachrichtigung an den Kunden ausgelöst werden und das Teil kann zu einem späteren Zeitpunkt versendet werden.

In einigen Ausführungsformen kann ein Subsystem des Roboters Probleme verwalten, mit denen der Roboter konfrontiert ist. In einigen Ausführungsformen kann das Subsystem ein Störungsmanager sein. Beispielsweise kann ein Problemmanager Probleme melden, etwa eine Trennung des HF-Kommunikationskanals oder der Cloud. Diese Informationen können zur weiteren Fehlerbehebung verwendet werden, während in einigen Ausführungsformen fortlaufend versucht werden kann, die Verbindung mit dem erwarteten Dienst wiederherzustellen. In einigen Ausführungsformen kann der Störungsmanager melden, wenn die Verbindung wiederhergestellt ist. In einigen Ausführungsformen können solche Aktionen vom Störungsmanager protokolliert werden. In einigen Ausführungsformen kann der Störungsmanager melden, wenn eine Hardwarekomponente defekt ist. Beispielsweise kann ein Störungsmanager melden, wenn der integrierte Schaltkreis eines Ladegeräts defekt ist.

In einigen Ausführungsformen kann ein Batterieüberwachungssubsystem kontinuierlich eine Spannung einer Batterie des Roboters überwachen. In einigen Ausführungsformen löst ein Spannungsabfall ein Ereignis aus, das den Roboter anweist, zum Aufladen zu einer Ladestation zurückzukehren. In einigen Ausführungsformen werden ein letzter Standort des Roboters und vom Roboter abgedeckte Bereiche gespeichert, sodass der Roboter dort weiterarbeiten kann, wo er aufgehört hat. In einigen Ausführungsformen kann eine Back-to-Back-Reinigung durchgeführt werden. In einigen Ausführungsformen kann die aufeinanderfolgende Reinigung zu einem bestimmten Zeitpunkt erfolgen. In einigen Ausführungsformen kann der Roboter seine Batterien bis zu einem bestimmten Batterieladestand aufladen, der zum Beenden einer unvollständigen Aufgabe erforderlich ist, anstatt auf eine vollständige Ladung zu warten. In einigen Ausführungsformen kann die zweite Ableitung aufeinanderfolgender Batteriespannungsmessungen überwacht werden, um festzustellen, ob die Batterie schneller als gewöhnlich an Leistung verliert. In einigen Ausführungsformen kann eine weitere Verarbeitung in der Cloud erfolgen, um festzustellen, ob bestimmte Produktionschargen von Batterien oder anderer Hardware fehlerhaft sind. In solchen Fällen können Korrekturen proaktiv angekündigt oder implementiert werden.

In einigen Ausführungsformen kann der Prozessor des Roboters einen Standort und eine Richtung des Roboters in Bezug auf eine Ladestation des Roboters bestimmen, indem er zwei oder mehr unterschiedliche IR-Codes unter Verwendung unterschiedlicher Präsenz-LEDs aussendet. In einigen Ausführungsformen kann ein Prozessor der Ladestation in der Lage sein, die verschiedenen Codes zu erkennen und die Empfangscodes über RF-Kommunikation an den Prozessor des Roboters zu melden. In einigen Ausführungsformen können die Codes durch Time Division Multiple Access (d. h. verschiedene IRs senden Codes nacheinander aus) gesendet werden. In einigen Ausführungsformen können die Codes basierend auf dem Konzept der Pulsdistanzmodulation ausgesendet werden. In einigen Ausführungsformen können verschiedene Protokolle verwendet werden, beispielsweise das NEC-IR-Protokoll, das bei der Übertragung von IR-Codes in Fernbedienungen verwendet wird. Standardprotokolle wie das NEC IR-Protokoll sind möglicherweise nicht für alle Anwendungen optimal. Beispielsweise kann jeder Code einen 8-Bit-Befehl und eine 8-Bit-Adresse enthalten, was insgesamt 16 Bit ergibt, was 65536 verschiedene Kombinationen bereitstellen kann. Dies kann 108 ms erfordern und wenn alle Codes auf einmal übertragen werden, können 324 ms erforderlich sein. In einigen Ausführungsformen kann jede Codelänge 18 Impulse von 0 oder 1 betragen. In einigen Ausführungsformen können zwei zusätzliche Impulse für die Ladestations-MCU verwendet werden, um den Code zu verarbeiten und den Code mithilfe von RF-Kommunikation an den Roboter zu übertragen. In einigen Ausführungsformen kann jeder Code 4 Header-High-Impulse haben und jede Codelänge kann 18 Impulse (z. B. jeweils mit einem Wert von 0 oder 1) und zwei Stoppimpulse (z. B. mit einem Wert von 0) betragen. In einigen Ausführungsformen kann ein proprietäres Protokoll verwendet werden, einschließlich einer Frequenz von 56 kHz, einem Arbeitszyklus von ⅓, 2 Codebits und dem folgenden Codeformat: Header High: 4 High-Impulse, d. h. {1, 1, 1, 1}; Header Low: 2 Low-Impulse, d. h. {0, 0}; Daten: logisch „0“ ist 1 High-Impuls, gefolgt von 1 Low-Impuls; logisch „1“ ist 1 hoher Impuls, gefolgt von 3 niedrigen Impulsen; Nach den Daten folgt Logic inverse(2's komplementär); Ende: 2 niedrige Impulse, d. h. {0, 0}, damit die Ladestation genügend Zeit hat, den Code zu verarbeiten. Ein Beispiel für die Verwendung eines Codes 00 umfasst: {/Header High/1, 1, 1, 1; /Kopfzeile niedrig/0, 0; /Logik‘0’/1, 0; /Logik‘0’/1, 0; /Logik‘1’,‘1’,2's komplementär/1, 0, 0, 0, 1, 0, 0, 0; /End/0, 0}. In einigen Ausführungsformen kann die Impulszeit ein fester Wert sein. Beispielsweise kann in einem NEC-Protokoll die Dauer jedes Impulses 560 µs betragen. In einigen Ausführungsformen kann die Impulszeit dynamisch sein. Beispielsweise kann eine Funktion die Impulszeit bereitstellen (z. B. cBitPulseLengthUs).

In einigen Ausführungsformen können Permutationen möglicher Codewörter in einer „Enum“-Datenstruktur organisiert sein. In einer Implementierung können acht Codewörter in der Enum-Datenstruktur vorhanden sein, die in der folgenden Reihenfolge angeordnet sind: Kein Code, Code links, Code rechts, Code vorne, Codeseite, Codeseite links, Codeseite rechts, Code alle. In anderen Implementierungen kann je nach Bedarf eine andere Anzahl von Codewörtern definiert werden. Code Left kann mit Beobachtungen durch eine vordere linke Präsenz-LED verknüpft werden, Code Right kann mit Beobachtungen durch eine vordere rechte Präsenz-LED verknüpft werden, Code Front kann mit Beobachtungen durch vordere linke und vordere rechte Präsenz-LEDs verknüpft werden, Code Side kann mit Beobachtungen durch eine vordere linke und vordere rechte Präsenz-LED verknüpft werden Beobachtungen durch einige, einige oder alle seitlichen LEDs und „Code Seite links“ können mit Beobachtungen durch vordere linke und seitliche Anwesenheits-LEDs verknüpft sein. In einigen Ausführungsformen kann es vier Empfänger-LEDs auf dem Dock geben, die als „Mitte links“, „Mitte rechts“, „Seite links“ und „Seite rechts“ bezeichnet werden können. In anderen Ausführungsformen können ein oder mehrere Empfänger verwendet werden.

In einigen Ausführungsformen kann der Prozessor des Roboters einen Standardkonstruktor, einen Konstruktor mit Anfangswerten und einen Kopierkonstruktor für die ordnungsgemäße Initialisierung sowie einen Dekonstruktor definieren. In einigen Ausführungsformen kann der Prozessor eine Reihe boolescher Prüfungen unter Verwendung einer Reihe von Funktionen ausführen. Beispielsweise kann der Prozessor eine Funktion „isFront“ mit einem booleschen Rückgabewert ausführen, um unabhängig von der Entfernung zu prüfen, ob sich der Roboter vor der Ladestation befindet und dieser zugewandt ist. In einem anderen Beispiel kann der Prozessor eine Funktion „isNearFront“ ausführen, um zu prüfen, ob sich der Roboter in der Nähe der Vorderseite der Ladestation befindet und ihr zugewandt ist. In einem anderen Beispiel kann der Prozessor eine Funktion „isFarFront“ ausführen, um zu prüfen, ob sich der Roboter weit von der Vorderseite der Ladestation entfernt befindet und ihr zugewandt ist. In einem anderen Beispiel kann der Prozessor eine Funktion „isInSight“ ausführen, um zu prüfen, ob ein Signal beobachtet werden kann. In anderen Ausführungsformen können andere Protokolle verwendet werden. Der Fachmann wird wissen, wie er andere Möglichkeiten vorteilhaft umsetzen kann. In einigen Ausführungsformen können Inline-Funktionen verwendet werden, um die Leistung zu steigern.

In einigen Ausführungsformen kann der Roboter mit den anderen intelligenten Geräten in der Umgebung zusammenarbeiten. In einigen Ausführungsformen können von anderen intelligenten Geräten erfasste Daten mit dem Roboter geteilt werden und umgekehrt. Beispielsweise kann ein Benutzer einem Roboter, der sich in einem anderen Raum als der Benutzer befindet, verbal befehlen, dem Benutzer ein Telefonladegerät zu bringen. Ein Heimassistentengerät, das sich im selben Raum wie der Benutzer befindet, kann mithilfe von Methoden der künstlichen Intelligenz den Standort des Benutzers identifizieren und diese Informationen an den Roboter weitergeben. Der Roboter kann die Informationen erhalten und einen Weg zur Ausführung der angeforderten Aufgabe entwickeln. In einigen Ausführungsformen kann der Roboter mit einem oder mehreren anderen Robotern zusammenarbeiten, um eine Aufgabe zu erledigen. Beispielsweise arbeiten zwei Roboter, etwa ein Saugroboter und ein Wischroboter, zusammen, um einen Bereich gleichzeitig oder nacheinander zu reinigen. In einigen Ausführungsformen können die Prozessoren kollaborierender Roboter Informationen austauschen und einen Plan zur Erledigung der Aufgabe ausarbeiten. In einigen Ausführungsformen arbeiten die Prozessoren von Robotern zusammen, indem sie Informationen untereinander austauschen, beispielsweise Informationen zu aktuellen und bevorstehenden Aufgaben, zum Abschluss oder Fortschritt von Aufgaben (insbesondere in Fällen, in denen eine Aufgabe geteilt wird), zur Delegation von Aufgaben und zu Präferenzen B. eines Benutzers, Umgebungsbedingungen (z. B. Straßenbedingungen, Verkehrsbedingungen, Wetterbedingungen, Hindernisdichte, Ansammlung von Trümmern usw.), Batterieleistung, Karten der Umgebung und dergleichen. Beispielsweise kann ein Prozessor eines Roboters Informationen zur Hindernisdichte an Prozessoren von Robotern in der Nähe übertragen, mit denen eine Verbindung hergestellt wurde, sodass die Roboter in der Nähe den Bereich mit hoher Hindernisdichte meiden können. In einem anderen Beispiel kommuniziert ein Prozessor eines Roboters, der wegen niedrigem Batteriestand nicht in der Lage ist, den Müll in einem Bereich einzusammeln, mit einem Prozessor eines anderen Roboters in der Nähe, der in der Lage ist, den Müll einzusammeln, und versorgt den Roboter mit dem aktuellen Fortschritt der Aufgabe und einer Karte davon Bereich, sodass die Aufgabe erledigt werden kann. In einigen Ausführungsformen können Prozessoren von Robotern Informationen über die Umgebung (z. B. Umgebungssensordaten) oder Ergebnisse historischer Aktionen austauschen, sodass einzelne Prozessoren Aktionen schneller optimieren können. In einigen Ausführungsformen arbeiten Prozessoren von Robotern zusammen, um eine Aufgabe zu erledigen. In einigen Ausführungsformen arbeiten Roboter unter Verwendung von Methoden zusammen, wie sie beispielsweise in der US-Patentanmeldung Seriennr. Nr. 15/981.643, 14/948.620, 15/986.670, 16/418.988 und 15/048.827, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In einigen Ausführungsformen kann ein Steuerungssystem den Roboter oder eine Gruppe kollaborierender Roboter verwalten. Zum Beispiel,FEIGE.114Azeigt einen kollaborierenden Mülleimerroboter11400,11401, Und11402. Mülleimerroboter11400sendet ein Signal an ein Steuersystem, das anzeigt, dass sein Behälter voll ist, und fordert einen anderen Behälter an, seine Position zu ersetzen. Das Steuerungssystem kann einen Roboter für leere Mülltonnen einsetzen, um die Position eines Roboters für volle Mülltonnen zu ersetzen11400. In anderen Fällen können Roboterverarbeiter zusammenarbeiten, um den Ersatz von Mülleimerrobotern zu bestimmen.FEIGE.114Bveranschaulicht den leeren Mülleimer-Roboter11403Der Roboter nähert sich dem vollen Mülleimer11400. Prozessoren des Mülleimerroboters11403Und11400können kommunizieren, um den Austausch ihrer Positionen zu koordinieren, wie in dargestelltFEIGE.114C, wobei Mülleimerroboter11400fährt vorwärts, während der Mülleimerroboter11403nimmt seinen Platz ein.FEIGE.114Dzeigt den Roboter mit vollem Mülleimer11400Einfahren in einen Lagerbereich für volle Mülltonnenroboter11404Bereit zum Entleeren und Reinigen sowie zum Entleeren von Mülleimern11405bereit für den Einsatz an einer bestimmten Position. Voller Mülleimer-Roboter11400parkt sich zusammen mit anderen Robotern mit voller Mülltonne11404. Einzelheiten eines Steuerungssystems, das zur Steuerung von Robotern verwendet werden kann, sind in der US-Patentanmeldung Seriennr. Nr. 16/130,880, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird.

In einigen Ausführungsformen können Prozessoren von Robotern untereinander Karten, Trajektorien und Befehle übertragen. In einigen Ausführungsformen kann ein Prozessor eines ersten Roboters eine geplante auszuführende Trajektorie innerhalb einer Karte übertragen, die zuvor an einen Prozessor eines zweiten Roboters gesendet wurde. In einigen Ausführungsformen können Prozessoren eines Roboters vor oder nach der Ausführung einer Trajektorie einen Befehl untereinander übertragen. Beispielsweise kann ein erstes Roboterfahrzeug ein sich näherndes zweites Roboterfahrzeug darüber informieren, dass es rückwärts ausfahren und eine parallele Parklücke verlassen möchte. Es kann Sache des zweiten Roboterfahrzeugs sein, zu entscheiden, welche Maßnahmen ergriffen werden sollen. Das zweite Roboterfahrzeug kann entscheiden zu warten, um das erste Roboterfahrzeug herumzufahren, zu beschleunigen oder das erste Roboterfahrzeug anzuweisen, anzuhalten. In einigen Ausführungsformen kann ein Prozessor eines ersten Roboters einen Prozessor eines zweiten Roboters darüber informieren, dass er eine Aufgabe abgeschlossen hat, und kann dem zweiten Roboter befehlen, mit einer Aufgabe zu beginnen. In einigen Ausführungsformen kann ein Prozessor eines ersten Roboters einen Prozessor eines zweiten Roboters anweisen, eine Aufgabe auszuführen, während er einer Trajektorie des ersten Roboters folgt, oder er kann den Prozessor des ersten Roboters über eine Trajektorie informieren, die den zweiten Roboter zum Folgen veranlassen kann die Flugbahn des ersten Roboters während der Ausführung einer Aufgabe. Beispielsweise kann ein Prozessor eines ersten Roboters einen Prozessor eines zweiten Roboters über eine Trajektorie informieren, die beim Gießen von Asphalt ausgeführt werden soll, und als Reaktion darauf kann der zweite Roboter der Trajektorie folgen. In einigen Ausführungsformen können Prozessoren von Robotern einander aktuelle, bevorstehende oder abgeschlossene Aufgaben übermitteln, was in einigen Fällen beim Empfang einer Aufgabenaktualisierung eines anderen Roboters eine Aktion auslösen kann. Beispielsweise kann ein Prozessor eines ersten Roboters einen Prozessor eines zweiten Roboters über eine bevorstehende Aufgabe der Reinigung eines Bereichs eines Schalters einer ersten Art von Fluggesellschaft informieren und der Prozessor des zweiten Roboters kann entscheiden, einen Bereich einer anderen Art von Fluggesellschaft zu reinigen Schalter, so dass die Reinigungsaufgabe aller Airline-Schalter aufgeteilt werden kann. In einigen Ausführungsformen können sich die Prozessoren eines Roboters gegenseitig informieren, nachdem sie eine Flugbahn oder Aufgabe abgeschlossen haben, was in einigen Fällen dazu führen kann, dass ein anderer Roboter mit einer Aufgabe beginnt. Beispielsweise kann ein erster Roboter einen Haushaltsassistenten darüber informieren, dass er eine Reinigungsaufgabe abgeschlossen hat. Der Heimassistent kann die Informationen an einen anderen Roboter übertragen, der nach Erhalt der Informationen mit einer Aufgabe beginnen kann, oder an eine Anwendung eines Benutzers, der dann die Anwendung verwenden kann, um einen anderen Roboter anzuweisen, mit einer Aufgabe zu beginnen.

In manchen Fällen können der Roboter und andere intelligente Geräte miteinander interagieren, sodass von einem ersten intelligenten Gerät erkannte Ereignisse die Aktionen eines zweiten intelligenten Geräts beeinflussen. In einigen Ausführungsformen kann der Prozessor intelligenter Geräte Bayes'sche Wahrscheinlichkeitsmethoden verwenden, um Schlussfolgerungen abzuleiten. Beispielsweise kann ein erstes intelligentes Gerät erkennen, dass ein Benutzer eine Garage betritt, indem es ein Gesicht des Benutzers mit einer Kamera identifiziert, eine Bewegung erkennt, eine Änderung der Beleuchtung erkennt, ein Beleuchtungsmuster erkennt oder das Öffnen des Garagentors erkennt. Der Prozessor des ersten intelligenten Geräts kann die Erkennung, dass der Benutzer das Haus betritt, an Prozessoren anderer intelligenter Geräte übermitteln, die über ein Netzwerk verbunden sind. Die Erkennung, dass der Benutzer das Haus betritt, kann dazu führen, dass ein Prozessor eines zweiten intelligenten Geräts eine Betätigung auslöst oder weitere Beobachtungen ableitet. Eine Betätigung kann das Anpassen einer Lichteinstellung, einer Musikeinstellung, einer Mikrowelleneinstellung, einer Sicherheitsalarmeinstellung, einer Temperatureinstellung, einer Fensterbeschattungseinstellung oder das Abspielen des Kontinuums der Musik umfassen, die der Benutzer gerade in seinem Auto hört . In einem anderen Beispiel kann ein intelligenter Kohlenmonoxid- und Feuermelder Kohlenmonoxid oder einen Brand erkennen und diese Informationen an einen Prozessor eines Roboters weitergeben. Als Reaktion darauf kann der Prozessor des Roboters den Roboter veranlassen, sich dem Brandherd zu nähern, um einen Feuerlöscher zu verwenden oder zum Brandherd zu bringen. Der Prozessor des Roboters kann auch reagieren, indem er einen Benutzer oder eine Agentur über den Vorfall alarmiert. In manchen Fällen benötigt der Prozessor des Roboters möglicherweise weitere Informationen, bevor er eine Entscheidung trifft. Der Roboter kann zu bestimmten Bereichen navigieren, um weitere Daten der Umgebung zu erfassen, bevor er eine Entscheidung trifft.

In einigen Ausführungsformen können alle oder ein Teil der Geräte mit künstlicher Intelligenz in einer Umgebung, beispielsweise einem Smart Home, interagieren und Informationen austauschen, sodass kollektive Intelligenz bei der Entscheidungsfindung genutzt werden kann. Zum Beispiel,FEIGE.115veranschaulicht die Sammlung kollaborativer künstlicher Intelligenz, die bei Entscheidungen im Zusammenhang mit der Beleuchtung in einem Smart Home verwendet werden kann. Zu den Geräten, die zur Erfassung und Betätigung im Smart Home beitragen können, gehören möglicherweise ein WLAN-Router, der eine Verbindung zum Gateway herstellt (z. B. WAN), WLAN-Repeater-Geräte, Kontrollpunkte (z. B. Anwendungen, Benutzeroberflächen, Wandschalter oder Kontrollpunkte). (z. B. Ein- oder Ausschalten und Dimmen, vorübergehendes oder dauerhaftes Einstellen der Heizung und Lüftereinstellungen), Sensoren zur Erfassung von Innenlicht, Außenlicht und Sonnenlicht. In einigen Fällen kann ein Sensor des Roboters verwendet werden, um Innen- und Außenlicht und Sonnenlicht zu erfassen, und der Standort des vom Roboter erfassten Lichts kann basierend auf der Lokalisierung des Roboters bestimmt werden. In einigen Fällen kann der genaue Standort des Hauses mithilfe von Standortdiensten auf dem WLAN-Router oder der IP-Adresse oder einem GPS des Roboters ermittelt werden. Zu den Betätigungen des Smart House können variabel steuerbare Luftventile des HVAC-Systems, die Lüftergeschwindigkeit des HVAC-Systems, steuerbare Klimaanlagen oder Heizungen und steuerbare Fenstertönung gehören. In einigen Ausführungsformen kann ein Smart Home (oder eine andere intelligente Umgebung) eine Videoüberwachungskamera zum Streamen von Daten und Power-over-Ethernet-LED-Leuchten umfassen. In Ausführungsformen kann die Technologie der kollektiven künstlichen Intelligenz (CAIT) auf verschiedene Arten von Robotern angewendet werden, beispielsweise auf Roboterstaubsauger, persönliche Passagierkapseln mit oder ohne Fahrgestell und ein autonomes Auto. Beispielsweise kann ein autonomes, batteriebetriebenes Auto aufgrund optimaler Ladezeiten, Lernmuster bei historischen Reisezeiten und -entfernungen, erwarteten Fahrten, Batteriestand und Ladekosten Strom sparen. In einem Fall kommt das autonome Auto möglicherweise um 19 Uhr mit einer leeren Batterie zu Hause an und kann, da der Benutzer das Haus wahrscheinlich nicht nach 19 Uhr verlässt, bestimmen, wie viel Ladung er dem Auto am Abend mit teurem Strom liefern muss ) und günstigeren Strom (tagsüber) am nächsten Tag und wie viel Ladung soll am nächsten Morgen aus Sonnenlicht gewonnen werden. Das autonome Fahrzeug kann Faktoren wie die Zeit berücksichtigen, zu der der Benutzer das autonome Auto wahrscheinlich benötigt (z. B. 20, 22 oder 12 Uhr oder nach 14 Uhr, da es Wochenende ist und der Benutzer das Auto wahrscheinlich erst spät nutzen wird). Nachmittag). CAIT kann bei der Entscheidungsfindung eingesetzt werden und kann den Stromverbrauch senken, indem es sich dafür entscheidet, eine kleine Ladung mit teurem Strom zu beziehen, da die Wahrscheinlichkeit, dass um 22 Uhr ein Notfall eintritt, gering ist. In manchen Fällen verfügt das autonome Auto möglicherweise immer über genügend Batterieladung, um eine Notaufnahme zu erreichen. Oder das autonome Auto weiß möglicherweise, dass der Benutzer gegen 20:30 Uhr raus muss, um etwas in einem nahegelegenen Supermarkt zu kaufen, und berücksichtigt dies möglicherweise bei der Entscheidung, wie und wann das autonome Auto aufgeladen werden soll. In einem anderen Beispiel kann CAIT in Hybrid- oder kraftstoffbetriebenen Autos verwendet werden. CAIT kann verwendet werden, um festzustellen und vorzuschlagen, dass ein Benutzer des Autos an der Tankstelle, die sich ihm nähert, Benzin tankt, wo es billigeres Benzin gibt als an der Tankstelle, an der der Benutzer normalerweise tankt. CAIT kann zum Beispiel feststellen, dass der Benutzer normalerweise irgendwo in der Nähe seines Arbeitsplatzes Benzin kauft, dass der Benutzer jetzt an einer Tankstelle vorbeikommt, die billiger ist als das Benzin, das er normalerweise kauft, dass das Auto derzeit eine viertel Tankfüllung hat, dass der Der Benutzer ist zwei Minuten von zu Hause entfernt, der Benutzer hat derzeit 15 Minuten Freizeit in seinem Kalender und die Warteschlange an der günstigeren Tankstelle beträgt 5 Minuten, was nicht mehr ist als die durchschnittliche Wartezeit, die der Benutzer gewohnt ist. Basierend auf diesen Feststellungen kann CAIT verwendet werden, um zu bestimmen, ob der Benutzer benachrichtigt oder mit dem Vorschlag versehen werden sollte, an der günstigeren Tankstelle zum Tanken anzuhalten.

In einigen Ausführungsformen können Transport-Sharing-Dienste, Lebensmittel-Lieferdienste, Online-Shopping-Lieferdienste und andere Arten von Diensten CAIT einsetzen. Beispielsweise können Lieferdienste CAIT einsetzen, um Entscheidungen im Zusammenhang mit der Temperatur innerhalb der Lieferbox zu treffen, sodass die Temperatur basierend auf dem bekannten oder erkannten Artikel in der Box geeignet ist (z. B. kalt für Lebensmittel, warm für Pizza, Temperaturregelung ausschalten). B. eines Buches), Öffnen der Box (z. B. durch den Zusteller oder Roboter) und Authentifizierung (z. B. mithilfe eines zuvor festgelegten Public-Key-Infrastruktursystems, des Gesichts der an der Tür stehenden Person, einer Standardidentifizierung einschließlich Name und/oder Bild) . In einigen Ausführungsformen kann CAIT von Speichergeräten wie einem Kühlschrank verwendet werden. Beispielsweise kann der Kühlschrank (oder beispielsweise das Steuerungssystem eines Hauses) feststellen, ob Milch vorhanden ist oder nicht, und ob keine Milch vorhanden ist und festgestellt wird, dass das Haus Kinder hat (z. B. basierend auf Sensordaten vom Kühlschrank oder einem anderen). kollaborierendes Gerät), kann der Kühlschrank zu dem Schluss kommen, dass eine Reise zu einem nahegelegenen Markt wahrscheinlich ist. In einem Fall kann der Kühlschrank feststellen, ob er gefüllt oder leer ist, und daraus schließen, dass bald ein Lebensmitteleinkauf stattfinden könnte. Der Kühlschrank kann mit einem auf einem Kommunikationsgerät gespeicherten Kalender des Besitzers kommunizieren, um mögliche Zeiten zu ermitteln, zu denen der Besitzer in den nächsten Tagen einkaufen kann. Wenn sowohl Samstag als auch Sonntag verfügbar sind, kann der Kühlschrank ermitteln, an welchem ​​Tag der Benutzer in der Vergangenheit zu welcher Zeit Lebensmittel eingekauft hat? In manchen Fällen wird der Benutzer möglicherweise daran erinnert, Lebensmittel einzukaufen. In manchen Fällen kann CAIT verwendet werden, um zu bestimmen, ob der Eigentümer Großeinkäufe verschieben und in der laufenden Woche in einem örtlichen Supermarkt einkaufen möchte. Dabei wird ermittelt, wie viel der Benutzer möglicherweise verlieren würde, wenn er die Reise zu einem Lebensmittelgroßhandelsgeschäft verschiebt. welche und wie viele Lebensmittelvorräte der Eigentümer hat und benötigt und wie viel es kostet, die benötigten Lebensmittelvorräte im Lebensmittelgroßhandel, einem Online-Lebensmittelgeschäft, einem örtlichen Lebensmittelgeschäft oder einem Supermarkt zu kaufen. In manchen Fällen kann CAIT verwendet werden, um zu bestimmen, ob der Eigentümer darüber informiert werden sollte, dass seine Lebensmittel heute 45 US-Dollar kosten würden, wenn er sie im Supermarkt kaufte, und dass ihm ein Zeitfenster von zwei Stunden zur Verfügung steht, in dem er zum Supermarkt gehen kann noch heute einlagern. In einem Fall kann CAIT verwendet werden, um zu bestimmen, ob die Benachrichtigung auf dem Bildschirm eines Geräts des Eigentümers angezeigt werden soll oder ob nur eine Benachrichtigung bereitgestellt werden soll, wenn der Eigentümer über einem vorgegebenen Schwellenwert sparen kann oder wenn das Vertrauen in die Einsparungen besteht über einem vorgegebenen Schwellenwert liegt.

In einem anderen Beispiel kann CAIT verwendet werden, um die Wahrscheinlichkeit zu bestimmen, dass ein Benutzer um 20:00 Uhr zu Hause ankommt und ob der Benutzer es vorziehen würde, den Reis bis 20:10 Uhr im Reiskocher zu kochen, oder ob der Benutzer wahrscheinlich duschen geht und würde es vorziehen, den Reis um 20:30 Uhr kochen zu lassen, was möglicherweise auf einer weiteren Bestimmung basiert, wie viel Energie aufgewendet werden würde, um den Reis warm zu halten, wie viel Vorliebe der Benutzer für frisch gekochtes Essen hat (z. B. 10 oder 20 Minuten) und Wie wütend kann der Benutzer sein, wenn er erwartet, sofort etwas zu essen, das Essen jedoch erst um 20:20 Uhr zubereitet wird, weil er davon ausgeht, dass der Benutzer duschen würde? In einem Beispiel kann CAIT zur Überwachung der Aktivität von Geräten verwendet werden. Beispielsweise kann CAIT verwendet werden, um festzustellen, dass ein Benutzer im Laufe der Woche auf einige verpasste Anrufe seiner Eltern nicht reagiert hat. Wenn der Benutzer und seine Eltern jeweils ein Zeitfenster von 15 Minuten in ihrem Zeitplan haben und der Benutzer nicht arbeitet oder tippt (ermittelt dies z. B. anhand der Beobachtung von Tastenanschlägen auf einem Gerät) und der Benutzer in guter Stimmung ist (da Aufmerksamkeit und Emotionen können durch CAIT bestimmt werden) kann dem Benutzer vorgeschlagen werden, seine Eltern anzurufen. Wenn der Benutzer den Anruf bei seinen Eltern ständig aufschiebt und diese gesundheitliche Probleme haben, werden ihm möglicherweise weiterhin Vorschläge gemacht, seine Eltern anzurufen. In einem anderen Beispiel kann CAIT verwendet werden, um autonome Entscheidungen für Benutzer auf der Grundlage (z. B. abgeleiteter) protokollierter Informationen der Benutzer zu treffen. In Ausführungsformen können Benutzer steuern, welche Informationen protokolliert werden dürfen und welche Entscheidungen das CAIT-System in ihrem Namen treffen darf. Beispielsweise kann eine Datenbank für einen Benutzer die Sprachdatennutzung, die Gesamtdatennutzung, die Datennutzung auf einem Mobiltelefon, die Datennutzung in einem Heim-LAN, die wiederholte drahtlose Nutzung, Reinigungspräferenzen für einen Reinigungsroboter und die Reinigungshäufigkeit einer Reinigung speichern Roboter, Reinigungspläne eines Reinigungsroboters, Häufigkeit, mit der der Roboter den Müll rausbringt, Gesamtnutzungskilometer einer Passagierkapsel während eines bestimmten Zeitraums, wöchentliche Häufigkeit der Verwendung einer Passagierkapsel und des Fahrgestells, Datenverbrauch während der Verwendung der Kabine, monatliche Häufigkeit B. des Lebensmitteleinkaufs, die monatliche Häufigkeit des Tankens an einer bestimmten Tankstelle usw. In diesem Beispiel sind alle Geräte in einem integrierten System verbunden und die gesamte Intelligenz der Geräte im integrierten System wird gemeinsam zur Entscheidungsfindung genutzt. Beispielsweise kann CAIT verwendet werden, um zu entscheiden, wann ein Reinigungsroboter eines Benutzers bedient werden soll, oder um dem Benutzer eine Benachrichtigung an den Lebensmittelladen zu übermitteln, basierend auf Schlussfolgerungen, die anhand der in der Datenbank für den Benutzer gespeicherten Informationen gezogen werden. In einigen Ausführungsformen können Benutzergeräte und öffentlich zugängliche Geräte (z. B. intelligente Zapfsäulen, Rasenmäherroboter oder Serviceroboter) in einem integrierten System verbunden sein. In einigen Ausführungsformen kann der Benutzer die Nutzung oder den Dienst eines Geräts anfordern, das ihm nicht gehört, und in einigen Fällen kann der Benutzer für die Nutzung oder den Dienst bezahlen. In manchen Fällen erfolgt die Bezahlung nach Belieben. Beispielsweise kann ein Benutzer jeden Samstag einen Rasenmäherroboter anfordern, seinen Rasen zu mähen. Das CAIT-System kann die Anfrage, den Einsatz eines Roboter-Rasenmähers im Haus des Benutzers und die Bezahlung der Dienstleistung verwalten.

CAIT kann eingesetzt werden, um intelligente Entscheidungen auf der Grundlage der kollektiven künstlichen Intelligenz seiner Umgebung zu treffen. CAIT kann ein komplexes Netzwerk von KI-Systemen und -Geräten nutzen, um Schlussfolgerungen abzuleiten. In einigen Fällen kann es manuelle Einstellungen geben und die manuellen Einstellungen können getroffene Entscheidungen beeinflussen (z. B. den Grad der Wahrscheinlichkeit, mindestens einen vorher festgelegten Geldbetrag zu sparen, der dazu führen sollte, dass dem Benutzer ein Vorschlag gemacht wird).

In Ausführungsformen können Roboter über verschiedene Arten von Netzwerken kommunizieren. In Ausführungsformen können drahtlose Netzwerke verschiedene Kategorisierungen haben, wie beispielsweise drahtloses lokales Netzwerk (WLAN) und persönliches Netzwerk (WPAN). In Ausführungsformen kann ein WLAN im 2,4- oder 5-GHz-Spektrum betrieben werden und eine Reichweite von bis zu 100 m haben. In einem WLAN kann ein Dualband-WLAN-Router verwendet werden, um Laptops, Desktops, Smart-Home-Assistenten, Roboter, Thermostate, Sicherheitssysteme und andere Geräte zu verbinden. In einigen Ausführungsformen kann ein WLAN mobilen Clients Zugriff auf Netzwerkressourcen bieten, beispielsweise drahtlose Druckserver, Präsentationsserver und Speichergeräte. In Ausführungsformen kann ein WPAN im 2,4-GHz-Spektrum betrieben werden. Ein Beispiel für ein WPAN kann Bluetooth sein. In einigen Ausführungsformen können Bluetooth-Geräte wie Headsets und Mäuse Frequency Hopping Spread Spectrum (FHSS) verwenden. In einigen Ausführungsformen können Bluetooth-Piconetze aus bis zu acht aktiven Geräten bestehen, aber möglicherweise mehrere inaktive Geräte haben. In einigen Ausführungsformen können Bluetooth-Geräte durch den IEEE-Standard 802.15 standardisiert sein. Weitere Netzwerktypen sind ein Wireless Metropolitan Area Network (WMAN) und ein Wireless Wide Area Network (WWAN). In Ausführungsformen kann ein WMAN ein großes geografisches Gebiet abdecken und als Backbone-Dienste, Punkt-zu-Punkt- oder Punkt-zu-Mehrpunkt-Verbindungen verwendet werden. In Ausführungsformen kann ein WWAN einen großen geografischen Bereich abdecken, beispielsweise einen Mobilfunkdienst, und kann von einem Mobilfunkanbieter bereitgestellt werden.

In einigen Ausführungsformen können die drahtlosen Netzwerke, die von kollaborierenden Robotern für die drahtlose Kommunikation verwendet werden, auf der Verwendung eines drahtlosen Routers basieren. In einigen Ausführungsformen kann der drahtlose Router (oder der Roboter oder ein anderes Netzwerkgerät) Halbduplex oder Vollduplex sein, wobei Vollduplex es beiden Parteien ermöglicht, gleichzeitig miteinander zu kommunizieren, und Halbduplex es beiden Parteien ermöglicht, miteinander zu kommunizieren, aber nicht gleichzeitig. In einigen Ausführungsformen kann der WLAN-Router als Netzwerk-Switch fungieren und mehrere Subnetze oder virtuelle LANs (VLAN) erstellen, eine Netzwerkadressübersetzung (NAT) durchführen oder MAC-Adressen lernen und MAC-Tabellen erstellen. In einigen Ausführungsformen kann ein Roboter als drahtloser Router fungieren und über ähnliche Fähigkeiten wie oben beschrieben verfügen. In einigen Ausführungsformen kann ein Basic Service Area (BSA) des WLAN-Routers ein Abdeckungsbereich des WLAN-Routers sein. In einigen Ausführungsformen kann der WLAN-Router eine Ethernet-Verbindung umfassen. Beispielsweise kann die Ethernet-Verbindung den drahtlosen Datenverkehr von den drahtlosen Clients eines durch den IEEE-Standard 802.11 standardisierten Netzwerks zum kabelgebundenen Netzwerk auf der Ethernet-Seite, das durch den IEEE-Standard 802.3 standardisiert ist, oder über ein Telekommunikationsgerät an das WAN überbrücken. In einigen Ausführungsformen kann der drahtlose Router das Telekommunikationsgerät sein.

In einigen Ausführungsformen verfügt der WLAN-Router möglicherweise über einen Service Set Identifier (SSID) oder auf andere Weise über einen Netzwerknamen. In einigen Ausführungsformen kann die SSID eines WLAN-Routers mit einer MAC-Adresse des WLAN-Routers verknüpft sein. In manchen Fällen kann die SSID eine Kombination aus der MAC-Adresse und einem Netzwerknamen sein. Wenn der WLAN-Router Dienste nur für ein Netzwerk anbietet, wird die SSID möglicherweise als Basis-SSID (BSSID) bezeichnet. Wenn der WLAN-Router mehrere Netzwerke über dieselbe Hardware zulässt, wird die SSID möglicherweise als Mehrfach-BSSID (MBSSID) bezeichnet. .

In einigen Ausführungsformen kann die Umgebung der Roboter und anderer Netzwerkgeräte mehr als einen drahtlosen Router umfassen. In einigen Ausführungsformen können Roboter möglicherweise umherwandern und sich von einem WLAN-Router zu einem anderen bewegen. Dies kann in größeren Bereichen wie einem Flughafen oder in einem Zuhause nützlich sein, wenn die Kosten keine Rolle spielen. In einigen Ausführungsformen kann der Prozessor eines Roboters Roaming-Informationen, wie etwa den WLAN-Router, mit dem er verbunden sein kann, in Kombination mit anderen Informationen verwenden, um den Roboter zu lokalisieren. In einigen Ausführungsformen können Roboter möglicherweise von einem WLAN-Router mit einem schwachen Signal zu einem WLAN-Router mit einem starken Signal wechseln. In einigen Ausführungsformen kann es einen Schwellenwert geben, der vor dem Roaming von einem WLAN-Router zu einem anderen erreicht werden muss, oder es kann eine ständige Überwachung verwendet werden. In einigen Ausführungsformen kann der Prozessor eines Roboters die Verfügbarkeit von drahtlosen Routern anhand des mithilfe von SLAM ermittelten Standorts des Roboters erkennen. In einigen Ausführungsformen können sich die Roboter intelligent so einrichten, dass sie Abdeckung bieten, wenn einer oder mehrere der WLAN-Router ausfallen. In Ausführungsformen muss sich die BSA jedes drahtlosen Routers überlappen und die drahtlosen Router müssen dieselbe SSID haben, damit Roaming funktioniert. Wenn sich beispielsweise ein Roboter bewegt, kann er dieselbe SSID beobachten, während sich die MAC-Adresse ändert. In einigen Ausführungsformen können die WLAN-Router auf unterschiedlichen Kanälen oder Frequenzbereichen arbeiten, die sich nicht gegenseitig überlappen, um Gleichkanalinterferenzen zu verhindern. In manchen Fällen kann dies eine Herausforderung darstellen, da das 2,4-GHz-Spektrum, auf dem die Netzwerkgeräte arbeiten können, nur drei nicht überlappende Kanäle umfasst. In einigen Ausführungsformen kann ein Extended Service Set (ESS) verwendet werden, wobei mehrere drahtlose Netzwerke zum Verbinden von Clients verwendet werden können.

In einigen Ausführungsformen können Roboter (und andere Netzwerkgeräte) über zwei oder mehr verbundene LANs kommunizieren. In einigen Ausführungsformen kann eine drahtlose Brücke verwendet werden, um zwei oder mehr LANs zu verbinden, die sich in einiger Entfernung voneinander befinden. In Ausführungsformen erfolgt Bridging auf Schicht 2, da die LANs keinen Datenverkehr weiterleiten und keine Routing-Tabelle haben. In Ausführungsformen sind Brücken nützlich, um entfernte Standorte zu verbinden. Bei einer Punkt-zu-Mehrpunkt-Topologie kann es jedoch zu einer Überlastung des zentralen drahtlosen Geräts kommen, da jedes Gerät an einem Ende mit anderen Geräten über das zentrale drahtlose Gerät kommunizieren muss. In einigen Ausführungsformen kann alternativ ein Netz verwendet werden, insbesondere wenn Konnektivität wichtig ist, da mehrere Pfade für die Kommunikation verwendet werden können. Einige Ausführungsformen verwenden möglicherweise den IEEE-Mesh-Standard 802.11s. In einigen Ausführungsformen kann ein Mesh-Netzwerk einige Knoten (z. B. Netzwerkgeräte) umfassen, die mit einem drahtgebundenen Netzwerk verbunden sind, einige Knoten, die als Repeater fungieren, einige Knoten, die in Schicht 2 und Schicht 3 arbeiten, einige stationäre Knoten, einige mobile Knoten, einige Roaming-Knoten usw. umfassen Mobilknoten, einige Knoten mit Langstreckenantennen und einige Knoten mit Kurzstreckenantennen und Mobilfunkfähigkeit. In einigen Ausführungsformen kann ein Mesh-Knoten Daten an nahegelegene Knoten übertragen oder Daten intelligent bereinigen. In einigen Ausführungsformen kann ein Netz mehr als einen Pfad zur Datenübertragung umfassen. In einigen Ausführungsformen kann ein spezieller Algorithmus verwendet werden, um den besten Pfad zum Übertragen von Daten von einem Punkt zu einem anderen zu bestimmen. In einigen Ausführungsformen können alternative Pfade verwendet werden, wenn es zu einer Überlastung kommt oder wenn ein Mesh-Knoten ausfällt. In einigen Ausführungsformen kann die Graphentheorie zum Verwalten der Pfade verwendet werden. In einigen Ausführungsformen können spezielle Protokolle verwendet werden, um auftretende Schleifen zu steuern. Beispielsweise kann auf Schicht 2 ein Spanning Tree-Protokoll und auf Schicht 3 IP-Header-TTL verwendet werden.

In einigen Ausführungsformen können Roboter (und andere Netzwerkgeräte) durch das Senden von Paketen kommunizieren. Beispielsweise kann ein Roboter in einer Roboterflotte Pakete senden und jeder in der Roboterflotte kann die Pakete empfangen. In einigen Ausführungsformen können Roboter (und andere Netzwerkgeräte) mithilfe einer Multicast-Übertragung kommunizieren. Eine Unicast-Übertragung kann das Senden von Paketen an einen einzelnen Empfänger in einem Netzwerk umfassen, während eine Multicast-Übertragung das Senden von Paketen an eine Gruppe von Geräten in einem Netzwerk umfassen kann. Beispielsweise kann ein Unicast für eine Quelle gestartet werden, um Daten an ein einzelnes Ziel zu streamen. Wenn der Stream mehrere Ziele gleichzeitig erreichen muss, kann der Stream an eine gültige Multicast-IP-Adresse zwischen 224.0.0.0 und 239.255.255.255 gesendet werden. In Ausführungsformen kann das erste Oktett (224.xxx.xxx.xxx) des Multicast-IP-Adressbereichs für die Verwaltung reserviert sein. In einigen Ausführungsformen können Multicast-IP-Adressen durch das Präfix-Bitmuster 1110 in den ersten vier Bits des ersten Oktetts identifiziert werden und gehören zu einer Gruppe von Adressen, die als Klasse D bezeichnet werden. Die Multicast-IP-Adressen liegen zwischen 224.0.0.0 und 239.255 .255.255 sind in Blöcke unterteilt, denen jeweils ein bestimmter Zweck oder ein bestimmtes Verhalten zugewiesen ist. Beispielsweise wird der Bereich von 224.0.0.0 bis 224.0.0.255, bekannt als Local Network Control Block, von Netzwerkprotokollen in einem lokalen Subnetzsegment verwendet. Pakete mit einer Adresse in diesem Bereich haben einen lokalen Gültigkeitsbereich und werden mit einer Time To Live (TTL) von 1 übertragen, sodass sie nicht über das lokale Subnetz hinausgehen. Oder der Bereich von 224.0.1.0 bis 224.0.1.255 ist der Inter-Network Control Block. Diese Adressen ähneln dem Local Network Control Block, außer dass sie von Netzwerkprotokollen verwendet werden, wenn Steuernachrichten über das lokale Netzwerksegment hinaus per Multicast gesendet werden müssen. Weitere Blöcke finden Sie möglicherweise auf IANA. Einige Ausführungsformen können 802.2 IEEE-Standards für die Übertragung von Broadcast- und Multicast-Paketen verwenden. Beispielsweise kann Bit 0 von Oktett 0 einer MAC-Adresse anzeigen, ob die Zieladresse eine Broadcast-/Multicast-Adresse oder eine Unicast-Adresse ist. Basierend auf dem Wert von Bit 0 von Oktett 0 der MAC-Adresse kann der MAC-Frame entweder für eine Gruppe von Hosts oder für alle Hosts im Netzwerk bestimmt sein. In Ausführungsformen kann die MAC-Zieladresse die Broadcast-Adresse 0xFFFF.FFFF.FFFF sein.

In einigen Ausführungsformen kann Layer-2-Multicasting verwendet werden, um IP-Multicast-Pakete an eine Gruppe von Hosts in einem LAN zu übertragen. In einigen Ausführungsformen können 23 Bit MAC-Adressraum für die Zuordnung einer Multicast-IP-Adresse der Schicht 3 in eine MAC-Adresse der Schicht 2 verfügbar sein. Da die ersten vier Bits von insgesamt 32 Bits aller Layer-3-Multicast-IP-Adressen auf 0x1110 gesetzt sind, bleiben 28 Bits aussagekräftiger Multicast-IP-Adressinformationen übrig. Da möglicherweise nicht alle 28 Bits der IP-Multicast-Adressinformationen der Schicht 3 den verfügbaren 23 Bits der MAC-Adresse der Schicht 2 zugeordnet werden, gehen bei der Zuordnung fünf Bits der Adressinformationen verloren, was zu einer Adressmehrdeutigkeit von 32:1 führt. In Ausführungsformen weist eine 32:1-Adressmehrdeutigkeit darauf hin, dass jede Multicast-MAC-Adresse 32 Multicast-IP-Adressen darstellen kann, was potenzielle Probleme verursachen kann. Beispielsweise können Geräte, die die Multicast-Gruppe 224.1.1.1 abonnieren, ihre Hardware so programmieren, dass sie die CPU unterbricht, wenn ein Frame mit der Ziel-Multicast-MAC-Adresse 0x0100.5E00.0101 empfangen wird. Diese Multicast-MAC-Adresse kann jedoch gleichzeitig für 31 andere Multicast-IP-Gruppen verwendet werden. Wenn eine dieser 31 anderen IP-Gruppen ebenfalls im selben LAN aktiv ist, erhält die CPU des Geräts möglicherweise Interrupts, wenn ein Frame für eine dieser anderen IP-Gruppen empfangen wird. In solchen Fällen muss die CPU den IP-Anteil bis zur Schicht 3 jedes empfangenen Frames untersuchen, um festzustellen, ob der Frame von der abonnierten Gruppe 224.1.1.1 stammt. Dies kann sich auf die dem Gerät zur Verfügung stehende CPU-Leistung auswirken, wenn die Anzahl der Fehlalarme aus dem Datenverkehr der nicht abonnierten Gruppe hoch genug ist.

In einigen Ausführungsformen können Rendezvous-Punkte zur Verwaltung von Multicast verwendet werden, wobei Unicast-Pakete bis zum Punkt der Teilnehmer gesendet werden können. In einigen Ausführungsformen kann die Steuerung des IP-Multicast-Verkehrs auf WAN-Verbindungen wichtig sein, um eine Überlastung von Verbindungen mit niedriger Geschwindigkeit durch Gruppen mit hoher Geschwindigkeit zu vermeiden. In einigen Ausführungsformen kann die Steuerung durch die Entscheidung implementiert werden, wer IP-Multicast senden und empfangen kann. In einigen Ausführungsformen kann jede Multicast-Quelle an jede beliebige Gruppenadresse senden und jeder Multicast-Client kann unabhängig von der geografischen Lage von jeder Gruppe empfangen. In einigen Ausführungsformen kann der administrative oder private Adressraum innerhalb eines Unternehmens verwendet werden, sofern der Multicast-Verkehr nicht aus dem Internet stammt.

In einigen Ausführungsformen kann der Roboter über ein oder mehrere Netzwerke (z. B. drahtlos oder drahtgebunden) mit anderen intelligenten Geräten (wie Robotern, Heimassistenten, Mobiltelefonen, Tablets usw.) gekoppelt sein. Beispielsweise können der Roboter und andere intelligente Geräte über ein lokales Netzwerk oder andere Arten von privaten Netzwerken miteinander kommunizieren, beispielsweise eine über Bluetooth verbundene Arbeitsgruppe oder ein öffentliches Netzwerk (z. B. das Internet oder die Cloud). In einigen Ausführungsformen kann der Roboter über das Internet mit anderen Geräten, beispielsweise Servern, kommunizieren. In einigen Ausführungsformen kann der Roboter Informationen über seine Umgebung erfassen, beispielsweise Daten in Bezug auf räumliche Informationen, Personen, Objekte, Hindernisse usw. In einigen Ausführungsformen kann der Roboter einen Satz Daten oder Befehle von einem anderen Roboter, einem Computer, empfangen Gerät, ein Inhaltsserver, ein Steuerserver oder eine beliebige Kombination davon, die sich lokal oder entfernt in Bezug auf den Roboter befindet. In einigen Ausführungsformen kann Speicher innerhalb des Roboters zum Speichern des Satzes von Daten oder Befehlen vorgesehen sein. In einigen Ausführungsformen kann der Prozessor des Roboters bestimmen, ob sich der Datensatz auf andere Roboter, Menschen, Netzwerkobjekte oder eine Kombination davon bezieht, und kann mindestens ein Daten oder einen Befehl aus dem Daten- oder Befehlssatz auswählen. In einigen Ausführungsformen kann der Roboter den Satz von Daten oder Befehlen von einem Gerät außerhalb eines privaten Netzwerks empfangen. In einigen Ausführungsformen kann der Roboter den Satz von Daten oder Befehlen von einem Gerät außerhalb des privaten Netzwerks empfangen, obwohl sich das Gerät physisch in der Nähe des Roboters befindet. Beispielsweise kann ein Smartphone mit einem lokalen Wi-Fi-Netzwerk oder einem Mobilfunknetz verbunden sein. Informationen können vom Smartphone über ein externes Netzwerk an den Roboter gesendet werden, obwohl sich das Smartphone im selben lokalen Wi-Fi-Netzwerk wie der Roboter befindet. In einigen Ausführungsformen kann der Prozessor des Roboters einige der prozess- oder energieintensiveren Aufgaben auf andere Geräte in einem Netzwerk (z. B. einem lokalen Netzwerk) oder in der Cloud oder auf seine eigenen zusätzlichen Prozessoren (falls vorhanden) verlagern.

In einigen Ausführungsformen kann jedem Netzwerkgerät eine IP-Adresse oder Geräte-ID von einem lokalen Gateway zugewiesen werden. In einigen Ausführungsformen kann für das lokale Gateway ein Pool von IP-Adressen konfiguriert sein. In einigen Fällen schließt das lokale Gateway möglicherweise einige IP-Adressen aus diesem Bereich aus, da sie möglicherweise anderen Pools zugewiesen sind, einige Geräte möglicherweise eine permanente IP benötigen oder einige IP-Adressen im kontinuierlichen Adressraum möglicherweise zuvor statisch zugewiesen wurden. Wenn eine IP zugewiesen (oder anderweitig geleast) wird, können auch zusätzliche Informationen zugewiesen werden. Zum Beispiel ein Standard-Gateway, ein Domänenname, ein TFTP-Server, ein FTP-Server, ein NTP-Server, ein DNS-Server oder ein Server, von dem das Gerät die meisten Updates für seine Firmware usw. herunterladen kann. Beispielsweise kann ein Roboter seine Uhr herunterladen von einem NTP-Server oder lassen Sie die Uhr vom Benutzer manuell anpassen. Der Roboter erkennt möglicherweise seine eigene Zeitzone, die Sommerzeitumstellung anhand der geografischen Lage und andere Informationen. Alle diese Informationen können auch manuell eingestellt werden. In manchen Fällen kann es einen oder mehrere von jedem Server geben und der Roboter kann jeden einzelnen ausprobieren. Zu den zugewiesenen Informationen einer IP-Lease können beispielsweise das Netzwerk 192.168.101.0/24, der Standardrouter 192.168.101.1, der Domänenname aiincorporated.com, der DNS-Server 192.168.110.50, der TFTP-Server 192.168.110.19 und die Lease-Zeit 6 Stunden gehören. In einigen Ausführungsformen kann die Sprachunterstützung im IP-Leasing enthalten sein oder von einem Server (z. B. einem TFTP-Server) heruntergeladen werden. Beispiele für unterstützte Sprachen sind Englisch, Französisch, Deutsch, Russisch, Spanisch, Italienisch, Niederländisch, Norwegisch, Portugiesisch, Dänisch, Schwedisch und Japanisch. In einigen Ausführungsformen kann eine Sprache erkannt werden und als Reaktion darauf kann die zugehörige Sprachunterstützung heruntergeladen und lokal gespeichert werden. Wenn die Sprachunterstützung über einen festgelegten Zeitraum hinweg nicht genutzt wird, wird sie möglicherweise automatisch entfernt. In einigen Ausführungsformen kann ein TFTP-Server eine Konfigurationsdatei für jeden Roboter speichern, die jeder Roboter herunterladen kann, um die benötigten Informationen zu erhalten. In einigen Fällen kann es Dateien mit allgemeinen Einstellungen und Dateien mit individuellen Einstellungen geben. In einigen Ausführungsformen können die einzelnen Einstellungen basierend auf Standort, MAC-Adresse usw. definiert werden. In einigen Ausführungsformen kann ein dynamisches Hostkonfigurationsprotokoll (DHCP) verwendet werden, beispielsweise eine DHCP-Option150, kann verwendet werden, um jedem Gerät im Netzwerk IP-Adressen und andere Netzwerkparameter zuzuweisen. In manchen Fällen kann ein Hacker den DHCP-Server fälschen, um einen betrügerischen DHCP-Server einzurichten und auf DHCP-Anfragen des Roboters zu reagieren. Dies kann gleichzeitig mit einem DHCP-Hungerangriff erfolgen, bei dem der Server des Opfers keine neuen IP-Adressen herausgeben kann, wodurch sich die Wahrscheinlichkeit erhöht, dass der Roboter den falschen DHCP-Server verwendet. Solche Fälle können dazu führen, dass der Roboter fehlerhafte Firmware herunterlädt und kompromittiert wird. Um diese Probleme zu lindern, kann eine digitale Signatur verwendet werden. In einigen Ausführungsformen verzichtet der Roboter auf die Installation von Firmware, die nicht nachweislich aus einer sicheren Quelle stammt.

FEIGE.116veranschaulicht ein Beispiel eines Netzwerks elektronischer Geräte, darunter Roboter, Mobiltelefone, Heimassistenten, Computer, Tablets, intelligente Geräte (z. B. Kühlschränke) und Robotersteuereinheiten (z. B. Ladestationen), innerhalb einer Umgebung, zumindest einige davon mit einem Mobilfunk- oder Wi-Fi-Netzwerk verbunden sein. Andere Beispiele für Geräte, die Teil eines drahtlosen Netzwerks (oder eines kabelgebundenen LAN oder eines anderen Netzwerks) sein können, können Internet, Dateiserver, Drucker und andere Geräte sein. In einigen Ausführungsformen stellt das Kommunikationsgerät vorzugsweise eine Verbindung zu einem Wi-Fi-Netzwerk her, wenn dieses verfügbar ist, und verwendet ein Mobilfunknetz, wenn kein Wi-Fi-Netzwerk verfügbar ist. In einem Fall ist das Kommunikationsgerät möglicherweise nicht mit einem Wi-Fi-Heimnetzwerk verbunden und es wird möglicherweise ein Mobilfunknetz verwendet. In einem anderen Fall kann das Kommunikationsgerät mit einem Heim-WLAN verbunden sein, einige Kommunikationsgeräte bevorzugen jedoch möglicherweise ein Mobilfunknetz. In manchen Ausführungsformen kann die Präferenz beabsichtigt sein. In einigen Ausführungsformen kann ein Benutzer eine Präferenz in einer Anwendung des Kommunikationsgeräts oder innerhalb der Einstellungen des Kommunikationsgeräts festlegen. InFEIGE.116Allerdings sind die Roboter im Gegensatz zu den Ladestationen nicht direkt mit dem LAN verbunden. In einem Fall erhält der Prozessor des Roboters keine IP-Adresse und verwendet ein RF-Kommunikationsprotokoll. Im zweiten Fall erhält der Prozessor des Roboters eine IP-Adresse, allerdings aus einem anderen Pool als der, den der WLAN-Router verteilt. Die IP-Adresse befindet sich möglicherweise nicht in demselben Subnetz wie der Rest des LAN. In manchen Fällen kann die Ladestation als WLAN-Router fungieren und dem Prozessor des Roboters eine IP-Adresse bereitstellen.FIG.117A und117BBeispiele für einen Verbindungsweg veranschaulichen11700für Geräte über die Cloud. InFEIGE.117ADie Robotersteuerung 1 ist über die Cloud mit dem Mobiltelefon 1 verbunden. Dabei ist das Mobiltelefon 1 über das Mobilfunknetz mit der Cloud verbunden, während die Robotersteuereinheit 1 über das WLAN-Netzwerk mit der Cloud verbunden ist. InFEIGE.117BDie Robotersteuerung 1 ist über die Cloud mit dem Mobiltelefon 2 verbunden. In diesem Fall sind Mobiltelefon 2 und Robotersteuereinheit 1 über das WLAN-Netzwerk mit der Cloud verbunden.FEIGE.118zeigt ein Beispiel für einen LAN-Verbindungspfad11800zwischen Mobiltelefon 2 und Robotersteuergerät 1 über den WLAN-Router. Für einen LAN-Verbindungspfad können die Kosten reduziert werden, da keine Zahlung an einen Internetdienstanbieter erforderlich ist. Allerdings sind einige Dienste, wie z. B. Dienste eines Heimassistenten (z. B. Alexa) oder Cloud-Erweiterungen, die möglicherweise mit Mapping verwendet werden, möglicherweise nicht verfügbar.FEIGE.119veranschaulicht einen direkten Verbindungsweg11900zwischen Mobiltelefon 2 und Robotersteuereinheit 1. In manchen Fällen kann ein direkter Verbindungspfad zwischen Geräten unerwünscht sein, da die Geräte während der direkten Verbindung möglicherweise nicht mit anderen Geräten im LAN kommunizieren können. Beispielsweise kann es sein, dass ein Smartphone während einer direkten Verbindung mit einem anderen Gerät nicht im Internet surfen kann. In einigen Fällen kann vorübergehend eine direkte Verbindung zwischen Geräten verwendet werden. Beispielsweise kann eine direkte Verbindung zwischen Geräten während der Einrichtung des Roboters verwendet werden, um eine anfängliche Kommunikation zwischen einem Kommunikationsgerät oder einer Ladestation und dem Roboter herzustellen, sodass dem Prozessor des Roboters eine SSID bereitgestellt werden kann, die dazu verwendet werden kann zunächst dem LAN beitreten. In einigen Ausführungsformen kann jedes Gerät seine eigene IP-Adresse haben und die Kommunikation zwischen Geräten kann über einen zwischen den Geräten positionierten WLAN-Router erfolgen.FEIGE.120veranschaulicht einen Verbindungsweg12000zwischen Roboter 3 und Handy 2 über den Router. In solchen Fällen ist möglicherweise keine Kommunikationsmethode verfügbar, wenn der WLAN-Router nicht verfügbar ist. Darüber hinaus werden möglicherweise zu viele IP-Adressen verwendet. In einigen Ausführungsformen kann eine Variation dieses Beispiels verwendet werden, wobei der Roboter eine Verbindung zum LAN herstellen kann, während die Ladestation über eine RF-Kommunikationsmethode eine Verbindung zum Internet herstellen kann.

In einigen Ausführungsformen kann der Prozessor eines Roboters eine erste Funknachricht senden, um andere Roboter (oder elektronische Geräte) zu entdecken, die innerhalb des Bereichs zur Kommunikation fähig sind. In einigen Ausführungsformen kann der Prozessor des Roboters die Existenz eines anderen kommunikationsfähigen Roboters auf der Grundlage einer Konfiguration, die der Prozessor des Roboters an dem anderen Roboter ausführt, oder einer Befehlseingabe, die an einer grafischen Benutzeroberfläche bereitgestellt wird, entdecken. In einigen Ausführungsformen können Roboter TCP/IP zur Kommunikation verwenden. In einigen Ausführungsformen kann die Kommunikation zwischen Robotern über ein Layer-2-Protokoll erfolgen. In einigen Ausführungsformen besitzt der Roboter eine MAC-Adresse und in einigen Ausführungsformen überträgt der Prozessor des Roboters die MAC-Adresse an andere Roboter oder einen drahtlosen Router. In einigen Ausführungsformen kann der Prozessor einer Ladestation des Roboters eine Nachricht senden, um andere Wi-Fi-fähige Geräte zu entdecken, wie etwa andere Roboter oder Ladestationen, die innerhalb des Bereichs kommunizieren können. In einigen Ausführungsformen kann ein Roboterendpunktgerät innerhalb eines lokalen Netzwerks betrieben werden. In einigen Ausführungsformen kann der Roboter eine Netzwerkschnittstellenkarte oder ein anderes Netzwerkschnittstellengerät umfassen. In einigen Ausführungsformen kann der Roboter so konfiguriert sein, dass er dynamisch eine Netzwerkadresse empfängt, oder ihm kann eine statische Netzwerkadresse zugewiesen werden. In einigen Ausführungsformen kann die Option dem Benutzer über eine Anwendung eines Kommunikationsgeräts bereitgestellt werden. In einigen Ausführungsformen kann der Roboter im dynamischen Modus eine Netzwerkadresse über eine Übertragung anfordern. In einigen Ausführungsformen kann ein Gerät in der Nähe eine Netzwerkadresse aus einem vorkonfigurierten Adresspool zuweisen. In einigen Ausführungsformen kann ein Gerät in der Nähe die Netzwerkadresse in eine globale Netzwerkadresse oder die Netzwerkadresse in eine andere lokale Netzwerkadresse übersetzen. In einigen Ausführungsformen können Methoden zur Netzwerkadressübersetzung verwendet werden, um die Art und Weise zu verwalten, wie ein lokales Netzwerk mit anderen Netzwerken kommuniziert. In einigen Ausführungsformen kann ein DNS-Name verwendet werden, um dem Roboter einen Hostnamen zuzuweisen.

In einigen Ausführungsformen kann jeder drahtlose Client innerhalb der Reichweite eines drahtlosen Routers eine oder mehrere SSIDs bekannt geben (z. B. jedes intelligente Gerät und jeden Roboter eines intelligenten Zuhauses). In einigen Ausführungsformen können zwei oder mehr Netzwerke so konfiguriert sein, dass sie sich in unterschiedlichen Subnetzen befinden, und Geräte können mit unterschiedlichen SSIDs verknüpft sein. Ein WLAN-Router, der mehrere SSIDs ankündigt, verwendet jedoch dieselbe drahtlose Funkverbindung. In einigen Ausführungsformen können unterschiedliche SSIDs für unterschiedliche Zwecke verwendet werden. Beispielsweise kann eine SSID für ein Netzwerk mit einem anderen Subnetz als andere Netzwerke verwendet und Gastgeräten angeboten werden. Eine andere SSID kann für ein Netzwerk mit zusätzlicher Sicherheit für authentifizierte Geräte zu Hause oder im Büro verwendet werden und die Geräte in einem Subnetz platzieren. In einigen Ausführungsformen kann der Roboter eine Schnittstelle umfassen, die zur Auswahl einer gewünschten SSID verwendet werden kann. In einigen Ausführungsformen kann dem Roboter eine SSID bereitgestellt werden, indem die SSID in eine Anwendung eines Kommunikationsgeräts (z. B. Smartphone während eines Kopplungsvorgangs mit dem Kommunikationsgerät) eingegeben wird. In einigen Ausführungsformen kann für den Roboter ein bevorzugtes Netzwerk konfiguriert sein oder ein bevorzugtes Netzwerk kann über eine Anwendung eines Kommunikationsgeräts nach einem Kopplungsprozess ausgewählt werden. In einigen Ausführungsformen kann die Konfiguration einer drahtlosen Netzwerkverbindung für den Roboter mithilfe eines gekoppelten Geräts wie einem Smartphone oder über eine Schnittstelle des Roboters bereitgestellt werden. In einigen Ausführungsformen erfordert der Kopplungsprozess zwischen dem Roboter und einer Anwendung eines Kommunikationsgeräts möglicherweise, dass sich das Kommunikationsgerät, der Roboter und ein WLAN-Router in derselben Nähe befinden. In einigen Ausführungsformen kann ein Knopf des Roboters gedrückt werden, um den Kopplungsprozess einzuleiten. In einigen Ausführungsformen kann es erforderlich sein, die Taste des Roboters einige Sekunden lang gedrückt zu halten, um versehentliche Änderungen der Robotereinstellungen zu vermeiden. In einigen Ausführungsformen kann ein Indikator (z. B. ein Licht, ein Geräusch, eine Vibration usw.) verwendet werden, um anzuzeigen, dass sich der Roboter im Kopplungsmodus befindet. Beispielsweise können am Roboter angebrachte LEDs blinken, um anzuzeigen, dass sich der Roboter im Kopplungsmodus befindet. In einigen Ausführungsformen kann die Anwendung des Kommunikationsgeräts eine Taste anzeigen, die gedrückt werden kann, um den Kopplungsprozess einzuleiten. In einigen Ausführungsformen kann die Anwendung eine Liste verfügbarer SSIDs anzeigen. In einigen Ausführungsformen kann ein Benutzer die Anwendung verwenden, um manuell eine SSID einzugeben. In einigen Ausführungsformen kann der Kopplungsprozess erfordern, dass das Kommunikationsgerät Standortdienste aktiviert, sodass verfügbare SSIDs in der Umgebung angezeigt werden können. In einigen Ausführungsformen kann die Anwendung eine Anweisung zum Aktivieren von Ortungsdiensten anzeigen, wenn eine globale Einstellung auf dem Betriebssystem des Kommunikationsgeräts Ortungsdienste deaktiviert hat. In Fällen, in denen die Ortungsdienste deaktiviert sind, kann die SSID manuell über die Anwendung eingegeben werden. In einigen Ausführungsformen kann der Roboter ein drahtloses Bluetooth-Gerät umfassen, das dem Kommunikationsgerät dabei helfen kann, verfügbare SSIDs zu finden, unabhängig von der Aktivierung oder Deaktivierung von Ortungsdiensten. Dies kann als benutzerfreundliche Lösung in Fällen verwendet werden, in denen der Benutzer möglicherweise keine Standortdienste aktivieren möchte. In einigen Ausführungsformen erfordert der Kopplungsprozess möglicherweise, dass das Kommunikationsgerät und der Roboter mit demselben Netzwerk oder derselben SSID verbunden sind. Eine solche Einschränkung kann zu Verwirrung führen, wenn das Kommunikationsgerät zu Hause und in der Nähe des Roboters mit einem Mobilfunknetz verbunden ist oder das Kommunikationsgerät mit einem 5-GHz-Netzwerk verbunden ist und der Roboter mit einem 2,4-GHz-Netzwerk verbunden ist Zeiten können denselben SSID-Namen und dasselbe Passwort haben. In einigen Ausführungsformen kann es für den Roboter vorzuziehen sein, ein 2,4-GHz-Netzwerk zu verwenden, da er möglicherweise im Haus herumläuft und an Orten landet, an denen die Signalstärke eines 5-GHz-Netzwerks schwach ist. In einigen Ausführungsformen kann ein 5-GHz-Netzwerk in einer Umgebung mit mehreren drahtlosen Repeatern und einem Signal mit guter Stärke bevorzugt werden. In einigen Ausführungsformen kann der Roboter automatisch zwischen Netzwerken wechseln, wenn die Datenrate steigt oder sinkt. In einigen Ausführungsformen sind Paarungsmethoden wie die in der US-Patentanmeldung Serien-Nr. Nr. 16/109,617 verwendet werden, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird.

In einigen Ausführungsformen kann ein Robotergerät, ein Kommunikationsgerät oder ein anderes intelligentes Gerät drahtlos einem lokalen Netzwerk beitreten, indem es passiv nach Netzwerken sucht und auf jeder Frequenz nach Beacons lauscht, die von einem drahtlosen Router gesendet werden. Alternativ kann das Gerät einen aktiven Scanprozess verwenden, bei dem eine Sondierungsanfrage auf der Suche nach einem bestimmten WLAN-Router gesendet werden kann. In einigen Ausführungsformen kann der Client eine Verbindung mit der SSID herstellen, die in einer Probe-Antwort oder in einem gehörten Beacon empfangen wurde. In einigen Ausführungsformen kann das Gerät während des aktiven Scannens eine Prüfanforderung mit einem leeren SSID-Feld senden. In einigen Ausführungsformen können drahtlose Router, die die Prüfanforderung empfangen, mit einer Liste verfügbarer SSIDs antworten. In einigen Ausführungsformen kann sich das Gerät mit einer der vom WLAN-Router empfangenen SSIDs verbinden, wenn eine der SSIDs in einer Liste bevorzugter Netzwerke des Geräts vorhanden ist. Wenn die Verbindung fehlschlägt, versucht das Gerät möglicherweise eine SSID, die in der Liste der bevorzugten Netzwerke vorhanden ist und während eines Scans als verfügbar angezeigt wurde.

In einigen Ausführungsformen kann ein Gerät eine Authentifizierungsanfrage senden, nachdem es eine SSID ausgewählt hat. In einigen Ausführungsformen antwortet der WLAN-Router möglicherweise mit einer Authentifizierungsantwort. In einigen Ausführungsformen kann das Gerät eine Zuordnungsanfrage senden, einschließlich der Datenraten und Fähigkeiten des Geräts, nachdem es eine erfolgreiche Authentifizierungsantwort vom WLAN-Router erhalten hat. In einigen Ausführungsformen kann der WLAN-Router eine Zuordnungsantwort senden, einschließlich der Datenraten, zu denen der WLAN-Router fähig ist, und anderer Fähigkeiten sowie einer Identifikationsnummer für die Zuordnung. In einigen Ausführungsformen kann eine Übertragungsgeschwindigkeit durch einen Empfangssignalstärkeindikator (RSSI) und ein Signal-Rausch-Verhältnis (SNR) bestimmt werden. In einigen Ausführungsformen kann das Gerät basierend auf verschiedenen Faktoren die beste Geschwindigkeit zum Übertragen von Informationen auswählen. Beispielsweise können Management-Frames langsamer gesendet werden, um zu verhindern, dass sie verloren gehen, Daten-Header können schneller gesendet werden als Management-Frames und tatsächliche Daten-Frames können mit der schnellstmöglichen Rate gesendet werden. In einigen Ausführungsformen kann das Gerät Daten an andere Geräte im Netzwerk senden, nachdem es mit der SSID verknüpft wurde. In Ausführungsformen kann das Gerät mit Geräten innerhalb desselben Subnetzes oder anderer Subnetze kommunizieren. Basierend auf normalen IP-Regeln kann das Gerät zunächst feststellen, ob sich das andere Gerät im selben Subnetz befindet, und dann entscheiden, ein Standard-Gateway zur Weiterleitung der Informationen zu verwenden. In einigen Ausführungsformen kann ein Datenrahmen von einem Layer-3-Gerät empfangen werden, beispielsweise dem Standard-Gateway. In einigen Ausführungsformen kann der Frame dann in IPV4 oder IPV6 gekapselt und durch das Weitverkehrsnetzwerk weitergeleitet werden, um ein gewünschtes Ziel zu erreichen. Durch die Übertragung von Daten in Schicht 3 kann das Gerät über ein lokales Netzwerk, die Cloud, eine mit WLAN verbundene Anwendung oder Mobilfunkdaten gesteuert werden. In einigen Ausführungsformen können Geräte wie Knoten B, ein Telekommunikationsknoten in Mobilkommunikationsnetzen, die den UMTS-Standard anwenden, beim Empfang der Daten an einem Mobilfunkmast eine Verbindung zwischen dem Gerät, von dem Daten gesendet werden, und dem weiteren Telefonnetz herstellen. Knoten-B-Geräte können mit dem Mobilfunknetz verbunden sein und direkt mit mobilen Geräten kommunizieren. In solchen Mobilfunknetzen kommunizieren mobile Geräte nicht direkt miteinander, sondern über das Node-B-Gerät, das RF-Sender und -Empfänger für die Kommunikation mit mobilen Geräten verwendet.

In einigen Ausführungsformen kann ein Client, der noch nie mit einem Standard-Gateway kommuniziert hat, das Address Resolution Protocol (ARP) verwenden, um seine MAC-Adresse aufzulösen. In einigen Ausführungsformen kann der Client eine ARP-Tabelle für die Zuordnung zum Gateway untersuchen. Wenn das Gateway jedoch nicht vorhanden ist, kann das Gerät eine ARP-Anfrage erstellen und die ARP-Anfrage an den WLAN-Router übertragen. Beispielsweise kann ein 802.11-Frame mit vier Adressen verwendet werden: Quelladresse (SA), Zieladresse (DA), Senderadresse (TA) und Empfangsadresse (RA). In diesem Beispiel ist die SA der MAC des Geräts, das die ARP-Anfrage sendet, die DA ist der Broadcast (für das ARP) und die RA ist der WLAN-Router. In einigen Ausführungsformen kann der WLAN-Router die ARP-Anfrage empfangen und die MAC-Adresse des Geräts erhalten. In einigen Ausführungsformen kann der WLAN-Router die Frame-Check-Sequenz (FCS) im Frame überprüfen und die kurze Interframe-Space-Zeit (SIFS) abwarten. Wenn die SIFS-Zeit abgelaufen ist, sendet der WLAN-Router möglicherweise eine Bestätigung (ACK) an das Gerät zurück, das die ARP-Anfrage gesendet hat. Das ACK ist keine ARP-Antwort, sondern ein ACK für die drahtlose Frame-Übertragung. In Ausführungsformen, in denen mehr als eins an drahtlosen Routern vorhanden ist, kann ein Lightweight Access Point Protocol (LWAPP) verwendet werden, bei dem jeder drahtlose Router seine eigenen Header zu den Frames hinzufügt. In einigen Ausführungsformen kann auf dem Weg zwischen Gerät und WLAN-Router ein Schalter vorhanden sein. In einigen Ausführungsformen kann der Switch beim Empfang der ARP-Anfrage die Ziel-MAC-Adresse lesen und den Frame an alle Ports senden, mit Ausnahme des Ports, an dem er eingegangen ist. In einigen Ausführungsformen kann die ARP-Antwort als Unicast-Nachricht zurückgesendet werden, sodass der Switch im Pfad die ARP-Antwort direkt an den Port weiterleitet, der zum Gerät führt. An einem solchen Punkt verfügt der ARP-Prozess des Clients möglicherweise über eine Zuordnung zur Gateway-MAC-Adresse und kann den wartenden Frame mithilfe des oben beschriebenen Prozesses, eines Backoff-Timers, eines Konkurrenzfensters und schließlich der Übertragung des Frames nach der ARP-Antwort versenden .

Einige Ausführungsformen können virtuelle lokale Netzwerke (VLANs) verwenden. In solchen Ausführungsformen kann der Frame beim Empfang der ARP-Anfrage an alle Ports geflutet werden, die Mitglieder desselben VLAN sind. Ein VLAN kann mit Netzwerk-Switches zur Segmentierung von Hosts auf logischer Ebene verwendet werden. Durch die Verwendung von VLANs auf der kabelgebundenen Seite des WLAN-Routers kann das Subnetz genau wie im WLAN-Bereich logisch segmentiert werden. Das Ergebnis kann beispielsweise SSID=Logisches Subnetz=Logisches VLAN oder Logische Broadcast-Domäne sein. Nachdem die drahtlosen Frames von der drahtlosen Verbindung zum kabelgebundenen Netzwerk verschoben wurden, müssen sie sich ein einziges physisches Kabel teilen. In einigen Ausführungsformen kann das 802.1Q-Protokoll verwendet werden, um in jedem 802.3-Frame ein 4-Byte-Tag zu platzieren, um das VLAN anzuzeigen.

In einigen Ausführungsformen versucht ein Hacker möglicherweise, eine ARP-Antwort von einem Host mit einer MAC-Adresse zu übertragen, die nicht mit der MAC-Adresse des Hosts übereinstimmt, von dem die ARP-Anfrage gesendet wurde. In einigen Ausführungsformen können Geräte-zu-Gerät-Verbindungen mithilfe einer Blockkette implementiert werden, um Angriffe auf ein Netzwerk von Geräten zu verhindern. In einigen Ausführungsformen können die Geräte im Netzwerk in einer Kette miteinander verbunden sein und damit ein neues Gerät dem Netzwerk beitreten kann, muss es zunächst eine Verbindung herstellen. In einigen Ausführungsformen muss sich das neue Gerät in einem Hauptbuch registrieren und es muss eine gewisse Zeit vergehen, über die Vertrauen zwischen dem neuen Gerät und den Geräten des Netzwerks aufgebaut wird, bevor das neue Gerät bestimmte Aktionen ausführen oder bestimmte Daten empfangen kann.

Beispiele für Daten, die ein Frame oder Paket transportieren kann, umfassen Steuerdaten, Nutzdaten, digitalisierte Sprache, digitalisiertes Video, Sprachsteuerdaten, Videosteuerdaten und dergleichen.

In einigen Ausführungsformen sucht das Gerät möglicherweise nach einem Ad-hoc-Netzwerk in der Liste der verfügbaren Netzwerke, wenn keine der SSIDs, die aus dem aktiven Scan oder aus der Liste der bevorzugten Netzwerke gelernt wurden, zu einer erfolgreichen Verbindung führt. Eine Ad-hoc-Verbindung kann für die Kommunikation zwischen zwei Geräten verwendet werden, ohne dass ein WLAN-Router zwischen den beiden Geräten erforderlich ist. In einigen Fällen lassen sich Ad-hoc-Verbindungen möglicherweise nicht gut für mehrere Geräte skalieren, sind aber möglich. In einigen Ausführungsformen ist möglicherweise eine Kombination aus Ad-hoc- und kabelgebundenen Router-Verbindungen möglich. In einigen Ausführungsformen kann ein Gerät eine Verbindung zu einem vorhandenen Ad-hoc-Netzwerk herstellen. In einigen Ausführungsformen kann ein Gerät so konfiguriert sein, dass es eine Ad-hoc-Verbindung ankündigt. In manchen Fällen kann dies jedoch ein potenzielles Sicherheitsrisiko darstellen, beispielsweise bei Robotern. In einigen Ausführungsformen kann ein Gerät so konfiguriert sein, dass es keine Verbindung zu Ad-hoc-Netzwerken herstellt. In einigen Ausführungsformen kann ein erstes Gerät eine Funkarbeitsgruppe einrichten, einschließlich eines Namens und von Funkparametern, und ein zweites Gerät kann die Funkarbeitsgruppe verwenden, um eine Verbindung mit dem ersten Gerät herzustellen. Dies kann als Basic Service Set oder Independent Basic Service Set bezeichnet werden und einen Bereich definieren, in dem ein Gerät erreichbar sein kann. In einigen Ausführungsformen kann jedes Gerät über ein Funkgerät verfügen und im Halbduplex mit einer niedrigeren Datenrate kommunizieren, da Informationen möglicherweise nicht gleichzeitig gesendet werden. In einigen Ausführungsformen kann jedes Gerät über zwei Funkgeräte verfügen und im Vollduplexmodus kommunizieren.

In Ausführungsformen sind Authentifizierung und Sicherheit des Roboters wichtig und können basierend auf der Art des vom Roboter bereitgestellten Dienstes konfiguriert werden. In einigen Ausführungsformen kann der Roboter mit Benutzern oder Bedienern eine unzerbrechliche Bindung oder eine Bindung aufbauen, die nur mit der Zeit gelöst werden kann, um Eindringlinge daran zu hindern, die Kontrolle über den Roboter zu übernehmen. Beispielsweise kann das WPA-802.1X-Protokoll zur Authentifizierung eines Geräts vor dem Beitritt zu einem Netzwerk verwendet werden. Weitere Beispiele für Protokolle zur Authentifizierung können Lightweight Extensible Authentication Protocol (LEAP), Extensible Authentication Protocol Transport Layer Security (EAP-TLS), Protected Extensible Authentication Protocol (PEAP), Extensible Authentication Protocol Generic Token Card (EAP-GTC) und PEAP sein EAP Microsoft Challenge Handshake Authentication Protocol Version 2 (EAP MS-CHAP V2), EAP Flexible Authentication via Secure Tunneling (EAP-FAST) und Host-basiertes EAP. In einigen Ausführungsformen kann ein Pre-Shared Key oder statisches Wired Equivalent Privacy (WEP) zur Verschlüsselung verwendet werden. In anderen Ausführungsformen können fortgeschrittenere Methoden wie WPA/WPA2/CCKM verwendet werden. In einigen Ausführungsformen kann WPA/WPA2 eine Verschlüsselung mit einem rotierten Verschlüsselungsschlüssel und einem gemeinsamen Authentifizierungsschlüssel (d. h. einer Passphrase) ermöglichen. Verschlüsselungsschlüssel können in verschiedenen Protokollen unterschiedliche Größen haben. Für sicherere Ergebnisse kann jedoch eine größere Schlüsselgröße verwendet werden. Beispiele für Schlüsselgrößen sind ein 40-Bit-Schlüssel, ein 56-Bit-Schlüssel, ein 64-Bit-Schlüssel, ein 104-Bit-Schlüssel, ein 128-Bit-Schlüssel, ein 256-Bit-Schlüssel, ein 512-Bit-Schlüssel, ein 1024-Bit-Schlüssel und ein 2048-Bit-Schlüssel. In Ausführungsformen kann die Verschlüsselung auf jede drahtlose Kommunikation unter Verwendung verschiedener Verschlüsselungsstandards angewendet werden.

In einigen Ausführungsformen kann EAP-TLS verwendet werden, eine häufig verwendete EAP-Methode für drahtlose Netzwerke. Die EAP-TLS-Verschlüsselung ähnelt hinsichtlich der Kommunikationsmethode der SSL-Verschlüsselung, allerdings handelt es sich bei EAP-TLS um eine Generation von SSL. EAP-TLS baut einen verschlüsselten Tunnel auf und das Benutzerzertifikat wird innerhalb des Tunnels gesendet. Bei EAP-TLS ist ein Zertifikat erforderlich, das auf einem Authentifizierungsserver installiert wird. Der Supplicant sowie Client- und Server-Schlüsselpaare werden zunächst generiert und dann vom CA-Server signiert. In einigen Ausführungsformen kann der Prozess mit einer EAP-Startnachricht und der Anforderung einer Identität des Geräts durch den WLAN-Router beginnen. In einigen Ausführungsformen kann das Gerät über EAP über RADIUS an den Authentifizierungsserver antworten, der Authentifizierungsserver kann sein Zertifikat senden und der Client kann sein Zertifikat senden, wodurch seine Identität auf vertrauenswürdige Weise offengelegt wird. In einigen Ausführungsformen können dann ein Master-Sitzungsschlüssel oder symmetrische Sitzungsschlüssel erstellt werden. In einigen Ausführungsformen kann der Authentifizierungsserver den Master-Sitzungsschlüssel an den WLAN-Router senden, um ihn entweder für die WEP- oder WPA/WPA2-Verschlüsselung zwischen dem WLAN-Router und dem Gerät zu verwenden.

WPA wurde als Ersatz für WEP eingeführt und basiert auf dem IEEE 802.11i-Standard. Genauer gesagt unterstützt WPA den Advanced Encryption Standard (AES) und das Cipher Block Chaining Message Authentication Code Protocol (CMMP) sowie das Temporal Key Integrity Protocol (TKIP), das RC4-Stream-Verschlüsselung verwenden kann, um dynamisch einen neuen Schlüssel für jedes Paket zu generieren. (AES/CCMP) verwendet weiterhin IV und MIC, aber die IV erhöht sich nach jedem Chiffrierblock. In Ausführungsformen können verschiedene Variationen von WPA (z. B. WPA2 oder WPA3) verwendet werden. In einigen Ausführungsformen kann WPA die Verwendung von TKIP vorschreiben, wobei AES optional ist. In einigen Ausführungsformen kann WPA2 verwendet werden, wobei AES vorgeschrieben ist und TKIP nicht verwendet wird. In einigen Ausführungsformen kann WPA AES in seiner allgemeinen Form zulassen. In einigen Ausführungsformen erlaubt WPA2 möglicherweise nur eine AES/CCMP-Variante.

WPA kann einen von zwei Authentifizierungsmodi verwenden. Ein Modus umfasst einen Unternehmensmodus (oder andernfalls den 802.1X-Modus), in dem für die Authentifizierung und Schlüsselverteilung eine Authentifizierung gegenüber einem Server wie einem RADIUS-Server erforderlich ist und TKIP mit der Option AES verwendet wird. Der zweite Modus umfasst einen persönlichen Modus (z. B. in Privathaushalten beliebt), bei dem kein Authentifizierungsserver verwendet wird und jedes Netzwerkgerät Daten verschlüsselt, indem es seinen Verschlüsselungsschlüssel von einem vorab gemeinsam genutzten Schlüssel ableitet. In einigen Ausführungsformen können sich ein Netzwerkgerät und ein WLAN-Router zu Beginn der Verhandlungen auf Sicherheitsfunktionen einigen, woraufhin der WPA-802.1X-Prozess beginnen kann. In einigen Ausführungsformen können das Netzwerkgerät und der WLAN-Router während einer Sitzung einen Pairwise Master Key (PMK) verwenden. Danach kann es zu einem Vier-Wege-Handshake kommen. In einigen Ausführungsformen können das Netzwerkgerät und ein Authentifikator kommunizieren und ein paarweiser transienter Schlüssel (PTK) abgeleitet werden, der den PMK zwischen dem Netzwerkgerät und dem drahtlosen Router bestätigen und einen temporären Schlüssel (TK) erstellen kann, der für Nachrichten verwendet werden kann Verschlüsselung durchführen, die ausgehandelten Parameter authentifizieren und Schlüsselmaterial für die nächste Phase erstellen (bekannt als bidirektionaler Gruppenschlüssel-Handshake). Wenn der bidirektionale Gruppenschlüssel-Handshake stattfindet, können ein Netzwerkgerät und ein Authentifikator den Group Transient Key (GTK) aushandeln, der zum Entschlüsseln von Broadcast- und Multicast-Übertragungen verwendet werden kann. Ein erstes Netzwerkgerät kann mithilfe eines Zufallsgeneratoralgorithmus eine Zufalls- oder Pseudozufallszahl generieren und diese an ein zweites Netzwerkgerät senden. Das zweite Netzwerkgerät kann dann eine gemeinsame Passphrase zusammen mit der Zufallszahl verwenden, um einen Schlüssel abzuleiten, der zum Verschlüsseln von Daten verwendet werden kann, die an das erste Netzwerkgerät zurückgesendet werden. Das zweite Netzwerkgerät kann dann seine eigene Zufallszahl zusammen mit einem Message Integrity Code (MIC) an das erste Netzwerkgerät senden, der verwendet werden kann, um eine Manipulation der Daten zu verhindern. Das erste Netzwerkgerät generiert dann möglicherweise einen Schlüssel, der zum Verschlüsseln des Unicast-Verkehrs zum Client verwendet werden kann. Zur Validierung kann das erste Netzwerkgerät die Zufallszahl erneut senden, jedoch verschlüsselt mit dem abgeleiteten Schlüssel. Es kann eine abschließende Nachricht gesendet werden, die darauf hinweist, dass die TK auf beiden Seiten vorhanden ist. Der bidirektionale Handshake, der den Gruppenschlüssel austauscht, kann die Generierung eines Group Master Key (GMK) umfassen, normalerweise in Form einer Zufallszahl. Nachdem ein erstes Netzwerkgerät den GMK generiert hat, kann es eine Gruppenzufallszahl generieren. Dies kann verwendet werden, um einen Group Temporal Key (GTK) zu generieren. Der GTK kann einen Gruppenschlüssel und einen MIC bereitstellen. Der GTK kann sich ändern, wenn eine Zeitüberschreitung auftritt oder wenn eines der Netzwerkgeräte auf einer Seite das Netzwerk verlässt. In einigen Ausführungsformen kann WPA2 eine Schlüsselverwaltung umfassen, die das Zwischenspeichern von Schlüsseln ermöglicht, was zu schnelleren Verbindungen führt. In einigen Ausführungsformen kann WPA eine Public-Key-Infrastruktur umfassen, um eine höhere Sicherheit zu erreichen.

In einigen Ausführungsformen können Herstellerprotokolle wie EAP-FAST oder LEAP verwendet werden, wenn der WLAN-Router die Protokolle unterstützt. In einigen Protokollen wird möglicherweise nur ein serverseitiges Zertifikat verwendet, um einen Tunnel zu erstellen, in dem die eigentliche Authentifizierung stattfindet. Ein Beispiel für diese Methode ist das PEAP-Protokoll, das EAP MS-CHAP V2 oder EAP GTC verwendet, um den Benutzer innerhalb eines verschlüsselten Tunnels zu authentifizieren. In einigen Ausführungsformen kann die Authentifizierung eine zentrale Authentifizierung des Roboters ermöglichen und kann verwendet werden, um zu bestimmen, ob der Roboter zu einer Flotte gehört oder ob es für den Roboter sicher ist, einer Flotte beizutreten oder mit anderen Robotern zu interagieren. In einigen Ausführungsformen kann ein dezentrales Netzwerk verwendet werden. In einigen Ausführungsformen kann die Blockchain verwendet werden, um neue Roboter zu einer Roboterflotte hinzuzufügen, wobei neue Roboter bei ihrem Beitritt in einem Server aufgezeichnet werden können. Mithilfe der Blockchain kann verhindert werden, dass neue Roboter unerwartete oder unerwünschte Aktionen ausführen.

In einigen Ausführungsformen kann ein WLAN-Router kompromittiert sein. In einigen Ausführungsformen können das Flash-Dateisystem und der NVRAM infolge einer Kompromittierung des WLAN-Routers gelöscht werden. In solchen Fällen kann es zu erheblichen Ausfallzeiten kommen, da die Dateien vor der Wiederherstellung der normalen Funktionalität des WLAN-Routers wiederhergestellt werden. In einigen Ausführungsformen kann eine Cisco Resilient Configuration-Funktion verwendet werden, um die Wiederherstellungszeit zu verbessern, indem eine sichere Arbeitskopie des IOS-Images und der Startkonfigurationsdateien (d. h. des primären Boot-Sets) erstellt wird, die von einem Remote-Benutzer nicht gelöscht werden kann.

In einigen Ausführungsformen kann ein Simple Network Management Protocol (SNMP) verwendet werden, um jedes Gerät (z. B. Netzwerkserver, drahtlose Router, Switches usw.), einschließlich Roboter, innerhalb eines Netzwerks zu verwalten. SNMP kann zur Verwaltung von Robotergeräten verwendet werden. In einigen Ausführungsformen können SNMP-Nachrichten mit einem Hash verschlüsselt werden, um die Integrität des Paketsatzes sicherzustellen. In einigen Ausführungsformen kann Hashing auch verwendet werden, um die Quelle einer SNMP-Nachricht zu validieren. In einigen Ausführungsformen können Verschlüsselungen wie CBC-DES (DES-56) verwendet werden, um die Nachrichten für eine unbefugte Partei unlesbar zu machen.

In einigen Ausführungsformen kann der Roboter als Standortvermessungsgerät verwendet werden. In einigen Ausführungsformen kann der Roboter eine Umgebung abdecken (z. B. einen Gewerberaum wie einen Flughafen) und ein Sensor kann verwendet werden, um die Signalstärke in verschiedenen Bereichen der Umgebung zu überwachen. In einigen Ausführungsformen kann die Signalstärke in verschiedenen Bereichen mit einem Anlagenplaner oder IT-Manager der Umgebung geteilt werden. In einigen Ausführungsformen kann der Prozessor des Roboters mehrmals passiv auf Signale in jedem Bereich der Umgebung hören und die Ergebnisse für jeden Bereich aggregieren. In einigen Ausführungsformen können die aggregierten Ergebnisse mit dem Anlagenplaner oder dem IT-Manager der Umgebung geteilt werden. In einigen Ausführungsformen kann der Prozessor des Roboters aktiv Sonden übertragen, um den Aufbau der Umgebung zu verstehen, bevor er eine drahtlose Architektur entwirft. In einigen Ausführungsformen kann der Prozessor des Roboters die Abdeckung der Umgebung vorhersagen und vorschlagen, wo Zugangspunkte installiert werden könnten. Beispiele für Zugangspunkte können WLAN-Router, WLAN-Switches und WLAN-Repeater sein, die in einer Umgebung verwendet werden können. Alternativ können maschinell erlernte Methoden verwendet werden, um eine Karte zur Vorhersage der drahtlosen Abdeckung für eine bestimmte entworfene drahtlose Architektur zu validieren und zu erstellen. In einigen Ausführungsformen können frühere Daten von vorhandenen Einrichtungen und Sonden des Roboters verwendet werden, um tote Winkel zu reduzieren.

In einigen Ausführungsformen ist der Roboter möglicherweise nicht in der Lage, eine Verbindung zu einem Netzwerk herzustellen. In solchen Fällen kann der Roboter als WLAN-Router fungieren oder ein solcher sein. In einigen Ausführungsformen verfügt der Roboter über ähnliche Fähigkeiten wie oben für einen WLAN-Router beschrieben. In einigen Ausführungsformen kann der Roboter als drahtloser Repeater fungieren oder ein solcher sein, um die Abdeckung zu erweitern. In einigen Ausführungsformen führt der Roboter andere Aktionen aus, während er als drahtloser Router oder Repeater fungiert. In einigen Ausführungsformen kann der Roboter einem Benutzer folgen, um in Bereichen, in denen möglicherweise schwache Signale vorhanden sind, ein gutes Signal bereitzustellen, wenn er als drahtloser Repeater fungiert. In einigen Ausführungsformen kann jeder Roboter in einer Gruppe von Robotern, die in einem großen Gebiet arbeiten, ein drahtloser Repeater werden oder sein. Ein Roboter, der als WLAN-Router oder WLAN-Repeater fungiert, kann besonders in Bereichen nützlich sein, in denen ein Kabel für die Installation eines WLAN-Routers oder -Repeaters möglicherweise nicht leicht zugänglich ist oder in denen ein WLAN-Router oder -Repeater nur zu besonderen Anlässen benötigt wird. In einigen Ausführungsformen kann die Ladestation des Roboters oder eine andere Basisstation ein drahtloser Router sein, der in einigen Fällen eine Verbindung zu Ethernet herstellen kann.

In einigen Ausführungsformen kann der Roboter die Aufgaben eines WLAN-Routers oder von Switches und Routern übernehmen, die sich möglicherweise außerhalb des zugänglichen Netzwerks befinden (z. B. innerhalb eines Dienstanbieters), wenn er als WLAN-Router fungiert. In einigen Ausführungsformen kann eine dieser Verantwortlichkeiten das Einreihen von Verkehrswarteschlangen auf der Grundlage der Klassifizierungen und Markierungen von Paketen oder auf andere Weise die Reihenfolge verschiedener Verkehrstypen umfassen, die an LAN oder WAN gesendet werden sollen. Beispiele für Warteschlangen können Low Latency Queuing (LLQ) sein, das bei der Beseitigung variabler Verzögerungen, Jitter und Paketverlusten in einem Netzwerk wirksam sein kann, indem eine Warteschlange mit strenger Priorität für bevorzugten Datenverkehr erstellt wird. Andere Techniken, die verwendet werden können, umfassen First-In-First-Out (FIFO), First-In-Last-Out (FILO) usw. Einige Ausführungsformen können Link Fragmentation Interleaving (LFI) verwenden, wobei größere Datenpakete in kleinere Fragmente segmentiert werden können und einige äußerst kritische Zwischen neu fragmentierten Datenpaketen können dringende Pakete gesendet werden. Dadurch kann verhindert werden, dass große Pakete eine Verbindung über einen längeren Zeitraum belegen, was dazu führen kann, dass dringende Daten ablaufen. In einigen Fällen können Klassifizierungs-, Markierungs- und Durchsetzungsstrategien für die Warteschlangenbildung an mehreren Punkten im Netzwerk ausgeführt werden. In Ausführungsformen, in denen der Roboter Markierungen erzwingen kann oder das Netzwerk die Markierungen respektiert, kann es für den Roboter nützlich sein, die Markierungen zu setzen. In Situationen, in denen der Dienstanbieter die Markierungen jedoch möglicherweise nicht respektiert, kann es für den Dienstanbieter besser sein, die Markierungen festzulegen.

In einigen Ausführungsformen kann der Roboter über Workgroup Bridge (WGB)-Fähigkeiten verfügen. In einigen Ausführungsformen ist ein WGB ein isoliertes Netzwerk, das für den Zugriff auf eine Serverfarm oder das Internet Zugriff auf den Rest des Netzwerks erfordert, beispielsweise wenn ein Mobiltelefon als WLAN-Router verwendet wird. In einigen Ausführungsformen kann der Roboter über Mobilfunkzugriff verfügen, der so genutzt werden kann, dass der Roboter als drahtloser Router fungieren kann. In einigen Ausführungsformen kann der Roboter ein erster Knoten in einer Ad-hoc-Arbeitsgruppe werden, der auf den Beitritt anderer Roboter wartet. In einigen Ausführungsformen kann die Verbindung anderer Roboter oder Geräte verhindert werden oder Einstellungen und Präferenzen können konfiguriert werden, um zu verhindern, dass ein unerwünschter Roboter oder ein unerwünschtes Gerät die Kontrolle über den Roboter übernimmt.

In einigen Ausführungsformen kann der Roboter über Sprach- und Videofunktionen verfügen. Der Roboter kann beispielsweise ein Pod oder ein autonomes Auto mit Sprach- und Videofunktionen sein. Ein Benutzer kann möglicherweise (mündlich oder über eine mit dem autonomen Auto gekoppelte Anwendung) das autonome Auto anweisen, sich einzuschalten, schneller oder mit einer bestimmten Geschwindigkeit zu fahren, eine nächste oder bestimmte Ausfahrt zu nehmen, einzukaufen oder in ein bestimmtes Geschäft zu gehen oder abzubiegen Links fahren, zur nächsten Tankstelle gehen, dem roten Auto vorn folgen, das Kennzeichen des gelben Autos vorn laut vorlesen oder das Kennzeichen des Autos vorn in der Datenbank speichern. In einem anderen Beispiel kann ein Benutzer einen Pod mündlich anweisen, in zehn Minuten zum Einkaufen bereit zu sein. In einigen Ausführungsformen kann ein Benutzer eine Anweisung direkt an den Roboter oder an einen Heimassistenten oder eine mit dem Pod gekoppelte Anwendung geben, die die Anweisung dann an den Roboter weiterleiten kann. In einem anderen Beispiel kann ein Polizist, der in einem Polizeiauto sitzt, das Auto mündlich anweisen, das Kennzeichen eines bestimmten Automodells, das vor dem Polizeiauto positioniert ist, zur Überprüfung der Historie zu senden. In einem Beispiel kann ein Polizist einer Flotte autonomer Polizeiautos aus der Ferne verbal befehlen, ein bestimmtes Automodell mit einem bestimmten Kennzeichen oder einem Teil eines Kennzeichens (z. B. ein Kennzeichen einschließlich der Nummern) zu finden und ihm zu folgen3Und5). Die Flotte der Polizeifahrzeuge kann nach umliegenden Autos suchen, um die Liste der zu verfolgenden Autos einzugrenzen. In manchen Fällen kann die Suche nach dem jeweiligen Fahrzeug auch von anderen Polizeifahrzeugen außerhalb der Flotte oder einem Remote-Gerät durchgeführt werden. In manchen Fällen kann die Suche nach dem bestimmten Auto durch Überwachungskameras in der ganzen Stadt durchgeführt werden, die verdächtige Autos einschließlich des jeweiligen Kennzeichens oder eines Teils des Kennzeichens markieren können. Einige Ausführungsformen können das Polizeiauto bestimmen, das ein verdächtiges Auto am schnellsten erreichen kann, basierend auf dem nächsten Polizeiauto in der Flotte relativ zum Standort der Kamera, die das verdächtige Auto markiert hat, und dem Standort des verdächtigen Autos. In einigen Fällen kann es vorkommen, dass dem verdächtigen Auto ein Polizeiauto oder ein anderes Gerät innerhalb der Flotte folgt. Beispielsweise kann ein verdächtiges Auto an einer ersten mechanisch drehbaren Kamera vorbeifahren. Die erste Kamera kann den Weg des verdächtigen Autos vorhersagen und einer nächsten Kamera befehlen, ihr Sichtfeld anzupassen, um eine erwartete Position des verdächtigen Autos zu erfassen, sodass zwischen den beiden Kameras kein toter Winkel entsteht. In einigen Ausführungsformen können die Kameras an einer Wand, einem autonomen Auto mit Rädern, einer Drohne, einem Hubschrauber, einem Kampfflugzeug, einem Passagierflugzeug usw. angebracht sein.

In einigen Ausführungsformen können Anweisungen an den Roboter verbal bereitgestellt werden, durch Benutzereingaben über eine Benutzeroberfläche des Roboters oder eine mit dem Roboter gekoppelte Anwendung, eine von einem Sensor des Roboters erfasste Geste, eine physische Interaktion mit dem Roboter oder einem Kommunikationsgerät gepaart mit dem Roboter (z. B. doppeltes Antippen des Roboters) usw. In einigen Ausführungsformen kann der Benutzer Gesten über eine mit dem Roboter gekoppelte Anwendung oder eine Benutzeroberfläche des Roboters einrichten. In einigen Ausführungsformen kann der Roboter einen Heimassistenten, eine Anwendung oder Smartphone-Funktionen in Kombination oder einzeln umfassen.

In einigen Ausführungsformen kann der Roboter Mobilitäts-, Bildschirm-, Sprach- und Videofunktionen umfassen. In einigen Ausführungsformen kann der Roboter in der Lage sein, Notdienste (z. B. 911) anzurufen oder mit ihnen zu kommunizieren, wenn er eine Anweisung vom Benutzer erhält (unter Verwendung der oben beschriebenen Methoden) oder wenn er mithilfe von Sensoren wie Bild, Akustik oder Temperatur einen Notfall erkennt Sensoren. In einigen Ausführungsformen kann der Roboter eine Liste von Kontakten enthalten, ähnlich einer Liste von Kontakten, die in einem Mobiltelefon oder einer Videokonferenzanwendung gespeichert sind. In einigen Ausführungsformen kann jeder Kontakt einen Status haben (z. B. verfügbar, beschäftigt, abwesend, inaktiv, aktiv, online, offline, letzte Aktivität vor einigen Minuten, ein benutzerdefinierter Status usw.). In einigen Ausführungsformen kann der Roboter über eine Mobilfunkverbindung verfügen, die er zum Kontaktieren eines Kontakts, zum Zugreifen auf das Internet usw. verwenden kann. In einigen Ausführungsformen kann der Roboter mit einem Smartgerät oder einem virtuellen Assistenten gekoppelt werden, um einen Kontakt zu kontaktieren und auf das Internet zuzugreifen usw weitere Funktionen des Smartgeräts oder virtuellen Assistenten. In einigen Ausführungsformen können jeder Kontakt und sein jeweiliger Status über eine grafische Benutzeroberfläche des Roboters oder einer mit dem Roboter gekoppelten Anwendung angezeigt werden. In einigen Ausführungsformen können Kontakte per Telefonanruf, Videoanruf, Chat, Gruppenchat oder auf andere Weise kontaktiert werden. Ein Videoanruf oder Gruppenchat kann die Kommunikation zwischen einer Gruppe von Teilnehmern umfassen. In einigen Ausführungsformen kann ein Kommunikationsverlauf so konfiguriert sein, dass er zugänglich ist, nachdem Teilnehmer eine Kommunikationssitzung verlassen oder gelöscht haben. In einigen Ausführungsformen können Chat-, Sprach- oder Videonachrichten an Kontakte gesendet werden, die gerade offline sind. In einigen Ausführungsformen werden Sprachanrufprotokolle wie G.711 a-law, mu-law, G.722 Wideband, G.729A, G.729B, iLBC (Internet Low Bandwidth Codec) und iSAC (Internet Speech Audio Codec) verwendet. , könnte genutzt werden.

In einigen Ausführungsformen kann der Roboter (oder ein KI-System) Auswahlen einleiten, wenn er während eines Anrufs auf ein interaktives Sprachantwortsystem (IVR) trifft. Beispielsweise kann ein Roboter eine Auswahl von Englisch initiieren, wenn er auf ein IVR-System stößt, das die Auswahl einer bestimmten Nummer für jede unterschiedliche Sprache auffordert, bevor er den Benutzer an die Leitung weiterleitet, vorausgesetzt, der Roboter weiß, dass der Benutzer Englisch bevorzugt. In anderen Fällen führt der Roboter möglicherweise andere Aktionen aus, z. B. die Eingabe einer Kreditkartennummer, die Authentifizierung des Benutzers und das Stellen einer vom Benutzer gespeicherten Frage sowie das Aufzeichnen der Antwort. In einem Beispiel kann der Benutzer den Roboter mündlich anweisen, seine Bank anzurufen und sie zu bitten, ihre Adresse zu aktualisieren. Der Roboter kann die Anweisung über das IVR-System der Bank ausführen, ohne dass der Benutzer eingreifen muss. In einem anderen Beispiel kann der Benutzer den Roboter anweisen, seine Bank anzurufen und sie mit einem Vertreter zu verbinden. Der Roboter kann die Bank anrufen, die Authentifizierung des Benutzers und die IVR-Auswahlphase abschließen und den Benutzer dann mit dem Vertreter durchstellen, sodass für den Benutzer nur minimaler Aufwand entsteht.

In einigen Ausführungsformen kann der Roboter ein mobiler virtueller Assistent sein oder sich in andere virtuelle Sprachassistenten (z. B. Siri, Google Home oder Amazon Alexa) integrieren. Alternativ kann der Roboter einen externen virtuellen Sprachassistenten tragen. In einigen Ausführungsformen kann der Roboter ein visueller Assistent sein und auf Gesten reagieren. In einigen Ausführungsformen kann der Roboter auf eine Reihe vordefinierter Gesten reagieren. In einigen Ausführungsformen können Gesten lokal verarbeitet oder zur Verarbeitung an die Cloud gesendet werden.

In einigen Ausführungsformen kann der Roboter eine Sprachbefehlszentrale umfassen. In einigen Ausführungsformen kann ein von einem Mikrofon des Roboters empfangener Sprachbefehl lokal in einen Textbefehl übersetzt oder zur Analyse und Übersetzung in Text an die Cloud gesendet werden. In einigen Ausführungsformen kann ein Befehl aus einem Satz zuvor bekannter Befehle (oder zuvor verwendeter Befehle) lokal verarbeitet werden. In einigen Ausführungsformen kann der Sprachbefehl an die Cloud gesendet werden, wenn er lokal nicht verstanden wird. In einigen Ausführungsformen kann der Roboter Sprachbefehle empfangen, die für den Roboter oder für andere Geräte in einer Umgebung bestimmt sind. In einigen Ausführungsformen kann die Sprach-zu-Text-Funktionalität vom Backend in der Cloud oder lokal auf dem Roboter ausgeführt und/oder validiert werden. In einigen Ausführungsformen kann die Backend-Komponente für die Interpretation der Absicht aus einer Spracheingabe und/oder die Operationalisierung der Absicht in einer Aufgabe verantwortlich sein. In einigen Ausführungsformen kann eine begrenzte Anzahl bekannter Befehle lokal gespeichert und interpretiert werden. In einigen Ausführungsformen kann eine begrenzte Anzahl zuvor verwendeter Befehle basierend auf den vorherigen Interpretationen, die in der Cloud ausgeführt wurden, lokal gespeichert und interpretiert werden. Bei digitalisierten Audiosignalen verwenden digitale Signale Zahlen zur Darstellung der Stimmpegel und nicht eine Kombination elektrischer Signale. Der Prozess der Digitalisierung einer Stimme umfasst beispielsweise die Umwandlung analoger Sprachsignale in eine Reihe von Zahlen, die verwendet werden können, um die Stimme am Empfängerende wieder zusammenzusetzen. In einigen Ausführungsformen können der Roboter und andere Geräte (mobil oder statisch) einen Nummerierungsplan verwenden, beispielsweise den North American Numbering Plan (NANP), der den E.164-Standard verwendet, um Nummern in Ländervorwahl, Ortsvorwahl und Zentrale aufzuschlüsseln oder Austauschcode und Stationscode. Andere Methoden können verwendet werden. Beispielsweise kann der NANP mit dem International Numbering Plan kombiniert werden, an den sich alle Länder für die weltweite Kommunikation halten.

In einigen Ausführungsformen kann der Roboter Sprach- und/oder Videodaten übertragen. In Ausführungsformen kann das durchschnittliche menschliche Ohr Frequenzen von 20–20.000 Hz hören, während die menschliche Sprache Frequenzen von 200–9.000 Hz verwenden kann. Einige Ausführungsformen können den G.711-Standard verwenden, einen Standard der International Telecommunications Union (ITU), der Pulscodemodulation (PCM) verwendet, um Sprachsignale mit einer Frequenz von 8.000 Abtastungen pro Sekunde abzutasten. Zwei gängige Arten binärer Konvertierungstechniken, die im G.711-Standard verwendet werden, sind u-law (verwendet in den Vereinigten Staaten, Kanada und Japan) und a-law (verwendet an anderen Standorten). Einige Ausführungsformen können den G.729-Standard verwenden, einen ITU-Standard, der Sprachsignale mit 8.000 Abtastwerten pro Sekunde abtastet, wobei die Bitrate auf 8 Bits pro Abtastwert festgelegt ist und auf dem Nyquist-Ratensatz basiert. In Ausführungsformen verwendet der G.729-Standard eine Komprimierung, um einen höheren Durchsatz zu erzielen, wobei das komprimierte Sprachsignal nur 8 Kbit/s pro Anruf benötigt, im Gegensatz zu 64 Kbit/s pro Anruf im G.711-Standard. Der G.729-Codec-Standard ermöglicht acht Sprachanrufe in derselben Bandbreite, die für nur einen Sprachanruf im G.711-Codec-Standard erforderlich ist. In Ausführungsformen verwendet der G.729-Standard eine konjugativ strukturierte algebraische Code-exzidierte Zeilenvorhersage (CS-ACELP) und wechselt Abtastmethoden und algebraische Ausdrücke als Codebuch, um die tatsächliche numerische Darstellung vorherzusagen. Daher werden die gesendeten kleineren algebraischen Ausdrücke am entfernten Standort dekodiert und der Ton wird so synthetisiert, dass er den ursprünglichen Tontönen ähnelt. In einigen Fällen kann es zu einer Qualitätsverschlechterung im Zusammenhang mit der Vorhersage und Synthese von Audiowellenformen kommen. Einige Ausführungsformen verwenden möglicherweise den G.729a-Standard, einen anderen ITU-Standard, der eine weniger komplizierte Variante des G.729-Standards darstellt, da er einen anderen Algorithmustyp zum Kodieren der Stimme verwendet. Die Codecs G.729 und G.729a sind besonders für die menschliche Sprache optimiert. In Ausführungsformen können Daten auf einen 8-Kbit/s-Strom komprimiert werden und die komprimierten Codecs können für die Übertragung von Sprache über WAN-Verbindungen mit niedriger Geschwindigkeit verwendet werden. Da Codecs für Sprache optimiert sind, bieten sie bei Musikstreams oft keine ausreichende Qualität. Zum Abspielen von Musik oder zum Senden von Musik- oder Videoinformationen kann ein Codec mit besserer Qualität verwendet werden. In einigen Fällen können mehrere Codecs zum Senden unterschiedlicher Datentypen verwendet werden. Einige Ausführungsformen können die von ITU erstellte H.323-Protokollsuite für Multimedia-Kommunikation über netzwerkbasierte Umgebungen verwenden. Einige Ausführungsformen können den H.450.2-Standard zum Weiterleiten von Anrufen und den H.450.3-Standard zum Weiterleiten von Anrufen verwenden. Einige Ausführungsformen können Internet Low Bitrate Codec (ILBC) verwenden, der entweder 20-ms- oder 30-ms-Sprachproben verwendet, die 15,2 Kbit/s bzw. 13,3 Kbit/s verbrauchen. Der ILBC kann Paketverluste mildern, so dass eine Kommunikation fortgesetzt werden kann, ohne dass der Benutzer den Verlust bemerkt. Einige Ausführungsformen können Internet-Sprachaudiocodec verwenden, der eine Abtastfrequenz von 16 kHz oder 32 kHz, eine adaptive und variable Bitrate von 10–32 Kbit/s oder 10–52 Kbit/s, eine adaptive Paketgröße von 30–60 ms und eine algorithmische Verzögerung verwendet der Framegröße plus 3 ms. Es können mehrere andere Codecs (einschließlich Sprach-, Musik- und Video-Codecs) verwendet werden, z. B. lineare Pulscodemodulation, Pulsdichtemodulation, Pulsamplitudenmodulation, Free Lossless Audio Codec, Apple Lossless Audio Codec, Monkey's Audio, OptimFROG, WavPak , True Audio, Windows Media Audio Lossless, Adaptive Differential Pulse-Code Modulation, Adaptive Transform Acoustic Coding, MPEG-4 Audio, Linear Predictive Coding, Xvid, FFmpeg MPEG-4 und DivX Pro Codec. In einigen Ausführungsformen kann ein Mean Opinion Score (MOS) verwendet werden, um die Qualität von Sprachströmen für jeden bestimmten Codec zu messen und die Sprachqualität auf einer Skala von 1 (schlechteste Qualität) bis 5 (ausgezeichnete Qualität) einzustufen.

In einigen Ausführungsformen kann ein Paket, das vom Standard-Gateway über Schicht 3 wandert, abhängig vom zugrunde liegenden Frame unterschiedlich behandelt werden. Beispielsweise müssen Sprachdaten möglicherweise dringender behandelt werden als eine Dateiübertragung. Ebenso müssen Sprachsteuerungsdaten wie Frames zum Aufbau und zur Aufrechterhaltung eines Sprachanrufs möglicherweise dringend behandelt werden. In einigen Ausführungsformen kann eine Stimme digitalisiert und in IP-Pakete (Internet Protocol) eingekapselt werden, um in einem Datennetzwerk übertragen zu werden. In einigen Ausführungsformen können zur Digitalisierung einer Stimme analoge Sprachfrequenzen abgetastet, in Binärdateien umgewandelt, komprimiert und über ein IP-Netzwerk gesendet werden. Dabei kann im Vergleich zum Senden der analogen Wellenform über das Kabel Bandbreite gespart werden. In einigen Ausführungsformen können die Entfernungen der Sprachreise skaliert werden, da Repeater unterwegs die gedämpften Signale wiederherstellen können, im Gegensatz zu analogen Signalen, die rein elektrisch auf dem Kabel übertragen werden und möglicherweise beeinträchtigt werden. Bei der analogen Sprachübertragung kann sich das Rauschen schnell aufbauen und vom Repeater zusammen mit den eigentlichen Sprachsignalen erneut übertragen werden. Nachdem das Signal mehrere Male wiederholt wurde, kann sich eine beträchtliche Menge an elektrischem Rauschen ansammeln und sich mit dem ursprünglich übertragenen Sprachsignal vermischen. In einigen Ausführungsformen können nach der Digitalisierung mehrere Sprachströme in kompakterer Form gesendet werden.

In einigen Ausführungsformen können drei Schritte verwendet werden, um ein analoges Signal (z. B. einen Sprachbefehl) in ein komprimiertes digitales Signal umzuwandeln. In einigen Ausführungsformen kann ein erster Schritt das Abtasten des analogen Signals umfassen. In einigen Ausführungsformen können die Stichprobengröße und die Stichprobenhäufigkeit von der gewünschten Qualität abhängen, wobei eine größere Stichprobengröße und eine höhere Stichprobenhäufigkeit für eine höhere Qualität verwendet werden können. Beispielsweise kann für Musik eine höhere Klangqualität erforderlich sein. In einigen Ausführungsformen kann ein Sample in 8 Bit, 16 Bit, 32 Bit, 64 Bit usw. passen. In einigen Fällen können herkömmliche analoge Telefone Schallwellen von 0 bis 4000 Hz unterscheiden. Um dies in diesem Frequenzbereich nachzuahmen, kann die menschliche Stimme mithilfe des Harry-Nyquist-Konzepts 8000 Mal pro Sekunde abgetastet werden, wobei die maximale Datenrate (in Bits/Sek.) mithilfe von 2×B×log bestimmt werden kann2V, wobei B die Bandbreite und V die Anzahl der Spannungspegel ist. Angesichts der Tatsache, dass 4000 Hz ungefähr die höchste theoretische Frequenz der menschlichen Stimme sind und die durchschnittliche menschliche Stimme ungefähr im Bereich von 200–2800 Hz liegen kann, kann eine 8000-malige Abtastung einer menschlichen Stimme pro Sekunde ein analoges Stimmäquivalent ziemlich gut rekonstruieren Dabei werden Schallwellen im Bereich von 0–299 Hz und 3301–4000 Hz für die Out-of-Band-Signalisierung verwendet. In einigen Ausführungsformen kann Pulsamplitudenmodulation (PAM) an einer Wellenform durchgeführt werden, um einen Abschnitt der Wellenlänge mit einer konstanten Anzahl von 8000 Intervallen pro Sekunde zu erhalten. In einigen Ausführungsformen kann ein zweiter Schritt der Umwandlung eines analogen Signals in ein komprimiertes digitales Signal eine Digitalisierung umfassen. In einigen Ausführungsformen kann Pulse Code Modulation (PCM) verwendet werden, um eine Stimme zu digitalisieren, indem Quantisierung verwendet wird, um die analoge Wellenform in digitale Daten für den Transport zu kodieren und die digitalen Daten zu dekodieren, um sie wiederzugeben, indem Spannungsimpulse an einen Lautsprecher angelegt werden, der das ursprüngliche Analogsignal nachahmt Stimme. In einigen Ausführungsformen können die digitalen Daten nach Abschluss der Quantisierung in ein Binärformat umgewandelt werden, das als Reihe von Nullen und Einsen (d. h. Bits) über eine Leitung gesendet werden kann, wobei unterschiedliche Reihen unterschiedliche numerische Werte darstellen. Beispielsweise kann eine Abtastrate von 8.000 Abtastwerten pro Sekunde in eine 8-Bit-Binärzahl umgewandelt und über eine Bandbreite von 64 Kbit/s gesendet werden (d. h. 8.000 Abtastwerte × 8 Bit pro Abtastwert = 64.000 Bit). In einigen Ausführungsformen kann ein Codec-Algorithmus zum Codieren eines analogen Signals in digitale Daten und zum Decodieren digitaler Daten zum Reproduzieren des analogen Signals verwendet werden. In Ausführungsformen können die Qualität der codierten Wellenformen und die Größe des codierten Datenstroms je nach verwendetem Codec unterschiedlich sein. Beispielsweise kann für eine Stimme eine kleinere Größe eines codierten Datenstroms vorzuziehen sein. Beispiele für Codecs, die verwendet werden können, sind u-law (verwendet in den Vereinigten Staaten, Kanada und Japan) und a-law. In einigen Ausführungsformen kann Transkodierung verwendet werden, um einen Codec in einen anderen Codec zu übersetzen. In einigen Fällen sind Codecs möglicherweise nicht kompatibel. In einigen Ausführungsformen kann es sein, dass bei der Digitalisierung eines analogen Signals ein Teil der Sprachauflösung auf natürliche Weise verloren geht. Beispielsweise können zur Einsparung der Datengröße weniger Bits verwendet werden, dies kann jedoch zu einer geringeren Qualität führen. In einigen Ausführungsformen kann ein dritter Schritt der Umwandlung eines analogen Signals in ein komprimiertes digitales Signal eine Komprimierung umfassen. In einigen Ausführungsformen kann Komprimierung verwendet werden, um eine gewisse Redundanz in den digitalen Daten zu beseitigen und Bandbreite und Rechenkosten zu sparen. Während die meisten Komprimierungsalgorithmen verlustbehaftet sind, können einige Komprimierungsalgorithmen verlustfrei sein. Beispielsweise können bei kleineren Datenströmen mehr einzelne Datenströme über dieselbe Bandbreite gesendet werden. In einigen Ausführungsformen kann das komprimierte digitale Signal in Internet Protocol (IP)-Pakete eingekapselt werden, die in einem IP-Netzwerk gesendet werden können.

In einigen Ausführungsformen können mehrere Faktoren die Übertragung von Sprachpaketen beeinflussen. Beispiele für solche Faktoren können Paketanzahl, Paketverzögerung, Paketverlust und Jitter (Verzögerungsschwankungen) sein. In einigen Ausführungsformen kann ein Echo in Fällen erzeugt werden, in denen digitale Sprachströme und Pakete, die von verschiedenen Netzwerkpfaden übertragen werden, in der falschen Reihenfolge ankommen. In einigen Ausführungsformen kann Echo die Wiederholung eines Tons sein, der den Zuhörer eine Zeitspanne nach dem Hören des Originaltons erreicht.

In einigen Ausführungsformen kann Session Initiation Protocol (SIP) verwendet werden, ein IETF RFC 3261-Standard-Signalisierungsprotokoll, das für die Verwaltung von Multimedia-Sitzungen über das Internet entwickelt wurde. Die SIP-Architektur ist theoretisch ein Peer-to-Peer-Modell. In einigen Ausführungsformen kann das Real-Time Transport Protocol (RTP) verwendet werden, ein IETF RFC 1889- und 3050-Standard für die Bereitstellung von Unicast- und Multicast-Sprach-/Videoströmen über ein IP-Netzwerk unter Verwendung von UDP für den Transport. UDP ist im Gegensatz zu TCP möglicherweise ein unzuverlässiger Dienst und eignet sich möglicherweise am besten für Sprachpakete, da es keinen Neuübertragungs- oder Neuordnungsmechanismus hat und es keinen Grund gibt, ein fehlendes Sprachsignal nicht in der richtigen Reihenfolge erneut zu senden. Außerdem bietet UDP keine Flusskontrolle oder Fehlerkorrektur. Bei RTP können allein die Header-Informationen 40 Bytes umfassen, da der RTP-Header 12 Bytes, der IP-Header 20 Bytes und der UDP-Header 8 Bytes umfassen kann. In einigen Ausführungsformen kann Compressed RTP (cRTP) verwendet werden, das zwischen 2 und 5 Bytes verwendet. In einigen Ausführungsformen kann das Real-Time Transport Control Protocol (RTCP) mit RTP verwendet werden, um eine Out-of-Band-Überwachung für Streams bereitzustellen, die durch RTP gekapselt sind. Wenn RTP beispielsweise auf dem UDP-Port 22864 läuft, laufen die entsprechenden RTCP-Pakete auf dem nächsten UDP-Port 22865. In einigen Ausführungsformen kann RTCP Informationen über die Qualität der RTP-Übertragungen liefern. Wenn der Empfänger beispielsweise eine Überlastung am entfernten Ende des Datenstroms erkennt, kann er den Sender darüber informieren, einen Codec mit geringerer Qualität zu verwenden.

In einigen Ausführungsformen kann eine Sprachaktivitätserkennung (VAD) verwendet werden, um Bandbreite zu sparen, wenn Sprachbefehle gegeben werden. In einigen Ausführungsformen kann VAD eine Sprachkonversation überwachen und die Übertragung von RTP-Paketen über die Leitung stoppen, wenn Stille im RTP-Stream erkannt wird (z. B. 35–40 % der Länge der Sprachkonversation). In einigen Ausführungsformen kann VAD mit dem anderen Ende der Verbindung kommunizieren und ein zuvor aufgezeichnetes Stille-Paket abspielen, anstatt Stille-Daten zu übertragen.

Ähnlich wie bei Sprachdaten kann ein Bild über das Netzwerk gesendet werden. In einigen Fällen sind Bilder möglicherweise nicht so vertraulich wie Sprachdaten, da der Verlust einiger Bilder auf dem Weg durch das Netzwerk möglicherweise kein drastisches Problem darstellt. Allerdings können Bilder, die zur Übertragung von Umgebungskarten verwendet werden, oder spezielle Bilder, die die Umgebungskarte bilden, empfindlicher sein. In einigen Ausführungsformen sind Bilder möglicherweise nicht die einzige Datenform, die eine Karte trägt. Beispielsweise kann eine Belegungsgitterkarte als Bild dargestellt werden oder eine andere Datenform zur Darstellung der Belegungsgitterkarte verwenden, wobei die Gitterkarte eine kartesische Unterteilung der Bodenebene des Roboters sein kann. In einigen Ausführungsformen kann jedes Pixel eines Bildes einer Zelle der Gitterkarte entsprechen. In einigen Ausführungsformen kann jedes Pixel des Bildes eine bestimmte Quadratgröße auf der Bodenebene darstellen, wobei die bestimmte Quadratgröße von der Auflösung abhängt. In einigen Ausführungsformen kann der Farbtiefenwert jedes Pixels einer Höhe der Bodenebene relativ zu einer Nullpunktebene entsprechen. In einigen Ausführungsformen kann die Ableitung von Pixelwerten zweier benachbarter Pixel des Bildes (z. B. die Änderung des Pixelwerts zwischen zwei benachbarten Pixeln) der Übertragbarkeit von einer Zelle zur benachbarten Zelle entsprechen. Beispielsweise kann ein harter Boden eines Kellers eines Gebäudes einen Höhenwert von Null haben, ein Teppich des Kellers kann einen Höhenwert von eins haben, eine Kellerdecke kann einen Höhenwert von 18 haben und Ein Erdgeschoss des Gebäudes kann einen Höhenwert von 20 haben. Der Übergang vom Hartboden mit der Höhe Null zum Teppich mit der Höhe Eins kann als begehbarer Weg gelten. Wenn man davon ausgeht, dass die Deckenhöhe 18 und die Höhe des Erdgeschosses 20 beträgt, kann die Dicke der Kellerdecke bekannt sein. Darüber hinaus können diese Höhen die Darstellung mehrerer Stockwerke desselben Gebäudes ermöglichen, wobei mehrere Stockwerke anhand ihrer Höhe voneinander unterschieden werden können (z. B. Stockwerke eines Hochhauses). In Ausführungsformen, die eine Karte unter Verwendung eines Bildes beschreiben, können mehr als nur Graustufen zur Darstellung der Höhen der Bodenebene in verschiedenen Bereichen verwendet werden. Ebenso kann jedes beliebige RGB verwendet werden, um andere Dimensionen jedes Punktes der Bodenebene darzustellen. Eine andere Dimension kann beispielsweise ein sauberer oder schmutziger Status sein und somit die Wahrscheinlichkeit angeben, dass ein Bereich gereinigt werden muss. In anderen Beispielen kann eine andere Dimension frühere Verwicklungen oder frühere Begegnungen mit einer Flüssigkeit oder frühere Hundeunfälle sein.

Angesichts der vielen zur Verarbeitung eines Bildes verfügbaren Tools können viele Algorithmen und Auswahlmöglichkeiten für die Verarbeitung der Karte vorhanden sein. In einigen Ausführungsformen können Karten in grober bis feiner Auflösung verarbeitet werden, um eine grobe Hypothese zu erhalten. In einigen Ausführungsformen kann die grobe Hypothese durch Erhöhen der Auflösung verfeinert und/oder auf ihre Richtigkeit getestet werden. In einigen Ausführungsformen kann eine feine bis grobe Auflösung eine hochauflösende Wahrnehmung und Lokalisierung aufrechterhalten, die als Grundwahrheit verwendet werden kann. In einigen Ausführungsformen können Bilddaten mit unterschiedlichen Auflösungen abgetastet werden, um das reale Bild darzustellen.

Für die Übertragung von Bildern bestehen ähnliche Bedenken wie die zuvor diskutierten für die Übertragung von Sprachpaketen. Kartenkontrollpakete verfügen möglicherweise über deutlich weniger entwickelte Protokolle. In einigen Ausführungsformen können Protokolle verwendet werden, um die Paketanzahl, Paketverzögerung, Paketverlust und Jitter (Verzögerungsschwankungen) zu steuern. In einigen Ausführungsformen kann es zu einer Verzögerung in der Zeit kommen, die ein Paket benötigt, um von einer Quelle am endgültigen Ziel anzukommen. Dies kann durch mangelnde Bandbreite oder die Länge der physischen Entfernung zwischen Standorten verursacht werden. In manchen Fällen kann es zu unterschiedlichen Verzögerungen kommen, wenn mehrere Sprach- und Datenströme um eine begrenzte Bandbreite konkurrieren. In einigen Ausführungsformen kann es zu einer festen Verzögerung in der Zeit kommen, die das Paket benötigt, um am endgültigen Ziel anzukommen. Beispielsweise kann es eine gewisse Zeit dauern, bis ein Paket eine bestimmte geografische Entfernung zurücklegt. In einigen Ausführungsformen kann QoS verwendet werden, um vom Dienstanbieter eine bevorzugte Behandlung für sensiblen Datenverkehr anzufordern. In einigen Ausführungsformen kann dies andere Arten von Verzögerungen reduzieren. Eine dieser Verzögerungen kann eine variable Verzögerung umfassen, bei der es sich um eine Verzögerung handelt, die von verschiedenen Faktoren beeinflusst werden kann. In einigen Ausführungsformen kann sich die Anforderung darauf beziehen, wie Daten während einer Reise in verschiedenen Geräten in die Warteschlange gestellt werden, da sie sich auf die Wartezeit in Schnittstellenwarteschlangen verschiedener Geräte auswirkt. In einigen Ausführungsformen können sich ändernde Warteschlangenstrategien dazu beitragen, variable Verzögerungen zu verringern, beispielsweise Jitter oder andere Variationen der Verzögerung, beispielsweise Pakete mit unterschiedlichen Verzögerungsbeträgen, die durch die Cloud oder das Netzwerk reisen. Beispielsweise kann es 120 ms dauern, bis ein erstes Paket einer Konversation ein Ziel erreicht, während es für das zweite Paket 110 ms dauern kann, bis es das Ziel erreicht.

In einigen Ausführungsformen können Pakete aufgrund einer überlasteten oder unzuverlässigen Netzwerkverbindung verloren gehen. In einigen Ausführungsformen können besondere Netzwerkanforderungen für Sprach- und Videodaten angewendet werden. Zusätzlich zu den Bandbreitenanforderungen erfordert der Sprach- und Videoverkehr möglicherweise eine End-to-End-Einwegverzögerung von 150 ms oder weniger, einen Jitter von 30 ms oder weniger und einen Paketverlust von 1 % oder weniger. In einigen Ausführungsformen hängen die Bandbreitenanforderungen von der Art des Datenverkehrs, dem Codec für Sprache und Video usw. ab. Beispielsweise verbraucht Videodatenverkehr viel mehr Bandbreite als Sprachdatenverkehr. Oder in einem anderen Beispiel: Die für SLAM- oder Kartendaten erforderliche Bandbreite, insbesondere wenn sich der Roboter bewegt, ist größer als ein Video benötigt, da kontinuierliche Aktualisierungen über das Netzwerk erfolgen müssen. In einem anderen Beispiel können bei einem Videoanruf ohne viel Bewegung verlorene Pakete mithilfe intelligenter Algorithmen aufgefüllt werden, während dies bei einem Strom von SLAM-Paketen nicht der Fall sein kann. In einigen Ausführungsformen können Karten komprimiert werden, indem ähnliche Techniken eingesetzt werden, wie sie für die Bildkomprimierung verwendet werden.

In einigen Ausführungsformen kann die Klassifizierung und Markierung eines Pakets verwendet werden, sodass Netzwerkgeräte das Paket beim Durchqueren des Netzwerks leicht identifizieren können. In einigen Ausführungsformen kann ein erstes Netzwerkgerät, das das Paket empfängt, das Paket klassifizieren oder markieren. In einigen Ausführungsformen können Tools wie Zugriffskontrollen, die Quelle des Datenverkehrs oder die Überprüfung von Daten bis zur Anwendungsschicht im OSI-Modell verwendet werden, um das Paket zu klassifizieren oder zu markieren. In einigen Fällen können Inspektionen in oberen Schichten des OSI-Modells rechenintensiver sein und das Paket stärker verzögern. In einigen Ausführungsformen können Pakete nach der Klassifizierung etikettiert oder markiert werden. In einigen Ausführungsformen kann die Markierung in Schicht 2 des OSI-Modell-Headers (Datenverbindung) erfolgen (wodurch Switches ihn lesen können) und/oder Schicht 3 des OSI-Modell-Headers (Netzwerk) (wodurch Router ihn lesen können). In einigen Ausführungsformen können Netzwerkgeräte, nachdem das Paket markiert wurde und sich durch das Netzwerk bewegt, die Markierung des Pakets lesen, um das Paket zu klassifizieren, anstatt tief in die höheren Schichten des OSI-Modells einzudringen. In einigen Ausführungsformen können fortschrittliche Algorithmen für maschinelles Lernen zur Verkehrsklassifizierung oder zur Identifizierung zeitkritischer Pakete anstelle einer manuellen Klassifizierung oder Identifizierung verwendet werden. In einigen Ausführungsformen kann die Markierung eines Pakets das Paket als kritisches Paket kennzeichnen, sodass der Rest des Netzwerks das Paket identifizieren und dem Paket Vorrang vor dem gesamten anderen Verkehr gewähren kann. In einigen Ausführungsformen kann ein Paket durch Festlegen eines Class of Service (CoS)-Werts im Layer-2-Ethernet-Frame-Header markiert werden, wobei der Wert zwischen null und sieben liegt. Je höher der CoS-Wert, desto höher die Priorität des Pakets. In einigen Ausführungsformen kann ein Paket eine Standardmarkierung erhalten, wenn verschiedene Anwendungen auf dem Roboter ausgeführt werden. Wenn der Roboter beispielsweise mit einem anderen Roboter navigiert und zusammenarbeitet oder ein Video- oder Sprachanruf läuft, werden die Daten möglicherweise mit einem höheren Wert markiert, als wenn anderer Datenverkehr gesendet wird. In einigen Ausführungsformen kann eine Markierung mit einem Wert von Null darauf hinweisen, dass keine Markierung vorhanden ist. In einigen Ausführungsformen können im Laufe der Zeit Markierungsmuster entstehen, wenn der Roboter im Laufe der Zeit verwendet wird.

In einigen Ausführungsformen kann zusätzliche Hardware implementiert werden, um eine Überlastung zu vermeiden. In einigen Ausführungsformen können vorbeugende Maßnahmen implementiert werden, wie z. B. das Verwerfen von Paketen, bei denen es sich möglicherweise um nicht wesentlichen (oder nicht so wesentlichen) Datenverkehr im Netzwerk handelt, um eine starke Überlastung zu vermeiden. In einigen Ausführungsformen kann ein Paket, das verworfen werden kann, bestimmt werden, wenn eine Überlastung vorliegt und Bandbreite verfügbar ist. In einigen Ausführungsformen kann das Unterbinden von überschüssigem Datenverkehr als Policing bezeichnet werden. In einigen Ausführungsformen kann durch die Gestaltung von Warteschlangen überschüssiger Datenverkehr genutzt werden, wobei Pakete zu einem späteren Zeitpunkt oder langsam gesendet werden können.

In einigen Ausführungsformen können mit einem digitalen Bild verknüpfte Metadaten (z. B. Schlüsselwörter, Tags, Beschreibungen) verwendet werden, um in einer großen Datenbank nach einem Bild zu suchen. In einigen Ausführungsformen kann Content-Based Image Retrieval (CBIR) verwendet werden, wobei Computer-Vision-Techniken verwendet werden können, um in einer großen Datenbank nach einem digitalen Bild zu suchen. In einigen Ausführungsformen kann CBIR die Inhalte des Bildes analysieren, beispielsweise Farben, Formen, Texturen oder andere Informationen, die aus dem Bild abgeleitet werden können. In einigen Ausführungsformen kann CBIR wünschenswert sein, da Suchvorgänge, die auf Metadaten basieren, möglicherweise von der Qualität und Vollständigkeit der Annotation abhängen. Darüber hinaus kann das manuelle Kommentieren von Bildern zeitaufwändig sein, Schlüsselwörter beschreiben das Bild möglicherweise nicht richtig und Schlüsselwörter können den Umfang der Abfragen auf eine Reihe vorgegebener Kriterien beschränken.

In einigen Ausführungsformen kann ein Vektorraummodell, das zum Darstellen und Durchsuchen von Textdokumenten verwendet wird, auf Bilder angewendet werden. In einigen Ausführungsformen können Textdokumente mit Vektoren dargestellt werden, die Histogramme der Worthäufigkeiten im Text sind. In einigen Ausführungsformen kann ein Histogrammvektor eines Textdokuments die Häufigkeit des Vorkommens jedes Wortes innerhalb des Dokuments enthalten. In einigen Ausführungsformen können gebräuchliche Wörter (z. B. the, is, a usw.) ignoriert werden. In einigen Ausführungsformen können Histogrammvektoren auf eine Einheitslänge normiert werden, indem der Histogrammvektor durch die gesamte Histogrammsumme dividiert wird, da Dokumente unterschiedliche Längen haben können. In einigen Ausführungsformen können die einzelnen Komponenten des Histogrammvektors basierend auf der Wichtigkeit jedes Wortes gewichtet werden. In einigen Ausführungsformen kann die Bedeutung des Wortes proportional zur Häufigkeit seines Vorkommens im Dokument oder andernfalls zur Begriffshäufigkeit des Wortes sein. In einigen Ausführungsformen ist der Begriff Häufigkeit (tƒw,d) eines Wortes (w) in einem Dokument (d) kann mithilfe von bestimmt werden

tf w , D = N w J N J ,
wobei nwist die rohe Anzahl eines Wortes und ΣJNJist die Anzahl der Wörter im Dokument. In einigen Ausführungsformen ist die inverse Dokumenthäufigkeit (idfw,d) kann bestimmt werden mit

ich D F w , D = Protokoll „\[LeftBracketingBar]“ D „\[RightBracketingBar]“ „\[LeftBracketingBar]“ { D : w D } „\[RightBracketingBar]“ ,
wobei |D| ist die Anzahl der Dokumente im Korpus D und |{d:w∈d}| ist die Anzahl der Dokumente im Korpus, die das bestimmte Wort enthalten. In einigen Ausführungsformen können die Termhäufigkeit und die inverse Dokumenthäufigkeit multipliziert werden, um eines der Elemente des Histogrammvektors zu erhalten. In einigen Ausführungsformen kann das Vektorraummodell auf Bilder angewendet werden, indem Wörter generiert werden, die einer visuellen Darstellung entsprechen können. Beispielsweise können lokale Deskriptoren wie ein SIFT-Deskriptor verwendet werden. In einigen Ausführungsformen kann eine Reihe von Wörtern als visuelles Vokabular verwendet werden. In einigen Ausführungsformen kann eine Datenbank eingerichtet und Bilder indiziert werden, indem Deskriptoren extrahiert, sie unter Verwendung des visuellen Vokabulars in visuelle Wörter umgewandelt werden und die visuellen Wörter und Worthistogramme mit den entsprechenden Informationen, zu denen sie gehören, gespeichert werden. In einigen Ausführungsformen kann eine an eine Bilddatenbank gesendete Abfrage eines Bildes nach dem Durchsuchen der Datenbank ein Bildergebnis zurückgeben. In einigen Ausführungsformen kann die SQL-Abfragesprache zum Ausführen einer Abfrage verwendet werden. In einigen Ausführungsformen können größere Datenbanken bessere Ergebnisse liefern. In einigen Ausführungsformen kann die Datenbank in der Cloud gespeichert werden.

In einem Beispiel kann der Roboter ein Bild an eine Datenbank senden, in der eine Suche erforderlich ist. Die Suche innerhalb der Datenbank kann in der Cloud durchgeführt werden und ein Bildergebnis kann an den Roboter gesendet werden. In einigen Ausführungsformen können unterschiedliche Roboter unterschiedliche Datenbanken haben. In einigen Ausführungsformen kann eine Abfrage eines Bildes an verschiedene Roboter gesendet werden und eine Suche in jeder ihrer Datenbanken durchgeführt werden. In einigen Ausführungsformen kann die Verarbeitung in der Cloud oder auf dem Roboter ausgeführt werden. In einigen Ausführungsformen ist möglicherweise keine Datenbank vorhanden, und stattdessen kann ein Roboter ein Bild erhalten und der Roboter kann seine Umgebung nach etwas durchsuchen, das dem Bildinhalt ähnelt. In einigen Ausführungsformen kann die Suche in Echtzeit im Sichtfeld des Roboters, einer Flotte von Robotern, Kameras, Kameras von Drohnen oder Kameras selbstfahrender Autos ausgeführt werden. Beispielsweise kann die Polizei ein Bild einer gesuchten Person in die Cloud hochladen und jeder Sicherheitsroboter in einer Flotte kann das Bild erhalten und seine Umgebung nach etwas absuchen, das dem Inhalt des Bildes ähnelt. In einigen Ausführungsformen können in einer trainierten Datenbank gespeicherte und gekennzeichnete Daten zur Verbesserung der Ergebnisse verwendet werden.

In einigen Ausführungsformen kann ein ähnliches System zum Durchsuchen von Innenkarten verwendet werden. Beispielsweise kann die Polizei ein Bild eines Tatorts hochladen, aus dem eine Teilkarte abgeleitet wurde, und eine Abfrage an eine Kartendatenbank senden, um festzustellen, mit welchem ​​Haus das Bild möglicherweise verknüpft ist. In einigen Fällen kann es sich bei der Datenbank um eine Datenbank mit zuvor hochgeladenen Karten handeln. In einigen Ausführungsformen können Roboter in einer Flotte in Echtzeit eine Karte (oder eine Teilkarte innerhalb ihres Sichtfelds) erstellen, um zu bestimmen, welchem ​​Haus das Bild zugeordnet werden kann. In einem Beispiel kann ein Merkmal in einem in einem Haus aufgenommenen Video in einer Datenbank mit zuvor hochgeladenen Karten durchsucht werden, um das Haus zu ermitteln, in dem das Video aufgenommen wurde.

In einigen Ausführungsformen können ähnliche Suchtechniken wie oben beschrieben für Sprachdaten verwendet werden, wobei beispielsweise Sprachdaten in Textdaten umgewandelt werden können und Suchtechniken wie das Vektorraummodell verwendet werden können. In einigen Ausführungsformen können bereits vorhandene Anwendungen verwendet werden, die Sprachdaten in Textdaten umwandeln können. In einigen Ausführungsformen können solche Anwendungen neuronale Netze zum Transkribieren von Sprachdaten in Textdaten verwenden und Sprachdaten in Echtzeit oder in einer Datei gespeicherte Sprachdaten transkribieren. In einigen Ausführungsformen können ähnliche Suchtechniken wie oben beschrieben für Musik-Audiodaten verwendet werden.

In einigen Ausführungsformen kann ein Video oder ein speziell entwickelter Codec verwendet werden, um SLAM-Pakete innerhalb eines Netzwerks zu senden. In einigen Ausführungsformen kann der Codec verwendet werden, um eine räumliche Karte in eine Reihe von Bildern zu kodieren. In einigen Ausführungsformen können 8 Bits verwendet werden, um jedes Pixel zu beschreiben, und 256 Status können für jede Zelle verfügbar sein, die die Umgebung darstellt. In manchen Fällen ist die Pixelfarbe möglicherweise nicht unbedingt wichtig. In einigen Ausführungsformen kann eine räumliche Karte abhängig von der Auflösung eine große Menge an Informationen enthalten, und in solchen Fällen ist die Darstellung der räumlichen Karte als Videostream möglicherweise nicht der beste Ansatz. Einige Beispiele für Video-Codecs können AOM Video 1, Libtheora, Dirac-Research, FFmpeg, Blackbird, DivX, VP3, VP5, Cinepak und RealVideo sein.

In einigen Ausführungsformen kann ein erstes Bild gesendet werden und während sich der Roboter bewegt, kann das Bild als Ergebnis der Bewegung geändert werden, anstatt dass sich die Szene ändert, um Bandbreite für das Senden von Daten zu sparen. In einem solchen Szenario müssen die aufgrund der Bewegung des Roboters vorhergesagten Bilder nicht vollständig gesendet werden. In einigen Ausführungsformen kann die Geschwindigkeit des Roboters zusammen mit einigen unterschiedlichen interessanten Punkten innerhalb des Bildes zwischen dem Senden vollständiger Bilder gesendet werden. In einigen Ausführungsformen kann auf diese Weise je nach Übertragungsgeschwindigkeit, Umfang der gesendeten Informationen und Geschwindigkeit des Roboters eine gewisse Komprimierung sicher eingesetzt werden. Beispielsweise kann ein direkter linearer Transformationsalgorithmus verwendet werden, um eine Entsprechung oder Ähnlichkeit zwischen zwei Bildern oder Ebenen zu finden. In einigen Ausführungsformen kann eine vollständige Perspektivtransformation acht Freiheitsgrade haben. In Ausführungsformen kann jeder Korrespondenzpunkt zwei Gleichungen bereitstellen, eine für x-Koordinaten und eine für y-Koordinaten. In Ausführungsformen können vier Korrespondenzpunkte erforderlich sein, um eine Homographie (H) oder eine zweidimensionale projektive Transformation zu berechnen, die eine Ebene x auf eine andere Ebene x‘ abbildet, d. h. x‘ = Hx. Sobald ein erstes Bild und H gesendet wurden, kann das zweite Bild bei Bedarf auf der Empfängerseite rekonstruiert werden. In Ausführungsformen werden möglicherweise nicht alle übertragenen Bilder auf der Empfangsseite benötigt. In anderen Fällen können andere Transformationen verwendet werden, beispielsweise eine affine Transformation mit 6 Freiheitsgraden.

In einigen Ausführungsformen können Bewegung und die Beziehung zwischen zwei aufeinanderfolgenden Bildern bei der Übertragung von Karten berücksichtigt werden. In einigen Ausführungsformen können zwei aufeinanderfolgende Bilder von einer Kamera eines sich bewegenden Roboters erfasst werden. In einigen Ausführungsformen kann die Umgebung größtenteils stationär sein oder die Bewegung innerhalb der Umgebung kann erheblich langsamer sein als die Geschwindigkeit, mit der Bilder aufgenommen werden können, wobei die Helligkeit von Objekten größtenteils konstant sein kann. In einigen Ausführungsformen kann ein Objektpixel durch I(x,y,t) dargestellt werden, wobei I ein Bild ist, t die Zeit ist und x, y eine Position eines Pixels innerhalb des Bildes zum Zeitpunkt t ist2=t1+Δt. In einigen Ausführungsformen kann es nach einer kleinen Bewegung (oder zwischen zwei nacheinander aufgenommenen Bildern) zu einem kleinen Unterschied in x und y kommen, wobei x2=x1+Δx, y2=y1+Δy und I(x,y,t)→I(x+Δx,y+Δy, t+Δt). In einigen Ausführungsformen kann der Bewegungsvektor V=[u,ν] zum Bestimmen der Zeitableitung eines Bildes ∇I verwendet werdenTV=−IT, wobei ichTist die zeitliche Ableitung des Bildes. Die erweiterte Form kann durch die Lucas-Kanade-Methode angegeben werden, wobei [∇IT(X1)∇IT(X2)∇IT(XN)]V=[IX(X1)ICHX(X2): ICHX(XN)ICHj(X1)ICHj(X2): ICHj(XN)][u,ν]=−[IT(X1)ICHT(X2):ICHT(XN)]. Das Lucas-Kanade-Verfahren geht davon aus, dass die Verschiebung des Bildinhalts zwischen zwei aufeinanderfolgenden Bildern klein und innerhalb einer Umgebung des betrachteten Pixels annähernd konstant ist. In einigen Ausführungsformen kann die Reihe von Gleichungen mithilfe der Optimierung der kleinsten Quadrate gelöst werden. In einigen Ausführungsformen kann dies möglich sein, indem Ecken identifiziert werden, wenn Punkte den Qualitätsschwellenwert erfüllen, wie er durch die Good-to-Track-Kriterien von Shi-Tomsi bereitgestellt wird. In einigen Ausführungsformen kann die Übertragung eines aktiven Beleuchtungslichts dabei hilfreich sein.

In einigen Ausführungsformen können mithilfe lokaler Erfassungsmethoden erfasste Messwerte in eine lokale Teilkarte oder eine lokale Belegungsgitter-Teilkarte implementiert werden. In einigen Ausführungsformen können Ähnlichkeiten zwischen lokalen Teilkarten oder zwischen einer lokalen Teilkarte und einer globalen Karte bestimmt werden. In einigen Ausführungsformen kann das Abgleichen der lokalen Teilkarte mit einer anderen lokalen Teilkarte oder mit der globalen Karte ein Problem beim Lösen probabilistischer Einschränkungen sein, die zwischen relativen Posen der beiden Karten bestehen können. In einigen Ausführungsformen können benachbarte lokale Teilkarten basierend auf Bewegungseinschränkungen oder Beobachtungseinschränkungen zusammengefügt werden. In einigen Ausführungsformen kann die globale Karte als Referenz beim Zusammenfügen zweier benachbarter lokaler Teilkarten dienen. Beispielsweise bestätigt ein einzelner Scan mit zwei ähnlichen Kantenmustern, dass zwei ähnliche Kantenmuster vorhanden sind, und schließt die Möglichkeit aus, dass dasselbe Kantenmuster zweimal beobachtet wurde.FEIGE.121Averanschaulicht ein erstes Kantenmuster12100und ein zweites Kantenmuster12101das scheint das Gleiche zu sein. Wenn das erste Kantenmuster12100und das zweite Kantenmuster12101in einem einzigen Scan erkannt werden, kann daraus geschlossen werden, dass es sich sowohl um das erste Kantenmuster Y00 als auch um das zweite Kantenmuster handelt12101existieren.FEIGE.121Bzeigt einen Sensor eines Roboters12102Beobachten des ersten Kantenmusters12100zum Zeitpunkt t1während am Ort x1und das zweite Kantenmuster12101zum Zeitpunkt t2während am Ort x2. Nach Beobachtung des zweiten Kantenmusters erfolgt der Prozessor des Roboters12102kann feststellen, ob der Roboter wieder am Standort x ist1und das zweite Kantenmuster12101ist nur das erste Kantenmuster12100beobachtet oder wenn das zweite Kantenmuster12101existiert. Wenn ein einzelner Scan, der beide Muster der ersten Kante umfasst12100und das zweite Kantenmuster12101existiert, wie in dargestelltFEIGE.121C, kann der Prozessor daraus schließen, dass das zweite Kantenmuster vorliegt12101existiert. In einigen Ausführungsformen kann die Unterscheidung ähnlicher Muster innerhalb der Umgebung problematisch sein, da die Reichweite der Sensoren bei der lokalen Erfassung möglicherweise nicht in der Lage ist, beide Muster in einem einzigen Scan zu erkennen, wie in dargestelltFEIGE.121B. Die globale Karte kann jedoch verwendet werden, um die Existenz ähnlicher Muster zu beobachten, wie zFEIGE.121Cund disqualifizieren eine Formungstheorie. Dies kann besonders wichtig sein, wenn der Roboter während des Betriebs plötzlich um eine oder mehrere Kartenauflösungszellen weggeschoben wird. Zum Beispiel,FEIGE.122veranschaulicht einen Bewegungspfad12200des Roboters12201. Wenn Roboter12201wird plötzlich in die durch den Pfeil angezeigte linke Richtung gedrückt12202, die Portion12203des Bewegungspfades12200kann sich nach links verschieben. Um dies zu verhindern, arbeitet der Prozessor von robot12201kann basierend auf der Verbindung zwischen beobachteten Merkmalen und Merkmalen von Daten, die in der globalen oder lokalen Karte enthalten sind, neu angepasst werden. In einigen Ausführungsformen kann die Zuordnung von Merkmalen mithilfe der Minimierung der kleinsten Quadrate bestimmt werden. Beispiele können Gradientenabstieg, Levenberg-Marquardt und konjugierter Gradient sein.

In einigen Ausführungsformen können Prozessoren von Robotern ihre Karten untereinander teilen. In einigen Ausführungsformen kann der Prozessor eines Roboters oder einer Ladestation (oder eines anderen Geräts) die Karte in die Cloud hochladen. In einigen Ausführungsformen kann der Prozessor eines Roboters oder der Ladestation (oder eines anderen Geräts) eine Karte (oder eine andere Datendatei) aus der Cloud herunterladen.FEIGE.123Averanschaulicht ein Beispiel für einen Prozess zum Speichern einer Karte undFEIGE.123Bveranschaulicht zwei Beispiele für einen Prozess zum Erhalten der Karte bei einem Kaltstart des Roboters. In einigen Ausführungsformen können Karten in der Cloud gespeichert werden, indem in der Cloud ein Bucket zum Speichern von Karten aller Roboter erstellt wird. In einigen Ausführungsformen können http, https oder Curl zum Herunterladen und Hochladen von Karten oder anderen Datendateien verwendet werden. In einigen Ausführungsformen kann die http-Put-Methode oder die http-Post-Methode verwendet werden. In einigen Ausführungsformen kann die HTTP-Post-Methode vorzuziehen sein, da sie durch Überprüfung von ID, Passwort oder Rolle bestimmt, ob ein Roboter ein gültiger Client ist. In einigen Ausführungsformen können http und mqtt dieselben TCP/IP-Schichten verwenden. In einigen Ausführungsformen kann TCP unterschiedliche Sockets für mqtt und http ausführen. In einigen Ausführungsformen kann ein Dateiname verwendet werden, um zu unterscheiden, welche Kartendatei zu jedem Client gehört.

In einigen Ausführungsformen können Prozessoren von Robotern untereinander Karten übertragen. In einigen Ausführungsformen können von verschiedenen Robotern generierte Karten mit ähnlichen Methoden wie den oben beschriebenen zum Kombinieren lokaler Teilkarten kombiniert werden (wie in Absatz beschrieben).306), so dass die Wahrnehmungen zweier Roboter zu einer monolithischen Interpretation der Umgebung kombiniert werden können, vorausgesetzt, die örtliche Position jedes Roboters ist bekannt. Beispielsweise kann eine kombinierte Interpretation der Umgebung für autonome Rennwagen nützlich sein, die gefährliche Manöver durchführen, da Manöver, die mit Informationen durchgeführt werden, die auf die unmittelbare Umgebung eines autonomen Rennwagens beschränkt sind, möglicherweise unsicher sind. In einigen Ausführungsformen können Ähnlichkeiten zwischen Karten verschiedener Roboter ermittelt werden. In einigen Ausführungsformen kann das Abgleichen der Karten verschiedener Roboter ein Problem beim Lösen probabilistischer Einschränkungen sein, die zwischen relativen Posen der beiden Karten bestehen können. In einigen Ausführungsformen können Karten basierend auf Bewegungseinschränkungen oder Beobachtungseinschränkungen zusammengefügt werden. In einigen Ausführungsformen kann eine globale Karte als Referenz beim Zusammenfügen zweier Karten dienen. In einigen Ausführungsformen können Karten nach jeder Bewegung (z. B. linear oder winkelig) des Roboters erneut abgeglichen werden. In einigen Ausführungsformen übermitteln Prozessoren von Robotern ihre Koordinaten und Bewegungen untereinander, so dass Prozessoren anderer Roboter ihre eigene Wahrnehmung der Bewegung mit der empfangenen Bewegung des Roboters vergleichen können. In einigen Ausführungsformen können zwei Karten einen linearen Abstand und einen relativen Winkelabstand haben. In einigen Ausführungsformen können zwei Karten gedreht werden, um zu bestimmen, ob eine Übereinstimmung zwischen den Daten der beiden Karten besteht. In einigen Ausführungsformen können Karten in grober bis feiner Auflösung angepasst werden. Eine grobe Auflösung kann verwendet werden, um Möglichkeiten schnell auszuschließen, und eine feine Auflösung kann zum Testen einer Hypothese verwendet werden, die mit einer groben Auflösung bestimmt wird.

In einigen Ausführungsformen befindet sich die Karte eines Roboters möglicherweise in einem lokalen Koordinatensystem und stimmt möglicherweise nicht perfekt mit Karten anderer Roboter in ihrem jeweiligen lokalen Koordinatensystem und/oder dem globalen Koordinatensystem (oder der Grundwahrheit) überein. In einigen Ausführungsformen kann die Grundwahrheit beeinflusst und geändert werden, wenn Karten abgeglichen und erneut abgeglichen werden. In einigen Ausführungsformen kann der Grad der Überlappung zwischen Karten verschiedener Roboter variabel sein, da jeder Roboter eine andere Perspektive sehen kann. In einigen Ausführungsformen kann jeder Roboter eine andere Auflösung seiner Karte haben, eine andere Technik zum Erstellen seiner Karte verwenden oder unterschiedliche Aktualisierungsintervalle seiner Karte haben. Beispielsweise verlässt sich ein Roboter möglicherweise mehr auf die Odometrie als ein anderer Roboter oder nimmt die Umgebung mit einer anderen Methode wahr als ein anderer Roboter oder verwendet möglicherweise andere Algorithmen, um Beobachtungen der Umgebung zu verarbeiten und eine Karte zu erstellen. In einem anderen Beispiel kann ein Roboter mit geringer Sensorik und einem effektiven Kartierungsalgorithmus nach einer kleinen Bewegung eine bessere Karte erstellen als ein Roboter mit einem 360-Grad-LIDAR. Wenn die Karten jedoch vor jeder Bewegung verglichen werden, verfügt der Roboter mit spärlicher Sensorik möglicherweise über eine viel eingeschränktere Karte.

In einigen Ausführungsformen können Daten über ein drahtgebundenes Netzwerk oder ein drahtloses Netzwerk übertragen werden. Beispielsweise können Daten über ein drahtloses Netzwerk für eine kollaborative Flotte von Robotern mit künstlicher Intelligenz übertragen werden. In einigen Ausführungsformen kann die Übertragung von Daten durch ein von einem Sender erzeugtes Wechselstromsignal beginnen. In einigen Ausführungsformen kann das Wechselstromsignal an eine Antenne eines Geräts übertragen werden, wobei das Wechselstromsignal als Sinuswelle abgestrahlt werden kann. Während dieses Vorgangs kann Strom das elektromagnetische Feld um die Antenne herum verändern, sodass diese elektromagnetische Wellen oder Signale übertragen kann. In Ausführungsformen kann das elektrische Feld durch stationäre Ladungen oder Strom erzeugt werden und das Magnetfeld verläuft senkrecht zum elektrischen Feld. In Ausführungsformen kann das Magnetfeld gleichzeitig mit dem elektrischen Feld erzeugt werden, das Magnetfeld wird jedoch durch sich bewegende Ladungen erzeugt. In Ausführungsformen können elektromagnetische Wellen als Ergebnis einer Schwingung zwischen einem elektrischen Feld und einem magnetischen Feld erzeugt werden, die entsteht, wenn das elektrische Feld mit dem magnetischen Feld in Kontakt kommt. In Ausführungsformen verlaufen das elektrische Feld und das magnetische Feld senkrecht zur Richtung der elektromagnetischen Welle. In Ausführungsformen ist der höchste Punkt einer Welle ein Wellenberg, während der tiefste Punkt ein Wellental ist.

In einigen Ausführungsformen beschreibt die Polarisation einer elektromagnetischen Welle die Art und Weise, wie sich die elektromagnetische Welle bewegt. In Ausführungsformen gibt es drei Arten von Polarisation: vertikal, horizontal und zirkular. Bei vertikaler Polarisation bewegen sich Wellen linear auf und ab. Bei horizontaler Polarisation bewegen sich Wellen linear nach links und rechts. Bei zirkularer Polarisation kreisen Wellen, während sie sich vorwärts bewegen. Beispielsweise können einige Antennen in einem drahtlosen Netzwerk vertikal polarisiert sein und daher ist ihr elektrisches Feld vertikal. In Ausführungsformen ist die Bestimmung der Ausbreitungsrichtung von Signalen von einer Antenne wichtig, da eine Fehlausrichtung zu verschlechterten Signalen führen kann. In einigen Ausführungsformen kann eine Antenne ihre Ausrichtung mechanisch durch einen Motor oder eine Reihe von Motoren anpassen, oder ein Benutzer kann die Ausrichtung der Antenne anpassen.

In einigen Ausführungsformen können zwei oder mehr Antennen an einem drahtlosen Gerät verwendet werden, um Mehrwegeprobleme zu vermeiden oder zu reduzieren. In einigen Ausführungsformen können zwei Antennen eine Wellenlänge voneinander entfernt platziert werden. In einigen Ausführungsformen vergleicht das drahtlose Gerät, wenn es die Präambel eines Frames hört, das Signal der beiden Antennen und verwendet einen Algorithmus, um zu bestimmen, welche Antenne das bessere Signal hat. In einigen Ausführungsformen können beide Signalströme verwendet und mithilfe fortschrittlicher Signalverarbeitungssysteme zu einem Signal kombiniert werden. In einigen Ausführungsformen kann die gewählte Antenne zum Empfang der tatsächlichen Daten verwendet werden. Da während der Präambel keine echten Daten vorliegen, hat das Umschalten der Antennen keinen Einfluss auf die Daten, wenn das System nicht in der Lage ist, zwei eingehende Datenströme zu interpretieren.

In Ausführungsformen gibt es zwei Haupttypen von Antennen, gerichtete und omnidirektionale Antennen, wobei sich die beiden Antennen je nach Fokussierung des Strahls unterscheiden. In Ausführungsformen sind die Abdeckungswinkel für jede Antenne festgelegt. Beispielsweise kann beobachtet werden, dass sich Signale einer Rundstrahlantenne aus der Perspektive der oberen Ebene (H-Ebene) gleichmäßig in einem 360-Grad-Muster ausbreiten, während sich die Signale aus der Perspektive der Elevationsebene (E-Ebene) nicht gleichmäßig ausbreiten. Ebene). In einigen Ausführungsformen können sich Signale auf jede Ebene beziehen. In einigen Ausführungsformen kann eine Antenne mit hoher Verstärkung verwendet werden, um einen Strahl zu fokussieren.

In Ausführungsformen können unterschiedliche Wellenformen unterschiedliche Wellenlängen haben, wobei die Wellenlänge der Abstand zwischen aufeinanderfolgenden Wellenkämmen oder von einem Punkt in einem Zyklus zu einem nächsten Punkt im Zyklus ist. Beispielsweise kann die Wellenlänge von AM-Radiowellenformen 400–500 m betragen, WLAN-Wellenformen können einige Zentimeter betragen und Satellitenwellenformen können etwa 1 mm betragen. In Ausführungsformen können unterschiedliche Wellenformen unterschiedliche Amplituden haben, wobei die Amplitude der vertikale Abstand zwischen zwei Wellenbergen (d. h. Spitze und Tal) ist und die Stärke der in das Signal eingebrachten Energie darstellt. In manchen Fällen können bei gleicher Wellenlänge und Frequenz unterschiedliche Amplituden auftreten. In einigen Ausführungsformen kann ein Teil der zur Strahlung an eine Antenne gesendeten Energie in einem Kabel verloren gehen, das zwischen dem Ort, an dem die Modulation der Energie auftritt, und der Antenne besteht. In einigen Ausführungsformen kann die Antenne einen Gewinn hinzufügen, indem sie das Energieniveau erhöht, um den Verlust auszugleichen. In einigen Ausführungsformen hängt die Höhe des Gewinns vom Antennentyp und den von FCC und ETSI festgelegten Vorschriften für die Leistungsstrahlung von Antennen ab. In einigen Ausführungsformen kann ein abgestrahltes Signal auf natürliche Weise schwächer werden, wenn es sich von der Quelle entfernt. In einigen Ausführungsformen kann die Positionierung eines Empfangsgeräts näher an einem Sendegerät zu einem besseren und stärkeren Empfangssignal führen. Beispielsweise empfangen Empfänger, die außerhalb der Reichweite eines Zugangspunkts platziert sind, möglicherweise keine Funksignale vom Zugangspunkt, wodurch die Funktion des Netzwerks beeinträchtigt wird. In einigen Ausführungsformen kann eine Erhöhung der Signalamplitude die Distanz vergrößern, die eine Welle zurücklegen kann. In einigen Ausführungsformen kann eine Antenne des Roboters so ausgelegt sein, dass sie eine größere horizontale als vertikale Abdeckung bietet. Beispielsweise kann es für den Roboter sinnvoller sein, Signale an andere Roboter zu übertragen, die 15 m von einer Seite des Roboters entfernt sind, als 15 m über oder unter dem Roboter.

In einigen Ausführungsformen können bestimmte Einflüsse bei der Übertragung von Daten über die Luft die Ausbreitung des drahtlosen Signals stoppen oder die Distanz verkürzen, die die Daten zurücklegen können, bevor sie unbrauchbar werden. In manchen Fällen kann die Absorption die drahtlose Signalübertragung beeinträchtigen. Beispielsweise können Hindernisse, Wände, Menschen, Decken, Teppiche usw. Signale absorbieren. Die Absorption einer Welle kann Wärme erzeugen und die Distanz verringern, die die Welle zurücklegen kann, es ist jedoch unwahrscheinlich, dass sie einen wesentlichen Einfluss auf die Wellenlänge oder Frequenz der Welle hat. Um den Absorptionseffekt zu vermeiden oder zu verringern, können drahtlose Repeater in einem leeren Bereich platziert werden. Aufgrund von Absorbern wie Teppichen und Personen kann jedoch eine größere Amplitude oder eine Verringerung des Abstands zwischen Repeatern erforderlich sein. In manchen Fällen kann Reflexion die drahtlose Signalübertragung beeinträchtigen. Reflexion kann auftreten, wenn ein Signal von einem Objekt reflektiert wird und sich in eine andere Richtung ausbreitet. In einigen Ausführungsformen kann die Reflexion mit der Frequenz korreliert sein, wobei einige Frequenzen möglicherweise toleranter gegenüber Reflexion sind. In einigen Ausführungsformen kann es zu einer Herausforderung kommen, wenn Teile von Signalen reflektiert werden, was dazu führt, dass die Signale in der falschen Reihenfolge am Empfänger ankommen oder dass der Empfänger denselben Teil eines Signals mehrmals empfängt. In einigen Fällen können Reflexionen dazu führen, dass Signale phasenverschoben sind und sich gegenseitig aufheben. In einigen Ausführungsformen kann die Beugung eine drahtlose Signalübertragung beeinflussen. Beugung kann auftreten, wenn das Signal um ein Hindernis herum gebogen und ausgebreitet wird. Am ausgeprägtesten kann es sein, wenn eine Welle auf ein Objekt trifft, dessen Größe mit seiner eigenen Wellenlänge vergleichbar ist. In einigen Ausführungsformen kann die Brechung eine drahtlose Signalübertragung beeinflussen. Brechung kann auftreten, wenn das Signal seine Richtung ändert (d. h. biegt), wenn das Signal Materie mit unterschiedlicher Dichte durchdringt. In einigen Fällen kann dies auftreten, wenn Funksignale auf Staubpartikel in der Luft oder im Wasser treffen.

In einigen Ausführungsformen können Hindernisse eine drahtlose Signalübertragung beeinträchtigen. Während sich ein Signal zu einem Empfänger bewegt, kann es auf verschiedene Hindernisse stoßen, da drahtlose Signale, die sich über weitere Distanzen bewegen, in der Nähe des Mittelpunkts breiter werden und näher am Empfänger schmaler werden. Selbst in einer Sichtlinie (LOS) können Erdkrümmungen, Berge, Bäume, Gras und Verschmutzung das Signal beeinträchtigen, wenn die Entfernung groß ist. Dies kann auch bei mehreren drahtlos kommunizierenden Robotern vorkommen, die in einem Haus oder in einer Stadt aufgestellt sind. Der Roboter kann das drahtlose Netzwerk nutzen oder eine Ad-hoc-Verbindung herstellen, wenn er sich in der visuellen Sichtlinie befindet. Einige Ausführungsformen können die Fresnel-Zone verwenden, einen konfokalen, länglichen, ellipsoidförmigen Raumbereich zwischen und um einen Sender und Empfänger. In einigen Ausführungsformen kann die Größe der Fresnel-Zone in einem bestimmten Abstand vom Sender und Empfänger dabei helfen, vorherzusagen, ob Hindernisse oder Diskontinuitäten entlang des Übertragungswegs erhebliche Störungen verursachen können. In einigen Ausführungsformen kann ein Mangel an Bandbreite die drahtlose Signalübertragung beeinträchtigen. In manchen Fällen kann es aufgrund fehlender Bandbreite schwierig sein, die benötigte Datenmenge rechtzeitig zu übertragen. In einigen Ausführungsformen kann die Header-Komprimierung verwendet werden, um Bandbreite zu sparen. Bestimmter Datenverkehr (z. B. Voice-over-IP) kann in jedem Paket nur eine geringe Menge an Anwendungsdaten enthalten, es können jedoch insgesamt viele Pakete gesendet werden. In diesem Fall verbraucht die Menge der Header-Informationen möglicherweise mehr Bandbreite als die Daten selbst. Mithilfe der Header-Komprimierung können redundante Felder im Header von Paketen eliminiert und somit Bandbreite eingespart werden. In einigen Ausführungsformen können Verbindungsgeschwindigkeiten eine drahtlose Signalübertragung beeinflussen. Beispielsweise können langsamere Verbindungsgeschwindigkeiten aufgrund des Serialisierungsprozesses (die Zeit, die der Router benötigt, um das Paket aus seinen Speicherpuffern auf die Leitung zu übertragen) erhebliche Auswirkungen auf die Ende-zu-Ende-Verzögerung haben, je größer das Paket ist , desto länger ist die Serialisierungsverzögerung. In einigen Ausführungsformen kann die Nutzlastkomprimierung verwendet werden, um über das Netzwerk übertragene Anwendungsdaten zu komprimieren, sodass der Router weniger Daten über eine langsame WAN-Verbindung überträgt.

In einigen Ausführungsformen kann der Empfangssignalstärkeindikator (RSSI) verwendet werden, um die Leistung in einem empfangenen Funksignal zu bestimmen, oder der Empfangskanalleistungsindikator (RCPI) kann verwendet werden, um die empfangene HF-Leistung in einem Kanal zu bestimmen, der den gesamten empfangenen Rahmen abdeckt definierte absolute Genauigkeits- und Auflösungsniveaus. Beispielsweise verwendet der IEEE-Standard 802.11 RSSI oder RCPI. In einigen Ausführungsformen kann das Signal-Rausch-Verhältnis (SNR) verwendet werden, um die Stärke des Signals im Vergleich zum Umgebungsrauschen zu bestimmen, das das Signal verfälscht. In einigen Ausführungsformen kann das Verbindungsbudget verwendet werden, um die Leistung zu bestimmen, die zum Senden eines Signals erforderlich ist, das, wenn es am Empfangsende erreicht wird, noch verstanden werden kann. In Ausführungsformen kann das Verbindungsbudget alle Gewinne und Verluste zwischen einem Sender und einem Empfänger berücksichtigen, einschließlich Dämpfung, Antennengewinn und anderer verschiedener Verluste, die auftreten können. Beispielsweise kann das Verbindungsbudget mithilfe der empfangenen Leistung (dBm) = der übertragenen Leistung (dBm) + der Gewinne (dB) – der Verluste (dB) ermittelt werden.

In einigen Ausführungsformen können Daten einem Prozess unterzogen werden, bevor sie eine Antenne eines Roboters verlassen. In einigen Ausführungsformen kann eine Modulationstechnik wie Frequenzmodulation (FM) oder Amplitudenmodulation (AM), die beim Codieren von Daten verwendet wird, verwendet werden, um Daten auf HF-Trägersignalen zu platzieren. In manchen Fällen können Frequenzbänder für bestimmte Zwecke reserviert werden. Beispielsweise sind ISM-Frequenzbänder (Industrie, Wissenschaft und Medizin) Funkbänder aus dem HF-Spektrum, die für andere Zwecke als die Telekommunikation reserviert sind.

In Ausführungsformen können unterschiedliche Anwendungen unterschiedliche Bandbreiten verwenden, wobei eine Bandbreite in einem drahtlosen Netzwerk eine Anzahl von Zyklen pro Sekunde sein kann (z. B. in Hertz oder Hz). Beispielsweise kann ein Radiosender mit geringer Qualität einen Frequenzbereich von 3 kHz verwenden, ein UKW-Radiosender mit hoher Qualität kann einen Frequenzbereich von 175 kHz verwenden, und ein Fernsehsignal, das sowohl Sprach- als auch Videodaten über Funk sendet, kann eine Frequenz von 4500 kHz verwenden Bereich. In einigen Ausführungsformen kann Extremely Low Frequency (ELF) ein Frequenzbereich zwischen 3 und 30 Hz sein, Extremely High Frequency (EHF) kann ein Frequenzbereich zwischen 30 und 300 GHz sein und WLANs, die in einer Ultra High Frequency (UHF) arbeiten, oder Super High Frequency (SHF) kann einen Frequenzbereich von 900 MHz, 2,4 GHz oder 5 GHz haben. In Ausführungsformen können unterschiedliche Standards unterschiedliche Bandbreiten verwenden. Beispielsweise verwenden die IEEE-Standards 802.11, 802.11b, 802.11g und 802.11n den 2,4-GHz-Frequenzbereich. In einigen Ausführungsformen können drahtlose LANs den 2,4-GHz-Frequenzbereich nutzen und in Kanäle im Bereich von 2,4000–2,4835 GHz aufteilen. In den Vereinigten Staaten erlaubt der US-Standard 11 Kanäle, wobei jeder Kanal 22 MHz breit ist. In einigen Ausführungsformen kann sich ein Kanal mit einem anderen Kanal überlappen und Interferenzen verursachen. Aus diesem Grund werden am häufigsten die Kanäle 1, 6 und 11 verwendet, da sie sich nicht überschneiden. In einigen Ausführungsformen kann der Prozessor des Roboters so konfiguriert sein, dass er einen der Kanäle 1, 6 oder 11 wählt. In einigen Ausführungsformen kann der 5-GHz-Frequenzbereich in Kanäle unterteilt werden, wobei jeder Kanal 20 MHz breit ist. Basierend auf den IEEE-Standards 802.11a und 802.11n existieren im 5-GHz-Frequenzbereich insgesamt 23 überlappungsfreie Kanäle.

In Ausführungsformen können unterschiedliche Frequenzbereiche unterschiedliche Modulationstechniken verwenden, die unterschiedliche Datenraten bereitstellen können. Eine modulierte Wellenform kann aus Amplitude, Phase und Frequenz bestehen, die der Lautstärke des Signals, dem Timing des Signals zwischen Spitzen und der Tonhöhe des Signals entsprechen können. Beispiele für Modulationstechniken können Direct Sequence Spread Spectrum (DSSS), Orthogonal Frequency Division Multiplexing (OFDM) und Multiple-Input Multiple-Output (MIMO) sein. Beispielsweise kann der 2,4-GHz-Frequenzbereich DSSS-Modulation verwenden, die Datenraten von 1, 2, 5,5 und 11 Mbit/s bereitstellen kann, und der 5-GHz-Frequenzbereich kann OFDM verwenden, das Datenraten von 6, 9, 12, 18, 24 bereitstellen kann. 36, 48 und 54 Mbit/s. Geräte, die im 2,5-GHz-Bereich betrieben werden, können zur Datenübertragung die DSSS-Modulationstechnik verwenden. In einigen Ausführungsformen können die übertragenen Daten über das gesamte verwendete Frequenzspektrum verteilt sein. Beispielsweise kann ein Zugangspunkt, der auf Kanal 1 sendet, das Trägersignal über den 22 MHz breiten Kanal im Bereich von 2,401 bis 2,423 GHz verteilen. In einigen Ausführungsformen kann die DSSS-Modulationstechnik aufgrund möglicher Rauschstörungen bei der drahtlosen Übertragung Daten unter Verwendung einer Chipsequenz kodieren (d. h. Daten von einem Format in ein anderes umwandeln). In einigen Ausführungsformen kann die DSSS-Modulationstechnik ein einzelnes Datenbit als eine Reihe von Chips oder einen über den Frequenzbereich verteilten Chip-Stream übertragen. Bei der Übertragung redundanter Daten ist es wahrscheinlich, dass die übertragenen Daten verstanden werden, obwohl ein Teil des Signals durch Rauschen verloren geht. In einigen Ausführungsformen können übertragene Signale über Funkwellen moduliert werden und das Empfangsende kann diese Chipsequenz zurück in die ursprünglich übertragenen Daten dekodieren. Aufgrund von Interferenzen ist es möglich, dass einige Bits in der Chipsequenz verloren gehen oder invertiert werden (z. B. 1 kann zu 0 werden oder 0 kann zu 1 werden). Bei der DSSS-Modulationstechnik müssen jedoch mehr als fünf Bits invertiert werden, um den Wert eines Bits von 1 auf 0 zu ändern. Aus diesem Grund kann die Verwendung einer Chipping-Sequenz Netzwerken eine zusätzliche Widerstandsfähigkeit gegenüber Störungen verleihen.

In einigen Ausführungsformen kann die DSSS-Modulationstechnik Barker-Code verwenden. Beispielsweise verwendet der IEEE-Standard 802.11 einen 11-Chip-Barker-Code 10110111000, um Raten von 1 und 2 Mbit/s zu erreichen. In Ausführungsformen kann ein Barker-Code eine endliche Folge von N Werten a von +1 und –1 sein. In einigen Ausführungsformen sind Werte aJfür j=1, 2, . . . , N kann Autokorrelationskoeffizienten außerhalb der Spitzenzeiten haben

C v = J = 1 N - v A J A J + v .
In einigen Ausführungsformen sind die Autokorrelationskoeffizienten so klein wie möglich, wobei |cN|≤1 für alle 1≤ν0, . . . , C7, wobei c=(c0, . . . , C7)=(zj(ϕ1234), zj(ϕ134), zj(ϕ124), −ej(ϕ14), zj(ϕ123), zj(ϕ13), −ej(ϕ12), zj(ϕ1und Phasenänderung ϕ1, . . . , P4kann durch die modulierten Bits bestimmt werden. Da ϕ1wird auf jeden Chip angewendet, ϕ2wird auf gerade Chips angewendet, ϕ3wird auf die ersten beiden von jeweils vier Chips angewendet, und ϕ4Wird auf die ersten vier von acht Chips angewendet, kann CCK eine verallgemeinerte Hadamard-Transformationskodierung sein. In einigen Ausführungsformen kann die DSSS-Modulationstechnik Mary Orthogonal Keying verwenden, das mehrphasige Komplementärcodes oder andere Kodierungsmethoden verwendet.

In einigen Ausführungsformen können die Daten nach dem Kodieren der Daten (z. B. Umwandeln eines HF-Signals in eine Folge von Einsen und Nullen) von einer Funkantenne eines Geräts übertragen oder moduliert werden. In Ausführungsformen kann die Modulation eine Manipulation des HF-Signals umfassen, beispielsweise Amplitudenmodulation, Frequenzmodulation und Phasenumtastung (PSK). In einigen Ausführungsformen können die übertragenen Daten auf der Amplitude des Signals basieren. Beispielsweise können bei der Amplitudenmodulation +3 V durch einen Wert von 1 und –3 V durch einen Wert von 0 dargestellt werden. In einigen Ausführungsformen kann sich die Amplitude eines Signals während der Übertragung aufgrund von Rauschen oder anderen Faktoren ändern kann Einfluss auf die übermittelten Daten haben. Aus diesem Grund ist AM möglicherweise keine zuverlässige Lösung für die Datenübertragung. Es ist weniger wahrscheinlich, dass Faktoren wie Frequenz und Phase aufgrund externer Faktoren verändert werden. In einigen Ausführungsformen kann PSK zur Übermittlung von Daten durch Ändern der Phase des Signals verwendet werden. In Ausführungsformen ist eine Phasenverschiebung die Differenz zwischen zwei Wellenformen bei derselben Frequenz. Beispielsweise sind zwei Wellenformen, die gleichzeitig ihren Höhepunkt erreichen, in Phase und Spitzen zu unterschiedlichen Zeiten phasenverschoben. In einigen Ausführungsformen können binäre Phasenumtastung (BPSK) und Quadratur-Phasenumtastung (QPSK)-Modulation verwendet werden, wie im IEEE-Standard 802.11b. Bei BPSK können zwei um 180 Grad getrennte Phasen verwendet werden, wobei eine Phasenverschiebung von 180 Grad durch einen Wert von 1 und eine Phasenverschiebung von 0 Grad durch einen Wert von 0 dargestellt werden kann. In einigen Ausführungsformen kann BPSK verwendet werden kodieren ein Bit pro Symbol, was im Vergleich zu QPSK eine langsamere Rate ist. QPSK kann 2 Bits pro Symbol kodieren, was die Rate verdoppelt und gleichzeitig die gleiche Bandbreite beibehält. In einigen Ausführungsformen kann QPSK mit Barker-Codierung bei einer Datenrate von 2 Mbit/s verwendet werden. In einigen Ausführungsformen kann QPSK mit CCK-16-Kodierung mit einer Rate von 5,5 Mbit/s verwendet werden. In einigen Ausführungsformen kann QPSK mit CCK-128-Kodierung mit einer Rate von 11 Mbit/s verwendet werden.

Als Alternative zu DSSS kann in drahtlosen Netzwerken die OFDM-Modulationstechnik verwendet werden. In Ausführungsformen kann die OFDM-Modulationstechnik verwendet werden, um sehr hohe Datenraten bei zuverlässiger Störfestigkeit zu erreichen. In einigen Ausführungsformen kann eine Anzahl von Kanälen innerhalb eines Frequenzbereichs definiert werden, wobei jeder Kanal 20 MHz breit ist. In einigen Ausführungsformen kann jeder Kanal weiter in eine größere Anzahl von Unterträgern mit geringer Bandbreite unterteilt werden, von denen jeder 300 kHz breit ist, was zu 52 Unterträgern pro Kanal führt. Während die Unterträger in Ausführungsformen eine niedrige Datenrate aufweisen können, können die Daten gleichzeitig über die Unterträger parallel gesendet werden. In einigen Ausführungsformen kann codiertes OFDM (COFDM) verwendet werden, wobei Vorwärtsfehlerkorrektur (d. h. Faltungscodierung) und Zeit- und Frequenzverschachtelung auf das übertragene Signal angewendet werden können. In einigen Ausführungsformen können dadurch Fehler in Mobilkommunikationskanälen behoben werden, die durch Mehrwegeausbreitung und Doppler-Effekte beeinträchtigt werden. In einigen Ausführungsformen können zahlreiche eng beieinander liegende orthogonale Unterträgersignale mit überlappenden Spektren übertragen werden, um Daten zu übertragen. In einigen Ausführungsformen kann die Demodulation (d. h. der Prozess der Extraktion des ursprünglichen Signals vor der Modulation) auf Algorithmen der schnellen Fourier-Transformation (FFT) basieren. Für komplexe Zahlen x0, . . . , XN-1, die diskrete Fourier-Transformation (DFM) kann sein

X k = N = 0 N - 1 X N e - ich 2 Pi k N N für k = 0 , , N - 1 ,
worin

e - ich 2 Pi N
ist eine primitive n-te Wurzel von 1. In einigen Ausführungsformen kann die DFM unter Verwendung von O(N) bestimmt werden2) Operationen, wobei es N Ausgänge X gibtk, und jede Ausgabe hat eine Summe von N Termen. In Ausführungsformen kann eine FFT jede Methode sein, die die DFM unter Verwendung von 0(N log N)-Operationen bestimmen kann, wodurch eine effizientere Methode bereitgestellt wird. Bei komplexen Multiplikationen und Additionen für N=4096 Datenpunkte betrifft die Auswertung der DFT-Summe beispielsweise direkt N2komplexe Multiplikationen und N(N−1) komplexe Additionen (nach Eliminierung trivialer Operationen (z. B. Multiplikationen mit 1)). Im Gegensatz dazu kann der Cooley-Tukey-FFT-Algorithmus das gleiche Ergebnis mit nur (N/2)N komplexen Multiplikationen und NN komplexen Additionen erzielen. Weitere Beispiele für FFT-Algorithmen, die verwendet werden können, sind der Primfaktor-FFT-Algorithmus, der FFT-Algorithmus von Bruun, der FFT-Algorithmus von Rader, der FFT-Algorithmus von Bluestein und die hexagonale FFT.

In einigen Ausführungsformen kann die MIMO-Modulationstechnik verwendet werden. In einigen Ausführungsformen ermöglicht die erweiterte Signalverarbeitung die Wiederherstellung von Daten nach der Übertragung auf zwei oder mehr räumlichen Streams mit mehr als 100 Mbit/s durch gleichzeitiges Multiplexen von Datenströmen in einem Kanal. Beispielsweise kann die MIMO-Modulationstechnik zwei, drei oder mehr Antennen zum Empfangen von Signalen für eine erweiterte Signalverarbeitung verwenden.

Einige Ausführungsformen können dynamisches Rate Shifting (DRS) verwenden (z. B. 802.11b, 802.11g und 802.11a IEEE-Standards). In einigen Ausführungsformen kann es bei Geräten, die im 2,4-GHz-Bereich arbeiten, zu einer Geschwindigkeitsverschiebung von 11 Mbit/s auf 5,5 Mbit/s und unter bestimmten Umständen auf 2 und 1 Mbit/s kommen. In einigen Ausführungsformen erfolgt die Ratenverschiebung ohne Unterbrechung der Verbindung und auf einer Übertragung-für-Übertragung-Basis. Beispielsweise kann eine Änderung von 11 Mbit/s auf 5,5 Mbit/s für die nächste Übertragung wieder auf 11 Mbit/s zurückgehen. In allen Bereitstellungen unterstützt DRS möglicherweise mehrere Clients, die mit mehreren Datenraten arbeiten.

In einigen Ausführungsformen kann es zu Datenkollisionen kommen, beispielsweise im Fall einer Arbeitsgruppe aus drahtlosen Robotern. In einigen Ausführungsformen können zwei Antennen verwendet werden, um bei einer Kollision auf ein gestörtes Signal zu achten, wobei eine Antenne für übertragene Daten verwendet werden kann, während die andere Antenne zum Abhören auf ein gestörtes Signal verwendet werden kann.

In einigen Ausführungsformen kann die Carrier-Sense-Multiple-Access-Kollisionsvermeidung (CSMA/CA) verwendet werden, um Datenkollisionen zu vermeiden. In solchen Ausführungsformen kann ein Gerät vor der Übertragung von Daten zunächst eine Antenne zum Abhören verwenden, um Datenkollisionen zu vermeiden. Wenn der Kanal frei ist, sendet das Gerät möglicherweise ein Signal, das andere Geräte darüber informiert, keine Daten zu übertragen, da das Gerät Daten übertragen wird. Das Gerät kann die Antenne für einen bestimmten Zeitraum erneut zum Abhören verwenden, bevor es die Daten überträgt. Alternativ können Request-to-Send- (RTS) und Clear-to-Send- (CTS) Pakete verwendet werden, um Datenkollisionen zu vermeiden. Das Gerät, das Daten überträgt, kann vor der Übertragung der Daten ein RTS-Paket übertragen, und der vorgesehene Empfänger kann ein CTS-Paket an das Gerät übertragen. Dies kann andere Geräte darauf aufmerksam machen, für einen bestimmten Zeitraum keine Daten zu übertragen. In einigen Ausführungsformen kann ein RTS-Frame fünf Felder umfassen: Frame-Steuerung, Dauer, Empfängeradresse (RA), Senderadresse (TA) und Frame Check Sequence (FCS). In einigen Ausführungsformen kann ein CTS-Frame vier Felder umfassen: Frame-Steuerung, Dauer, RA und FCS. In einigen Ausführungsformen kann RA die MAC-Adresse des Geräts angeben, das den Frame empfängt, und TA kann die MAC-Adresse des Geräts angeben, das den Frame gesendet hat. In einigen Ausführungsformen kann FCS den CRC-Algorithmus (Cyclic Redundancy Check) verwenden.

In einigen Ausführungsformen kann die effektive isotrope Strahlungsleistung (EIRP) verwendet werden, um die von einer Antenne in einer bestimmten Richtung abgestrahlte Energiemenge oder Ausgangsleistung zu messen. In einigen Ausführungsformen kann die EIRP von der Gesamtleistungsabgabe (quantifiziert durch den Antennengewinn) und dem Strahlungsmuster der Antenne abhängen. In einigen Ausführungsformen kann der Antennengewinn das Verhältnis der von einer Antenne abgestrahlten Signalstärke zu der von einer Standardantenne abgestrahlten sein. In einigen Ausführungsformen kann die Antenne mit anderen Standardantennen verglichen werden, beispielsweise einer isotropen Antenne und einer Halbwellen-Dipolantenne, und daher können unterschiedliche Gewinne basierend auf der Standardantenne bestimmt werden. Zum Beispiel isotrope Verstärkung,

G ich = S max S max , isotrop oder G ich = 10 Protokoll S max S max , isotrop
in Dezibel kann als Verhältnis der Leistungsdichte S ermittelt werdenmaxan einem antennenfernen Punkt in Richtung seines Strahlungsmaximums auf die Leistungsdichte S empfangenmax,isotropam selben Punkt von einer theoretisch verlustfreien isotropen Antenne empfangen, die in alle Richtungen die gleiche Leistung abstrahlt. Der Dipolgewinn,

G D = S max S max , Dipol oder G D = 10 Protokoll S max S max , Dipol
in Dezibel kann als Verhältnis der Leistungsdichte S ermittelt werdenmaxin Richtung seines Strahlungsmaximums auf die Leistungsdichte S empfangenmax,isotropvon einer theoretisch verlustfreien Halbwellen-Dipolantenne in Richtung ihrer maximalen Strahlung empfangen. In einigen Ausführungsformen kann EIRP die Verluste in einer Übertragungsleitung und Anschlüssen berücksichtigen. In einigen Ausführungsformen kann die EIRP als EIRP = Senderausgangsstromverlust – Kabelverlust + Antennengewinn bestimmt werden. In einigen Ausführungsformen können in einer Punkt-zu-Punkt-Verbindung eine maximale EIRP von 36 dBm, eine Sendeleistung von maximal 30 dBm mit einem Gewinn von 6 dBm der Antenne und des Kabels zusammen und ein Verhältnis von Leistung zu Gewinn von 1:1 verwendet werden. In einigen Ausführungsformen kann in Mehrpunktszenarien ein Verhältnis von Leistung zu Verstärkung von 3:1 verwendet werden.

In einigen Ausführungsformen kann eine CPU, MPU oder MCU für die Verarbeitung verwendet werden. In einigen Ausführungsformen können Floats in Hardware verarbeitet werden. In einigen Ausführungsformen kann die MPU in Hardware implementiert sein. In einigen Ausführungsformen kann eine GPU in einer integrierten Architektur oder in einer separaten Einheit in der Hauptelektronikplatine verwendet werden. In einigen Ausführungsformen kann ein Zwischenobjektcode erstellt und verknüpft und zu einem endgültigen Code auf einem Zielroboter kombiniert werden.

In einigen Ausführungsformen kann ein Roboter-Bootloader einen ersten Codeblock laden, der in einem Speicher ausgeführt werden kann. In einigen Ausführungsformen können ein Hash und eine Prüfsumme einer zum Laden ausgewählten Datei überprüft werden. In einigen Ausführungsformen können der Hash und die Prüfsumme in einem Echtzeitprotokoll gedruckt werden. In einigen Ausführungsformen kann das Protokoll in einem Speicher gespeichert werden. In einigen Ausführungsformen kann das Protokoll über ein Wi-Fi-Netzwerk auf einen Computer übertragen werden, der als Terminal fungiert. In einigen Ausführungsformen kann das Übertragungsprotokoll SSH oder Telnet sein. In einigen Ausführungsformen kann in einem Release-Build ein Sicherheitsbit gesetzt werden, um eine Manipulation des Codes zu verhindern. In einigen Ausführungsformen können Over-the-Air-Updates möglich sein.

In einigen Ausführungsformen kann eine angepasste nichtflüchtige Konfiguration aus einem NVRAM oder Flash gelesen werden, nachdem der Roboter-Bootloader den Code in den Speicher geladen hat. Beispielsweise kann der HF-Kanal als NVRAM-Parameter gespeichert und gelesen und im Flash-Speicher gespeichert werden. In einigen Ausführungsformen können zwei Kopien des Computercodes in einem NVRAM des Roboters gespeichert werden. In Ausführungsformen, in denen der Roboter möglicherweise nicht startet (z. B. nach einem Upgrade), kann ein zweiter ausführender Computercode zum Hochfahren des Roboters verwendet werden. In einigen Ausführungsformen kann der Inhalt des Speichers des Roboters in einen bestimmten Speicher abgelegt werden, der später angezeigt oder gelöscht werden kann, wenn ein schwerer Fehler auftritt. In einigen Ausführungsformen kann die Speichermenge auf ein Maximum eingestellt werden und die neuen Informationen können alte Informationen überschreiben.

In einigen Ausführungsformen kann ein Startvorgang des Roboters vom Benutzer zu Fehlerbehebungszwecken unterbrochen werden. In einigen Ausführungsformen kann innerhalb eines bestimmten Zeitrahmens während des Startvorgangs eine Zeichenfolge gedrückt werden, um den Startvorgang zu unterbrechen. In einigen Ausführungsformen können weitere Steuerungen durch Drücken anderer Zeichenfolgen implementiert werden, die den Roboter möglicherweise dazu veranlassen, eine bestimmte Aufgabe auszuführen. Einige Beispiele umfassen Strg+C zum Löschen eingegebener Zeichen; Strg+D, um das Andocken zu starten; Strg+g, um mit der Reinigung zu beginnen; Strg+J, um geplante Jobs anzuzeigen; Strg+n, um die Karte zu drucken; Strg+Q, um Hilfe-/Listenbefehle anzuzeigen; Strg+R zum Software-Reset; Strg+S zum Anzeigen von Statistiken; Strg+T, um aktuelle Probleme anzuzeigen; Strg+V zum Umschalten des Vakuums; und Strg+Z, um das Reinigen/Andocken zu stoppen.

In einigen Ausführungsformen kann sich der Roboter in verschiedenen Zuständen befinden und jeder Zustand kann ein Substrat haben. Beispielsweise kann der Roboter nach dem Hochfahren in den Modus „Dock verlassen“ oder in den Reinigungsmodus wechseln. In einigen Ausführungsformen können ein oder mehrere Routine-Handler verwendet werden. Beispielsweise kann ein Routine-Handler eine Anweisung zum Abdocken, zum einmaligen Durchlaufen und zum Zurückkehren zum Ursprung enthalten.

In einigen Ausführungsformen können Hardwarekomponenten des Roboters einzeln initialisiert werden. In einigen Ausführungsformen können Hardwarekomponenten basierend auf den von ihnen bereitgestellten Funktionen kategorisiert werden. Beispielsweise kann ein Motor für ein Sauggebläse eines Roboters mit Bewegungsmotoren und ein Motor für ein Sauggebläse zu einer Untergruppe der Reinigungshardware gehören.

In einigen Ausführungsformen kann die neueste Version einer Karte nach Abschluss einer ersten Kartensitzung in einem nichtflüchtigen Speicherbereich des Roboters oder der Basisstation oder in der Cloud gespeichert werden. In einigen Ausführungsformen kann der nichtflüchtige Speicherplatz ein auf der MCU verfügbarer NV-RAM sein. Andere Standorte können ein Flash-Speicher, ein weiterer NVRAM auf der Hauptplatine des Roboters oder der Ladestation oder in der Cloud sein. Je nach Designpräferenz kann die Karte bis zum nächsten Kalt-Reset des Roboters lokal gespeichert werden. Dies kann eine vorteilhafte Ausführungsform sein, da ein Kalt-Reset darauf hinweisen kann, dass der Roboter eine Änderung erfährt. In einigen Ausführungsformen kann dies die Standardeinstellung sein, es sind jedoch möglicherweise auch andere Einstellungen möglich. Ein Benutzer kann sich beispielsweise dafür entscheiden, die Karte dauerhaft im NVRAM oder Flash zu speichern. In einigen Ausführungsformen kann eine Karte auf dem Roboter gespeichert werden, solange der Roboter nicht kalt gestartet oder hart zurückgesetzt wird. Beim Kaltstart oder Hard-Reset ruft der Prozessor des Roboters die Karte möglicherweise aus der Cloud ab. In einigen Ausführungsformen verwendet der Prozessor die Karte wieder. In einigen Ausführungsformen, in denen der Prozessor möglicherweise nicht in der Lage ist, die Karte wiederzuverwenden, kann der Prozessor des Roboters die Kartierung von Anfang an neu starten. Einige Ausführungsformen weisen statisch einen festen Bereich in einem SD-RAM des Roboters oder der Ladestation zu, da SD-RAMs groß sind und daher bei Bedarf eine große Karte speichern können. In einigen Ausführungsformen kann der feste Bereich im SD-RAM als dauerhaft markiert sein (d. h. der feste Bereich wird beim Zurücksetzen der MCU nicht auf Null gesetzt). Alternativ kann die Karte im SRAM gespeichert werden, jedoch können von einem Benutzer bereitgestellte Eingaben (z. B. virtuelle Grenzen, Zeitplanung, Bodentypen, Zonen, Begrenzungslinien, Robotereinstellungen usw.) verloren gehen, falls die Karte verloren geht während eines Kaltstarts oder Hard-Resets. In einer anderen Ausführungsform kann die Karte noch persistenter sein (d. h. in einem Flash-Speicher gespeichert werden), indem eine Benutzeranforderung im NVRAM (z. B. als Boolescher Wert) gespeichert wird. Wenn die Karte verloren geht und der Internetzugang ausfällt, kann die Benutzeranfrage im NVRAM überprüft werden. In einigen Ausführungsformen kann der Prozessor unter bestimmten Bedingungen einen Fehler melden und keine Arbeit (z. B. Sweep) ausführen, wenn der Benutzeranforderung nicht nachgekommen werden kann. In Ausführungsformen sind verschiedene Möglichkeiten zur Speicherung der Karte möglich.

In einigen Ausführungsformen kann die Startzeit des Roboters verkürzt oder die Leistung durch die Verwendung einer CPU mit höherer Frequenz verbessert werden. In einigen Fällen kann eine Erhöhung der Prozessorfrequenz die Laufzeit aller Programme verkürzen. In einigen Fällen beträgt der Stromverbrauch P=C×V2×F kann durch einen Chip bestimmt werden, wobei C die pro Taktzyklus geschaltete Kapazität ist (im Verhältnis zur Anzahl der Transistoren mit wechselnden Eingängen), V die Spannung und F die Prozessorfrequenz (z. B. Zyklen pro Sekunde) ist. . In einigen Fällen verbraucht Hardware mit höherer Frequenz mehr Strom. In einigen Fällen kann die Erhöhung der Frequenz durch technologische Einschränkungen begrenzt sein. Das Mooresche Gesetz sagt voraus, dass im Laufe der Zeit immer schnellere und leistungsfähigere Computer gebaut werden. Um jedoch eine Reihe anspruchsvoller Algorithmen mit aktueller Hardware auszuführen, ist möglicherweise eine Kombination aus Softwareverbesserungen, Algorithmenkreativität sowie paralleler und gleichzeitiger Verarbeitung erforderlich.

In einigen Fällen bietet die parallele Verarbeitung möglicherweise nicht alle Vorteile oder ist in Situationen, in denen einige Berechnungen von vorherigen Berechnungen oder Daten abhängen, möglicherweise weniger vorteilhaft. Beispielsweise kann eine Verschiebung eines Roboters nur dann erkannt werden, wenn sich der Roboter bewegt und Sensoren des Roboters die Bewegung aufzeichnen und andere Sensoren des Roboters die Bewegung bestätigen. An diesem Punkt kann der Prozessor die Daten verwenden, um den Standort des Roboters zu aktualisieren. Theoretisch ist eine Geschwindigkeitssteigerung durch Parallelisierung linear, da eine Verdoppelung der Anzahl der Verarbeitungselemente die Laufzeit auf die Hälfte reduziert. In einigen Fällen kann es jedoch sein, dass parallele Algorithmen die Laufzeit nicht verdoppeln. Während einige Prozesse möglicherweise schneller linear verarbeitet werden, nimmt der Leistungsgewinn im Allgemeinen mit zunehmender Komplexität ab. In einigen Ausführungsformen kann die potenzielle Beschleunigung eines Algorithmus auf einer parallelen Computerplattform mithilfe des Amdahl-Gesetzes bestimmt werden.

S ( S ) = 1 1 - P + P S ,
wobei S die potenzielle Beschleunigung der Latenzzeit bei der Ausführung der gesamten Aufgabe ist, s die Beschleunigung der Latenzzeit bei der Ausführung des parallelisierbaren Teils der Aufgabe ist und p der Prozentsatz der Ausführungszeit der gesamten Aufgabe bezüglich des parallelisierbaren Teils ist der Aufgabe vor der Parallelisierung. In einigen Ausführungsformen können Parallelisierungstechniken vorteilhaft in Situationen eingesetzt werden, in denen sie möglicherweise die meisten Ergebnisse liefern, wie z. B. gleichgerichtete lineare Einheitsfunktionen (ReLU) und Bildverarbeitung. Bei einigen probabilistischen Methoden kann der Rechenaufwand um das Vierfache oder mehr ansteigen. Dies kann als Dimensionsfluch bezeichnet werden. In einigen Fällen reicht die lineare Beschleunigung bei der Ausführung komplexer Aufgaben möglicherweise nicht aus, wenn die Algorithmen und der Low-Level-Code nachlässig geschrieben werden. Mit zunehmender Komplexität der Komponenten kann der Anstieg der Rechenkosten außer Kontrolle geraten.

In einigen Ausführungsformen können gleichzeitige Berechnungen während überlappender Zeiträume ausgeführt werden. In einigen Ausführungsformen kann es erforderlich sein, dass die Ausgabe einer Berechnung als Eingabe einer anderen Berechnung verwendet wird. Beispielsweise kann ein Prozessor verschiedene Sensordaten empfangen und falten und die Ausgabe kann vom Prozessor zum Generieren einer Karte verwendet werden. In einigen Ausführungsformen kann der Prozessor des Roboters Inhalte eines einem Prozess gewidmeten Speicherbereichs für einen anderen Prozess freigeben, um Zeit für die Nachrichtenübermittlung zu sparen. In einigen Ausführungsformen können Prozesse und Threads parallel auf mehreren Kernen ausgeführt werden. In einigen Ausführungsformen kann jeder Prozess einem separaten Prozessor oder Prozessorkern zugewiesen werden oder eine Berechnung kann auf mehrere Geräte in einem verbundenen Netzwerk von Robotergeräten verteilt werden. Beispielsweise kann ein Host-Prozessor, der eine „for-Schleife“ ausführt, die erforderlich ist, um 1000 Iterationen auf der Host-Verarbeitungseinheit nacheinander auszuführen, die Aufgabe an ein sekundäres Verarbeitungsgerät delegieren, indem er einen Kernel auf dem sekundären Verarbeitungsgerät startet. Um einen höheren Durchsatz zu erreichen, kann ein Block von 1000 einzelnen Threads parallel auf dem sekundären Verarbeitungsgerät gestartet werden. Oder der Host-Prozessor kann zwei Blöcke mit jeweils 500 Threads delegieren.

In einigen Ausführungsformen können ein Hochleistungsprozessor und ein Niedrigleistungsprozessor zusammen oder getrennt voneinander verwendet werden, um eine oder mehrere einer Vielzahl unterschiedlicher Funktionalitäten zu ermöglichen. In einer Ausführungsform können der Hochleistungsprozessor und der Niedrigleistungsprozessor jeweils für unterschiedliche Aufgaben bestimmt sein oder können beide eine allgemeine Verarbeitung umfassen. Beispielsweise kann der Prozessor mit hoher Leistung rechenintensive Vorgänge ausführen und der Prozessor mit niedriger Leistung kann weniger komplexe Vorgänge verwalten. In einer Ausführungsform kann der Prozessor mit geringer Leistung den Prozessor mit hoher Leistung für rechenintensive Prozesse aktivieren oder initialisieren. In einigen Ausführungsformen können Daten und Steuerungsaufgaben auf separaten Prozessoren verarbeitet werden. In einigen Ausführungsformen kann ein Datenpfad von einem Steuerpfad getrennt sein. In einigen Ausführungsformen besteht der Steuerpfad aus Bits und Anweisungen, die die Daten steuern. In einigen Ausführungsformen können Datenpakete von Steuerpaketen getrennt werden. In einigen Ausführungsformen können die Datenpakete einige Steuerinformationen enthalten. In einigen Ausführungsformen kann In-Band-Kommunikation eingesetzt werden. In einigen Ausführungsformen kann Out-of-Band-Kommunikation eingesetzt werden.

In einigen Ausführungsformen können virtuelle Maschinen ausgeführt werden. In einigen Ausführungsformen können Anweisungen aufgeteilt und teilweise gleichzeitig mithilfe von Pipeline-Techniken ausgeführt werden, wobei einzelne Anweisungen zur unabhängigen Ausführung in verschiedenen Teilen des Prozessors verteilt werden können. Einige Befehle, die innerhalb eines Taktzyklus per Pipeline verarbeitet werden können, können das Abrufen, Dekodieren, Ausführen, Speicherzugriff und Zurückschreiben umfassen. In einigen Ausführungsformen kann eine Ausführung außerhalb der Reihenfolge zulässig sein, was den Rechen- und Energieaufwand dieser Technik rechtfertigt. In einigen Ausführungsformen kann eine Ausführung in der richtigen Reihenfolge einschließlich Techniken mit sehr langen Befehlswörtern verwendet werden. In einigen Ausführungsformen können gegenseitige Abhängigkeiten von Anweisungen sorgfältig untersucht und verwaltet werden. Techniken zur Minimierung von Abhängigkeiten wie Verzweigungsvorhersage (d. h. Vorhersage, welcher Zweig genommen werden könnte), Prädikation (d. h. Verwendung bedingter Verschiebungen) oder Registerumbenennung (d. h. Vermeidung von WAW- und WAR-Abhängigkeiten) können eingesetzt werden.

In einigen Ausführungsformen kann die Latenz durch Optimierung der für die Erledigung einer Aufgabe erforderlichen Zeit reduziert werden. In einigen Ausführungsformen kann die Latenz geopfert werden, um ein sekundäres Verarbeitungsgerät anzuweisen, mehrere Threads auszuführen, um den Durchsatz zu optimieren. In manchen Fällen ist eine ausgefeilte Handhabung des Speicherplatzes unerlässlich, um zu verhindern, dass Speicherplätze zwischen verschiedenen Prozessen gemeinsam genutzt werden oder verloren gehen, wenn gleichzeitig arbeitende Komponenten interagieren, indem sie in Echtzeit auf Daten zugreifen, anstatt Daten in Form von Nachrichten aneinander zu senden.

In einigen Ausführungsformen können mehrere Geräte über einen Datenbus kommunizieren. In einigen Ausführungsformen können RAM, ROM oder andere Speichertypen für die Verbindung mit dem Datenbus ausgelegt sein. In einigen Ausführungsformen können Speichergeräte über Chipauswahl- und Ausgangsfreigabepins verfügen. In einigen Ausführungsformen kann eine der beiden Optionen ausgewählt und optimiert werden, um den Stromverbrauch zu senken oder die Latenz zu reduzieren. In einigen Ausführungsformen kann eine Tri-State-Logikschaltung vorhanden sein, wobei ein Zustand eine hohe Impedanz aufweisen kann, um die Auswirkungen eines Geräts auf andere Teile eines Systems zu beseitigen. In anderen Ausführungsformen kann das Open-Collector-Eingabe-/Ausgabeverfahren als Alternative zur Tri-State-Logik verwendet werden. In solchen Implementierungen können Geräte Kommunikationsleitungen freigeben, wenn sie inaktiv sind. In anderen Ausführungsformen kann ein Multiplexer verwendet werden.

In einigen Ausführungsformen können Prozesse weiter in Fäden und Fasern unterteilt werden. Beispielsweise kann Thread A einen Speicherbereich mit einer Variablen aktualisieren und Thread B kann diese Variable im nächsten Taktintervall lesen. Dies kann beim Einsparen von Ressourcen hilfreich sein, wenn mehrere Threads Zugriff auf dieselben Daten benötigen, und bietet möglicherweise eine bessere Leistung im Vergleich zu der Leistung, die sich aus der Übergabe von Thread A an Thread B ergibt.

In einigen Fällen kann die Speicherverwaltung bereits auf der untersten Entwurfsebene implementiert werden, um die Leistung des Robotersystems zu verbessern. In einigen Fällen kann die intelligente Verwendung von Registern zu einer Einsparung von Overhead führen. In einigen Fällen kann die Verwendung von Cache-Speicher die Leistung verbessern. Um ein gut konzipiertes System zu erreichen, müssen in einigen Fällen Größen wie die Trefferquote ordnungsgemäß überwacht und optimiert werden. In einigen Ausführungsformen können verschiedene Speicherzuordnungstechniken verwendet werden, wie etwa direkte Zuordnung, assoziative Zuordnung und satzassoziative Zuordnung. In einigen Ausführungsformen kann eine Memory Management Unit (MMU) oder Memory Protection Unit (MPU) in Hardware oder Software implementiert sein. In einigen Ausführungsformen kann Cache-Speicher zur Verbesserung der Leistung verwendet werden.FEIGE.124veranschaulicht ein Beispiel für den Informationsfluss zwischen CPU, Cache-Speicher, Primärspeicher und Sekundärspeicher.

In einigen Ausführungsformen kann ein Light-Weight-SLAM-Algorithmus räumliche Daten in Echtzeit verarbeiten, im Allgemeinen ohne Pufferung oder Verzögerungen, die durch ein Mehrzweck-Betriebssystem (OS) wie Linux, Windows oder Mac OS verursacht werden, das als Schnittstelle fungiert zwischen SLAM-Algorithmus, Sensoren und Hardware. In einigen Ausführungsformen kann ein Echtzeit-Betriebssystem verwendet werden. In einigen Ausführungsformen kann ein Kernel verwendet werden. In einigen Fällen kann ein Planer ein zeitgebundenes System mit genau definierten festen Zeitbeschränkungen definieren. In einigen Ausführungsformen unterbricht der Planer vorübergehend Aufgaben mit niedriger Priorität und plant sie für die Wiederaufnahme zu einem späteren Zeitpunkt, wenn Aufgaben mit hoher Priorität oder privilegierte Aufgaben Aufmerksamkeit erfordern. In einigen Ausführungsformen übernimmt ein Echtzeit-Betriebssystem die Planung, die Steuerung des Prozessors, die Zuweisung von Speicher und Eingabe-/Ausgabegeräten. In einigen Ausführungsformen kann in der Architektur des Robotersystems ein Scheduler-Codeblock enthalten sein, der auch für die Steuerung des Speichers, der Register, der Eingabe/Ausgabe und der Bereinigung des Speichers nach Abschluss jeder Aufgabe verantwortlich sein kann. In einigen Ausführungsformen kann die Architektur aus einem Kernel bestehen, der direkten Zugriff auf privilegierte zugrunde liegende Hardware hat. In einigen Ausführungsformen kann ein Kernel die Hardware und Kontrollmechanismen wie Erstellen, Planen, Öffnen, Schreiben und Zuweisen abstrahieren. In einigen Ausführungsformen kann ein Kernel auch den Speicher steuern, verarbeiten, Threads, Sockets und Seiten speichern. In einigen Ausführungsformen kann ein Kernel Richtlinien wie Direktzugriff, „Letzte Verwendung“ oder „Frühester Termin zuerst“ erzwingen. In einigen Ausführungsformen können Systemaufrufe implementiert werden, um übergeordneten Prozessen Zugriff auf die zugrunde liegende Hardware zu ermöglichen. In einigen Ausführungsformen kann ein Bit gesetzt und deaktiviert werden (oder umgekehrt), wenn ein Prozess von einem Kernelmodus auf eine höhere Ebene und zurück wechselt. In einigen Ausführungsformen können Argumente und Parameter direkt zwischen einem Code höherer Ebene und einem Kernel oder über ein Register übergeben werden. In einigen Ausführungsformen kann ein Kernel eine unzulässige Anweisung einer Speicherzugriffsanforderung abfangen. In einigen Ausführungsformen kann ein Kernel ein Signal an einen Prozess senden. In einigen Ausführungsformen kann ein Kernel einer Aufgabe oder einem Prozess oder einer Gruppe von Aufgaben oder Prozessen eine ID zuweisen. In einigen Ausführungsformen können für zukünftige Anforderungen zusätzliche Softwaremodule oder -blöcke im Robotersystem installiert werden. In einigen Ausführungsformen können Sensormesswerte (z. B. als Ausgabe) an einen Kernel weitergeleitet werden. In einigen Ausführungsformen kann ein Sensormesswert in einem Speicherbereich gespeichert werden und ein Kernel kann diesen Speicherbereich abwechselnd lesen. In einigen Ausführungsformen kann ein Kernel einen Sensorwert von einem anderen Ort lesen. In einigen Ausführungsformen erhält ein Kernel Sensormesswerte ohne Weitergabe, Übertragung oder Lesevorgang. In einer Implementierung können alle Ansätze zum Erhalten von Sensormesswerten verwendet werden.

In einigen Ausführungsformen kann ein Planer der Ausführung jedes Threads, jeder Aufgabe, jedes Tasklets usw. eine bestimmte Zeitspanne zuweisen. Beispielsweise kann ein erster Thread 10 aufeinanderfolgende Millisekunden lang ausgeführt werden und dann vom Planer außer Geplant werden, um einem zweiten Thread dies zu ermöglichen die nächsten 10 aufeinanderfolgenden Sekunden laufen lassen. Ebenso kann ein dritter Thread auf den zweiten Thread folgen. Dies kann so lange andauern, bis der letzte Thread die Kontrolle wieder an den ersten Thread übergibt. In einigen Ausführungsformen können diese Zeitabschnitte im Round-Robin-Verfahren Threads mit derselben Prioritätsstufe zugewiesen werden. In einigen Ausführungsformen kann jeder Thread als ein Objekt betrachtet werden, das eine bestimmte Funktion ausführt. In einigen Ausführungsformen kann jedem Thread eine Thread-ID zugewiesen werden. In einigen Ausführungsformen kann der Status einer laufenden Thread-Variable jedes Mal, wenn Threads gewechselt werden, in einem Thread-Stapel gespeichert werden. In einigen Ausführungsformen kann sich jeder Thread, der sich nicht in einem laufenden Zustand befindet (d. h. die Kontrolle über einen Prozessor oder Mikrocontroller hat), in einem Bereitschaftszustand oder einem Wartezustand befinden. Im Bereitschaftszustand kann der Thread zur Ausführung bereit sein, nachdem der aktuell ausgeführte Thread außerplanmäßig ist. Alle anderen Threads befinden sich möglicherweise im Wartezustand. In einigen Ausführungsformen können Threads Prioritäten zugewiesen werden. Ein Thread mit höherer Priorität kann Threads mit niedrigerer Priorität zuvorkommen. In einigen Ausführungsformen kann die Anzahl der gleichzeitig ausgeführten Threads in Verbindung mit der Thread-Stapelgröße und anderen Parametern festgelegt werden, wie z. B. der Ausführung im Standardstapel oder der Verfügbarkeit von zusätzlichem Speicherplatz für die Ausführung.

In einigen Ausführungsformen können Sperrmethoden verwendet werden. In anderen Ausführungsformen kann Multiversionierung verwendet werden. In einigen Ausführungsformen kann die Multiversionierung in späteren Zeitfenstern zur Universionierung konvergieren. In einigen Ausführungsformen kann die Mehrfachversionierung konstruktionsbedingt verwendet werden. Wenn beispielsweise die Transaktion Tichmöchte auf Objekt P schreiben und es gibt eine weitere Transaktion TkBeim Auftreten desselben Objekts wird der gelesene Zeitstempel RTS(Tich) muss vor dem gelesenen Zeitstempel RTS(T.) stehenk), damit der Objektschreibvorgang erfolgreich ist. Mit anderen Worten: Ein Schreibvorgang kann nicht abgeschlossen werden, wenn andere ausstehende Transaktionen mit einem früheren Lesezeitstempel RTS für dasselbe Objekt vorhanden sind. Jedes Objekt P hat einen Zeitstempel TS, wenn jedoch Transaktion Tichauf ein Objekt schreiben möchte und die Transaktion einen Zeitstempel TS hat, der vor dem aktuellen Lesezeitstempel des Objekts liegt, wird die Transaktion abgebrochen und neu gestartet, da eine spätere Transaktion bereits vom alten Wert abhängt. Ansonsten Ticherstellt eine neue Version von Objekt P und setzt den Lese-/Schreibzeitstempel TS der neuen Version auf den Zeitstempel der Transaktion TS=TS(Tich).

In einigen Ausführungsformen kann ein Verhaltensbaum verwendet werden, um die Komplexität von Implementierungen auf niedrigerer Ebene zu abstrahieren. In einigen Ausführungsformen kann ein Verhaltensbaum ein mathematisches Modell der Planausführung sein, wobei sehr komplexe Aufgaben aus einfachen Aufgaben bestehen können. In einigen Ausführungsformen kann ein Verhaltensbaum grafisch als gerichteter Baum dargestellt werden. Bei der Implementierung können Knoten als Root-Knoten, Kontrollflussknoten oder Ausführungsknoten (d. h. Aufgaben) klassifiziert werden. Bei einem Paar verbundener Knoten kann der ausgehende Knoten als übergeordneter Knoten und der eingehende Knoten als untergeordneter Knoten bezeichnet werden. Ein Wurzelknoten darf keine übergeordneten Knoten und nur ein untergeordnetes Element haben, ein Kontrollflussknoten kann einen übergeordneten Knoten und mindestens ein untergeordnetes Element haben und ein Ausführungsknoten kann einen übergeordneten Knoten und keine untergeordneten Knoten haben. Der Verhaltensbaum kann an der Wurzel beginnen, die Ticks (d. h. Aktivierungssignale) mit einer bestimmten Frequenz an ihr untergeordnetes Element sendet, um die Ausführung des untergeordneten Elements zu ermöglichen. In einigen Ausführungsformen kann, wenn die Ausführung eines Knotens erlaubt ist, der Knoten den Status „Wird ausgeführt“, „Erfolgreich“ oder „Fehler“ an den übergeordneten Knoten zurückgeben. Ein Kontrollflussknoten kann zur Steuerung der Unteraufgaben verwendet werden, aus denen er besteht. Der Kontrollflussknoten kann entweder ein Fallback- oder Sequenzknoten sein, der jede seiner Unteraufgaben abwechselnd ausführt. Wenn eine Unteraufgabe abgeschlossen ist und einen Status zurückgibt, kann der Kontrollflussknoten entscheiden, ob die nächste Unteraufgabe ausgeführt werden soll. Fallback-Knoten können das erste Kind finden und ausführen, das nicht ausfällt, wobei Kinder in der Reihenfolge ihrer Wichtigkeit angekreuzt werden können. Sequenzknoten können das erste untergeordnete Element finden und ausführen, das noch nicht erfolgreich war. In einigen Ausführungsformen kann der Prozessor des Roboters einen Verhaltensbaum als Drei-Tupel T definierenich={ƒich,Rich,Δt), wobei i∈N der Index des Baums ist, ƒich:RN→RNist ein Vektorfeld, das die rechte Seite einer gewöhnlichen Differenzengleichung darstellt, Δt ist ein Zeitschritt und rich:RN→{Rich,Sich,Fich} ist der Rückgabestatus, der entweder dem Ausführen von R entsprechen kannich, Erfolg Sich, oder Fehler Fich. In einigen Ausführungsformen kann der Prozessor gewöhnliche Differenzengleichungen x implementierenk+t(Tk+1)=ƒich(Xk(Tk)) mit tk+1=tk+Δt, wobei k∈N die diskrete Zeit und x∈R darstelltNist der Zustandsraum des modellierten Systems, um den Verhaltensbaum auszuführen. In einigen Ausführungsformen verwendet der Prozessor einen Fallback-Operator, um einen komplexeren Verhaltensbaum T zu erstellen0aus zwei Verhaltensbäumen Tichund TJ, wobei T0=Fallback(Tich,TJ). Der Rückgabestatus r0und das Vektorfeld ƒ0verbunden mit T0kann durch r definiert werden0(Xk)={rJ(Xk) wenn xk∈F1Rich(Xk) ansonsten und ƒ0(Xk)={ƒJ(Xk) wenn xk∈F1ƒich(Xk) ansonsten. In einigen Ausführungsformen verwendet der Prozessor einen Sequenzoperator, um einen komplexeren Verhaltensbaum T zu erstellen0aus zwei Verhaltensbäumen Tichund TJ, wobei T0=Sequenz(Tich,TJ). Der Rückgabestatus r0und das Vektorfeld ƒ0verbunden mit T0kann durch r definiert werden0(Xk)={rJ(Xk) wenn xk∈S1Rich(Xk) ansonsten und ƒ0(Xk)={ƒJ(Xk) wenn xk∈S1ƒich(Xk) ansonsten.

In einigen Ausführungsformen kann ein Thread, eine Aufgabe oder ein Interrupt konfiguriert werden, um einen GPIO-Pin, PIO-Pin, PWM-Pin und Timer-Pin zu steuern, der mit einem IR-LED-Sender verbunden ist, der für die Beleuchtung eines Empfängers sorgen kann, der eine einzelne IR-Mehrwegreflexion erwartet der IR-LED von einer Oberfläche (z. B. Boden) fernhalten. In einigen Ausführungsformen kann ein TSOP- oder TSSP-Sensor verwendet werden. In einigen Ausführungsformen kann die Ausgabe des Sensors digital sein. In einigen Ausführungsformen kann der Erfassungsbereich des Sensors durch Ändern der Frequenz innerhalb des empfindlichen Bandbreitenbereichs oder des Arbeitszyklus gesteuert werden. In einigen Ausführungsformen kann ein TSOP-Sensor im Hinblick auf die Energieeffizienz von Vorteil sein. Zum Beispiel,FEIGE.125Enthält drei Tabellen mit der für einen TSOP-Sensor und einen generischen IR-Sensor unter drei verschiedenen Testbedingungen gemessenen Spannung. In einigen Ausführungsformen können eine While-Schleife oder andere Arten von Schleifen so konfiguriert sein, dass sie mit jedem Takt als kontinuierlicher Thread iterieren. In einigen Ausführungsformen kann das Fehlen einer Reflexion einen Zähler setzen, um einen letzten Wert um Eins zu erhöhen. In einigen Ausführungsformen kann der Zähler beim Empfang einer nächsten Reflexion zurückgesetzt werden. In einigen Ausführungsformen kann ein neuer Thread mit einer höheren Priorität den laufenden Thread überholen, wenn ein Wert des Zählers einen bestimmten Schwellenwert erreicht. In einigen Ausführungsformen kann ein Thread andere Pins steuern und PWM-Fähigkeiten bereitstellen, um den IR-Sender mit einem Arbeitszyklus von 50 % (oder mit 10 %, 70 %, 100 % oder einem anderen prozentualen Arbeitszyklus) zu betreiben, um die durchschnittliche Intensität oder das zu steuern IR-Emission. In einigen Ausführungsformen reagiert der Empfänger möglicherweise nur auf eine bestimmte Frequenz (z. B. reagieren TSOP-Sensoren am häufigsten auf eine Frequenz von 38 kHz). In einigen Ausführungsformen kann der Empfänger zusätzlich zum Vorhandensein oder Nichtvorhandensein von Licht auch die Anzahl der Impulse (oder deren Fehlen) zählen. In einigen Ausführungsformen können andere Methoden zum Modulieren von Codewörtern oder Signalen über verschiedene Medien verwendet werden. In manchen Fällen müssen Codewörter direktional und schnell übertragen werden, was bei aktuellen Technologien zu hohen Kosten führen kann. Beispiele für Medien, die außer IR verwendet werden können, umfassen andere Lichtspektren, HF unter Verwendung gerichteter und ungerichteter Antennen, akustische Medien unter Verwendung gerichteter, stark gerichteter und ungerichteter Antennen, Mikrofone, Ultraschall usw. In einigen Ausführungsformen Zusätzlich oder in Kombination oder anstelle von PWM können andere Modulationsverfahren wie Amplitudenmodulation (AM) oder Frequenzmodulation (FM) verwendet werden.

In einigen Ausführungsformen können Spiegelreflexion, Oberflächenmaterial, Winkel der Oberflächennormalen, Zerlegung und Intensität des Umgebungslichts, der Sättigungspunkt des Siliziumchips auf dem Empfänger usw. eine Rolle dabei spielen, wie und ob ein Empfänger eine Lichtreflexion empfängt. In einigen Ausführungsformen kann auch das Übersprechen zwischen Sensoren einen Einfluss haben. In einigen Ausführungsformen kann die dedizierte Zuweisung eines Zeitschlitzes an jeden Empfänger als Lösung dienen. In einigen Ausführungsformen kann die Intensität des Senders mit der Geschwindigkeit des Roboters erhöht werden, um bei höheren Geschwindigkeiten weiter beobachten zu können. In verschiedenen Umgebungen können unterschiedliche Sensoren oder Sensoreinstellungen verwendet werden. Bei einigen Verhaltensrobotern kann eine Entscheidung auf der Grundlage des bloßen Fehlens einer Reflexion oder des Vorhandenseins einer Reflexion getroffen werden. In einigen Ausführungsformen kann das Zählen eines Zählers auf einen bestimmten Wert den Zustand einer Zustandsmaschine oder eines Verhaltensbaums ändern oder eine Iterationsschleife unterbrechen. In einigen Ausführungsformen kann dies als eine deterministische Funktion beschrieben werden, wobei Zustandsübergang = ƒ(˜Rezeption der Reflexion) ist. In anderen Ausführungsformen gilt Zustandsübergang = ƒ (Zähler + 1 > x). In einigen Ausführungsformen kann ein probabilistisches Verfahren verwendet werden, bei dem Zustandsübergang = P(Beobachtung

In einigen Ausführungsformen können IR-Sensoren unterschiedliche Wellenlängen verwenden, um Übersprechen zu vermeiden. In einigen Ausführungsformen kann der Prozessor ein Objekt basierend auf der Reflexion von Licht von einer bestimmten Oberflächentextur oder einem bestimmten Oberflächenmaterial bestimmen, da Licht von verschiedenen Texturen oder Materialien für unterschiedliche Wellenlängen unterschiedlich reflektiert wird. In einigen Ausführungsformen kann der Prozessor dies verwenden, um Haustiere, Menschen, Haustierabfälle, Flüssigkeiten, Pflanzen, Gase (z. B. Kohlenmonoxid) usw. zu erkennen.

In einigen Ausführungsformen können Informationen aus dem Speicher des Roboters an die Cloud gesendet werden. In einigen Ausführungsformen kann die Erlaubnis des Benutzers angefordert werden, bevor Informationen an die Cloud gesendet werden. In einigen Ausführungsformen können Informationen vor dem Senden komprimiert werden. In einigen Ausführungsformen können Informationen vor dem Senden verschlüsselt werden.

In einigen Ausführungsformen kann Speicherschutz für Hardware verwendet werden. Sichere Mechanismen sind beispielsweise beim Senden und Empfangen von Geodaten in und aus der Cloud unerlässlich, da Datenschutz und Vertraulichkeit von größter Bedeutung sind. In Ausführungsformen werden Informationen nicht an unbefugte Personen, Gruppen, Prozesse oder Geräte weitergegeben. In Ausführungsformen werden streng vertrauliche Daten verschlüsselt, so dass Dritte die Daten möglicherweise nicht einfach entschlüsseln können. In Verkörperungen ist ein Identitätswechsel unmöglich. Beispielsweise ist es einem Dritten nicht möglich, eine nicht authentische Karte oder Daten anstelle der echten Karte oder Daten einzufügen. In Ausführungsformen beginnt die Sicherheit auf der Datenerfassungsebene. In einigen Ausführungsformen sind die verarbeiteten Informationen für Dritte nicht zugänglich. In Ausführungsformen sind ausführbarer Code (z. B. SLAM-Code, Abdeckungscode usw.) und die Karte (und alle zugehörigen Informationen) nicht von einem gespeicherten Ort (z. B. Flash oder NVRAM oder einem anderen Speicher) abrufbar und sind versiegelt und gesichert. In einigen Ausführungsformen können Verschlüsselungsmechanismen verwendet werden. In Ausführungsformen ist die Erlaubnis des Benutzers erforderlich, wenn die gesamte Karte oder ein Teil davon an die Cloud gesendet wird. In Ausführungsformen wird die Erlaubnis des Benutzers aufgezeichnet und für zukünftige Referenzen gespeichert. In Ausführungsformen besteht die Methode zum Einholen der Erlaubnis des Benutzers darin, dass ein Dritter, einschließlich des Herstellers, keine Erlaubnis im Namen des Benutzers herstellen kann. In einigen Ausführungsformen kann ein Übertragungskanal verschlüsselt sein, um zu verhindern, dass Dritte die Klartextkommunikation abhören und in eine räumliche Darstellung eines Zuhauses des Benutzers übersetzen. Beispielsweise kann Software wie Wireshark in der Lage sein, Klartext zu lesen, wenn sie an einen Heimrouter angeschlossen ist, und andere Software kann verwendet werden, um die Datennutzlast in räumlichen Formaten darzustellen. In Ausführungsformen müssen Daten in der Cloud sicher bleiben. In einigen Ausführungsformen darf nur eine autorisierte Partei die verschlüsselten Informationen entschlüsseln. In einigen Ausführungsformen können Daten entweder mit symmetrischen oder asymmetrischen Methoden oder mit Hashing verschlüsselt werden. Einige Ausführungsformen können einen geheimen Schlüssel oder einen öffentlich-privaten Schlüssel verwenden. In einigen Ausführungsformen kann der Roboter Datenverbindungsprotokolle verwenden, um eine Verbindung innerhalb eines LAN herzustellen, oder Benutzer-IP-Schichtprotokolle mit IPV4- oder IPV6-Adressen für Kommunikationszwecke. In einigen Ausführungsformen kann die Kommunikation verbindungsbasiert (z. B. TCP) oder verbindungslos (z. B. UDP) erfolgen. Für zeitkritische Informationen kann UDP verwendet werden. Für Kommunikation, die einen Empfang auf der anderen Seite erfordert, kann TCP verwendet werden. In einigen Ausführungsformen können andere Verschlüsselungs-Frameworks wie IPsec und L2TP verwendet werden.

In einigen Ausführungsformen können Informationen vom Benutzer als akzeptabel markiert und als geschützt festgelegt werden. In einigen Ausführungsformen kann der Benutzer eine Schutzeinstellung der Informationen auf „ungeschützt“ ändern. In einigen Ausführungsformen ist der Prozessor des Roboters nicht in der Lage, die Schutzeinstellung der Informationen zu ändern. Um Situationen zu vermeiden, in denen die Karte beschädigt wird oder die Lokalisierung beeinträchtigt wird, können die ACID-Regeln (Atomicity, Consistency, Isolation, and Durability) beachtet werden. In einigen Fällen kann Atomizität auftreten, wenn ein Datenpunkt nicht mit einem vorherigen Datenpunkt übereinstimmt und die Karte beschädigt. In einigen Fällen kann eine Reihe von Einschränkungen oder Regeln verwendet werden, um die Konsistenz der Karte sicherzustellen. Beispielsweise muss nach der Ausführung einer Aktion oder Steuerung von einem konsistenten Anfangszustand aus ein nächster Zustand garantiert werden, um einen konsistenten Zustand zu erreichen. Dies negiert jedoch nicht das Problem der entführten Roboter. In einem solchen Fall kann davon ausgegangen werden, dass eine Steuerung, die als Aufheben des Roboters definiert ist, eine konsistente Aktion hervorruft. Ebenso kann ein Beschleunigungsmesser einen plötzlichen Stoß erkennen. Dies selbst kann eine Aktion zum Definieren einer Regel sein, die die Konsistenz der Informationen gewährleisten kann. Diese Beobachtungen können auf allen Implementierungsebenen einbezogen und in Datenerfassungssubsystemen, Datenaggregationssubsystemen, Schedulern oder Subsystemen auf Algorithmusebene verwendet werden. In einigen Ausführungsformen können gegenseitige Ausschlusstechniken verwendet werden, um die Datenkonsistenz sicherzustellen. In einigen Ausführungsformen kann das Inlining kleiner Funktionen verwendet werden, um die Leistung zu optimieren.

FEIGE.126veranschaulicht ein Beispiel der Subsysteme des hier beschriebenen Roboters, wobei globale und lokale Zuordnungen bei der Lokalisierung des Roboters verwendet werden können und umgekehrt, globale und lokale Zuordnungen bei der Kartenfüllung verwendet werden können und Kartenfüllungen bei der Bestimmung von Zelleigenschaften verwendet werden können Die Karten- und Zelleigenschaften können zum Einrichten von Zonen, zum Erstellen von Unterzonen und zum Bewerten der Durchquerbarkeit verwendet werden, und Unterzonen und Durchquerbarkeit können für die polymorphe Pfadplanung verwendet werden.

Die hierin beschriebenen Methoden und Techniken können mit verschiedenen Arten von Robotern verwendet werden, wie z. B. einem Oberflächenreinigungsroboter (z. B. Wischmopp, Staubsauger, Druckreiniger, Dampfreiniger usw.), einem Roboterrouter, einem Roboter für die Lieferung von Gegenständen oder Lebensmitteln usw Restaurant-Server-Roboter, ein Erste-Hilfe-Roboter, ein Roboter für den Personentransport, ein Roboter-Ladegerät, ein Bild- und Videoaufzeichnungsroboter, eine Roboter-Kehrmaschine für den Außenbereich, ein Roboter-Mäher, ein Roboter-Schneepflug, ein Salz- oder Sandstreuroboter, ein Multimedia-Roboter , ein Roboter-Kochgerät, ein Autowaschroboter, ein Roboter-Krankenhausbett und dergleichen.

FEIGE.127zeigt ein Beispiel eines Roboters12700mit Prozessor12701, Speicher12702, ein erster Satz Sensoren12703, zweiter Satz Sensoren12704, Netzwerk-Kommunikation12705, Bewegungstreiber12706, Signalempfänger12707und ein oder mehrere Werkzeuge12708. In einigen Ausführungsformen kann der Roboter die Merkmale eines hier beschriebenen Roboters umfassen. In einigen Ausführungsformen wird Programmcode im Speicher gespeichert12702und vom Prozessor ausgeführt12701kann die hier beschriebenen Vorgänge bewirken. Einige Ausführungsformen umfassen zusätzlich ein Benutzerkommunikationsgerät12709einen Touchscreen haben12710mit einer an den Roboter gekoppelten Softwareanwendung12700, wie etwa das in der US-Patentanmeldung Ser. Nr. 15/272.752, 15/949.708 und 16/277.991, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. Beispielsweise kann die Anwendung verwendet werden, um dem Roboter Anweisungen zu geben, etwa Tage und Zeiten für die Ausführung bestimmter Funktionen und die Bereiche, in denen bestimmte Funktionen ausgeführt werden sollen. Beispiele für Planungsmethoden sind in der US-Patentanmeldung Seriennr. Nr. 16/051.328 und 15/449.660, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In anderen Fällen kann die Anwendung von einem Benutzer verwendet werden, um die Karte der Umgebung zu ändern, indem er beispielsweise Umfänge und Hindernisse anpasst und Unterbereiche innerhalb der Karte erstellt. Einige Ausführungsformen umfassen eine Lade- oder Dockingstation112711.

In einigen Ausführungsformen können Daten zwischen dem Prozessor des Roboters und einer Anwendung des Kommunikationsgeräts unter Verwendung eines oder mehrerer drahtloser Kommunikationskanäle wie drahtloser Wi-Fi- oder Bluetooth-Verbindungen gesendet werden. In einigen Fällen kann die Kommunikation über eine in der Cloud gehostete Remote-Anwendung weitergeleitet werden, die zwischen dem Roboter und dem Kommunikationsgerät vermittelt, z. B. durch Bereitstellung einer Anwendungsprogrammschnittstelle, über die das Kommunikationsgerät auf frühere Karten des Roboters zugreift. In einigen Ausführungsformen können der Prozessor des Roboters und die Anwendung des Kommunikationsgeräts gepaart werden, bevor Daten untereinander hin- und hergesendet werden. In einigen Fällen kann das Pairing den Austausch eines privaten Schlüssels in einem symmetrischen Verschlüsselungsprotokoll umfassen, und der Austausch kann mit dem Schlüssel verschlüsselt werden.

In einigen Ausführungsformen kann der Prozessor des Roboters die Karte der Umgebung an die Anwendung eines Kommunikationsgeräts übertragen (z. B. damit ein Benutzer darauf zugreifen und sie anzeigen kann). In einigen Ausführungsformen kann auf die Karte der Umgebung über die Anwendung eines Kommunikationsgeräts zugegriffen und auf einem Bildschirm des Kommunikationsgeräts, z. B. auf einem Touchscreen, angezeigt werden. In einigen Ausführungsformen kann der Prozessor des Roboters die Karte der Umgebung in verschiedenen Phasen der Fertigstellung der Karte oder nach der Fertigstellung an die Anwendung senden. In einigen Ausführungsformen kann die Anwendung eine Vielzahl von Eingaben empfangen, die Befehle über eine Benutzeroberfläche der Anwendung (z. B. einer nativen Anwendung) angeben, die auf dem Bildschirm des Kommunikationsgeräts angezeigt wird. Beispiele für grafische Benutzeroberflächen sind in der US-Patentanmeldung Ser. Nr. 15/272.752 und 15/949.708, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. Einige Ausführungsformen können dem Benutzer die Karte in einer speziellen Software, einer Webanwendung oder dergleichen präsentieren. In einigen Ausführungsformen kann die Benutzeroberfläche Eingaben umfassen, durch die der Benutzer die auf dem Bildschirm angezeigten Kartenumfänge anpasst oder korrigiert oder eine oder mehrere der verschiedenen Optionen mit dem Finger oder durch die Bereitstellung mündlicher Anweisungen auf die Umrisslinie anwendet, oder in einigen Ausführungsformen Ein Eingabegerät wie ein Cursor, ein Zeiger, ein Stift, eine Maus, eine oder mehrere Tasten oder andere Eingabemethoden können als Benutzeroberflächenelement dienen, über das Eingaben empfangen werden. In einigen Ausführungsformen können dem Benutzer nach Auswahl der gesamten oder eines Teils einer Umfangslinie verschiedene Optionen zur Verfügung gestellt werden, wie etwa Löschen, Trimmen, Drehen, Verlängern, Verkürzen, Neuzeichnen, Verschieben (in vier oder mehr Richtungen), Spiegeln oder Krümmen der ausgewählten Umfangslinie. In einigen Ausführungsformen präsentiert die Benutzeroberfläche Zeichenwerkzeuge, die über die Anwendung des Kommunikationsgeräts verfügbar sind. In einigen Ausführungsformen kann eine Benutzeroberfläche Befehle empfangen, um Anpassungen an den Einstellungen des Roboters und seiner Strukturen oder Komponenten vorzunehmen. In einigen Ausführungsformen sendet die Anwendung des Kommunikationsgeräts die aktualisierte Karte und die Einstellungen über einen drahtlosen Kommunikationskanal wie Wi-Fi oder Bluetooth an den Prozessor des Roboters.

In einigen Ausführungsformen kann die vom Prozessor des Roboters (oder einem oder mehreren entfernten Prozessoren) erstellte Karte Fehler enthalten, unvollständig sein oder möglicherweise nicht die Bereiche der Umgebung widerspiegeln, die der Benutzer vom Roboter bedienen möchte. Durch die Bereitstellung einer Schnittstelle, über die der Benutzer die Karte anpassen kann, erhalten einige Ausführungsformen zusätzliche oder genauere Informationen über die Umgebung, wodurch die Fähigkeit des Roboters verbessert wird, durch die Umgebung zu navigieren oder auf andere Weise auf eine Weise zu arbeiten, die besser mit der Absicht des Benutzers übereinstimmt . Über eine solche Schnittstelle kann der Benutzer beispielsweise die Grenzen der Karte in Bereichen erweitern, in denen die tatsächlichen Grenzen weiter entfernt sind als die von den Sensoren des Roboters identifizierten, Grenzen kürzen, wenn Sensoren Grenzen weiter als die tatsächlichen Grenzen erkannt haben, oder den Standort anpassen von Türen. Oder der Benutzer kann virtuelle Grenzen erstellen, die einen Raum für unterschiedliche Behandlungen segmentieren oder die der Roboter nicht durchqueren wird. In einigen Fällen, in denen der Prozessor eine genaue Karte der Umgebung erstellt, kann der Benutzer die Kartengrenzen anpassen, um zu verhindern, dass der Roboter bestimmte Bereiche betritt.

FEIGE.128Azeigt eine Draufsicht auf eine Umgebung22300. Diese Ansicht zeigt die tatsächlichen Hindernisse der Umgebung mit Außenlinie22301die die Wände der Umgebung darstellen22300und das Rechteck22302ein Möbelstück darstellt.FEIGE.128Bzeigt eine Draufsicht auf eine zweidimensionale Karte22303der Umwelt22300erstellt von einem Prozessor des Roboters unter Verwendung von Umgebungsdaten, die von Sensoren gesammelt werden. Da die Methoden zur Generierung der Karte nicht 100 % genau sind, handelt es sich um eine zweidimensionale Karte22303ist ungefähr und daher kann die Leistung des Roboters beeinträchtigt werden, da sich seine Navigation und Operationen in der Umgebung auf die Karte beziehen22303. Um die Genauigkeit der Karte zu verbessern22303kann ein Benutzer die Umfangslinien der Karte über eine Benutzeroberfläche beispielsweise einer Anwendung eines Kommunikationsgeräts korrigieren, um sie an die tatsächlichen Hindernisse anzupassen.FEIGE.128Cveranschaulicht eine Draufsicht einer vom Benutzer angepassten zweidimensionalen Karte22304. Durch Ändern der Umfangslinien der Karte22303(gezeigt inFEIGE.128B), die vom Prozessor des Roboters erstellt wird, ermöglicht es einem Benutzer, eine zweidimensionale Karte zu erstellen22304der Umwelt22300(gezeigt inFEIGE.128A), das Hindernisse und Grenzen in der Umgebung genau identifiziert. In diesem Beispiel erstellt der Benutzer auch Bereiche22305,22306, Und22307innerhalb der zweidimensionalen Karte22304und wendet über die Benutzeroberfläche bestimmte Einstellungen auf sie an. Durch die Abgrenzung eines Teils22305der Karte22304, kann der Benutzer Einstellungen für den Bereich auswählen22305unabhängig von allen anderen Bereichen. Bei einem Oberflächenreinigungsroboter wählt der Benutzer beispielsweise den Bereich22305und wählt für diesen Bereich die wöchentliche Reinigung anstelle der täglichen oder Standardreinigung aus. Auf ähnliche Weise wählt der Benutzer einen Bereich aus22306und schaltet eine Wischfunktion für diesen Bereich ein. Der verbleibende Bereich22307wird standardmäßig behandelt. Zusätzlich zum Anpassen der Umfangslinien der zweidimensionalen Karte22304, kann der Benutzer überall Grenzen erstellen, unabhängig davon, ob in der Umgebung ein tatsächlicher Perimeter vorhanden ist. Im gezeigten Beispiel die Begrenzungslinie in der Ecke308wurde neu gezeichnet, um den Bereich in der Nähe der Ecke auszuschließen. Der Roboter vermeidet somit das Betreten dieses Bereichs. Dies kann nützlich sein, um den Roboter von bestimmten Bereichen fernzuhalten, z. B. Bereichen mit zerbrechlichen Gegenständen, Haustieren, Kabeln oder Leitungen usw.

FIG.129A und129BVeranschaulichen Sie ein Beispiel für die Änderung der Umfangslinien einer Karte basierend auf Benutzereingaben über eine grafische Benutzeroberfläche, z. B. auf einem Touchscreen.FEIGE.129Azeigt eine Draufsicht auf eine Umgebung22400. Diese Ansicht zeigt die tatsächlichen Hindernisse der Umgebung22400. Die äußere Linie22401stellt die Wände der Umgebung dar22400und das Rechteck22402stellt ein Möbelstück dar. Kommerzielle Anwendungsfälle werden voraussichtlich wesentlich komplexer sein, z. B. mit mehr als 2, 5 oder 10 Hindernissen, in einigen Fällen, deren Position im Laufe der Zeit variiert.FEIGE.129Bzeigt eine Draufsicht auf eine zweidimensionale Karte22410der Umwelt22400erstellt von einem Prozessor eines Roboters unter Verwendung von Umgebungssensordaten. Da die Methoden zur Generierung der Karte oft nicht 100 % genau sind, ist die zweidimensionale Karte22410kann ungefähr sein. In einigen Fällen kann die Leistung des Roboters aufgrund von Unvollkommenheiten in der generierten Karte beeinträchtigt werden22410. In einigen Ausführungsformen korrigiert ein Benutzer die Umfangslinien der Karte22410um den tatsächlichen Hindernissen und Grenzen der Umgebung gerecht zu werden22400. In einigen Ausführungsformen wird dem Benutzer eine Benutzeroberfläche präsentiert, auf der die Karte angezeigt wird22410der Umwelt22400Hier kann der Benutzer Umfangslinien der Karte hinzufügen, löschen und/oder anderweitig anpassen22410. Beispielsweise kann der Prozessor des Roboters die Karte senden22410auf eine Anwendung eines Kommunikationsgeräts, wobei Benutzereingaben, die Anpassungen an der Karte angeben, über eine Benutzerschnittstelle der Anwendung empfangen werden. Die Eingabe löst einen Ereignishandler aus, der eine Routine startet, mit der eine Umfangslinie der Karte als Reaktion auf die Benutzereingabe hinzugefügt, gelöscht und/oder anderweitig angepasst wird, und eine aktualisierte Version der Karte kann vor der Übertragung im Speicher gespeichert werden zurück zum Prozessor des Roboters. Zum Beispiel in der Karte22410, korrigiert der Benutzer die Umfangslinie manuell22416durch Zeichnen einer Linie22418und Löschen der Begrenzungslinie22416in der Benutzeroberfläche. In einigen Fällen können durch Benutzereingaben zum Hinzufügen einer Linie Endpunkte der hinzugefügten Linie oder ein einzelner Punkt und eine Steigung angegeben werden. Einige Ausführungsformen können die durch Eingaben spezifizierte Linie so ändern, dass sie an wahrscheinlich vorgesehenen Stellen „einrastet“. Beispielsweise können Eingaben von Linienendpunkten vom Prozessor so angepasst werden, dass sie einer nächstgelegenen vorhandenen Linie der Karte entsprechen. Oder einer durch eine Steigung und einen Punkt angegebenen Linie können Endpunkte hinzugefügt werden, indem der nächstgelegene Schnittpunkt relativ zum Punkt der Linie mit der vorhandenen Karte ermittelt wird. In einigen Fällen kann der Benutzer auch manuell angeben, dass ein Teil der Karte anstelle der hinzugefügten Linie entfernt werden soll, z. B. indem er die Linie separat angibt22418und Bezeichnen eines krummlinigen Segments22416zum Entfernen. Oder einige Ausführungsformen können ein Segment programmgesteuert auswählen22416zur Entfernung als Reaktion auf die Benutzereingaben bezeichnende Leitung22418, z. B. als Reaktion auf die Bestimmung dieser Bereiche22416Und22418begrenzte Bereiche, die kleiner als eine Schwellengröße sind, oder indem diese Linie bestimmt wird22416wird auf beiden Seiten durch Bereiche der Karte begrenzt, die als Teil der Umgebung ausgewiesen sind.

In einigen Ausführungsformen schlägt die Anwendung einen Korrekturumfang vor. Beispielsweise können Ausführungsformen durch eine Brute-Force-Suche ein am besten passendes Polygon eines Umfangs der (gemessenen) Karte bestimmen, oder einige Ausführungsformen können einen korrigierenden Umfang mit einer Hough-Transformation, dem Ramer-Douglas-Peucker-Algorithmus oder dem Visvalingam-Algorithmus vorschlagen oder ein anderer Zeilenvereinfachungsalgorithmus. Einige Ausführungsformen können Kandidatenvorschläge ermitteln, die keine vorhandene Linie ersetzen, sondern vielmehr vorhandene Segmente verbinden, die derzeit nicht verbunden sind. Beispielsweise können einige Ausführungsformen einen paarweisen Vergleich der Entfernungen zwischen Endpunkten vorhandener Liniensegmente durchführen und vorschlagen, diejenigen zu verbinden, deren Entfernungen kleiner als ein Schwellenwert sind Abstand voneinander. Einige Ausführungsformen können aus einem Satz in Frage kommender Zeilenvereinfachungen diejenigen auswählen, deren Länge über einem Schwellenwert liegt, oder solche mit einer über einem Schwellenwert liegenden Rangfolge entsprechend der Zeilenlänge für die Präsentation. In einigen Ausführungsformen können präsentierte Kandidaten mit Ereignishandlern in der Benutzeroberfläche verknüpft sein, die bewirken, dass die ausgewählten Kandidaten auf die Karte angewendet werden. In einigen Fällen können solche Kandidaten im Speicher den von ihnen vereinfachten Liniensegmenten zugeordnet werden, und die zugehörigen vereinfachten Liniensegmente können automatisch entfernt werden, wenn der Ereignishandler ein dem Kandidaten entsprechendes Berührungseingabeereignis empfängt. Zum Beispiel in der Karte22410In einigen Ausführungsformen schlägt die Anwendung eine Korrektur der Umfangslinie vor22412durch Anzeige von Korrekturvorschlägen22414. Der Benutzer akzeptiert die korrigierte Umfangslinie22414Dadurch wird die Begrenzungslinie ersetzt und gelöscht22412durch Bereitstellung von Eingaben für die Benutzeroberfläche. In einigen Fällen, in denen die Begrenzungslinien unvollständig sind oder Lücken aufweisen, schlägt die Anwendung deren Vervollständigung vor. Beispielsweise schlägt die Anwendung vor, die Lücke zu schließen22420in der Umfangslinie22422. Vorschläge können vom Roboter, der auf dem Kommunikationsgerät ausgeführten Anwendung oder anderen Diensten, wie einem cloudbasierten Dienst oder einem Computergerät in einer Basisstation, ermittelt werden.

In Ausführungsformen können Umfangslinien auf verschiedene Weise bearbeitet werden, beispielsweise durch Hinzufügen, Löschen, Trimmen, Drehen, Verlängern, Neuzeichnen, Verschieben (z. B. nach oben, unten, links oder rechts), Vorschlagen einer Korrektur usw Vorschlagen einer Vervollständigung der gesamten oder eines Teils der Begrenzungslinie. In einigen Ausführungsformen kann die Anwendung eine Hinzufügung, Löschung oder Änderung einer Begrenzungslinie vorschlagen, und in anderen Ausführungsformen kann der Benutzer die Begrenzungslinien manuell anpassen, beispielsweise durch Verlängern, Verkürzen, Krümmen, Trimmen, Drehen, Verschieben, Spiegeln usw. die mit dem Finger oder den Tasten oder einem Cursor des Kommunikationsgeräts oder durch andere Eingabemethoden ausgewählte Begrenzungslinie. In einigen Ausführungsformen kann der Benutzer die gesamte oder einen Teil der Umfangslinie löschen und die gesamte oder einen Teil der Umfangslinie mit Zeichenwerkzeugen neu zeichnen, z. B. einem Zeichenwerkzeug für gerade Linien, einem Bezier-Werkzeug, einem Freihand-Zeichenwerkzeug usw wie. In einigen Ausführungsformen kann der Benutzer Umfangslinien hinzufügen, indem er neue Umfangslinien zeichnet. In einigen Ausführungsformen kann die Anwendung unwahrscheinliche Grenzen identifizieren, die vom Benutzer mithilfe der Benutzeroberfläche erstellt wurden (neu hinzugefügt oder durch Änderung eines vorherigen Umfangs). In einigen Ausführungsformen kann die Anwendung ein oder mehrere unwahrscheinliche Umfangssegmente identifizieren, indem sie ein oder mehrere Umfangssegmente erkennt, die in einem ungewöhnlichen Winkel ausgerichtet sind (z. B. weniger als 25 Grad relativ zu einem benachbarten Segment oder einem anderen Schwellenwert) oder ein oder mehrere Umfangssegmente umfassen eine unwahrscheinliche Kontur eines Umfangs (z. B. kurze Umfangssegmente, die in Zick-Zack-Form verbunden sind). In einigen Ausführungsformen kann die Anwendung ein unwahrscheinliches Umfangssegment identifizieren, indem sie den Oberflächenbereich bestimmt, der von drei oder mehr verbundenen Umfangssegmenten umschlossen wird, wobei eines das neu erstellte Umfangssegment ist, und kann das Umfangssegment als unwahrscheinliches Umfangssegment identifizieren, wenn die Oberfläche kleiner ist als ein vorgegebener (oder dynamisch festgelegter) Schwellenwert. In einigen Ausführungsformen können andere Methoden zum Identifizieren unwahrscheinlicher Umfangssegmente innerhalb der Karte verwendet werden. In einigen Ausführungsformen kann die Benutzeroberfläche über die Benutzeroberfläche eine Warnmeldung anzeigen, die darauf hinweist, dass ein Umfangssegment wahrscheinlich falsch ist. In einigen Ausführungsformen kann der Benutzer die Warnmeldung ignorieren oder mit einer Korrektur des Umfangssegments über die Benutzeroberfläche reagieren.

In einigen Ausführungsformen kann die Anwendung autonom eine Korrektur der Umfangslinien vorschlagen, indem sie beispielsweise eine Abweichung in einer geraden Umfangslinie identifiziert und eine Linie vorschlägt, die am besten zu den Bereichen der Umfangslinie auf beiden Seiten der Abweichung passt (z. B. durch Anpassen). eine Linie zu den Bereichen der Umfangslinie auf beiden Seiten der Abweichung). In anderen Ausführungsformen kann die Anwendung eine Korrektur der Umfangslinien vorschlagen, indem sie beispielsweise eine Lücke in einer Umfangslinie identifiziert und eine Linie vorschlägt, die am besten zu den Bereichen der Umfangslinie auf beiden Seiten der Lücke passt. In einigen Ausführungsformen identifiziert die Anwendung möglicherweise einen Endpunkt einer Linie und den nächstgelegenen Endpunkt einer Linie und schlägt vor, diese zu verbinden, um eine Umfangslinie zu vervollständigen. In einigen Ausführungsformen schlägt die Anwendung möglicherweise nur dann vor, zwei Endpunkte zweier unterschiedlicher Linien zu verbinden, wenn der Abstand zwischen den beiden unter einem bestimmten Schwellenwertabstand liegt. In einigen Ausführungsformen kann die Anwendung vorschlagen, eine Umfangslinie durch Drehen oder Verschieben eines Teils der Umfangslinie, der als abweichend identifiziert wurde, so zu korrigieren, dass der angepasste Teil der Umfangslinie an Teile der Umfangslinie angrenzt und mit diesen auf einer Linie liegt Seite. Beispielsweise wird ein Teil einer Umfangslinie nach oben oder unten verschoben oder gedreht, sodass er mit den Teilen der Umfangslinie auf beiden Seiten übereinstimmt. In einigen Ausführungsformen kann der Benutzer Vorschläge, die von der Anwendung bereitgestellt werden, manuell über die Benutzeroberfläche annehmen, indem er beispielsweise den Bildschirm berührt, eine Taste drückt oder auf einen Cursor klickt. In einigen Ausführungsformen kann die Anwendung einige oder alle der vorgeschlagenen Änderungen automatisch vornehmen.

In einigen Ausführungsformen können Karten in Vektorgrafikform oder mit Einheitskacheln, wie in einer Bitmap, dargestellt werden. In einigen Fällen können Änderungen darin bestehen, dass Einheitenkacheln über eine Benutzeroberfläche festgelegt werden, um sie der Karte hinzuzufügen oder von der Karte zu entfernen. In einigen Ausführungsformen können Bitmap-Darstellungen beispielsweise mit einer zweidimensionalen Faltung, die so konfiguriert ist, dass Kanten von kartierten Umgebungsbereichen geglättet werden (z. B. durch Anwenden einer Gaußschen Faltung auf eine Bitmap mit Kacheln mit Werten), modifiziert werden (oder mögliche Änderungen können bestimmt werden). von 1, wenn die Umgebung vorhanden ist, und 0, wenn die Umgebung nicht vorhanden ist, und es wird vorgeschlagen, Einheitenkacheln hinzuzufügen, deren resultierende Punktzahl über einem Schwellenwert liegt. In einigen Fällen kann die Bitmap gedreht werden, um das Koordinatensystem an Wänden eines im Allgemeinen rechteckigen Raums auszurichten, z. B. in einem Winkel, in dem diagonale Kantensegmente ein aggregiertes Minimum aufweisen. Einige Ausführungsformen können dann eine ähnliche eindimensionale Faltung und Schwellenwertbildung entlang der Achsenrichtungen der Kachelung anwenden, jedoch mit einem längeren Schritt als die zweidimensionale Faltung, um die Vervollständigung wahrscheinlich verbleibender Wandsegmente vorzuschlagen.

In einigen Ausführungsformen kann der Benutzer über die Benutzeroberfläche (die ein einzelner Bildschirm oder eine Folge von Anzeigen sein kann, die sich im Laufe der Zeit entfalten) verschiedene Bereiche innerhalb der Umgebung erstellen. In einigen Ausführungsformen kann der Benutzer Bereiche innerhalb der auf dem Bildschirm angezeigten Karte der Umgebung auswählen, indem er seinen Finger verwendet oder mündliche Anweisungen gibt, oder in einigen Ausführungsformen ein Eingabegerät, wie etwa einen Cursor, einen Zeiger, einen Stift, eine Maus, eine oder mehrere Tasten oder andere Eingabemethoden. Einige Ausführungsformen können Audioeingaben empfangen, die Audiodaten mithilfe eines Sprache-zu-Text-Modells in Text umwandeln und den Text dann erkannten Befehlen zuordnen. In einigen Ausführungsformen kann der Benutzer mithilfe der Benutzeroberfläche der Anwendung verschiedene Bereiche der Umgebung kennzeichnen. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche verwenden, um einen Bereich beliebiger Größe (z. B. kann der ausgewählte Bereich einen kleinen Teil der Umgebung umfassen oder könnte die gesamte Umgebung umfassen) oder Zone innerhalb einer auf einem Bildschirm angezeigten Karte auszuwählen Kommunikationsgerät und die gewünschten Einstellungen für den ausgewählten Bereich. In einigen Ausführungsformen wählt ein Benutzer beispielsweise Folgendes aus: Reinigungsmodi, Reinigungshäufigkeit, Reinigungsintensität, Leistungsstufe, Navigationsmethoden, Fahrgeschwindigkeit usw. Die vom Benutzer getroffenen Auswahlen werden an einen Prozessor des Roboters gesendet und Der Prozessor des Roboters verarbeitet die empfangenen Daten und übernimmt die Benutzeränderungen.

In einigen Ausführungsformen kann der Benutzer mithilfe der Benutzeroberfläche unterschiedliche Einstellungen, wie z. B. Werkzeug-, Reinigungs- und Planungseinstellungen, für verschiedene Bereiche der Umgebung auswählen. In einigen Ausführungsformen unterteilt der Prozessor die Umgebung autonom in verschiedene Bereiche und in einigen Fällen kann der Benutzer die vom Prozessor erstellten Bereiche der Umgebung mithilfe der Benutzeroberfläche anpassen. Beispiele für Methoden zur Aufteilung einer Umgebung in verschiedene Bereiche und zur Auswahl von Einstellungen für verschiedene Bereiche sind in der US-Patentanmeldung Seriennr. Nr. 14/817.952, 16/198.393 und 15/619.449, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In einigen Ausführungsformen kann der Benutzer mithilfe der Benutzeroberfläche der Anwendung Werkzeugeinstellungen des Roboters anpassen oder auswählen und mit der Anpassung Bereiche festlegen, in denen das Werkzeug angewendet werden soll. Beispiele für Werkzeuge eines Oberflächenreinigungsroboters sind ein Saugwerkzeug (z. B. ein Staubsauger), ein Wischwerkzeug (z. B. ein Mopp), ein Kehrwerkzeug (z. B. eine rotierende Bürste), ein Hauptbürstenwerkzeug, ein Seitenbürstenwerkzeug, und ein ultraviolettes (UV) Licht, das Bakterien abtöten kann. Werkzeugeinstellungen, die der Benutzer über die Benutzeroberfläche anpassen kann, können das Aktivieren oder Deaktivieren verschiedener Werkzeuge, die Geschwindigkeit oder Leistung des Laufradmotors für die Saugsteuerung, die Geschwindigkeit der Flüssigkeitsabgabe für die Wischsteuerung, die Geschwindigkeit des Bürstenmotors für die Saugsteuerung und die Geschwindigkeit des Kehrmaschinenmotors für die Kehrsteuerung umfassen. In einigen Ausführungsformen kann der Benutzer unterschiedliche Werkzeugeinstellungen für verschiedene Bereiche innerhalb der Umgebung auswählen oder bestimmte Werkzeugeinstellungen zu bestimmten Zeiten über die Benutzeroberfläche planen. Beispielsweise wählt der Benutzer aus, dass er den Sauger nur mittwochs um 12 Uhr in der Küche und im Badezimmer aktivieren soll. In einigen Ausführungsformen kann der Benutzer die Roboterreinigungseinstellungen über die Benutzeroberfläche anpassen oder auswählen. Zu den Roboterreinigungseinstellungen können unter anderem Robotergeschwindigkeitseinstellungen, Bewegungsmustereinstellungen, Reinigungshäufigkeitseinstellungen, Reinigungszeitplaneinstellungen usw. gehören. In einigen Ausführungsformen kann der Benutzer unterschiedliche Roboterreinigungseinstellungen für verschiedene Bereiche innerhalb der Umgebung wählen oder kann Planen Sie über die Benutzeroberfläche bestimmte Roboterreinigungseinstellungen zu bestimmten Zeiten. Beispielsweise wählt der Benutzer die Bereiche A und B der Umgebung aus, die mit dem Roboter mit hoher Geschwindigkeit in einem Boustrophedon-Muster am Mittwochmittag jeder Woche gereinigt werden sollen, und die Bereiche C und D der Umgebung, die mit dem Roboter gereinigt werden sollen niedrige Geschwindigkeit, spiralförmig, montags und freitags um neun Uhr morgens, alle zwei Wochen. Zusätzlich zu den Robotereinstellungen der Bereiche A, B, C und D der Umgebung wählt der Benutzer auch Werkzeugeinstellungen über die Benutzeroberfläche aus. In einigen Ausführungsformen kann der Benutzer mithilfe der Benutzeroberfläche die Reihenfolge des Abdeckens oder Bedienens der Bereiche der Umgebung auswählen. In einigen Ausführungsformen kann der Benutzer mithilfe der Benutzeroberfläche Bereiche auswählen, die ausgeschlossen werden sollen. In einigen Ausführungsformen kann der Benutzer mithilfe der Benutzeroberfläche einen Abdeckungspfad des Roboters anpassen oder erstellen. Beispielsweise kann der Benutzer einen ausgewählten Abschnitt des Abdeckungspfads hinzufügen, löschen, zuschneiden, drehen, verlängern, neu zeichnen, verschieben (in alle vier Richtungen), umdrehen oder ihn krümmen. In einigen Ausführungsformen kann der Benutzer den vom Prozessor erstellten Pfad über die Benutzeroberfläche anpassen. In einigen Ausführungsformen kann der Benutzer über die Benutzeroberfläche einen Bereich der Karte auswählen und bestimmte Werkzeug- und/oder Betriebseinstellungen auf den Bereich anwenden. In anderen Ausführungsformen kann der Benutzer einen Bereich der Umgebung aus einer Dropdown-Liste oder einer anderen Methode zur Anzeige verschiedener Bereiche der Umgebung auswählen.

Verweise auf Operationen, die auf „einer Karte“ ausgeführt werden, können Operationen umfassen, die auf verschiedenen Darstellungen der Karte ausgeführt werden. Beispielsweise kann der Roboter eine Darstellung einer Karte mit relativ hoher Auflösung im Speicher speichern und eine Darstellung der Karte mit niedrigerer Auflösung kann zur Bearbeitung an ein Kommunikationsgerät gesendet werden. In diesem Szenario erfolgen die Änderungen immer noch an der „Karte“, ungeachtet von Änderungen im Format, in der Auflösung oder in der Kodierung. In ähnlicher Weise wird eine Karte im Speicher des Roboters gespeichert, obwohl nur ein Teil der Karte an das Kommunikationsgerät gesendet werden kann und Bearbeitungen an diesem Teil der Karte immer noch ordnungsgemäß als Bearbeitungen an „der Karte“ und als Erhalt dieses Teils verstanden werden wird richtigerweise als Erhalt „der Karte“ verstanden. Es kann davon ausgegangen werden, dass Karten von einem Roboter bezogen werden, unabhängig davon, ob die Karten über eine direkte drahtlose Verbindung zwischen dem Roboter und einem Kommunikationsgerät oder indirekt über einen Cloud-Dienst bezogen werden. Ebenso kann davon ausgegangen werden, dass eine geänderte Karte an den Roboter gesendet wurde, selbst wenn nur ein Teil der geänderten Karte, z. B. ein Delta einer früheren Version, die derzeit auf dem Roboter gespeichert ist, gesendet wird.

In einigen Ausführungsformen kann die Benutzeroberfläche eine Karte darstellen, z. B. auf einem Touchscreen, und Bereiche der Karte (z. B. entsprechend Räumen oder anderen Unterteilungen der Umgebung, z. B. Sammlungen zusammenhängender Einheitenkacheln in einer Bitmap-Darstellung) im Pixelraum der Anzeige können Event-Handlern zugeordnet werden, die verschiedene Routinen starten, die auf Ereignisse wie ein On-Touch-Ereignis, ein Touch-Release-Ereignis oder dergleichen reagieren. In einigen Fällen kann die Benutzeroberfläche dem Benutzer vor oder nach dem Empfang eines solchen Berührungsereignisses eine Reihe von Benutzeroberflächenelementen präsentieren, mit denen der Benutzer Ausführungsformen anweisen kann, verschiedene Befehle auf den Bereich anzuwenden. Oder in manchen Fällen können die Bereiche einer Arbeitsumgebung in der Benutzeroberfläche dargestellt werden, ohne auch ihre räumlichen Eigenschaften darzustellen, z. B. als Raster von Optionen, ohne ihre relative Größe oder Position zu vermitteln. Beispiele für Befehle, die über die Benutzeroberfläche angegeben werden, können das Zuweisen eines Betriebsmodus zu einem Bereich sein, z. B. ein Reinigungsmodus oder ein Mähmodus. Modi können verschiedene Formen annehmen. Beispiele können Modi sein, die angeben, wie ein Roboter eine Funktion ausführt, etwa Modi, die auswählen, welche Werkzeuge angewendet werden sollen, und die Einstellungen dieser Werkzeuge. Andere Beispiele können Modi sein, die Zielergebnisse vorgeben, z. B. ein „starker Reinigungsmodus“ im Vergleich zu einem „leichter Reinigungsmodus“, ein leiser vs. lauter Modus oder ein langsamer vs. schneller Modus. In einigen Fällen können solche Modi außerdem mit geplanten Zeiten verknüpft sein, zu denen der dem Modus unterliegende Vorgang im zugehörigen Bereich ausgeführt werden soll. In einigen Ausführungsformen kann ein bestimmter Bereich mit mehreren Modi gekennzeichnet sein, z. B. einem Staubsaugenmodus und einem Ruhemodus. In einigen Fällen können Modi nominale Eigenschaften, ordinale Eigenschaften oder Kardinaleigenschaften sein, z. B. ein Staubsaugmodus, ein Modus für die stärkste Reinigung bzw. ein Staubsaugmodus mit 10/Sekunden/Linearfuß. Weitere Beispiele für Befehle, die über die Benutzeroberfläche angegeben werden, können Befehle sein, die planen, wann Betriebsmodi auf Bereiche angewendet werden sollen. Eine solche Planung kann die Planung umfassen, wann die Reinigung erfolgen soll oder wann die Reinigung unter Verwendung eines vorgesehenen Modus erfolgen soll. Die Planung kann die Festlegung einer Häufigkeit, Phase und eines Arbeitszyklus der Reinigung umfassen, z. B. wöchentlich, am Montag um 16 Uhr für 45 Minuten. Die Planung kann in manchen Fällen die Festlegung einer bedingten Planung umfassen, z. B. die Festlegung von Kriterien, nach denen Betriebsmodi angewendet werden sollen. Beispiele können Ereignisse sein, bei denen von einem Bewegungssensor des Roboters oder einer Basisstation über einen bestimmten Zeitraum hinweg keine Bewegung erkannt wird, oder Ereignisse, bei denen eine Drittanbieter-API (die abgefragt wird oder Ereignisse ausgibt) darauf hinweist Es sind bestimmte Wetterereignisse wie Regen aufgetreten. In einigen Fällen kann die Benutzeroberfläche Eingaben offenlegen, anhand derer der Benutzer solche Kriterien zusammenstellen kann, z. B. mit booleschen Konnektoren, zum Beispiel „Wenn es 45 Minuten lang keine Bewegung gibt und es regnet, dann wenden Sie den Vakuummodus im Bereich an.“ mit der Aufschrift „Küche“.

In einigen Ausführungsformen kann die Benutzeroberfläche Informationen über einen aktuellen Zustand des Roboters oder frühere Zustände des Roboters oder seiner Umgebung anzeigen. Beispiele können eine Wärmekarte von Schmutz oder Ablagerungen sein, die in einem Bereich erfasst wurde, visuelle Hinweise auf Klassifizierungen von Bodenoberflächen in verschiedenen Bereichen der Karte, visuelle Hinweise auf einen Weg, den der Roboter während einer aktuellen Reinigungssitzung oder einer anderen Art von Arbeitssitzung eingeschlagen hat , visuelle Hinweise auf einen Pfad, dem der Roboter derzeit folgt und den er berechnet hat, um weitere Bewegungen in der Zukunft zu planen, und visuelle Hinweise auf einen Pfad, den der Roboter zwischen zwei Punkten in der Umgebung genommen hat, beispielsweise zwischen einem Punkt A und einem Punkt B auf verschiedenen Seiten eines Raumes oder eines Hauses im Punkt-zu-Punkt-Durchlaufmodus. In einigen Ausführungsformen kann der Roboter, während oder nachdem ein Roboter diese verschiedenen Zustände erreicht, Informationen über die Zustände über ein drahtloses Netzwerk an die Anwendung melden, und die Anwendung kann die Benutzeroberfläche auf dem Kommunikationsgerät aktualisieren, um die aktualisierten Informationen anzuzeigen. Beispielsweise kann in manchen Fällen ein Prozessor eines Roboters melden, welche Bereiche der Arbeitsumgebung während einer aktuellen Arbeitssitzung abgedeckt wurden, beispielsweise in einem Datenstrom an die Anwendung, die auf dem Kommunikationsgerät ausgeführt wird, die über WebRTC-Daten gebildet wird Verbindung oder mit regelmäßigen Abfragen durch die Anwendung, und die auf dem Computergerät ausgeführte Anwendung kann die Benutzeroberfläche aktualisieren, um anzuzeigen, welche Bereiche der Arbeitsumgebung abgedeckt wurden. In einigen Fällen kann dies das Darstellen einer Linie eines vom Roboter verfolgten Pfads oder das Anpassen eines visuellen Attributs von Bereichen oder Teilen von Bereichen umfassen, die abgedeckt wurden, wie z. B. Farbe oder Schatten oder Bereiche oder Grenzen. In einigen Ausführungsformen können die visuellen Attribute basierend auf Attributen der Umgebung, die der Roboter erfasst hat, variiert werden, wie z. B. einer Schmutzmenge oder einer Klassifizierung eines Bodenbelagstyps seit dem Roboter. In einigen Ausführungsformen kann ein visueller Kilometerzähler, der mit einer nach unten gerichteten Kamera implementiert ist, Bilder des Bodens erfassen und diese Bilder des Bodens oder eines Segments davon können an die Anwendung übertragen werden, um sie als Textur in der visuellen Darstellung der Arbeiten anzuwenden B. mit einer Karte, die die entsprechende Farbe von Teppichen, Holzbodentexturen, Fliesen oder Ähnlichem maßstabsgetreu für die verschiedenen Bereiche der Arbeitsumgebung darstellt.

In einigen Ausführungsformen kann die Benutzeroberfläche in der Karte einen Pfad anzeigen, den der Roboter zwischen zwei Punkten nehmen wird (z. B. gemäß einem Routing-Algorithmus), um ein Gebiet abzudecken oder eine andere Aufgabe auszuführen. Beispielsweise kann eine Route als eine Reihe von Liniensegmenten oder Kurven dargestellt werden, die auf der Karte überlagert sind, und einige Ausführungsformen können einen aktuellen Standort des Roboters mit einem Symbol anzeigen, das einem der Liniensegmente mit einer animierten Sequenz überlagert ist, die den Roboter darstellt sich entlang der Liniensegmente bewegen. In einigen Ausführungsformen können die zukünftigen Bewegungen des Roboters oder andere Aktivitäten des Roboters in der Benutzeroberfläche dargestellt werden. Beispielsweise kann die Benutzeroberfläche anzeigen, welchen Raum oder anderen Bereich der Roboter gerade abdeckt und welchen Raum oder anderen Bereich der Roboter als nächstes in einem aktuellen Arbeitsablauf abdecken wird. Der Zustand solcher Bereiche kann durch ein eindeutiges visuelles Attribut des Bereichs, seine Textbeschriftung oder seinen Umfang, wie Farbe, Schattierung, blinkende Umrisse und dergleichen, angezeigt werden. In einigen Ausführungsformen kann eine Sequenz, mit der der Roboter derzeit so programmiert ist, dass er verschiedene Bereiche abdeckt, visuell mit einem Kontinuum solcher visuellen Attribute angezeigt werden, die beispielsweise über das Spektrum von Rot bis Blau (oder Dunkelgrau bis Hell) reichen und die Sequenz anzeigen welche weiteren Bereiche abgedeckt werden sollen.

In einigen Ausführungsformen kann über die Benutzeroberfläche oder automatisch ohne Benutzereingabe ein Start- und ein Endpunkt für einen vom Roboter abzufahrenden Pfad auf der Benutzeroberfläche der auf dem Kommunikationsgerät ausgeführten Anwendung angegeben werden. Einige Ausführungsformen können diese Punkte darstellen und verschiedene Routen zwischen ihnen vorschlagen, beispielsweise mit verschiedenen Routing-Algorithmen, wie sie in den durch Bezugnahme hierin aufgenommenen Anwendungen beschrieben sind. Beispiele hierfür sind A*, der Dijkstra-Algorithmus und dergleichen. In einigen Ausführungsformen können mehrere alternative Kandidatenrouten angezeigt werden (und verschiedene Metriken davon, wie Reisezeit oder Entfernung), und die Benutzeroberfläche kann Eingaben (wie etwa auf Pixelbereiche abgebildete Ereignishandler) umfassen, aus denen ein Benutzer auswählen kann Diese Kandidatenrouten können durch Berühren oder anderweitiges Auswählen eines Segments einer der Kandidatenrouten aufgerufen werden, was dazu führen kann, dass die Anwendung Anweisungen an den Roboter sendet, die den Roboter veranlassen, die ausgewählte Kandidatenroute zu durchlaufen.

In einigen Ausführungsformen kann die vom Prozessor des Roboters während der Durchquerung der Arbeitsumgebung erstellte Karte verschiedene Artefakte wie die hier beschriebenen aufweisen. Mithilfe von Techniken wie Linienvereinfachungsalgorithmen und Faltungsglättung und -filterung können einige Ausführungsformen Unordnung aus der Karte entfernen, z. B. Artefakte aus Reflexionen oder kleine Objekte wie Stuhlbeine, um die Karte zu vereinfachen, oder eine Version davon in niedrigerer Auflösung zur Darstellung auf einem Benutzeroberfläche der vom Kommunikationsgerät ausgeführten Anwendung. In einigen Fällen kann dies das Entfernen doppelter Ränder umfassen, beispielsweise durch das Erkennen von Randsegmenten, die auf zwei Seiten von Bereichen der Arbeitsumgebung umgeben sind, und das Entfernen dieser Segmente.

Bei einigen Ausführungsformen kann die Karte zur Anzeige auf der Benutzeroberfläche gedreht und skaliert werden. In einigen Ausführungsformen kann die Karte basierend auf einer Fenstergröße so skaliert werden, dass eine größte Abmessung der Karte in einer bestimmten horizontalen oder vertikalen Richtung kleiner ist als eine größte Abmessung im Pixelraum der Fenstergröße des Kommunikationsgeräts oder eines Fensters davon in dem die Benutzeroberflächen angezeigt werden. Oder in einigen Ausführungsformen kann die Karte auf eine minimale oder maximale Größe skaliert werden, z. B. im Hinblick auf ein Verhältnis von Metern physischer Fläche zu Pixeln im Anzeigeraum. Einige Ausführungsformen können Zoom- und Schwenkeingaben in der Benutzeroberfläche umfassen, mit denen ein Benutzer die Karte vergrößern und verkleinern, die Skalierung anpassen und schwenken kann, um zu verschieben, welcher Teil der Karte in der Benutzeroberfläche angezeigt wird.

In einigen Ausführungsformen kann die Drehung der Karte oder von Teilen davon (z. B. Umfangslinien) mit Techniken wie den oben beschriebenen bestimmt werden, durch die eine Ausrichtung minimiert wird, die ein Ausmaß an Aliasing oder diagonalen Pixellinien an Rändern minimiert. Oder Grenzen können gestreckt oder gedreht werden, um Endpunkte zu verbinden, von denen festgestellt wurde, dass sie innerhalb eines Schwellenwertabstands liegen. In einigen Ausführungsformen kann eine optimale Ausrichtung über einen Bereich möglicher Drehungen bestimmt werden, der darauf beschränkt ist, eine längste Abmessung der Karte an einer längsten Abmessung des Fensters der Anwendung im Kommunikationsgerät auszurichten. Oder in einigen Ausführungsformen kann die Anwendung einen Kompass des Kommunikationsgeräts abfragen, um eine Ausrichtung des Kommunikationsgeräts relativ zum magnetischen Nordpol zu bestimmen und die Karte in der Benutzeroberfläche so auszurichten, dass der magnetische Nordpol auf der Karte, wie angezeigt, mit dem magnetischen Nordpol ausgerichtet ist vom Kommunikationsgerät erfasst. In einigen Ausführungsformen kann der Roboter einen Kompass enthalten und Orte auf der Karte entsprechend der magnetischen Nordrichtung markieren.

In einigen Ausführungsformen kann die Karte Informationen wie Trümmeransammlungen in verschiedenen Bereichen, in verschiedenen Bereichen angetroffene Staus, Hindernisse, Fahrbahntyp, Fahrbahnübergänge, Abdeckungsbereich, Roboterpfad usw. enthalten. In einigen Ausführungsformen kann der Benutzer Benutzer verwenden Schnittstelle der Anwendung zum Anpassen der Karte durch Hinzufügen, Löschen oder Ändern von Informationen (z. B. Hindernissen) innerhalb der Karte. Beispielsweise kann der Benutzer mithilfe der Benutzeroberfläche Informationen zur Karte hinzufügen, wie z. B. Ansammlung von Trümmern in verschiedenen Bereichen, in verschiedenen Bereichen angetroffene Staus, Hindernisse, Art der Fahroberfläche, Übergänge der Fahroberfläche usw.

In einigen Ausführungsformen kann der Benutzer mithilfe der Benutzeroberfläche der Anwendung Bereiche auswählen, in denen der Roboter arbeiten soll, sowie Aktionen des Roboters. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche verwenden, um einen Zeitplan für die Durchführung einer Aktion in einem ausgewählten Bereich auszuwählen. In einigen Ausführungsformen kann der Benutzer mithilfe der Anwendung Einstellungen des Roboters und seiner Komponenten auswählen. Einige Ausführungsformen können die Verwendung der Benutzerschnittstelle zum Einstellen eines Reinigungsmodus des Roboters umfassen. In einigen Ausführungsformen kann das Festlegen eines Reinigungsmodus beispielsweise das Festlegen einer Servicebedingung, eines Servicetyps, eines Serviceparameters, eines Serviceplans oder einer Servicehäufigkeit für alle oder verschiedene Bereiche der Umgebung umfassen. Eine Servicebedingung kann angeben, ob ein Bereich bedient werden soll oder nicht, und Ausführungsformen können basierend auf einer spezifizierten Servicebedingung im Speicher bestimmen, ob ein Bereich bedient werden soll. Ein regulärer Servicezustand zeigt also an, dass der Bereich gemäß Serviceparametern wie den unten beschriebenen gewartet werden muss. Im Gegensatz dazu kann die Bedingung „kein Service“ bedeuten, dass der Bereich vom Service (z. B. Reinigung) ausgeschlossen werden soll. Ein Servicetyp kann angeben, welche Art von Reinigung durchgeführt werden soll. Beispielsweise kann eine harte (z. B. nicht saugfähige) Oberfläche einen Wischdienst erhalten (oder einen Staubsaugen-Dienst, gefolgt von einem Wisch-Dienst in einer Servicesequenz), während ein Teppich-Dienst einen Staubsaugen-Dienst erhalten kann. Zu den weiteren Dienstleistungen können ein UV-Licht-Anwendungsservice und ein Kehrservice gehören. Ein Serviceparameter kann verschiedene Einstellungen für den Roboter angeben. In einigen Ausführungsformen können Serviceparameter einen Parameter für die Geschwindigkeit oder Leistung des Laufrads, einen Parameter für die Radgeschwindigkeit, einen Parameter für die Bürstengeschwindigkeit, einen Parameter für die Geschwindigkeit der Kehrmaschine, einen Parameter für die Geschwindigkeit der Flüssigkeitsabgabe, einen Parameter für die Fahrgeschwindigkeit und einen Fahrgeschwindigkeitsparameter umfassen, sind jedoch nicht darauf beschränkt Richtungsparameter, ein Bewegungsmusterparameter, ein Reinigungsintensitätsparameter und ein Timerparameter. Eine beliebige Anzahl anderer Parameter kann verwendet werden, ohne von den hierin offenbarten Ausführungsformen abzuweichen, was nicht bedeuten soll, dass andere Beschreibungen einschränkend sind. Ein Serviceplan kann den Tag und in manchen Fällen auch die Uhrzeit für die Wartung eines Bereichs angeben. Beispielsweise kann der Roboter so eingestellt werden, dass er am Mittwochmittag einen bestimmten Bereich bedient. In einigen Fällen kann der Zeitplan so eingestellt sein, dass er wiederholt wird. Eine Servicehäufigkeit kann angeben, wie oft ein Bereich gewartet werden muss. In Ausführungsformen können Diensthäufigkeitsparameter stündliche Häufigkeit, tägliche Häufigkeit, wöchentliche Häufigkeit und Standardhäufigkeit umfassen. Ein Servicehäufigkeitsparameter kann nützlich sein, wenn ein Bereich häufig genutzt wird oder umgekehrt, wenn ein Bereich nur wenig genutzt wird. Durch Festlegen der Frequenz kann eine effizientere Überlastung der Umgebungen erreicht werden. In einigen Ausführungsformen kann der Roboter Bereiche der Umgebung gemäß den Reinigungsmoduseinstellungen reinigen.

In einigen Ausführungsformen kann der Prozessor des Roboters die Reinigungsmoduseinstellungen basierend auf gesammelten Sensordaten bestimmen oder ändern. Beispielsweise kann der Prozessor einen Servicetyp eines Bereichs von Wischen auf Staubsaugen ändern, wenn anhand von Sensordaten ein Teppichboden erkannt wird (z. B. als Reaktion auf die Erkennung eines Anstiegs des Stroms, der von einem Motor gezogen wird, der die Räder des Roboters antreibt, oder als Reaktion auf a optischer Odometriesensor, der einen anderen Bodenbelagstyp anzeigt). In einem weiteren Beispiel kann der Prozessor den Betriebszustand eines Bereichs von „Kein Betrieb“ in „Betrieb“ ändern, nachdem er eine Ansammlung von Schmutz in dem Bereich über einem Schwellenwert erkannt hat. Beispiele für Methoden für einen Prozessor, um Einstellungen (z. B. Geschwindigkeit) von Komponenten eines Roboters (z. B. Laufradmotor, Radmotor usw.) basierend auf Umgebungsmerkmalen (z. B. Bodentyp, Raumtyp, Schmutzansammlung usw.) autonom anzupassen. ) sind in der US-Patentanmeldung Ser. Nr. 16/163.530 und 16/239.410, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird. In einigen Ausführungsformen kann der Benutzer die vom Prozessor gewählten Einstellungen über die Benutzeroberfläche anpassen. In einigen Ausführungsformen kann der Prozessor die Reinigungsmoduseinstellungen und/oder den Reinigungspfad ändern, sodass die für die Reinigung erforderlichen Ressourcen während der Reinigungssitzung nicht erschöpft werden. In einigen Fällen kann der Prozessor einen Bin-Packing-Algorithmus oder einen gleichwertigen Algorithmus verwenden, um angesichts der begrenzten Menge an verbleibenden Ressourcen die gereinigte Fläche zu maximieren. In einigen Ausführungsformen kann der Prozessor Sensordaten der Umgebung analysieren, bevor er einen Diensttyp ausführt, um zu bestätigen, dass die Umgebungsbedingungen für den auszuführenden Diensttyp akzeptabel sind. Beispielsweise analysiert der Prozessor Bodensensordaten, um den Bodentyp zu bestätigen, bevor er einen bestimmten Servicetyp bereitstellt. In einigen Fällen, in denen der Prozessor ein Problem in den vom Benutzer gewählten Einstellungen erkennt, kann der Prozessor eine Nachricht senden, die der Benutzer über die Benutzeroberfläche abruft. In anderen Fällen kann sich die Meldung auf die Reinigung oder die Karte beziehen. Beispielsweise kann die Nachricht darauf hinweisen, dass in einem Bereich ohne Wartungszustand eine hohe Schmutzansammlung (z. B. gemessen über einem vorgegebenen oder dynamisch bestimmten Schwellenwert) vorliegt und daher gewartet werden sollte, oder dass ein Bereich mit einem Wischdiensttyp gefunden wurde Es war mit Teppich ausgelegt und daher wurde nicht gewischt. In einigen Ausführungsformen kann der Benutzer eine Warnmeldung überschreiben, bevor der Roboter eine Aktion ausführt. In einigen Ausführungsformen können Einstellungen für den bedingten Reinigungsmodus über eine Benutzerschnittstelle festgelegt werden und werden dem Prozessor des Roboters über einen drahtlosen Kommunikationskanal bereitgestellt. Beim Erkennen einer erfüllten Bedingung kann der Prozessor bestimmte Reinigungsmoduseinstellungen implementieren (z. B. Erhöhen der Drehzahl des Laufradmotors, wenn eine Staubansammlung über einen bestimmten Schwellenwert hinaus erkannt wird, oder Aktivieren des Wischens, wenn ein Mangel an Bewegung erkannt wird). In einigen Ausführungsformen können bedingte Reinigungsmoduseinstellungen voreingestellt oder vom Prozessor des Roboters autonom ausgewählt werden.

In einigen Ausführungsformen kann der Prozessor des Roboters Informationen von externen Quellen beziehen, beispielsweise von anderen intelligenten Geräten im Haus. Beispielsweise kann der Prozessor Daten von einer externen Quelle erfassen, die Aufschluss über die Tageszeiten geben, zu denen ein Benutzer wahrscheinlich nicht zu Hause ist, und das Haus während dieser Zeiten reinigen. Informationen können beispielsweise von anderen Sensoren im Haus, Smart-Home-Geräten, Standortdiensten auf einem Smartphone des Benutzers oder erfassten Aktivitäten im Haus erhalten werden.

In einigen Ausführungsformen kann der Benutzer mithilfe der Anwendung einen Fragebogen beantworten, um allgemeine Präferenzen des Benutzers zu ermitteln. In einigen Ausführungsformen kann der Benutzer den Fragebogen beantworten, bevor er andere Informationen bereitstellt.

In einigen Ausführungsformen kann eine Benutzeroberflächenkomponente (z. B. eine virtuelle Benutzeroberflächenkomponente wie ein von einer Anwendung auf einem Touchscreen eines Smartphones angezeigter Schieberegler oder eine mechanische Benutzeroberflächenkomponente wie eine physische Taste) eine Eingabe (z. B. eine Einstellung) empfangen , eine Anpassung der Karte, ein Zeitplan usw.) vom Benutzer. In einigen Ausführungsformen kann die Benutzeroberflächenkomponente dem Benutzer Informationen anzeigen. In einigen Ausführungsformen kann die Benutzerschnittstellenkomponente eine mechanische oder virtuelle Benutzerschnittstellenkomponente umfassen, die auf eine Bewegung (z. B. entlang eines Touchpads) reagiert, um eine Einstellung anzupassen, die auf der Grundlage einer absoluten Position der Benutzerschnittstellenkomponente oder einer Verschiebung davon bestimmt werden kann Benutzeroberflächenkomponente) oder Geste des Benutzers. Beispielsweise kann die Benutzeroberflächenkomponente auf eine Gleitbewegung eines Fingers, einen physischen Stoß in eine Vertikale, Horizontale oder Wölbung der Benutzeroberflächenkomponente reagieren und ein Lächeln hervorrufen (z. B. um die Benutzeroberfläche des Roboters zu entsperren). Drehen eines drehbaren Rings und spiralförmige Bewegung der Finger.

In einigen Ausführungsformen kann der Benutzer die Benutzeroberflächenkomponente verwenden (z. B. physisch, virtuell oder per Geste), um eine Einstellung entlang eines Kontinuums festzulegen oder zwischen diskreten Einstellungen (z. B. niedrig oder hoch) zu wählen. Beispielsweise kann der Benutzer die Geschwindigkeit des Roboters aus einem Kontinuum möglicher Geschwindigkeiten auswählen oder mithilfe einer virtuellen Benutzeroberflächenkomponente eine schnelle, langsame oder mittlere Geschwindigkeit auswählen. In einem anderen Beispiel kann der Benutzer während der UV-Sterilisationsbehandlung eine langsame Geschwindigkeit für den Roboter wählen, damit das UV-Licht pro Oberflächenbereich mehr Zeit für die Sterilisation hat. In einigen Ausführungsformen kann der Benutzer hinein- oder herauszoomen oder einen anderen Mechanismus verwenden, um die Reaktion einer Benutzeroberflächenkomponente anzupassen. Beispielsweise kann der Benutzer durch eine große Bewegung auf dem Bildschirm in einen Bildschirm hineinzoomen, der von einer Anwendung eines Kommunikationsgeräts angezeigt wird, um eine Einstellung des Roboters fein abzustimmen. Oder der Benutzer kann aus dem Bildschirm herauszoomen, um mit einer kleinen Bewegung auf dem Bildschirm oder einer kleinen Geste eine große Anpassung an einer Einstellung vorzunehmen.

In einigen Ausführungsformen kann die Benutzerschnittstellenkomponente eine Taste, ein Tastenfeld, ein Nummernfeld, einen Schalter, ein Mikrofon, eine Kamera, einen Berührungssensor oder andere Sensoren umfassen, die Gesten erkennen können. In einigen Ausführungsformen kann die Benutzeroberflächenkomponente einen drehbaren Kreis, einen drehbaren Ring, einen Klick-und-Dreh-Ring oder eine andere Komponente umfassen, die zum Anpassen einer Einstellung verwendet werden kann. Beispielsweise kann ein Ring im oder gegen den Uhrzeigersinn gedreht, hineingedrückt oder herausgezogen oder angeklickt und gedreht werden, um eine Einstellung anzupassen. In einigen Ausführungsformen kann die Benutzerschnittstellenkomponente ein Licht umfassen, das verwendet wird, um anzuzeigen, dass die Benutzerschnittstelle auf Benutzereingaben reagiert (z. B. ein Licht, das eine Ringkomponente der Benutzerschnittstelle umgibt). In einigen Ausführungsformen kann das Licht gedimmt werden, seine Intensität erhöhen oder seine Farbe ändern, um eine Geschwindigkeit des Roboters, eine Leistung eines Laufradgebläses des Roboters, eine Leistung des Roboters, eine Sprachausgabe und dergleichen anzuzeigen. Beispielsweise kann eine virtuelle Benutzerschnittstellen-Ringkomponente verwendet werden, um Einstellungen mithilfe einer Anwendung eines Kommunikationsgeräts anzupassen, und eine Lichtintensität oder Lichtfarbe oder andere Mittel können verwendet werden, um die Reaktionsfähigkeit der Benutzerschnittstellenkomponente auf die Benutzereingabe anzuzeigen.

In einigen Ausführungsformen kann ein Benutzer über die Anwendung des Kommunikationsgeräts auf einen historischen Bericht früherer Arbeitssitzungen zugreifen. In einigen Ausführungsformen kann der historische Bericht eine Gesamtzahl der Betriebsstunden pro Arbeitssitzung oder historisch gesehen die Gesamtzahl der Ladestunden pro Ladesitzung oder historisch gesehen die Gesamtabdeckung pro Arbeitssitzung oder historisch gesehen eine Karte der Oberflächenabdeckung pro Arbeitssitzung und aufgetretene Probleme enthalten (z. B. Feststecken, Verstrickung usw.) pro Arbeitssitzung oder historisch, Ort der aufgetretenen Probleme (z. B. in einer Karte angezeigt), pro Arbeitssitzung oder historisch, aufgetretene Kollisionen pro Arbeitssitzung oder historisch, historisch erfasste Software- oder Strukturprobleme und Komponenten wurden in der Vergangenheit ersetzt.

In einigen Ausführungsformen kann der Roboter Arbeiten an einem vom Benutzer angegebenen Ort durchführen oder zu einem Gegenstand navigieren oder ihn dorthin transportieren. In einigen Ausführungsformen kann der Benutzer den Roboter anweisen, Arbeiten an einem bestimmten Ort auszuführen, indem er die Benutzeroberfläche der Anwendung eines Kommunikationsgeräts verwendet, das kommunikativ mit dem Prozessor des Roboters gekoppelt ist. Beispielsweise kann ein Benutzer einen Wischroboter anweisen, einen Bereich vor einem Kühlschrank zu säubern, wo Kaffee verschüttet wurde, oder einen Roboterstaubsauger anweisen, einen Bereich vor einem Fernseher zu saugen, wo sich häufig Schmutz ansammelt, oder einen Bereich unter einem Esstisch, an dem es fröhlich ist wurden verschüttet. In einem anderen Beispiel kann ein Roboter angewiesen werden, ein Getränk zu einem Ort vor einer Couch zu transportieren, auf der ein Benutzer sitzt, während er im Wohnzimmer fernsieht. In einigen Ausführungsformen kann der Roboter die Richtung von Schall nutzen, um zu einem Standort des Benutzers zu navigieren. Beispielsweise kann ein Benutzer einen Roboter verbal anweisen, dem Benutzer Medikamente zu bringen, und der Roboter kann zum Benutzer navigieren, indem er einer Richtung der Stimme des Benutzers folgt. In einigen Ausführungsformen umfasst der Roboter mehrere Mikrofone und der Prozessor bestimmt die Richtung einer Stimme, indem er die Signalstärke in jedem der Mikrofone vergleicht. In einigen Ausführungsformen kann der Prozessor Methoden der künstlichen Intelligenz und Bayes'sche Methoden verwenden, um die Quelle einer Stimme zu identifizieren.

In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche der Anwendung verwenden, um den Roboter anzuweisen, sofort mit der Ausführung von Arbeiten (z. B. Staubsaugen oder Wischen) zu beginnen. In einigen Ausführungsformen zeigt die Anwendung den Batteriestand oder den Ladestatus des Roboters an. In einigen Ausführungsformen kann dem Benutzer, der die Anwendung verwendet, die verbleibende Zeit bis zur vollständigen Aufladung oder eine zum Abschluss der verbleibenden Arbeitssitzung erforderliche Aufladung angezeigt werden. In einigen Ausführungsformen kann angezeigt werden, wie viel Arbeit der Roboter leisten kann, wenn der verbleibende Akkustand noch vorhanden ist. In einigen Ausführungsformen kann die verbleibende Zeit bis zum Abschluss einer Aufgabe angezeigt werden. In einigen Ausführungsformen kann die Benutzeroberfläche der Anwendung zum Ansteuern des Roboters verwendet werden. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche der Anwendung verwenden, um den Roboter anzuweisen, alle Bereiche der Karte zu reinigen. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche der Anwendung verwenden, um den Roboter anzuweisen, bestimmte Bereiche innerhalb der Karte entweder sofort oder an einem bestimmten Tag und zu einer bestimmten Uhrzeit zu reinigen. In einigen Ausführungsformen kann der Benutzer einen Zeitplan des Roboters auswählen, einschließlich einer Uhrzeit, eines Tages, einer Häufigkeit (z. B. täglich, wöchentlich, zweiwöchentlich, monatlich oder auf andere Weise anpassbar) und Bereichen, innerhalb derer eine Aufgabe ausgeführt werden soll. In einigen Ausführungsformen kann der Benutzer die Art der Aufgabe auswählen. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche der Anwendung verwenden, um Reinigungspräferenzen auszuwählen, wie z. B. detaillierte oder leise Reinigung, eine Saugleistung, leichte oder gründliche Reinigung und die Anzahl der Durchgänge. Die Reinigungspräferenzen können für verschiedene Bereiche festgelegt oder während der Planung für eine bestimmte Arbeitssitzung ausgewählt werden. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche der Anwendung verwenden, um den Roboter anzuweisen, zum Aufladen zu einer Ladestation zurückzukehren, wenn der Batteriestand während einer Arbeitssitzung niedrig ist, und dann die Aufgabe fortzusetzen. In einigen Ausführungsformen kann der Benutzer mithilfe der Anwendung Verlaufsberichte anzeigen, einschließlich der gesamten Reinigungszeit und der insgesamt abgedeckten Fläche (pro Arbeitssitzung oder historisch), der gesamten Ladezeit pro Sitzung oder historisch, der Anzahl der Behälterleerungen und der Gesamtzahl der Arbeitssitzungen . In einigen Ausführungsformen kann der Benutzer die Anwendung verwenden, um während einer Arbeitssitzung auf der Karte abgedeckte Bereiche anzuzeigen. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche der Anwendung verwenden, um der Karte Informationen wie Bodentyp, Schmutzansammlung, Raumname usw. hinzuzufügen. In einigen Ausführungsformen kann der Benutzer die Anwendung verwenden, um einen aktuellen, vorherigen oder geplanten Weg des Roboters anzuzeigen. In einigen Ausführungsformen kann der Benutzer die Benutzeroberfläche der Anwendung verwenden, um Zonen zu erstellen, indem er der Karte Trennlinien hinzufügt, die die Karte in zwei oder mehr Zonen unterteilen. In einigen Ausführungsformen kann die Anwendung verwendet werden, um einen Status des Roboters anzuzeigen (z. B. im Leerlauf, führt eine Aufgabe aus, lädt usw.). In einigen Ausführungsformen kann eine zentrale Steuerschnittstelle Daten aller Roboter in einer Flotte sammeln und einen Status jedes Roboters in der Flotte anzeigen. In einigen Ausführungsformen kann der Benutzer die Anwendung verwenden, um den Status des Roboters auf „Nicht stören“ zu ändern, wobei verhindert wird, dass der Roboter reinigt oder andere Aktionen durchführt, die den Benutzer stören könnten.

In einigen Ausführungsformen kann die Anwendung die Karte der Umgebung anzeigen und das Vergrößern oder Verkleinern der Karte ermöglichen. In einigen Ausführungsformen kann ein Benutzer mithilfe der Benutzeroberfläche der Anwendung Markierungen zur Karte hinzufügen, die den Roboter anweisen können, eine bestimmte Aktion auszuführen. Beispielsweise kann eine in die Karte eingefügte Flagge auf einen wertvollen Teppich hinweisen. Wenn die Flagge gelöscht wird, wird dem Benutzer möglicherweise eine Liste von Roboteraktionen angezeigt, aus denen er auswählen kann. zur Auswahl. Zu den Aktionen können Folgendes gehören: fernbleiben, von hier aus starten, von hier aus nur an einem bestimmten Tag (z. B. Dienstag) starten. In einigen Ausführungsformen kann die Flagge den Roboter über Eigenschaften eines Bereichs informieren, beispielsweise über die Größe eines Bereichs. In einigen Ausführungsformen können Flags mit einem Namen gekennzeichnet sein. Beispielsweise kann eine erste Flagge vor dem Fernseher beschriftet werden und der Flagge kann ein Merkmal, beispielsweise die Größe des Bereichs, hinzugefügt werden. Dies kann eine detaillierte Steuerung des Roboters ermöglichen. Beispielsweise kann der Roboter durch mündliche Anweisungen an einen Haushaltsassistenten angewiesen werden, den Bereich vor dem Fernseher zu reinigen, oder es kann geplant werden, jeden Morgen mithilfe der Anwendung vor dem Fernseher zu reinigen.

In einigen Ausführungsformen kann die Benutzeroberfläche der Anwendung (oder die Schnittstelle des Roboters oder andere Mittel) verwendet werden, um die Musik anzupassen, die beim Halten eines Anrufs abgespielt wird, sowie Klingeltöne, Nachrichtentöne und Fehlertöne. In einigen Ausführungsformen kann die Anwendung oder der Roboter Audiobearbeitungsanwendungen umfassen, die MP3-Dateien in die erforderliche Größe und das erforderliche Format konvertieren können, sofern der Benutzer über eine Lizenz für die Musik verfügt. In einigen Ausführungsformen kann die Anwendung eines Kommunikationsgeräts (oder Web, TV, Roboterschnittstelle usw.) verwendet werden, um ein Tutorialvideo zum Einrichten eines neuen Roboters abzuspielen. Jeder neue Roboter kann mit einer Mailbox, Datenspeicherplatz usw. ausgestattet sein. In einigen Ausführungsformen kann es Sprachansagen geben, die den Benutzer durch den Einrichtungsprozess führen. In einigen Ausführungsformen kann der Benutzer während der Einrichtung eine Sprache auswählen. In einigen Ausführungsformen kann der Benutzer eine Aufzeichnung des Namens des Roboters einrichten. In einigen Ausführungsformen kann der Benutzer den Roboter mit dem Internet verbinden, um bei Bedarf sofort Unterstützung zu erhalten. In einigen Ausführungsformen kann der Benutzer die Anwendung verwenden, um einen bestimmten Indikatortyp auszuwählen, der verwendet wird, um den Benutzer über neue Anrufe, E-Mails und Video-Chat-Anfragen zu informieren, oder die Indikatoren können standardmäßig eingestellt sein. Eine Anzeige für wartende Nachrichten kann beispielsweise eine LED-Anzeige, ein Ton, eine Geste oder ein auf dem Bildschirm des Roboters abgespieltes Video sein. In einigen Fällen kann es sich bei dem Indikator um eine vom Benutzer festgelegte oder ausgewählte visuelle Benachrichtigung handeln. Beispielsweise kann der Benutzer über einen Anruf eines bestimmten Familienmitglieds durch ein angezeigtes Bild oder einen Avatar dieses Familienmitglieds auf dem Bildschirm des Roboters benachrichtigt werden. In anderen Fällen können andere visuelle Benachrichtigungen eingestellt werden, beispielsweise blinkende Symbole auf einem LCD-Bildschirm (z. B. ein Umschlag oder andere vom Benutzer festgelegte Bilder oder Symbole). In manchen Fällen kann das Drücken oder Tippen auf das visuelle Symbol oder eine Schaltfläche auf/oder neben der Anzeige eine Aktion auslösen (z. B. eine bestimmte Person anrufen und eine Textnachricht oder E-Mail lesen). In einigen Ausführungsformen kann ein Sprachassistent (z. B. in den Roboter integriert oder ein mit dem Roboter gekoppelter externer Assistent) den Benutzer fragen, ob er auf eine Nachricht antworten möchte, die Benutzernachricht abhören und die Nachricht dann an die gewünschte Person senden Empfänger. In einigen Fällen können Indikatoren auf mehreren Geräten oder Anwendungen des Benutzers eingestellt werden (z. B. Mobiltelefon, Telefonanwendungen, Face Time, Skype oder alles, was der Benutzer eingerichtet hat), sodass der Benutzer unabhängig von seiner Nähe eine Benachrichtigung erhalten kann der Roboter. In einigen Ausführungsformen kann die Anwendung zum Einrichten der Nachrichtenweiterleitung verwendet werden, sodass vom Roboter an den Benutzer bereitgestellte Benachrichtigungen an eine Telefonnummer (z. B. Privat, Mobiltelefon usw.), einen SMS-Pager, ein E-Mail-Konto usw. weitergeleitet werden können. Chat-Nachricht usw.

In einigen Ausführungsformen können mehr als ein Roboter und ein Gerät (z. B. ein autonomes Auto, ein Staubsaugerroboter, ein Serviceroboter mit Sprach- und Videofunktionen und andere Geräte wie eine Passagierkabine, intelligente Geräte, ein Fernseher, Heimsteuerungen wie Beleuchtung, Temperatur usw.) verwendet werden ., Tablet, Computer und Heimassistenten) können mit der Anwendung verbunden werden und der Benutzer kann die Anwendung verwenden, um Einstellungen für jeden Roboter und jedes Gerät auszuwählen. In einigen Ausführungsformen kann der Benutzer die Anwendung verwenden, um alle verbundenen Roboter und anderen Geräte anzuzeigen. Die Anwendung kann beispielsweise alle Roboter und Smart-Geräte auf einer Karte eines Hauses oder in einer logischen Darstellung wie einer Liste mit Symbolen und Namen für jeden Roboter und jedes Smart-Gerät anzeigen. Der Benutzer kann jeden Roboter und jedes Smart-Gerät auswählen, um Befehle bereitzustellen und Einstellungen des ausgewählten Geräts zu ändern. Beispielsweise kann ein Benutzer einen intelligenten Kühlschrank auswählen und Einstellungen wie Temperatur- und Benachrichtigungseinstellungen ändern oder den Kühlschrank anweisen, dem Benutzer ein Lebensmittel zu bringen. In einigen Ausführungsformen kann der Benutzer wählen, dass ein Roboter eine Aufgabe ausführt, nachdem ein anderer Roboter eine Aufgabe abgeschlossen hat. In einigen Ausführungsformen kann der Benutzer mithilfe der Anwendung Zeitpläne für beide Roboter auswählen. In einigen Ausführungsformen kann sich der Zeitplan beider Roboter überschneiden (z. B. gleiche Zeit und Tag). In einigen Ausführungsformen kann ein Heimassistent mit der Anwendung verbunden sein. In einigen Ausführungsformen kann der Benutzer dem Roboter über einen Heimassistenten Befehle erteilen, indem er dem Heimassistenten verbal Befehle erteilt, die dann an den Roboter übertragen werden können. Beispiele für Befehle sind die Anweisung an den Roboter, einen bestimmten Bereich zu reinigen, zu einem bestimmten Bereich zu navigieren oder sich einzuschalten und mit der Reinigung zu beginnen. In einigen Ausführungsformen kann sich die Anwendung mit anderen intelligenten Geräten (z. B. intelligenten Geräten wie einem intelligenten Kühlschrank oder einem intelligenten Fernseher) in der Umgebung verbinden und der Benutzer kann über die intelligenten Geräte mit dem Roboter kommunizieren. In einigen Ausführungsformen kann die Anwendung eine Verbindung mit öffentlichen Robotern oder Geräten herstellen. Beispielsweise kann die Anwendung eine Verbindung zu einem öffentlichen Verkaufsautomaten in einem Flughafen herstellen und der Benutzer kann die Anwendung verwenden, um ein Lebensmittel zu kaufen, und den Verkaufsautomaten oder einen Roboter anweisen, das Lebensmittel an einen bestimmten Ort innerhalb des Flughafens zu liefern.

In einigen Ausführungsformen kann der Benutzer gleichzeitig bei mehreren Robotern und anderen Geräten angemeldet sein. In einigen Ausführungsformen erhält der Benutzer Benachrichtigungen, Warnungen, Telefonanrufe, Textnachrichten usw. auf mindestens einem Teil aller Roboter und anderen Geräte, bei denen der Benutzer angemeldet ist. Beispielsweise können ein Mobiltelefon, ein Computer und ein Serviceroboter eines Benutzers klingeln, wenn ein Anruf eingeht. In einigen Ausführungsformen kann der Benutzer für eine beliebige Anzahl von Robotern (oder Geräten) den Status „Bitte nicht stören“ auswählen. Beispielsweise kann der Benutzer die Anwendung auf einem Smartphone verwenden, um alle Roboter und Geräte in den „Bitte nicht stören“-Status zu versetzen. Die Anwendung kann eine Synchronisierungsnachricht an alle Roboter und Geräte senden, die eine Statusänderung in „Bitte nicht stören“ anzeigt, wobei alle Roboter und Geräte davon absehen, Benachrichtigungen an den Benutzer zu senden.

In einigen Ausführungsformen kann die Anwendung die Karte der Umgebung anzeigen und die Karte kann alle angeschlossenen Roboter und Geräte wie Fernseher, Kühlschrank, Waschmaschine, Geschirrspüler, Heizungsbedienfeld, Beleuchtungssteuerung usw. umfassen. In einigen Ausführungsformen kann der Benutzer dies tun Verwenden Sie die Anwendung, um eine anzuzeigende Ansicht auszuwählen. Beispielsweise kann der Benutzer auswählen, dass nur eine Schmutzkarte angezeigt wird, die auf der Grundlage früherer Reinigungen erstellt wurde, eine Luftqualitätskarte für jeden Raum oder eine Karte, die den Status der Lichter angibt, der auf der Grundlage von CAIT ermittelt wurde. Oder in einem anderen Beispiel kann ein Benutzer das Sichtfeld verschiedener Kameras im Haus anzeigen, um nach einem Gegenstand wie Schlüsseln oder einer Brieftasche zu suchen. Oder der Benutzer kann sich dafür entscheiden, eine Artikelsuche durchzuführen, bei der die Anwendung autonom nach dem Artikel in Bildern suchen kann, die im Sichtfeld von Kameras (z. B. von Robotern, die sich innerhalb des Bereichs bewegen, statischen Kameras usw.) in der Umgebung aufgenommen wurden. Oder der Benutzer kann festlegen, dass sich die Suche auf die Suche nach dem Element in Bildern konzentriert, die von einer bestimmten Kamera aufgenommen wurden. Oder der Benutzer kann wählen, dass der Roboter auf der Suche nach dem Gegenstand zu allen Bereichen oder einem bestimmten Bereich (z. B. dem Hauptschlafzimmer) der Umgebung navigiert. Oder der Benutzer kann wählen, dass der Roboter Orte überprüft, von denen der Roboter annimmt, dass sich der Artikel wahrscheinlich in einer Reihenfolge befindet, von der der Roboter glaubt, dass sie dazu führt, dass der Artikel so schnell wie möglich gefunden wird.

In einigen Ausführungsformen kann der Prozessor des Roboters seine räumliche Situation einem entfernten Benutzer mitteilen (z. B. über eine Anwendung eines Kommunikationsgeräts) und der entfernte Benutzer kann Befehle an ein Steuersubsystem des Roboters erteilen, um einen Weg des Roboters zu steuern . In einigen Fällen stimmt die vom Roboter verfolgte Flugbahn möglicherweise nicht genau mit dem vom Benutzer ausgegebenen Befehl und den vom Steuerungssubsystem ausgelösten Aktionen überein. Dies kann auf Bewegungsgeräusche und Beobachtungen zurückzuführen sein. Zum Beispiel,FEIGE.130veranschaulicht einen vom Benutzer bereitgestellten Pfad eines Roboters und die tatsächliche Flugbahn des Roboters. Der neue Standort des Roboters kann dem Benutzer mitgeteilt werden und der Benutzer kann schrittweise Anpassungen vornehmen. In einigen Ausführungsformen erfolgen die Anpassungen und räumlichen Aktualisierungen in Echtzeit. In einigen Ausführungsformen sind die Anpassungen so geringfügig, dass ein Benutzer möglicherweise keinen Unterschied zwischen dem vom Benutzer bereitgestellten Pfad und der tatsächlichen Flugbahn des Roboters erkennen kann. In einigen Ausführungsformen kann der Roboter eine Kamera zum Streamen eines Videos umfassen, auf das der Benutzer zugreifen kann, um die Bewegung des Roboters zu steuern. In einigen Ausführungsformen kann dieselbe Kamera verwendet werden, die für SLAM verwendet wird. In einigen Ausführungsformen ermöglicht Echtzeit-SLAM Echtzeitanpassungen und Echtzeitinteroperation zwischen mehreren Geräten. Das gilt auch für einen fernüberwachten und im Freien gefahrenen Roboter, bei dem ein Fahrer des Roboters an einem entfernten Ort die Umgebung sehen kann, so wie es Sensoren des Roboters tun. Beispielsweise kann ein Lebensmittellieferroboter manuell über einen Joystick oder ein anderes Steuergerät ferngesteuert werden, um sich entlang einer Fußgängerseite einer Straße zu bewegen. SLAM, GPS und eine Kamera zur Erfassung visueller Informationen können in Echtzeit verwendet und synchronisiert werden, um eine optimale Leistung zu erzielen.

In einigen Ausführungsformen können dem Benutzer eine Karte, die Verfahrbarkeit, ein Pfadplan (z. B. Abdeckungsbereich und Boustrophedon-Pfad) und eine Flugbahn des Roboters angezeigt werden (z. B. unter Verwendung einer Anwendung eines Kommunikationsgeräts). In einigen Fällen besteht möglicherweise kein Bedarf oder Wunsch seitens eines Benutzers, räumliche Informationen für ein Oberflächenreinigungsgerät anzuzeigen, das täglich reinigt. In anderen Fällen kann dies jedoch anders sein. Beispielsweise kann im Fall von Augmented Reality oder Virtual Reality, die ein Benutzer erlebt (z. B. über ein Headset oder eine Brille), eine Ebene einer Karte über ein FOV des Benutzers gelegt werden. In manchen Fällen möchte der Benutzer die Umgebung möglicherweise ohne bestimmte Objekte anzeigen. Beispielsweise möchte ein Benutzer für ein virtuelles Zuhause möglicherweise einen Raum ohne verschiedene Möbel und Dekorationen besichtigen. In einem anderen Beispiel kann ein Wegplan auf die Windschutzscheibe eines autonomen Autos gelegt werden, das von einem Benutzer gefahren wird. Der Pfadplan kann dem Benutzer vor seiner Ausführung in Echtzeit angezeigt werden, sodass der Benutzer den Pfadplan anpassen kann.FEIGE.131zeigt einen Benutzer, der hinter einem Lenkrad sitzt13100eines autonomen Autos (was bei einem autonomen Auto möglicherweise nicht notwendig ist, aber gezeigt wird, um den Benutzer in Bezug auf die Umgebung zu demonstrieren) und einen Wegplan13101wird dem Benutzer angezeigt und zeigt mit einem Pfeil einen Plan an, wie das autonome Auto das Auto überholen soll13102vor. Der Benutzer hat möglicherweise die Möglichkeit, den Pfadplan zu akzeptieren, abzulehnen oder zu ändern. Der Benutzer kann zunächst oder nach Abschluss des Spurwechsels oder an einem anderen Punkt eingreifen. Der Wegplan kann auf die Windschutzscheibe eingeblendet werden, indem eine in die Windschutzscheibe integrierte Funktion verwendet wird, die Bilder, Symbole oder Schrift auf das Windschutzscheibenglas (oder Kunststoff oder anderes Material) legen kann. In anderen Fällen können Bilder, Symbole oder Schrift durch ein am Fahrzeug befestigtes Gerät oder ein Gerät, das der Benutzer trägt, auf die transparente Windschutzscheibe (oder andere transparente Oberflächen, z. B. ein Fenster) projiziert werden. In manchen Fällen kann es zu einer Überlagerung von Bildern, Symbolen, Schriften usw. auf einer Oberfläche eines tragbaren Geräts des Benutzers, beispielsweise einer Brille oder eines Headsets, kommen. In einigen Ausführungsformen ist die Oberfläche, auf der die Überlagerung erfolgt, möglicherweise nicht transparent. In einigen Ausführungsformen können Kameras Echtzeitbilder der Umgebung erfassen und die Bilder können dem Benutzer auf einem Bildschirm oder auf andere Weise angezeigt werden. In einigen Ausführungsformen kann der Benutzer Optionen für Objekte haben, die er auf einem Bildschirm oder einer transparenten Oberfläche oder in seinem Sichtfeld überlagern möchte, oder es werden ihnen solche angezeigt. In Fällen der Überlagerung der Realität mit ergänzenden Informationen, Symbolen oder Ähnlichem kann eine gleichzeitige Lokalisierung und Kartierung in Echtzeit erforderlich sein, und daher müssen die verwendeten SLAM-Techniken in der Lage sein, Anpassungen in Echtzeit vorzunehmen.

In einigen Ausführungsformen kann eine Anwendung eines mit dem Roboter gekoppelten Kommunikationsgeräts verwendet werden, um ein Over-the-Air-Firmware-Update (oder Software-Update oder eine andere Art von Update) auszuführen. In anderen Ausführungsformen kann die Firmware mithilfe anderer Mittel aktualisiert werden, beispielsweise über USB, Ethernet, RS232-Schnittstelle, benutzerdefinierte Schnittstelle, einen Flasher usw. In einigen Ausführungsformen zeigt die Anwendung möglicherweise eine Benachrichtigung an, dass ein Firmware-Update verfügbar ist, und der Benutzer kann dies tun Wählen Sie, ob Sie die Firmware sofort, zu einem bestimmten Zeitpunkt oder gar nicht aktualisieren möchten. In einigen Ausführungsformen wird die Firmware-Aktualisierung erzwungen und der Benutzer darf die Aktualisierung nicht verschieben. In einigen Ausführungsformen wird der Benutzer möglicherweise nicht darüber informiert, dass gerade ein Update ausgeführt wird oder ausgeführt wurde. In einigen Ausführungsformen erfordert das Firmware-Update möglicherweise einen Neustart des Roboters. In einigen Ausführungsformen kann der Roboter während eines Firmware-Updates Routinearbeiten ausführen oder auch nicht. In einigen Ausführungsformen wird die ältere Firmware möglicherweise erst ersetzt oder geändert, wenn die neue Firmware vollständig heruntergeladen und getestet wurde. In einigen Ausführungsformen kann der Prozessor des Roboters den Download im Hintergrund durchführen und beim nächsten Start die neue Firmware-Version verwenden. In einigen Ausführungsformen erfolgt die Firmware-Aktualisierung möglicherweise still (z. B. durch gewaltsames Drücken), es kann jedoch eine hörbare Aufforderung im Roboter erfolgen.

In einigen Ausführungsformen umfasst der Prozess der Verwendung der Anwendung zum Aktualisieren der Firmware die Verwendung der Anwendung zum Aufrufen der API und das direkte Senden der Firmware über die Cloud an den Roboter. In einigen Ausführungsformen kann ein Popup in der Anwendung auf ein verfügbares Firmware-Upgrade hinweisen (z. B. beim Aufrufen der Steuerungsseite der Anwendung). In einigen Ausführungsformen kann eine separate Seite der Anwendung Informationen zur Firmware anzeigen, beispielsweise die aktuelle Firmware-Versionsnummer. In einigen Ausführungsformen können verfügbare Firmware-Versionsnummern in der Anwendung angezeigt werden. In einigen Ausführungsformen können Änderungen, die jede der verfügbaren Firmware-Versionen mit sich bringt, in der Anwendung angezeigt werden. Beispielsweise kann eine neue Version die Zuordnungsfunktion verbessern oder eine andere neue Version die Sicherheit usw. verbessern. In einigen Ausführungsformen kann die Anwendung anzeigen, dass die aktuelle Version bereits aktuell ist, wenn die Version bereits aktuell ist. In einigen Ausführungsformen kann eine Fortschrittsseite (oder ein Symbol) der Anwendung angezeigt werden, wenn ein Firmware-Upgrade durchgeführt wird. In einigen Ausführungsformen kann sich ein Benutzer dafür entscheiden, die Firmware über eine Einstellungsseite der Anwendung zu aktualisieren. In einigen Ausführungsformen kann die Einstellungsseite Unterseiten wie „Allgemein“, „Reinigungseinstellungen“ und „Firmware-Update“ enthalten (die z. B. zu Firmware-Informationen führen können). In einigen Ausführungsformen kann die Anwendung anzeigen, wie lange die Aktualisierung dauern kann oder wie lange es noch dauert, bis die Aktualisierung abgeschlossen ist. In einigen Ausführungsformen kann eine Anzeige am Roboter anzeigen, dass der Roboter zusätzlich zur Anwendung oder anstelle dieser Aktualisierungen durchführt. In einigen Ausführungsformen kann die Anwendung eine Beschreibung dessen anzeigen, was nach dem Update geändert wurde. In einigen Ausführungsformen kann dem Benutzer vor der Aktualisierung der Firmware über die Anwendung ein Satz von Anweisungen bereitgestellt werden. In Ausführungsformen, in denen während eines Firmware-Updates eine plötzliche Unterbrechung auftritt, kann in der Anwendung ein Popup angezeigt werden, das erklärt, warum das Update fehlgeschlagen ist und was als Nächstes getan werden muss. In einigen Ausführungsformen sind möglicherweise mehrere Versionen von Updates für verschiedene Versionen der Firmware oder Anwendung verfügbar. Beispielsweise verfügen einige Roboter möglicherweise über Sprachanzeigen wie „Rad ist blockiert“ oder „Ausschalten“ in verschiedenen Sprachen. In einigen Ausführungsformen können einige Updates als Beta-Updates markiert sein. In einigen Ausführungsformen kann die Cloud-Anwendung während eines Updates mit dem Roboter kommunizieren und Informationen aktualisieren, zFEIGE.132, kann im Kontrollzentrum oder in der Anwendung verfügbar sein. In einigen Ausführungsformen kann der Fortschritt der Aktualisierung in der Anwendung mithilfe einer Statusleiste, eines Kreises usw. angezeigt werden. In einigen Ausführungsformen kann der Benutzer entscheiden, eine Firmware-Aktualisierung mithilfe der Anwendung abzuschließen oder anzuhalten. In einigen Ausführungsformen muss der Roboter während eines Firmware-Updates möglicherweise an ein Ladegerät angeschlossen werden. In einigen Ausführungsformen kann eine Popup-Meldung in der Anwendung erscheinen, wenn der Benutzer beschließt, den Roboter mithilfe der Anwendung zu aktualisieren, und der Roboter nicht mit dem Ladegerät verbunden ist.FEIGE.133A-133CVeranschaulichen Sie Beispiele verschiedener Seiten einer Anwendung in Verbindung mit dem Roboter.FEIGE.133A, von links nach rechts, zeigt einen Steuerbildschirm der Anwendung, den der Benutzer verwenden kann, um den Roboter zum Reinigen anzuweisen oder eine Reinigung zu planen und auf Einstellungen zuzugreifen, eine Popup-Meldung, die angibt, dass ein Software-Update verfügbar ist, und eine Einstellungsseite von die Anwendung, über die auf Reinigungseinstellungen und Software-Update-Informationen zugegriffen werden kann.FEIGE.133Bveranschaulicht eine Variation von Seiten, die dem Benutzer mithilfe der Anwendungsupdate-Firmware angezeigt werden können. Eine Seite zeigt an, dass die Roboter-Firmware auf dem neuesten Stand ist, eine andere Seite zeigt an, dass eine neue Firmware-Version verfügbar ist und beschreibt die Wichtigkeit des Updates und Aspekte, die mit dem Update geändert werden, und eine Seite benachrichtigt den Benutzer, dass der Roboter dies tun muss an ein Ladegerät angeschlossen werden, um die Firmware zu aktualisieren.FEIGE.133Czeigt in der oberen linken Ecke und im Uhrzeigersinn eine Seite, die den Benutzer über eine neue Firmware-Version informiert, von der aus der Benutzer das Update starten kann, eine Seite, die den Fortschritt des Updates anzeigt, eine Seite, die den Benutzer darüber informiert, dass das Update verfügbar ist Zeitüberschreitung und eine Seite, die den Benutzer darüber informiert, dass die Firmware erfolgreich aktualisiert wurde.

In einigen Ausführungsformen kann der Benutzer die Anwendung verwenden, um die Garantie des Roboters zu registrieren. Wenn der Benutzer mehr als einmal versucht, die Garantie zu registrieren, werden die Informationen möglicherweise mit einer Datenbank in der Cloud abgeglichen und der Benutzer wird darüber informiert, dass er dies bereits getan hat. In einigen Ausführungsformen kann die Anwendung verwendet werden, um mögliche Probleme des Roboters zu sammeln und die Informationen an die Cloud zu senden. In einigen Ausführungsformen kann der Roboter mögliche Probleme an die Cloud senden und die Anwendung kann die Informationen aus der Cloud abrufen, oder der Roboter kann mögliche Probleme direkt an die Anwendung senden. In einigen Ausführungsformen kann die Anwendung oder eine Cloud-Anwendung basierend auf den zu Problemen des Roboters gesammelten Informationen direkt ein Kundendienstticket öffnen. Beispielsweise kann die Anwendung automatisch ein Ticket öffnen, wenn festgestellt wird, dass sich ein Verbrauchsteil bald abnutzt, und der Kundendienst kann dem Benutzer automatisch einen neuen Ersatz zusenden, ohne dass der Benutzer den Kundendienst anrufen muss. In einem anderen Beispiel kann ein erkanntes blockiertes Rad an die Cloud gesendet werden und eine mögliche Lösung kann in der Anwendung von einem maschinell erlernten System zur automatischen Diagnose angezeigt werden. In einigen Ausführungsformen kann ein Mensch den Prozess überwachen und verbessern oder lediglich die Diagnose durchführen. In einigen Ausführungsformen kann das diagnostizierte Problem gespeichert und als Daten für zukünftige Diagnosen verwendet werden.

In einigen Ausführungsformen können dem Benutzer, der die Anwendung verwendet, frühere Karten und Arbeitssitzungen angezeigt werden. In einigen Ausführungsformen können Daten früherer Arbeitssitzungen verwendet werden, um künftig bessere Arbeitssitzungen durchzuführen. In einigen Ausführungsformen können zuvor angezeigte Karten und Arbeitssitzungen in Miniaturbilder umgewandelt werden, um Platz auf dem lokalen Gerät zu sparen. In einigen Ausführungsformen kann es eine Einstellung (oder Standardeinstellung) geben, die die Bilder in Originalform für einen vorgegebenen Zeitraum (z. B. eine Woche) speichert und die Bilder dann in Miniaturansichten umwandelt oder die Originalbilder in die Cloud verschiebt. Alle diese Optionen können konfigurierbar sein oder vom Hersteller als Standard ausgewählt werden.

In einigen Ausführungsformen kann ein Benutzer über eine registrierte E-Mail-Adresse, einen Benutzernamen oder ein Passwort verfügen, die zum Anmelden bei der Anwendung verwendet werden können. Wenn sich ein Benutzer nicht an seine E-Mail-Adresse, seinen Benutzernamen oder sein Passwort erinnern kann, steht möglicherweise eine Option zum Zurücksetzen einer dieser drei Optionen zur Verfügung. In einigen Ausführungsformen kann eine Form der Verifizierung erforderlich sein, um eine E-Mail-Adresse, ein Passwort oder einen Benutzernamen zurückzusetzen. In einigen Ausführungsformen kann ein Benutzer benachrichtigt werden, dass er sich bereits angemeldet hat, wenn er versucht, sich mit einem Benutzernamen und einem bereits vorhandenen Namen anzumelden, und kann gefragt werden, ob er sein Passwort vergessen hat und/oder sein Passwort zurücksetzen möchte.

In einigen Ausführungsformen kann es ein Steuersystem geben, das alle Roboter (und andere Geräte) in einer Flotte verwaltet oder verfolgt. In einigen Ausführungsformen kann das Steuersystem eine Datenbank sein. Beispielsweise kann ein Hersteller autonomer Autos den Überblick über alle Autos einer Flotte behalten. Einige Beispiele für Informationen, die für ein autonomes Fahrzeug gespeichert werden können, können sein: Das Auto konnte sich nicht anmelden, das Auto konnte keine Verbindung herstellen, das Auto konnte nicht gestartet werden, die Batterie des Autos war leer, das Auto hat den Kontakt zum Netzwerk verloren, die Autoaktivität, die Auto-Mailbox (oder Nachricht). Speichergröße und Füllstand der Mailbox, Anzahl ungelesener Nachrichten, Datum und Uhrzeit der zuletzt gelesenen Nachricht, letzter Standort (z. B. Zuhause, Café, Arbeit), Datum und Uhrzeit der zuletzt gewählten Nummer, Datum und Uhrzeit der zuletzt gesendeten Stimme Nachricht oder Text, Nachrichtenaktivität des Benutzers, Akku- und Ladeinformationen, letzte vollständige Ladung, letzte inkrementelle Ladung, Datum und Uhrzeit der letzten Ladung, Höhe der inkrementellen Ladung, Ort der Aufladungen, ggf. Rechnung (z. B. Daten, mechanische Dienstleistungen usw.) .), zuvor geöffnete Kundendiensttickets, Servicehistorie, Systemkonfiguration. In einigen Ausführungsformen kann ein Benutzer das Senden von Informationen an das Steuerungssystem oder die Datenbank ablehnen. In einigen Ausführungsformen kann der Benutzer eine private Einrichtung zum Speichern aller gesendeten Informationen anfordern und Informationen mit Genehmigung an jede beliebige Partei weitergeben.

Die private Einrichtung kann Datenbanken erstellen und die Informationen privat speichern. In einigen Ausführungsformen kann die private Einrichtung Informationen zu Funktionszwecken auf Anfrage des Benutzers weitergeben, um bestimmte Informationen mit einer bestimmten Partei zu teilen. Wenn ein Hersteller beispielsweise den Verlauf einer Reparatur eines autonomen Gehäuses benötigt, kann der Hersteller möglicherweise nicht auf die Informationen zugreifen, ohne eine Anfrage an die private Einrichtung zu senden, in der die Informationen gespeichert sind. Die private Einrichtung kann den Benutzer um Erlaubnis bitten. Der Benutzer kann die Anfrage über eine Anwendung, E-Mail oder das Internet erhalten und die Anfrage genehmigen. Anschließend kann die private Einrichtung die Informationen an den Hersteller weitergeben. In verschiedenen Ausführungsformen können mehrere Optionen für Genehmigungsebenen verwendet werden. Beispielsweise kann der Benutzer festlegen, dass die Informationen dem Hersteller für einen Tag, eine Woche, ein Jahr oder auf unbestimmte Zeit zur Verfügung stehen. Auf verschiedene Arten von Informationen können viele verschiedene Einstellungen angewendet werden. Der Benutzer kann jederzeit Einstellungen in seinem Profil vornehmen und ändern (z. B. über eine Anwendung oder das Internet). Beispielsweise kann ein Benutzer eine zuvor vom Benutzer genehmigte Berechtigung widerrufen.

In einigen Ausführungsformen kann es eine Standardeinstellung geben, die angibt, wo Informationen gespeichert werden (z. B. ein Hersteller, eine Datenbank, die dem Benutzer gehört und von ihm kontrolliert wird, ein Dritter usw.). Die Standardeinstellungen können vom Benutzer jederzeit geändert werden. In einigen Ausführungsformen kann das Protokoll der gespeicherten Informationen verschiedene Parameter aufweisen, die standardmäßig oder vom Benutzer festgelegt sind. Beispiele für Parameter können die maximal zulässige Anzahl an Ereignissen im Protokoll sein, die die Anzahl der Einträge im Protokoll begrenzt. Wenn die definierte Anzahl überschritten wird, werden die ältesten Einträge überschrieben. maximale Lebensdauer eines Protokolls, die die Anzahl der Tage und Stunden der Lebensdauer von Einträgen im Protokoll begrenzt. Wenn die definierte Anzahl überschritten wird, werden die ältesten Einträge überschrieben; verschiedene Protokollierungsebenen, die Funktionsaspekte, Ausführlichkeit zur Fehlerbehebung, Sicherheitsuntersuchungen (d. h. der Benutzer ist verschwunden), Sicherheit und Privatsphäre des Benutzers usw. umfassen können; Minuten zwischen Datenerfassungszyklen, die steuern, wie oft Berichtsdaten aus Protokollen erfasst werden (z. B. 30 Minuten); Tage, um Daten in der Berichtsdatenbank zu speichern, die bestimmt, wann die Daten archiviert oder Miniaturansichten der Daten aufbewahrt werden; Größe der Berichtsdatenbank (z. B. als Prozentsatz der Kapazität), die den maximalen Prozentsatz des Festplattenspeichers festlegt, den die Berichtsdatenbank beanspruchen darf; maximale Datensätze in der Berichtsausgabe, wodurch die Anzahl der in der Berichtsausgabe angezeigten Datensätze begrenzt wird; und maximale Anzahl von Orten, an denen die Berichte protokolliert werden können. Der Benutzer kann die Standardeinstellungen der Parameter für das Informationsprotokoll jederzeit ändern.

Für Benutzer kann es wichtig sein, zu besitzen und die Kontrolle darüber zu haben, wo Informationen protokolliert und gespeichert werden. In einigen Fällen kann eine Anwendung eines Smartphones den Überblick über Orte behalten, die ein Benutzer besucht hat, und diese Informationen möglicherweise mit Standortinformationen kombinieren, die von anderen Anwendungen des Smartphones gesammelt wurden, was für einen Benutzer möglicherweise unerwünscht ist. In einigen Fällen können Websites, die für Online-Einkäufe genutzt werden, eine detaillierte Kaufhistorie speichern, die später zur Analyse eines Benutzers verwendet werden kann. Beispielsweise kann sich ein Online-Kauf eines E-Zigaretten im Jahr 2018 auf die Ergebnisse eines Krankenversicherungsantrags auswirken, der im Jahr 2050 von derselben Person eingereicht wurde, vorausgesetzt, dass die Informationen zum Online-Kauf des E-Zigarettens gespeichert und an die Krankenversicherung weitergegeben wurden. Situationen wie diese verdeutlichen die zunehmende Bedeutung, dem Benutzer die Möglichkeit zu geben, seine Aktivitäten aufzuzeichnen und/oder zu speichern. Unabhängig davon, ob die Protokollierungsaktivität vom Hersteller, vom Benutzer oder von einem Dritten durchgeführt wird, können viele Schnittstellen vorhanden sein und viele Arten von Berichten ausgeführt werden. Beispielsweise kann ein Bericht für ein Gerät, eine logisch festgelegte Gruppe von Geräten, eine ausgewählte Liste von Geräten, die Besitzer der Geräte, eine dem Benutzer zugeordnete Telefonnummer, eine dem Gerät zugeordnete NANP und die Art des Dienstes ausgeführt werden das Gerät bereitstellt, die Art des Dienstes, den der Benutzer kauft, die Lizenzen, für die der Benutzer bezahlt hat, um bestimmte Funktionen zu erhalten, ein Nachname, ein Vorname, ein Alias, ein Standort, eine private E-Mail-Adresse, eine geschäftliche E-Mail-Adresse, ein Gerätestandort , eine Rechnungs-ID, ein Kontosperrstatus, eine letzte Aktivität usw.

In einigen Ausführungsformen kann die Diagnose eines Roboters mithilfe der Steuerschnittstelle des Roboters erfolgen. In einigen Ausführungsformen kann der Roboter über Telnet oder SSH angepingt oder verbunden werden und Diagnosebefehle können ausgeführt werden. In einigen Ausführungsformen kann ein ausführliches Protokoll aktiviert werden. In einigen Ausführungsformen kann ein bestimmtes Ereignis definiert werden und der Roboter kann das bestimmte Ereignis bedienen und melden, wenn es auftritt. Dies kann bei der Fehlerbehebung hilfreich sein. In einigen Ausführungsformen können Speicherauszüge und Protokolle automatisch an die Cloud gesendet und/oder lokal auf dem Roboter gespeichert werden. Der Benutzer kann wählen, ob er in der Cloud, lokal oder beides speichern möchte. In manchen Fällen kann eine Kombination aus Senden von Informationen in die Cloud und lokaler Speicherung als Standard voreingestellt sein. In einigen Ausführungsformen kann beim Auftreten eines Fehlers ein Fehlerprotokoll erstellt werden. Ein Beispiel für einen Computercode zum Generieren eines Fehlerprotokolls ist in dargestelltFEIGE.134. In einigen Ausführungsformen kann der Fehler ein Diagnoseverfahren einleiten. Zum Beispiel,FEIGE.135stellt ein Beispiel für ein Diagnoseverfahren dar, das zum Testen der Bürsten eines Roboters angewendet werden kann, wenn ein Fehler bei den Bürsten festgestellt wird. Abhängig vom erkannten Fehler können andere Diagnoseverfahren verwendet werden. Beispielsweise kann die Erkennung eines niedrigen Reifendrucks eines autonomen Autos dazu führen, dass eine Nachricht über eine Anwendung an den Benutzer gesendet wird, und dass eine Leuchtanzeige auf einem Bedienfeld des Autos aufleuchtet. In einigen Fällen kann die Erkennung eines niedrigen Reifendrucks auch dazu führen, dass das Auto einen Termin bei einer Serviceeinrichtung vereinbart, basierend auf dem Kalender des Benutzers, der Fahrzeugnutzung und der für den Service benötigten Zeit. Alternativ kann das autonome Auto eine Nachricht über die Art der erforderlichen Dienstleistung an ein Kontrollzentrum übermitteln und das Kontrollzentrum kann ein Serviceauto oder einen Roboter zu einem Standort des Autos (z. B. einem Parkplatz eines Lebensmittelgeschäfts, während der Benutzer einkauft) schicken Den Reifen aufpumpen. Ein Serviceroboter verfügt möglicherweise über eine Luftpumpe, nähert sich dem Reifen, richtet seinen Arm auf die Öffnung am Reifen aus, in die mithilfe von Computer Vision Luft gepumpt werden kann, misst den Luftdruck des Reifens und pumpt den Reifen dann auf den erforderlichen Luftdruck auf . Der Luftdruck des Reifens kann zur Gewährleistung der Genauigkeit mehrmals gemessen werden. Auch andere Autoservices wie Reparaturen und Ölwechsel können von einem Servicewagen oder Roboter durchgeführt werden. In anderen Fällen kann ein Serviceroboter Remote-Resets und Remote-Upgrades durchführen. In einigen Ausführungsformen kann der Serviceroboter (oder ein anderer Roboter) vorübergehend Informationen im lokalen Speicher protokollieren. In einigen Ausführungsformen können Syslog-Server zum Auslagern und Speichern von Computer- und Netzwerkhardware-Protokollinformationen für längere Zeiträume verwendet werden. In vielen Fällen sind Syslog-Server einfach einzurichten und zu warten. Nach der Einrichtung kann der Roboter auf den Syslog-Server verwiesen werden. Verschiedene Ausführungsformen können unterschiedliche Arten von Syslog-Servern verwenden. In einigen Fällen verwendet der Syslog-Server möglicherweise das Dateiformat .au oder .wav und das G.711-Codec-Format mit 8 Bitrate bei 8 kHz.

In einigen Ausführungsformen kann der Roboter oder ein Steuerungssystem, das Roboter verwaltet, auf den Systemstatus, Fehlerbehebungstools und ein System-Dashboard zur schnellen Überprüfung der Systemkonfigurationen des Roboters zugreifen. In einigen Ausführungsformen kann das Backend-Steuerungssystem des Roboters vom Roboter oder einem Steuerungssystem, das Roboter verwaltet, verwendet werden, um die Hardware-Ressourcennutzung (CPU, Speicherplatz) zu ermitteln, Softwareversionen abzurufen und zu aktualisieren, IP-Adressinformationen zu überprüfen und zu ändern und das Netzwerk zu verwalten Time Protocol (NTP)-Server-IP-Adressen, Verwaltung der Serversicherheit, einschließlich IPSec und digitaler Zertifikate, Pingen anderer IP-Geräte vom betreffenden Gerät aus (z. B. Initiieren des Roboters, sein Standard-Gateway, einen Dateiserver, ein Kontrollzentrum usw. anzupingen) , Gerätepool konfigurieren, um Geräte anhand einiger logischer Kriterien zu kategorisieren (z. B. Modellnummer, Jahreszahl, Geografie, Betriebssystemversion, Aktivität, Funktionalität oder angepasst), Region, Standort und Datums-/Uhrzeitgruppe abrufen und aktualisieren, NTP-Referenz abrufen, Gerätestandards abrufen und aktualisieren, verwendete Vorlagen abrufen und aktualisieren, Einstellungen abrufen und aktualisieren, Sprache abrufen und aktualisieren, Sicherheitsprofil oder Konfiguration abrufen und aktualisieren. Beispielsweise können Details der Softkey-Vorlage abgerufen oder aktualisiert werden. In Ausführungsformen kann die Softkey-Vorlage steuern, welche Tastenfunktionen einer gewünschten Funktion zugewiesen werden. Es können Kurzbefehle definiert und verwendet werden, z. B. zweimaliges Tippen auf den Roboterbildschirm, um den Notdienst anzurufen.

In einigen Ausführungsformen kann ein schnelles Bereitstellungstool verwendet werden, um zum Zeitpunkt der Bereitstellung viele Roboter gleichzeitig bereitzustellen. In einigen Ausführungsformen kann eine Tabellenkalkulation (z. B. eine Excel-Vorlage, eine Google-Tabelle, durch Kommas getrennte Textdateien oder jede Art von Tabellenkalkulation) verwendet werden, um viele Roboter gleichzeitig bereitzustellen und zu verwalten. In einigen Ausführungsformen kann es in der Tabelle Felder geben, die für alle Roboter gleich sind, und Felder, die eindeutig sind. In einigen Ausführungsformen kann eine Webseite verwendet werden, um auf die Tabelle zuzugreifen und Parameter zu ändern. In einigen Ausführungsformen können Datenbankeinfügungen, -änderungen oder -löschungen ausgeführt werden, indem Roboter gebündelt und automatisch und unbeaufsichtigt oder nach festgelegten Zeitplänen verwaltet werden. In einigen Ausführungsformen können ausgewählte Datensätze aus der Datenbank abgerufen, exportiert, geändert und erneut in die Datenbank importiert werden.

In einigen Ausführungsformen kann ein Endbenutzer einen Roboter zur Nutzung lizenzieren. In einigen Ausführungsformen können einem Endbenutzer verschiedene Arten der Roboterlizenzierung, ein Produkt (z. B. der Roboter oder ein anderes Produkt), Dienste (z. B. vom Roboter bereitgestellt), eine bestimmte Nutzung oder ein Nutzungsumfang des Roboters in Rechnung gestellt werden oder eine Kombination davon. In einigen Ausführungsformen können solche Informationen manuell, halbautonom oder autonom für ein Konto eingegeben werden, wenn ein Verkauf stattfindet. In einigen Ausführungsformen kann das Lightweight Directory Access Protocol (LDAP) zum Speichern aller oder eines Teils der Benutzerdaten verwendet werden. In einigen Fällen können andere Arten von Datenbanken zum Speichern verschiedener Arten von Informationen verwendet werden. In einigen Ausführungsformen kann die Datenbank Felder für umfassende Benutzerinformationen wie Benutzer-ID, Nachname, Standort, Geräte-ID und Gruppe enthalten. In einigen Fällen können einige Felder standardmäßig ausgefüllt sein. In einigen Ausführungsformen kann eine Namenskonvention verwendet werden, um vielen Benutzern mit ähnlichen Namen gerecht zu werden, wobei der Benutzername eine beschreibende Bedeutung haben kann. In einigen Ausführungsformen muss mindestens ein Parameter eindeutig sein, damit er als Primärschlüssel in der Datenbank verwendet werden kann. In unterschiedlichen Ausführungsformen können unterschiedliche Datenmengen repliziert und unterschiedliche Daten synchronisiert werden. In Ausführungsformen können Daten unterschiedlich lange gespeichert werden und verschiedene Arten von Daten können automatisch vernichtet werden. Beispielsweise können von Datenbank B aus Datenbank A abgerufene Daten ein Flag als eine der Spalten enthalten, um die Lebensdauer der Informationen festzulegen. Datenbank B kann dann nach Ablauf der angegebenen Zeit die Daten und in einigen Fällen auch die Existenz einer solchen Übertragung zerstören. Datenbank B kann in bestimmten Zeitintervallen die Einträge der Datenbank durchsuchen und Einträge löschen, deren Gültigkeitsdauer bald abläuft. In einigen Fällen kann Datenbank A zum Zeitpunkt des Ablaufs von Einträgen eine Anfrage an Datenbank B senden und Datenbank B anweisen, die Einträge zu vernichten. In einigen Fällen sendet Datenbank A möglicherweise eine weitere Abfrage, um festzustellen, ob etwas zurückgegeben wird, um zu bestätigen, dass die Einträge zerstört wurden. Solche Methoden können in sozialen Medien eingesetzt werden, wobei ein Benutzer ein Ereignis posten kann und ihm die Möglichkeit gegeben wird, festzulegen, wie lange dieser Beitrag angezeigt werden soll und wie lange der Beitrag vom Social-Media-Unternehmen aufbewahrt werden soll. Die Informationen können basierend auf den vom Benutzer gewählten Zeiten automatisch aus dem Benutzerprofil gelöscht werden, ohne dass der Benutzer dies manuell tun muss. In einigen Ausführungsformen kann die Datenbank jedes Mal, wenn neue Informationen zur Datenbank hinzugefügt werden, eine vollständige Synchronisierung aller Einträge durchführen. In Fällen, in denen große Datenmengen synchronisiert werden, kann es zu Netzwerküberlastungen und Problemen mit der Serverleistung kommen. In einigen Ausführungsformen können Synchronisierungsintervalle und Planung so gewählt werden, dass die Auswirkungen auf die Leistung minimiert werden. In einigen Ausführungsformen kann die Synchronisierung inkrementell erfolgen (z. B. werden nur die neuen oder geänderten Informationen repliziert), um die Menge der replizierten Daten zu reduzieren und dadurch die Auswirkungen auf das Netzwerk und die Server zu verringern. In einigen Ausführungsformen kann die Zuordnung von Datenbankattributen verwendet werden, wenn sich die Namen von Attributfeldern, die eine Datenbank verwendet, von den Namen äquivalenter Attributfelder unterscheiden. Beispielsweise können einige Attribute aus einer LDAP-Datenbank mithilfe der Datenbankattributzuordnung den entsprechenden Attributen in einer anderen Datenbank zugeordnet werden. In einigen Ausführungsformen kann eine LDAP-Synchronisierungsvereinbarung erstellt werden, indem das Attribut einer anderen Datenbank identifiziert wird, auf das ein Attribut aus der LDAP-Datenbank abgebildet wird. In einigen Fällen wird möglicherweise zuerst das Benutzer-ID-Attribut zugeordnet. In einigen Fällen können LDAP-Datenbankattributfelder manuell anderen Datenbankattributfeldern zugeordnet werden.

Die hier beschriebenen Methoden und Techniken können mit verschiedenen Arten von Robotern und Geräten verwendet werden. Zum Beispiel,FEIGE.136Azeigt einen intelligenten Kühlschrank13600die die hier beschriebenen Methoden und Techniken implementieren können. Intelligenter Kühlschrank13600Enthält einen Artikelspender13601und ein abnehmbarer mobiler Roboter13602zum Ausgeben von Artikeln, die aus dem Artikelspender ausgewählt wurden13601.FEIGE.136Bveranschaulicht eine Anwendung eines mobilen Geräts13603das kann mit einem intelligenten Kühlschrank kombiniert werden13600und von einem Benutzer verwendet, um einen Artikel vom Artikelspender anzufordern13601. Die Anwendung kann verfügbare Elemente auf verschiedene Arten anzeigen (z. B. Bilder, Symbole, Text usw.) und eine Eingabe vom Benutzer empfangen, die eine Auswahl vorgibt. Zum Beispiel inFEIGE.136BDer Benutzer wählt Element C aus, das die Anwendung beispielsweise im Bereich hervorheben kann13604, nach der Auswahl. Der Benutzer kann seine Auswahl durch Drücken bestätigen13605nachdem das Element hervorgehoben wurde. Die Anwendung kann den Standort des Benutzers anhand von Standortdiensten ermitteln oder der Benutzer kann mithilfe der Anwendung einen Standort angeben, an den der Artikel geliefert werden soll. Die Anwendung kann dann mit dem intelligenten Kühlschrank kommunizieren13601um die Lieferung des ausgewählten Artikels an den Standort des Benutzers anzufordern. Ein Prozessor eines intelligenten Kühlschranks13600kann den Artikelspender betätigen13601um den ausgewählten Artikel auszugeben.FEIGE.136Czeigt den Artikelspender13601Ausgabe des ausgewählten Artikels C, der in den abnehmbaren mobilen Roboter fallen kann13602, wie in dargestelltFEIGE.136D. Der Prozessor des intelligenten Kühlschranks13600kann dem Prozessor des mobilen Roboters den Ziellieferort mitteilen13602Oder es erhält die Informationen direkt aus der Anwendung. In einigen Fällen ist der Prozessor ein intelligenter Kühlschrank13600kann auch den Prozessor des mobilen Roboters bereitstellen13602mit einem Bahnplan oder dem Prozessor eines mobilen Roboters13602kann den Wegplan selbst bestimmen.FEIGE.136Everanschaulicht mobilen Roboter13602Lieferung des ausgewählten Artikels.FEIGE.137Averanschaulicht ein weiteres Beispiel, bei dem der Roboter ein Lebensmittellieferroboter ist. Der Essenslieferroboter beinhaltet einen Roboter13700, ein Tablett13701mit Getränkehaltern13702, und ein Eimer13703zum Sammeln von Abfällen von Tischen. In einigen Fällen können für die Kartierung und Navigation verwendete Sensoren hinter dem Bereich positioniert werden13704. In einigen Fällen kann der Lebensmittellieferroboter einen Gegengewichtsmechanismus umfassen, um das Gleichgewicht während des Betriebs aufrechtzuerhalten.FEIGE.137Bveranschaulicht interne Komponenten des Essenslieferroboters, insbesondere Komponenten des Gegengewichtsmechanismus, einschließlich Dämpfer13705am Boden des Tabletts befestigt13701und ein schweres Gegengewicht13706am Boden des Tabletts befestigt13701per Link13707.FEIGE.137Cveranschaulicht den Link13707am Boden des Tabletts befestigt13701mittels Kugelgelenk13708so dass das Tablett beim Robotern gerade bleibt13700betitelt wird (z. B. beim Bergauf- oder Bergabfahren).FEIGE.137Dveranschaulicht Roboter13700Hang hinauffahren13709. Während Roboter13700und Eimer13702aufgrund der Neigung geneigt sind13709, Gegengewicht13706ermöglicht Fach13701dass die Lebensmittel nivelliert bleiben und so ein Verschütten der ausgegebenen Lebensmittel verhindert wird. In einigen Fällen können Kunden Essen über eine Anwendung eines mobilen Geräts bestellen, das auf den Tischen eines Restaurants platziert wird. Die Anwendung kann die Bestellung an die Küche übermitteln und das Küchenpersonal kann die Bestellung an den Essenslieferroboter übermitteln. Der Lebensmittellieferroboter kann das Essen an Kunden liefern. In manchen Fällen kann der Essenslieferroboter laufende Bestellungen auf einem Schnittstellenbildschirm anzeigen und das Küchenpersonal kann die Bestellung auswählen, die dem Essen entspricht, das zur Lieferung auf das Tablett des Roboters gelegt wird. Basierend auf der vom Küchenpersonal ausgewählten Reihenfolge kann der Prozessor des Essenslieferroboters bestimmen, an welchen Tisch das Essen geliefert werden soll. In einigen Fällen können Lebensmittel auf das Tablett gelegt werden und der Roboter erhält möglicherweise einen verbalen Befehl, die Lebensmittel an einen bestimmten Tisch zu liefern. In einigen Fällen kann ein Benutzer mithilfe einer Anwendung Essen nach Hause bestellen. Ein Steuerungssystem kann die Bestellung empfangen und einen Essenslieferroboter einsetzen, der die Essensbestellung von einem bestimmten Restaurant abholt und das Essen zum Haus des Benutzers liefert. Das Steuersystem kann basierend auf dem aktuellen Standort des Roboters, dem angegebenen Lieferort, der Batterieladung des Roboters usw. bestimmen, welcher Lebensmittellieferroboter eingesetzt werden soll. Andere Ausführungsformen sind möglicherweise möglich.

FIG.138A-138Cveranschaulichen ein weiteres Beispiel, in diesem Fall ein Krankenhausbett inklusive Kameras13800nach oben, vorne und unten gerichtet, je nach Position auf dem Krankenhausbett, Sensorfenster13801um das gesamte Krankenhausbett herum, hinter dem Sensorarrays positioniert sind (z. B. TOF-Sensoren), teleskopischer 360-Grad-LIDAR13802das kann erhöht werden (FEIGE.138A) oder abgesenkt (FIG.138B und138C), Ultraschallsensoren13803, Krankenhausbettgestell13804mit Matratze13805. Die Matratze13805ist abgewinkelt, um dem Patienten maximalen Komfort zu bieten. In einigen Fällen passt der Patient oder der Prozessor des Krankenhausbettroboters den Winkel der Matratze selbstständig an13805. In manchen Fällen wird der Prozessor des Krankenhausbettroboters benachrichtigt, wenn an einem bestimmten Ort ein Krankenhausbett benötigt wird. Der Krankenhausbettroboter kann zu dem jeweiligen Standort navigieren, wenn er leer ist. In anderen Fällen erhält der Prozessor des Krankenhausbettroboters Anweisungen zum Transport eines Patienten im Krankenhausbett von einem aktuellen Standort zu einem anderen Standort. In manchen Fällen empfängt der Prozessor Anweisungen oder Informationen von einer Anwendung eines mit dem Prozessor gekoppelten Kommunikationsgeräts. In manchen Fällen gibt ein Bediener Anweisungen oder Informationen in die Anwendung ein und die Anwendung übermittelt die Informationen an den Prozessor. In einigen Fällen verfügt der Prozessor des Krankenhausbettenroboters über einen Bestand ungenutzter Krankenhausbetten und deren Standorte. Der Verarbeiter kann außerdem über einen Bestand an gebrauchten Krankenhausbetten und deren Standorten verfügen. Der Krankenhausbettenroboter reduziert die Notwendigkeit für das Krankenhauspersonal, Krankenhausbetten zu transportieren, und verschafft dem Krankenhauspersonal somit mehr Zeit für die Betreuung der Patienten. Es können mehrere Krankenhausbettroboter gleichzeitig eingesetzt werden. In einigen Fällen arbeiten die Prozessoren mehrerer Krankenhausbettroboter zusammen, um zu bestimmen, welche Aufgaben jeder Krankenhausbettroboter ausführen soll. In einigen Fällen verwaltet ein Steuerungssystem alle Krankenhausbettroboter in einem Krankenhaus. In einigen Ausführungsformen können die Prozessoren eines oder mehrerer Krankenhausbettroboter, die in einem Krankenhaus arbeiten, die hierin beschriebenen Methoden und Techniken implementieren, um beispielsweise optimale Bewegungspfade innerhalb des Krankenhauses zu bestimmen, eine optimale Zusammenarbeit zu bestimmen, eine Karte zu erstellen, zu lokalisieren usw.

Ein weiteres Beispiel für einen Roboter, der die hier beschriebenen Methoden und Techniken implementieren kann, ist ein Reifenwechselroboter.FEIGE.139Azeigt einen Reifenwechselroboter13900Transport neuer Reifen13901um einen platten Reifen zu ersetzen13902des Autos13903.FEIGE.139Azeigt einen Reifenwechselroboter13900Richten Sie das vordere Ende auf den platten Reifen aus13902unter Verwendung von Robotersensoren13900. Reifenwechselroboter13900kann Schrauben am Reifen mithilfe von Computer-Vision-Techniken erkennen und die Schrauben mithilfe eines Schraubenziehers entfernen13904und dann platter Reifen13902, wie in dargestelltFEIGE.139B.FEIGE.139Czeigt einen Reifenwechselroboter13900in Richtung drehend13905neuen Reifen anbringen13901zum Auto13903UndFEIGE.139Dzeigt neuen Reifen13901in Position und Reifenwechselroboter13900Sicherung eines neuen Reifens13901zum Auto13903durch Anziehen der Schrauben mit einem Schraubendreher13904. In manchen Fällen kann der Reifenwechselroboter zum Umrüsten von Sommerreifen auf Winterreifen eingesetzt werden. Ähnlich,FEIGE.140Azeigt einen Roboter zum Batteriewechsel14000mit Armen14001zum Entfernen der Batterie14002vom Auto14003. Batterieaustauschroboter14000kann sich mit der Batterie ausrichten14002unter Verwendung verschiedener Sensoren. Mit den Armen14001, Batterie14002kann aus dem Auto entlassen werden14003durch Auslösen eines Hebels oder Riegels, wie in dargestelltFEIGE.140B. Der Batterieaustauschroboter kann die Batterie transportieren14002zu einer Reparatur- oder Austauschstation.FEIGE.140Czeigt den Batteriewechselroboter14000Transport einer reparierten oder neuen Batterie14004zur Montage am Auto14003. In einigen Fällen kann eine Anwendung verwendet werden, um verschiedene Arten von Servicerobotern zu einem bestimmten Ort zu einem bestimmten Tag und zu einer bestimmten Uhrzeit anzufordern, wie beispielsweise in dargestelltFIG.139A-139D und140A-140C. Ein Steuerungssystem kann die Anforderung empfangen und den Anforderungsdienstroboter an einem bestimmten Tag und zu einer bestimmten Uhrzeit an einem bestimmten Ort einsetzen. Das Steuerungssystem kann anhand der Fähigkeiten des Roboters, des aktuellen Standorts des Roboters, des vorgesehenen Servicestandorts, der Batterieladung des Roboters usw. bestimmen, welcher Serviceroboter eingesetzt werden soll.

Andere Methoden und Techniken (z. B. Kartierung, Lokalisierung, Pfadplanung, Zoneneinteilung usw.), die verwendet werden können, sind in der US-Patentanmeldung Ser. Nr. 16/230.805, 16/389.797, 16/427.317 und 16/509.099, deren gesamter Inhalt hiermit durch Bezugnahme einbezogen wird.

Die vorstehenden Beschreibungen spezifischer Ausführungsformen der Erfindung dienen der Veranschaulichung und Beschreibung. Sie erheben keinen Anspruch auf Vollständigkeit oder beschränken die Erfindung auf die genauen offenbarten Formen.

In den hier bereitgestellten Blockdiagrammen werden dargestellte Komponenten als diskrete Funktionsblöcke dargestellt, Ausführungsformen sind jedoch nicht auf Systeme beschränkt, in denen die hier beschriebene Funktionalität wie dargestellt organisiert ist. Die von den einzelnen Komponenten bereitgestellte Funktionalität kann durch Software- oder Hardwaremodule bereitgestellt werden, die anders organisiert sind als derzeit dargestellt. Beispielsweise kann solche Software oder Hardware vermischt, verbunden, repliziert, aufgeteilt, verteilt (z. B. innerhalb eines Rechenzentrums oder geografisch) oder auf andere Weise anders organisiert sein. Die hier beschriebene Funktionalität kann von einem oder mehreren Prozessoren eines oder mehrerer Computer bereitgestellt werden, die Code ausführen, der auf einem materiellen, nichtflüchtigen, maschinenlesbaren Medium gespeichert ist. In einigen Fällen können die Anweisungen ungeachtet der Verwendung des singulären Begriffs „Medium“ auf verschiedenen Speichergeräten verteilt sein, die verschiedenen Computergeräten zugeordnet sind, wobei beispielsweise jedes Computergerät über eine andere Teilmenge der Anweisungen verfügt, eine Implementierung, die mit der Verwendung von übereinstimmt der singuläre Begriff „Medium“ hierin. In einigen Fällen können Content-Delivery-Netzwerke Dritter einige oder alle über Netzwerke übermittelten Informationen hosten. In diesem Fall können die Informationen, sofern Informationen (z. B. Inhalte) bereitgestellt oder anderweitig bereitgestellt werden, durch Senden bereitgestellt werden Anweisungen zum Abrufen dieser Informationen von einem Content-Delivery-Netzwerk.

Der Leser sollte sich darüber im Klaren sein, dass die vorliegende Anmeldung mehrere unabhängig voneinander nützliche Techniken beschreibt. Anstatt diese Techniken in mehrere isolierte Patentanmeldungen aufzuteilen, hat der Anmelder diese Techniken in einem einzigen Dokument zusammengefasst, da ihr verwandter Gegenstand zu Einsparungen im Anmeldeprozess führt. Die besonderen Vorteile und Aspekte solcher Techniken sollten jedoch nicht verwechselt werden. In einigen Fällen beheben Ausführungsformen alle hier genannten Mängel, es sollte jedoch klar sein, dass die Techniken unabhängig voneinander nützlich sind und einige Ausführungsformen nur eine Teilmenge solcher Probleme angehen oder andere, nicht erwähnte Vorteile bieten, die für den Fachmann offensichtlich sind Die Technik überprüft die vorliegende Offenbarung. Aus Kostengründen werden einige hierin offenbarte Techniken möglicherweise derzeit nicht beansprucht und können in späteren Einreichungen beansprucht werden, beispielsweise in Fortsetzungsanmeldungen oder durch Änderung der vorliegenden Ansprüche. Ebenso sollten aus Platzgründen weder die Abschnitte „Zusammenfassung“ noch „Zusammenfassung“ des vorliegenden Dokuments so verstanden werden, dass sie eine umfassende Auflistung aller dieser Techniken oder aller Aspekte solcher Techniken enthalten.

Es versteht sich, dass die Beschreibung und die Zeichnungen nicht dazu gedacht sind, die vorliegenden Techniken auf die bestimmte offenbarte Form zu beschränken, sondern im Gegenteil alle Modifikationen, Äquivalente und Alternativen abdecken sollen, die in den Geist und Umfang der vorliegenden Erfindung fallen Techniken, wie sie in den beigefügten Ansprüchen definiert sind. Weitere Modifikationen und alternative Ausführungsformen verschiedener Aspekte der Techniken werden für den Fachmann angesichts dieser Beschreibung offensichtlich sein. Dementsprechend sind diese Beschreibung und die Zeichnungen nur als veranschaulichend zu verstehen und dienen dazu, Fachleuten die allgemeine Art und Weise der Durchführung der vorliegenden Techniken zu lehren. Es versteht sich, dass die hier gezeigten und beschriebenen Formen der vorliegenden Techniken als Beispiele für Ausführungsformen zu verstehen sind. Elemente und Materialien können die hier dargestellten und beschriebenen Elemente und Materialien ersetzen, Teile und Prozesse können umgekehrt oder weggelassen werden und bestimmte Merkmale der vorliegenden Techniken können unabhängig voneinander genutzt werden, alles wie es für einen Fachmann offensichtlich ist, nachdem er davon profitiert hat diese Beschreibung der vorliegenden Techniken. An den hierin beschriebenen Elementen können Änderungen vorgenommen werden, ohne vom Geist und Umfang der vorliegenden Techniken, wie in den folgenden Ansprüchen beschrieben, abzuweichen. Die hier verwendeten Überschriften dienen nur organisatorischen Zwecken und sollen den Umfang der Beschreibung nicht einschränken.

In dieser Anmeldung wird das Wort „dürfen“ im permissiven Sinne (d. h. im Sinne von „das Potenzial dazu haben“) und nicht im zwingenden Sinne (d. h. im Sinne von „müssen“) verwendet. Die Wörter „einschließen“, „einschließlich“ und „beinhaltet“ und dergleichen bedeuten einschließlich, sind aber nicht darauf beschränkt. Die in dieser Anmeldung verwendeten Singularformen „ein“, „ein“ und „der“ schließen Pluralbezüge ein, sofern der Inhalt nicht ausdrücklich etwas anderes angibt. So umfasst beispielsweise die Bezugnahme auf „ein Element“ oder „ein Element“ eine Kombination aus zwei oder mehr Elementen, ungeachtet der Verwendung anderer Begriffe und Ausdrücke für ein oder mehrere Elemente, wie z. B. „ein oder mehrere“. Der Begriff „oder“ ist, sofern nicht anders angegeben, nicht ausschließlich, d. h. er umfasst sowohl „und“ als auch „oder“. Begriffe, die bedingte Beziehungen beschreiben (z. B. „als Reaktion auf X, Y“, „auf X, Y“, „wenn eine notwendige kausale Bedingung, der Antezedens ist eine hinreichende kausale Bedingung oder der Antezedens ist eine beitragende kausale Bedingung der Konsequenz (z. B. „Zustand auf Y und Z“). Solche bedingten Beziehungen beschränken sich nicht auf Konsequenzen, die unmittelbar auf das Eintreten des Antezedens folgen, da sich einige Konsequenzen verzögern können, und in Bedingungsanweisungen sind Antezedens mit ihren Konsequenzen verbunden (z. B. ist das Antezedens für die Wahrscheinlichkeit des Eintretens der Konsequenz relevant). Anweisungen, in denen eine Vielzahl von Attributen oder Funktionen einer Vielzahl von Objekten zugeordnet werden (z. B. ein oder mehrere Prozessoren, die die Schritte A, B, C und D ausführen), umfassen sowohl alle derartigen Attribute oder Funktionen, die allen solchen Objekten zugeordnet sind, als auch Teilmengen davon Die Attribute oder Funktionen werden Teilmengen der Attribute oder Funktionen zugeordnet (z. B. sowohl alle Prozessoren, die jeweils die Schritte A–D ausführen, als auch ein Fall, in dem Prozessor 1 Schritt A ausführt, Prozessor 2 Schritt B und einen Teil von Schritt C ausführt und Prozessor 3 ausführt Teil von Schritt C und Schritt D), sofern nicht anders angegeben. Sofern nicht anders angegeben, umfassen Aussagen darüber, dass ein Wert oder eine Aktion auf einer anderen Bedingung oder einem anderen Wert „basiert“, sowohl Fälle, in denen die Bedingung oder der Wert der einzige Faktor ist, als auch Fälle, in denen die Bedingung oder der Wert ein Faktor unter mehreren Faktoren ist . Sofern nicht anders angegeben, sollten Aussagen, dass „jede“ Instanz einer Sammlung über eine bestimmte Eigenschaft verfügt, nicht so verstanden werden, dass sie Fälle ausschließen, in denen einige ansonsten identische oder ähnliche Mitglieder einer größeren Sammlung nicht über die Eigenschaft verfügen (d. h. „jeder“ bedeutet nicht unbedingt jede einzelne). ). Einschränkungen hinsichtlich der Reihenfolge der aufgeführten Schritte sollten nicht in die Ansprüche hineingelesen werden, es sei denn, sie werden ausdrücklich spezifiziert, z. B. durch explizite Formulierungen wie „nach der Ausführung von „X für Elemente, Ausführen von Y für die mit Aussagen, die sich auf „mindestens Z von A, B und C“ und dergleichen beziehen (z. B. „mindestens Z von A, B oder C“), beziehen sich auf mindestens Z der aufgeführten Kategorien (A, B, und C) und erfordern nicht mindestens Z Einheiten in jeder Kategorie. Sofern aus der Diskussion nicht ausdrücklich etwas anderes hervorgeht, wird darauf hingewiesen, dass sich in der gesamten Spezifikationsdiskussion die Verwendung von Begriffen wie „Verarbeiten“, „Berechnen“, „Berechnen“, „Bestimmen“ oder dergleichen auf Aktionen oder Prozesse eines bestimmten Geräts bezieht speziell entwickelt, um die angegebene Funktionalität auszuführen, wie z. B. ein Spezialcomputer oder ein ähnliches elektronisches Verarbeitungs-/Rechnergerät für spezielle Zwecke. Merkmale, die in Bezug auf geometrische Konstrukte beschrieben werden, wie „parallel“, „senkrecht/orthogonal“, „quadratisch“, „zylindrisch“ und dergleichen, sollten so ausgelegt werden, dass sie Elemente umfassen, die im Wesentlichen die Eigenschaften des geometrischen Konstrukts verkörpern (z. B. Referenz). „parallele“ Flächen umfasst im Wesentlichen parallele Flächen). Der zulässige Abweichungsbereich dieser geometrischen Konstrukte von platonischen Idealen ist unter Bezugnahme auf Bereiche in der Spezifikation zu bestimmen, und wenn solche Bereiche nicht angegeben sind, unter Bezugnahme auf Industrienormen im Anwendungsbereich und wenn solche Bereiche nicht definiert sind Unter Bezugnahme auf Industrienormen im Bereich der Herstellung des bezeichneten Merkmals und wenn solche Bereiche nicht definiert sind, sollten Merkmale, die im Wesentlichen ein geometrisches Konstrukt verkörpern, so ausgelegt werden, dass sie diese Merkmale innerhalb von 15 % der definierenden Attribute dieses geometrischen Konstrukts umfassen. Negative Schlussfolgerungen sollten nicht aus der inkonsistenten Verwendung von „(s)“ bei der Qualifizierung von Elementen als möglicherweise Plural gezogen werden, und Elemente ohne diese Bezeichnung können auch Plural sein.

Top Articles
Latest Posts
Article information

Author: Jonah Leffler

Last Updated: 06/24/2023

Views: 5275

Rating: 4.4 / 5 (65 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Jonah Leffler

Birthday: 1997-10-27

Address: 8987 Kieth Ports, Luettgenland, CT 54657-9808

Phone: +2611128251586

Job: Mining Supervisor

Hobby: Worldbuilding, Electronics, Amateur radio, Skiing, Cycling, Jogging, Taxidermy

Introduction: My name is Jonah Leffler, I am a determined, faithful, outstanding, inexpensive, cheerful, determined, smiling person who loves writing and wants to share my knowledge and understanding with you.