DE112017007967T5 - Posenschätzung für mobile autonome vorrichtung in teilzeiträumen einer vollständigen sensorabtastung - Google Patents

Posenschätzung für mobile autonome vorrichtung in teilzeiträumen einer vollständigen sensorabtastung Download PDF

Info

Publication number
DE112017007967T5
DE112017007967T5 DE112017007967.5T DE112017007967T DE112017007967T5 DE 112017007967 T5 DE112017007967 T5 DE 112017007967T5 DE 112017007967 T DE112017007967 T DE 112017007967T DE 112017007967 T5 DE112017007967 T5 DE 112017007967T5
Authority
DE
Germany
Prior art keywords
scan
pose
detection
data
measurement data
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
DE112017007967.5T
Other languages
English (en)
Inventor
Xuesong Shi
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 DE112017007967T5 publication Critical patent/DE112017007967T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/42Simultaneous measurement of distance and other co-ordinates
    • GPHYSICS
    • 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/89Lidar systems specially adapted for specific applications for mapping or imaging
    • 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
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4808Evaluating distance, position or velocity data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Es wird eine Vorrichtung zur Bestimmung einer aktuellen Pose einer mobilen autonomen Vorrichtung vorgestellt. In Ausführungsformen kann eine Vorrichtung eine Schnittstellenschaltungsanordnung zum Detektions- und Entfernungsmessungsdaten, die von einem LIDAR-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt, aufweisen. Die Vorrichtung kann ferner eine Posenschätzungsschaltungsanordnung aufweisen, die mit der Schnittstellenschaltungsanordnung gekoppelt ist, um eine aktuelle Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt, zu bestimmen und bereitzustellen. In Ausführungsformen kann die Vorrichtung auf der mobilen autonomen Vorrichtung angeordnet sein.

Description

  • Technisches Gebiet
  • Verschiedene Ausführungsformen können sich allgemein auf das Gebiet einer mobilen autonomen Vorrichtung, und insbesondere auf Posenschätzung für solch eine Vorrichtung in Teilzeiträumen einer vollständigen Sensorabtastung, beziehen.
  • Allgemeiner Stand der Technik
  • Die Beschreibung des allgemeinen Stands der Technik, die hierin bereitgestellt wird, dient dem Zweck des allgemeinen Präsentierens des Kontexts der Offenbarung. Soweit hierin nichts Gegenteiliges angegeben wird, stellen die in diesem Abschnitt beschriebenen Materialien keinen Stand der Technik bezüglich der Ansprüche in dieser Anmeldung dar und werden nicht als Stand der Technik durch die Aufnahme in diesem Abschnitt zugelassen.
  • Mobile autonome Vorrichtungen, wie etwa Roboter, selbstfahrende Autos oder unbemannte Fluggeräte (UAVs, Unmanned Aerial Vehicles) müssen ihre aktuellen Posen (Standort und Orientierung) in Echtzeit bestimmen. Dieses Verfahren, das für gewöhnlich als Lokalisierung bezeichnet wird, wird allgemein durch einen Posenschätzungsalgorithmus durchgeführt, der bei Entfernungsmessungsdaten arbeitet, die durch Sensoren erhalten werden.
  • Bei den meisten Ausgestaltungen werden Posen anhand von Sensordaten geschätzt, die über einen LIDAR(Light Detection and Ranging, Lichterfassung und Entfernungsmesser)-Sensor, eine Kamera und/oder andere Arten von Sensoren erhalten werden. Für LIDAR-basierte Ausgestaltungen ist allgemein ein Laserscanner in einer LIDAR-Vorrichtung vorhanden, der sich mit einer bestimmten Frequenz (typischerweise 5~40Hz) dreht, um eine vollständige, oder nahezu vollständige, Ansicht der Umgebung zu erhalten. Allgemein aktualisiert eine Vorrichtung die Posenschätzung jedes Mal, wenn sie einen neuen Satz an Scandaten empfängt. Folglich wird die Posenschätzungsfrequenz durch die Rotationsrate des Laserscanners beschränkt. Wenn eine höhere Frequenz der Posenschätzung benötigt wird, muss eine höherwertige LIDAR-Vorrichtung ausgewählt werden, was allgemein die Kosten erhöht.
  • Figurenliste
  • Die Ausführungsformen werden durch die folgende ausführliche Beschreibung in Verbindung mit den beigefügten Zeichnungen leicht verstanden werden. Um diese Beschreibung zu erleichtern, bezeichnen gleiche Bezugszeichen gleiche strukturelle Elemente. Die Ausführungsformen sind beispielhaft und nicht einschränkend in den Figuren der beigefügten Zeichnungen veranschaulicht.
    • 1 veranschaulicht ein Beispiel von Posenschätzungseingaben und Posenschätzungszyklen, die Segmente von LIDAR-Sensordaten verwenden, die Teile eines vollständigen Datenzyklus sind, gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
    • 2 veranschaulicht den Inhalt eines beispielhaften Bewegungspuffers zum Aufnehmen von Sensordaten und
    • 3 veranschaulicht einen Vergleich einer Teilposenschätzungsbestimmung mit und ohne LIDAR-Treiber-Unterstützung gemäß verschiedenen Ausführungsformen.
    • 4 veranschaulicht eine Übersicht des Betriebsflusses eines Prozesses zur Bestimmung einer geschätzten Pose einer autonomen Vorrichtung unter Verwendung von Teilen eines vollständigen Datenzyklus in Echtzeit gemäß verschiedenen Ausführungsformen.
    • 5 veranschaulicht eine Übersicht des Betriebsflusses eines Prozesses zur Bestimmung einer geschätzten Pose einer autonomen Vorrichtung unter Verwendung von Teilen eines vollständigen Datenzyklus mit Latenz gemäß verschiedenen Ausführungsformen.
    • 6 veranschaulicht ein Blockdiagramm einer Computervorrichtung, die zur Umsetzung der vorliegenden Offenbarung gemäß verschiedenen Ausführungsformen geeignet ist.
    • 7 veranschaulicht ein beispielhaftes computerlesbares Speichermedium, das Befehle aufweist, die konfiguriert sind, um Aspekte der in 4 und 5 gezeigten Prozesse gemäß verschiedenen Ausführungsformen umzusetzen.
  • Ausführliche Beschreibung
  • In Ausführungsformen kann eine Vorrichtung zur Bestimmung einer aktuellen Pose einer mobilen autonomen Vorrichtung bereitgestellt werden. Die Vorrichtung kann eine Schnittstellenschaltungsanordnung aufweisen, um Detektions- und Entfernungsmessungsdaten zu empfangen, die von einem LIDAR-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt. Die Vorrichtung kann ferner eine Posenschätzungsschaltungsanordnung aufweisen, die mit der Schnittstellenschaltungsanordnung gekoppelt ist, um eine aktuelle Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt, zu bestimmen und bereitzustellen. In Ausführungsformen kann die Vorrichtung auf der mobilen autonomen Vorrichtung angeordnet sein.
  • In Ausführungsformen kann die Posenbestimmungsvorrichtung deutlich die Frequenz erhöhen, mit welcher eine mobile autonome Vorrichtung in der Lage ist, eine Posenschätzung durchzuführen.
  • In Ausführungsformen kann die mobile autonome Vorrichtung ein Roboter, ein selbstfahrendes oder computerunterstütztes fahrendes Fahrzeug, ein unbemanntes Fluggerät (UAV, Unmanned Aerial Vehicle) oder eine „Drohne“, oder dergleichen sein.
  • Die folgende ausführliche Beschreibung bezieht sich auf die beigefügten Zeichnungen. Dieselben Bezugszeichen können in verschiedenen Zeichnungen verwendet werden, um dieselben oder ähnliche Elemente zu kennzeichnen. In der folgenden Beschreibung werden zu Erläuterungszwecken und nicht zu Einschränkungszwecken spezifische Details dargelegt, wie etwa bestimmte Strukturen, Architekturen, Schnittstellen, Techniken usw., um ein umfassendes Verständnis der verschiedenen Aspekte verschiedener Ausführungsformen bereitzustellen. Es wird jedoch für einen Fachmann offensichtlich sein, der den Vorteil der vorliegenden Offenbarung hat, dass die verschiedenen Aspekte der verschiedenen Ausführungsformen in anderen Beispielen umgesetzt werden können, die von diesen spezifischen Details abweichen. In bestimmen Fällen werden Beschreibungen von hinreichend bekannten Vorrichtungen, Schaltungen und Verfahren weggelassen, um die Beschreibung der verschiedenen Ausführungsformen nicht mit unnötigem Detail zu verschleiern.
  • Verschiedene Operationen können wiederum als mehrfache diskrete Aktionen oder Operationen auf eine Art, die zum Verstehen des bespanspruchten Gegenstands am hilfreichsten ist, beschrieben werden. Die Reihenfolge der Beschreibung sollte jedoch nicht derart betrachtet werden, als dass sie beinhaltet, dass diese Operationen notwendigerweise von der Reihenfolge abhängen. Insbesondere werden diese Operationen möglicherweise nicht in der Reihenfolge der Präsentation durchgeführt. Die beschriebenen Operationen können in einer anderen Reihenfolge als der beschriebenen Ausführungsform durchgeführt werden. In zusätzlichen Ausführungsformen können die beschriebenen Operationen weggelassen werden oder es können verschiedene zusätzliche Operationen durchgeführt werden.
  • So wie er hierin verwendet wird, kann sich der Begriff „Schaltungsanordnung“ auf eine anwendungsspezifische integrierte Schaltung (ASIC, Application Specific Integrated Circuit), eine elektronische Schaltung, einen Prozessor (gemeinsam, dediziert oder Gruppe) und/oder einen Speicher (gemeinsam, dediziert oder Gruppe), die ein oder mehrere Software- oder Firmwareprogramme ausführen, eine kombinatorische Logikschaltung und/oder sonstige geeignete Hardwarekomponenten, die die beschriebene Funktionalität bereitstellen, beziehen oder Teil von diesen sein oder diese umfassen. In einigen Ausführungsformen kann die Schaltungsanordnung in einem oder mehreren Software- oder Firmwaremodulen implementiert sein oder können Funktionen, die mit der Schaltungsanordnung verknüpft sind, durch eine oder mehrere Software- oder Firmwaremodule implementiert sein. In einigen Ausführungsformen kann die Schaltungsanordnung eine Logik aufweisen, die mindestens teilweise in Hardware betrieben werden kann.
  • In der folgenden Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden, wobei gleiche Bezugszeichen gleiche Teile in allen Zeichnungen bezeichnen, und in welchen veranschaulichend Ausführungsformen gezeigt sind, die umgesetzt werden können. Es versteht sich, dass andere Ausführungsformen verwendet werden können und strukturelle oder logische Änderungen vorgenommen werden können, ohne sich vom Umfang der vorliegenden Offenbarung zu entfernen. Daher ist die folgende ausführliche Beschreibung nicht in einem einschränkenden Sinne zu verstehen und ist der Umfang der Ausführungsformen durch die beigefügten Ansprüche und ihre Äquivalente definiert.
  • Operationen verschiedener Verfahren können wiederum als mehrfache diskrete Aktionen oder Operationen auf eine Art, die zum Verstehen des beanspruchten Gegenstands am hilfreichsten ist, beschrieben werden. Die Reihenfolge der Beschreibung sollte jedoch nicht derart betrachtet werden, als dass sie beinhaltet, dass diese Operationen notwendigerweise von der Reihenfolge abhängen. Insbesondere werden diese Operationen möglicherweise nicht in der Reihenfolge der Präsentation durchgeführt. Die beschriebenen Operationen können in einer anderen Reihenfolge als die beschriebenen Ausführungsformen durchgeführt werden. In zusätzlichen Ausführungsformen können verschiedene zusätzliche Operationen durchgeführt werden und/oder können die beschriebenen Operationen weggelassen, aufgeteilt oder kombiniert werden.
  • Zum Zwecke der vorliegenden Offenbarung bedeutet der Ausdruck „A und/oder B“ (A), (B) oder (A und B). Zum Zwecke der vorliegenden Offenbarung bedeutet der Ausdruck „A, B und/oder C“ (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
  • Die Beschreibung kann die Ausdrücke „in einer Ausführungsform“ oder „in Ausführungsformen“ verwenden, welche sich jeweils auf eine oder mehrere derselben oder verschiedener Ausführungsformen beziehen können. Ferner sind die Begriffe „umfassen“, „beinhalten“, „aufweisen“ und dergleichen, so wie sie bezüglich Ausführungsformen der vorliegenden Offenbarung verwendet werden, gleichbedeutend.
  • Es sei auch darauf hingewiesen, dass die Ausführungsformen als ein Prozess beschrieben werden können, der als ein Flussplan, ein Flussdiagramm, ein Datenflussdiagramm, ein Strukturdiagramm oder ein Blockdiagramm veranschaulicht ist. Wenngleich ein Flussplan die Operationen als einen sequentiellen Prozess beschreiben kann, können viele der Operationen parallel, gleichzeitig oder simultan durchgeführt werden. Zusätzlich kann die Reihenfolge der Operationen neu angeordnet werden. Ein Prozess kann beendet werden, wenn seine Operationen abgeschlossen sind, kann jedoch auch zusätzliche Schritte aufweisen, die nicht in der/den Figur(en) enthalten sind. Ein Prozess kann einem Verfahren, einer Funktion, einem Ablauf, einer Unterroutine, einem Unterprogramm und dergleichen entsprechen. Wenn ein Prozess einer Funktion entspricht, kann seine Beendigung einer Rückkehr der Funktion zu der aufrufenden Funktion und/oder der Hauptfunktion entsprechen. Ferner kann ein Prozess durch Hardware, Software, Firmware, Middleware, Mikrocode, Hardwarebschreibungssprachen oder eine beliebige Kombination davon implementiert werden. Wenn sie in Software, Firmware, Middleware oder Mikrocode implementiert werden, können der Programmcode oder Codesegmente zum Durchführen der notwendigen Aufgaben in einem maschinen- oder computerlesbaren Medium gespeichert werden. Ein Codesegment kann einen Ablauf, eine Funktion, ein Unterprogramm, ein Programm, eine Routine, eine Unterroutine, ein Modul, Programmcode, ein Softwarepaket, eine Klasse oder eine beliebige Kombination von Befehlen, Datenstrukturen, Programmanweisungen und dergleichen darstellen.
  • So wie er im Folgenden hierin einschließlich der Ansprüche verwendet wird, kann sich der Begriff „Schaltungsanordnung“ auf eine anwendungsspezifische integrierte Schaltung (ASIC, Application Specific Integrated Circuit), eine elektronische Schaltung, einen Prozessor (gemeinsam, dediziert oder Gruppe einschließlich eines oder mehrerer „Verarbeitungselemente (PEs, Processing Elements) einer Datenflussmaschine) und/oder einen Speicher (gemeinsam, dediziert oder Gruppe), die ein oder mehrere Software- oder Firmwareprogramme ausführen, eine programmierbare kombinatorische Logikschaltung (z. B. feldprogrammierbare Gate-Arrays (FPGA, Field Programmable Gate Arrays)) und/oder sonstige geeignete Hardwarekomponenten, die die beschriebene Funktionalität bereitstellen, beziehen oder Teil von diesen sein oder diese umfassen. In einigen Ausführungsformen kann die Schaltungsanordnung ein oder mehrere Software- oder Firmwaremodule implementieren oder können Funktionen, die mit der Schaltungsanordnung verknüpft sind, durch eine oder mehrere Software- oder Firmwaremodule implementiert sein.
  • So wie er im Folgenden hierin einschließlich der Ansprüche verwendet wird, kann der Begriff „Speicher“ eine oder mehrere Hardwarevorrichtungen zum Speichern von Daten einschließlich eines Direktzugriffsspeichers (RAM, Random Access Memory), magnetischen RAM, Kernspeicher, Nur-Lese-Speicher (ROM, Read Only Memory), Magnetplattenspeichermedien, optischen Speichermedien, Flash-Speichervorrichtungen und/oder sonstigen maschinenlesbaren Medien zum Speichern von Daten darstellen. Der Begriff „computerlesbares Medium“ kann einen Speicher, tragbare oder fixe Speichervorrichtungen, optische Speichervorrichtungen, drahtlose Kanäle und verschiedene sonstige Medien, die in der Lage sind, (einen) Befehl(e) und/oder Daten zu speichern, aufzunehmen oder zu übermitteln, umfassen, ohne jedoch darauf beschränkt zu sein.
  • Wie erwähnt wird, wird eine LIDAR-Vorrichtung allgemein Daten von ihrem Laserscanner zu einem Host-Prozessor über eine Art von seriellem Kommunikationsprotokoll in Echtzeit senden, während sich der Scanner dreht. Sie sendet dann ein Synchronisierungssignal zu dem Host-Prozessor, wenn sich der Scanner um einen vorab definierten Winkel, z. B. 360°, dreht. Der Host-Prozessor weiß dann, dass ein Scanzyklus geendet hat, und kann eine Posenschätzung unter Verwendung der gescannten Daten von jenem Zyklus durchführen. In Ausführungsformen muss ein Host-Prozessor nicht auf das Synchronisierungssignal warten, um eine geschätzte Pose zu bestimmen. Tatsächlich kann in Ausführungsformen der Host-Prozessor eine Posenschätzung jedes Mal, wenn er ein programmierbares Segment von gescannten Daten empfängt, das einen Teil eines vollständigen Scans darstellt, durchführen. Zum Beispiel kann für den standardmäßigen 360°-Scanzyklus in Ausführungsformen die Posenschätzung erfolgen, nachdem jedes 90°-Segment von Scandaten empfangen worden ist, wodurch die Frequenz von Posenschätzungen um einen Faktor von Vier erhöht wird. In Ausführungsformen kann zum Sicherstellen, dass der Schätzer immer noch über eine vollständige Ansicht der Umgebung verfügt, wie bei herkömmlichen Lösungen, der Host-Prozessor die Scandaten für ein Segment für mehrere Schätzungen beibehalten und die gespeicherten Daten mit neu empfangenen Segmenten neu gruppieren.
  • In Ausführungsformen können die Systemkosten verringert werden. Für einige Verwendungsfälle sind häufige Posenschätzungen wünschenswert. Wenn zum Beispiel erwünscht ist, einen Roboter schnell zu bewegen, zum Beispiel mit einer Geschwindigkeit von 2 m/s (was eine schnelle Gehgeschwindigkeit eines Menschen ist), dann ist eine Posenschätzung mit 5 - 10 Hz, was die typische Rotationsrate von niederwertigen LIDARs ist, wahrscheinlich zu langsam zur Hindernisvermeidung und Motorsteuerung, da sich der Roboter nach oben bis zu 20 - 40 cm pro Scanzyklus bewegen würde. Um Posenschätzungen zum Mithalten mit der Geschwindigkeit des Roboters bereitzustellen, muss entweder ein hochwertiger LIDAR mit zum Beispiel einer Rotationsrate von 40 Hz ausgewählt werden oder verschiedene Ausführungsformen implementiert werden, um eine hohe Frequenz der Posenschätzung mit einer niederwertigeren LIDAR-Vorrichtung zu erhalten.
  • Zusätzlich kann in einigen Ausführungsformen die Robustheit der Posenschätzung verbessert werden. Die meisten Posenschätzungsschemas sind iterativ, was bedeutet, dass der Algorithmus die Posenschätzung eines letzten Zyklus als einen Anfangswert der Posenschätzung eines aktuellen Zyklus übernimmt. Der Algorithmus kann fehlschlagen, wenn die Bodenpose des aktuellen Zyklus zu weit von jenem Anfangswert entfernt ist. Da in Ausführungsformen der Zyklus der Posenschätzung stark gekürzt sein kann, kann dies zu geringeren Differenzen zwischen aufeinanderfolgenden Posen von benachbarten Zyklen führen und kann daher die Möglichkeit von Posenschätzungsfehlern verringern.
  • 1 veranschaulicht eine beispielhafte LIDAR-Vorrichtung, die Scandaten jeden Winkelgrad erfasst, wie sie gemäß verschiedenen Ausführungsformen implementiert ist. Wie zuvor erwähnt wurde, kann in Ausführungsformen eine Posenschätzung jedes Mal, wenn eine kleine Menge an Scandaten erhalten worden ist, im Gegensatzu zu dem Warten auf einen gesamten Zyklus von Scandaten, wie bei herkömmlichen Lösungen, aktiviert werden. 1 zeigt, wie die Scandaten neu gruppiert werden können, um sicherzustellen, dass der Posenschätzungsalgorithmus immer eine vollständige Ansicht hat.
  • Wie zu sehen ist, umfassen bezüglich 1 die Eingaben in die Posenschätzung 120 360 Grad von Scandaten. Ferner werden in dem Beispiel von 1 die Eingaben in die Posenschätzung 120 einem Posenschätzungsalgorithmus in einem Host-Prozessor (nicht gezeigt) jede Sekunde für eine Gesamtzahl von 360 Posenschätzungen 125 pro Zyklus bereitgestellt, eine Erhöhung der Posenschätzungsfrequenz um einen Faktor von 360. Dies wird durch jede der Eingaben in die Posenschätzung 120 unter Verwendung eines neuen 1 Grads von Scandaten (im Wesentlichen ein Scandatenpunkt) in Kombination mit den unmittelbar vorherigen 359 Grad von Scandaten erreicht. Somit verwendet zum Beispiel die Eingabe in die Posenschätzung Nr. 3 Datenpunkte 2° bis 359° des unmittelbar vorherigen Scans und Datenpunkte bei 0° und 1° des aktuell laufenden Scans, wobei Letzterer der neu erhaltene Scandatenpunkt ist. In Ausführungsformen wird der Prozess von 1 durch Beibehalten eines Bewegungspuffers zum Speichern von vollständigen 360° von Scandaten auf einer Rollbasis, wie als Nächstes in Verbindung mit 2 beschrieben wird, erleichtert.
  • Es sei darauf hingewiesen, dass in dem Beispiel von 1 angenommen wird, dass der Laserscanner 360 Mal pro Zyklus von 0° bis 359° abtastet. Es sei darauf hingewiesen, dass dies ein veranschaulichendes Beispiel ist und in der Praxis der Bereich und das Intervall von Winkeln anders sein kann. Somit kann zum Beispiel ein Scanner alle 0,25° von 0° bis 270° scannen oder sogar beweglich sein. In Ausführungsformen können zahlreiche Variationen bezüglich des Winkelintervalls und -bereichs verwendet werden. Zum Beispiel haben die Erfinder erfolgreich eine Ausführungsform unter Verwendung einer RPLidar A2 LIDAR-Vorrichtung, welche 400 Mal pro 360°-Zyklus mit ungleichmäßigen Winkelintervallen scannt, implementiert.
  • Es sei hier ferner darauf hingewiesen, dass in 1 die Posenschätzung derart gezeigt ist, dass sie für jeden einzelnen Scandatenpunkt aktiviert ist. Dies ist auch ein veranschaulichendes Beispiel und wird nicht benötigt. Tatsächlich kann es in einigen Fällen aufgrund von Beschränkungen der Rechenressourcen oder aus anderen Gründen unpraktisch sein. Somit wurde zum Beispiel in Ausführungsformen, die bei der RPLidar A2-Vorrichtung implementiert werden, eine Posenschätzung jedes Mal, wenn ein Segment von 32 neuen Scandatenpunkten (aus einer Gesamtzahl von 400 Scans pro Zyklus) erhalten wurde, aktiviert. Somit wurde in jener beispielhaften Implementierung die Rate der Posenschätzung um einen Faktor von 12,5 (400 / 32) anstatt um 400 erhöht.
  • 2 veranschaulicht einen Puffer 200 gemäß verschiedenen Ausführungsformen. Bezüglich 2 ist der Inhalt des Puffers 200 während drei aufeinanderfolgenden Scanzyklen gezeigt: T0 210, T1 220 und T3 230. In diesem Beispiel erhält der Puffer 200 Scandaten in ¼-Teilen eines Scanzyklus oder erhält für einen Sensor, welcher einen Zeitraum T benötigt, um einen vollständigen Scan abzuschließen, der Puffer Erhöhungen von Daten in jedem Teilzeitraum t, wobei t T/4 ist. Somit umfasst durch Verwenden der 360 Scans pro Zyklus von 1 als Beispiel jedes Segment 90 Grad von Scandaten.
  • Folglich erhält der Puffer neue Datensegmente vier Mal während einem Scanzyklus und behält somit immer vier Datensegmente bei: das neue Segment und die drei unmittelbar vorherigen Segmente. Somit werden vier Segmente von Daten in einen Posenschätzungsalgorithmus eingegeben, welcher in einem Prozessor oder in einem Hardwarebeschleuniger, wie etwa ein FPGA, ausgeführt werden kann, wie nachstehend ausführlicher beschrieben wird.
  • Weiterhin unter Bezugnahme auf 2 sind rechts von der Veranschaulichung des Pufferinhalts im Verlaufe der Zeit drei Spalten vorhanden, die T-Pose 250 und die t-Pose 260, welche sich jeweils auf Posenschätzungen beziehen, und der Genauigkeitsgrad 270, welcher ausdrückt, ob die t-Posenschätzung 260 genauer als oder genauso genau wie die T-Posenschätzung ist. Die T-Pose 250 stellt die Posenschätzung bereit, die nur aus dem einmaligen Berechnen der Pose für jeden Scanzyklus resultiert, während die t-Pose 260 die Posenschätzung gemäß verschiedenen Ausführungsformen bereitstellt, wo die Pose geschätzt wird, nachdem jedes Teilsegment von Scandaten erhalten wird.
  • Weiterhin unter Bezugnahme auf 2 ist bei 210 der Pufferinhalt für einen ersten Scanzyklus, T0, gezeigt. Jede Zeile veranschaulicht den Inhalt des Bewegungspuffers 200 zu Beginn seines Zeitraums. Es sei darauf hingewiesen, dass jede Folgezeile in dem Puffer den Inhalt in dem nächsten t-Intervall veranschaulicht und somit die zeitliche Distanz zwischen zwei beliebigen Folgezeilen in dem Puffer 200 die Teilzeit t ist. Da t = T/4, sind vier Konfigurationen des Puffers vorhanden, die für jeden Scanzyklus gezeigt sind. Anfangs sind bei 211, wo t=0, keine Daten in dem Bewegungspuffer 200 gespeichert. Bei 212, was die Zeit t=1 ist, geht das erste Segment für den Scan T0 ein, wie ganz links der Zeile gezeigt ist. Bei den Zeilen 213 und 214 gehen bei den Zeitpunkten t=2 und t=3 jeweils die zweiten und dritten Datensegmente in den Puffer ein, so dass bei 214, der letzten Konfiguration für den Scan T0, drei Datensegmente gespeichert sind. Es sei darauf hingewiesen, dass, da ein Datensegment nicht bis zu einer bestimmten Zeit, direkt nachdem es erhalten worden ist, verfügbar ist, nur während dem ersten Segment von Scan T1, welches den Pufferinhalt zu Beginn des Scanzyklus T1 darstellt, alle Daten von Scan T0 verfügbar sind.
  • Somit sind zum Zeitpunkt t=4 zu Beginn des Scanzyklus T1, wie in der Zeile 221 gezeigt ist, alle vier Segmente der Scandaten nun zur Berechnung einer geschätzten Pose verfügbar. Hier zeigt die T-Pose 250 P0, eine erste vollständige Scanzykluspose, und zeigt die t-Pose P11, die erste Pose gemäß Ausführungsformen hiervon, basierend auf Teildatensegmenten. Es sei darauf hingewiesen, dass für eine bequemere Veranschaulichung die t-Posenwerte einen „Hut“ über dem „P“ aufweisen. Da P0 und P11 dieselben Daten verwenden, weisen sie eine gleiche Genauigkeit auf, wie durch das „=“-Zeichen in der Spalte Genauigkeit 270 angegeben ist. Somit ist die Pose P0 dieselbe wie die Teilpose P11, da sie denselben Satz Eingangsdaten verwenden.
  • Weiterhin unter Bezugnahme auf 2 gehen in den Zeilen 222 bis 224 die nächsten drei Teilsegmente von Scan-T1-Daten in den Bewegungspuffer 200 ein, so dass bei der Zeile 224 zu Beginn des letzten Teilzeitraums des Scanzyklus T1 der Bewegungspuffer 200 drei Segmente von T1-Daten und das Endsegment der Daten des Scan T0 aufweist. Zusätzlich ändert sich bei jeder der Zeilen 222 - 224 die t-Pose, während sich die T-Pose 250 nicht ändert. Somit werden bei jeder der Zeilen 222, 223 und 224 eine t-Pose P12, P13 und P14 basierend auf einer Mischung von T0- und T1-Datensegmenten berechnet, wie gezeigt ist. Da diese t-Posen jeweils neuere Daten als die T-Pose 260 P0 verwenden, weist jede von ihnen eine höhere Genauigkeit als P0 auf, wie in der Genauigkeitsspalte 270 gezeigt ist, wo jede der t-Posen P12, P13 und P14 derart gezeigt ist, dass sie eine höhere Genauigkeit als P0 aufweist, was durch das „>“-Symbol angegeben wird.
  • Somit sind zum Zeitpunkt t=8 zu Beginn des Scanzyklus T2, wie in der Zeile 231 gezeigt ist, alle vier Segmente der T1-Scandaten nun zur Berechnung einer geschätzten Pose verfügbar. Hier zeigt die T-Pose 250 P1, eine zweite vollständige Scanzykluspose, und zeigt die t-Pose P21, die erste Pose zum Verwenden aller T1-Scandaten. Wie zuvor, da P1 und P21 dieselben Daten verwenden, weisen sie ungefähr dieselbe Genauigkeit auf, wie durch das „∼“-Zeichen in der Spalte Genauigkeit 270 angegeben wird. Es sei jedoch darauf hingewiesen, dass sie nicht genau gleich sind, da die Ausgabe einer Posenschätzung auch von der Ausgabe des vorherigen Zyklus abhängt, weshalb in Ausführungsformen die Robustheit der Posenschätzung verbessert werden kann. Somit ist die Pose P21 genauer als die Pose P1, selbst wenn sie auf denselben Daten basieren, da die Pose P21 auch auf der vorherigen Pose P14 basiert, während P1 nur auf der vorherigen Pose P0 basiert.
  • Weiterhin unter Bezugnahme auf 2 gehen in den Zeilen 232 bis 234, die die Zeitpunkte t=9 bis t=11 darstellen, die nächsten drei Teilsegmente von Scan-T2-Daten in den Bewegungspuffer 200 ein, so dass bei der Zeile 234 zu Beginn des letzten Teilzeitraums des Scanzyklus T2 der Puffer drei Segmente von T2-Daten und das Endsegment der Scan T1-Daten aufweist. Wie zuvor, ändert sich bei jeder der Zeilen 232 - 234 die t-Pose, während sich die T-Pose 250 nicht ändert. Somit werden bei jeder der Zeilen 232, 233 und 234 eine t-Pose P22, P23 und P24 basierend auf einer Mischung von T1- und T2-Datensegmenten berechnet, wie gezeigt ist. Da diese t-Posen jeweils neuere Daten als die T-Pose 260 P1 verwenden, weist jede von ihnen eine höhere Genauigkeit als P1 auf, wie in der Genauigkeitsspalte 270 gezeigt ist, wo jede der t-Posen P22, P23 und P24 derart gezeigt ist, dass sie eine höhere Genauigkeit als P0 aufweist, was durch das „>“-Symbol angegeben wird.
  • Wie verständlich ist, besteht eine Beziehung zwischen der Scanrate und der Anzahl an Teildatensegmenten zum Speichern in dem Bewegungspuffer 200. Unter der Annahme, dass sich eine LIDAR-Vorrichtung mit R Umdrehungen pro Sekunde dreht und S Mal pro Sekunde scannt, würde sie S/R-Scandaten in jedem Scanzyklus erzeugen. Weiter unter der Annahme, dass eine Menge P von Daten zusammen zur Übertragung zwischen der LIDAR-Vorrichtung und einem Host eingekapselt wird, dann können in Ausführungsformen [S/R/P]-Segmente in dem Puffer gehalten werden.
  • Wie erwähnt wurde, erhält die in 2 veranschaulichte Ausführungsform Teildaten während mehreren Intervallen während jedem Scanzyklus. Von daher arbeitet ein Host-Prozessor, der einen Posenschätzungsalgorithmus ausführt, unabhängig von dem Scanzyklussynchronisierungssignal, das ein LIDAR-Sensor ausgeben kann, und kann eine Posenschätzung gemäß seinen eigenen definierten Datensegmenten in Intervallen der Teilzeit t berechnen. Es sei darauf hingewiesen, dass dies in Ausführungsformen möglich ist, wo auf einen Treiber der LIDAR-Vorrichtung zugegriffen werden kann, und die LIDAR-Vorrichtung dabei angewiesen werden kann, Teildatensegmente einem Host-Prozessor bereitzustellen. Manchmal kann es unmöglich sein, die Datenausgangsparameter einer LIDAR-Vorrichtung zu ändern. In alternativen Ausführungsformen jedoch ist es auch möglich, die Posenschätzungsfrequenz zu beschleunigen, selbst ohne einen Zugriff auf den Treiber der LIDAR-Vorrichtung, wie als Nächstes unter Bezugnahme auf 3 beschrieben wird.
  • 3 veranschaulicht einen Vergleich des Zeitablaufs von Scandaten, die von einer LIDAR-Vorrichtung in drei Szenarien bereitgestellt werden, und des entsprechenden Zeitablaufs der Posenschätzung basierend auf jenen Daten. Die drei Szenarien umfassen den Vollständigen Zyklus 315, welches ein standardmäßiger vollständiger LIDAR-Zyklus der Datenposenschätzung ist, wie zuvor erörtert wurde, Segmentiert mit Treiberunterstützung 330 und Segmentiert ohne Treiberunterstützung 350. Die Informationen für den Vollständigen Zyklus 315 werden zu Vergleichszwecken und einer bequemeren Veranschaulichung der Zeitsteuerung sowohl der Scandatenlieferung als auch der Posenschätzung in den beiden veranschaulichten Ausführungsformen 330 und 350 präsentiert.
  • Unter Bezugnahme auf 3 muss bei dem Vollständigen Zyklus 315 ein vollständiger Datenscan gesammelt werden, bevor eine Posenschätzung erfolgen kann. In 3 wird der Begriff „SLAM“ zur Posenschätzung verwendet, wobei er sich auf „Simultaneous Localization and Mapping algorithm“ (Simultaner Lokalisierungs- und Mapping-Algorithmus) bezieht. Somit tritt P1 340, die Posenschätzung für den Scanzyklus D1, eine kurze Zeit in den Scanzyklus D2 hinein auf, wie gezeigt ist. Ähnlich tritt P2 342, die Posenschätzung für den Scanzyklus D2, eine kurze Zeit in den Scanzyklus D32 hinein auf, wie auch gezeigt ist. Diese Latenz ist ein Merkmal der begrenzten Zeit, die es dauert, um eine SLAM-Berechnung auf den Empfang der Daten folgend, die in die Berechnung eingegeben werden, durchzuführen, und ist im Wesentlichen dieselbe bei jedem der Szenarien 315, 330 und 350.
  • Weiterhin unter Bezugnahme auf 3 ist das zweite Szenario, Segmentiert mit Treiberunterstützung, jenes, das in 1 und 2 veranschaulicht ist. Wie erwartet, sind vier SLAM-Berechnungen pro Scanzyklus vorhanden. Zum Beispiel, wie während dem Scanzyklus D2 gezeigt ist, P1.4, P2.1, P2.2 und P2.3. Der SLAM P1.4 arbeitet auf den vier Teildatensegmenten, die während dem Scanzyklus D1 erhalten werden, nämlich D1.1, D1.2, D1.3 und D1.4, welche analog zu den vier Teildatensegmenten für den Scanzyklus T0 sind, wie sie in Zeile 221 von 2 gezeigt sind. P1.4 wird in einer Teilzeit t von dem SLAM P2.1 befolgt, welcher auf dem gemischten Satz von D1- und D2-Daten, nämlich D1.2, D1.3, D1.4 und D2.1, wie zuvor beschrieben wurde, arbeitet. Wie in 3 zu sehen ist, endet jede SLAM-Berechnung zu einer bestimmten Zeit auf das letzte Segment seiner Daten, die erhalten werden, folgend. Somit wird in Szenario 330 P1.4 eine bestimmte Zeit t2 nach dem Ende des Datensegments D1.4 bei t1 beendet und wird der SLAM P2.1 eine bestimmte Zeit nach dem Ende des Datensegments D2.1 beendet, usw. In diesem Beispiel ist die Latenz einer SLAM-Berechnung (t2-t1) geringer als der Zeitraum t 331 eines Teilzeitraums. Ferner ist P1.4 mit P1 vergleichbar, jedoch, wie erwähnt, nicht dieselbe, da die Ausgabe von dem SLAM auch von der Ausgabe eines vorherigen Zyklus abhängt, weshalb verschiedene Ausführungsformen die Robustheit verbessern können, wie erwähnt wurde.
  • Unter Bezugnahme nunmehr auf Szenario 350 von 3, das Szenario „Segmentiert ohne Treiberunterstützung“, kann, wenngleich in diesem Szenario ein Host-Prozessor einen gesamten Zyklus von Scandaten jedes Mal empfängt, durch Puffern und Verzögern der Berechnungen innerhalb des Host-Prozessors vorgesehen werden, dass die Scandaten sequentiell und somit in Teilsegmenten bereitgestellt werden und FastScan auf diesen Segmenten durchgeführt werden kann, um die Scandatenverarbeitung zu optimieren. Es sei darauf hingewiesen, dass Ausführungsformen hiervon der Bequemlichkeit wegen als „FastScan“ bezeichnet werden können. Ferner kann in Ausführungsformen des Szenarios 350 die Segmentierung im Wesentlichen beliebig spezifiziert werden, wobei sie nur durch Rechenleistung und -kapazität des Host-Computers beim Durchführen der SLAM-Berechnungen beschränkt wird.
  • Wie in dem Szenario 350 gezeigt ist, erfolgen weiterhin unter Bezugnahme auf 3 die FastScan-Berechnungen P1.1, P1.2, P1.3 und P1.4 alle sequentiell während dem Datenzyklus D2, da FastScan warten muss, um alle D1-Daten zu empfangen, bevor es die verschiedenen Segmente verarbeiten kann, in welche es die D1-Daten aufteilt. Wie gezeigt ist, bringt dies eine zusätzliche Latenz 360 auf und über dem Szenario 330 ein, was eine geschätzte Pose P1.4 eine kurze Zeit t2, nachdem der Scanzyklus D1 bei t1 endet, ausgibt, wie gezeigt ist, während in Szenario 350 die Pose P1.4 zu dem Zeitpunkt t3 ausgegeben wird, wo (t3-t2) = Latenz 360. In Ausführungsformen kann die zusätzliche Latenz 360 grundsätzlich geringer als der Zeitraum 365 eines Scanzyklus sein, was bei den meisten Anwendungen akzeptabel wäre.
  • 4 und 5, die als Nächstes beschrieben werden, veranschaulichen eine Übersicht des Betriebsflusses eines Prozesses zur Posenschätzung einer autonomen Vorrichtung gemäß Ausführungsformen jeweils des Szenarios 330 und 350. Solch eine mobile autonome Vorrichtung kann ein Roboter, ein selbstfahrendes oder computerunterstütztes fahrendes Fahrzeug, ein unbemanntes Fluggerät (UAV, Unmanned Aerial Vehicle) oder eine „Drohne“, oder dergleichen sein. Diese Figuren werden als Nächstes beschrieben.
  • 4 veranschaulicht eine Übersicht des Betriebsflusses eines Prozesses zur Posenbestimmung einer autonomen Vorrichtung unter Verwendung von Teilen eines vollständigen Datenzyklus gemäß verschiedenen Ausführungsformen. Der Prozess von 4 kann von einer Computervorrichtung 600 durchgeführt werden, wie in 6 veranschaulicht ist. Wie veranschaulicht, kann der Prozess 400 Operationen umfassen, die bei den Blöcken 410 - 460 durchgeführt werden. Der Prozess 400 kann bei Block 410 beginnen. Bei Block 410 kann ein neues Segment von LIDAR-Sensordaten für den Teilzeitraum t erhalten werden. Von Block 410 kann der Prozess 400 zu Block 420 fortfahren, wo ein ältestes Teilsegment von Sensordaten aus einem Puffer, z. B. dem LIDAR-Datenpuffer 655, der in der Computervorrichtung 600 von 6, die nachstehend beschrieben wird, bereitgestellt ist, oder dem Puffer 200, der in 2 veranschaulicht ist und zuvor beschrieben wurde, gelöscht werden kann.
  • Weiterhin unter Bezugnahme auf 4 kann von Block 420 der Prozess 400 zu Block 430 fortfahren, wo das neue Datensegment mit vorherigen empfangenen Segmenten von LIDAR-Sensordaten zum Schätzen der Pose für den (Teil-)Zeitraum t kombiniert werden kann. Von Block 430 kann der Prozess 400 zu Block 440 fortfahren, wo die LIDAR-Sensordaten für die Posenschätzung in dem Zeitraum t (welcher, wie erwähnt wurde, das letzte empfangene Segment und ausreichend frühere empfangene Segmente umfasst, um eine Zeit T von Sensordaten zu umfassen) in eine Punktewolke umgewandelt werden können. Von Block 440 kann der Prozess 400 zu Block 450 fortfahren, wo eine geschätzte aktuelle Pose der autonomen Vorrichtung in dem (Teil-)Zeitraum t durch Abgleichen der Punktewolke mit einer Referenzkarte bestimmt wird. Von Block 450 kann der Prozess 400 zu Block 460 fortfahren, wo die geschätzte aktuelle Pose der autonomen Vorrichtung in dem Zeitraum t verschiedenen Clients, wie etwa Bewegungssteuerungen usw., bereitgestellt werden kann. Bei Block 460 kann der Prozess 400 zu Block 410 zurückkehren und das nächste Teildatensegment empfangen, oder, wenn keines vorhanden ist, kann der Prozess 400 enden.
  • 5 veranschaulicht eine Übersicht des Betriebsflusses eines Prozesses zur Posenschätzung für eine autonome Vorrichtung unter Verwendung von Teilen eines vollständigen Datenzyklus gemäß Ausführungsformen, wo der Host-Prozessor einen vollständigen Scanzyklus von Daten zu einem Zeitpunkt empfängt, wie etwa in Szenario 350 von 3, das zuvor beschrieben wurde. Der Prozess von 5 kann von einer Computervorrichtung 600 durchgeführt werden, wie in 6 veranschaulicht ist. Wie veranschaulicht ist, kann der Prozess 500 Operationen umfassen, die bei den Blöcken 510 - 550 durchgeführt werden. Der Prozess 500 kann bei Block 510 beginnen. Bei Block 510 kann ein vollständiger Scanzyklus von LIDAR-Sensordaten für einen Scanzeitraum T erhalten werden. Von Block 510 kann der Prozess 500 zu Block 520 fortfahren, wo die Daten gepuffert und in Teilsegmente aufgeteilt werden können, die jeweils Daten für eine Teilzeit t, t < T, darstellen.
  • Weiterhin unter Bezugnahme auf 5 kann von Block 520 der Prozess 500 zu Block 530 fortfahren, wo das Teildatensegment für den Zeitpunkt tk mit einer Sequenz von unmittelbar vorherigen Teildatensegmenten tk-1, tk-2, ...tk-n kombiniert werden kann, um Sensordaten zum Schätzen der Pose in dem Teilzeitraum tk zu erhalten. Von Block 530 kann der Prozess 500 zu Block 540 fortfahren, wo die LIDAR-Sensordaten für die Posenschätzung in dem Zeitraum tk (welcher, wie erwähnt, das letzte empfangene Segment für die Zeit tk und ausreichende frühere empfangene Segmente tk-1, tk-2, ...tk-n umfasst, um eine Zeit T von Sensordaten zu umfassen) in eine Punktewolke umgewandelt werden können. Von Block 540 kann der Prozess 500 zu Block 550 fortfahren, wo eine geschätzte aktuelle Pose der autonomen Vorrichtung zu dem Zeitraum tk durch Abgleichen der Punktewolke mit einer Referenzkarte bestimmt und die geschätzte Pose verschiedenen Clients, wie etwa Bewegungssteuerungen usw., bereitgestellt werden kann. Diese Bestimmung der geschätzten Pose weist eine gewisse Latenz bezüglich des Endes des Zeitraums tk auf, wie zuvor in Verbindung mit 3, Szenario 350, erwähnt wurde. Von Block 550 kann der Prozess 500 zu Block 510 zurückkehren und den nächsten vollständigen Datenzyklus empfangen, oder, wenn keiner vorhanden ist, kann der Prozess 500 enden.
  • 6 veranschaulicht ein Blockdiagramm einer Computervorrichtung, die zur Umsetzung der vorliegenden Offenbarung geeignet ist, gemäß verschiedenen Ausführungsformen. Vor dem ausführlichen Beschreiben von 6 wird zunächst ein Detail einer beispielhaften SLAM-Berechnung, die durch ein beispielhaftes SLAM-Programm durchgeführt wird, gemäß verschiedenen Ausführungsformen bereitgestellt. Die beispielhafte Berechnung ist eine spezifische Implementierung des Prozesses 400 von 4, der zuvor beschrieben wurde. In Ausführungsformen können sieben Aufgaben vorhanden sein, die bei einer Posenschätzung durchgeführt werden. (Die Aufteilung in Aufgaben ist willkürlich und dient nur veranschaulichenden Zwecken). Zunächst kann eine LIDAR-Vorrichtung eine Umgebung einer autonomen Vorrichtung scannen und die Daten zu einem Host-Computer senden. In Ausführungsformen stellen diese Daten ein Teilsegment eines vollständigen Scanzyklus dar. Der Teil eines vollständigen Scanzyklus, der von dem Segment umfasst ist, kann durch eine Ausführungsform ausgewählt und abgeändert werden. Zweitens kann ein LIDAR-Treiber auf dem Host-Computer die Daten vorab verarbeiten und sie an ein SLAM-Programm veröffentlichen. Drittens kann das SLAM-Programm die Scandaten mit einem Bewegungspuffer neu gruppieren und auch entscheiden, wie viele zuvor empfangene Daten aus dem Puffer zu löschen sind, um immer einen vollständigen Zyklus von Scandaten beizubehalten. Viertens kann das SLAM-Programm Scandaten (Winkel + Bereiche) empfangen und diese in eine Punktewolke umwandeln, welche Koordinaten aller gescannten Punkte aus der Perspektive der autonomen Vorrichtung umfasst. Fünftens kann das SLAM-Programm versuchen, eine Pose zu finden, bei welcher die Punktewolke am ehesten mit einer Karte übereinstimmt. Sechstens kann bei einer optionalen Aufgabe das SLAM-Programm die Karte mit der Punktewolke und der geschätzten Pose aktualisieren (diese Aufgabe kann übersprungen werden, wenn eine vorab konstruierte Karte vorhanden ist). Schließlich und siebtens kann das SLAM-Programm die geschätzte Pose und die aktualisierte Karte an beliebige interessierende Clients veröffentlichen.
  • Unter all den gerade beschriebenen Aufgaben kann die Fünfte (Scanabgleichung) die rechenintensivste sein. Somit kann sie in Ausführungsformen von einem FPGA durchgeführt werden, während die anderen Aufgaben (mit Ausnahme der Ersten) von Software durchgeführt werden können, die auf einer CPU, zum Beispiel einer ARM CPU, die in einem System auf einem Chip (SoC, System on Chip) bereitgestellt ist, ausgeführt werden. In solchen Ausführungsformen kann die Software jedes Mal, wenn sie einen Datenzyklus einschließlich eines neuen Segments von Scandaten erhält, die Daten in eine Punktewolke umwandeln und die Punktewolke in einen FPGA über einen gemeinsamen Speicher kopieren. Der Prozess kann dann zum Beispiel eine Scanabgleichungslogik in dem FPGA durch Schreiben eines Signals auf eine vorab definierte Adresse des gemeinsamen Speichers aktivieren. In solchen Ausführungsformen kann das FPGA eine Scanabgleichung durchführen, die geschätzte Pose zurückschreiben und das Softwareprogramm benachrichtigen. In einigen Ausführungsformen kann eine Karte vorab konstruiert und statisch sein (nicht nach jeder Posenschätzung aktualisiert werden). In solchen Ausführungsformen kann die Karte nur dann auf das FPGA kopiert werden, wenn der Prozess beginnt.
  • Somit kann der Host-Prozessor eine Schnittstellenschaltungsanordnung zum Empfangen von Detektions- und Entfernungsmessungsdaten, die von einem LIDAR-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt, aufweisen.
  • Der Host-Prozessor kann ferner eine Posenschätzungsschaltungsanordnung aufweisen, die mit der Schnittstellenschaltungsanordnung gekoppelt ist, um eine aktuelle Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt, zu bestimmen und bereitzustellen.
  • In Ausführungsformen können der Host-Prozessor und die LIDAR-Sensorvorrichtung auf der mobilen autonomen Vorrichtung angeordnet sein.
  • Es sei hier erwähnt, dass bei dieser beispielhaften Implementierung das FPGA umso mehr Arbeit zu verrichten hat, je mehr eine Ausführungsform die Scanfrequenz erhöht (d. h, die Anzahl an Datenpunkten pro Segment verringert), und die fünfte Aufgabe (eine Pose finden, bei welcher die Punktewolke am ehesten mit einer Karte übereinstimmt) somit mehrere Male pro Scanzyklus wiederholt wird.
  • Angesichts der Beschreibung dieser Aufgaben wird unter Bezugnahme nunmehr auf 6 ein Blockdiagramm einer Computervorrichtung, die zur Umsetzung der vorliegenden Offenbarung gemäß verschiedenen Ausführungsformen geeignet ist, veranschaulicht. Wie gezeigt ist, kann die Computervorrichtung 600 einen SoC 610 und einen Systemspeicher 650 aufweisen. Der SoC 610 kann einen oder mehrere Prozessoren 615, einen Speicher 613 und einen Hardwarebeschleuniger, wie etwa ein FPGA 620, aufweisen. Das FPGA 620 kann gemäß verschiedenen Ausführungsformen mit einem FastScan-Kern versehen werden, einschließlich einer ScanAbgleichungslogik, um Posenschätzungen durchzuführen.
  • Der Systemspeicher 650 kann einen beliebigen bekannten flüchtigen oder nichtflüchtigen Speicher umfassen und kann einen LIDAR-Treiber 651 aufweisen. Der Systemspeicher 650 kann auch mit einem FastScan-Modul 653 versehen werden, welches die verschiedenen Aufgaben verwaltet, die zuvor beschrieben wurden, mit Ausnahme der intensiven Berechnung, die in dem FPGA 620 implementiert ist. Der Systemspeicher 650 kann auch einen LIDAR-Datenpuffer 655 aufweisen, welcher als der Puffer wirken kann, der in Verbindung mit 2 beschrieben ist, wie zuvor beschrieben wurde. Es sei darauf hingewiesen, dass in alternativen Ausführungsformen die gesamte FastScan-Berechnung in Hardware oder Software im Gegensatz zu der veranschaulichten Hybridausführungsform implementiert werden kann.
  • Zusätzlich kann die Computervorrichtung 600 einen Eingangsport 630, z. B. einen universalen seriellen Bus(USB)-Port, aufweisen, welcher kommunizierbar mit der LIDAR-Vorrichtung 640 verbunden werden kann, um die Sensordaten zu empfangen, die zu puffern und betreiben sind, um Posenschätzungen durchzuführen, wie zuvor beschrieben wurde. In alternativen Ausführungsformen kann stattdessen ein anderer serieller oder paralleler Port verwendet werden. Die Elemente der Computervorrichtung 600 können über einen Systembus 612, welcher ein oder mehrere Busse darstellen kann, miteinander gekoppelt werden. Im Falle von mehreren Bussen können diese durch eine oder mehrere Busbrücken (nicht gezeigt) überbrückt werden.
  • Jedes dieser Elemente kann seine herkömmlichen Funktionen, die im Stand der Technik bekannt sind, durchführen. Insbesondere kann der Systemspeicher 650 eingesetzt werden, um eine Arbeitskopie und eine permanente Kopie des ausführbaren Codes der Programmierbefehle des LIDAR-Treibers 651 und des FastScan 653 zu speichern, welche konfiguriert werden können, um eine FastScan-Anwendung umzusetzen, welche jeweils die Prozesse 400 und 500 von 4 und 5 (Aspekte davon) umfassen können. In Ausführungsformen kann der Systemspeicher 650 auch Programmierbefehle, die ein Betriebssystem implementieren, und eine oder mehrere andere Anwendungen aufweisen. Die Programmierbefehle können Assemblerbefehle umfassen, die von (einem) Prozessor(en) 615 oder höheren Programmiersprachen, wie zum Beispiel C, die zu solchen Befehlen kompiliert werden können, unterstützt werden.
  • Der ausführbare Code der Programmierbefehle oder Bitströme zum Konfigurieren des Hardwarebeschleunigers 620 können in dem Systemspeicher 650 und/oder SoC-Speicher 613 im Werk oder auf dem Feld, zum Beispiel durch ein Verteilungsmedium (nicht gezeigt), wie etwa eine Compact Disc (CD), USB-Speichervorrichtung oder dergleichen, oder durch den Eingangsport 630 (von einem Verteilungsserver (nicht gezeigt)) platziert werden. Die Anzahl, Fähigkeit und/oder Kapazität dieser Elemente kann je nach der vorgesehenen Verwendung der beispielhaften Computervorrichtung 600 variieren, d. h., je nach dem, in welcher Art von mobiler autonomer Vorrichtung die beispielhafte Computervorrichtung 600 eingebettet ist. Der Aufbau dieser Elemente ist anderweitig bekannt und wird dementsprechend nicht weiter beschrieben werden.
  • 7 veranschaulicht ein beispielhaftes computerlesbares Speichermedium, das Befehle aufweist, die konfiguriert sind, um jeweils die Prozesse 400 und 500 (Aspekte von diesen) von 4 und 5, die zuvor beschrieben wurden, gemäß verschiedenen Ausführungsformen zu implementieren und/oder umzusetzen. Wie veranschaulicht ist, kann das computerlesbare Speichermedium 702 den ausführbaren Code einer Anzahl an Programmierbefehlen oder Bitströmen 704 aufweisen. Ausführbarer Code von Programmierbefehlen (oder Bitströmen) 704 kann konfiguriert sein, um einer Vorrichtung, z. B. der Computervorrichtung 600, zu ermöglichen, als Reaktion auf die Ausführung des/der ausführbaren Codes/Programmierbefehle (oder die Operation des FPGA 620) jeweils die Prozesse 400 und 500 (Aspekte von diesen) von 4 und 5 durchzuführen. In alternativen Ausführungsformen kann/können der/die ausführbare Code/Programmierbefehle/Bitströme 704 stattdessen auf mehreren nichtflüchtigen computerlesbaren Speichermedien 702 angeordnet sein. In Ausführungsformen kann das computerlesbare Speichermedium 702 nichtflüchtig sein. In noch anderen Ausführungsformen können der/die ausführbare Code/Programmierbefehle 704 in einem flüchtigen computerlesbaren Medium, wie etwa Signale, codiert werden.
  • Es sei darauf hingewiesen, dass eine FastScan-Ausführungsform, wie sie offenbart ist, in einer Roboterplattform mit RPLidar A2 (einem niederwertigen LIDAR-Produkt von Slamtec) implementiert worden ist. Sie erhöhte die Frequenz der Posenschätzung um 12,5x (von 10 Hz auf 125 Hz), was die Robustheit der Posenschätzung verbesserte. Es sei auch darauf hingewiesen, dass ein Roboter oder eine andere autonome Vorrichtung mit einer höheren Wahrscheinlichkeit verloren geht (z. B. es nicht schafft, seine Pose mit einem SLAM-Algorithmus zu verfolgen), während er sich dreht, als während dem Bewegen nach vorne. Um dieses Problem zu lösen, ist eine maximale Winkelgeschwindigkeit, mit welcher sich ein Roboter drehen könnte, ohne verloren zu gehen, mit zwei verschiedenen Roboterplattformen in mehreren verschiedenen Szenarien getestet worden. Es wurde herausgefunden, dass sich durch Verwenden von FastScan die Roboter ungefähr zwei Mal schneller drehen konnten.
  • Es sei ferner darauf hingewiesen, dass in alternativen Ausführungsformen ein Standardcomputer, z. B. ein Desktop oder eine Intel® Next Unit of Computing (NUC), ohne ein FPGA, verwendet werden kann, um FastScan-Ausführungsformen zu implementieren. Eine FastScan-Ausführungsform, wie sie offenbart ist, ist auch in einer Roboterplattform mit RPLidar A2 unter Verwendung eines Desktops mit einer Intel® Core i7 CPU implementiert worden. In jener beispielhaften Implementierung wurde die Frequenz des Posenschätzungszyklus um 7x bis ungefähr 70 Hz im Gegensatz zu 125 Hz mit einem FPGA aufgrund einer beschränkteren Rechenkapazität erhöht.
  • In Ausführungsformen können die Programmierbefehle, die das FastScan der vorliegenden Offenbarung implementieren, in dem Vorrichtungstreiber/SDK von LIDAR-Herstellern enthalten sein.
  • Veranschaulichende Beispiele der hierin offenbarten Technologien werden nachstehend bereitgestellt. Eine Ausführungsform der Technologien kann eines oder mehrere oder eine beliebige Kombination der nachstehend beschriebenen Beispiele umfassen.
  • BEISPIELE
  • Beispiel 1 kann eine Vorrichtung zur Bestimmung einer aktuellen Pose einer mobilen autonomen Vorrichtung umfassen, die Folgendes umfasst: eine Schnittstellenschaltungsanordnung zum Empfangen von Detektions- und Entfernungsmessungsdaten, die von einem LIDAR-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt; und eine Posenschätzungsschaltungsanordnung, die mit der Schnittstellenschaltungsanordnung gekoppelt ist, um eine aktuelle Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt, zu bestimmen und bereitzustellen. Die Vorrichtung kann auf der mobilen autonomen Vorrichtung angeordnet sein.
  • Beispiel 2 kann die Vorrichtung von Beispiel 1 und/oder anderen Beispielen hierin umfassen, wobei jede Datenmenge d Grad abdeckt und wobei D durch d teilbar ist.
  • Beispiel 3 kann die Vorrichtung von Beispiel 1 und/oder anderen Beispielen hierin umfassen, wobei D 360 Grad entspricht.
  • Beispiel 4 kann die Vorrichtung von Beispiel 1 und/oder anderen Beispielen hierin umfassen, wobei T durch t teilbar ist.
  • Beispiel 5 kann die Vorrichtung von Beispiel 3 und/oder anderen Beispielen hierin umfassen, wobei d 90 Grad ist und t ¼ von T ist.
  • Beispiel 6 kann die Vorrichtung von Beispiel 1 und/oder anderen Beispielen hierin umfassen, wobei d 1 Grad ist und t 1/360-stel von T ist.
  • Beispiel 7 kann die Vorrichtung von Beispiel 1 und/oder anderen Beispielen hierin umfassen, ferner umfassend einen Puffer zum Aufnehmen von Detektions- und Entfernungsmessungsdaten von mindestens einer Abtastung umfasst.
  • Beispiel 8 kann die Vorrichtung nach einem der Beispiele 1 - 7 und/oder anderen Beispielen hierin umfassen, wobei die Posenschätzungsschaltungsanordnung auf den Puffer für Detektions- und Entfernungsmessungsdaten einer Abtastung in jedem Zeitraum t zugreifen wird.
  • Beispiel 9 kann die Vorrichtung von Beispiel 7 und/oder anderen Beispielen hierin umfassen, ferner umfassend einen Treiber zum Zugreifen auf den Puffer und Bereitstellen von Detektions- und Entfernungsmessungsdaten einer Abtastung an die Posenschätzungsschaltungsanordnung in jedem Zeitraum t.
  • Beispiel 10 kann die Vorrichtung von Beispiel 9 und/oder anderen Beispielen hierin umfassen, wobei der LIDAR-Sensor ein Synchronisierungssignal ausgibt, um anzuzeigen, wann er tatsächlich eine Abtastung abschließt, und wobei der Treiber die Detektions- und Entfernungsmessungsdaten einer Abtastung der Posenschätzungsschaltungsanordnung in jedem Zeitraum t unabhängig von dem Synchronisierungssignal bereitstellt.
  • Beispiel 11 kann die Vorrichtung von Beispiel 1 und/oder anderen Beispielen hierin umfassen, wobei zum Bestimmen und Bereitstellen einer aktuellen Pose die Posenschätzungsschaltungsanordnung die Detektions- und Entfernungsmessungsdaten in eine Punktewolke umwandelt und die aktuelle Pose durch Abgleichen der Punktewolke mit einer Referenzkarte bestimmt.
  • Beispiel 12 kann die Vorrichtung von Beispiel 11 und/oder anderen Beispielen hierin umfassen, wobei die Posenschätzungsschaltungsanordnung einen Prozessor und ein Detektions- und Entfernungsmessungsdatenumwandlungsprogramm, das von dem Prozessor betrieben wird, um die Detektions- und Entfernungsmessungsdaten in eine Punktewolke umzuwandeln, umfasst.
  • Beispiel 13 kann die Vorrichtung von Beispiel 12 und/oder anderen Beispielen hierin umfassen, wobei die Posenschätzungsschaltungsanordnung einen Hardwarebeschleuniger zum Bestimmen der aktuellen Pose durch Abgleichen der Punktewolke mit einer Referenzkarte umfasst.
  • Beispiel 14 kann die Vorrichtung von Beispiel 13 und/oder anderen Beispielen hierin umfassen, wobei der Hardwarebeschleuniger ein FPGA umfasst.
  • Beispiel 15 kann die Vorrichtung von einem der Beispiele 1 - 6 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein Roboter ist.
  • Beispiel 16 kann die Vorrichtung von einem der Beispiele 1 - 6 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein autonomes selbstfahrendes Kraftfahrzeug ist.
  • Beispiel 17 kann die Vorrichtung von einem der Beispiele 1 - 6 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein unbemanntes Fluggerät (UAV) ist.
  • Beispiel 18 kann ein Verfahren, das von einer Computervorrichtung auf einer mobilen autonomen Vorrichtung zur Bestimmung einer aktuellen Pose der mobilen autonomen Vorrichtung durchzuführen ist, umfassen, das Folgendes umfasst: Empfangen durch die Computervorrichtung von Detektions- und Entfernungsmessungsdaten, die von einem LIDAR-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt; und Bestimmen und Bereitstellen durch die Computervorrichtung einer aktuellen Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt.
  • Beispiel 19 kann das Verfahren von Beispiel 18 und/oder anderen Beispielen hierin umfassen, wobei jede Datenmenge d Grad abdeckt, wobei D durch d teilbar ist und wobei T durch t teilbar ist.
  • Beispiel 20 kann das Verfahren von Beispiel 18 und/oder anderen Beispielen hierin umfassen, wobei D 360 Grad entspricht und d 90 Grad ist.
  • Beispiel 21 kann das Verfahren von einem der Beispiele 18 - 20 und/oder anderen Beispielen hierin umfassen, ferner umfassend das Speichern durch die Computervorrichtung von Detektions- und Entfernungsmessungsdaten von mindestens einer Abtastung in einem Puffer.
  • Beispiel 22 kann das Verfahren von Beispiel 21 und/oder anderen Beispielen hierin umfassen, ferner umfassend das Zugreifen durch die Computervorrichtung auf den Puffer für Detektions- und Entfernungsmessungsdaten einer Abtastung in jedem Zeitraum t.
  • Beispiel 23 kann das Verfahren von Beispiel 18 und/oder anderen Beispielen hierin umfassen, wobei das Bestimmen und Bereitstellen einer aktuellen Pose das Umwandeln durch die Computervorrichtung der Detektions- und Entfernungsmessungsdaten in eine Punktewolke und Bestimmen der aktuellen Pose durch Abgleichen der Punktewolke mit einer Referenzkarte umfasst.
  • Beispiel 24 kann das Verfahren von Beispiel 23 und/oder anderen Beispielen hierin umfassen, wobei die Computervorrichtung einen Hardwarebeschleuniger umfasst, und wobei das Bestimmen der aktuellen Pose das Abgleichen durch den Hardwarebeschleuniger der Punktewolke mit einer Referenzkarte umfasst.
  • Beispiel 25 kann das Verfahren von einem der Beispiele 18 - 20 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein Roboter ist.
  • Beispiel 26 kann das Verfahren von einem der Beispiele 18 - 20 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein autonomes selbstfahrendes Kraftfahrzeug ist.
  • Beispiel 27 kann das Verfahren von einem der Beispiele 18 - 20 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein unbemanntes Fluggerät (UAV) ist.
  • Beispiel 28 kann das Verfahren von einem der Beispiele 18 - 20 und/oder anderen Beispielen hierin umfassen, wobei der LIDAR-Sensor ein Synchronisierungssignal ausgibt, um anzuzeigen, wann er tatsächlich eine Abtastung abschließt, und wobei die Computervorrichtung eine aktuelle Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig von dem Synchronisierungssignal bestimmt und bereitstellt.
  • Beispiel 29 kann das Verfahren von Beispiel 24 und/oder anderen Beispielen hierin umfassen, wobei der Hardwarebeschleuniger ein FPGA umfasst.
  • Beispiel 30 kann ein oder mehrere nichtflüchtige computerlesbare Speichermedien umfassen, die mehrere Befehle umfassen, die als Reaktion darauf, dass sie ausgeführt werden, bewirken, dass eine Computervorrichtung Folgendes durchführt: Empfangen durch die Computervorrichtung von Detektions- und Entfernungsmessungsdaten, die von einem LIDAR-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt; und Bestimmen und Bereitstellen durch die Computervorrichtung einer aktuellen Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt.
  • Beispiel 31 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von Beispiel 30 und/oder anderen Beispielen hierin umfassen, wobei jede Datenmenge d Grad abdeckt, wobei D durch d teilbar ist und wobei T durch t teilbar ist.
  • Beispiel 32 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von Beispiel 30 und/oder anderen Beispielen hierin umfassen, wobei D 360 Grad entspricht und d 90 Grad ist.
  • Beispiel 33 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von einem der Beispiele 30 - 32 und/oder anderen Beispielen hierin umfassen, ferner umfassend das Speichern durch die Computervorrichtung von Detektions- und Entfernungsmessungsdaten von mindestens einer Abtastung in einem Puffer.
  • Beispiel 34 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von Beispiel 33 und/oder anderen Beispielen hierin umfassen, ferner umfassend das Zugreifen durch die Computervorrichtung auf den Puffer für Detektions- und Entfernungsmessungsdaten einer Abtastung in jedem Zeitraum t.
  • Beispiel 35 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von Beispiel 30 und/oder anderen Beispielen hierin umfassen, wobei das Bestimmen und Bereitstellen einer aktuellen Pose das Umwandeln durch die Computervorrichtung der Detektions- und Entfernungsmessungsdaten in eine Punktewolke und Bestimmen der aktuellen Pose durch Abgleichen der Punktewolke mit einer Referenzkarte umfasst.
  • Beispiel 36 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von Beispiel 35 und/oder anderen Beispielen hierin umfassen, wobei die Computervorrichtung einen Hardwarebeschleuniger umfasst, und wobei das Bestimmen der aktuellen Pose das Abgleichen durch den Hardwarebeschleuniger der Punktewolke mit einer Referenzkarte umfasst.
  • Beispiel 37 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von Beispiel 36 und/oder anderen Beispielen hierin umfassen, wobei der Hardwarebeschleuniger ein FPGA umfasst.
  • Beispiel 38 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von einem der Beispiele 30 - 32 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein Roboter ist.
  • Beispiel 39 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von einem der Beispiele 30 - 32 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein autonomes selbstfahrendes Kraftfahrzeug ist.
  • Beispiel 40 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von einem der Beispiele 30 - 32 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein unbemanntes Fluggerät (UAV) ist.
  • Beispiel 41 kann das eine oder die mehreren nichtflüchtigen computerlesbaren Speichermedien von einem der Beispiele 30 - 32 und/oder anderen Beispielen hierin umfassen, wobei der LIDAR-Sensor ein Synchronisierungssignal ausgibt, um anzuzeigen, wann er tatsächlich eine Abtastung abschließt, und wobei die Computervorrichtung eine aktuelle Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig von dem Synchronisierungssignal bestimmt und bereitstellt.
  • Beispiel 42 kann eine Vorrichtung zur Berechnung aufweisen, die in einer mobilen autonomen Vorrichtung angeordnet ist, die Folgendes umfasst: Mittel zum Empfangen von Detektions- und Entfernungsmessungsdaten, die von einem LIDAR-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt; und Mittel zum Bestimmen und Bereitstellen einer aktuellen Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt.
  • Beispiel 43 kann die Vorrichtung zur Berechnung von Beispiel 41 und/oder anderen Beispielen hierin umfassen, wobei jede Datenmenge d Grad abdeckt und wobei D durch d teilbar ist.
  • Beispiel 44 kann die Vorrichtung zur Berechnung von Beispiel 42 und/oder anderen Beispielen hierin umfassen, wobei D 360 Grad entspricht.
  • Beispiel 45 kann die Vorrichtung zur Berechnung von Beispiel 43 und/oder anderen Beispielen hierin umfassen, wobei T durch t teilbar ist.
  • Beispiel 46 kann die Vorrichtung zur Berechnung von Beispiel 44 und/oder anderen Beispielen hierin umfassen, wobei d 1 Grad ist und t ¼ von T ist.
  • Beispiel 47 kann die Vorrichtung zur Berechnung von Beispiel 44 und/oder anderen Beispielen hierin umfassen, wobei d 1 Grad ist und t 1/360-stel von T ist.
  • Beispiel 48 kann die Vorrichtung zur Berechnung von einem der Beispiele 42 - 48 und/oder anderen Beispielen hierin umfassen, ferner umfassend Speichermittel zum Aufnehmen von Detektions- und Entfernungsmessungsdaten von mindestens einer Abtastung.
  • Beispiel 49 kann die Vorrichtung zur Berechnung von Beispiel 48 und/oder anderen Beispielen hierin umfassen, wobei die Mittel zum Bestimmen und Bereitstellen auf die Speichermittel für Detektions- und Entfernungsmessungsdaten einer Abtastung in jedem Zeitraum t zugreifen werden.
  • Beispiel 50 kann die Vorrichtung zur Berechnung von Beispiel 49 und/oder anderen Beispielen hierin umfassen, ferner umfassend Mittel zum Zugreifen, um auf die Speichermittel zuzugreifen und Detektions- und Entfernungsmessungsdaten einer Abtastung den Mitteln zum Bestimmen und Bereitstellen in jedem Zeitraum t bereitzustellen.
  • Beispiel 51 kann die Vorrichtung zur Berechnung von Beispiel 50 und/oder anderen Beispielen hierin umfassen, wobei der LIDAR-Sensor ein Synchronisierungssignal ausgibt, um anzuzeigen, wann er tatsächlich eine Abtastung abschließt, und wobei die Mittel zum Zugreifen die Detektions- und Entfernungsmessungsdaten einer Abtastung den Mitteln zum Bestimmen und Bereitstellen in jedem Zeitraum t unabhängig von dem Synchronisierungssignal bereitstellen.
  • Beispiel 52 kann die Vorrichtung zur Berechnung von Beispiel 42 und/oder anderen Beispielen hierin umfassen, wobei zum Bestimmen und Bereitstellen einer aktuellen Pose die Mittel zum Bestimmen und Bereitstellen die Detektions- und Entfernungsmessungsdaten in eine Punktewolke umwandeln und die aktuelle Pose durch Abgleichen der Punktewolke mit einer Referenzkarte bestimmen.
  • Beispiel 53 kann die Vorrichtung zur Berechnung von Beispiel 42 und/oder anderen Beispielen hierin umfassen, wobei die Mittel zum Bestimmen und Bereitstellen Verarbeitungsmittel und ein Detektions- und Entfernungsmessungsdatenumwandlungsprogramm, das von den Verarbeitungsmitteln betrieben wird, um die Detektions- und Entfernungsmessungsdaten in eine Punktewolke umzuwandeln, umfassen.
  • Beispiel 54 kann die Vorrichtung zur Berechnung von Beispiel 53 und/oder anderen Beispielen hierin umfassen, wobei die Mittel zum Bestimmen und Bereitstellen Hardwarebeschleunigungsmittel zum Bestimmen der aktuellen Pose durch Abgleichen der Punktewolke mit einer Referenzkarte umfassen.
  • Beispiel 55 kann die Vorrichtung zur Berechnung von Beispiel 54 und/oder anderen Beispielen hierin umfassen, wobei die Hardwarebeschleunigungsmittel ein FPGA umfassen.
  • Beispiel 56 kann die Vorrichtung zur Berechnung von einem der Beispiele 42 - 47 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein Roboter ist.
  • Beispiel 57 kann die Vorrichtung zur Berechnung von einem der Beispiele 42 - 47 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein autonomes selbstfahrendes Kraftfahrzeug ist.
  • Beispiel 58 kann die Vorrichtung zur Berechnung von einem der Beispiele 42 - 47 und/oder anderen Beispielen hierin umfassen, wobei die mobile autonome Vorrichtung ein unbemanntes Fluggerät (UAV) ist.

Claims (25)

  1. Vorrichtung zur Bestimmung einer aktuellen Pose einer mobilen autonomen Vorrichtung, umfassend: eine Schnittstellenschaltungsanordnung zum Empfangen von Detektions- und Entfernungsmessungsdaten, die von einem LIDAR(Light Detection and Ranging)-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt; und eine Posenschätzungsschaltungsanordnung, die mit der Schnittstellenschaltungsanordnung gekoppelt ist, um eine aktuelle Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt, zu bestimmen und bereitzustellen, wobei die Vorrichtung auf der mobilen autonomen Vorrichtung angeordnet ist.
  2. Vorrichtung nach Anspruch 1, wobei jede Datenmenge d Grad abdeckt und wobei D durch d teilbar ist.
  3. Vorrichtung nach Anspruch 1, wobei D 360 Grad entspricht.
  4. Vorrichtung nach Anspruch 1, wobei T durch t teilbar ist.
  5. Vorrichtung nach Anspruch 3, wobei d 90 Grad ist und t ¼ von T ist.
  6. Vorrichtung nach Anspruch 3, wobei d 1 Grad ist und t 1/360-stel von T ist.
  7. Vorrichtung nach einem der Ansprüche 1-6, ferner umfassend einen Puffer zum Aufnehmen von Detektions- und Entfernungsmessungsdaten von mindestens einer Abtastung.
  8. Vorrichtung nach Anspruch 7, wobei die Posenschätzungsschaltungsanordnung auf den Puffer für Detektions- und Entfernungsmessungsdaten einer Abtastung in jedem Zeitraum t zugreifen wird.
  9. Vorrichtung nach Anspruch 8, ferner umfassend einen Treiber zum Zugreifen auf den Puffer und Bereitstellen von Detektions- und Entfernungsmessungsdaten einer Abtastung an die Posenschätzungsschaltungsanordnung in jedem Zeitraum t.
  10. Vorrichtung nach Anspruch 9, wobei der LIDAR-Sensor ein Synchronisierungssignal ausgibt, um anzuzeigen, wann er tatsächlich eine Abtastung abschließt, und wobei der Treiber die Detektions- und Entfernungsmessungsdaten einer Abtastung an die Posenschätzungsschaltungsanordnung in jedem Zeitraum t unabhängig von dem Synchronisierungssignal bereitstellt.
  11. Vorrichtung nach Anspruch 1, wobei zum Bestimmen und Bereitstellen einer aktuellen Pose die Posenschätzungsschaltungsanordnung die Detektions- und Entfernungsmessungsdaten in eine Punktewolke umwandelt und die aktuelle Pose durch Abgleichen der Punktewolke mit einer Referenzkarte bestimmt.
  12. Vorrichtung nach Anspruch 11, wobei die Posenschätzungsschaltungsanordnung einen Prozessor und ein Detektions- und Entfernungsmessungsdatenumwandlungsprogramm, das von dem Prozessor betrieben wird, um die Detektions- und Entfernungsmessungsdaten in eine Punktewolke umzuwandeln, umfasst.
  13. Vorrichtung nach Anspruch 12, wobei die Posenschätzungsschaltungsanordnung einen Hardwarebeschleuniger zum Bestimmen der aktuellen Pose durch Abgleichen der Punktewolke mit einer Referenzkarte umfasst.
  14. Vorrichtung nach Anspruch 13, wobei der Hardwarebeschleuniger ein FPGA umfasst.
  15. Vorrichtung nach Anspruch 1, wobei die mobile autonome Vorrichtung ein Roboter ist.
  16. Vorrichtung nach Anspruch 1, wobei die mobile autonome Vorrichtung ein autonomes selbstfahrendes Kraftfahrzeug ist.
  17. Vorrichtung nach Anspruch 1, wobei die mobile autonome Vorrichtung ein unbemanntes Fluggerät (UAV) ist.
  18. Verfahren, das von einer Computervorrichtung auf einer mobilen autonomen Vorrichtung durchzuführen ist, zur Bestimmung einer aktuellen Pose der mobilen autonomen Vorrichtung, umfassend: Empfangen durch die Computervorrichtung von Detektions- und Entfernungsmessungsdaten, die von einem LIDAR(Light Detection and Ranging)-Sensor ausgegeben werden, der D Grad von Detektions- und Entfernungsmessungsdaten in einer kontinuierlichen Vielzahl von Quanten, die jeweils einen Teil der D-Grad-Abtastung abdecken, in jedem Zeitraum T nominell abtastet und bereitstellt; und Bestimmen und Bereitstellen durch die Computervorrichtung einer aktuellen Pose der mobilen autonomen Vorrichtung in jedem Teilzeitraum t unabhängig davon, wann der LIDAR-Sensor tatsächlich jede Abtastung abschließt.
  19. Verfahren nach Anspruch 18, wobei jede Datenmenge d Grad abdeckt, wobei D durch d teilbar ist und wobei T durch t teilbar ist.
  20. Verfahren nach Anspruch 18, wobei D 360 Grad entspricht und d 90 Grad ist.
  21. Verfahren nach einem der Ansprüche 18-20, ferner umfassend das Speichern durch die Computervorrichtung von Detektions- und Entfernungsmessungsdaten von mindestens einer Abtastung in einem Puffer und Zugreifen durch die Computervorrichtung auf den Puffer für Detektions- und Entfernungsmessungsdaten einer Abtastung in jedem Zeitraum t.
  22. Verfahren nach Anspruch 21, wobei das Bestimmen und Bereitstellen einer aktuellen Pose das Umwandeln durch die Computervorrichtung der Detektions- und Entfernungsmessungsdaten in eine Punktewolke und Bestimmen der aktuellen Pose durch Abgleichen der Punktewolke mit einer Referenzkarte umfasst.
  23. Verfahren nach Anspruch 22, wobei die Computervorrichtung einen Hardwarebeschleuniger umfasst, und wobei das Bestimmen der aktuellen Pose das Abgleichen durch den Hardwarebeschleuniger der Punktewolke mit einer Referenzkarte umfasst.
  24. Vorrichtung nach Anspruch 22, wobei die mobile autonome Vorrichtung mindestens eines von einem Roboter, einem autonomen selbstfahrenden Kraftfahrzeug oder einem unbemannten Fluggerät (UAV) ist.
  25. Nichtflüchtiges computerlesbares Speichermedium oder nichtflüchtige computerlesbare Speichermedien, umfassend eine Vielzahl von Befehlen, die als Reaktion darauf, dass sie ausgeführt werden, bewirken, dass eine Computervorrichtung das Verfahren nach einem der Ansprüche 18-24 durchführt.
DE112017007967.5T 2017-08-28 2017-08-28 Posenschätzung für mobile autonome vorrichtung in teilzeiträumen einer vollständigen sensorabtastung Pending DE112017007967T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/099231 WO2019041081A1 (en) 2017-08-28 2017-08-28 INSTALLATION ESTIMATE FOR MOBILE AUTONOMOUS APPARATUS AT FRACTIONAL TIME PERIODS OF COMPLETE SENSOR SCAN

Publications (1)

Publication Number Publication Date
DE112017007967T5 true DE112017007967T5 (de) 2020-06-10

Family

ID=65524624

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017007967.5T Pending DE112017007967T5 (de) 2017-08-28 2017-08-28 Posenschätzung für mobile autonome vorrichtung in teilzeiträumen einer vollständigen sensorabtastung

Country Status (4)

Country Link
US (1) US11650058B2 (de)
CN (1) CN111033174A (de)
DE (1) DE112017007967T5 (de)
WO (1) WO2019041081A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297224A (zh) * 2019-08-01 2019-10-01 深圳前海达闼云端智能科技有限公司 激光雷达的定位方法、装置、机器人及计算设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI356357B (en) * 2007-12-24 2012-01-11 Univ Nat Chiao Tung A method for estimating a body pose
US8831290B2 (en) 2012-08-01 2014-09-09 Mitsubishi Electric Research Laboratories, Inc. Method and system for determining poses of vehicle-mounted cameras for in-road obstacle detection
US9989969B2 (en) * 2015-01-19 2018-06-05 The Regents Of The University Of Michigan Visual localization within LIDAR maps
CN106500699B (zh) * 2016-05-25 2019-06-18 上海铸天智能科技有限公司 一种适用于无人机室内自主降落的位姿估计方法
CN110402399B (zh) * 2017-01-03 2023-07-18 应诺维思科技有限公司 用于检测和分类物体的激光雷达系统和方法
US11294397B2 (en) * 2017-02-24 2022-04-05 Teledyne Fur Detection, Inc. Control systems for unmanned aerial vehicles
CN110537109B (zh) * 2017-04-28 2024-02-20 深圳市大疆创新科技有限公司 用于自主驾驶的感测组件
US9950685B1 (en) * 2017-07-27 2018-04-24 Feniex Industries, Inc. 360 degree intrusion detection and warning system
US10551850B2 (en) * 2018-01-03 2020-02-04 Uatc, Llc Low quality pose
CN115023627A (zh) * 2019-12-04 2022-09-06 伟摩有限责任公司 用于将世界点投影到滚动快门图像的高效算法

Also Published As

Publication number Publication date
US20200217962A1 (en) 2020-07-09
US11650058B2 (en) 2023-05-16
WO2019041081A1 (en) 2019-03-07
CN111033174A (zh) 2020-04-17

Similar Documents

Publication Publication Date Title
US20210279444A1 (en) Systems and methods for depth map sampling
DE102018101220A1 (de) Zeichenerkennung für autonome fahrzeuge
EP3538967B1 (de) Verfahren und vorrichtung zum betrieb eines sich selbsttätig fortbewegenden roboters
DE102020118187A1 (de) System und Verfahren zum Kalibrieren einer Lenkradneutralstellung
WO2018134398A1 (de) Verfahren zum test einer steuergerätefunktion eines steuergeräts eines fahrzeugs
EP3824247A1 (de) Verfahren und system zum bestimmen einer position eines fahrzeugs
DE102018120405A1 (de) Fusion von radar- und bildsensorsystemen
US11276243B2 (en) Traffic simulation method, device and storage medium
DE102020113848A1 (de) Ekzentrizitätsbildfusion
DE112020003085T5 (de) System, Verfahren und Vorrichtung zur Kennzeichnung von Daten in aufeinanderfolgenden Rahmen
DE112019004488B4 (de) Doppelmodus-Datenerfassungssystem zur Kollisionserfassung und Objektdimensionierung und Verfahren zur Doppelmodus-Datenerfassung
DE112022000949T5 (de) Laserpunktwolkenbasierte Straßenranderkennung
DE102020128307A1 (de) Kooperatives abbilden für autonome fahrzeuge, roboter oder multiagentensysteme
DE112015002191T5 (de) Erfassungsanwendung für optischen Datenstrom in landwirtschaftlichen Fahrzeugen
DE102020105619A1 (de) System und verfahren zur bestimmung der fahrzeugposition
DE102019114371A1 (de) Online-diagnostik und prognostik für ein wahrnehmungssystem eines fahrzeugs
DE102021114078A1 (de) Detektieren dreidimensionaler Strukturmodelle zur Laufzeit in Fahrzeugen
DE102020100230A1 (de) Rekonstruktion von landmarkenpositionen in autonomen maschinenanwendungen
DE112017007967T5 (de) Posenschätzung für mobile autonome vorrichtung in teilzeiträumen einer vollständigen sensorabtastung
EP3637311A1 (de) Vorrichtung und verfahren zum ermitteln von höheninformationen eines objekts in einer umgebung eines fahrzeugs
EP3663881B1 (de) Verfahren zur steuerung eines autonomen fahrzeugs auf der grundlage von geschätzten bewegungsvektoren
DE102019201914A1 (de) Trajektoriebestimmung für Landmaschinen unter Verwendung von Rasterkarten
DE102021203588A1 (de) Verfahren und Steuergerät zum Schätzen eines Verhaltens eines Systems
DE112020002578T5 (de) Verfahren, System und Vorrichtung zur dynamischen Aufgabensequenzierung
DE2841748C1 (de) Suchkopf, insbesondere zur automatischen Zielverfolgung