DE112017008101T5 - Autonome roboter und verfahren zum betreiben derselben - Google Patents

Autonome roboter und verfahren zum betreiben derselben Download PDF

Info

Publication number
DE112017008101T5
DE112017008101T5 DE112017008101.7T DE112017008101T DE112017008101T5 DE 112017008101 T5 DE112017008101 T5 DE 112017008101T5 DE 112017008101 T DE112017008101 T DE 112017008101T DE 112017008101 T5 DE112017008101 T5 DE 112017008101T5
Authority
DE
Germany
Prior art keywords
speed
cost map
source image
version
environment
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
DE112017008101.7T
Other languages
English (en)
Inventor
Bin Wang
Jianguo Li
Shoumeng Yan
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112017008101T5 publication Critical patent/DE112017008101T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • 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
    • 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/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Autonome Roboter und Verfahren zum Betreiben derselben sind offenbart. Ein autonomer Roboter umfasst einen Sensor und einen Speicher, umfassend maschinenlesbare Anweisungen. Der autonome Roboter umfasst ferner zumindest einen Prozessor, um die Anweisungen auszuführen, um eine Geschwindigkeits-Kostenlandkarte zu erzeugen, die einer Umgebung zugeordnet ist, in der sich der Roboter befindet. Der Prozessor erzeugt die Geschwindigkeits-Kostenlandkarte basierend auf einem durch den Sensor erfassten Quellbild. Die Geschwindigkeits-Kostenlandkarte umfasst eine Geschwindigkeitsinformation, die eine Bewegung eines Hindernisses anzeigt, das in der Umgebung detektiert wird.

Description

  • GEBIET DER OFFENBARUNG
  • Diese Offenbarung betrifft im Allgemeinen autonome Robotik und insbesondere autonome Roboter und Verfahren zum Betreiben derselben.
  • HINTERGRUND
  • Seit Jahren sind Roboter in Werksfertigungsstraßen weit verbreitet. In jüngerer Zeit haben Fortschritte bei Robotertechnologien dazu geführt, dass Robotervorrichtungen in anderen Arten von Umgebungen verwendet werden, umfassend Geschäftsbüros, Privathaushalte usw. Einige Robotervorrichtungen können sich autonom von einem Ort zu einem zweiten Ort bewegen. Solche mobilen Roboter setzen einen oder mehrere Algorithmen ein, die auf unterschiedlichen Sensoren basieren, umfassend Sonaren, Laser-Entfernungs-Scanner und/oder Tiefenkameras, um eine Kollision mit Objekten innerhalb der Umgebung zu vermeiden, in der sich der Roboter bewegt.
  • Figurenliste
    • 1 stellt einen beispielhaften autonom mobilen Roboter innerhalb einer beispielhaften Umgebung dar.
    • 2 ist ein Blockdiagramm, das eine beispielhaften Implementierung des beispielhaften Kostenlandkarten-Entwicklers des beispielhaften autonom mobilen Roboters von 1 zeigt.
    • 3 stellt eine beispielhafte, durch den beispielhaften Kostenlandkarten-Entwickler von 2 erzeugte, statische Kostenlandkarte vor.
    • 4 stellt eine beispielhafte grobe Geschwindigkeits-Kostenlandkarte dar, die durch den beispielhaften Kostenlandkarten-Entwickler von 2 erzeugt wird.
    • 5 stellt die beispielhafte grobe Geschwindigkeits-Kostenlandkarte von 4, aufgeteilt in Blöcke, dar.
    • 6 stellt eine beispielhafte feine Geschwindigkeits-Kostenlandkarte dar, die durch den beispielhaften Kostenlandkarten-Entwickler von 2 erzeugt wird.
    • 7 stellt eine beispielhafte finale Geschwindigkeits-Kostenlandkarte dar, die durch den beispielhaften Kostenlandkarten-Entwickler von 2 erzeugt wird, der die grobe Geschwindigkeits-Kostenlandkarte von 4 mit der feinen Geschwindigkeits-Kostenlandkarte von 6 kombiniert.
    • 8 und 9 sind Flussdiagramme, die beispielhafte maschinenlesbare Anweisungen repräsentieren, die ausgeführt werden können, um den beispielhaften Kostenlandkarten-Entwickler von 2 und/oder allgemeiner den autonom mobilen Roboter von 1 zu implementieren.
    • 10 ist ein Blockdiagramm einer beispielhaften Prozessorplattform, die strukturiert ist, um die beispielhaften maschinenlesbaren Anweisungen von 8 und/oder 9 auszuführen, um den beispielhaften Kostenlandkarten-Entwickler von 2 und/oder allgemeiner den autonom mobilen Roboter von 1 zu implementieren.
  • Die Figuren sind nicht maßstabsgetreu. Soweit möglich werden die gleichen Bezugszeichen in der/den Figur(en) und der beiliegenden Beschreibung verwendet, um auf dieselben oder gleichen Teile Bezug zu nehmen.
  • DETAILLIERTE BESCHREIBUNG
  • Es gibt viele unterschiedliche Hindernis/Kollision-Vermeidungsalgorithmen, die von Robotern in Verbindung mit verschiedenen Sensortypen verwendet werden, um Roboter dazu zu befähigen, sich autonom innerhalb einer Umgebung unter gleichzeitiger Vermeidung von Hindernissen in der Umgebung zu bewegen. Irgendein Typ von autonom mobilem Roboter (z. B. ein autonomes Fahrzeug, ein fahrerloses Luftfahrzeug, ein menschenähnlicher Roboter etc.) kann derartige Kollisionsvermeidungsalgorithmen verwenden. Ein gemeinhin eingesetztes Werkzeug, das in Verbindung mit einem solchen Algorithmus verwendet wird, ist eine Kostenlandkarte (Costmap). Eine Kostenlandkarte wird verwendet, um den Belegungszustand (belegt, frei etc.) von individuellen Zellen eines Belegungsgitters zu definieren, das der Umgebung entspricht, in der sich ein autonom mobiler Roboter bewegt. Die Größe jeder individuellen Zelle und somit die Granularität eines Belegungsgitters einer Kostenlandkarte hängt von der Auflösung der Sensoren ab, die verwendet werden, um Objekte innerhalb der Umgebung zu detektieren. Basierend auf der Identifizierung von belegten und freien Zellen innerhalb einer Kostenlandkarte, die die umgebende Umgebung repräsentieren, ist der autonom mobile Roboter fähig, in der Umgebung zu navigieren und Kollisionen mit Hindernissen zu vermeiden. Gemäß hiesiger Verwendung bezieht sich ein autonom mobiler Roboter auf irgendeine Robotervorrichtung, die fähig ist, sich innerhalb einer Umgebung basierend auf Sensordaten autonom zu bewegen. Gemäß hiesiger Verwendung umfasst autonome Bewegung sowohl eine Bewegung eines Abschnitts der Vorrichtung (z. B. eines Arms), der an einer stationären Basis verankert ist, als auch eine Bewegung der gesamten Vorrichtung (z. B. umfassend die Basis).
  • Die Position von Hindernissen, die innerhalb bestehender Kostenlandkarten repräsentiert sind, ist zu einem statischen Zeitpunkt repräsentiert. Das heißt, eine typische Kostenlandkarte vermittelt nicht, ob ein detektiertes Hindernis stationär ist oder sich bewegt. Vielmehr vermittelt die Kostenlandkarte lediglich, wo sich Hindernisse zu der Zeit befinden, zu der die Sensordaten gesammelt wurden, die verwendet wurden, um die Kostenlandkarte zu erzeugen. Typischerweise regenerieren autonom mobile Roboter, die unter Verwendung einer Kostenlandkarte navigieren, die Kostenlandkarte häufig (z. B. mehrere Male pro Sekunde) basierend auf aktualisierten Sensordaten, die im Wesentlichen in Echtzeit gesammelt wurden. Folglich wird die Bewegung von Hindernissen basierend auf der sich ändernden Lage des Hindernisses erfasst, jedes Mal, wenn eine neue Kostenlandkarte erzeugt wird. Während auf diese Weise eingesetzte Kostenlandkarten autonom mobile Roboter befähigen, Kollisionen mit stationären Hindernissen und sich relativ langsam bewegenden Objekten zu vermeiden, ist dieser Ansatz häufig unzureichend, um autonom mobile Roboter zu befähigen, Navigationsrouten im Hinblick auf Änderungen in der umgebenden Umgebung zu überprüfen (insbesondere in Fällen, in denen die Änderung sich relativ schnell bewegenden Objekten oder Hindernissen entspricht).
  • Hier offenbarte Beispiele ermöglichen eine dynamische Kollisionsvermeidung für autonom mobile Roboter durch Erzeugen von Bewegungs-basierten Kostenlandkarten, die die aktuelle Position von Hindernissen, ihre Geschwindigkeit und ihre Bewegungsrichtung relativ zu den autonom mobilen Robotern repräsentieren. Das heißt, beispielhafte Roboter, die gemäß hiesiger Offenbarung strukturiert sind, um in einer Umgebung zu arbeiten, die stationäre und/oder sich bewegende Objekte umfasst, sind fähig, in der Umgebung unter gleichzeitiger Vermeidung von Kollisionen mit den Objekten zu navigieren. Solche beispielhaften Roboter können Kollisionen vermeiden ohne mit anderen Objekten in der Umgebung zu kommunizieren, indem sie einen Laufweg im Wesentlichen in Echtzeit basierend auf der in den Geschwindigkeits-basierten Kostenlandkarten umfassten Bewegungsinformation einstellen. Derartige Geschwindigkeitsbasierte Kostenlandkarte werden hier als Geschwindigkeits-Kostenlandkarten bezeichnet. Das Einschließen von Geschwindigkeitsinformation (umfassend eine Bewegungsrichtung (z. B. Trajektorie)) erhöht die Verarbeitungsanforderungen einer Navigationssteuerung erheblich, was die Antwortzeit eines autonom mobilen Roboters möglicherweise reduziert. Dementsprechend wird anfänglich, um die Effizienz zu verbessern und die Verarbeitungsanforderungen zu reduzieren, bei einigen Beispielen eine grobe (z. B. geringe Auflösung) Geschwindigkeits-Kostenlandkarte basierend auf Reduzierte-Auflösungs-Sensordaten erzeugt. Die grobe Geschwindigkeits-Kostenlandkarte kann dann analysiert werden, um bestimmte Regionen innerhalb des Sichtfeldes der Sensoren zu identifizieren, denen Bewegung zugeordnet ist (d.h. wo sich bewegende Hindernisse detektiert werden). Bei solchen Beispielen werden die Volle- (Hohe-) Auflösungs-Sensordaten, die den identifizierten Bewegungsregionen entsprechen) analysiert, um eine feine (z. B. hohe Auflösung) Geschwindigkeits-Kostenlandkarte für die relevanten Regionen, in denen Bewegung detektiert wurde, zu erzeugen. Dieser zweistufige Ansatz ermöglicht die präzise Nachverfolgung von sich bewegenden Hindernissen unter gleichzeitiger Senkung der Verarbeitungsanforderungen, um die Effizienz des Prozessors zu verbessern, der die Entscheidung trifft, und um eine dynamische Kollisionsvermeidung im Wesentlichen in Echtzeit zu ermöglichen. Natürlich ist es bei einigen Beispielen abhängig von der Anwendung möglicherweise nicht erforderlich, dass einige Beispiele die durch die feine Geschwindigkeits-Kostenlandkarte bereitgestellte, erhöhte Präzision aufweisen. Bei derartigen Beispielen wird die dynamische Kollisionsvermeidung einfach unter Verwendung der in der groben Geschwindigkeits-Kostenlandkarte umfassten Geschwindigkeits- und Trajektorie-Information erreicht.
  • 1 stellt einen beispielhaften autonom mobilen Roboter 100 innerhalb einer beispielhaften Umgebung 102 dar. Zu Erläuterungszwecken ist die beispielhafte Umgebung 102 von 1 ein Raum mit stationären Objekten, die auf einem Boden, umfassend einen Tisch 104 und eine Theke oder einem Schrank 106, positioniert sind. Bei dem dargestellten Beispiel umfasst die Umgebung 102 ferner zwei sich bewegende Objekte umfassend ein erstes sich bewegendes Objekt 108, das sich in eine erste Richtung 110 bewegt, und ein zweites sich bewegendes Objekt 112, das sich in eine zweite Richtung 114 bewegt. Bei dem dargestellten Beispiel wird die Schnelligkeit oder Geschwindigkeit des ersten und zweiten Objekts 108, 112 durch die Länge der Pfeile repräsentiert, die die erste und zweite Richtung 110, 114 anzeigen. Somit, wie in 1 durch den Längenunterschied der Richtungspfeile gezeigt, bewegt sich das erste Objekt 108 schneller als das zweite Objekt 112. Die Pfeile 110, 114 können als Vektoren verstanden werden, die die Richtung durch ihre Orientierung und die Geschwindigkeit durch ihren Betrag repräsentieren.
  • Bei dem dargestellten Beispiel umfasst der autonom mobile Roboter 100 ein Steuersystem 116 in Kommunikation mit einem oder mehreren optischen Sensoren 118 und einem oder mehreren Bewegungssensoren 120. Der/Die optische(n) Sensor(en) 118 werden verwendet, um Hindernisse innerhalb der Umgebung 102 zu detektieren, die den autonom mobilen Roboter 100 umgeben. Bei einigen Beispielen entsprechen der/die optische(n) Sensor(en) 118 einem oder mehreren Tiefensensoren, wie beispielsweise einer RGB-D- (Rot-Grün-Blau-Tiefen-) Kamera. Eine RGB-D-Kamera ist fähig, ein RGB-D-Bild zu erfassen, das sowohl Farb- auch als Tiefeninformation für jedes Pixel des Bildes umfasst. Bei einigen Beispielen entsprechen der/die Bewegungssensor(en) 120 einer inertialen Messeinheit (IMU; inertial measurement unit), die ein oder mehrere Akzelerometer, Gyroskope, Magnetometer und/oder andere Sensoren umfasst, um die Position, Orientierung und/oder Bewegung des autonom mobilen Roboters 100 zu messen und zu berichten. Bei einigen Beispielen umfasst der Roboter andere Sensoren (z. B. Wärmesensoren).
  • Bei dem dargestellten Beispiel verwendet das Steuersystem 116 Sensordaten, die durch den einen oder die mehreren Sensoren (z. B. den/die Sensor(en) 118, 120) bereitgestellt sind, um die Bewegung des autonom mobilen Roboters 100 autonom zu steuern. Bei einigen Beispielen umfasst und/oder implementiert das Steuersystem 116 einen Kostenlandkarten-Entwickler 122, um eine autonome Navigation des autonom mobilen Roboters 100 innerhalb der Umgebung 102 zu ermöglichen. Insbesondere kann der Kostenlandkarten-Entwickler 122 eine Geschwindigkeits-Kostenlandkarte der umgebenden Umgebung 102 erzeugen, um den stationären Zustand des Tisches 104 und des Schranks 106 zu reflektieren und den sich bewegenden Charakter des ersten und zweiten Objekts 108, 112 zu reflektieren. Auf diese Weise implementiert das Steuersystem 116 eine dynamische Kollisionsvermeidung mit ausreichender Schnelligkeit, um in Umgebung mit Hindernissen, die sich relativ schnell bewegen, zu navigieren.
  • 2 ist ein Blockdiagramm, das eine beispielhafte Implementierung des beispielhaften Kostenlandkarten-Entwicklers 122 von 1 darstellt. Wie bei dem dargestellten Beispiel gezeigt, umfasst der Kostenlandkarten-Entwickler 122 eine beispielhafte Kommunikationsschnittstelle 202, einen beispielhaften Bildauflösungseinsteller 204, einen beispielhaften Bewegungsanalysierer 206, einen beispielhaften Kostenlandkarten-Generator 208 und einen beispielhaften Bewegungsregionsidentifizierer 210.
  • Bei dieser beispielhaften Implementierung umfasst der beispielhafte Kostenlandkarten-Entwickler 122 von 2 die beispielhafte Kommunikationsschnittstelle 202, um eine Kommunikation mit anderen Komponenten des beispielhaften autonom mobilen Roboters 100 zu ermöglichen. Beispielsweise kann die Kommunikationsschnittstelle 202 mit dem Steuersystem 116, dem/den optischen Sensor(en) 118 und/oder dem/den Bewegungssensor(en) 120 kommunizieren, um relevante Sensordaten zu erhalten und/oder zu verarbeiten.
  • Der beispielhafte Kostenlandkarten-Entwickler 122 von 2 umfasst den beispielhaften Bildauflösungseinsteller 204, um die Auflösung von durch den/die optischen Sensor(en) 118 erfassten RGB-D-Bildern zur Analyse beim Erzeugen einer Kostenlandkarte einzustellen. Die Granularität und somit die Präzision einer Kostenlandkarte hängt von der Auflösung der Sensordaten ab, auf denen die Kostenlandkarte basiert. Bei der höchsten Granularität kann jede Zelle innerhalb des Belegungsgitters einem unterschiedlichen Pixel eines erfassten Bildes entsprechen, das verwendet wird, um die Kostenlandkarte zu definieren. Bei einigen Beispielen reduziert der Bildauflösungseinsteller 204 die Größe eines erfassten Bildes, um Daten für die Verarbeitung zu reduzieren. Beispielsweise verursachen einige Beispiele eine Pixelierung durch Kombinieren mehrerer Pixel aus dem ursprünglichen Quellbild und Behandeln der kombinierten Pixel als ein einzelnes Pixel zur nachfolgenden Analyse. Während dies die Granularität der sich ergebenden Kostenlandkarte reduziert, erhöht es auch die Geschwindigkeit, mit der Bilder analysiert werden, um eine dynamische Steuerung des autonom mobilen Roboters 100 in im Wesentlicher Echtzeit unter gleichzeitiger Reduzierung der Last auf dem Prozessor, der die Analyse ausführt, zu ermöglichen. Andere Techniken können alternativ verwendet werden, um die Auflösung oder Granularität der zu analysierenden Bilddaten zu reduzieren. Anstatt Pixel zu kombinieren kann der Bildauflösungseinsteller 204 beispielsweise das Bild in irgendeiner anderen geeigneten Weise abwärts abtasten. Beispielsweise extrahieren andere Beispiele jedes andere Pixel (oder Pixel bei einer etwas anderen Beabstandung) zur nachfolgenden Analyse. Die Menge an Abwärtsabtasten kann von der bestimmten Anwendung und den zugeordneten Verarbeitungsgeschwindigkeiten abhängen, die notwendig sind, um eine zuverlässige dynamische Kollisionsvermeidung zu implementieren. Als ein bestimmtes Beispiel kann ein ursprüngliches RGB-D-Bild, das als ein Quellbild verwendet wird, eine Auflösung von 320x240 Pixel aufweisen, die auf ein grobes Bild von 80x60 Pixel abwärts abgetastet wird. Während ein derartiges Abwärtsabtasten zu weniger Detail in dem Bild für relativ entfernte Objekte führen kann, gibt es wahrscheinlich immer noch ausreichend Information für relativ nahe Objekte, um eine dynamische Kollisionsvermeidung und autonome Navigation (die sich in erster Linie mit nahegelegenen Objekten beschäftigt) zu ermöglichen.
  • Wie vorangehend beschrieben wurde und nachstehend ausführlicher erörtert wird, werden bei einigen Beispielen zwei separate Geschwindigkeits-Kostenlandkarten, umfassend eine grobe Geschwindigkeits-Kostenlandkarte und eine feine Geschwindigkeits-Kostenlandkarte, erzeugt, die sich basierend auf ihrer Auflösung unterscheiden. Bei einigen Beispielen wird die feine Geschwindigkeits-Kostenlandkarte basierend auf der ursprünglichen Auflösung von durch den/die optischen Sensor(en) 118 erfassten Quellbildern erzeugt und die grobe Geschwindigkeits-Kostenlandkarte wird basierend auf einer Pixelierung (z. B. Abwärtsabtasten) der Quellbilder erzeugt. Bei anderen Beispielen werden sowohl die feine als auch die grobe Geschwindigkeits-Kostenlandkarte basierend auf einer reduzierten Auflösung des ursprünglichen Quellbildes erzeugt, wobei die grobe Geschwindigkeits-Kostenlandkarte einer geringeren Auflösung zugeordnet ist als die feine Geschwindigkeits-Kostenlandkarte.
  • Bevor eine Geschwindigkeits-Kostenlandkarte erzeugt werden kann, ist es erforderlich, die Geschwindigkeitsinformation (umfassend Bewegungsrichtung), die der umgebenden Umgebung 102 zugeordnet ist, zu bestimmen. Während ein einzelnes RGB-D-Bild sowohl Farbinformation als auch Tiefeninformation für jedes Pixel umfassen kann, gibt es keine Geschwindigkeitsanzeige. Dementsprechend umfasst bei dem dargestellten Beispiel der Kostenlandkarten-Entwickler 122 den beispielhaften Bewegungsanalysierer 206, um eine Sequenz von zumindest zwei durch den/die optischen Sensor(en) 118 erfassten RGB-D-Bildern zu aufeinanderfolgenden Zeitpunkten zu analysieren, um ein dreidimensionales (3D) Bewegungsfeld zu erzeugen. Der Prozess zum Erzeugen eines solches 3D-Bewegungsfeldes kann als Szenenflussschätzung (scene flow estimation) bezeichnet werden.
  • Kurz gesagt, die Szenenflussschätzung umfasst den Vergleich von Pixeln (oder Gruppen von Pixeln) in zumindest zwei Bildern. Das individuelle Analysieren eines jeden Pixels kann als dichter Szenenfluss (dense scene flow) bezeichnet werden. Im Gegensatz dazu kann das Analysieren von Gruppen von Pixeln als ein halbdichter Szenenfluss bezeichnet werden. Änderungen zwischen Pixeln in den separaten Bildern, die einem bestimmen Objekt in dem Sichtfeld des/der optischen Sensors/Sensoren 118 entsprechen, können analysiert werden, um eine Bewegung des bestimmten Objekts zu bestimmen. Insbesondere kann die Farbinformation der Pixel verwendet werden, um eine laterale Bewegung (z. B. Bewegung über das Sichtfeld des/der optischen Sensors/Sensoren 118 hinweg) zu bestimmen, während die Tiefeninformation der Pixel verwendet werden kann, um eine Tiefeninformation (z. B. Bewegung weg von oder in Richtung des/der optischen Sensors/Sensoren 118) zu bestimmen. Basierend auf dem detektierten Ausmaß (und Richtung) der Bewegung eines Bildobjekts und der Zeit, die zwischen separaten Bildern vergeht, können die Geschwindigkeit und Bewegungsrichtung des Objekts bestimmt werden. Durch derartiges Bestimmen der Geschwindigkeit und Bewegungsrichtung, die jedem Pixel (oder Gruppen von Pixeln) innerhalb eines RGB-D-Bildes zugeordnet sind, ist der beispielhafte Bewegungsanalysierer 312 in der Lage, ein 3D-Bewegungsfeld zu erzeugen, das dem Sichtfeld des/der optischen Sensors/Sensoren 118 entspricht.
  • Während der dichte Szenenfluss (individuelles Analysieren von jedem Pixel) eine größere Präzision bereitstellt, kann das Reduzieren der Auflösung von Bildern (für eine halbdichte Szenenflussschätzung) die Prozessoreffizienz erheblich erhöhen und die Verarbeitungszeit reduzieren. Dementsprechend erzeugt der Bewegungsanalysierer 206 bei einigen Beispielen ein erstes 3D-Bewegungsfeld basierend auf dem durch den Bildauflösungseinsteller 204 erzeugten, groben Bild. Danach erzeugt der beispielhafte Bewegungsanalysierer 206 ein zweites 3D-Bewegungsfeld bei einer höheren Auflösung (z. B. der vollen Auflösung des Quellbildes) für interessierende isolierte Regionen in dem Quellbild. Bei einigen Beispielen entsprechen die interessierenden isolierten Regionen Regionen, in denen Bewegung basierend auf einer Analyse des groben 3D-Bewegungsfeldes detektiert wurde. Solche Regionen sind von besonderem Interesse, weil sie Hindernissen mit sich ändernden Lagen entsprechen, die präzise nachzuverfolgen sind, um es dem autonom mobilen Roboter 100 zu ermöglichen, eine dynamische Kollisionssteuerung adäquat auszuführen.
  • Fehler und/oder Rauschen in den durch den Bewegungsanalysierer 206 erzeugten 3D-Bewegungsfeldern können sich aus einer nichtstabilen Bewegung des autonom mobilen Roboters 100 und/oder aus Fehlern in dem/den optischen Sensor(en) 118 (z. B. Kamera-Jittern in dem/den Sensor(en)) ergeben. Bei einigen Beispielen kompensiert der beispielhafte Bewegungsanalysierer 206 eine Bewegung des autonom mobilen Roboters 100 basierend auf Bewegungsdaten von dem/den Bewegungssensor(en) 120 des autonom mobilen Roboters 100. Zusätzlich oder alternativ kann die Bewegung des autonom mobilen Roboters 100 durch Sensoren berücksichtigt werden, die die Bewegung von Rädern oder anderen Bewegungsaktuatoren auf dem autonom mobilen Roboter 100 überwachen. Bei einigen Beispielen kann Kamera-Jittern durch Verwendung von (einem) optischen Sensor(en) 118 kompensiert werden, die eine inertiale Messeinheit (IMU) umfassen, um die Bewegung (Jittern) des/der Sensor(en) zu überwachen. Irgendwelche Restfehler, die eine geringe Bewegung für stationäre Objekte anzeigen, können durch Herausfiltern von Bewegung, die unter einem nahezu statischen Bewegungsschwellenwert ist (z. B. 1 Zoll (inch) pro Sekunde), gelöst werden.
  • Bei dem dargestellten Beispiel von 2 ist der Kostenlandkarten-Entwickler 122 mit dem beispielhaften Kostenlandkarten-Generator 208 bereitgestellt, um eine Kostenlandkarte zu erzeugen, die Hindernisse anzeigt, die in der Umgebung 102 detektiert werden basierend auf z. B. aus dem/den optischen Sensor(en) 118 gesammelten Bilddaten. Bei einigen Beispielen erzeugt der Kostenlandkarten-Generator 208 eine traditionelle Kostenlandkarte, die eine statische Repräsentation der aktuellen Lage von detektierten Hindernissen innerhalb der Umgebung ist, die den autonom mobilen Roboter 100 umgibt und die keine Geschwindigkeitsinformation umfasst. Zusätzlich kann der Kostenlandkarten-Generator 208 Geschwindigkeits-Kostenlandkarten basierend auf den durch den Bewegungsanalysierer 206 erzeugten 3D-Bewegungsfeldern erzeugen, um sowohl die aktuelle Lage von detektierten Hindernissen als auch die Bewegung (Geschwindigkeit und Bewegungsrichtung) solcher Hindernisse zu repräsentieren.
  • 3 stellt eine beispielhafte statische Kostenlandkarte 300 dar, die keine Geschwindigkeitsinformation umfasst, die der Umgebung 102 von 1 entspricht. Umrisse des Tisches 104, des Schranks 106 und des ersten und zweiten Objekts 108, 112 sind zu Erläuterungszwecken gezeigt, sind aber bei einigen Beispielen in der durch den Kostenlandkarten-Generator 208 erzeugten Kostenlandkarte nicht umfasst, da die Kostenlandkarte basierend auf durch den/die Sensor(en) 118 gesammelten Daten erzeugt wird, derart, dass nur die Abschnitte von Hindernissen, die für den/die Sensor(en) 118 sichtbar sind, anstatt die vollständigen Hindernisse repräsentiert sein würden. Bei dem dargestellten Beispiel repräsentieren die schattierten Abschnitte die Abschnitte der Hindernisse, die durch den/die Sensor(en) 118 detektiert werden, wie nachfolgend ausführlicher beschrieben wird. Wie bei dem dargestellten Beispiel gezeigt ist, ist die Umgebung 102 in individuelle Zellen 302 aufgeteilt, die einem Belegungsgitter der Kostenlandkarte 300 entsprechen. Zu Erläuterungszwecken ist die Granularität der Kostenlandkarte 300 von 3 relativ gering (d. h. die Größe der individuellen Zellen 302 ist relativ groß). Bei der eigentlichen Implementierung ist die Größe der individuellen Zellen wahrscheinlich viel kleiner (z. B. entspricht einem einzelnen Pixel oder einer kleinen Gruppe von Pixeln (z. B. 2-8 Pixel) eines Bildes wie vorangehend beschrieben wurde).
  • Zu Erläuterungszwecken sind die Zellen 302 des Belegungsgitters bei dem dargestellten Beispiel von 3 so gezeigt, dass sie die gesamte Umgebung 102 von 1 abdecken. Insoweit jedoch individuelle Zellen basierend auf entsprechenden Pixeln eines durch den/die optischen Sensor(en) 118 erfassten Bildes definiert werden, kann das Belegungsgitter auf Abschnitte der umgebenden Umgebung 102 beschränkt sein, die innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118 sind. Beispielsweise repräsentieren bei dem dargestellten Beispiel von 3 die schattierten Zellen 302 Zellen, die durch den Kostenlandkarten-Generator 208 als belegt identifiziert werden (z. B. wird ein Hindernis innerhalb der Zelle detektiert), wohingegen die nicht schattierten Zellen 302 Bereiche repräsentieren, in denen entweder kein Hindernis detektiert wird (z. B. ist es ein freier Raum) oder der Belegungszustand der Zelle unbekannt ist. Bei dem dargestellten Beispiel wird angenommen, dass der/die optische(n) Sensor(en) 118 des autonom mobilen Roboters 100 niedriger sind als die obere Oberfläche des Schranks 106. Folglich ist nur die Vorderseite 304 des Schranks 106 innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118. Somit sind bei der Kostenlandkarte 300 von 3 nur die Zellen 302, die der Lage der Vorderseite 304 des Schranks 106 zugeordnet sind, mit einer Schattierung als belegt gekennzeichnet. Der Bereich hinter der Vorderseite 304 des Schranks 106 ist nicht innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118, derart, dass die entsprechenden Zellen 302, die in 3 hinter der Vorderseite 3 gezeigt sind, möglicherweise bei einigen beispielhaften Kostenlandkarten nicht umfasst sind. Aus demselben Grund sind bei dem dargestellten Beispiel nur die Zellen 302, die dem ersten Objekt 108 in direkter Sichtlinie mit dem autonom mobilen Roboter 100 zugeordnet sind, schattiert, um die Lage eines Hindernisses innerhalb der beispielhaften Kostenlandkarte 300 anzuzeigen.
  • Im Gegensatz zu dem Schrank 106 und dem ersten Objekt 108, wo nur die Zellen 302 schattiert sind, die dem Abschnitt des Schranks 106 oder des ersten Objekts 108 innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118 zugeordnet sind, sind die Zellen 302, die dem gesamten Tisch 104 und dem zweiten Objekt 112 zugeordnet sind, in 3 schattiert. Bei diesem Beispiel ergibt sich diese Unterscheidung aus der Tatsache, dass, ob der/die optische(n) Sensor(en) 118 über oder unter der Oberfläche des Tisches 104 positioniert ist/sind, der Tisch immer noch innerhalb des Sichtfeldes des/der Sensors/Sensoren ist (z. B. von über oder unter der Tischoberfläche). Das heißt, selbst wenn der/die optische(n) Sensor(en) 118 unter der Oberfläche des Tisches sind, sind der/die Sensor(en) immer noch in der Lage, die Unterseite des Tisches 104 zu detektieren (z. B. durch die Tischfüße); sollte der Tisch eine Tischdecke umfassen, die auf den Boden fällt, wäre dies nicht wahr und das Beispiel würde dem Schrank 106 entsprechen, bei dem nur die vordere Oberfläche sichtbar ist). Bei dem dargestellten Beispiel ist, wie bei dem ersten Objekt 108, der Abschnitt des zweiten Objekts 112, der am weitesten von dem autonom mobilen Roboter 100 entfernt ist, nicht innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118. Die Zellen 302, die diesem Abschnitt des zweiten Objekts 112 zugeordnet sind, sind aber trotzdem schattiert, da der Tisch 104, der innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118 ist, den gleichen Raum kreuzt. Das heißt, bei dem dargestellten Beispiel entsprechen die Zellen 302 der Kostenlandkarte 300 vertikalen Säulen innerhalb der Umgebung 102. Wenn ein Hindernis in irgendeiner Höhe innerhalb der Säule detektiert wird, wird die zugeordnete Zelle der Kostenlandkarte 300 als belegt gekennzeichnet, selbst wenn es andere Höhen innerhalb der Säule gibt, die leerem Raum entsprechen. Anders gesagt, die Kostenlandkarte 300 dieses Beispiels ist eine zweidimensionale (2D) planare Projektion von Hindernissen, die innerhalb des dreidimensionalen (3D) Raums detektiert werden.
  • Kostenlandkarten können in einer 2D-Ebene definiert sein, wie in 3 gezeigt, um den Verarbeitungsgrad durch den autonomen mobilen Roboter 100 zu reduzieren, um um solche Hindernisse herum zu navigieren. Bei einigen Beispielen kann der Kostenlandkarten-Generator 208 jedoch eine 3D-Kostenlandkarte erzeugt, die Höheninformation erhält. Bei einigen solchen Beispielen würden Zellen 302, die dem zweiten Objekt 112 zugeordnet sind (bei der Höhe des zweiten Objekts 112) ähnlich Denjenigen erscheinen, die dem ersten Objekt 108 zugeordnet sind, gezeigt in 3, wenn der Abschnitt des zweiten Objekts 112, der von dem autonom mobilen Roboter 100 am weitesten entfernt ist, nicht in direkter Sichtlinie des/der optischen Sensors/Sensoren 118 ist.
  • Während der Belegungszustand (z. B. belegt oder frei) von jeder Zelle 302 bei dem dargestellten Beispiel von 3 über eine Schattierung repräsentiert ist, kann der Kostenlandkarten-Generator 208 den Belegungszustand jeder Zelle durch Zuweisen eines Kostenwertes zu jeder Zelle (oder jedem Pixel oder Gruppe von Pixeln, die jeder Zelle zugeordnet sind) kennzeichnen. Bei einigen Beispielen kann der Kostenwert binär sein (z. B. 0 oder 1), um anzuzeigen, ob die Zelle belegt oder frei ist. Bei anderen Beispielen kann der Kostenwert auf einer Skala sein, um ein Maß an Vertrauen oder Wahrscheinlichkeit anzuzeigen, ob eine bestimmte Zelle belegt oder frei ist.
  • 4 stellt eine beispielhafte Geschwindigkeits-Kostenlandkarte 400 dar, die der Umgebung 102 von 1 entspricht. Die Geschwindigkeits-Kostenlandkarte 400 von 4 umfasst Zellen 402, die den Zellen 302 der statischen Kostenlandkarte 300 von 3 entsprechen. Wie bei 3, repräsentieren bei dem dargestellten Beispiel von 4 die schattierten Zellen 402 Zellen, die durch den Kostenlandkarten-Generator 208 als belegt identifiziert werden (z. B. wird ein Hindernis innerhalb der Zelle detektiert), wohingegen die nicht schattierten Zellen 402 Bereiche repräsentieren, in denen entweder kein Hindernis detektiert wird (z. B. ist es ein freier Raum) oder der Belegungszustand der Zelle unbekannt ist.
  • Während die gleichen Zellen in beiden 3 und 4 schattiert sind, umfasst die beispielhafte Geschwindigkeits-Kostenlandkarte 400 von 4 zusätzliche Information, die die Geschwindigkeit und Bewegungsrichtung der innerhalb der schattierten Zellen 402 detektierten Hindernisse anzeigt. Zu Erläuterungszwecken werden die Zellen 402, die Hindernissen zugeordnet sind, die sich nicht bewegen, mit einem Punkt identifiziert, während die Zellen 402, die einem sich bewegenden Objekt zugeordnet sind, einen Pfeil umfassen, der den Betrag der Geschwindigkeit und Bewegungsrichtung definiert. Bei dem dargestellten Beispiel wird der Betrag der Geschwindigkeit der Bewegung durch die Länge des Pfeils repräsentiert. Somit, wie in 4 gezeigt, sind die dem ersten Objekt 108 zugeordneten Pfeile länger als die dem zweiten Objekt 112 zugeordneten Pfeile, da das erste Objekt 108 sich mit einer schnelleren Geschwindigkeit bewegt als das zweite Objekt 112.
  • Bei einigen Beispielen definiert der Kostenlandkarten-Generator 208 des dargestellten Beispiels die Geschwindigkeit für jede Zelle 402, indem er jeder Zelle einen Geschwindigkeitsvektor zuweist. Jede Zelle ist einem Pixel oder einer Gruppe von Pixeln zugeordnet. Jeder Geschwindigkeitsvektor umfasst drei Werte, die der Geschwindigkeit (z. B. Betrag der Bewegung in einem gegebenen Zeitraum) entlang jeder der X-, Y- und Z-Richtungen des 3D-Raums entsprechen. Bei einigen Beispielen, bei denen die Geschwindigkeits-Kostenlandkarte 400 in eine 2D-Ebene projiziert wird, wird der Geschwindigkeitsvektor durch zwei Werte definiert, die der X-und Y-Richtung in der Ebene der Geschwindigkeits-Kostenlandkarte entsprechen.
  • Wie vorangehend erwähnt wurde, kann für eine 2D-Geschwindigkeits-Kostenlandkarte jede Zelle 402 als eine vertikale Säule konzipiert werden, die Hindernisse in bestimmten Höhen und freie Raum in anderen Höhen umfassen kann. Auf ähnliche Weise kann eine bestimmte Säule Hindernisse in unterschiedlichen Höhen umfassen, die sich mit unterschiedlichen Geschwindigkeiten bewegen. Bei einigen solchen Beispielen wird der Geschwindigkeitsvektor, der der Zelle zugewiesen ist, durch das sich am schnellsten bewegende Hindernis innerhalb der zugeordneten Säule der Zelle in einer Richtung in Richtung des autonom mobilen Roboters 100 definiert. Wie bei dem dargestellten Beispiel gezeigt, sind somit die Zellen 402 der Geschwindigkeits-Kostenlandkarte 400, die dem Abschnitt des zweiten Objekts 112 zugeordnet sind, der dem autonom mobilen Roboter 100 am nächsten ist (umschlossen von dem Kästchen mit dem Bezugszeichen 404), als umfassend ein Objekt, das sich in Richtung des autonom mobilen Roboters 100 bewegt, gekennzeichnet, obgleich der stationäre Tisch 104 sich in den durch die entsprechenden Zellen definierten Raum erstreckt. Die Zellen 402, die dem Abschnitt des zweiten Objekts 112 zugeordnet sind, der von dem autonom mobilen Roboter 100 am weitesten entfernt ist (umschlossen von dem Kästchen mit dem Bezugszeichen 406), sind als sich nicht bewegend gekennzeichnet (obgleich sich das zweite Objekt darin befindet), da dieser Abschnitt des zweiten Objekts 112 nicht innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118 ist, derart, dass der stationäre Tisch 104 das einzige, in diesen Zellen detektierte Hindernis ist.
  • Im Gegensatz zu dem dargestellten Beispiel kann, wenn das zweite Objekt 112 sich von dem autonom mobilen Roboter 100 weg bewegt, der Kostenlandkarten-Generator 208 alle Zellen kennzeichnen, in denen sich das zweite Objekt 112 basierend auf dem stationären Zustand des Tisches 104 als nicht bewegend befindet. Bei einem solchen Beispiel hat die Nicht-Bewegung des Tisches 04 Vorrang gegenüber dem zweiten Objekt 112, da das zweite Objekt 112 relativ zu dem autonom mobilen Roboter 100 eine negative Geschwindigkeit aufweist (d. h. sich von Demselben weg bewegt). Das heißt, der Tisch 104 ist das sich am schnellsten bewegende Hindernis in der Richtung in Richtung des autonom mobilen Roboters 100 (obgleich seine Bewegung null ist, null is größer als ein negativer Wert) innerhalb der Säulen der zugeordneten Zellen 402, da das zweite Objekt 112 eine negative Geschwindigkeit aufweist und der Tisch 104 stationär ist. Bei einigen Beispielen kann es Hindernisse geben, die sich innerhalb einer Säule, die einer bestimmten Zelle zugeordnet ist, mit unterschiedlichen Geschwindigkeiten bewegen. Bei einigen solchen Beispielen weist der Kostenlandkarten-Generator 208 die Geschwindigkeit für die bestimmte Zelle basierend auf dem Hindernis zu, das sich am schnellsten in Richtung eines Navigationspfades oder einer projizierten Route des autonom mobilen Roboters 100 bewegt. Der 2D-Ansatz kann zu seltsamem Verhalten führen. Wenn beispielsweise ein unbemanntes Luftfahrzeug (UAV; unmanned aerial vehicle) nahe der Decke über dem Boden schwebt, wird die Säule, die es belegt, in der Kostenlandkarte als belegt angezeigt, und ein bodengestützter Roboter wird in einer Strecke arbeiten und/oder sich bewegen, um diese Säulen zu vermeiden, auch wenn es kein Kollisionsrisiko gibt.
  • Um solche Ergebnisse zu vermeiden, erzeugt der Kostenlandkarten-Generator 208 bei einigen Beispielen eine 3D-Geschwindigkeits-Kostenlandkarte, um die Bewegung (oder deren Fehlen) von Hindernissen in ihren jeweiligen Höhen innerhalb des 3D-Raums zu repräsentieren. Bei solchen Beispielen besteht keine Notwendigkeit zu bestimmen, welche Hindernisse in einer gleichen Spalte sich relativ zu anderen Hindernissen schneller bewegen, wie vorangehend beschrieben wurde, da alle Hindernisse innerhalb des Sichtfeldes des/der optischen Sensors/Sensoren 118 und ihre zugeordnete Bewegung in der 3D-Geschwindigkeits-Kostenlandkarte getrennt identifiziert und repräsentiert werden.
  • Wieder Bezug nehmend auf 2 umfasst der beispielhafte Kostenlandkarten-Entwickler 122 den beispielhaften Bewegungsregionsidentifizierer 210, um Bewegungsregionen innerhalb der Geschwindigkeits-Kostenlandkarte 400 zur weiteren Analyse zu identifizieren. Bei einigen Beispielen kann die zusätzliche Geschwindigkeitsinformation, die in der Geschwindigkeits-Kostenlandkarte 400 relativ zu traditionellen statischen Kostenlandkarten (z. B. der Kostenlandkarte 300 von 3) umfasst ist, die Geschwindigkeit erheblich reduzieren, mit der die Geschwindigkeits-Kostenlandkarte 400 bearbeitet werden kann. Dementsprechend erzeugt der Kostenlandkarten-Generator 208 bei einigen Beispielen eine anfängliche grobe Geschwindigkeits-Kostenlandkarte, die auf einem durch den/die optischen Sensor(en) 118 erfassten RGB-D-Bild basiert, das eine Auflösung aufweist, die von dem ursprünglichen Quellbild durch den Bildauflösungseinsteller 204 reduziert wurde. Diese Reduzierung der Auflösung kann die Effizienz eines Prozessors, der den Kostenlandkarten-Entwickler 122 ausführt, erheblich erhöhen, indem die Verarbeitungszyklen reduziert werden, die zum Ausführen der Kostenlandkartenanalyse notwendig sind.
  • Sobald der Kostenlandkarten-Generator 208 eine grobe Geschwindigkeits-Kostenlandkarte 400 basierend auf einem Reduzierte-Auflösung-Bild erzeugt, parst der beispielhafte Bewegungsregionsidentifizierer 210 die grobe Geschwindigkeits-Kostenlandkarte 400 in nahezu statische Regionen und Bewegungsregionen. Die nahezu statischen Regionen entsprechen Zellen 402 innerhalb der Geschwindigkeits-Kostenlandkarte 400, die keiner oder einer geringen detektierten Bewegung zugeordnet sind. Bei einigen Beispielen werden solche Zellen basierend auf den Geschwindigkeitsvektoren der Zellen identifiziert, die eine Geschwindigkeit anzeigen, die unter einem nahezu statischen Bewegungsschwellenwert ist (z. B. 1 Zoll pro Sekunde). Dieser Schwellenwert dient dazu, mögliche Fehler herauszufiltern, die durch Nachwirkungen beim Kompensieren einer Bewegung des autonom mobilen Roboters 100 und/oder von Jittern bei dem/den optischen Sensor(en) 118 eingeführt wurden. Die durch den Bewegungsregionsidentifizierer 210 identifizierten Bewegungsregionen entsprechen Zellen 402 innerhalb der Geschwindigkeits-Kostenlandkarte 400, die Geschwindigkeitsvektoren aufweisen, die eine Bewegung über dem nahezu statischen Bewegungsschwellenwert anzeigen.
  • Bei einigen Beispielen teilt der Bewegungsregionsidentifizierer 210, um die Bewegungsregionen von nahezu statischen Regionen zu isolieren, die Geschwindigkeits-Kostenlandkarte 400 in mehrere Blöcke 502 auf, wie in 5 gezeigt, wobei jeder Block 502 mehrere individuelle Zellen 402 umfasst. Bei einigen Beispielen kann der Bewegungsregionsidentifizierer 210 bestimmte Blöcke 502 in der Kostenlandkarte 400 automatisch als die nahezu statischen Regionen kennzeichnen, basierend auf den Zellen 402 in dem Block 502 zugeordneter Tiefeninformation. Insbesondere kann/können der/die optische(n) Sensor(en) 118 physische Einschränkungen hinsichtlich der Distanzen (oder Tiefen) aufweisen, in denen Objekte innerhalb eines Bildes im Fokus erfasst werden können. Solche Distanzen fallen typischerweise innerhalb eines Bereichs zwischen einem nächsten Tiefenschwellenwert und einem entfernten Tiefenschwellenwert, der der Feldtiefe oder dem Fokusbereich des/der optischen Sensors/Sensoren 118 entspricht. Bilddaten, die Objekten außerhalb dieses Bereichs zugeordnet sind, sind nicht im Fokus und somit können die Geschwindigkeitsvektoren, die basierend auf der Szenenflussschätzung solcher Bilddaten erzeugt sind, unzuverlässig sein. Um bei der nachfolgenden Bearbeitung Fehler zu vermeiden, weist der Bewegungsregionsidentifizierer 210 dieses Beispiels den nahezu statischen Regionen automatisch Blöcke 502 zu oder kennzeichnet diese, ungeachtet der zugeordneten Geschwindigkeitsinformation der darin umfassten Zellen, wenn solche Zellen eine Tiefeninformation aufweisen, die außerhalb des Bereichs zwischen dem nächsten und entfernten Tiefenschwellenwert fallen. Bei einigen Beispielen können der nächste und entfernte Tiefenschwellenwert definiert sein, um einem Bereich zu entsprechen, der weniger ist als der und innerhalb des vollen Fokusbereichs des/der optischen Sensors/Sensoren 118 abhängig von der bestimmten Anwendung der hierin offenbarten Lehren. Wenn beispielsweise die Umstände so sind, dass die Bewegung von Objekten mehr als zehn Fuß entfernt von dem autonom mobilen Roboter 100 die Navigation des Roboters wahrscheinlich nicht beeinflusst, kann der Bewegungsregionsidentifizierer 210 automatisch irgendeinen Block 502 zuweisen, der Zellen 402 mit einer Tiefeninformation von mehr als zehn Fuß zu den nahezu statischen Regionen ungeachtet von der zugeordneten Geschwindigkeitsinformation umfasst.
  • Bei einigen Beispielen clustert der Bewegungsregionsidentifizierer 210 mehrere benachbarte Blöcke 502 in eine einzelne begrenzte Region, wenn die Geschwindigkeits- und Tiefeninformation für die separaten Blöcke 502 im Wesentlichen ähnlich ist (z. B. weniger als 5 % Schwankung). Solche Blöcke 502 werden zusammenclustert, basierend auf der Annahme, dass Blöcke 502, die detektierten Hindernissen zugeordnet sind, die eine ähnliche Position und Geschwindigkeitsinformation aufweisen, wahrscheinlich dem gleichen Objekt entsprechen, das sich als eine Einheit bewegt. Diese Annahme ist in 5 aufgrund der relativ großen Größe der individuellen Zellen 402, die zu Veranschaulichungszwecken bereitgestellt ist, nicht repräsentiert. Bei einigen Beispielen, wobei jede Zelle 402 einer kleinen Gruppierung von Pixeln entspricht, entspricht jeder Block 502 wahrscheinlich einem relativ isolierten Bereich. Ferner sind relativ große Blöcke 502, wie bei dem dargestellten Beispiel gezeigt, nicht problematisch, da sie lediglich zu größeren Bewegungsregionen führen, um die Wahrscheinlichkeit von versehentlich ausgenommenen Bewegungsbereichen in der nachstehend ausführlicher beschriebenen Höhere-Auflösungs-Analyse zu reduzieren.
  • Bei einigen Beispielen clustert der Bewegungsregionsidentifizierer 210 die Blöcke, indem er auf jeden Block 502 eine Mittelwertverschiebungsanalyse anwendet, um die Maximale-Geschwindigkeits- und -Tiefen-Information in jedem Block 502 zu identifizieren. Die Maximale-Geschwindigkeits- und -Tiefen-Information von benachbarten Blöcken 502 werden verglichen und die Blöcke werden in Cluster kombiniert, wenn die Schwankung unter einem Schwellenwert (z. B. 5 %) ist, um die finalen, darauffolgend zu bearbeitenden Bewegungsregionen zu identifizieren oder zu definieren. Bei dem dargestellten Beispiel umfasst somit eine erste begrenzte Bewegungsregion 504, die dem ersten Objekt 108 von 1 zugeordnet ist, einen einzelnen Block 502. Im Gegensatz umfasst eine zweite begrenzte Bewegungsregion 506, die dem zweiten Objekt 112 von 1 zugeordnet ist, zwei Blöcke 502. Zusätzlich zu der Geschwindigkeits- und Tiefeninformation kann bei einigen Beispielen die Grauskalaintensität auch verwendet werden als eine Merkmalseingabe in die Mittelwertverschiebungs-Cluster-Analyse.
  • Bei dem dargestellten Beispiel projiziert der Bewegungsregionsidentifizierer 210 die begrenzten Bewegungsregionen 504, 506 zurück zu einer Höhere-Auflösungs-Version des durch den/die optischen Sensor(en) 118 erfassten RGB-D-Bildes als verwendet wurde, um die grobe Geschwindigkeits-Kostenlandkarte 400 von 4 zu erzeugen. Bei einigen Beispielen entspricht die Höhere-Auflösungs-Version des RGB-D-Bildes der vollen Auflösung des ursprünglich erfassten RGB-D-Bildes. Bei anderen Beispielen kann die Höhere-Auflösungs-Version relativ zu dem ursprünglichen Quellbild immer noch abwärts abgetastet werden, aber eine höhere Auflösung aufweisen als das grobe Bild aufweisen, das verwendet wurde, um die grobe Kostenlandkarte 400 von 4 zu erzeugen.
  • Sobald die begrenzten Bewegungsregionen 504, 506 zurück zu der Höhere-Auflösungs-Version des RGB-D-Bildes projiziert werden, werden die identifizierten Regionen an den Bewegungsanalysierer 206 bereitgestellt, um ein zweites 3D-Bewegungsfeld basierend auf einem Höhere-Auflösungs-Bild zu erzeugen als was anfänglich verwendet wurde, um die grobe Geschwindigkeits-Kostenlandkarte 400 von 4 zu erzeugen. Der Bewegungsanalysierer 206 kann dieses zweite 3D-Bewegungsfeld unter Verwendung der Szenenflussschätzung auf die gleiche Weise wie vorangehend beschrieben wurde erzeugen, mit der Ausnahme, dass die Granularität (z. B. Auflösung) feiner ist und nur die Abschnitte des Höhere-Auflösung-Bildes, die den begrenzten Bewegungsregionen 504, 506 entsprechen, analysiert werden. Bei einigen Beispielen wird das Höhere-Auflösungs-Bild auf Einzelne der Bewegungsregionen 504, 506 zugeschnitten und der Bewegungsanalysierer 206 implementiert eine Szenenflussschätzung für das jeder Bewegungsregion 504, 506 zugeordnete, zugeschnittene Bild. Danach kann der Kostenlandkarten-Generator 208 eine feine (hohe Auflösung) Geschwindigkeits-Kostenlandkarte basierend auf dem zweiten 3D-Bewegungsfeld erzeugen, das auf die identifizierten Bewegungsregionen 504, 506 beschränkt ist, wie in 6 gezeigt ist. Bei einigen Beispielen kann die feine Geschwindigkeits-Kostenlandkarte stückweise erzeugt werden, wobei eine separate Kostenlandkarte für jede individuelle Bewegungsregion 504, 506 erzeugt wird.
  • 6 stellt eine beispielhafte feine Geschwindigkeits-Kostenlandkarte 600 dar, die Belegungsdaten und Geschwindigkeitsinformation für Zellen 602 innerhalb der Bewegungsregionen 504, 506 umfasst. Wie bei dem dargestellten Beispiel gezeigt ist, sind die individuellen Zellen 602 der feinen Geschwindigkeits-Kostenlandkarte 600 kleiner als die Zellen 402 in der groben Geschwindigkeits-Kostenlandkarte 400 von 4, um die höhere Auflösung der Kostenlandkarte 600 von 6 zu repräsentieren. Das Analysieren von Bildern bei höherer Auflösung umfasst typischerweise erhöhte Bearbeitungszyklen und/oder eine Reduzierung der Geschwindigkeit oder Effizienz des Systems. Bei diesem Beispiel werden die Bearbeitungsgeschwindigkeiten und/oder Prozessoreffizienz allerdings verbessert, ohne die Auflösung zu opfern, indem die Analyse nur auf die Bewegungsregionen 504, 506 beschränkt wird, die durch den Bewegungsregionsidentifizierer 210 identifiziert werden. Bei den anderen Regionen (nahezu statischen Regionen) ist es nicht erforderlich, dass sie einer Hohe-Präzisions-Analyse unterzogen werden, da die grobe Geschwindigkeits-Kostenlandkarte 400 von 4 anzeigt, dass es keine detektierten, sich bewegenden Hindernisse gibt, für die detailliertere Information notwendig ist, um es dem autonom mobilen Roboter 100 zu ermöglichen, in der Umgebung adäquat zu navigieren und eine dynamische Kollisionsvermeidung in im Wesentlichen Echtzeit zu implementieren. Das heißt, die anfängliche grobe Geschwindigkeits-Kostenlandkarte stellt eine globale Analyse der Umgebung 102 bereit, die auf effiziente Weise durchgeführt wird, da sie auf einem Reduzierte-Auflösungs-Bild der Umgebung basiert. Nach dieser globalen Analyse ermöglicht eine zweite feine Geschwindigkeits-Kostenlandkarte 600 die lokale Analyse von relevanten Regionen in der Umgebung 102, die detektierter Bewegung zugeordnet sind, für eine differenziertere Analyse von interessierenden bedeutenden Regionen, um eine im Wesentlichen Echtzeit-Antwort auf eine solche Bewegung zu ermöglichen.
  • Bei einigen Beispielen erzeugt der Kostenlandkarten-Generator 208 die feine Geschwindigkeits-Kostenlandkarte 600 basierend auf einem stückweisen starren Modell des feinen 3D-Bewegungsfeldes, das für die isolierten Bewegungsregionen 504, 506 erzeugt wird. Insbesondere segmentiert der Kostenlandkarten-Generator 208 die Bewegungsregionen 504, 506 in eine Sammlung von stückweise planaren Regionen, von denen angenommen wird, dass sie sich mit starrer Bewegung bewegen. Bei solchen Beispielen wird von jedem Pixel, das einer bestimmten starren planaren Region zugeordnet ist, angenommen, dass es die gleiche Bewegung gemeinschaftlich verwendet. Basierend auf diesen Annahmen kann ein 3D-Bewegungsmodell für das/die Objekt(e), die innerhalb der Bewegungsregionen 504, 506 detektiert werden, erstellt werden. Eine derartige Erarbeitung eines 3D-Modells reduziert (z. B. minimiert) die Energiefunktion der durch den Bewegungsanalysierer 206 ausgeführten Szenenflussschätzung, wodurch die Akkuratheit der feinen Geschwindigkeits-Kostenlandkarte 600 verbessert wird.
  • Bei einigen Beispielen kann der Kostenlandkarten-Generator 208 die grobe Geschwindigkeits-Kostenlandkarte 400 von 4 und die feine Geschwindigkeits-Kostenlandkarte 600 von 6 kombinieren, um eine finale Geschwindigkeits-Kostenlandkarte (wie beispielsweise die Kostenlandkarte 700, die in 7 gezeigt ist) zu bilden, die die Umstände der umgebenden Umgebung 102 vollständig definiert. Unter Verwendung der finalen Geschwindigkeits-Kostenlandkarte 700 ist der autonom mobile Roboter 100 in der Lage, die Lage aller Hindernisse innerhalb der umgebenden Umgebung sowie die Geschwindigkeit derjenigen Hindernisse, die sich bewegen, zu bestimmen. Obgleich die Geschwindigkeits-Kostenlandkarten 400, 600, 700 von 4-7 in einer 2D-Ebene gezeigt und beschrieben sind, kann eine ähnliche Methodik angewandt werden, um 3D-Geschwindigkeits-Kostenlandkarten zu erzeugen.
  • Während eine beispielhafte Art, den Kostenlandkarten-Entwickler 122 von 1 zu implementieren, in 2 dargestellt ist, können ein oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 2 dargestellt sind, auf irgendeine andere Weise kombiniert, geteilt, neu angeordnet, weggelassen, eliminiert und/oder implementiert werden. Ferner können die beispielhafte Kommunikationsschnittstelle 202, der beispielhafte Bildauflösungseinsteller 204, der beispielhafte Bewegungsanalysierer 206, der beispielhafte Kostenlandkarten-Generator 208, der beispielhafte Bewegungsregionsidentifizierer 210 und/oder allgemeiner der beispielhafte Kostenlandkarten-Entwickler 122 durch Hardware, Software, Firmware und/oder irgendeine Kombination von Hardware, Software und/oder Firmware implementiert werden. Somit könnte zum Beispiel irgendeines der beispielhaften Kommunikationsschnittstelle 202, des beispielhaften Bildauflösungseinstellers 204, des beispielhaften Bewegungsanalysierers 206, des beispielhaften Kostenlandkarten-Generators 208, des beispielhaften Bewegungsregionsidentifizierers 210 und/oder des beispielhaften Kostenlandkarten-Entwicklers 122 durch ein oder mehrere analoge oder digitale Schaltung(en), Logikschaltungen, programmierbare(n) Prozessor(en), anwendungsspezifische integrierte Schaltung(en) (ASIC(s); application specific integrated circuit(s)), programmierbare Logikvorrichtung(en) ((PLD(s); programmable logic device(s)) und/oder feldprogrammierbare Logikvorrichtung(en) ((FPLD(s); field programmable logic device(s)) implementiert werden. Beim Lesen irgendeiner der Vorrichtungs- oder Systemansprüche dieses Patents, um eine rein software- und/oder firmware-bezogene Implementierung abzudecken, wird hiermit zumindest eines der beispielhaften Kommunikationsschnittstelle 202, des beispielhaften Bildauflösungseinsteller 204, des beispielhaften Bewegungsanalysierers 206, des beispielhaften Kostenlandkarten-Generators 208 und/oder des beispielhaften Bewegungsregionsidentifizierers 210 ausdrücklich so definiert, dass er/sie eine nichtflüchtige computerlesbare Speichervorrichtung (storage) oder Speicherplatte wie beispielsweise einen Speicher (memory), eine DVD (digital versatile disk), eine CD (compact disk), eine Blue-Ray etc., umfassend die Software und/oder Firmware, umfasst. Ferner kann der beispielhafte Kostenlandkarten-Entwickler 122 von 1 ein oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu, oder anstatt, denjenigen umfassen, die in 2 dargestellt sind, und/oder kann mehr als ein von irgendwelchen oder alle der dargestellten Elemente, Prozesse und Vorrichtungen umfassen.
  • Ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen zum Implementieren des Kostenlandkarten-Entwicklers 122 von 2 repräsentiert, ist in 8 und 9 gezeigt. Bei diesem Beispiel umfassen die maschinenlesbaren Anweisungen ein Programm für die Ausführung durch einen Prozessor, wie beispielsweise den Prozessor 1012, der in der beispielhaften Prozessorplattform 1000 gezeigt ist, die unten in Verbindung mit 10 erörtert wird. Das Programm kann in einer Software verkörpert sein, die auf einem nichtflüchtigen computerlesbarem Speichermedium gespeichert ist, wie beispielsweise einer CD-ROM, einer Diskette, einer Festplatte, einer DVD, einer Blu-Ray oder einem dem Prozessor 1012 zugeordneten Speicher, aber das gesamte Programm und/oder Teile desselben könnten alternativ durch eine andere Vorrichtung als den Prozessor 1012 ausgeführt werden und/oder in Firmware oder dedizierter Hardware verkörpert sein. Obwohl das beispielhafte Programm unter Bezugnahme auf die in 8 und 9 dargestellten Flussdiagramme beschrieben ist, können alternativ viele andere Verfahren zum Implementieren des beispielhaften Kostenlandkarten-Entwicklers 122 verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden, und/oder einige der beschriebenen Blöcke können geändert, eliminiert oder kombiniert werden. Zusätzlich oder alternativ können irgendwelche oder alle der Blöcke durch eine oder mehrere Hardware-Schaltungen (z. B. diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein feldprogrammierbares Gate-Array (FPGA; Field Programmable Gate Array), eine anwendungsspezifische integrierte Schaltung (ASIC), einen Komparator, einen Operationsverstärker (op-amp; operational-amplifier), eine Logikschaltung, Hardware-Verarbeitungslogik etc.) implementiert werden, die strukturiert sind, um den entsprechenden Betrieb ohne Ausführen von Software oder Firmware auszuführen.
  • Wie vorstehend erwähnt wurde, können die beispielhaften Prozesse von 8 und 9 implementiert werden unter Verwendung von codierten Anweisungen (z. B. computer- und/oder maschinenlesbaren Anweisungen), die auf einem nichtflüchtigen Computer und/oder einem maschinenlesbaren Medium wie beispielsweise einem Festplattenlaufwerk, einem Flash-Speicher, einem Nurlesespeicher, einer CD, einer DVD, einem Cache, einem Direktzugriffsspeicher und/oder irgendeiner anderen Speichervorrichtung oder Speicherplatte, auf der Information für irgendeine Dauer (z. B. für längere Zeiträume, permanent, für kurze Zeit, zum temporären Puffern und/oder zum Zwischenspeichern (Cachen) der Information) gespeichert ist, gespeichert sind. Gemäß hiesiger Verwendung ist der Begriff nichtflüchtiges computerlesbares Medium ausdrücklich so definiert, dass es irgendeinen Typ von computerlesbarer Speichervorrichtung und/oder Speicherplatte umfasst und sich ausbreitende Signale ausschließt und Übertragungsmedien ausschließt. „Aufweisend“ und „umfassend“ (und alle Formen und Zeitformen derselben) werden hierin so verwendet, dass sie offene Begriffe sind. Wann immer ein Anspruch irgendetwas aufführt, das irgendeiner Form von „aufweisen“ oder „umfassen“ (z. B. „umfasst“, „weist auf“, „umfassend“, „aufweisend“ etc.) folgt, versteht es sich, dass zusätzliche Elemente, Begriffe etc. vorhanden sein können, ohne außerhalb des Schutzbereichs des entsprechenden Anspruchs zu fallen. Gemäß hiesiger Verwendung ist, wenn der Ausdruck „zumindest“ in einem Oberbegriff eines Anspruchs als Übergangsbegriff verwendet wird, er auf die gleiche Weise offen wie der Begriff „umfassend“ und „aufweisend“ offen ist.
  • Die Anweisungen von 8 beginnen bei Block 802, wobei die beispielhafte Kommunikationsschnittstelle 202 ein Quellbild empfängt. Bei den dargestellten Beispielen ist das Quellbild ein RGB-D-Bild, wobei für jedes Pixel sowohl Farbinformation als auch Tiefeninformation bereitgestellt wird. Bei Block 804 reduziert der beispielhafte Bildauflösungseinsteller 204 die Auflösung des Quellbildes auf ein grobes Bild. Bei Block 806 erzeugt der beispielhafte Bewegungsanalysierer 206 ein 3D-Bewegungsfeld für das grobe Bild. Wie vorstehend beschrieben wurde, hängt ein 3D-Bewegungsfeld von dem Vergleich von zumindest zwei Bildern ab. Bei einigen Beispielen basiert das 3D-Bewegungsfeld für das grobe Bild dementsprechend auf dem groben Bild und einem zuvor erfassten Quellbild, das auf ein grobes Bild in einer vorherigen Iteration des beispielhaften Programms von 8 reduziert wurde.
  • Bei Block 808 erzeugt der beispielhafte Kostenlandkarten-Generator 208 eine grobe Geschwindigkeits-Kostenlandkarte (z. B. die grobe Geschwindigkeits-Kostenlandkarte 400 von 4) basierend auf dem 3D-Bewegungsfeld. Bei Block 810 identifiziert der beispielhafte Bewegungsregionsidentifizierer 210 Bewegungsregionen (z. B. die Bewegungsregionen 504, 506 von 5) in der groben Geschwindigkeits-Kostenlandkarte 400. Zusätzliches Detail betreffend die Implementierung von Block 810 ist unten in Verbindung mit 9 bereitgestellt.
  • Bei Block 812 projiziert der beispielhafte Bewegungsregionsidentifizierer 210 die identifizierten Bewegungsregionen 504, 506 auf eine Höhere-Auflösung-Version des Quellbildes. Bei Block 814 erzeugt der beispielhafte Bewegungsanalysierer 206 ein zweites 3D-Bewegungsfeld für das Höhere-Auflösungs-Bild, das den identifizierten Bewegungsregionen 504, 506 entspricht. Bei Block 816 erzeugt der beispielhafte Kostenlandkarten-Generator 208 eine feine Geschwindigkeits-Kostenlandkarte (z. B. die feine Geschwindigkeits-Kostenlandkarte 600 von 6) basierend auf dem zweiten 3D-Bewegungsfeld. Bei Block 818 kombiniert der beispielhafte Kostenlandkarten-Generator 208 die grobe Geschwindigkeits-Kostenlandkarte 400 und die feine Geschwindigkeits-Kostenlandkarte 600.
  • Bei Block 820 bestimmt die beispielhafte Kommunikationsschnittstelle 202, ob es ein anderes Quellbild gibt. Sollte dies der Fall sein, kehrt die Steuerung zu Block 202 zurück. Ansonsten endet das beispielhafte Programm von 8. Bei einigen Beispielen wird das Programm von 8 mehrere Male pro Sekunde (z. B. 150 Mal pro Sekunde) wiederholt, um eine im Wesentlichen Echtzeit-Überwachung der Bewegung in der Umgebung, die den autonom mobilen Roboter 100 umgibt und in der der Kostenlandkarten-Entwickler 122 implementiert ist, zu ermöglichen.
  • 9 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Anweisungen repräsentiert, die ausgeführt werden, um Block 810 von 8 zu implementieren. Das beispielhafte Programm von 9 beginnt bei Block 902, wobei der beispielhafte Bewegungsregionsidentifizierer 210 die grobe Geschwindigkeits-Kostenlandkarte 400 in Blöcke (z. B. die Blöcke 502 von 5) aufteilt. Bei Block 904 kennzeichnet der beispielhafte Bewegungsregionsidentifizierer 210 die Blöcke 502 mit Zellen mit Tiefeninformation außerhalb eines Bereichs zwischen einem nächsten Tiefenschwellenwert und einem entfernten Tiefenschwellenwert. Bei Block 906 bestimmt der beispielhafte Bewegungsregionsidentifizierer 210 die Maximale-Geschwindigkeits- und -TiefenInformation in jedem Block 502. Bei Block 908 clustert der beispielhafte Bewegungsregionsidentifizierer 210 die Blöcke 502 basierend auf der Geschwindigkeits- und Tiefeninformation. Bei Block 910 definiert der beispielhafte Bewegungsregionsidentifizierer 210 Begrenzungen für separate Bewegungsregionen (z. B. die Bewegungsregionen 504, 506 von 5), die jedem Cluster von Blöcken 502 zugeordnet sind. Danach endet das beispielhafte Programm von 9 und kehrt zum Abschließen des Prozesses von 8 zurück.
  • 10 ist ein Blockdiagramm einer beispielhaften Prozessplattform 1000, die strukturiert ist, um die Anweisungen von 8 und 9 auszuführen, um den Kostenlandkarten-Entwickler 122 von 1 und/oder 2 zu implementieren. Die Prozessorplattform 1000 kann zum Beispiel ein Server, ein Personal-Computer, ein Roboter oder irgendein anderer Typ von Rechenvorrichtung sein.
  • Die Prozessorplattform 1000 des dargestellten Beispiels umfasst einen Prozessor 1012. Der Prozessor 1012 des dargestellten Beispiels ist Hardware. Beispielsweise kann der Prozessor 1012 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, Mikroprozessoren oder Steuerungen von irgendeiner erwünschten Familie oder irgendeinem erwünschten Hersteller implementiert werden. Der Hardwareprozessor kann ein auf Halbleiter basierendes (z. B. Siliziumbasiertes) Bauelement sein. Bei diesem Beispiel implementiert der Prozessor den beispielhaften Bildauflösungseinsteller 204, den beispielhaften Bewegungsanalysierer 206, den beispielhaften Kostenlandkarten-Generator 208 und den beispielhaften Bewegungsregionsidentifizierer 210.
  • Der Prozessor 1012 des dargestellten Beispiels umfasst einen lokalen Speicher 1013 (z. B. einen Cache). Der Prozessor 1012 des dargestellten Beispiels ist in Kommunikation mit einem Hauptspeicher, umfassend einen flüchtigen Speicher 1014 und einen nichtflüchtigen Speicher 1016, über einen Bus 1018. Der flüchtige Speicher 1014 kann durch einen synchronen dynamischen Direktzugriffsspeicher (SDRAM; Synchronous Dynamic Random Access Memory), einen dynamischen Direktzugriffsspeicher (DRAM; Dynamic Random Access Memory), einen RAMBUS-Dynamisch-Direktzugriffsspeicher (RDRAM; RAMBUS Dynamic Random Access Memory) und/oder irgendeinen anderen Typ von Direktzugriffsspeicher-Vorrichtung implementiert werden. Der nichtflüchtige Speicher 1016 kann durch einen Flash-Speicher und/oder irgendeinen anderen Typ von Speichervorrichtung implementiert sein. Zugriff auf den Hauptspeicher 1014, 1016 wird durch eine Speichersteuerung gesteuert.
  • Die Prozessorplattform 1000 des dargestellten Beispiels umfasst auch eine Schnittstellenschaltung 1020. Die Schnittstellenschaltung 1020 kann durch irgendeinen Typ von Schnittstellenstandard, wie beispielsweise Ethernet-Schnittstelle, einen universellen seriellen Bus (USB; universal serial bus) und/oder eine PCI-Express-Schnittstelle, implementiert werden.
  • Bei dem dargestellten Beispiel sind eine oder mehrere Eingabevorrichtungen 1022 mit der Schnittstellenschaltung 1020 verbunden. Die Eingabevorrichtung(en) 1022 erlauben es einem Benutzer, Daten und/oder Befehle in den Prozessor 1012 einzugeben. Die Eingabevorrichtung(en) können durch z. B. einen Audio-Sensor, ein Mikrophon, eine Kamera (Standbild oder Video), eine Tastatur, eine Schaltfläche, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, einen Isopoint und/oder ein Spracherkennungssystem implementiert werden.
  • Eine oder mehrere Ausgabevorrichtungen 1024 sind ebenfalls mit der Schnittstellenschaltung 1020 des dargestellten Beispiels verbunden. Die Ausgabevorrichtungen 1024 können zum Beispiel durch Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED, light emitting diode), eine organische Leuchtdiode (OLED; organic light emitting diode), eine Flüssigkristallanzeige, eine Kathodenstrahlröhren-Anzeige (CRT; cathode ray tube), einen Touchscreen, eine Tastausgabevorrichtung, einen Drucker und/oder Lautsprecher) implementiert werden. Die Schnittstellenschaltung 1020 des dargestellten Beispiels umfasst somit typischerweise eine Graphiktreiberkarte, einen Graphiktreiberchip und/oder einen Graphiktreiberprozessor.
  • Die Schnittstellenschaltung 1020 des dargestellten Beispiels umfasst auch eine Kommunikationsvorrichtung, wie beispielsweise einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem und/oder eine Netzwerkschnittstellenkarte, um den Datenaustausch mit externen Maschinen (z. B. Rechenvorrichtungen irgendeiner Art) über ein Netzwerk 1026 (z. B. eine Ethernet-Verbindung, DSL (Digital Subscriber Line), eine Telefonleitung, ein koaxiales Kabel, ein Mobiltelefonsystem etc.) zu ermöglichen. Bei diesem Beispiel implementiert die Schnittstellenschaltung 1020 die beispielhafte Kommunikationsschnittstelle 202.
  • Die Prozessorplattform 1000 des dargestellten Beispiels umfasst auch eine oder mehrere Massenspeichervorrichtungen 1028 zum Speichern von Software und/oder Daten. Beispiele solcher Massenspeichervorrichtungen 1028 umfassen Diskettenlaufwerke, Festplattenlaufwerke, CD-Laufwerke, Blue-Ray-Laufwerke, RAID-Systeme und DVD-Laufwerke.
  • Die codierten Anweisungen 1032 von 8 und 9 können in der Massenspeichervorrichtungen 1028, in dem flüchtigen Speicher 1014, in dem nichtflüchtigen Speicher 1016 und/oder auf einem entfernbaren greifbaren computerlesbaren Speichermedium, wie beispielsweise einer CD oder DVD, gespeichert sein.
  • Aus dem Vorstehenden wird darauf hingewiesen, dass beispielhafte Verfahren, Vorrichtungen und Fertigungsartikel offenbart wurden, die die Verarbeitung von Geschwindigkeitsinformation für eine dynamische Kollisionsvermeidung von autonom mobilen Robotern in im Wesentlichen Echtzeit ermöglichen. Einige solche Beispiele implementieren eine zweistufige Analyse der erfassten Bilddaten, um die Verarbeitungseffizienz unter nach wie vor gleichzeitiger Bereitstellung relativ hoher Präzision der Geschwindigkeitsinformation, die sich bewegenden Hindernissen zugeordnet ist, erheblich zu steigern. Bei einigen Beispielen umfasst der zweistufige Ansatz eine anfängliche globale Analyse von Bilddaten unter Verwendung eines groben (relative niedrige Auflösung) Bildes, gefolgt von einer lokalisierten Analyse der Bilddaten unter Verwendung eines feinen (höhere Auflösung) Bildes.
  • Beispiel 1 ist ein autonomer Roboter, der einen Sensor und einen Speicher, umfassend maschinenlesbare Anweisungen, umfasst. Der autonome Roboter umfasst ferner zumindest einen Prozessor, um die Anweisungen auszuführen, um eine Geschwindigkeits-Kostenlandkarte zu erzeugen, die einer Umgebung zugeordnet ist, in der sich ein Roboter befindet. Der Prozessor ist ausgebildet, um die Geschwindigkeits-Kostenlandkarte basierend auf einem durch den Sensor erfassten Quellbild zu erzeugen Die Geschwindigkeits-Kostenlandkarte umfasst eine Geschwindigkeitsinformation, die eine Bewegung eines Hindernisses anzeigt, das in der Umgebung detektiert wird.
  • Beispiel 2 umfasst den Gegenstand von Beispiel 1, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird. Der Prozessor erzeugt eine zweite Geschwindigkeits-Kostenlandkarte basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes.
  • Beispiel 3 umfasst den Gegenstand von Beispiel 3, wobei der Prozessor ausgebildet ist, um die zweite Geschwindigkeits-Kostenlandkarte mit der ersten Geschwindigkeits-Kostenlandkarte zu kombinieren.
  • Beispiel 4 umfasst den Gegenstand von Beispiel 3, und umfasst ferner einen Bewegungsanalysierer, um ein erstes dreidimensionales Bewegungsfeld basierend auf der ersten Version des Quellbildes und ein zweites dreidimensionales Bewegungsfeld basierend auf der zweiten Version des Quellbildes zu erzeugen. Die Geschwindigkeitsinformation in der ersten und der zweiten Geschwindigkeits-Kostenlandkarte basiert auf dem jeweiligen ersten und zweiten dreidimensionalen Bewegungsfeld.
  • Beispiel 5 umfasst den Gegenstand von Beispiel 3 und umfasst ferner einen Bewegungsregionsidentifizierer, um Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte zu identifizieren. Die zweite Geschwindigkeits-Kostenlandkarte ist auf Abschnitte der zweiten Version des Quellbildes begrenzt, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  • Beispiel 6 umfasst den Gegenstand von Beispiel 6, wobei der Bewegungsregionsidentifizierer die Bewegungsregionen identifiziert durch: Aufteilen der Geschwindigkeits-Kostenlandkarte in mehrere Blöcke, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und Gruppieren von benachbarten Blöcken in Cluster basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  • Beispiel 7 umfasst den Gegenstand von Beispiel 7, wobei der Bewegungsregionsidentifizierer ausgebildet ist, um die benachbarten Blöcke basierend auf einer Mittelwertverschiebungsanalyse der Geschwindigkeitsinformation und der Tiefeninformation in Cluster zu gruppieren.
  • Beispiel 8 umfasst den Gegenstand von einem der Beispiele 1-7, und umfasst ferner einen Bildauflösungseinsteller, um eine Auflösung des Quellbildes auf ein grobes Bild zu reduzieren, wobei die Geschwindigkeits-Kostenlandkarte basierend auf dem groben Bild erzeugt wird.
  • Beispiel 9 umfasst den Gegenstand von einem der Beispiele 1-7, wobei die Geschwindigkeits-Kostenlandkarte zweidimensional ist.
  • Beispiel 10 umfasst den Gegenstand von einem der Beispiele 1-7, wobei die Geschwindigkeits-Kostenlandkarte dreidimensional ist.
  • Beispiel 11 umfasst den Gegenstand von einem der Beispiele 1-7, wobei der Sensor eine Rot-Grün-Blau-Tiefen- (RGB-D-) Kamera ist.
  • Beispiel 12 ist ein nichtflüchtiges computerlesbares Medium, das Anweisungen umfasst, die bei Ausführung verursachen, dass ein Roboter zumindest: ein Quellbild einer Umgebung erfasst, in der sich der Roboter befindet, und eine Geschwindigkeits-Kostenlandkarte erzeugt, die der Umgebung basierend auf dem Quellbild zugeordnet ist. Die Geschwindigkeits-Kostenlandkarte umfasst Geschwindigkeitsinformation, die die Bewegung eines in der Umgebung detektierten Hindernisses anzeigt.
  • Beispiel 13 umfasst den Gegenstand von Beispiel 12, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird. Die Anweisungen verursachen ferner, dass der Roboter eine zweite Geschwindigkeits-Kostenlandkarte erzeugt basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes.
  • Beispiel 14 umfasst den Gegenstand von Beispiel 13, wobei die zweite Geschwindigkeits-Kostenlandkarte mit der ersten Geschwindigkeits-Kostenlandkarte kombiniert wird.
  • Beispiel 15 umfasst den Gegenstand von Beispiel 13, wobei die Anweisungen ferner verursachen, dass der Roboter ein erstes dreidimensionales Bewegungsfeld basierend auf der ersten Version des Quellbildes und ein zweites dreidimensionales Bewegungsfeld basierend auf der zweiten Version des Quellbildes erzeugt. Die Geschwindigkeitsinformation in der ersten und der zweiten Geschwindigkeits-Kostenlandkarte basiert auf dem jeweiligen ersten und zweiten dreidimensionalen Bewegungsfeld.
  • Beispiel 16 umfasst den Gegenstand von Beispiel 13, wobei die Anweisungen ferner verursachen, dass der Roboter: Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte identifiziert. Die zweite Geschwindigkeits-Kostenlandkarte ist auf Abschnitte der zweiten Version des Quellbildes begrenzt ist, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  • Beispiel 17 umfasst den Gegenstand von Beispiel 16, wobei die Anweisungen ferner verursachen, dass der Roboter die Geschwindigkeits-Kostenlandkarte in mehrere Blöcke aufteilt, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst, und benachbarte Blöcke basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation in Cluster gruppiert.
  • Beispiel 18 umfasst den Gegenstand von Beispiel 17, wobei die Anweisungen ferner verursachen, dass der Roboter die benachbarten Blöcke basierend auf einer Mittelwertverschiebungsanalyse der Geschwindigkeitsinformation und der Tiefeninformation in Cluster gruppiert.
  • Beispiel 19 umfasst den Gegenstand von einem der Beispiele 12-18, wobei die Anweisungen ferner verursachen, dass der Roboter eine Auflösung des Quellbildes auf ein grobes Bild reduziert, wobei die Geschwindigkeits-Kostenlandkarte basierend auf dem groben Bild erzeugt wird.
  • Beispiel 20 umfasst den Gegenstand von einem der Beispiele 12-18, wobei die Geschwindigkeits-Kostenlandkarte zweidimensional ist.
  • Beispiel 21 umfasst den Gegenstand von einem der Beispiele 12-18, wobei die Geschwindigkeits-Kostenlandkarte dreidimensional ist.
  • Beispiel 22 ist ein Verfahren, das ein Erfassen eines Quellbildes mit einem Sensor umfasst. Das Quellbild umfasst Bilddaten, die eine Umgebung und ein Hindernis in der Umgebung anzeigen. Das Verfahren umfasst ferner ein Erzeugen, durch Ausführen einer Anweisung mit zumindest einem Prozessor, einer Geschwindigkeits-Kostenlandkarte, die der Umgebung basierend auf dem Quellbild zugeordnet ist. Die Geschwindigkeits-Kostenlandkarte umfasst Geschwindigkeitsinformation, die die Bewegung des in der Umgebung detektierten Hindernisses anzeigt.
  • Beispiel 23 umfasst den Gegenstand von Beispiel 22, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird. Das Verfahren umfasst ferner ein Erzeugen einer zweiten Geschwindigkeits-Kostenlandkarte basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes.
  • Beispiel 24 umfasst den Gegenstand von Beispiel 23, und umfasst ferner ein Kombinieren der zweiten Geschwindigkeits-Kostenlandkarte mit der ersten Geschwindigkeits-Kostenlandkarte.
  • Beispiel 25 umfasst den Gegenstand von Beispiel 23, ferner umfassend: ein Erzeugen eines ersten dreidimensionalen Bewegungsfeldes basierend auf der ersten Version des Quellbildes, und ein Erzeugen eines zweiten dreidimensionalen Bewegungsfeldes basierend auf der zweiten Version des Quellbildes, wobei die Geschwindigkeitsinformation in der ersten und der zweiten Geschwindigkeits-Kostenlandkarte auf dem jeweiligen ersten und zweiten dreidimensionalen Bewegungsfeld basiert.
  • Beispiel 26 umfasst den Gegenstand von Beispiel 23, und umfasst ferner ein Identifizieren von Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte. Die zweite Geschwindigkeits-Kostenlandkarte ist auf Abschnitte der zweiten Version des Quellbildes begrenzt, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  • Beispiel 27 umfasst den Gegenstand von Beispiel 26, ferner umfassend: ein Aufteilen der Geschwindigkeits-Kostenlandkarte in mehrere Blöcke, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und ein Gruppieren von benachbarten Blöcken in Cluster basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  • Beispiel 28 umfasst den Gegenstand von Beispiel 27, und umfasst ferner ein Gruppieren der benachbarten Blöcke in Cluster basierend auf einer Mittelwertverschiebungsanalyse der Geschwindigkeitsinformation und der Tiefeninformation.
  • Beispiel 29 umfasst den Gegenstand von einem der Beispiele 22-28, und umfasst ferner ein Reduzieren einer Auflösung des Quellbildes auf ein grobes Bild. Die Geschwindigkeits-Kostenlandkarte wird basierend auf dem groben Bild erzeugt.
  • Beispiel 30 umfasst den Gegenstand von einem der Beispiele 22-28, wobei die Geschwindigkeits-Kostenlandkarte zweidimensional ist.
  • Beispiel 31 umfasst den Gegenstand von einem der Beispiele 22-28, wobei die Geschwindigkeits-Kostenlandkarte dreidimensional ist.
  • Beispiel 32 umfasst den Gegenstand von Beispiel 22, wobei der Sensor eine Rot-Grün-Blau-Tiefen- (RGB-D-) Kamera ist.
  • Beispiel 33 ist eine Vorrichtung, die ein Mittel zum Erfassen eines Quellbildes einer Umgebung umfasst. Die Vorrichtung umfasst ferner ein Mittel zum Erzeugen einer Geschwindigkeits-Kostenlandkarte, die der Umgebung basierend dem Quellbild zugeordnet ist. Die Geschwindigkeits-Kostenlandkarte umfasst Geschwindigkeitsinformation, die eine Bewegung eines in der Umgebung detektierten Hindernisses anzeigt.
  • Beispiel 34 umfasst den Gegenstand von Beispiel 33, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird. Das Mittel zum Erzeugen der Geschwindigkeits-Kostenlandkarte ist ausgebildet, um eine zweite Geschwindigkeits-Kostenlandkarte zu erzeugen basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes.
  • Beispiel 35 umfasst den Gegenstand von Beispiel 3345, und umfasst ferner ein Mittel zum Kombinieren der zweiten Geschwindigkeits-Kostenlandkarte mit der ersten Geschwindigkeits-Kostenlandkarte.
  • Beispiel 36 umfasst den Gegenstand von Beispiel 34, und umfasst ferner ein Mittel zum Erzeugen eines ersten dreidimensionales Bewegungsfeldes basierend auf der ersten Version des Quellbildes und zum Erzeugen eines zweiten dreidimensionalen Bewegungsfeldes basierend auf der zweiten Version des Quellbildes. Die Geschwindigkeitsinformation in der ersten und der zweiten Geschwindigkeits-Kostenlandkarte basiert auf dem jeweiligen ersten und zweiten dreidimensionalen Bewegungsfeld.
  • Beispiel 37 umfasst den Gegenstand von Beispiel 34, und umfasst ferner ein Mittel zum Identifizieren von Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte. Die zweite Geschwindigkeits-Kostenlandkarte ist auf Abschnitte der zweiten Version des Quellbildes begrenzt ist, den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  • Beispiel 38 umfasst den Gegenstand von Beispiel 37, wobei das Mittel zum Identifizieren von Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte umfasst: ein Mittel zum Aufteilen der Geschwindigkeits-Kostenlandkarte in mehrere Blöcke, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und ein Mittel zum Gruppieren von benachbarten Blöcken in Cluster basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  • Beispiel 39 umfasst den Gegenstand von Beispiel 38, und umfasst ferner ein Mittel zum Gruppieren der benachbarten Blöcke in Cluster basierend auf einer Mittelwertverschiebungsanalyse der Geschwindigkeitsinformation und der Tiefeninformation.
  • Beispiel 40 umfasst den Gegenstand von einem der Beispiele 33-38, und umfasst ferner ein Mittel zum Reduzieren einer Auflösung des Quellbildes auf ein grobes Bild. Die Geschwindigkeits-Kostenlandkarte wird basierend auf dem groben Bild erzeugt.
  • Beispiel 41 umfasst den Gegenstand von einem der Beispiele 33-38, wobei die Geschwindigkeits-Kostenlandkarte zweidimensional ist.
  • Beispiel 42 umfasst den Gegenstand von einem der Beispiele 33-38, wobei die Geschwindigkeits-Kostenlandkarte dreidimensional ist.
  • Beispiel 43 umfasst den Gegenstand von einem der Beispiele 33-38, wobei das Mittel zum Erfassen eine Rot-Grün-Blau-Tiefen- (RGB-D-) Kamera ist.
  • Beispiel 44 ist eine Vorrichtung, die eine Hardware-Verarbeitungslogik umfasst, um ein Quellbild einer Umgebung zu analysieren, in der sich ein Roboter befindet. Das Quellbild wird durch einen Sensor auf dem Roboter erfasst. Die Hardware-Verarbeitungslogik ist auch ausgebildet, um eine Geschwindigkeits-Kostenlandkarte zu erzeugen, die der Umgebung basierend auf dem Quellbild zugeordnet ist. Die Geschwindigkeits-Kostenlandkarte umfasst Geschwindigkeitsinformation, die die Bewegung eines in der Umgebung detektierten Hindernisses anzeigt.
  • Beispiel 45 umfasst den Gegenstand von Anspruch 44, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird. Die Hardware-Verarbeitungslogik ist ausgebildet, um eine zweite Geschwindigkeits-Kostenlandkarte basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes zu erzeugen.
  • Beispiel 46 umfasst den Gegenstand von Anspruch 45, wobei die zweite Geschwindigkeits-Kostenlandkarte mit der ersten Geschwindigkeits-Kostenlandkarte kombiniert wird.
  • Beispiel 47 umfasst den Gegenstand von Anspruch 45, wobei die Hardware-Verarbeitungslogik ausgebildet ist, um ein erstes dreidimensionales Bewegungsfeld basierend auf der ersten Version des Quellbildes und ein zweites dreidimensionales Bewegungsfeld basierend auf der zweiten Version des Quellbildes zu erzeugen. Die Geschwindigkeitsinformation in der ersten und der zweiten Geschwindigkeits-Kostenlandkarte basiert auf dem jeweiligen ersten und zweiten dreidimensionalen Bewegungsfeld.
  • Beispiel 48 umfasst den Gegenstand von Anspruch 45, wobei die Hardware-Verarbeitungslogik ausgebildet ist, Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte zu identifizieren. Die zweite Geschwindigkeits-Kostenlandkarte ist auf Abschnitte der zweiten Version des Quellbildes begrenzt, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  • Beispiel 49 umfasst den Gegenstand von Anspruch 48, wobei die Hardware-Verarbeitungslogik ausgebildet ist, um die Geschwindigkeits-Kostenlandkarte in mehrere Blöcke aufzuteilen. Jeder Block umfasst mehrere Zellen der Geschwindigkeits-Kostenlandkarte. Die Hardware-Verarbeitungslogik ist ausgebildet, um benachbarte Blöcke in Cluster zu gruppieren basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  • Beispiel 50 umfasst den Gegenstand von Anspruch 49, wobei die Hardware-Verarbeitungslogik ausgebildet ist, um die benachbarten Blöcke basierend auf einer Mittelwertverschiebungsanalyse der Geschwindigkeitsinformation und der Tiefeninformation in Cluster zu gruppieren.
  • Beispiel 51 umfasst den Gegenstand von einem der Ansprüche 44-49, wobei die Hardware-Verarbeitungslogik ausgebildet ist, um eine Auflösung des Quellbildes auf ein grobes Bild zu reduzieren. Die Geschwindigkeits-Kostenlandkarte wird basierend auf dem groben Bild erzeugt.
  • Beispiel 52 umfasst den Gegenstand von einem der Ansprüche 44-49, wobei die Geschwindigkeits-Kostenlandkarte zweidimensional ist.
  • Beispiel 53 umfasst den Gegenstand von einem der Ansprüche 44-49, wobei die Geschwindigkeits-Kostenlandkarte dreidimensional ist.
  • Obgleich bestimmte beispielhafte Verfahren, Vorrichtungen und Fertigungsartikel hier offenbart wurden, ist der Schutzbereich der Abdeckung dieses Patents nicht darauf beschränkt. Vielmehr deckt dieses Patent alle Verfahren, Vorrichtungen und Fertigungsartikel ab, die einigermaßen in den Schutzbereich der Ansprüche dieses Patents fallen.

Claims (28)

  1. Ein autonomer Roboter, umfassend: einen Sensor, einen Speicher, umfassend maschinenlesbare Anweisungen; und zumindest einen Prozessor, um die Anweisungen auszuführen, um eine Geschwindigkeits-Kostenlandkarte zu erzeugen, die einer Umgebung zugeordnet ist, in der sich der Roboter befindet, wobei der Prozessor ausgebildet ist, um die Geschwindigkeits-Kostenlandkarte basierend auf einem durch den Sensor erfassten Quellbild zu erzeugen, wobei die Geschwindigkeits-Kostenlandkarte Geschwindigkeitsinformation umfasst, die eine Bewegung eines in der Umgebung detektierten Hindernisses anzeigt.
  2. Der autonome Roboter gemäß Anspruch 1, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird, wobei der Prozessor ausgebildet ist, um eine zweite Geschwindigkeits-Kostenlandkarte basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes zu erzeugen.
  3. Der autonome Roboter gemäß Anspruch 2, wobei der Prozessor ausgebildet ist, um die zweite Geschwindigkeits-Kostenlandkarte mit der ersten Geschwindigkeits-Kostenlandkarte zu kombinieren.
  4. Der autonome Roboter gemäß Anspruch 2, ferner umfassend einen Bewegungsanalysierer, um ein erstes dreidimensionales Bewegungsfeld basierend auf der ersten Version des Quellbildes und ein zweites dreidimensionales Bewegungsfeld basierend auf der zweiten Version des Quellbildes zu erzeugen, wobei die Geschwindigkeitsinformation in der ersten und der zweiten Geschwindigkeits-Kostenlandkarte auf dem jeweiligen ersten und zweiten dreidimensionalen Bewegungsfeld basiert.
  5. Der autonome Roboter gemäß Anspruch 2, ferner umfassend einen Bewegungsregionsidentifizierer, um Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte zu identifizieren, wobei die zweite Geschwindigkeits-Kostenlandkarte auf Abschnitte der zweiten Version des Quellbildes begrenzt ist, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  6. Der autonome Roboter gemäß Anspruch 5, wobei der Bewegungsregionsidentifizierer die Bewegungsregionen identifiziert durch: Aufteilen der Geschwindigkeits-Kostenlandkarte in mehrere Blöcke, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und Gruppieren von benachbarten Blöcken in Cluster basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  7. Der autonome Roboter gemäß Anspruch 6, wobei der Bewegungsregionsidentifizierer ausgebildet ist, um die benachbarten Blöcke basierend auf einer Mittelwertverschiebungsanalyse der Geschwindigkeitsinformation und der Tiefeninformation in Cluster zu gruppieren.
  8. Der autonome Roboter gemäß einem der Ansprüche 1-7, ferner umfassend einen Bildauflösungseinsteller, um eine Auflösung des Quellbildes auf ein grobes Bild zu reduzieren, wobei die Geschwindigkeits-Kostenlandkarte basierend auf dem groben Bild erzeugt wird.
  9. Der autonome Roboter gemäß einem der Ansprüche 1-7, wobei die Geschwindigkeits-Kostenlandkarte zweidimensional ist.
  10. Der autonome Roboter gemäß einem der Ansprüche 1-7, wobei die Geschwindigkeits-Kostenlandkarte dreidimensional ist.
  11. Der autonome Roboter gemäß einem der Ansprüche 1-7, wobei der Sensor eine Rot-Grün-Blau-Tiefen- (RGB-D-) Kamera ist.
  12. Ein nichtflüchtiges computerlesbares Medium, das Anweisungen umfasst, die bei Ausführung verursachen, dass ein Roboter zumindest: ein Quellbild einer Umgebung erfasst, in der sich der Roboter befindet, und eine Geschwindigkeits-Kostenlandkarte erzeugt, die der Umgebung basierend auf dem Quellbild zugeordnet ist, wobei die Geschwindigkeits-Kostenlandkarte Geschwindigkeitsinformation umfasst, die eine Bewegung eines in der Umgebung detektierten Hindernisses anzeigt.
  13. Das nichtflüchtige computerlesbare Medium gemäß Anspruch 12, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird, wobei die Anweisungen ferner verursachen, dass der Roboter eine zweite Geschwindigkeits-Kostenlandkarte basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes erzeugt.
  14. Das nichtflüchtige computerlesbare Medium gemäß Anspruch 13, wobei die Anweisungen ferner verursachen, dass der Roboter Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte identifiziert, wobei die zweite Geschwindigkeits-Kostenlandkarte auf Abschnitte der zweiten Version des Quellbildes begrenzt ist, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  15. Das nichtflüchtige computerlesbare Medium gemäß Anspruch 14, wobei die Anweisungen ferner verursachen, dass der Roboter: die Geschwindigkeits-Kostenlandkarte in mehrere Blöcke aufteilt, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und benachbarte Blöcke in Cluster gruppiert basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  16. Ein Verfahren, umfassend: Erfassen eines Quellbildes mit einem Sensor, wobei das Quellbild Bilddaten umfasst, die eine Umgebung und ein Hindernis in der Umgebung anzeigen; und Erzeugen, durch Ausführen einer Anweisung mit zumindest einem Prozessor, einer Geschwindigkeits-Kostenlandkarte, die der Umgebung basierend auf dem Quellbild zugeordnet ist, wobei die Geschwindigkeits-Kostenlandkarte Geschwindigkeitsinformation umfasst, die eine Bewegung des in der Umgebung detektierten Hindernisses anzeigt.
  17. Das Verfahren gemäß Anspruch 16, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird, und ferner umfassend ein Erzeugen einer zweiten Geschwindigkeits-Kostenlandkarte basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes.
  18. Das Verfahren gemäß Anspruch 17, ferner umfassend ein Identifizieren von Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte, wobei die zweite Geschwindigkeits-Kostenlandkarte auf Abschnitte der zweiten Version des Quellbildes begrenzt ist, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  19. Das Verfahren gemäß Anspruch 18, ferner umfassend: Aufteilen der Geschwindigkeits-Kostenlandkarte in mehrere Blöcke, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und Gruppieren von benachbarten Blöcken in Cluster basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  20. Eine Vorrichtung, umfassend: ein Mittel zum Erfassen eines Quellbildes einer Umgebung; und ein Mittel zum Erzeugen einer Geschwindigkeits-Kostenlandkarte, die der Umgebung basierend dem Quellbild zugeordnet ist, wobei die Geschwindigkeits-Kostenlandkarte Geschwindigkeitsinformation umfasst, die eine Bewegung eines in der Umgebung detektierten Hindernisses anzeigt.
  21. Die Vorrichtung gemäß Anspruch 20, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird, wobei das Mittel zum Erzeugen der Geschwindigkeits-Kostenlandkarte ausgebildet ist, um eine zweite Geschwindigkeits-Kostenlandkarte zu erzeugen basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes.
  22. Die Vorrichtung gemäß Anspruch 21, ferner umfassend ein Mittel zum Identifizieren von Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte, wobei die zweite Geschwindigkeits-Kostenlandkarte auf Abschnitte der zweiten Version des Quellbildes begrenzt ist, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  23. Die Vorrichtung gemäß Anspruch 22, wobei das Mittel zum Identifizieren von Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte umfasst: ein Mittel zum Aufteilen der Geschwindigkeits-Kostenlandkarte in mehrere Blöcke, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und ein Mittel zum Gruppieren von benachbarten Blöcken in Cluster basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
  24. Die Vorrichtung gemäß einem der Ansprüche 20-23, ferner umfassend ein Mittel zum Reduzieren einer Auflösung des Quellbildes auf ein grobes Bild, wobei die Geschwindigkeits-Kostenlandkarte basierend auf dem groben Bild erzeugt wird.
  25. Eine Vorrichtung, umfassend eine Hardware-Verarbeitungslogik, die ausgebildet ist, um: ein Quellbild einer Umgebung zu analysieren, in der sich ein Roboter befindet, wobei das Quellbild durch einen Sensor auf dem Roboter erfasst wird, und eine Geschwindigkeits-Kostenlandkarte zu erzeugen, die der Umgebung basierend auf dem Quellbild zugeordnet ist, wobei die Geschwindigkeits-Kostenlandkarte Geschwindigkeitsinformation umfasst, die eine Bewegung eines in der Umgebung detektierten Hindernisses anzeigt.
  26. Der Vorrichtung gemäß Anspruch 25, wobei die Geschwindigkeits-Kostenlandkarte eine erste Geschwindigkeits-Kostenlandkarte ist, die basierend auf einer ersten Version des Quellbildes erzeugt wird, wobei die Hardware-Verarbeitungslogik ausgebildet ist, um eine zweite Geschwindigkeits-Kostenlandkarte basierend auf einer zweiten Version des Quellbildes mit einer höheren Auflösung als die erste Version des Quellbildes zu erzeugen.
  27. Die Vorrichtung gemäß Anspruch 26, wobei die Hardware-Verarbeitungslogik ausgebildet ist, um Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte zu identifizieren, wobei die zweite Geschwindigkeits-Kostenlandkarte auf Abschnitte der zweiten Version des Quellbildes begrenzt ist, die den identifizierten Bewegungsregionen in der ersten Geschwindigkeits-Kostenlandkarte entsprechen.
  28. Die Vorrichtung gemäß Anspruch 27, wobei die Hardware-Verarbeitungslogik ausgebildet ist, um: die Geschwindigkeits-Kostenlandkarte in mehrere Blöcke aufzuteilen, wobei jeder Block mehrere Zellen der Geschwindigkeits-Kostenlandkarte umfasst; und benachbarte Blöcke in Cluster zu gruppieren basierend auf der den Zellen in den benachbarten Blöcken zugeordneten Geschwindigkeitsinformation und Tiefeninformation.
DE112017008101.7T 2017-09-27 2017-09-27 Autonome roboter und verfahren zum betreiben derselben Pending DE112017008101T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/103623 WO2019061062A1 (en) 2017-09-27 2017-09-27 AUTONOMOUS ROBOTS AND METHODS OF OPERATION

Publications (1)

Publication Number Publication Date
DE112017008101T5 true DE112017008101T5 (de) 2020-07-02

Family

ID=65900277

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017008101.7T Pending DE112017008101T5 (de) 2017-09-27 2017-09-27 Autonome roboter und verfahren zum betreiben derselben

Country Status (3)

Country Link
US (1) US11334086B2 (de)
DE (1) DE112017008101T5 (de)
WO (1) WO2019061062A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220073077A1 (en) * 2019-05-29 2022-03-10 Mobileye Vision Technologies Ltd. Low Resolution Traffic Light Candidate Identification Followed by High Resolution Candidate Analysis

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126199B2 (en) * 2018-04-16 2021-09-21 Baidu Usa Llc Learning based speed planner for autonomous driving vehicles
CN113168505B (zh) * 2018-07-17 2024-04-09 辉达公司 用于自主驾驶机器的基于回归的线检测
GB2596464B (en) * 2019-02-25 2024-05-01 Mobileye Vision Technologies Ltd Systems and methods for vehicle navigation
KR20210095359A (ko) * 2020-01-23 2021-08-02 엘지전자 주식회사 로봇, 로봇의 제어 방법 및 로봇을 제어하기 위한 서버
CN111469127B (zh) * 2020-04-14 2022-06-07 京东科技信息技术有限公司 代价地图更新方法、装置、机器人及存储介质
EP4217809A1 (de) * 2020-09-25 2023-08-02 Abb Schweiz Ag System und verfahren zur steuerung eines mobilen industrieroboters unter verwendung eines probabilistischen belegungsrasters
LU500260B1 (de) * 2021-06-09 2022-12-13 Phoenix Contact Gmbh & Co Selbstfahrende Vorrichtung zum Einsatz in einer industriellen Umgebung

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100374791B1 (ko) * 2000-11-22 2003-03-04 삼성전자주식회사 영상의 영역 구분 방법 및 장치
US7584020B2 (en) * 2006-07-05 2009-09-01 Battelle Energy Alliance, Llc Occupancy change detection system and method
CN102763123B (zh) * 2009-12-02 2015-03-25 高通股份有限公司 通过使查询图像和模型图像中的检测到的关键点成群集而进行特征匹配
CN103546516B (zh) * 2012-07-16 2016-12-21 华为技术有限公司 生成聚合层网络图和聚合层开销图的方法及装置
KR101409323B1 (ko) * 2013-03-19 2014-07-02 국방과학연구소 무인자율차량 및 이의 동적환경 주행경로생성방법
KR101536415B1 (ko) * 2013-09-27 2015-07-15 충북대학교 산학협력단 이동로봇 원격제어 시스템 및 방법
CN104268862B (zh) 2014-09-18 2017-04-26 中国人民解放军国防科学技术大学 一种自主车三维地形可通行性分析方法
CN105487535A (zh) 2014-10-09 2016-04-13 东北大学 一种基于ros的移动机器人室内环境探索系统与控制方法
US10705528B2 (en) * 2015-12-15 2020-07-07 Qualcomm Incorporated Autonomous visual navigation
US10665115B2 (en) * 2016-01-05 2020-05-26 California Institute Of Technology Controlling unmanned aerial vehicles to avoid obstacle collision
CN106680832B (zh) * 2016-12-30 2019-07-26 深圳优地科技有限公司 一种移动机器人的障碍物检测方法、装置和移动机器人
CN106959696B (zh) * 2017-05-10 2020-03-03 北京京东尚科信息技术有限公司 运动目标的控制方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220073077A1 (en) * 2019-05-29 2022-03-10 Mobileye Vision Technologies Ltd. Low Resolution Traffic Light Candidate Identification Followed by High Resolution Candidate Analysis

Also Published As

Publication number Publication date
US20200264626A1 (en) 2020-08-20
WO2019061062A1 (en) 2019-04-04
US11334086B2 (en) 2022-05-17

Similar Documents

Publication Publication Date Title
DE112017008101T5 (de) Autonome roboter und verfahren zum betreiben derselben
CN111325843B (zh) 一种基于语义逆深度滤波的实时语义地图构建方法
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE102018121019A1 (de) Erweitern von realen sensoraufzeichnungen mit simulierten sensordaten
DE102014212304B4 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Speichermedium
DE102017116192A1 (de) Verwenden von virtuellen Daten zum Testen und Trainieren von Parkplatzerfassungssystemen
DE102019202252A1 (de) Robuste simultane lokalisierung und kartierung durch entfernung dynamischer verkehrsteilnehmer
DE102020104358A1 (de) Verfahren und einrichtungen zum dynamischen lenken von robotern basierend auf bordeigener exploratorischer kartierung
DE102015015194A1 (de) Bildverarbeitungsvorrichtung und -verfahren und Programm
DE102019201522A1 (de) Kompensation einer Verzerrung in einem elektromagnetischen Verfolgungssystem
DE112006003361T5 (de) Verfahren und Vorrichtung für das Aufzeichnen/Anzeigen von dreidimensionalen Formdaten und Verfahren und Vorrichtung für das Messen einer dreidimensionalen Form
DE102017116952A1 (de) System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten
DE102014222617B4 (de) Fahrzeugerfassungsverfahren und Fahrzeugerfassungssytem
DE102016122190A1 (de) Verfahren und Systeme zur Stixel-Schätzung
DE102013012224A1 (de) Vorrichtung zum Entnehmen von lose gespeicherten Gegenständen durch einen Roboter
DE102018124117A1 (de) Verfahren zur Verfolgung eines Objekts
DE102013216902A1 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Programm
DE102012101014A1 (de) Fahrzeugdetektionsvorrichtung
DE112018003986T5 (de) Steuervorrichtung, steuerverfahren, programm und mobileinheit
DE102016225595A1 (de) Verfahren und Anordnung zur Kalibrierung mindestens eines Sensors eines Schienenfahrzeugs
DE112016006213T5 (de) System und Verfahren zum Fusionieren von Ausgängen von Sensoren, die unterschiedliche Auflösungen aufweisen
DE102018205879A1 (de) Verfahren, Vorrichtung und computerlesbares Speichermedium mit Instruktionen zur Verarbeitung von Sensordaten
DE102016208056A1 (de) Verfahren und Vorrichtung zur Verarbeitung von Bilddaten und Fahrerassistenzsystem für ein Fahrzeug
DE112020000590T5 (de) Karte und verfahren zum erstellen einer karte
DE102021002798A1 (de) Verfahren zur kamerabasierten Umgebungserfassung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: 2SPL PATENTANWAELTE PARTG MBB SCHULER SCHACHT , DE

R012 Request for examination validly filed