DE102018132428A1 - Photomosaische Bodenkartierung - Google Patents

Photomosaische Bodenkartierung Download PDF

Info

Publication number
DE102018132428A1
DE102018132428A1 DE102018132428.6A DE102018132428A DE102018132428A1 DE 102018132428 A1 DE102018132428 A1 DE 102018132428A1 DE 102018132428 A DE102018132428 A DE 102018132428A DE 102018132428 A1 DE102018132428 A1 DE 102018132428A1
Authority
DE
Germany
Prior art keywords
robot
camera
images
image
view
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.)
Pending
Application number
DE102018132428.6A
Other languages
English (en)
Inventor
Matthew Allison Herron
Rachel Lucas
Charles Albert PITZER
Griswald Brooks
Kingman Yee
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.)
Vorwerk and Co Interholding GmbH
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
Application filed by Neato Robotics Inc filed Critical Neato Robotics Inc
Publication of DE102018132428A1 publication Critical patent/DE102018132428A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • 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
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4002Installations of electric equipment
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4011Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4061Steering means; Means for avoiding obstacles; Details related to the place where the driver is accommodated
    • 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
    • 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/2857User input or output elements for control, e.g. buttons, switches or displays
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0011Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot associated with a remote control arrangement
    • G05D1/0044Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot 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 or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0253Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4038Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images
    • G06T5/80
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/50Constructional details
    • H04N23/54Mounting of pick-up tubes, electronic image sensors, deviation or focusing coils
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/56Cameras or camera modules comprising electronic image sensors; Control thereof provided with illuminating means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/57Mechanical or electrical details of cameras or camera modules specially adapted for being embedded in other devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/71Circuitry for evaluating the brightness variation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/42Simultaneous measurement of distance and other co-ordinates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Electromagnetism (AREA)
  • Robotics (AREA)
  • Optics & Photonics (AREA)
  • General Engineering & Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Geometry (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

In einer Ausführungsform ist ein Verfahren für einen Roboter (z.B. Reinigungsroboter) offenbart, um eine (planare) Vogelperspektiv-Karte zu erzeugen, durch Transformieren von Bildern einer Roboterkameraansicht und Zusammenfügen von Bildern, die nach Position markiert sind. Die planare Karte kann dann auf einer Benutzeroberfläche als Grundriss dargestellt werden, der die Position von Objekten (z.B. Teppichen) anzeigt. Eine Kamera ist im Reinigungsroboter ausreichend hoch im Gehäuse des Reinigungsroboters montiert, so dass eine geneigte Ansicht nach unten auf einen Boden möglich ist. Das Sichtfeld der Kamera wird als ein Bild erfasst, und ein Teil oder Segment dieses Bildes wird zugeschnitten. Das zugeschnittene Segment wird aus der Kameraperspektive in eine planare Ansicht (vor oder nach dem Zuschneiden) umgewandelt und wird mit anderen Bildern kombiniert, um eine Karte eines Grundrisses auszubilden.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Roboterreiniger und insbesondere auf das Erstellen von Grundrissen.
  • Reinigungsroboter enthalten häufig Kameras für verschiedene Zwecke. Die Kamera kann Bilder eines zu reinigenden Bereichs aufnehmen und Objekte in diesem Bereich anzeigen. Gesammelte Bilddaten können zur Erstellung einer Karte unter Verwendung eines SLAM-Algorithmus (Simultaneous Location and Mapping) verwendet werden. Bei Bilddaten kann ein VSLAM-Lokalisierungsverfahren (Visuelles SLAM unter Verwendung von Bildsensoren) verwendet werden. Eine Kamera kann Bilder von einer Decke aufnehmen und diese zur Navigation verwenden. Die Karte kann durch Zusammenfügen von Bildern erstellt werden. Die iRobot Anmeldung mit der Veröffentlichungs-Nr. 20170052033 beschreibt eine solche visuelle SLAM-Methode. Das Carnegie Mellon Patent mit der Nr. 5.999.866 beschreibt eine Positionsbestimmung aus einzigartigen Aspekten der Bilder, wie z.B. Teppichmustern. Die veröffentlichte iRobot Anmeldung mit der Nr. 20170203446 zeigt einen Grundriss und Kamerabilderfassung von Objekten und gibt einen Hinweis auf den Grundriss, wo sich Objekte befinden, mit einem Link zum Bild. Das iRobot Patent mit der Nr. 9.014.848 beschreibt die Korrektur von Verzerrungen in einer Ziel-Layoutkarte verglichen mit einer vom Roboter generierten Karte.
  • Reinigungsroboterkarten und -grundrisse sind für die Verwendung durch den Roboter optimiert, um die Position zu bestimmen und um andere Maßnahmen zu ergreifen, jedoch nicht für die Verwendung durch Menschen. Es wäre wünschenswert, eine für die menschliche Benutzerinteraktion optimierte Karte zur Steuerung eines Reinigungsroboters zu haben.
  • KURZZUSAMMENFASSUNG DER ERFINDUNG
  • In einer Ausführungsform erzeugt ein Roboter (z.B. ein Reinigungsroboter) eine (planare) Karte aus der Vogelperspektive, indem er die Ansicht einer Roboterkamera transformiert und Bilder, die nach Position markiert sind, zusammenfügt. Die planare Karte kann dann auf einer Benutzeroberfläche als ein Grundriss dargestellt werden, der die Position von Objekten (z.B. Teppichen) anzeigt. Eine Kamera ist im Reinigungsroboter ausreichend hoch im Gehäuse des Reinigungsroboters montiert, so dass eine geneigte Sicht nach unten auf einen Boden möglich ist. Das Sichtfeld der Kamera wird als Bild aufgenommen, und ein Teil oder Segment dieses Bildes wird zugeschnitten oder maskiert. Das zugeschnittene Segment wird aus der Kameraperspektive in eine planare Ansicht (vor oder nach dem Zuschneiden) umgewandelt und mit anderen Bildern zu einer Karte eines Grundrisses kombiniert.
  • In einer Ausführungsform wird ein Objektiv (z.B. ein Fischaugenobjektiv) vor der Kamera verwendet. Vor (oder nach) der Transformation von der Roboterperspektivenansicht in die planare Ansicht, wird ein Verzerrungsalgorithmus angewendet, um die durch die Linse verursachte Bildverzerrung zu korrigieren. Die Transformation von der Roboterperspektivenansicht zur planaren Ansicht nutzt die bekannte Einbauhöhe der Kamera vom Boden und den bekannten Abwärtswinkel der Kamera, um eine Bildpunktposition mit einer planaren Bodenposition zu korrelieren. Die Position in Bezug auf den Roboter wird als Offset zur lokalisierten Position des Roboters verwendet. Jede Neigung des Roboters wird erkannt und verwendet, um die Bildpunktposition zu korrigieren oder das Bild einfach zu verwerfen.
  • In einer Ausführungsform wird der Grundriss einem Benutzer auf einem Smartphone oder einer anderen Anzeigevorrichtung angezeigt. Der Benutzer stellt Eingaben auf dem Grundriss bereit, um eine Betriebseigenschaft des Roboters zu ändern. So kann der Benutzer beispielsweise Bereiche angeben, in die der Roboter nicht gelangen soll, Bereiche, die eine intensivere Reinigung erfordern, etc.
  • In einer Ausführungsform werden Segmente für einen Bereich erfasst, der gleich groß oder größer als die minimale Auflösung des zu erzeugenden Grundrisses ist. So kann beispielsweise eine Fläche von wenigen Millimetern einem einzelnen Pixel eines auf einem Smartphone angezeigten Grundrisses entsprechen, und somit wäre eine feinere Auflösung eine Verschwendung von Rechenleistung. Ebenso kann eine preiswertere Kamera mit nur einer solchen erforderlichen Auflösung den Zwecken der vorliegenden Erfindung dienen. Überlappende Segmente werden erfasst, was eine Ausrichtungseinstellung durch Abgleichen der überlappenden Abschnitte ermöglicht. Der gleiche Segmentbereich kann mehrfach aus unterschiedlichen Abständen im Sichtfeld der Kamera oder von verschiedenen Durchgängen über den gleichen Bereich aufgenommen werden. Die Bildqualität kann gewichtet werden, wobei ein Bild mit höherer Qualität ein Bild mit niedrigerer Qualität ersetzt. Zu den Gewichtungsfaktoren gehören beispielsweise eine Geschwindigkeit des Roboters beim Erfassen des Bildes, Vibrationen, ein Winkel (eine Neigung), eine Übereinstimmung mit überlappenden Teilen anderer Segmente, eine Nähe des Segments zur Kamera und eine Beleuchtung.
  • In einer Ausführungsform wird die Beleuchtung des Bildes bestimmt und Abweichungen in der Beleuchtung verschiedener Segmente korrigiert. Die Beleuchtung kann aufgrund von Schwankungen der Beleuchtung in der Umgebung oder aufgrund von Schwankungen der Intensität der Beleuchtung eines Lichts am Reinigungsroboter im Kamerasichtfeld variieren.
  • Figurenliste
    • 1 ist eine Darstellung eines Reinigungsroboters mit einem LIDAR-Turm gemäß einer Ausführungsform.
    • 2 ist eine Darstellung eines Reinigungsroboters und einer Ladestation gemäß einer Ausführungsform.
    • 3 ist eine Darstellung der Unterseite eines Reinigungsroboters gemäß einer Ausführungsform.
    • 4 ist eine Darstellung einer Smartphonesteuerungsapplikationsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform.
    • 5 ist eine Darstellung einer intelligenten Uhrensteuerungsapplikationsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform.
    • 6 ist eine Darstellung 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 eine Darstellung einer Kamera, die in ein Reinigungsrobotergehäuse gemäß einer Ausführungsform eingebettet ist.
    • 9 ist eine Darstellung eines Reinigungsroboters mit einer Kamera, bei der die berechnete planare Position eines Punktes im Bild der Kamera gemäß einer Ausführungsform dargestellt ist.
    • 10 ist eine Darstellung eines Bildes von der Kamera eines Roboters, das durch eine Fischaugenlinse gemäß einer Ausführungsform verzerrt ist.
    • 11 ist eine Darstellung eines Bildes von der Kamera eines Roboters nach einer Transformation zur Korrektur der Verzerrung durch eine Fischaugenlinse gemäß einer Ausführungsform.
    • 12 ist eine Darstellung eines Bildes von der Kamera eines Roboters, das das Zuschneiden eines Teils des Bodens gemäß einer Ausführungsform zeigt.
    • 13 ist eine Darstellung eines Bildes von der Kamera eines Roboters, das in eine planare Form umgewandelt wurde und ein erfasstes Segment des Bildes gemäß einer Ausführungsform zeigt.
    • 14 ist eine Darstellung einer Benutzergeräteanzeige, das zusammengefügte Segmente zeigt, um ein planares Bild mit Objekten gemäß einer Ausführungsform zu bilden.
    • 15 ist eine Darstellung einer Anzeige einer Benutzervorrichtung, die zusammengefügte Segmente zeigt, um ein planares Bild mit No-Go-Abschnitten zu bilden, die von einem Benutzer auf der Anzeige markiert werden, gemäß einer Ausführungsform.
    • 16 ist ein Flussdiagramm des Verfahrens zum Erzeugen eines Grundrisses einer planaren Ansicht gemäß einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Gesamtarchitektur
  • 1 ist eine Darstellung eines Reinigungsroboters mit einem LIDAR-Revolver bzw. LIDAR-Turm gemäß einer Ausführungsform. Ein Reinigungsroboter 102 weist einen LIDAR (Light Detection and Ranging) Turm 104 auf, der einen rotierenden Laserstrahl 106 aussendet. Erfasste Reflexionen des Laserstrahls von Objekten werden verwendet, um sowohl den Abstand zu Objekten als auch den Standort bzw. die Position des Reinigungsroboters zu berechnen. Eine Ausführungsform der Entfernungsberechnung ist in dem US Patent mit der Nr. 8.996.172, „Abstandssensorsystem und -verfahren“ gezeigt, dessen Offenbarung hierin durch Verweis aufgenommen ist. Alternativ kann VSLAM (Visual SLAM mit Bildsensoren) oder können andere Lokalisierungsverfahren verwendet werden. Die gesammelten Daten werden auch zur Erstellung einer Karte unter Verwendung eines SLAM-Algorithmus (Simultaneous Location and Mapping) verwendet. Eine Ausführungsform eines SLAM-Algorithmus ist in dem US Patent mit der Nr. 8.903.589, „Verfahren und Vorrichtung zur gleichzeitigen Lokalisierung und Abbildung der Umgebung eines mobilen Roboters“, beschrieben, dessen Offenbarung hierin durch Verweis aufgenommen ist.
  • 2 ist eine Darstellung eines Reinigungsroboters und einer Ladestation gemäß einer Ausführungsform. Der Reinigungsroboter 102 mit Turm 104 ist dargestellt. Ebenfalls dargestellt ist eine Abdeckung 204, die geöffnet werden kann, um auf einen Schmutzsammelbeutel zuzugreifen und die Oberseite einer Bürste. 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 eine Darstellung der Unterseite eines Reinigungsroboters gemäß einer Ausführungsform. Die Räder 302 bewegen den Reinigungsroboter, und eine Bürste 304 hilft, dass freier Schmutz in den Schmutzbeutel gesaugt wird.
  • 4 ist eine Darstellung einer Smartphonesteuerungsanwendungsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform. Ein Smartphone 402 verfügt über eine Anwendung bzw. App, 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 eine Darstellung einer intelligenten Uhrensteuerungsanwendungsanzeige für einen Reinigungsroboter gemäß einer Ausführungsform. Es sind Beispielanzeigen angezeigt. Eine Anzeige 502 bietet eine einfach zu bedienende Starttaste. Eine Anzeige 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 einen Vorgang beendet hat.
  • 6 ist eine Übersichtsdarstellung 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 die Radmotoren 608 die Räder unabhängig voneinander, um den Roboter zu bewegen und zu lenken. 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 beinhaltet einen Laser 620 und einen Detektor 616. Alternativ kann ein Bildsensor mit einem VSLAM-Betrieb verwendet werden. Ein Revolver-Motor 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 Stoßsensor 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 Sturz (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 dem US Patent mit der Nr. 8.855.914, „Verfahren und Vorrichtung zum Durchqueren von Ecken einer Bodenfläche mit einer Roboter-Oberflächenbehandlungsvorrichtung“ beschrieben, deren 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 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 der Batterie 614 einen 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.
  • Eine Kamera 642 oder mehrere Kameras sind an den Bus 634 angeschlossen. Ein Objektiv 644 befindet sich vor der Kamera. Es kann eine Leuchte 646 vorgesehen werden, um das Sichtfeld der Kamera zu beleuchten. Die Bilder können im Speicher 606 gespeichert und/oder über eine drahtlose oder drahtgebundene Verbindung und das Internet in die Cloud hochgeladen werden.
  • Über das Internet 636 und/oder andere Netzwerke kann der Reinigungsroboter gesteuert werden und Informationen an einen entfernten Benutzer zurücksenden. Ein Remote-Server 638 kann Befehle bereitstellen und Daten verarbeiten, die vom Reinigungsroboter hochgeladen werden. Ein tragbares Smartphone 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 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 können Benutzergeräte wie ein Smartphone oder eine Uhr mit einer Roboterreinigungsanwendung implementieren.
  • Das Computersystem 702 kann eines von verschiedenen Typen sein, einschließlich Prozessor und Speicher, ein tragbares Handgerät (z.B. ein iPhone®-Handy, ein iPad®-Computertablett, ein PDA), ein tragbares Gerät (z.B. ein Google Glass®-Kopfbildschirm), ein Personal Computer, eine Arbeitsstation, ein Großrechner, ein Kiosk, ein Server-Rack oder ein anderes Datenverarbeitungssystem.
  • Das Computersystem 702 kann ein Verarbeitungssubsystem 710 beinhalten. Das Verarbeitungssubsystem 710 kann über das Bussubsystem 770 mit einer Reihe von Peripheriesystemen kommunizieren. Diese peripheren Systeme können ein I/O-Subsystem 730, ein Speichersubsystem 768 und ein Kommunikationssubsystem 740 beinhalten.
  • Das Bussubsystem 770 bietet einen Mechanismus, 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 werden, 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, mit einer Eingabevorrichtung, dem Microsoft Xbox® 360 Spielsteuergerät, Geräten, die eine Schnittstelle zum Empfangen von Eingaben über Gesten und gesprochene Befehle bereitstellen zu steuern und mit diesen zu interagieren. 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 Glasse) 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. beinhalten. 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 „Ausgabevorrichtung“ 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 Verarbeitungssubsystem 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 Verarbeitungssubsystem 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 Verarbeitungssubsystems 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 enthalten sein.
  • In einigen Ausführungsformen kann das Verarbeitungssubsystem 710 in einem modularen Design implementiert sein, 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 Verarbeitungssubsystem 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ömmlicher DRAM, SRAM, SDRAM oder dergleichen) und/oder nichtflüchtige Speichermedien[0001]
    , z.B. 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 bzw. Subeinheiten unterteilt werden, wie beispielsweise einen Systemspeicher, ein ROM und eine permanente Speichervorrichtung. Der Systemspeicher kann eine Schreib- und Lese-Speichervorrichtung oder ein flüchtiger Schreib- und 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. Das ROM kann statische Daten und Anweisungen speichern, die von den Verarbeitungseinheiten 712, 714 benötigt werden. Die permanente Speichervorrichtung kann eine nichtflüchtige Schreib- und 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 sind, die die Operationen der Softwareprogramme ausführen und durchfü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 stellt ein Repository oder einen Datenspeicher zum Speichern von Informationen bereit, 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 Verarbeitungssubsystem 710 die oben beschriebene Funktionalität bietet, kann im Speichersubsystem 768 gespeichert werden. Die Software kann von einer oder mehreren Verarbeitungseinheiten des Verarbeitungssubsystems 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, Network Attached Storage 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.
  • Ein Systemspeicher 760 kann beispielsweise, wie in 7 dargestellt, Anwendungsprogramme 762 speichern, die Client-Anwendungen, Webbrowser, Mid-Tier-Anwendungen, relationale Datenbank-Managementsysteme (RDBMS) usw., Programmdaten 764 und ein oder mehrere Betriebssysteme 766 enthalten 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 bereitstellen. 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 bereitstellt, kann im Speichersubsystem 768 gespeichert werden. So können beispielsweise computerlesbare Speichermedien 752 einen nichtflüchtigen Speicher wie eine Festplatte, ein Magnetplattenlaufwerk, ein optisches Laufwerk wie eine CD-ROM, DVD, eine Blu-Ray®-Disk oder andere optische Medien beinhalten. 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), die auf einem 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, statisches RAM, DRAM-basierte SSDs, magnetoresistive RAM (MRAM) SSDs und Hybrid-SSDs, die eine Kombination aus DRAM und Flash-Speicher-basierten SSDs verwenden, basieren. Computerlesbare Medien bzw. Datenträger 752 können das Speichern 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 werden 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.
  • Ein Kommunikationssubsystem 740 bietet eine Schnittstelle zu anderen Computersystemen und Netzwerken. Das Kommunikations-Subsystem 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 es dem Computersystem 702 ermöglichen, einen Kommunikationskanal zu einem oder mehreren Client-Computervorrichtungen über das Internet zum Empfangen und Senden von Informationen von und zu den Client-Computervorrichtungen 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-Empfänger-Komponenten 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), Global Positioning System (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 Eingangskommunikation in Form von strukturierten und/oder unstrukturierten Datenfeeds, Ereignisströmen, Ereignisaktualisierungen und dergleichen empfangen. So kann beispielsweise das Kommunikationssubsystem 740 konfiguriert sein, 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 ein 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, die mit dem Computersystem 702 verbunden sind, 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 (Bussubsystem 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. Wi-Fi, IEEE 802.11 Standards).
  • Das Computersystem 702 kann als Reaktion auf Anforderungen bzw. Requests 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-Computer-System 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, ein Laptop-Computer, ein Tablet-Computer, ein Smartphone, andere mobile Computervorrichtungen, tragbare Computergeräte oder dergleichen.
  • Die Verarbeitungseinheit(en) 782 und die Speichervorrichtung 784 können ähnlich sein wie die oben beschriebenen Verarbeitungseinheiten 712, 714 und der 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-Computervorrichtung implementiert werden. Dem Client-Computersystem 704 kann Programmcode bereitgestellt werden, 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.
  • Eine 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 Wi-Fi, Bluetooth oder Mobilfunk-Datennetzstandards (z.B. 3G, 4G, LTE, etc.) implementiert.
  • Eine Benutzereingabevorrichtung 786 kann jede Vorrichtung (oder Vorrichtungen) enthalten, ü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 enthalten.
  • Eine Benutzerausgabevorrichtung 788 kann jede Vorrichtung enthalten, ü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), eine Leuchtdiode (LED) einschließlich organischer Leuchtdioden (OLED), ein Projektionssystem, eine 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, taktile „Anzeige“-Geräte, Drucker usw.
  • Einige Ausführungsformen beinhalten elektronische Komponenten, wie Mikroprozessoren, Speicherung und Speicher, die Computerprogrammanweisungen auf einem computerlesbaren Speichermedium speichern. Viele der in dieser Beschreibung 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 übergeordnetem 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.
  • ist zu beachten, dass das Computersystem 702 und das Client-Computersystem 704 veranschaulichend 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 physikalische Anordnung von Bauteilen implizit zu beinhalten. 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, einschließlich elektronischer Vorrichtungen, realisiert werden, die unter Verwendung einer beliebigen Kombination aus Schaltung und Software implementiert sind.
  • Photomosaische Bodenkartierung
  • 8 ist eine Darstellung einer Kamera, die in ein Reinigungsrobotergehäuse gemäß einer Ausführungsform eingebettet ist. Eine Ausführungsform verwendet eine einzelne Kamera 804 im vorderen Gehäuse 802 eines Reinigungsroboters. Eine alternative Ausführungsform fügt eine zweite Kamera 806 hinzu. Wie dargestellt, sind beide Kameras in einer Aussparung 812 an der Vorderseite des Gehäuses 802 montiert. Die Kameras 804, 806 sind so montiert, dass sie etwas nach unten in Richtung eines Bodens 810 zeigen. In einer Ausführungsform ist zwischen den Kameras eine Leuchte 808 montiert, die für die Beleuchtung des Sichtfeldes der Kameras sorgt.
  • 9 ist eine Darstellung des Reinigungsroboters mit einer Kamera, die die berechnete planare Position eines Punktes im Bild der Kamera gemäß einer Ausführungsform darstellt. Der Reinigungsroboter 902 weist eine Kamera 904 auf, die in der Vorderseite montiert ist. Die Kamera hat ein Sichtfeld, das durch den Bereich zwischen der Aufwärtslinie 916 und der Abwärtslinie 918 dargestellt wird. Die Kamera ist in einem bekannten Abstand 906 von einem Boden oder einer anderen Auflagefläche 908 montiert. Für jedes einzelne Pixel in einem Bild im Sichtfeld der Kamera kann die planare Position aus der Position und der Kamerahöhe 906 berechnet werden. So wird beispielsweise der Punkt 912 von der Kamera an einer Pixelposition betrachtet, die dadurch veranschaulicht wird, dass eine Linie 914 die Kamera berührt. Dieses Pixel im Bild kann dann einer Position zugeordnet werden, die einem Achsabstand 910 von der Kamera bis zum Punkt 912 auf dem Boden 908 entspricht.
  • Die Position des Roboters 902 ist von einem LIDAR-Modul 920 bekannt. Somit wird, wenn man den Offsetabstand zwischen dem Detektor im LIDAR-Modul 920 und der Kamera 904 kennt, ein Offset bzw. Versatz bestimmt. Die Position des Punktes 912 ist also die vom LIDAR bestimmten Koordinaten des Roboterreinigers 902, plus der Offset bzw. Versatz, plus der Achsabstand 910. Zu beachten ist, dass abwechselnd andere Lokalisierungsmechanismen verwendet werden können, wie z.B. VSLAM, Indoor-GPS, Radkilometerzähler oder eine beliebige Kombination. Die Standortberechnung bzw. Positionsberechnung würde entsprechend angepasst. Bei VSLAM wäre der Offset beispielsweise der Abstand zwischen der Kamera 904 und der VSLAM-Kamera. Wenn für beide Funktionen die gleiche Kamera 904 verwendet wird, kann der Offset eliminiert werden.
  • Alternative Methoden können auch verwendet werden, um die planare Position eines Pixels im Kamerabild zu bestimmen. So können beispielsweise Objekte, wie Wände oder Geräte, im Bild erkannt werden, und die Position kann durch vorherigen Kontakt von einem Höhensensor am Roboterreiniger bekannt sein. Aus dieser bekannten Position und der bekannten Position des Roboterreinigers kann die Position der Pixel im Bild berechnet werden.
  • Jede Neigung des Roboters wird erkannt und wird verwendet, um die Bildpunktposition bzw. Bildpixelposition zu korrigieren oder das Bild einfach zu verwerfen. Die Neigung kann durch einen Neigungssensor, Beschleunigungssensor oder die Analyse der Bilddaten erfasst werden. So kann beispielsweise die vertikale Bewegung eines bekannten Punktes in einem Bild, die mehr als die translatorische Bewegung des Roboters ergeben würde, als Hinweis auf die Neigung verwendet werden.
  • Um ein ausreichendes Sichtfeld zu gewährleisten, kann ein Fischauge oder eine andere Linse vor der Kamera platziert werden, wie beispielsweise eine Linse bzw. ein Objektiv 644, wie in 6 dargestellt. In einer Ausführungsform ist ein Sichtfeld zwischen 100 und 180 Grad, wie beispielsweise mit 160 Grad, vorgesehen. Alternativ können zwei Kameras verwendet werden, wie in 8 dargestellt, wodurch die Notwendigkeit eines Objektivs entfällt oder die Menge an vergrößertem Sichtfeld, die vom Objektiv benötigt wird, reduziert wird. In einer Ausführungsform befindet sich die Kamera mehrere Zentimeter vom Boden entfernt, beispielsweise zwischen 5-20 Zentimeter oder etwa 7 Zentimeter in einer Ausführungsform. Das Sichtfeld der Kamera kann mehrere Zentimeter vor dem Roboter, zwischen 5-25 Zentimeter vor ihm oder 10 Zentimeter vor ihm in einer Ausführungsform beginnen. Das von der Kamera aufgenommene Sichtfeld ist größer als die minimale Auflösung des eventuellen planaren Grundrisses und kann ein Bereich zwischen 4x4 mm und 40x60 cm sein. In einer Ausführungsform umfasst das Sichtfeld einen rechteckigen Bereich von 20 cm in Richtung des Kamerablicks und 30 cm in Richtung orthogonal zum Kamerablick. Die aufgenommenen bzw. erfassten Bilder können zugeschnitten werden, und die zugeschnittenen Bilder enthalten ein oder mehrere Kacheln oder Segmente, aus denen die Karte besteht. In einer Ausführungsform sind die Segmente oder Kacheln ca. 4x4 cm groß. Alternativ können die Segmente zwischen 4x4 mm und 40x60 cm groß sein.
  • In einer Ausführungsform hat die Kamera eine Auflösung am unteren Ende des HD-Bereichs. Da die Bilder verwendet werden, um einen auf einem Smartphone sichtbaren Grundriss zu füllen, ist keine höhere Auflösung erforderlich, was Kosten und Verarbeitung spart. Beispielsweise wäre eine 720p HD-Kamera (1280 x 720 Pixel) mehr als genug Auflösung.
  • Die Anzahl der Bilder pro Sekunde muss ebenfalls nicht hoch sein und kann an die Genauigkeit der Lokalisierung angepasst werden. Wenn beispielsweise ein LIDAR-System verwendet wird, das 5 Bilder/Sekunde erfasst, ist eine Bildrate von 5 Bildern/Sekunde für die Kamera mehr als ausreichend. Der Zeitpunkt der Bildaufnahme kann durch Synchronisation mit dem Zeitpunkt der Lokalisierungsbestimmung in einer Ausführungsform erfolgen, um sicherzustellen, dass das Bild genau dem Standort entspricht.
  • 10 ist eine Darstellung eines Bildes von der Kamera eines Roboters, das durch ein Fischaugenobjektiv gemäß einer Ausführungsform verzerrt ist. Wie zu sehen ist, beinhaltet das Sichtfeld einen Boden 1002 und eine Wand 1004 mit offensichtlicher Verzerrung.
  • 11 ist eine Darstellung eines Bildes von der Kamera eines Roboters nach einer Transformation zur Korrektur der Verzerrung durch ein Fischaugenobjektiv bzw. eine Fischaugenlinse gemäß einer Ausführungsform. Das Bild des Bodens 1102 wurde korrigiert, ebenso wie die Wand 1104. In einer Ausführungsform wird die Verzerrung mit dem Open CV (Computer Vision) Warp-Programm korrigiert.
  • 12 ist eine Darstellung eines Bildes von der Kamera eines Roboters, die das Zuschneiden eines Teils des Bodens gemäß einer Ausführungsform zeigt. Eine Fläche 1202 der Bodenfläche 1204 wird zur Bearbeitung beschnitten. Das Entwölben kann vor oder nach dem Zuschneiden erfolgen. Das zugeschnittene Bild kann dann in eine planare Kartenkoordinate umgewandelt werden.
  • 13 ist eine Darstellung eines Bildes von der Kamera eines Roboters, das in eine planare Form umgewandelt wurde und ein erfasstes Segment des Bildes gemäß einer Ausführungsform zeigt. Wie man sehen kann, ist das transformierte Bild ein Trapez 1304, wobei sich die Form ändert, wenn sie aus der Schrägansicht auf eine ebene Fläche abgebildet wird. Ein Segment / eine Kachel 1302 wird dann erfasst, um ein Bild zu erzeugen, das mit anderen Segmenten / Kacheln zusammengefügt werden kann, um den planaren Grundriss zu erzeugen. In einer Ausführungsform werden aus jedem Kamerabild eine Reihe von Segmenten / Kacheln extrahiert. So kann beispielsweise eine Reihe von Segmenten / Kacheln 1302 erfasst werden. Die Segmente können sich überlappen, so dass der Prozess des Zusammenfügens die Ausrichtung beliebig geringfügig anpassen kann, indem die Teilsegmente verschoben werden, bis die überlappenden Abschnitte übereinstimmen. Eine zweite Reihe kann aus einem nachfolgenden Bild entnommen werden, nachdem der Roboterreiniger so weit fortgeschritten ist, dass die gleiche Reihe im Bild die nächste Reihe auf der ebenen Fläche ist, mit Überlappung in Vorwärtsrichtung.
  • Es können verschiedene andere Ausführungsformen verwendet werden. Ein Raster von Segmenten kann aus einem einzelnen Bild aufgenommen werden, und eine Reihe von überlappenden Segmenten kann aus nachfolgenden Bildern kann erhalten werden. In einer Ausführungsform ist die primäre Reihe der aufgenommenen Segmente ausreichend weit von der Kamera entfernt, um die Standortberechnung sehr genau zu machen, aber nicht zu weit, so dass die Bildklarheit gut ist. Wenn mehrere Kameras verwendet werden, überschneidet sich ihr Sichtfeld, und diese Überschneidung wird in die Ausrichtung der Segmente einbezogen. Mehrere Kameras können auch eine Redundanz darstellen, falls das Objektiv einer Kamera verschmutzt ist oder die Bilder anderweitig verschwommen sind, und es können überlappende oder nachfolgende Bilder der anderen Kamera mit höherer Qualität gewichtet und stattdessen verwendet werden.
  • Die Bildqualität kann gewichtet werden, wobei ein Bild mit höherer Qualität ein Bild mit niedrigerer Qualität ersetzt, unabhängig davon, ob die Bilder von derselben Kamera oder mehreren Kameras stammen. Zu den Gewichtungsfaktoren gehören beispielsweise die Geschwindigkeit des Roboters beim Erfassen des Bildes, Vibrationen, Winkel (Neigung), Übereinstimmung mit überlappenden Teilen anderer Segmente, Nähe des Segments zur Kamera und Beleuchtung. Ein Bild, das mit einer langsameren Robotergeschwindigkeit aufgenommen wurde, kann eine höhere Gewichtung haben als ein Bild, das mit einer höheren Geschwindigkeit aufgenommen wurde. Ein Bild, das näher am Roboter aufgenommen wird, kann eine höhere Gewichtung haben als ein Bild, das weiter vom Roboter entfernt aufgenommen wird. Ein Bild, das während eines Kipp- oder Vibrationsereignisses aufgenommen wird, kann eine geringere Gewichtung haben als ein Bild, das ohne diese Neigung oder Vibration oder mit weniger Neigung oder Vibration aufgenommen wird. Bilder, die mit höherer Beleuchtung aufgenommen werden, können höher gewichtet werden, bis zu einem Niveau, bei dem zu viel Beleuchtung die Qualität des Bildes beeinträchtigt.
  • 14 ist eine Darstellung einer Anzeige einer Benutzervorrichtung, die zusammengefügte Segmente zeigt, um ein planares Bild mit Objekten gemäß einer Ausführungsform zu bilden. Eine Anzeige 1406 zeigt eine planare Karte 1402 eines von einem Reinigungsroboter abgebildeten Grundrisses. Die Karte zeigt zwei Teppiche 1404 und 1406. Die Karten sind ausreichend detailliert, um die Fransen der Teppiche zu zeigen und so den Benutzer daran zu erinnern, dass die Teppiche Fransen haben.
  • In einer Ausführungsform wird zunächst ein geradliniges Raster des Grundrisses aus Lokalisierungs- bzw. Positionsdaten erstellt. Die verschiedenen Rechtecke im Raster werden dann mit Bildern der Kamera ausgefüllt. Die den Bildern zugeordneten Positionsmarkierungen werden verwendet, um die geeignete Rasterposition für das Bild anzuzeigen. Anpassungen erfolgen unter Verwendung der überlappenden Bereiche. Der überlappende Teil eines der Bildsegmente wird dann entfernt.
  • 15 ist eine Darstellung einer Anzeige einer Benutzervorrichtung, die zusammengefügte Segmente zeigt, um ein planares Bild mit No-Go-Abschnitten zu bilden, die von einem Benutzer gemäß einer Ausführungsform auf der Anzeige markiert werden. Der planare Grundriss 1402 zeigt die Teppiche 1404 und 1408 wie in 14. Der Benutzer hat mit dem Display interagiert, um No-Go-Bereiche 1502 und 1504 um den Rand des Teppichs 1404 herum zu zeichnen, so dass die Bürste des Roboterreinigers nicht am Rand bzw. an den Fransen hängen bleibt. Die No-Go-Bereiche 1506 und 1508 sind auf dem Teppich 1408 gekennzeichnet. Anstatt einen No-Go-Bereich anzugeben, können auch andere Modifikationen des Roboterreinigers angezeigt werden. So kann beispielsweise der Roboterstaubsauger über diese Bereiche fortfahren, aber die Bürste kann abgeschaltet werden, um ein Verfangen bzw. Verheddern zu vermeiden. Die Abbildung ist nur ein Beispiel für die Objekte, die erkannt werden können. Viele andere Objekte können präsentiert werden, wie z.B. ob der Boden gefliest oder mit Teppichen ausgelegt ist, kleine Objekte oder nicht zugeordnete Bereiche, die auf Möbel hinweisen, etc.
  • 16 ist ein Flussdiagramm des Verfahrens zum Erzeugen eines Grundrisses mit ebener Ansicht gemäß einer Ausführungsform. Die Kamera erfasst zunächst eine Reihe bzw. Serie von Bildern des Bodens bzw. nimmt diese auf (Schritt 1602). Der Standort bzw. die Position des Roboters wird für jede Position (1604) bestimmt, z.B. durch LIDAR, VSLAM, GPS oder anderweitig. Für jedes der Serie von Bildern ist eine Markierung mit einer Position des Roboters zum Zeitpunkt der Bilderfassung (1606) vorgesehen. Die Bilder werden zugeschnitten, um mindestens ein Segment in jedem der Bilder (1608) zu identifizieren. Eine Transformation des Segments von einer Roboterkameraansicht in eine planare Ansicht wird durchgeführt (1610). Der Grundriss wird mit jedem der Segmente an der Roboterposition in der ebenen Ansicht befüllt, wobei ein Offset einer Differenz zwischen der Roboterposition und der Position des Segments auf dem Boden (1612) entspricht. Der Grundriss wird einem Benutzer (1614) angezeigt. Eine Benutzereingabe wird akzeptiert, um eine Betriebseigenschaft des Roboters (1616) zu ändern.
  • Es können verschiedene andere Ausführungsformen verwendet werden. Die Kamera kann für sichtbares Licht, Infrarotlicht, ultraviolettes Licht, 3D-Punktwolke oder andere Bilder verwendet werden. Die Bilder der Kamera können lokal im Reinigungsroboter, in einer Dockingstation oder ferngesteuert an einem Computer gespeichert und verarbeitet werden, der/die über WiFi, Bluetooth oder eine andere drahtlose Verbindung mit dem Roboter verbunden ist oder entweder drahtlos oder über eine drahtgebundene Verbindung mit der Dockingstation verbunden ist. Ein über das Internet oder ein anderes Netzwerk verbundener Remote-Server kann Bilder speichern und/oder verarbeiten. Das Hochladen von Bildern auf einen Dockingstationsprozessor, einen entfernten Computer oder Server kann asynchron erfolgen, nachdem der Reinigungsroboter einen Lauf abgeschlossen hat, oder in Echtzeit. Die Verarbeitung kann auf verschiedene Prozessoren aufgeteilt werden. So können beispielsweise eines oder mehrere aus dem Anfangszuschnitt, der Korrektur der Linsenverzerrung und der Umwandlung in ein planares Format (Vogelperspektive) im Reinigungsroboter durchgeführt werden, wobei das Zusammenfügen und andere Operationen aus der Ferne erfolgen.
  • Obwohl die Erfindung in Bezug auf bestimmte Ausführungsformen beschrieben worden ist, 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.
  • 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 Verfahren können auf demselben Prozessor oder verschiedenen Prozessoren in beliebiger Kombination implementiert werden. Sind 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 eine Magnetplatte oder ein Magnetband, optische Speichermedien wie eine Compact Disk (CD) oder eine DVD (digitale vielseitige Festplatte), ein 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 daher zu beachten, dass die Erfindung alle Änderungen und Äquivalente im Rahmen des Schutzbereichs der folgenden Ansprüche abdecken soll.

Claims (16)

  1. Verfahren zum Bereitstellen eines Grundrisses aus Bildern, die von einem bodenverfahrbaren Roboter aufgenommen werden, umfassend: Bereitstellen einer Kamera, die im Roboter ausreichend hoch in einem Robotergehäuse montiert ist, um eine geneigte Sicht nach unten auf einen Boden zu ermöglichen; Erfassen eine Serie von Bildern des Bodens mit der Kamera; Bestimmen einer Position des Roboters für jedes der Bilder; Markieren jedes Bildes der Serie von Bildern mit einer Position des Roboters zum Zeitpunkt der Bilderfassung; Zuschneiden jedes der Bilder, um mindestens ein Segment in jedem der Bilder zu identifizieren; Transformieren des Segments von einer Roboterkameraansicht in eine planare Ansicht; Füllen des Grundrisses mit jedem der Segmente an der Roboterposition in der ebenen Ansicht, mit einem Offset, der einer Differenz zwischen der Roboterposition und der Position des Segments auf dem Boden entspricht; Anzeigen des Grundrisses für einen Benutzer; und Akzeptieren einer Benutzereingabe auf dem Grundriss zur Änderung einer Betriebseigenschaft des Roboters.
  2. Verfahren nach Anspruch 1, ferner umfassend: Bereitstellen eines Objektivs vor der Roboterkamera; Anwenden eines Verzerrungsalgorithmus auf die Serie von Bildern, um die durch das Objektiv verursachte Bildverzerrung zu korrigieren.
  3. Verfahren nach Anspruch 1, wobei das Füllen des Grundrisses mit jedem der Segmente an der Roboterposition in der ebenen Ansicht ferner umfasst: Verwenden der bekannten hergestellten Höhe der Kamera vom Boden und des bekannten Abwärtswinkels der Kamera, um eine Bildpunktposition mit einer Position des planaren Bodens im Grundriss zu korrelieren.
  4. Verfahren nach Anspruch 3, ferner umfassend: Erfassen einer Neigung des Roboters über einen ersten Schwellenwert hinaus; und Korrigieren der Bildpunktposition oder Verwerfen des Bildes.
  5. Verfahren nach Anspruch 1, ferner umfassend: Erfassen von Segmenten für einen Bereich, der gleich groß oder größer als eine minimale Auflösung des Grundrisses ist.
  6. Verfahren nach Anspruch 1, ferner umfassend: Erfassen von überlappenden Segmenten; und Einstellen der Ausrichtungseinstellung durch Abgleichen eines überlappenden Abschnitts eines Segments mit einem überlappenden Abschnitt eines benachbarten Segments.
  7. Verfahren nach Anspruch 1, ferner umfassend: mehrfaches Erfassen des gleichen Segments, um mehrere Versionen desselben Segments bereitzustellen; Bestimmen einer gewichteten Qualität jeder Version des gleichen Segments; Ersetzen einer Version mit geringerer Qualität durch eine Version mit höherer Qualität.
  8. Verfahren nach Anspruch 7, wobei die gewichtete Qualität unter Verwendung mindestens von einem aus einer Geschwindigkeit des Roboters beim Erfassen des Bildes, einer Vibration, einer Neigung des Roboters, einer Übereinstimmung mit überlappenden Abschnitten anderer Segmente, einer Nähe des Segments zur Kamera und einer Beleuchtung bestimmt wird.
  9. Verfahren nach Anspruch 1, ferner umfassend: Bereitstellen einer Beleuchtungsquelle am Roboter für das Sichtfeld der Kamera; Speichern eines Ausgangswertes einer Bildhelligkeit für die Beleuchtungsquelle; Erfassen von Abweichungen bei der Beleuchtung verschiedener Segmente von dem Ausgangswert; und Vornehmen von notwendigen Korrekturen der Helligkeit der Segmente aufgrund von Beleuchtungsabweichungen.
  10. Verfahren zum Bereitstellen eines Grundrisses aus Bildern, die von einem bodenverfahrbaren Roboter aufgenommen werden, umfassend: Bereitstellen einer Kamera, die im Roboter ausreichend hoch in einem Robotergehäuse montiert ist, um eine geneigte Sicht nach unten auf einen Boden zu ermöglichen; Erfassen einer Serie von Bildern des Bodens mit der Kamera; Bereitstellen eines Objektivs vor der Roboterkamera; Anwenden eines Verzerrungsalgorithmus auf die Serie von Bildern, um die durch das Objektiv verursachte Bildverzerrung zu korrigieren; Bestimmen einer Position des Roboters für jedes der Bilder; Markieren jedes Bildes der Serie von Bildern mit einer Position des Roboters zum Zeitpunkt der Bilderfassung; Erfassen einer Neigung des Roboters über einen ersten Schwellenwert hinaus; Korrigieren der Bildpunktposition oder Verwerfen des Bildes; Zuschneiden jedes der Bilder, um mindestens ein Segment in jedem der Bilder zu identifizieren; Erfassen von Segmenten für einen Bereich, der gleich groß oder größer als eine minimale Auflösung des Grundrisses ist; Transformieren des Segments von einer Roboterkameraansicht in eine planare Ansicht; Füllen des Grundrisses mit jedem der Segmente an der Roboterposition in der ebenen Ansicht durch Verwenden der bekannten Herstellungshöhe der Kamera vom Boden und des bekannten Abwärtswinkels der Kamera, um eine Bildpunktposition mit einer Position des ebenen Bodens im Grundriss zu korrelieren, mit einem Offset, der einer Differenz zwischen der Roboterposition und der Position des Segments auf dem Boden entspricht; Erfassen von überlappenden Segmenten; Einstellen der Ausrichtungseinstellung durch Abgleichen eines überlappenden Abschnitts eines Segments mit einem überlappenden Abschnitt eines benachbarten Segments; Anzeigen des Grundrisses für einen Benutzer; und Akzeptieren einer Benutzereingabe auf dem Grundriss zur Änderung einer Betriebseigenschaft des Roboters.
  11. System zum Bereitstellen eines Grundrisses aus Bildern, umfassend: einen bodenverfahrbaren Roboter; ein Robotergehäuse des bodenverfahrbaren Roboters; einen im Gehäuse montierten Motor zum Bewegen des bodenverfahrbaren Roboters; eine Batterie, die angeschlossen ist, um den Motor mit elektrischer Energie zu versorgen; eine Kamera, die im Roboter ausreichend hoch im Robotergehäuse montiert ist, um eine geneigte Sicht nach unten auf einen Boden zu ermöglichen; einen Prozessor, der im Roboter montiert ist; einen Speicher im Roboter; ein Lokalisierungsmodul im Roboter; einen nichtflüchtigen, computerlesbaren Code im Speicher mit Anweisungen zum Erfassen einer Serie von Bildern des Bodens mit der Kamera, Bestimmen einer Position des Roboters für jedes der Bilder aus vom Lokalisierungsmodul bereitgestellten Daten und Markieren jedes Bildes der Serie von Bildern mit einer Position des Roboters zum Zeitpunkt der Bilderfassung; einen nichtflüchtigen, computerlesbaren Code mit Anweisungen zum Zuschneiden jedes der Bilder, um mindestens ein Segment in jedem der Bilder zu identifizieren, Transformieren des Segments von einer Roboterkameraansicht in eine planare Ansicht, Füllen des Grundrisses mit jedem der Segmente an der Roboterposition in der planaren Ansicht, mit einem Offset, der einer Differenz zwischen der Roboterposition und der Position des Segments auf dem Boden entspricht, Anzeigen des Grundrisses für einen Benutzer und Akzeptieren einer Benutzereingabe auf dem Grundriss zur Änderung einer Betriebseigenschaft des Roboters.
  12. System nach Anspruch 11, ferner umfassend: ein Objektiv, das vor der Roboterkamera montiert ist; und nichtflüchtiger, computerlesbarer Code mit Anweisungen für die Anwenden eines Verzerrungsalgorithmus auf die Bildserie, um die durch das Objektiv verursachte Bildverzerrung zu korrigieren.
  13. System nach Anspruch 11, ferner umfassend: einen Neigungssensor, der in dem Roboter montiert ist; und einen nichtflüchtigen, computerlesbaren Code, der in einem computerlesbaren Datenträger eingebettet ist, der Anweisungen enthält zum Erfassen einer Neigung des Roboters über einen ersten Schwellenwert hinaus; und Korrigieren der Bildpunktposition oder Verwerfen des Bildes.
  14. System nach Anspruch 11, ferner umfassend: eine zweite Kamera, die im Roboter ausreichend hoch im Robotergehäuse montiert ist, um eine geneigte Sicht nach unten auf einen Boden mit einem Sichtfeld bereitzustellen, das mit der erstgenannten Kamera überlappt.
  15. System nach Anspruch 11, ferner umfassend: ein Licht, das im Roboter montiert ist, um eine Beleuchtung des Sichtfeldes der Kamera bereitzustellen; einen nichtflüchtigen, computerlesbaren Code, der in einem computerlesbaren Datenträger eingebettet ist und Anweisungen enthält zum Speichern eines Anfangswertes eines Helligkeitswertes für die Beleuchtungsquelle, Erfassen von Abweichungen bei der Beleuchtung verschiedener Segmente von dem Ausgangswert; und Vornehmen notwendiger Korrekturen der Helligkeit der Segmente aufgrund von Beleuchtungsabweichungen.
  16. System nach Anspruch 11, ferner umfassend: ein LIDAR-Modul, das im Roboter montiert und konfiguriert ist, um eine Position des Roboters unter Verwendung eines SLAM-Algorithmus zu bestimmen.
DE102018132428.6A 2017-12-15 2018-12-17 Photomosaische Bodenkartierung Pending DE102018132428A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/844,437 2017-12-15
US15/844,437 US10638906B2 (en) 2017-12-15 2017-12-15 Conversion of cleaning robot camera images to floorplan for user interaction

Publications (1)

Publication Number Publication Date
DE102018132428A1 true DE102018132428A1 (de) 2019-06-19

Family

ID=65147070

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018132428.6A Pending DE102018132428A1 (de) 2017-12-15 2018-12-17 Photomosaische Bodenkartierung

Country Status (4)

Country Link
US (1) US10638906B2 (de)
CN (1) CN110060207B (de)
DE (1) DE102018132428A1 (de)
GB (1) GB2570785B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021101047A1 (en) 2019-11-20 2021-05-27 Samsung Electronics Co., Ltd. Mobile robot device and method for controlling mobile robot device

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11240854B2 (en) * 2017-08-22 2022-02-01 AI Incorporated Methods and systems for pairing mobile robotic device docking stations with a wireless router and cloud service
TWI677314B (zh) * 2017-12-29 2019-11-21 技嘉科技股份有限公司 移動裝置及其控制方法、遠端控制系統及電腦程式產品
US10575699B2 (en) 2018-01-05 2020-03-03 Irobot Corporation System for spot cleaning by a mobile robot
US11454981B1 (en) * 2018-04-20 2022-09-27 AI Incorporated Versatile mobile robotic device
US10751875B2 (en) * 2018-05-31 2020-08-25 Indoor Robotics Ltd Rotatable mobile robot for mapping an area and a method for mapping the same
US11107233B2 (en) * 2019-08-14 2021-08-31 Bnsf Railway Company Systems and methods for locating objects
CN112596508B (zh) * 2019-08-29 2022-04-12 美智纵横科技有限责任公司 一种传感器的控制方法、装置及存储介质
ES2827374A1 (es) * 2019-11-20 2021-05-20 Cecotec Res And Development Procedimiento de operación de un aparato auto-desplazable de limpieza y aparato para llevar a cabo el procedimiento
CN113359692B (zh) * 2020-02-20 2022-11-25 杭州萤石软件有限公司 一种障碍物的避让方法、可移动机器人
USD989426S1 (en) * 2021-01-20 2023-06-13 Vorwerk & Co. Interholding Gmbh Robot vacuum cleaner
CN112914410A (zh) * 2021-01-29 2021-06-08 深圳市艾深科技有限公司 擦窗机器人无线传输装置
GB2618847A (en) * 2022-05-20 2023-11-22 Dyson Technology Ltd Augmented reality cleaning system

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999866A (en) * 1996-11-05 1999-12-07 Carnegie Mellon University Infrastructure independent position determining system
GB0218188D0 (en) * 2002-08-06 2002-09-11 Hewlett Packard Co Methods and arrangements applicable to exhibition spaces
KR100500842B1 (ko) * 2002-10-31 2005-07-12 삼성광주전자 주식회사 로봇청소기와, 그 시스템 및 제어방법
KR100506533B1 (ko) * 2003-01-11 2005-08-05 삼성전자주식회사 이동로봇 및 그에 따른 자율주행 시스템 및 방법
JP3994950B2 (ja) * 2003-09-19 2007-10-24 ソニー株式会社 環境認識装置及び方法、経路計画装置及び方法、並びにロボット装置
US8996172B2 (en) 2006-09-01 2015-03-31 Neato Robotics, Inc. Distance sensor system and method
JP4212109B2 (ja) * 2007-03-20 2009-01-21 パナソニック株式会社 撮影装置および撮影方法
JP4857242B2 (ja) * 2007-11-05 2012-01-18 株式会社日立製作所 ロボット
WO2011026119A2 (en) * 2009-08-31 2011-03-03 Neato Robotics, Inc. Method and apparatus for simultaneous localization and mapping of mobile robot environment
US9014848B2 (en) 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
DE102010029241A1 (de) * 2010-05-21 2011-11-24 Alfred Kärcher Gmbh & Co. Kg Bodenbearbeitungsgerät sowie Verfahren zur Bearbeitung einer Bodenfläche
US9047531B2 (en) * 2010-05-21 2015-06-02 Hand Held Products, Inc. Interactive user interface for capturing a document in an image signal
DE102011000536A1 (de) * 2011-02-07 2012-08-09 Vorwerk & Co. Interholding Gmbh Verfahren zur Bestimmung der Position eines selbsttätig verfahrbaren Geräts
US8800101B2 (en) * 2011-07-25 2014-08-12 Lg Electronics Inc. Robot cleaner and self testing method of the same
US8798840B2 (en) 2011-09-30 2014-08-05 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
WO2013071150A1 (en) * 2011-11-11 2013-05-16 Bar Code Specialties, Inc. (Dba Bcs Solutions) Robotic inventory systems
US8699005B2 (en) * 2012-05-27 2014-04-15 Planitar Inc Indoor surveying apparatus
KR101954144B1 (ko) * 2012-06-08 2019-03-05 엘지전자 주식회사 로봇 청소기와, 이의 제어 방법, 및 이를 포함한 로봇 청소 시스템
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
US9233472B2 (en) * 2013-01-18 2016-01-12 Irobot Corporation Mobile robot providing environmental mapping for household environmental control
KR102061511B1 (ko) * 2013-04-26 2020-01-02 삼성전자주식회사 청소 로봇, 홈 모니터링 장치 및 그 제어 방법
US9037396B2 (en) * 2013-05-23 2015-05-19 Irobot Corporation Simultaneous localization and mapping for a mobile robot
KR102094347B1 (ko) * 2013-07-29 2020-03-30 삼성전자주식회사 자동 청소 시스템, 청소 로봇 및 그 제어 방법
CN113916230A (zh) * 2014-11-26 2022-01-11 艾罗伯特公司 用于使用机器视觉系统执行同时定位和映射的系统和方法
US9519289B2 (en) * 2014-11-26 2016-12-13 Irobot Corporation Systems and methods for performing simultaneous localization and mapping using machine vision systems
US9420741B2 (en) * 2014-12-15 2016-08-23 Irobot Corporation Robot lawnmower mapping
US9704043B2 (en) * 2014-12-16 2017-07-11 Irobot Corporation Systems and methods for capturing images and annotating the captured images with information
WO2016103067A1 (en) * 2014-12-22 2016-06-30 Husqvarna Ab Garden mapping and planning via robotic vehicle
CN104573733B (zh) * 2014-12-26 2018-05-04 上海交通大学 一种基于高清正射影像图的高精细地图生成系统及方法
US10328573B2 (en) * 2015-01-06 2019-06-25 Discovery Robotics Robotic platform with teach-repeat mode
US9594980B1 (en) * 2015-01-19 2017-03-14 Ricoh Co., Ltd. Image acquisition user interface for linear panoramic image stitching
EP3403146A4 (de) * 2016-01-15 2019-08-21 iRobot Corporation Autonome überwachungsrobotersysteme
US11212437B2 (en) * 2016-06-06 2021-12-28 Bryan COLIN Immersive capture and review
US10244167B2 (en) * 2016-06-17 2019-03-26 Gopro, Inc. Apparatus and methods for image encoding using spatially weighted encoding quality parameters
US10325372B2 (en) * 2016-12-20 2019-06-18 Amazon Technologies, Inc. Intelligent auto-cropping of images
DE102017118381A1 (de) * 2017-08-11 2019-02-14 Vorwerk & Co. Interholding Gmbh Verfahren zum Betrieb eines sich selbsttätig fortbewegenden Bodenbearbeitungsgerätes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021101047A1 (en) 2019-11-20 2021-05-27 Samsung Electronics Co., Ltd. Mobile robot device and method for controlling mobile robot device
EP3996884A4 (de) * 2019-11-20 2022-08-31 Samsung Electronics Co., Ltd. Mobile robotervorrichtung und verfahren zur steuerung einer mobilen robotervorrichtung
US11609575B2 (en) 2019-11-20 2023-03-21 Samsung Electronics Co., Ltd. Mobile robot device and method for controlling mobile robot device

Also Published As

Publication number Publication date
CN110060207A (zh) 2019-07-26
US10638906B2 (en) 2020-05-05
US20190183310A1 (en) 2019-06-20
CN110060207B (zh) 2023-05-12
GB2570785A (en) 2019-08-07
GB201820408D0 (en) 2019-01-30
GB2570785B (en) 2022-01-19

Similar Documents

Publication Publication Date Title
DE102018132428A1 (de) Photomosaische Bodenkartierung
US20210279444A1 (en) Systems and methods for depth map sampling
US11898848B2 (en) Visual navigation for mobile devices operable in differing environmental lighting conditions
DE112016004216T5 (de) Allgemeine Sphärische Erfassungsverfahren
CN109891189B (zh) 策划的摄影测量
DE102018125629A1 (de) DEEP-Learning-basierte Echtzeit-Detektion und -Korrektur von kompromittierten Sensoren in autonomen Maschinen
DE102019202252A1 (de) Robuste simultane lokalisierung und kartierung durch entfernung dynamischer verkehrsteilnehmer
DE102018215563A1 (de) Uav(unbemanntes luftfahrzeug)-gestützte arbeitsstättendatengewinnung
DE112019001257T5 (de) Stabilisierung von video zur verringerung von kamera- und gesichtsbewegung
DE112015002463T5 (de) Systeme und Verfahren zum gestischen Interagieren in einer im Umfeld vorhandenen Computerumgebung
US11494872B2 (en) Spatial processing for map geometry simplification
DE102018006050A1 (de) Parallaxenkorrektur in der Virtuellen Realität
JPWO2016152633A1 (ja) 画像処理システムおよび画像処理方法、並びにプログラム
DE102014204820A1 (de) Dreidimensionale Fingerspitzenverfolgung
DE112017003030T5 (de) Visionsbasiertes Robotersteuerungssystem
DE102014204320A1 (de) Informationsabfrage durch Zeigen
DE112016006213T5 (de) System und Verfahren zum Fusionieren von Ausgängen von Sensoren, die unterschiedliche Auflösungen aufweisen
DE112017008101T5 (de) Autonome roboter und verfahren zum betreiben derselben
DE102021204256A1 (de) Mäherpositionierungs-Konfigurationssystem
DE112016005936B4 (de) Codefilter für Tiefenerfassung mit codiertem Licht in Tiefenbildern
DE102020100230A1 (de) Rekonstruktion von landmarkenpositionen in autonomen maschinenanwendungen
DE112021003374T5 (de) Anwenden von gespeicherten digitalen make-up-verbesserungen auf erkannte gesichter in digitalen bildern
DE112020003967T5 (de) Datenverarbeitungseinrichtung, datenverarbeitungsverfahren und programm
CN115471731B (zh) 图像处理方法、装置、存储介质及设备
KR20210140766A (ko) 교통 도로를 위한 디지털 재구성 방법, 장치 및 시스템

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: A47L0005120000

Ipc: G01C0011040000

R081 Change of applicant/patentee

Owner name: VORWERK & CO. INTERHOLDING GESELLSCHAFT MIT BE, DE

Free format text: FORMER OWNER: NEATO ROBOTICS, INC., NEWARK, CALIF., US