DE102018121335A1 - Robotergestützte virtuelle grenzen - Google Patents

Robotergestützte virtuelle grenzen Download PDF

Info

Publication number
DE102018121335A1
DE102018121335A1 DE102018121335.2A DE102018121335A DE102018121335A1 DE 102018121335 A1 DE102018121335 A1 DE 102018121335A1 DE 102018121335 A DE102018121335 A DE 102018121335A DE 102018121335 A1 DE102018121335 A1 DE 102018121335A1
Authority
DE
Germany
Prior art keywords
robot
virtual boundary
virtual
boundary
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102018121335.2A
Other languages
English (en)
Inventor
Sarath Kumar SUVARNA
Bryant Pong
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neato Robotics Inc
Original Assignee
Neato Robotics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/996,290 external-priority patent/US10583561B2/en
Application filed by Neato Robotics Inc filed Critical Neato Robotics Inc
Publication of DE102018121335A1 publication Critical patent/DE102018121335A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2805Parameters or conditions being sensed
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0044Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

In einer Ausführungsform ist in den globalen Koordinaten der Bereichskarte eine virtuelle Grenze vorgesehen, die in eine Vielzahl von Liniensegmenten umgewandelt wird, die einer Vielzahl von Teilkarten entsprechen. In einer Ausführungsform wird während einer Trainings-/Mappingfahrt ein physischer Grenzindikator verwendet, wobei der Standort der Bereichskarte hinzugefügt und der physische Grenzindikator später verschoben wird. In einer Ausführungsform ändert sich die virtuelle Grenze im Laufe der Zeit, um Reinigungsbereiche zu wechseln, um als Tor zu fungieren, um den zugehörigen Reinigungsmodus zu ändern, etc. In einer Ausführungsform werden virtuelle Bereiche mit Grenzen von einem Benutzer ausgewählt.

Description

  • QUERVERWEISE AUF VERWANDTE ANMELDUNGEN
  • Bei dieser Anmeldung handelt es sich um eine nicht-vorläufige Patentanmeldung mit der Nummer 62/552,790 mit dem Titel „Robotic Virtual Boundaries“ vom 31. August 2017, deren Offenbarung hiermit vollständig einbezogen ist.
  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Einstellen von Grenzen, um zu begrenzen, wohin ein Roboter fahren kann, insbesondere einen Reinigungsroboter mit einer virtuellen Grenze.
  • Neato-Roboter sind mit einem Magnetsensor ausgestattet, der ein Magnetfeld erkennen kann und es dem Roboter ermöglicht, Verhaltensentscheidungen zu treffen. Ein Benutzer kann einen Magnetstreifen entlang des Bodens platzieren, um zu verhindern, dass der Roboter den Magnetstreifen überquert. iRobot stellt einen Leuchtturm bzw. Lighthouse für seinen Roomba-Roboterreiniger zur Verfügung, der eine Virtual Wall®-Grenze bildet, indem er einen kegelförmigen Infrarot-(IR)-Strahl über Türen oder andere Orte abgibt, je nach Platzierung des Leuchtturms durch den Benutzer. Der Leuchtturm kann auch als ein Tor fungieren, dass dem Roboter ermöglicht, eine virtuelle Grenze zu passieren, nachdem ein Bereich auf einer Seite der Grenze gereinigt wurde. Der Ecovacs Deebot R95 bietet eine virtuelle Grenze, indem er es einem Benutzer ermöglicht, eine Linie auf einer Karte des Roboterreinigungsbereichs zu zeichnen, um eine Linie anzuzeigen, die der Roboter nicht überqueren wird. Es ist wünschenswert, ein verbessertes virtuelles Begrenzungssystem bereitzustellen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In einer Ausführungsform platziert ein Benutzer einen Magnetstreifen, einen IR-Transponder oder eine andere Grenzanzeige bzw. Grenzindikator an einer oder mehreren Stellen während eines Kartenerstellungslaufs für einen Roboter. Der Roboter zeichnet die Grenzinformationen in Verbindung mit der Karte auf, während die Positionen in einem Gebiet abgebildet werden. Der Benutzer kann dann den Grenzindikator entfernen oder ihn für den gleichen Kartenerstellungslauf an einen anderen Ort verschieben. Danach kann der Roboter eine virtuelle Grenze identifizieren, die der aufgezeichneten Begrenzungsposition entspricht, ohne dass ein physischer Begrenzungsindikator an Ort und Stelle bleiben muss. Alternativ kann ein Benutzer ein Etikett auf den Türpfosten eines Raumes kleben, um eine virtuelle Grenze anzuzeigen. Das Etikett kann ein Strichcode, ein QR-Code, ein schwarzes Etikett, das durch IR erkannt werden kann, ein Farbstreifen, ein Muster oder ein anderes Etikett sein. Das Etikett könnte darauf hinweisen, dass der Roboter den Bereich meiden, nur reinigen und nicht kartografieren, einen speziellen Reinigungsmodus verwenden, etc. soll.
  • In einer Ausführungsform ändert sich die virtuelle Grenze im Laufe der Zeit. So kann beispielsweise die virtuelle Grenze so eingestellt werden, dass sie den Roboter für jede andere Reinigungsroutine auf einen stark frequentierten Bereich beschränkt. In einem weiteren Beispiel kann die virtuelle Grenze als Tor fungieren, das den Roboter auf einen bestimmten Bereich begrenzt, bis der Bereich gereinigt ist, und dann die Grenze öffnet, damit der Roboter einen anderen Bereich reinigen oder zu seiner Heimbasis bzw. Basisstation zurückkehren kann. In einem weiteren Beispiel kann ein bestimmter Reinigungsmodus mit unterschiedlichen Zeiten für den durch die Grenze angegebenen Bereich verknüpft werden, wie z.B. ein Reinigen in einer Längsrichtung zu einem Zeitpunkt auf einem Zeitplan und ein Reinigen in einer Breitenrichtung zu einem anderen Zeitpunkt.
  • In einer Ausführungsform gibt ein Benutzer eine virtuelle Grenze auf einer Bereichskarte für einen bestimmten Roboter an. Der Roboter korrigiert dann automatisch die Grenze und kann dem Benutzer auf einem Display einen Korrekturvorschlag unterbreiten. In einem Beispiel bestimmt der Roboter, dass sich die virtuelle Grenze nicht bis zu einer Wand erstreckt und in Wirklichkeit keine Grenze ist, weil es Platz für den Roboter gibt, die Linie zu umfahren. Der Roboter kann vorschlagen, die Grenze bis zur nächsten Wand zu erweitern bzw. zu verlängern. In einem weiteren Beispiel kann der Roboter erkennen, dass sich die Grenze um ein Hindernis herum befindet und dass sich der Roboter näher an das Hindernis als die Grenzlinie bewegen kann. Der Roboter könnte dann die Grenze so einstellen, dass sie näher am Hindernis liegt. Alternativ kann der Roboter bestimmen, dass die virtuelle Grenze zu nahe am Objekt liegt und gegen das Objekt stößt oder sich im Objekt verfängt. Der Roboter kann dann die virtuelle Grenze weiter von dem Objekt weg schieben, um Probleme zu vermeiden.
  • In einer Ausführungsform erzeugt der Roboter seine eigenen virtuellen Grenzen oder schlägt einem Benutzer eine virtuelle Grenze vor. Der Roboter kann eine Grenze vorschlagen, an der er einen Absturz erkennt (z.B. ein Treppe), oder an der er Hindernisse erkennt, die zu Verstrickungen führen können (z.B. Verkabelung), oder an denen er zuvor stecken geblieben ist. Der Roboter kann seine eigenen virtuellen Grenzen einstellen, z.B. um einen Bereich mit vielen Hindernissen zu umgehen, die viel Zeit zum Navigieren benötigen, und die virtuelle Grenze anheben, wenn er über eine ausreichende Akkulaufzeit zur Reinigung des Bereichs verfügt.
  • In einer Ausführungsform muss der Roboter eine Karte erzeugen, bevor der Benutzer die gewünschten virtuellen Grenzen markieren kann. Eine Trainingseinheit kann erforderlich sein, damit der Roboter das Gebiet kartografieren und dem Benutzer die Karte präsentieren kann. Um eine lange Verzögerung zu vermeiden, kann der Roboter das Gebiet mit Hilfe von breiteren Fahrspuren kartieren. Anstatt jeden Zentimeter des Bodens wie in einem normalen Reinigungsmodus abzudecken, deckt der Roboter den Bereich im Bereich seines LIDARs oder eines anderen Kartensensors ab. Dies könnte beispielsweise 6 Fuß Fahrspuren für LIDAR bedeuten und optional auch ein Bewegen entlang der Wände. Für einen bildbasierten SLAM-Algorithmus kann ein einziger Durchgang durch einen Raum ausreichend sein.
  • In einer Ausführungsform gibt ein Benutzer eine virtuelle Grenze auf einer Bereichskarte für einen bestimmten Roboter an. Die virtuelle Grenze wird einem entfernten Server in den globalen Koordinaten der Bereichskarte bereitgestellt. Die virtuelle Grenze wird dann auf den Roboter heruntergeladen. Der Roboter wandelt die virtuelle Grenze in globale Koordinaten um, indem er die virtuelle Grenze in eine Vielzahl von Liniensegmenten segmentiert, die einer Vielzahl von Teilkarten entsprechen. Die Liniensegmente werden für jede Teilkarte in lokale Koordinaten umgewandelt. Infolge der Eingabe jedes Teilkartenbereichs vergleicht der Roboter das Liniensegment mit der Teilkarte, um die virtuelle Grenze für die Teilkarte zu bestimmen.
  • In einer Ausführungsform können Bereiche zu einer Karte mit virtuellen Grenzen hinzugefügt werden. Die Koordinaten der Karte werden so angepasst, dass neue Bereiche außerhalb des ursprünglichen Koordinatenbereichs (z.B. links von der 0,0-Koordinate) berücksichtigt werden. Auch die Koordinaten der virtuellen Grenzen werden angepasst, um das neue Koordinatensystem widerzuspiegeln.
  • In einer Ausführungsform bezeichnet die virtuelle Grenze einen Bereich, wie beispielsweise einen zu vermeidenden Bereich oder einen zu reinigenden Bereich. Der Grenzbereich kann von einem Benutzer ausgewählt werden, der einen bestimmten aus einer Vielzahl von markierten Bereichen auf der globalen Karte eines Roboters anzeigt.
  • Figurenliste
    • 1 ist ein Diagramm eines Reinigungsroboters mit einem LIDAR-Turm gemäß einer Ausführungsform.
    • 2 ist ein Diagramm eines Reinigungsroboters und einer Ladestation gemäß einer Ausführungsform.
    • 3 ist ein Diagramm der Unterseite eines Reinigungsroboters gemäß einer Ausführungsform.
    • 4 ist ein Diagramm einer Smartphone-Steuerungs-Anwendungsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform.
    • 5 ist ein Diagramm einer intelligenten Uhrensteuerungs-Anwendungsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform.
    • 6 ist ein Diagramm eines elektronischen Systems für einen Reinigungsroboter gemäß einer Ausführungsform.
    • 7 ist ein vereinfachtes Blockdiagramm eines repräsentativen Computersystems und eines Client-Computersystems, das zur Implementierung bestimmter Ausführungsformen der vorliegenden Erfindung geeignet ist.
    • 8 ist ein Diagramm der globalen Karte eines Roboters mit einer benutzerdefinierten virtuellen Grenze für einen Reinigungsroboter gemäß einer Ausführungsform.
    • 9 ist ein Flussdiagramm eines Prozesses zum Erzeugen virtueller Grenzsegmente für Teilkarten gemäß einer Ausführungsform.
    • 10 ist ein Diagramm, das eine Ausführungsform zur Aktualisierung eines Kartenkoordinatensystems darstellt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Gesamtarchitektur
  • 1 ist ein Diagramm eines Reinigungsroboters mit einem LIDAR-Revolver bzw. - Turm gemäß einer Ausführungsform. Ein Reinigungsroboter 102 verfügt über einen LIDAR (Light Detection and Ranging) Turm 104, der einen rotierenden Laserstrahl 106 aussendet. Erkannte Reflexionen des Laserstrahls von Objekten werden verwendet, um sowohl den Abstand zu Objekten als auch den Standort des Reinigungsroboters zu berechnen. Eine Ausführungsform der Entfernungsberechnung ist in US Pat. Nr. 8,996,172 , „Abstandssensorsystem und -verfahren“ gezeigt, dessen Offenbarung hierin durch Verweis aufgenommen ist. Alternativ kann VSLAM (Visual SLAM mit Bildsensoren) oder andere Lokalisierungsmethoden verwendet werden. Die gesammelten Daten werden auch zur Erstellung einer Karte unter Verwendung eines SLAM-Algorithmus (Simultaneous Localization and Mapping) verwendet. Eine Ausführungsform eines SLAM-Algorithmus ist in US Pat. Nr. 8,903,589 , „Verfahren und Vorrichtung zur gleichzeitigen Lokalisierung und Abbildung der mobilen Roboterumgebung“, beschrieben, dessen Offenbarung hierin durch Verweis aufgenommen ist.
  • 2 ist ein Diagramm eines Reinigungsroboters und einer Ladestation gemäß einer Ausführungsform. Der Reinigungsroboter 102 mit einem Turm 10 ist dargestellt. Ebenfalls dargestellt ist eine Abdeckung 204, die geöffnet werden kann, um auf einen Schmutzsammelbeutel und die Oberseite einer Bürste zuzugreifen. Die Tasten 202 ermöglichen grundlegende Funktionen des Roboterreinigers, wie z.B. das Starten eines Reinigungsvorgangs. Eine Anzeige 205 stellt dem Benutzer Informationen zur Verfügung. Der Reinigungsroboter 102 kann an eine Ladestation 206 andocken und über die Ladekontakte 208 Strom beziehen.
  • 3 ist ein Diagramm der Unterseite eines Reinigungsroboters gemäß einer Ausführungsform. Räder 302 bewegen den Reinigungsroboter, und eine Bürste 304 hilft, dass loser Schmutz in den Schmutzbeutel gesaugt wird.
  • 4 ist ein Diagramm einer Smartphonesteuerungs-Anwendungsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform. Ein Smartphone 402 verfügt über eine Anwendung, die heruntergeladen wird, um den Reinigungsroboter zu steuern. Eine einfach zu bedienende Schnittstelle verfügt über eine Starttaste 404, um die Reinigung einzuleiten.
  • 5 ist ein Diagramm einer intelligenten Uhrensteuerungs-Anwendungsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform. Es sind Beispielanzeigen angezeigt. Eine Anzeige 502 stellt eine einfach zu bedienende Starttaste bereit. Ein Display 504 bietet die Möglichkeit, mehrere Reinigungsroboter zu steuern. Eine Anzeige 506 gibt dem Benutzer eine Rückmeldung, z.B. eine Meldung, dass der Reinigungsroboter geendet hat bzw. die Reinigung beendet hat.
  • 6 ist ein Übersichtsdiagramm eines elektronischen Systems für einen Reinigungsroboter gemäß einer Ausführungsform. Ein Reinigungsroboter 602 beinhaltet einen Prozessor 604, der ein in den Speicher 606 heruntergeladenes Programm bedient. Der Prozessor kommuniziert mit anderen Komponenten über einen Bus 634 oder andere elektrische Verbindungen. In einem Reinigungsmodus steuern Radmotoren 608 die Räder unabhängig voneinander, um den Roboter zu bewegen und zu steuern. Bürsten- und Vakuummotoren 610 reinigen den Boden und können in verschiedenen Betriebsarten betrieben werden, wie z.B. einem Intensivreinigungsmodus mit höherer Leistung oder einem Modus mit normaler Leistung.
  • Ein LIDAR-Modul 616 enthält einen Laser 620 und einen Detektor 616. Alternativ kann ein Bildsensor mit einem VSLAM-Betrieb verwendet werden. Ein Revolvermotor bzw. Turmmotor 622 bewegt den Laser und den Detektor, um Objekte bis zu 360 Grad um den Reinigungsroboter herum zu erfassen. Es gibt mehrere Umdrehungen pro Sekunde, z.B. etwa 5 Umdrehungen pro Sekunde. Verschiedene Sensoren stellen Eingänge für den Prozessor 604 zur Verfügung, wie beispielsweise ein Höhensensor 624, der den Kontakt mit einem Objekt anzeigt, ein Näherungssensor 626, der die Nähe zu einem Objekt anzeigt, und Beschleunigungs- und Neigungssensoren 628, die einen Abfall (z.B. Treppe) oder ein Kippen des Reinigungsroboters (z.B. beim Besteigen eines Hindernisses) anzeigen. Beispiele für den Einsatz solcher Sensoren für die Navigation und andere Steuerungen des Reinigungsroboters sind in US Pat. Nr. 8,855,914 , „Verfahren und Vorrichtung zum Durchqueren von Ecken einer Bodenfläche mit einer Roboter-Oberflächenbehandlungsvorrichtung“ ausgeführt, dessen Offenbarung hierin durch Bezugnahme aufgenommen ist. Andere Sensoren können in andere Ausführungsformen einbezogen werden, wie beispielsweise ein Schmutzsensor zum Erfassen der Menge an zu saugendem Schmutz, ein Motorstromsensor zum Erfassen, wenn der Motor überlastet ist, z.B. weil er in etwas verstrickt bzw. verfangen ist, ein Bodensensor zum Erfassen der Art des Bodens und ein Bildsensor (Kamera) zum Bereitstellen von Bildern der Umgebung und von Objekten.
  • Eine Batterie 614 versorgt den Rest der Elektronik über Leistungsanschlüsse (nicht dargestellt) mit Strom. Eine Batterieladeschaltung 612 liefert einem Akku 6 bzw. einer Batterie 14 Ladestrom, wenn der Reinigungsroboter an die Ladestation 206 von 2 angedockt ist. Eingabetasten 623 ermöglichen eine direkte Steuerung des Roboterreinigers 602 in Verbindung mit einem Display 630. Alternativ kann der Reinigungsroboter 602 ferngesteuert werden und Daten über Transceiver 632 an entfernte Standorte senden.
  • Über das Internet 636 und/oder andere Netzwerke kann der Reinigungsroboter gesteuert werden und Informationen an einen entfernten Benutzer zurücksenden. Ein Remote-Server bzw. ein entfernter Server 638 kann Befehle bereitstellen und Daten verarbeiten, die vom Reinigungsroboter hochgeladen wurden. Ein Handheld-Smartphone bzw. Handsteuergerät oder eine Uhr 640 kann von einem Benutzer bedient werden, um Befehle entweder direkt an den Reinigungsroboter 602 zu senden (über Bluetooth, direktes RF, ein WiFi-LAN, etc.) oder Befehle über eine Verbindung zum Internet 636 zu senden. Die Befehle können zur weiteren Verarbeitung an den Server 638 gesendet und dann in modifizierter Form über das Internet 636 an den Reinigungsroboter 602 weitergeleitet werden.
  • Computersysteme für eine Medienplattform und ein Client-System
  • Verschiedene hierin beschriebene Vorgänge können auf Computersystemen ausgeführt werden. 7 zeigt ein vereinfachtes Blockdiagramm eines repräsentativen Computersystems 702 und eines Client-Computersystems 704, das zur Implementierung bestimmter Ausführungsformen der vorliegenden Erfindung geeignet ist. In verschiedenen Ausführungsformen kann das Computersystem 702 oder ähnliche Systeme das Reinigungsroboterprozessorsystem, den entfernten Server oder ein anderes hierin beschriebenes Computersystem oder Teile davon implementieren. Das Client-Computersystem 704 oder ähnliche Systeme kann Benutzergeräte wie ein Smartphone oder eine Uhr mit einer Roboterreinigungsanwendung implementieren.
  • Das Computersystem 702 kann eines von verschiedenen Typen sein, enthaltend einen Prozessor und einen Speicher, ein tragbares Handheld-Gerät (z.B. ein iPhone®-Handy, ein iPad®-Computertablett, ein PDA), ein tragbares Gerät (z.B. ein Google Glass®-Kopfbildschirm), einen Personalcomputer, eine Arbeitsstation, einen Großrechner, ein Kiosk, ein Server-Rack oder ein anderes Datenverarbeitungssystem.
  • Das Computersystem 702 kann ein Verarbeitungs-Subsystem bzw. ein Verabeitungsteilsystem 710 beinhalten. Das Verarbeitungs-Subsystem 710 kann über ein Bussubsystem 770 mit einer Reihe von Peripheriesystemen kommunizieren. Diese peripheren Systeme können ein I/O-Subsystem 730, ein Speichersubsystem bzw. Speicherteilsystem 768 und ein Kommunikationssubsystem bzw. Kommunikationsteilsystem 740 beinhalten.
  • Das Bussubsystem 770 stellt einen Mechanismus bereit, mit dem die verschiedenen Komponenten und Subsysteme des Server-Computersystems 704 wie vorgesehen miteinander kommunizieren können. Obwohl das Bussubsystem 770 schematisch als einzelner Bus dargestellt ist, können alternative Ausführungsformen des Bussubsystems mehrere Busse verwenden. Das Bussubsystem 770 kann ein lokales Netzwerk bilden, das die Kommunikation bei der Verarbeitung des Subsystems 710 und anderer Komponenten des Server-Computersystems 702 unterstützt. Das Bussubsystem 770 kann mit verschiedenen Technologien implementiert sein, einschließlich Serverracks, Hubs, Routern usw. Das Bussubsystem 770 kann eine von mehreren Arten von Busstrukturen sein, einschließlich eines Speicherbusses oder einer Speichersteuerung, eines Peripheriebusses und eines lokalen Busses unter Verwendung einer beliebigen Vielzahl von Busarchitekturen. Solche Architekturen können beispielsweise einen ISA-Bus (Industry Standard Architecture), einen MCA-Bus (Micro Channel Architecture), einen Enhanced ISA-Bus (EISA), einen lokalen Bus (Video Electronics Standards Association, VESA) und einen PCI-Bus (Peripheral Component Interconnect) beinhalten, der als Mezzanine-Bus nach dem IEEE-Standard P1386.1 und dergleichen implementiert werden kann.
  • Das I/O-Subsystem 730 kann Vorrichtungen und Mechanismen zur Eingabe von Informationen in das Computersystem 702 und/oder zur Ausgabe von Informationen aus oder über das Computersystem 702 beinhalten. Im Allgemeinen ist die Verwendung des Begriffs „Eingabegerät“ dazu gedacht, alle möglichen Arten von Vorrichtungen und Mechanismen zur Eingabe von Informationen in das Computersystem 702 einzubeziehen. Eingabevorrichtungen für die Benutzeroberfläche können beispielsweise eine Tastatur, Zeigevorrichtungen wie eine Maus oder ein Trackball, ein Touchpad oder ein in eine Anzeige integrierter Touchscreen, ein Scrollrad, ein Klickrad, ein Zifferblatt, eine Taste, ein Schalter, eine Tastatur, Audioeingabevorrichtungen mit Spracherkennungssystemen, Mikrofone und andere Arten von Eingabevorrichtungen sein. Eingabegeräte der Benutzeroberfläche können auch Bewegungssensor- und/oder Gestenerkennungsgeräte wie den Microsoft Kinect® Bewegungssensor beinhalten, der es Benutzern ermöglicht, eine Eingabevorrichtung zu steuern und mit ihr zu interagieren, das Microsoft Xbox® 360 Spielsteuergerät, Geräte, die eine Schnittstelle zum Empfangen von Eingaben über Gesten und gesprochene Befehle bereitstellen. Eingabegeräte der Benutzeroberfläche können auch Geräte zur Erkennung von Augengesten beinhalten, wie beispielsweise den Google Glass® Blinkdetektor, der Augenaktivitäten (z.B. „Blinzeln“ während der Aufnahme von Bildern und/oder der Auswahl eines Menüs) von Benutzern erkennt und die Augengesten als Eingabe in ein Eingabegerät (z.B. Google Glass®) umwandelt. Darüber hinaus können Eingabegeräte der Benutzeroberfläche Spracherkennungsgeräte beinhalten, die es den Benutzern ermöglichen, über Sprachbefehle mit Spracherkennungssystemen (z.B. Siri® navigator) zu interagieren.
  • Weitere Beispiele für Eingabegeräte der Benutzeroberfläche sind unter anderem dreidimensionale (3D-)Mäuse, Joysticks oder Zeige-Sticks, Gamepads und Grafiktabletts sowie Audio/Visuelle Geräte wie Lautsprecher, Digitalkameras, digitale Camcorder, tragbare Medienplayer, Webcams, Bildscanner, Fingerabdruckscanner, Barcodeleser, 3D-Scanner, 3D-Drucker, Laserentfernungsmesser und Blickverfolgungsgeräte. Darüber hinaus können Eingabegeräte der Benutzeroberfläche beispielsweise Eingabegeräte für die medizinische Bildgebung wie Computertomographie, Magnetresonanztomographie, Positionsemissionstomographie und medizinische Ultraschallgeräte sein. Eingabegeräte für die Benutzeroberfläche können beispielsweise auch Audioeingabegeräte wie MIDI-Tastaturen, digitale Musikinstrumente und dergleichen sein.
  • Ausgabevorrichtungen der Benutzeroberfläche können ein Anzeigesubsystem, Kontrollleuchten oder nicht-visuelle Anzeigen wie Audioausgabevorrichtungen usw. enthalten. Das Anzeigesubsystem kann eine Kathodenstrahlröhre (CRT), eine Flachbildvorrichtung, wie sie beispielsweise eine Flüssigkristallanzeige (LCD) oder eine Plasmaanzeige verwendet, eine Projektionsvorrichtung, ein Touchscreen und dergleichen sein. Im Allgemeinen umfasst die Verwendung des Begriffs „Ausgabegerät“ alle möglichen Arten von Vorrichtungen und Mechanismen zur Ausgabe von Informationen aus dem Computersystem 702 an einen Benutzer oder einen anderen Computer. Beispielsweise können Ausgabegeräte der Benutzeroberfläche ohne Einschränkung eine Vielzahl von Anzeigevorrichtungen beinhalten, die Text, Grafiken und Audio-/Videoinformationen visuell übertragen, wie z. B. Monitore, Drucker, Lautsprecher, Kopfhörer, Navigationssysteme für Kraftfahrzeuge, Plotter, Sprachausgabegeräte und Modems.
  • Das Verarbeitungs-Subsystem 710 steuert den Betrieb des Computersystems 702 und kann eine oder mehrere Verarbeitungseinheiten 712, 714 usw. umfassen. Eine Verarbeitungseinheit kann einen oder mehrere Prozessoren beinhalten, einschließlich Einzelkernprozessoren oder Mehrkernprozessoren, einen oder mehrere Kerne von Prozessoren oder Kombinationen davon. In einigen Ausführungsformen kann das Verarbeitungs-Subsystem 710 einen oder mehrere spezielle Co-Prozessoren wie Grafikprozessoren, digitale Signalprozessoren (DSPs) oder dergleichen beinhalten. In einigen Ausführungsformen können einige oder alle Verarbeitungseinheiten des Verarbeitungs-Subsystems 710 unter Verwendung kundenspezifischer Schaltungen implementiert werden, wie beispielsweise anwendungsspezifische integrierte Schaltungen (ASICs) oder Field Programmable Gate Arrays (FPGAs). In einigen Ausführungsformen führen solche integrierten Schaltungen Anweisungen aus, die auf der Schaltung selbst gespeichert sind. In anderen Ausführungsformen können die Verarbeitungseinheit(en) Anweisungen ausführen, die in einem lokalen Speicher gespeichert sind, z.B. in einem lokalen Speicher 722, 724. Jede Art von Prozessoren in jeder beliebigen Kombination kann in die Verarbeitungseinheit(en) 712, 714 einbezogen werden.
  • In einigen Ausführungsformen kann das Verarbeitungs-Subsystem 710 in einem modularen Design implementiert werden, das eine beliebige Anzahl von Modulen beinhaltet (z.B. Blades in einer Blade-Server-Implementierung). Jedes Modul kann Verarbeitungseinheiten und lokale Speicher beinhalten. So kann beispielsweise das Verarbeitungs-Subsystem 710 die Verarbeitungseinheit 712 und den entsprechenden lokalen Speicher 722 sowie die Verarbeitungseinheit 714 und den entsprechenden lokalen Speicher 724 beinhalten.
  • Der lokale Speicher 722, 724 kann flüchtige Speichermedien (z.B. herkömmliche DRAM, SRAM, SDRAM oder dergleichen) und/oder nichtflüchtige Speichermedien (z.B. eine magnetische oder optische Platte, Flash-Speicher oder dergleichen) beinhalten. Speichermedien, die in den lokalen Speicher 722, 724 integriert sind, können je nach Wunsch fest, wechselbar oder erweiterbar sein. Der lokale Speicher 722, 724 kann physisch oder logisch in verschiedene Untereinheiten unterteilt werden, wie beispielsweise einen Systemspeicher, ein ROM und eine permanente Speichervorrichtung. Der Systemspeicher kann eine Schreib-Lese-Speichervorrichtung oder ein flüchtiger Schreib-Lese-Speicher sein, wie beispielsweise ein dynamischer Direktzugriffsspeicher. Der Systemspeicher kann einige oder alle Anweisungen und Daten speichern, die die Verarbeitungseinheit(en) 712, 714 zur Laufzeit benötigen. Der ROM kann statische Daten und Anweisungen speichern, die von den Verarbeitungseinheiten 712, 714 benötigt werden. Die permanente Speichervorrichtung kann eine nichtflüchtige Schreib-Lese-Speichervorrichtung sein, die Anweisungen und Daten speichern kann, selbst wenn ein Modul mit einer oder mehreren Verarbeitungseinheiten 712, 714 und einem lokalen Speicher 722, 724 ausgeschaltet ist. Der hierin verwendete Begriff „Speichermedium“ umfasst jedes Medium, auf dem Daten auf unbestimmte Zeit gespeichert werden können (vorbehaltlich Überschreiben, elektrischer Störungen, Stromausfall oder dergleichen), nicht jedoch Trägerwellen und vorübergehende elektronische Signale, die sich drahtlos oder über drahtgebundene Verbindungen ausbreiten.
  • In einigen Ausführungsformen kann der lokale Speicher 722, 724 ein oder mehrere Softwareprogramme speichern, die von den Verarbeitungseinheiten 712, 714 ausgeführt werden sollen, wie beispielsweise ein Betriebssystem und/oder Programme, die verschiedene Serverfunktionen wie Funktionen des UPP-Systems 102 oder andere Server, die dem UPP-System 102 zugeordnet sind, implementieren. „Software“ bezieht sich im Allgemeinen auf Befehlsfolgen, die bei Ausführung durch die Verarbeitungseinheit(en) 712, 714 das Computersystem 702 (oder Teile davon) veranlassen, verschiedene Operationen durchzuführen, wodurch eine oder mehrere spezifische Maschinenimplementierungen definiert werden, die die Operationen der Softwareprogramme ausführen und ausführen. Die Anweisungen können als Firmware gespeichert werden, die sich im schreibgeschützten Speicher befindet, und/oder als Programmcode, der auf nichtflüchtigen Speichermedien gespeichert ist und zur Ausführung durch die Verarbeitungseinheit(en) 712, 714 in den flüchtigen Arbeitsspeicher eingelesen werden kann. In einigen Ausführungsformen können die Anweisungen vom Speichersubsystem 768 gespeichert werden (z.B. computerlesbare Speichermedien). In verschiedenen Ausführungsformen können die Verarbeitungseinheiten eine Vielzahl von Programmen oder Codeanweisungen ausführen und mehrere gleichzeitig ausgeführte Programme oder Prozesse verwalten. Zu einem bestimmten Zeitpunkt kann ein Teil oder der gesamte auszuführende Programmcode im lokalen Speicher 722, 724 und/oder im Speichersubsystem, einschließlich möglicherweise auf einem oder mehreren Speichermedien, gespeichert sein. Software kann als ein einzelnes Programm oder eine Sammlung von separaten Programmen oder Programmmodulen implementiert werden, die nach Belieben interagieren. Von den lokalen Speichern 722, 724 (oder den nachfolgend beschriebenen nicht-lokalen Speichern) können die Verarbeitungseinheiten 712, 714 Programmanweisungen zur Ausführung und Daten zur Verarbeitung abrufen, um verschiedene oben beschriebene Operationen auszuführen.
  • Das Speichersubsystem 768 bietet ein Repository oder einen Datenspeicher zum Speichern von Informationen, die vom Computersystem 702 verwendet werden. Das Speichersubsystem 768 stellt ein greifbares, nicht-flüchtiges, computerlesbares Speichermedium zur Speicherung der grundlegenden Programmier- und Datenkonstrukte dar, die die Funktionalität einiger Ausführungsformen bereitstellen. Software (Programme, Codemodule, Anweisungen), die bei Ausführung durch das Verarbeitungs-Subsystem 710 die oben beschriebene Funktionalität bieten, kann im Speichersubsystem 768 gespeichert werden. Die Software kann von einer oder mehreren Verarbeitungseinheiten des Verarbeitungsteilsystems 710 ausgeführt werden. Das Speichersubsystem 768 kann auch ein Repository für die Speicherung von Daten bereitstellen, die gemäß der vorliegenden Erfindung verwendet werden.
  • Das Speichersubsystem 768 kann eine oder mehrere nichtflüchtige Speichervorrichtungen beinhalten, einschließlich flüchtiger und nichtflüchtiger Speichervorrichtungen. Wie in 7 dargestellt, beinhaltet das Speichersubsystem 768 einen Systemspeicher 760 und ein computerlesbares Speichermedium 752. Der Systemspeicher 760 kann eine Reihe von Speichern beinhalten, darunter einen flüchtigen Hauptspeicher zum Speichern von Anweisungen und Daten während der Programmausführung und einen nichtflüchtigen ROM- oder Flash-Speicher, in dem feste Anweisungen gespeichert sind. In einigen Implementierungen kann ein Basic Input/Output System (BIOS), das die grundlegenden Routinen enthält, die helfen, Informationen zwischen Elementen innerhalb des Computersystems 702 zu übertragen, z.B. beim Start, typischerweise im ROM gespeichert werden. Das RAM enthält typischerweise Daten- und/oder Programmmodule, die derzeit durch die Verarbeitung des Subsystems 710 betrieben und ausgeführt werden. In einigen Implementierungen kann der Systemspeicher 760 mehrere verschiedene Speichertypen beinhalten, wie beispielsweise den statischen Direktzugriffsspeicher (SRAM) oder den dynamischen Direktzugriffsspeicher (DRAM). Das Speichersubsystem 768 kann auf magnetischen, optischen, Halbleiter- oder anderen Datenspeichermedien basieren. Direct Attached Storage, Storage Area Networks, Netzwerkspeicher und dergleichen können verwendet werden. Alle Datenspeicher oder andere Datensammlungen, die hierin als von einem Dienst oder Server produziert, verbraucht oder gepflegt beschrieben werden, können im Speichersubsystem 768 gespeichert werden.
  • Der Systemspeicher 760 kann beispielsweise, wie in 7 dargestellt, Anwendungsprogramme bzw. Applikationsprogramme 762 speichern, zu denen Client-Anwendungen, Webbrowser, Mid-Tier-Anwendungen, relationale Datenbank-Managementsysteme (RDBMS) usw., Programmdaten 764 und ein oder mehrere Betriebssysteme 766 gehören können. Beispielsweise kann ein Beispielbetriebssystem verschiedene Versionen von Microsoft Windows®, Apple Macintosh® und/oder Linux-Betriebssystemen, eine Vielzahl von handelsüblichen UNIX®- oder UNIX-ähnlichen Betriebssystemen (einschließlich, aber nicht beschränkt auf die Vielzahl von GNU/Linux-Betriebssystemen, Google Chrome® OS und dergleichen) und/oder mobile Betriebssysteme wie iOS, Windows® Phone, Android® OS, BlackBerry® 10 OS, Palm® OS und Palm® OS beinhalten.
  • Computerlesbare Speichermedien 752 können Programmier- und Datenkonstrukte speichern, die die Funktionalität einiger Ausführungsformen bieten. Software (Programme, Codemodule, Anweisungen), die, wenn sie durch die Verarbeitung des Subsystems 710 ausgeführt wird, von einem Prozessor bereitgestellt wird, der die oben beschriebene Funktionalität bietet, kann im Speichersubsystem 768 gespeichert werden. So können beispielsweise computerlesbare Speichermedien 752 nichtflüchtige Speicher wie eine Festplatte, ein Magnetplattenlaufwerk, ein optisches Laufwerk wie eine CD-ROM, DVD, eine Blu-Ray®-Disk oder andere optische Medien enthalten. Computerlesbare Speichermedien 752 können Zip®-Laufwerke, Flash-Speicherkarten, USB-Sticks, sichere digitale (SD) Karten, DVD-Disks, digitale Videobänder und dergleichen beinhalten, sind aber nicht darauf beschränkt. Computerlesbare Speichermedien 752 können auch Solid-State-Laufwerke (SSD) beinhalten, die auf nichtflüchtigem Speicher basieren, wie Flash-Speicher-basierte SSDs, Unternehmens-Flash-Laufwerke, Solid-State-ROMs und dergleichen, SSDs, die auf flüchtigem Speicher basieren, wie Solid-State-RAM, dynamisches RAM, statisches RAM, DRAM-basierte SSDs, magnetoresistive RAM (MRAM) SSDs und Hybrid-SSDs, die eine Kombination aus DRAM und Flash-Speicherbasierten SSDs verwenden. Computerlesbare Datenträger 752 können die Speicherung von computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und anderen Daten für das Computersystem 702 ermöglichen.
  • In bestimmten Ausführungsformen kann das Speichersubsystem 768 auch einen computerlesbaren Speichermedienleser 750 beinhalten, der weiterhin mit dem computerlesbaren Speichermedium 752 verbunden sein kann. Zusammen und optional in Kombination mit dem Systemspeicher 760 können computerlesbare Speichermedien 752 entfernte, lokale, feste und/oder wechselbare Speichervorrichtungen sowie Speichermedien zum Speichern computerlesbarer Informationen umfassend darstellen.
  • In bestimmten Ausführungsformen kann das Computersystem 702 Unterstützung für die Ausführung einer oder mehrerer virtueller Maschinen bieten. Das Computersystem 702 kann ein Programm wie beispielsweise einen Hypervisor ausführen, um die Konfiguration und Verwaltung der virtuellen Maschinen zu erleichtern. Jeder virtuellen Maschine können Speicher, Rechenleistung (z.B. Prozessoren, Kerne), I/O und Netzwerkressourcen zugewiesen werden. Jede virtuelle Maschine betreibt typischerweise ihr eigenes Betriebssystem, das gleich oder verschieden von den Betriebssystemen sein kann, die von anderen virtuellen Maschinen ausgeführt werden, die vom Computersystem 702 ausgeführt werden. Dementsprechend können mehrere Betriebssysteme gleichzeitig vom Computersystem 702 ausgeführt werden. Jede virtuelle Maschine läuft im Allgemeinen unabhängig von den anderen virtuellen Maschinen.
  • Das Kommunikationssubsystem 740 bietet eine Schnittstelle zu anderen Computersystemen und Netzwerken. Das Kommunikationssubsystem 740 dient als Schnittstelle zum Empfangen von Daten von und Übertragen von Daten an andere Systeme vom Computersystem 702. So kann beispielsweise das Kommunikationssubsystem 740 dem Computersystem 702 ermöglichen, einen Kommunikationskanal zu einem oder mehreren Client-Computern über das Internet zum Empfangen und Senden von Informationen von und zu den Client-Computern einzurichten.
  • Das Kommunikationssubsystem 740 kann sowohl drahtgebundene als auch drahtlose Kommunikationsprotokolle unterstützen. So kann beispielsweise das Kommunikationssubsystem 740 in bestimmten Ausführungsformen Hochfrequenz(RF)-Sender-Empfangerkomponenten für den Zugriff auf drahtlose Sprach- und/oder Datennetze beinhalten (z.B. unter Verwendung von Mobilfunktechnologie, fortschrittlicher Datennetztechnologie wie 3G, 4G oder EDGE (erhöhte Datenraten für die globale Entwicklung), WiFi (IEEE 802.11-Familienstandards oder andere mobile Kommunikationstechnologien oder eine beliebige Kombination davon), GPS-Empfängerkomponenten und/oder andere Komponenten. In einigen Ausführungsformen kann das Kommunikationssubsystem 740 zusätzlich zu oder anstelle einer drahtlosen Schnittstelle eine drahtgebundene Netzwerkverbindung (z.B. Ethernet) bereitstellen.
  • Das Kommunikationssubsystem 740 kann Daten in verschiedenen Formen empfangen und senden. So kann beispielsweise das Kommunikationssubsystem 740 in einigen Ausführungsformen eine Eingabekommunikation in Form von strukturierten und/oder unstrukturierten Datenfeeds, Ereignisströmen, Ereignisaktualisierungen und dergleichen empfangen. So kann beispielsweise das Kommunikationssubsystem 740 konfiguriert werden, um Datenfeeds in Echtzeit von Nutzern von Social Media-Netzwerken und/oder anderen Kommunikationsdiensten wie Twitter®-Feeds, Facebook®-Updates, Webfeeds wie Rich Site Summary (RSS) Feeds und/oder Echtzeit-Updates von einer oder mehreren Informationsquellen Dritter zu empfangen (oder zu senden).
  • In bestimmten Ausführungsformen kann das Kommunikationssubsystem 740 konfiguriert sein, um Daten in Form von kontinuierlichen Datenströmen zu empfangen, die Ereignisströme von Echtzeit-Ereignissen und/oder Ereignisaktualisierungen beinhalten können, die kontinuierlich oder unbegrenzt sein können, ohne explizites Ende. Beispiele für Anwendungen, die kontinuierliche Daten generieren, können beispielsweise Sensordatenanwendungen, Finanzticker, Netzwerk-Performance-Messwerkzeuge (z.B. Netzwerküberwachungs- und Traffic-Management-Anwendungen), Clickstream-Analyse-Tools, Kfz-Verkehrsüberwachung und dergleichen sein.
  • Das Kommunikationssubsystem 740 kann auch konfiguriert sein, um die strukturierten und/oder unstrukturierten Datenfeeds, Ereignisströme, Ereignisaktualisierungen und dergleichen an eine oder mehrere Datenbanken auszugeben, die mit einem oder mehreren Streaming-Datenquellencomputern verbunden mit dem Computersystem 702 in Verbindung stehen können.
  • Das Kommunikationssubsystem 740 kann eine Kommunikationsschnittstelle 742, z.B. eine WAN-Schnittstelle, bereitstellen, die die Datenkommunikation zwischen dem lokalen Netzwerk (Bus-Subsystem 770) und einem größeren Netzwerk, wie beispielsweise dem Internet, ermöglichen kann. Es können konventionelle oder andere Kommunikationstechnologien verwendet werden, einschließlich drahtgebundener (z.B. Ethernet, IEEE 802.3 Standards) und/oder drahtloser Technologien (z.B. WiFi, IEEE 802.11 Standards).
  • Das Computersystem 702 kann als Reaktion auf Anforderungen arbeiten, die über die Kommunikationsschnittstelle 742 empfangen werden. Darüber hinaus kann die Kommunikationsschnittstelle 742 in einigen Ausführungsformen die Computersysteme 702 miteinander verbinden und skalierbare Systeme bereitstellen, die in der Lage sind, hohe Aktivitätsvolumina zu verwalten. Es können konventionelle oder andere Techniken zur Verwaltung von Serversystemen und Serverfarmen (Sammlungen von Serversystemen, die zusammenarbeiten) verwendet werden, einschließlich der dynamischen Ressourcenzuweisung und -umverteilung.
  • Das Computersystem 702 kann mit verschiedenen benutzereigenen oder benutzergesteuerten Geräten über ein weiträumiges Netzwerk wie das Internet interagieren. Ein Beispiel für ein benutzergeführtes Gerät ist in 7 als Client-Computersystem 702 dargestellt. Das Client-Computersystem 704 kann beispielsweise als Verbrauchervorrichtung wie ein Smartphone, ein anderes Mobiltelefon, ein Tablet-Computer, ein tragbares Computergerät (z.B. eine intelligente Uhr, eine Brille), ein Desktopcomputer, ein Laptop usw. implementiert sein.
  • So kann beispielsweise das Client-Computersystem 704 über die Kommunikationsschnittstelle 742 mit dem Computersystem 702 kommunizieren. Das Client-Computersystem 704 kann herkömmliche Computerkomponenten wie Verarbeitungseinheit(en) 782, Speichervorrichtung 784, Netzwerkschnittstelle 780, Benutzereingabevorrichtung 786 und Benutzerausgabevorrichtung 788 beinhalten. Das Client-Computersystem 704 kann eine Computervorrichtung sein, die in einer Vielzahl von Formfaktoren implementiert ist, wie beispielsweise ein Desktop-Computer, Laptop-Computer, Tablet-Computer, Smartphone, andere mobile Computervorrichtungen, tragbare Computergeräte oder dergleichen.
  • Eine Verarbeitungseinheit(en) 782 und eine Speichervorrichtung 784 können ähnlich sein wie die oben beschriebenen Verarbeitungseinheiten 712, 714 und lokale Speicher 722, 724. Je nach den Anforderungen an das Client-Computersystem 704 können geeignete Vorrichtungen ausgewählt werden; beispielsweise kann das Client-Computersystem 704 als „Thin“-Client mit eingeschränkter Verarbeitungsfähigkeit oder als Hochleistungs-Computergerät implementiert sein. Das Client-Computersystem 704 kann mit Programmcode bereitgestellt sein, der von den Verarbeitungseinheiten 782 ausführbar ist, um verschiedene Interaktionen mit dem Computersystem 702 eines Nachrichtenverwaltungsdienstes zu ermöglichen, wie z.B. den Zugriff auf Nachrichten, das Ausführen von Aktionen auf Nachrichten und andere oben beschriebene Interaktionen. Einige Client-Computersysteme 704 können auch unabhängig vom Nachrichtenverwaltungsdienst mit einem Nachrichtendienst interagieren.
  • Die Netzwerkschnittstelle 780 kann eine Verbindung zu einem Weitverkehrsnetz (z.B. dem Internet) herstellen, an das auch die Kommunikationsschnittstelle 740 des Computersystems 702 angeschlossen ist. In verschiedenen Ausführungsformen kann die Netzwerkschnittstelle 780 eine verkabelte Schnittstelle (z.B. Ethernet) und/oder eine drahtlose Schnittstelle beinhalten, die verschiedene HF-Datenübertragungsstandards wie WiFi, Bluetooth oder Mobilfunk-Datennetzstandards (z.B. 3G, 4G, LTE, etc.) implementiert.
  • Die Benutzereingabevorrichtung 786 kann jede Vorrichtung (oder Vorrichtungen) beinhalten, über die ein Benutzer Signale an das Client-Computersystem 704 bereitstellen kann; das Client-Computersystem 704 kann die Signale als Hinweis auf besondere Benutzeranforderungen oder -informationen interpretieren. In verschiedenen Ausführungsformen kann die Benutzereingabevorrichtung 786 eine Tastatur, ein Touchpad, einen Touchscreen, eine Maus oder eine andere Zeigevorrichtung, ein Scrollrad, ein Click Wheel, ein Zifferblatt, eine Taste, einen Schalter, eine Tastatur, ein Mikrofon und so weiter beinhalten.
  • Die Benutzerausgabevorrichtung 788 kann jede Vorrichtung beinhalten, über die das Client-Computersystem 704 einem Benutzer Informationen bereitstellen kann. So kann beispielsweise die Benutzerausgabevorrichtung 788 eine Anzeige zum Anzeigen von Bildern beinhalten, die von dem Client-Computersystem 704 erzeugt oder an dieses geliefert werden. Die Anzeige kann verschiedene Bilderzeugungstechnologien beinhalten, z.B. eine Flüssigkristallanzeige (LCD), Leuchtdiode (LED) einschließlich organischer Leuchtdioden (OLED), Projektionssystem, Kathodenstrahlröhre (CRT) oder dergleichen, zusammen mit unterstützender Elektronik (z.B. Digital-Analog- oder Analog-Digital-Wandler, Signalprozessoren oder dergleichen). Einige Ausführungsformen können eine Vorrichtung, wie beispielsweise einen Touchscreen, beinhalten, der sowohl als Ein- als auch als Ausgabegerät fungiert. In einigen Ausführungsformen können andere Benutzerausgabevorrichtungen 788 zusätzlich zu oder anstelle einer Anzeige vorgesehen sein. Beispiele sind Blinkleuchten, Lautsprecher, haptische „Anzeige“-Geräte, Drucker usw.
  • Einige Ausführungsformen beinhalten elektronische Komponenten, wie Mikroprozessoren und Speicher, die Computerprogrammanweisungen auf einem computerlesbaren Speichermedium speichern. Viele der in dieser Spezifikation beschriebenen Funktionen können als Prozesse implementiert werden, die als ein Satz von Programmanweisungen spezifiziert sind, die auf einem computerlesbaren Speichermedium kodiert sind. Wenn diese Programmanweisungen von einer oder mehreren Verarbeitungseinheiten ausgeführt werden, veranlassen sie die Verarbeitungseinheit(en), verschiedene in den Programmanweisungen angegebene Vorgänge auszuführen. Beispiele für Programmanweisungen oder Computercode sind Maschinencode, wie er von einem Compiler erzeugt wird, und Dateien mit höherem Code, die von einem Computer, einer elektronischen Komponente oder einem Mikroprozessor unter Verwendung eines Interpreters ausgeführt werden. Durch geeignete Programmierung können die Verarbeitungseinheiten 712, 714 und 782 verschiedene Funktionen für das Computersystem 702 und das Client-Computersystem 704 bereitstellen, einschließlich einer der hierin beschriebenen Funktionen, die von einem Server oder Client ausgeführt werden, oder einer anderen Funktionalität im Zusammenhang mit Nachrichtenverwaltungsdiensten.
  • Es ist zu beachten, dass das Computersystem 702 und das Client-Computersystem 704 illustrativ sind und dass Abweichungen und Änderungen möglich sind. Computersysteme, die in Verbindung mit Ausführungsformen der vorliegenden Erfindung verwendet werden, können andere Fähigkeiten aufweisen, die hier nicht ausdrücklich beschrieben sind. Obwohl das Computersystem 702 und das Client-Computersystem 704 mit Bezug auf bestimmte Blöcke beschrieben werden, ist zu verstehen, dass diese Blöcke aus Gründen der Übersichtlichkeit definiert sind und nicht dazu bestimmt sind, eine bestimmte physische Anordnung von Bauteilen implizit zu enthalten. So können sich beispielsweise verschiedene Blöcke in derselben Einrichtung, im gleichen Server-Rack oder auf derselben Hauptplatine befinden, müssen sich aber nicht dort befinden. Außerdem müssen die Blöcke nicht mit physisch unterschiedlichen Komponenten übereinstimmen. Blöcke können konfiguriert werden, um verschiedene Operationen auszuführen, z.B. durch Programmierung eines Prozessors oder Bereitstellung einer geeigneten Steuerschaltung, und verschiedene Blöcke können je nachdem, wie die anfängliche Konfiguration erhalten wird, rekonfigurierbar sein oder nicht. Ausführungsformen der vorliegenden Erfindung können in einer Vielzahl von Vorrichtungen realisiert werden, einschließlich elektronischer Vorrichtungen, die mit einer beliebigen Kombination aus Schaltung und Software implementiert werden.
  • Virtuelle Grenzen
  • In einer Ausführungsform startet ein Benutzer den Roboter zunächst in einem „Trainings“-Modus. In diesem Modus folgt der Roboter dem Grundriss bzw. der Raumaufteilung und erkundet ihn bzw. diese und erstellt eine Karte. Der Benutzer kann ein Trainingssymbol oder einen Softkey in der Roboteranwendung auf einer Benutzervorrichtung auswählen. Der Benutzer öffnet Türen und stellt sicher, dass der Roboter Zugang zu allen gewünschten Bereichen hat. Nachdem dieser Vorgang abgeschlossen ist, erstellt der Roboter eine Abdeckungskarte mit dem erkundeten Gebiet und lädt sie auf einen entfernten Server hoch. Der Server lädt dann die Abdeckungskarte auf eine Benutzeranwendung auf einer Benutzervorrichtung, wie beispielsweise eine mobile Anwendung bzw. App, herunter. Der Benutzer hat nun die Möglichkeit, diese Karte zu speichern, um sie mit den virtuellen Grenzen zu verwenden oder die Erkundung abzubrechen und erneut zu versuchen. Sobald der Benutzer mit der resultierenden erkundeten Karte zufrieden ist, verwendet er nun die mobile App, um virtuelle Grenzen zu ziehen. Die App unterstützt sowohl das Einfügen als auch das Löschen von Grenzen. Nachdem die gewünschten Grenzen gespeichert wurden, kann der Benutzer einen Reinigungslauf bzw. eine Reinigungsfahrt starten, bei dem der Roboter diese virtuellen Grenzen einhält. Die Einhaltung der virtuellen Grenzen während der Reinigung ist abhängig von der Lokalisierung des Roboters in der Abdeckungskarte, die durch einen vorherigen Reinigungs-/Trainingslauf bzw. durch eine Trainingsfahrt erzeugt wurde.
  • In einer Ausführungsform zeichnet der Benutzer mit dem Finger auf einem Touchscreen eine virtuelle Grenze auf einer Karte. Alternativ kann auch ein Stift oder ein anderes Zeichenelement wie Maus, Daumenrad usw. verwendet werden. Alternativ können Bereiche der Karte gekennzeichnet werden, und der Benutzer kann angeben, welche Bereiche durch den Roboter vermieden werden sollen, wobei die Anwendung bzw. App dann bestimmt, wo die virtuellen Grenzen gezeichnet werden müssen, um solche Bereiche vom Roboter auszuschließen. Der Benutzer kann die Abschnitte bzw. Bereiche über eine Dropdown-Liste auswählen, die Abschnitte auf dem Telefon berühren, die Bezeichnungen eingeben, die Bezeichnungen sprechen (mit Spracherkennung), etc. In einem Beispiel kann der Benutzer durch Antippen des Bereichs zwischen der Reinigung eines bestimmten Bereichs und der Markierung außerhalb der Grenzen wechseln. Jedes Antippen würde die Einstellung zwischen „go“ und „no go“ umschalten. Verschiedene Räume auf der Karte können durch unterschiedliche Farben gekennzeichnet sein, oder Farben oder andere visuelle Indikatoren können verwendet werden, um zu reinigende und zu vermeidende Bereiche anzuzeigen. So kann beispielsweise eine Kreuzschraffur über Bereiche gelegt werden, die auf der Karte zu vermeiden sind. Der Benutzer kann die virtuellen Grenzen auf jedem Gerät angeben und auf ein anderes Gerät übertragen lassen. Beispielsweise kann der Benutzer auf einem großen Desktop-Computerbildschirm Grenzen festlegen und die markierte Karte dann zur weiteren Interaktion mit dem Roboter auf ein Smartphone übertragen lassen.
  • 8 ist ein Diagramm der globalen Karte 800 eines Roboters mit benutzerdefinierten virtuellen Grenzen 804 und 806 für einen Reinigungsroboter gemäß einer Ausführungsform. Der Roboterstandort an der Basisstation 802 wird angezeigt. Wie man sehen kann, beschränken die virtuellen Grenzen 804 und 806 den Roboter auf den Bereich 808 des Raumes, in dem er sich befindet, und verhindern, dass der Roboter zu einem Bereich 810 oder anderen Räumen geht bzw. fährt. Der Benutzer kann ein Zeichnen einer Grenze einleiten, indem er das Begrenzungssymbol 808 berührt und dann Linien 804 und 806 mit dem Finger des Benutzers zeichnet. Alternativ kann das Symbol 808 an die gewünschte Stelle gezogen und erweitert, zusammengezogen und gedreht werden, um es an der gewünschten Stelle zu platzieren.
  • Grenzerweiterung
  • In einer Ausführungsform gibt ein Benutzer auf der Karte 800 eine virtuelle Grenze 812 an. Der Roboter wird feststellen, dass zwischen dem Ende der Grenze und einer Wand 814 ein Spalt vorhanden ist, was dem Roboter erlaubt zu passieren und die Grenze bedeutungslos macht. Der Roboter kann die Grenze automatisch korrigieren und dem Benutzer auf einem Display eine vorgeschlagene Korrektur der gestrichelten Linie 816 präsentieren, die die virtuelle Grenze bis zur nächsten Wand 814 verlängert. Wenn der Benutzer die Korrektur akzeptiert, wird die Grenze erweitert. In einer Ausführungsform kann die Grenze unabhängig voneinander erweitert werden, ohne dass dem Benutzer eine Korrektur zur Verfügung gestellt wird oder in Situationen, in denen der Benutzer nicht reagiert.
  • Grenzänderung
  • In einer Ausführungsform kann der Roboter erkennen, dass sich die Grenze um ein Hindernis herum befindet und dass sich der Roboter näher an das Hindernis als die Begrenzungslinie bewegen kann. Der Roboter kann dann die Grenze so einstellen, dass sie näher am Hindernis liegt. So kann beispielsweise eine virtuelle Grenze 818 um ein Hindernis 820 herum gezogen werden. Der Roboter kann bestimmen, dass er sich dem Hindernis ohne Probleme nähern kann und kann eine neue virtuelle Grenze 822 vorschlagen. Wie im obigen Beispiel der erweiterten Grenze wird, wenn der Benutzer die Korrektur akzeptiert, die Grenze angepasst. In einer Ausführungsform kann die Grenze unabhängig voneinander angepasst werden, ohne dass dem Benutzer eine Korrektur zur Verfügung gestellt wird oder in Situationen, in denen der Benutzer nicht reagiert. Alternativ kann der Roboter bestimmen, dass die virtuelle Grenze zu nahe am Objekt liegt und gegen das Objekt stößt oder sich im Objekt verfängt. Der Roboter kann dann die virtuelle Grenze weiter vom Objekt entfernt verschieben, um Probleme zu vermeiden.
  • In einer Ausführungsform erzeugt der Roboter seine eigenen virtuellen Grenzen oder schlägt einem Benutzer eine virtuelle Grenze vor. Der Roboter kann eine Grenze vorschlagen, an der er einen Sturz erkennt (z.B. eine Treppe), oder an der er Hindernisse erkennt, die zu Verwirrungen führen können (z.B. eine Verkabelung), oder an denen er zuvor stecken geblieben ist. Der Roboter kann seine eigenen virtuellen Grenzen setzen, z.B. um einen Bereich mit vielen Hindernissen zu umgehen, die viel Zeit zum Navigieren benötigen, und die virtuelle Grenze anheben, wenn er über eine ausreichende Akkulaufzeit zur Reinigung des Bereichs verfügt. Der Roboter kann ein Bild des Objekts hinter einer virtuellen Begrenzung aufnehmen und es an den Benutzer senden, um die Bestätigung der virtuellen Begrenzung zu unterstützen, oder den Benutzer einfach auffordern, das Objekt zu bewegen.
  • In einer Ausführungsform erfasst bzw. erspürt der Roboter Objekte, und die Objekterkennung erfolgt durch den entfernten Server oder den Roboter. Die Objekte können durch Aufnahme mit einer Kamera, einem IR-, Ultraschall- oder anderen Sensor oder durch physischen Kontakt mit einem Stoß- oder Kontaktsensor erfasst werden. Die Roboter-App kann dann automatisch virtuelle Grenzen ziehen, um Gefahrenbereiche zu vermeiden, wie z.B. ein Kabelgewirr durch einen Fernseher, die Wasserschale eines Haustieres auf dem Boden, etc. Der Benutzer kann dann die Grenzen akzeptieren oder motiviert werden, das Gefahrgut bzw. die Gefahrengüter zu bewegen.
  • In einer Ausführungsform kann der Roboter die virtuellen Grenzen nutzen, um verschiedene Arten von Reinigungsbereichen zu definieren, nicht nur zu vermeidende Bereiche. So kann beispielsweise eine Holz- oder Fliesenbodenfläche als eine andere Bürstenhöhe benötigend, eine andere Befestigung benötigend oder als ein anderer Roboter benötigend angegeben werden. Ein Drop-off kann einfach einen Bereich angeben, der mit Vorsicht zu verfahren ist, unter Verwendung einer geringeren Geschwindigkeit.
  • Akkuoptimierungsgrenzlinien.
  • In einer Ausführungsform kann der Roboter temporäre virtuelle Grenzen um Objekte und Bereiche ziehen, die aufgrund der erforderlichen engen Manöver lange Zeit zum Reinigen benötigen. Der Roboter kann dann die einfacheren Bereiche reinigen und die virtuellen Grenzen anheben bzw. beseitigen, wenn er noch genügend Batterieladung hat, um diese Bereiche zu bearbeiten.
  • In einer Ausführungsform kann der Roboter temporäre virtuelle Grenzen ziehen, um die Akkulaufzeit zu optimieren. So kann beispielsweise ein Roboter mehrere Ladezyklen benötigen, um einen großen Grundriss bzw. Raumaufteilung zu reinigen. Ein typischer Roboterladezyklus würde die Batterie auf weniger als 10% herunterfahren und dann auf etwa 80% aufladen. Das Aufladen dauert oberhalb 80% länger, so dass die gesamte Reinigungszeit (Reinigung + Ladezeit) optimiert wird. Der Roboter kann beispielsweise bestimmen, dass er eine schnellere Gesamtreinigungszeit erreichen würde, indem er eine virtuelle Grenze zeichnet, die den letzten Abschnitt (z.B. 20%) einer Raumaufteilung blockiert, und dann nur bis zu 60% oder eine beliebige Menge auflädt, um diesen letzten Abschnitt zu reinigen. Dies könnte effizienter sein, als alles bis auf 5% zu reinigen und dann wieder auf 80% zu warten, wenn eine niedrigere Ladung für die letzten 5% plus den zusätzlichen Betrag hinter der virtuellen Grenze ausreichend wäre.
  • Trainingslauf.
  • In einer Ausführungsform muss der Roboter eine Karte erzeugen, bevor der Benutzer die gewünschten virtuellen Grenzen markieren kann. Eine Trainingseinheit kann erforderlich sein, damit der Roboter das Gebiet kartografieren und dem Benutzer die Karte präsentieren kann. Um eine lange Verzögerung zu vermeiden, kann der Roboter das Gebiet mit Hilfe von breiteren Fahrspuren kartieren. Anstatt jeden Zentimeter des Bodens abzudecken, deckt der Roboter den Bereich im Bereich seines LIDAR oder eines anderen Kartensensors ab. Dies könnte beispielsweise bedeuten, dass LIDAR 6 Fuß Fahrspuren hat und sich optional auch entlang der Wände bewegt. Für einen bildbasierten SLAM-Algorithmus kann ein einziger Durchgang durch einen Raum ausreichend sein. Alternativ kann der Benutzer den Roboter mit einer Fernbedienung manuell über die Grenzen der zu reinigenden Bereiche führen. Alles, was außerhalb dieser Grenzen liegt, kann erkannt und abgebildet und mit einer virtuellen Grenze markiert werden.
  • In einer Ausführungsform wird der Prozess für den Benutzer so reibungslos wie möglich gestaltet. Der Benutzer kann den Roboter einfach absetzen und auf eine Schaltfläche „Start Clean“ („Start Reinigung“) klicken. In einer Ausführungsform kann die Anzeige den Benutzer dann auffordern, alles zu reinigen, oder einen Trainingslauf bzw. eine Trainingsfahrt zur Kartenerstellung durchzuführen und die Karte dem Benutzer zu präsentieren, um virtuelle Grenzen zu markieren. Alternativ könnte der Roboter einfach eine Trainingsfahrt starten und dem Benutzer die Karte und die vorgeschlagenen Grenzen zur Verfügung stellen, nachdem er sie vorbereitet hat, während er einen vollständigen Reinigungslauf mit den vorgeschlagenen virtuellen Grenzen startet, bis sie vom Benutzer abgelehnt oder hinzugefügt werden. Die Karte kann einem Benutzer direkt zur Verfügung gestellt werden, z. B. über ein lokales WiFi-Netzwerk, Bluetooth oder eine andere Übertragungstechnologie, um sie an eine Benutzervorrichtung, wie beispielsweise ein Smartphone, ein Tablett oder einen Computer, zu übertragen. Alternativ kann die Karte an einen entfernten Server gesendet und dann auf die Benutzervorrichtung heruntergeladen werden.
  • Teilkarte zu Globalkarte.
  • 9 ist ein Flussdiagramm eines Prozesses zum Erzeugen virtueller Grenzsegmente für Teilkarten gemäß einer Ausführungsform. Der Roboter bildet seine Umgebung während eines Trainingslaufs bzw. einer Trainingsfahrt (902) ab. Optional kann der Roboter auch während der Trainingsfahrt reinigen. Der Roboter verwendet seine Sensoren und einen SLAM-Algorithmus (simultaneous localization and mapping), um den Bereich zu kartieren und Koordinaten von Objekten (Wände, Hindernisse usw.) auf dieser Karte zu erzeugen (904). Der Roboter erzeugt aus den gespeicherten Koordinaten (906) ein Portable Network Graphics (PNG)-Bild der Karte. Die PNG-Karte wird dann auf einen Remote-Server (908) hochgeladen. Ein Portable Graymap Format (PGM) Bild der Karte wird ebenfalls für Debuggingzwecke erzeugt.
  • Der Server stellt die PNG-Karte über das Internet oder ein anderes Netzwerk oder einen anderen Kommunikationskanal einer Anwendung bzw. App zur Verfügung, die auf einer Benutzervorrichtung (910) läuft. Der Benutzer gibt die virtuellen Grenzen auf der Karte (912) an, wie in Bezug auf 8 oben angegeben. Die Benutzeranwendung entfernt alle Teile der gezeichneten Grenzen, die außerhalb der Karte (914) liegen. Wenn sich eine Linie nicht bis zu einer Wand erstreckt oder anderweitig nicht als Barriere für einen Bereich dient, kann die App den Benutzer auffordern, die Linie zu erweitern bzw. verlängern, oder sie kann diese automatisch erweitern bzw. verlängern. Die Benutzeranwendung berechnet die globalen Koordinaten der virtuellen Grenzen und sendet sie an den Server (916). Der Server stellt dem Roboter (918) die globalen Koordinaten der virtuellen Grenzen zur Verfügung. Der Roboter segmentiert die virtuelle Grenze in Segmente, die den in einem Speicher des Roboters gespeicherten Teilkarten entsprechen, und wandelt die globalen Koordinaten in lokale Koordinaten für die Teilkarten um. Die Teilkarten können dem gewünschten Bereich eines LIDAR- oder anderen Lokalisierungssystems am Roboter entsprechen. Die Teilkarten können sich überschneiden, um eine vollständige Abdeckung und die Möglichkeit der Standortverfolgung beim Wechsel von einer Teilkarte zur anderen zu gewährleisten. In einer Ausführungsform sind die Teilkarten 5x5 Meter große Bereiche oder entsprechen einer anderen Dimension von weniger als 10 Metern in einem beliebigen Querschnitt.
  • Wenn der Roboter einen Reinigungslauf durchführt, greift er bei Bedarf auf jede Teilkarte zu und greift auch auf die lokalen Koordinaten des virtuellen Grenzsegments für diese Teilkarte zu. Der Roboterprozessor erkennt kontinuierlich seine aktuelle Position mit Hilfe eines LIDARs oder eines anderen Mechanismus und vergleicht seine Koordinaten mit den Koordinaten der virtuellen Grenzsegmente. Wenn ein Grenzsegment erreicht ist, ändert der Roboter die Richtung. Der Roboter erkennt, wenn sich die Vorderkante des Roboters ausreichend nahe an der Grenze befindet, so dass der Roboter sich noch drehen kann, sich zum benachbarten ungereinigten Schwad bzw. Streifen bewegt und dann die Richtung umkehrt, um die Reinigung fortzusetzen.
  • Koordinatenüberarbeitung.
  • 10 veranschaulicht eine Ausführungsform zur Aktualisierung eines Koordinatensystems. Wie dargestellt, hat der Roboter eine Anfangskarte mit den Räumen 1002, 1004 und 1006 gezeichnet. Es wurde ein Koordinatensystem eingerichtet, das bei 0, 0 am Punkt 1008 beginnt. Ein Benutzer hat dann eine virtuelle Grenze 1010 auf der Karte gezeichnet. Ein Bereich 1012 war zuvor mit einer geschlossenen Tür, einer virtuellen oder physischen Grenze oder anderweitig blockiert. Wenn der Bereich 1012 anschließend geöffnet wird, muss er der Karte hinzugefügt und die Koordinaten geändert werden, beginnend mit der Änderung des 0,0-Punktes bis zu einem Punkt 1014. Dies erfordert eine Änderung der Koordinaten für die anderen Punkte auf der Karte, einschließlich der Punkte, die die virtuelle Grenze 1010 bilden. Die Differenz zwischen den Punkten 1008 und 1014 kann einfach zu jedem Punkt auf der Karte für den neuen Koordinatenraum hinzugefügt werden.
  • Entfernbare physische Grenzanzeige.
  • In einer Ausführungsform platziert ein Benutzer einen Magnetstreifen, einen IR-Transponder oder eine andere Grenzanzeige bzw. anderen Begrenzungsindikator an einer oder mehreren Stellen während eines Kartenerstellungslaufs für einen Roboter. Der Roboter zeichnet die Grenzinformationen in Verbindung mit der Karte auf, während die Positionen in einem Gebiet abgebildet werden. Der Benutzer kann dann die Grenzanzeige entfernen oder sie für den gleichen Kartenerstellungslauf an einen anderen Ort verschieben. So kann der Benutzer beispielsweise die Grenzanzeige zum nächsten Tür- oder Flureingang verschieben, auf den der Roboter treffen wird. Danach kann der Roboter eine virtuelle Grenze identifizieren, die der aufgezeichneten Grenzposition entspricht, ohne dass ein physischer Grenzindikator an Ort und Stelle bleiben muss. So erzeugt der Roboter anstelle des Benutzers, der die Grenze auf einer Karte markiert, die Grenzen, während er die Karte und jede Teilkarte erzeugt. Der Roboter kann Grenzen, die nicht bis zu einer Wand reichen, verlängern bzw. erweitern oder sie näher an ein Objekt heranführen, wie oben beschrieben. Das Grenzsegment wird für jede Teilkarte im lokalen Speicher des Roboters gespeichert. Wenn das Mapping abgeschlossen ist, erzeugt der Roboter ein PNG-Bild der Karte, das die auf der Karte dargestellten virtuellen Grenzen beinhaltet. Das PNG-Bild mit den virtuellen Grenzen wird dann auf den Server hochgeladen und dann auf die App auf dem Benutzergerät heruntergeladen.
  • In einer Ausführungsform kann der Benutzer dann die Grenzen und die Karte bestätigen oder ändern. So kann der Benutzer beispielsweise erkennen, dass sich die Grenze nicht genau an der richtigen Stelle befindet, so dass der Roboter beispielsweise bis zu einem Inch von einer Tür entfernt ist, nicht aber der Bereich bis zum Rand der Tür oder unter der Tür.
  • In einer Ausführungsform ändert sich die virtuelle Grenze im Laufe der Zeit. So kann beispielsweise die virtuelle Grenze so eingestellt werden, dass sie den Roboter für jede andere Reinigungsroutine auf einen stark frequentierten Bereich beschränkt. Der Benutzer kann die virtuellen Grenzen auf einer Karte durch einen der oben beschriebenen Mechanismen oder einen anderen Mechanismus angeben. Der Benutzer kann die Karte dann mit einem Zeitplan verknüpfen, wie z.B. jeden Dienstagmittag. Der Benutzer kann dann eine weitere nicht markierte Kopie der Karte aufrufen und einen separaten Satz virtueller Grenzen oder keine virtuellen Grenzen angeben. Der Benutzer kann diese markierte Karte dann mit einer anderen Zeit auf dem Zeitplan verknüpfen, z.B. jeden zweiten Samstag um 17 Uhr (5 PM). Die App lädt dann den Zeitplan und die mehreren Liniensegmente in globalen Koordinaten auf den Server hoch. Der Server lädt dann den Zeitplan und die virtuellen Grenzen auf den Roboter herunter. Der Roboter wandelt die ersten virtuellen Grenzen des Zeitplans wie oben beschrieben in Teilkartensegmente um. Die Grenzen und die Zeiteinteilung werden in Bezug auf die entsprechenden Teilkarten gespeichert. Die gleichen Teilkarten im Speicher werden auch für ein zweites oder weiteres virtuelles Begrenzungssegment und Zeiteinteilung verwendet. Der Zeitplan kann auch darauf hinweisen, dass bestimmte Bereiche intensiver gereinigt werden sollen, wie beispielsweise mit einer langsameren Robotersaugergeschwindigkeit und/oder einer höheren Saugleistung oder durch andere betriebliche Änderungen des Robotersaugerbetriebs. Die Intensivreinigung oder andere betriebliche Änderungen können sich auch in einem nicht zeitgeplanten Modus befinden. So kann der Benutzer beispielsweise einen Abschnitt auf der Karte der App zeichnen, um auf einen Turbo- oder Sanftmodus überzugehen, und dann den Roboter sofort zu diesem Abschnitt führen lassen. Somit können die virtuellen Grenzen oder andere Angaben zu Bereichen für eine unterschiedliche Behandlung vom Benutzer entweder für einen geplanten oder nicht zeitgeplanten Betrieb angegeben werden. Für einen sofortigen Betrieb kann die Benutzeranzeige nach dem Betrieb verworfen werden, oder der Benutzer kann aufgefordert werden, den Betrieb mit den virtuellen Grenzen zu speichern oder zu planen.
  • In einem anderen Beispiel kann die virtuelle Begrenzung als Tor fungieren, das den Roboter in einem bestimmten Bereich hält, bis der Bereich gereinigt ist, und dann die Begrenzung öffnet, damit der Roboter einen anderen Bereich reinigen oder zu seiner Heimbasis zurückkehren kann. Ein im Speicher des Roboters gespeichertes Programm erkennt, wenn alle Bereiche, die durch Wände, Hindernisse und virtuelle Grenzen begrenzt sind, vollständig gereinigt wurden. Der Roboter wird dann angewiesen, zur virtuellen Grenze zu fahren, aber der Befehl zum Anhalten, wenn die Koordinaten mit der virtuellen Grenze übereinstimmen, wird unterdrückt. Der Roboter reinigt dann den nächsten geschlossenen Bereich oder kann, wenn er bereits gereinigt ist, zur Basis zurück fahren.
  • In einem weiteren Beispiel kann ein bestimmter Reinigungsmodus mit unterschiedlichen Zeiten für den durch die Grenze angegebenen Bereich verknüpft werden, wie z.B. das Reinigen in Längsrichtung zu einem Zeitpunkt auf einem Zeitplan und das Reinigen in einer Breitenrichtung zu einem anderen Zeitpunkt. Dies kann im Laufe der Zeit zu einer gründlicheren Reinigung führen, ohne dass während eines einzigen Reinigungsvorgangs mehrere Durchläufe in mehrere Richtungen erforderlich sind, was die Zeit für einen einzigen Reinigungsvorgang verkürzt.
  • In einer Ausführungsform wird dem Benutzer eine Vorschau der Karte mit den virtuellen Grenzen zur Akzeptanz bzw. zur Annahme zur Verfügung gestellt. Die Roboter-App kann auf der Grundlage der virtuellen Grenzen und des Zeitplans Vorschläge machen, wie z.B. einen Vorschlag zur Verlegung der Basisstation im Hinblick auf die virtuellen Grenzen zur Optimierung der Reinigungszeit.
  • In einer Ausführungsform werden mehrere globale Karten bereitgestellt, z.B. wo der Roboter auf verschiedene Ebenen bewegt wird. Jedes Stockwerk kann seine eigene Karte und seine eigenen virtuellen Grenzen und Zeitpläne haben.
  • In einer Ausführungsform verfügt der Roboter über einen oder mehrere Indikatoren, die einem Benutzer anzeigen, wenn er auf eine virtuelle Grenze gestoßen ist. Die Anzeige kann eine Leuchte sein, die rot blinkt, wenn eine Grenze erreicht ist. Dies informiert den Benutzer darüber, dass der Grund, warum sich der Roboter umdreht, auf die virtuelle Grenze zurückzuführen ist. Die Anzeige kann auch eine sichtbare Lichtlinie sein, die vom Roboter in beide Richtungen projiziert wird, um die gesamte Ausdehnung der virtuellen Grenze anzuzeigen. Das Licht kann blinken, eine andere Farbe haben oder anderweitig eine permanente virtuelle Grenze gegenüber einer für genau diese geplante Zeit anzeigen. Dies kann den Benutzer veranlassen, die virtuelle Grenze zurückzusetzen, wenn sich die Situation geändert hat, z.B. wenn der Benutzer gerade eine Party in einem Raum hatte, der sonst nur selten benutzt wird. Die Rückmeldung kann auch hörbar sein und kann direkt vom Roboter kommen oder von der App auf dem Benutzergerät angezeigt werden. In einer Ausführungsform, wenn die App auf der Benutzervorrichtung geöffnet ist, wird die Rückmeldung auf der Benutzervorrichtung bereitgestellt. Wenn die App geschlossen ist, wird das Feedback vom Roboter selbst bereitgestellt.
  • In einer Ausführungsform kann der Benutzer die virtuelle Grenze setzen, indem er die Roboter-App auf dem mobilen Gerät wie eine Fernbedienung verwendet. Wenn der Benutzer beobachtet, wie sich der Roboter einem Raum außerhalb der Grenzen nähert, kann der Benutzer eine virtuelle Begrenzungstaste auf der App drücken. Ein Signal wird dann entweder direkt (über IR, Bluetooth, lokales WiFi, etc.) oder über den Server (über das Internet, dann über ein lokales Netzwerk an den Roboter) an den Roboter gesendet. Der Roboter erkennt den Punkt als Teil einer Linie und extrapoliert den Punkt automatisch auf die Wände auf beiden Seiten des Punktes, wenn er eine Türöffnung erkennt.
  • Mehrere Roboter.
  • In einer Ausführungsform werden mehrere Reinigungsroboter eingesetzt. Dies bietet eine Vielzahl von Vorteilen. Bei der ersten Verwendung kann ein Roboter als Trainingsroboter bezeichnet werden, der den Bereich kartiert und virtuelle Grenzen vorschlägt. Der zweite (dritte, vierte, etc.) Roboter kann folgen, eine normale Reinigung durchführen und so mehr Zeit in jedem Raum oder Raum verbringen. Der Trainingsroboter kann jeden Raum der Karte, wie er erzeugt wird, an den zweiten Roboter übertragen, so dass der zweite Roboter keine Zuordnung vornehmen muss und nicht die für die Zuordnung erforderliche Verarbeitung beinhalten muss. Diese Übertragung kann direkt, über eine Benutzervorrichtung oder durch Hochladen auf einen entfernten Server erfolgen, der das dann auf den zweiten Roboter herunterlädt. In einem Beispiel kann der neue Roboter ein Ersatzroboter sein. Mehrere Karten für mehrere Stockwerke oder Grundrisse können gemeinsam genutzt werden. So kann beispielsweise ein zweiter Roboter, der sich normalerweise in einer zweiten Etage befindet, erkennen, dass er in die erste Etage bewegt wurde, und zur ersten Etagenkarte wechseln.
  • Virtuelle Linien können je nach Robotertyp oder einfach nach einer Aufgabenteilung gezeichnet werden. Bei mehreren Robotern kann jedem ein Teil des zu reinigenden Bereichs zugeordnet werden, wobei die von anderen Robotern bearbeiteten Bereiche durch virtuelle Grenzen blockiert werden. Somit würden jedem Roboter unterschiedliche virtuelle Grenzen zur Verfügung gestellt. Billigere Roboter könnten für leichter zu reinigende Bereiche, wie z.B. Parkettböden, eingesetzt werden. Oder verschiedene Roboter könnten unterschiedliche, optimierte Batteriespeicher haben. Ein Beispiel: Ein Trainings- oder Mapping-Roboter könnte nur eine Mapping- und Bildaufnahmefähigkeit aufweisen und keine Reinigungsvorrichtung, und könnte eine begrenzte Batterieleistung für einen kurzen Trainingslauf haben. So könnte der Trainingsroboter viel kleiner und kostengünstiger sein. Die Reinigungsroboter könnten für längere Reinigungsläufe viel mehr Batterieleistung haben.
  • Benutzerinteraktionen.
  • In einer Ausführungsform verfügt der Roboter über eine Kamera und kann dem Benutzer Bilder oder Videos zur Verfügung stellen, um virtuelle Begrenzungsflächen anzuzeigen. Der Benutzer kann den Blickwinkel der Kamera per Fernbedienung steuern, um eine bessere Sicht auf den Bereich zu erhalten. Außerdem können die Benutzerbefehle zum Erzeugen einer virtuellen Begrenzung auf beliebige Weise erfolgen, nicht nur durch Zeichnen einer Linie mit einem Finger oder Stift auf einer angezeigten Karte. So könnte der Roboter beispielsweise Bereiche kartieren und identifizieren, z.B. durch Bilderkennung (Geschirrspüler bedeutet, dass es die Küche ist, etc.) oder durch Aufforderung an den Benutzer, Bereiche von der Karte und/oder den Bildern zu kennzeichnen. Der Benutzer könnte dann einfach sagen: „Nicht die Küche reinigen“, und der Roboter zieht virtuelle Grenzen an den Eingängen zur Küche. Alternativ können Objekte oder Bereiche auf einer Karte identifiziert werden, und ein Benutzer kann sie antippen, um Grenzen zu setzen, und mit einem Doppeltipp die virtuellen Grenzen entfernen (oder umgekehrt). Der Roboter würde dann eine virtuelle Grenze um das angegebene Objekt oder Gebiet ziehen. Alternativ können Dropdown-Menüs nach dem Tippen oder einer anderen GUI-Oberfläche verwendet werden.
  • In einer Ausführungsform kann der Benutzer Bilder von zu vermeidenden Bereichen oder Objekten aufnehmen, und das Programm auf dem Roboter (oder ein Programm in der Benutzervorrichtung oder einem entfernten Server) kann diese mit Bildern in einer visuellen SLAM-Mapping oder mit Bildern, die mit einer LIDAR SLAM-Mapping oder einem anderen Verfahren verknüpft sind, abgleichen. Virtuelle Grenzen können dann um die Objekte oder Bereiche im Bild gezogen werden. Künstliche Intelligenz könnte verwendet werden, um das Bild automatisch zu beschneiden, genau wie wenn ein Roboter eine gezeichnete virtuelle Grenze näher an ein Objekt heranrücken kann, wenn er entdeckt, dass er sich dem Objekt ohne Schwierigkeiten nähern kann.
  • Obwohl die Erfindung in Bezug auf bestimmte Ausführungsformen beschrieben wurde, erkennt ein Fachmann, dass zahlreiche Änderungen möglich sind. Ausführungsformen der Erfindung können mit einer Vielzahl von Computersystemen und Kommunikationstechnologien realisiert werden, einschließlich, aber nicht beschränkt auf die hierin beschriebenen spezifischen Beispiele. So können beispielsweise Ausführungsformen der Erfindung nicht nur auf Reinigungsroboter, sondern auch auf andere Roboter wie Rasenmähroboter angewendet werden (bestimmte Bereiche müssen häufiger gemäht werden, oder Blumen müssen mit einer virtuellen Grenze vermieden werden). Virtuelle Grenzen können angeben, welche Bereiche nicht von einem Sicherheitsroboter überwacht werden müssen oder nicht so oft überprüft werden müssen. Roboter zur Messung von Temperatur, Luftqualität oder anderen Funktionen können ebenfalls virtuelle Grenzen verwenden.
  • Ausführungsformen der vorliegenden Erfindung können mit einer beliebigen Kombination von speziellen Komponenten und/oder programmierbaren Prozessoren und/oder anderen programmierbaren Vorrichtungen realisiert werden. Die verschiedenen hierin beschriebenen Prozesse können auf demselben Prozessor oder verschiedenen Prozessoren in beliebiger Kombination implementiert werden. Werden Komponenten als konfiguriert beschrieben, um bestimmte Operationen durchzuführen, kann diese Konfiguration durchgeführt werden, z.B. durch das Entwerfen von elektronischen Schaltungen zur Durchführung der Operation, durch das Programmieren von programmierbaren elektronischen Schaltungen (wie Mikroprozessoren) zur Durchführung der Operation oder einer beliebigen Kombination davon. Auch wenn sich die oben beschriebenen Ausführungsformen auf bestimmte Hard- und Softwarekomponenten beziehen können, ist es dem Fachmann bekannt, dass auch verschiedene Kombinationen von Hard- und/oder Softwarekomponenten verwendet werden können und dass bestimmte, als in Hardware implementiert beschriebene Vorgänge auch in Software implementiert werden können oder umgekehrt.
  • Computerprogramme, die verschiedene Merkmale der vorliegenden Erfindung beinhalten, können kodiert und auf verschiedenen computerlesbaren Speichermedien gespeichert werden; geeignete Medien sind Magnetplatte oder -band, optische Speichermedien wie Compact Disk (CD) oder DVD (digitale vielseitige Festplatte), Flash-Speicher und andere nichtflüchtige Medien. Computerlesbare Medien, die mit dem Programmcode codiert sind, können mit einer kompatiblen elektronischen Vorrichtung verpackt werden, oder der Programmcode kann separat von elektronischen Geräten bereitgestellt werden (z.B. per Internet-Download oder als separat verpacktes, computerlesbares Speichermedium).
  • Obwohl die Erfindung in Bezug auf bestimmte Ausführungsformen beschrieben worden ist, ist zu beachten, dass die Erfindung alle Änderungen und Äquivalente im Umfang der folgenden Ansprüche abdecken soll.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 8996172 [0012]
    • US 8903589 [0012]
    • US 8855914 [0018]

Claims (19)

  1. Verfahren zum Betreiben eines Roboters, umfassend: Erfassen einer physischen Grenzmarkierung unter Verwendung von Sensoren am Roboter; Anzeigen einer virtuellen Grenze, die der Position der physischen Grenzmarkierung auf einer Bereichskarte für den Roboter entspricht; Aufrechterhalten der virtuellen Grenzmarkierung, wenn die physische Grenzmarkierung anschließend entfernt wird; und Vermeiden eines Bereichs jenseits der virtuellen Grenzmarkierung durch den Roboter.
  2. Verfahren nach Anspruch 1, weiterhin umfassend: Erfassen eines Abstands zwischen einer physischen oder virtuellen Grenze und einer angrenzenden Wand; Erweitern der virtuellen Grenze bis zur angrenzenden Wand.
  3. Verfahren nach Anspruch 1, weiterhin umfassend: Bestimmen, dass sich der Roboter einen anderen Abstand von einem Objekt hinter einer virtuellen Grenze als der virtuellen Grenze bewegen kann; und Einstellen der virtuellen Grenze, damit diese ein anderer Abstand vom Objekt ist.
  4. Verfahren nach Anspruch 1, weiterhin umfassend: Empfangen eines Hinweises auf eine virtuelle Grenze auf der Bereichskarte von einem Benutzer.
  5. Verfahren nach Anspruch 4, weiterhin umfassend: Entwickeln der Bereichskarte während einer Trainingsfahrt des Roboters und Bereitstellen der Bereichskarte an einen Benutzer, vor einem Empfangen des Hinweises einer virtuellen Grenze.
  6. Verfahren nach Anspruch 5, weiterhin umfassend: Zurücklegen einer Strecke und eines Musters während der Trainingsfahrt, die für die Erstellung der Bereichskarte ausreichen, ohne eine vollständige Strecke und ein Muster zurückzulegen, die für die Reinigung der auf der Bereichskarte angegebenen Bereiche erforderlich sind.
  7. Verfahren nach Anspruch 1, weiterhin umfassend: Bereitstellen der virtuellen Grenze an einen entfernten Server in den globalen Koordinaten der Bereichskarte; Herunterladen der virtuellen Grenze auf den Roboter; Umwandeln, durch den Roboter, der virtuellen Grenze in globalen Koordinaten in Segmente durch Segmentieren der virtuellen Grenze in eine Vielzahl von Liniensegmenten, die einer Vielzahl von Teilkarten entsprechen; und Vergleichen des Liniensegments mit einer aktuellen Teilkarte durch den Roboter, um die virtuelle Grenze für die aktuelle Teilkarte zu bestimmen.
  8. Verfahren nach Anspruch 1, bei dem die physische Grenzmarkierung eines von einem Magnetstreifen, einem IR-Strahl, einem Barcode, einem QR-Code, einem Farbstreifen, einem IR-detektierbaren Etikett oder einem visuellen Muster ist.
  9. Verfahren, umfassend: Empfangen eines Hinweises auf eine virtuelle Grenze auf einer Bereichskarte für den Roboter; Anpassen der virtuellen Grenze, um den Abstand von einem Objekt zu ändern oder um die virtuelle Grenze bis zu einer angrenzenden Wand zu erweitern; und Vermeiden eines Bereichs jenseits der virtuellen Grenzmarkierung durch den Roboter.
  10. Verfahren nach Anspruch 9, ferner umfassend: Erfassen einer physischen Grenzmarkierung unter Verwendung von Sensoren am Roboter; Anzeigen einer virtuellen Grenze, die der Position der physischen Grenzmarkierung auf einer Bereichskarte für den Roboter entspricht; Aufrechterhalten der virtuellen Grenzmarkierung, wenn die physische Grenzmarkierung anschließend entfernt wird; und Vermeiden eines Bereichs jenseits der virtuellen Grenzmarkierung durch den Roboter.
  11. Verfahren nach Anspruch 9, ferner umfassend: Entwickeln der Bereichskarte während einer Trainingsfahrt des Roboters und Bereitstellen der Bereichskarte für einen Benutzer; und Empfangen eines Hinweises auf eine virtuelle Grenze auf der Bereichskarte von dem Benutzer.
  12. Nichtflüchtiges, computerlesbares Medium zur Montage an einem Roboter, umfassend Anweisungen, die, wenn sie von einem Computer ausgeführt werden, folgendes bei dem Computer veranlassen: Erfassen einer physischen Grenzmarkierung mit Hilfe von Sensoren am Roboter; Angeben einer virtuellen Grenze, die der Position der physischen Grenzmarkierung auf einer Bereichskarte für den Roboter entspricht; Beibehalten der virtuellen Grenzmarkierung, wenn die physische Grenzmarkierung anschließend entfernt wird; und Vermeiden eines Bereichs jenseits der virtuellen Grenzmarkierung durch den Roboter.
  13. Nichtflüchtiges, computerlesbares Medium nach Anspruch 12, ferner umfassend Anweisungen zum: Erfassen eines Abstands zwischen einer physischen oder virtuellen Grenze und einer angrenzenden Wand; und Erweitern der virtuellen Grenze bis zur angrenzenden Wand.
  14. Nichtflüchtiges, computerlesbares Medium nach Anspruch 12, ferner umfassend Anweisungen zum: Bestimmen, dass sich der Roboter einen anderen Abstand von einem Objekt hinter einer virtuellen Grenze als der virtuellen Grenze bewegen kann; und Anpassen der virtuellen Grenze, damit diese einen anderen Abstand vom Objekt hat.
  15. Nichtflüchtiges, computerlesbares Medium nach Anspruch 12, ferner umfassend Anweisungen für: Entwickeln der Bereichskarte während einer Trainingsfahrt des Roboters und Bereitstellen der Bereichskarte für einen Benutzer; und Empfangen eines Hinweises auf eine virtuelle Grenze auf der Bereichskarte von dem Benutzer.
  16. Reinigungsroboter, umfassend: einen bodenverfahrbarenden Roboter; ein Robotergehäuse des bodenverfahrbarenden Roboters; einen im Gehäuse montierten Motor zum Bewegen des bodenverfahrbarenden Roboters; eine Batterie, die angeschlossen ist, um den Motor mit elektrischer Energie zu versorgen; einen im Roboter montierten Sensor zum Erfassen der Umgebung; einen Prozessor, der im Roboter montiert ist; einen Speicher im Roboter; ein Lokalisierungsmodul im Roboter; nichtflüchtiger, computerlesbarer Code im Speicher mit Anweisungen zum: Erfassen einer physischen Grenzmarkierung unter Verwendung von Sensoren am Roboter; Anzeigen einer virtuellen Grenze, die der Position der physischen Grenzmarkierung auf einer Bereichskarte für den Roboter entspricht;
  17. Reinigungsroboter nach Anspruch 16, wobei der nichtflüchtige, computerlesbare Code im Speicher weitere Anweisungen aufweist, zum: Erfassen eines Abstands zwischen einer physischen oder virtuellen Grenze und einer angrenzenden Wand; und Erweitern der virtuellen Grenze bis zur angrenzenden Wand.
  18. Reinigungsroboter nach Anspruch 16, wobei der nichtflüchtige, computerlesbare Code im Speicher weitere Anweisungen aufweist, zum: Bereitstellen der virtuellen Grenze an einen entfernten Server in den globalen Koordinaten der Bereichskarte; Herunterladen der virtuellen Grenze auf den Roboter; Umwandeln der virtuellen Grenze in globalen Koordinaten durch den Roboter in Segmente durch Segmentieren der virtuellen Grenze in eine Vielzahl von Liniensegmenten, die einer Vielzahl von Teilkarten entsprechen; und Vergleichen des Liniensegments mit einer aktuellen Teilkarte durch den Roboter, um die virtuelle Grenze für die aktuelle Teilkarte zu bestimmen.
  19. Reinigungsroboter nach Anspruch 16, wobei der nichtflüchtige, computerlesbare Code im Speicher weitere Anweisungen aufweist, zum: Entwickeln der Bereichskarte während einer Trainingsfahrt des Roboters und Bereitstellen der Bereichskarte für einen Benutzer; und Empfangen eines Hinweises auf eine virtuelle Grenze auf der Bereichskarte von dem Benutzer.
DE102018121335.2A 2017-08-31 2018-08-31 Robotergestützte virtuelle grenzen Withdrawn DE102018121335A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762552790P 2017-08-31 2017-08-31
US62/552,790 2017-08-31
US15/996,290 US10583561B2 (en) 2017-08-31 2018-06-01 Robotic virtual boundaries
US15/996,290 2018-06-01

Publications (1)

Publication Number Publication Date
DE102018121335A1 true DE102018121335A1 (de) 2019-02-28

Family

ID=63920769

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018121335.2A Withdrawn DE102018121335A1 (de) 2017-08-31 2018-08-31 Robotergestützte virtuelle grenzen

Country Status (2)

Country Link
DE (1) DE102018121335A1 (de)
GB (1) GB2567944A (de)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019204623A1 (de) * 2019-04-02 2020-10-08 BSH Hausgeräte GmbH Steuern eines Bodenbearbeitungsroboters
DE102019215457A1 (de) * 2019-10-09 2021-04-15 BSH Hausgeräte GmbH Hausgerät mit kommunikativ verbundenen Komponenten
DE102019131583A1 (de) * 2019-11-22 2021-05-27 Vorwerk & Co. Interholding Gmbh System mit mindestens zwei sich selbsttätig fortbewegenden Bodenbearbeitungsgeräten sowie Verfahren zum Betrieb eines Systems
DE102021206786A1 (de) 2021-06-30 2023-01-05 BSH Hausgeräte GmbH Verfahren zur autonomen Bearbeitung von Bodenflächen
US11615365B1 (en) 2022-03-11 2023-03-28 Intelligent Cleaning Equipment Holdings Co. Ltd. Systems and methods for tracking and scoring cleaning
DE102021206786B4 (de) 2021-06-30 2024-06-13 BSH Hausgeräte GmbH Verfahren zur autonomen Bearbeitung von Bodenflächen

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11007644B2 (en) * 2018-09-04 2021-05-18 Irobot Corporation Mapping interface for mobile robots
CN111580096B (zh) * 2019-02-18 2022-09-30 杭州海康威视数字技术股份有限公司 一种防区绘制方法及装置
CN113064409A (zh) * 2019-12-13 2021-07-02 深圳拓邦股份有限公司 一种动态分区方法、系统及清洁设备
CN111489362B (zh) * 2020-04-03 2023-12-05 北京小狗吸尘器集团股份有限公司 一种空间划分方法、装置、可读介质及电子设备
CN114115211A (zh) * 2020-08-26 2022-03-01 深圳市杉川机器人有限公司 一种自移动设备及系统及建立工作区域地图的方法
GB202117095D0 (en) * 2021-11-26 2022-01-12 Ocado Innovation Ltd Determining an exclusion zone in a workspace of transport devices
CN114545938A (zh) * 2022-02-17 2022-05-27 上海擎朗智能科技有限公司 一种路径规划方法、装置、机器人及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8855914B1 (en) 2012-08-31 2014-10-07 Neato Robotics, Inc. Method and apparatus for traversing corners of a floored area with a robotic surface treatment apparatus
US8903589B2 (en) 2009-08-31 2014-12-02 Neato Robotics, Inc. Method and apparatus for simultaneous localization and mapping of mobile robot environment
US8996172B2 (en) 2006-09-01 2015-03-31 Neato Robotics, Inc. Distance sensor system and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9827779D0 (en) * 1998-12-18 1999-02-10 Notetry Ltd Improvements in or relating to appliances
AU2006284577B2 (en) * 2005-09-02 2012-09-13 Neato Robotics, Inc. Multi-function robotic device
ES2681523T3 (es) * 2006-03-17 2018-09-13 Irobot Corporation Robot para el cuidado del césped
US9072218B2 (en) * 2012-07-09 2015-07-07 Deere & Company Boundary sensor assembly for a robotic lawn mower, robotic lawn mower and robotic lawn mower system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996172B2 (en) 2006-09-01 2015-03-31 Neato Robotics, Inc. Distance sensor system and method
US8903589B2 (en) 2009-08-31 2014-12-02 Neato Robotics, Inc. Method and apparatus for simultaneous localization and mapping of mobile robot environment
US8855914B1 (en) 2012-08-31 2014-10-07 Neato Robotics, Inc. Method and apparatus for traversing corners of a floored area with a robotic surface treatment apparatus

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019204623A1 (de) * 2019-04-02 2020-10-08 BSH Hausgeräte GmbH Steuern eines Bodenbearbeitungsroboters
DE102019215457A1 (de) * 2019-10-09 2021-04-15 BSH Hausgeräte GmbH Hausgerät mit kommunikativ verbundenen Komponenten
DE102019131583A1 (de) * 2019-11-22 2021-05-27 Vorwerk & Co. Interholding Gmbh System mit mindestens zwei sich selbsttätig fortbewegenden Bodenbearbeitungsgeräten sowie Verfahren zum Betrieb eines Systems
DE102021206786A1 (de) 2021-06-30 2023-01-05 BSH Hausgeräte GmbH Verfahren zur autonomen Bearbeitung von Bodenflächen
DE102021206786B4 (de) 2021-06-30 2024-06-13 BSH Hausgeräte GmbH Verfahren zur autonomen Bearbeitung von Bodenflächen
US11615365B1 (en) 2022-03-11 2023-03-28 Intelligent Cleaning Equipment Holdings Co. Ltd. Systems and methods for tracking and scoring cleaning
WO2023168707A1 (en) * 2022-03-11 2023-09-14 Intelligent Cleaning Equipment Holdings Co. Ltd. Systems and methods for tracking and scoring cleaning
US11972383B2 (en) 2022-03-11 2024-04-30 Intelligent Cleaning Equipment Holdings Co. Ltd. Systems and methods for tracking and scoring cleaning

Also Published As

Publication number Publication date
GB2567944A (en) 2019-05-01
GB201814165D0 (en) 2018-10-17

Similar Documents

Publication Publication Date Title
DE102018121335A1 (de) Robotergestützte virtuelle grenzen
US10583561B2 (en) Robotic virtual boundaries
DE102018132428A1 (de) Photomosaische Bodenkartierung
DE102018118222B4 (de) Schmutzdetektionsschicht und Laserrückstreuungsschmutzdetektion
EP3814067B1 (de) Exploration eines robotereinsatzgebietes durch einen autonomen mobilen roboter
US11740634B2 (en) Systems and methods for configurable operation of a robot based on area classification
US11272823B2 (en) Zone cleaning apparatus and method
US11057561B2 (en) Capture, analysis and use of building data from mobile devices
DE102020105045A1 (de) Verfahren und vorrichtungen zur erleichterung einer autonomen navigation von robotervorrichtungen
US20150121222A1 (en) Method and System for Visualization Enhancement for Situational Awareness
DE112017007050T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
WO2018094741A1 (zh) 一种航线编辑方法、装置及控制设备
DE112017003030T5 (de) Visionsbasiertes Robotersteuerungssystem
DE102014204820A1 (de) Dreidimensionale Fingerspitzenverfolgung
DE102016114594A1 (de) Verfahren zur Steuerung eines autonomen mobilen Roboters
WO2018086979A1 (de) Verfahren zum betrieb eines sich selbsttätig fortbewegenden roboters
US11353872B2 (en) Systems and methods for selectively capturing and filtering sensor data of an autonomous vehicle
US10782689B2 (en) Systems and methods for selectively capturing sensor data of an autonomous vehicle using a sensor guide rail
US10700935B1 (en) Automatic configuration and operation of complex systems
DE102021204256A1 (de) Mäherpositionierungs-Konfigurationssystem
US20230418302A1 (en) Online authoring of robot autonomy applications
DE102017113612A1 (de) Autonomes Reinigungssystem und Reinigungsverfahren
Guide Leica Geosystems
CN116547624A (zh) 在作业现场模拟移动机器人的装置和方法
CN117234403A (zh) 交互方法及电子设备

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G05D0001020000

Ipc: G05D0001430000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee