DE102020211472A1 - System und verfahren zur verbesserung eines nicht inertialen tracking-systems mit inertialen beschränkungen - Google Patents

System und verfahren zur verbesserung eines nicht inertialen tracking-systems mit inertialen beschränkungen Download PDF

Info

Publication number
DE102020211472A1
DE102020211472A1 DE102020211472.2A DE102020211472A DE102020211472A1 DE 102020211472 A1 DE102020211472 A1 DE 102020211472A1 DE 102020211472 A DE102020211472 A DE 102020211472A DE 102020211472 A1 DE102020211472 A1 DE 102020211472A1
Authority
DE
Germany
Prior art keywords
imu
sensor
tracking
time
exteroceptive
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
DE102020211472.2A
Other languages
English (en)
Inventor
Liu Ren
Mao Ye
Benzun Pious Wisely Babu
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of DE102020211472A1 publication Critical patent/DE102020211472A1/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/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1652Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with ranging devices, e.g. LIDAR or RADAR
    • 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/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • 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/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • 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/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • 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/66Tracking systems using electromagnetic waves other than radio waves
    • 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/86Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Navigation (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

Ein System und ein Verfahren zum Erzeugen eines Tracking-Zustands für eine Vorrichtung beinhaltet Synchronisieren von Messdaten von exterozeptiven Sensoren und einer inertialen Messeinheit (IMU). Eine Verarbeitungseinheit ist programmiert, eines der Messsignale um einen Zeitversatz zu versetzen, der einen Gesamtfehler zwischen einer Rotationsänderung der Vorrichtung, die durch die exterozeptiven Sensordaten über ein durch eine Abtastrate des exterozeptiven Sensors definiertes Zeitintervall vorhergesagt wird, und einer Rotationsänderung der Vorrichtung, die durch die IMU-Sensordaten über das Zeitintervall vorhergesagt wird, minimiert.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Anmeldung betrifft allgemein ein System zur Verbesserung eines nicht inertialen Tracking-Systems mit inertialen Messungen.
  • HINTERGRUND
  • Räumliche Lokalisierung wird in Robotik und erweiterter Realität zum Tracking (Verfolgen) einer Eigenbewegung der Vorrichtung verwendet. In erweiterter Realität ermöglicht ein genaues Tracking eine realistische Erweiterung eines virtuellen Inhalts, während sich der Benutzer durch die Umgebung bewegt. Gleichermaßen ermöglicht das Tracking in Robotik die Fähigkeit, die räumliche Beziehung zwischen dem Roboter und der Umgebung zu schlussfolgern und somit Interaktionen zu ermöglichen. Das Tracking-System bildet einen integralen Teil von Vorrichtungen mit erweiterter Realität (AR) und virtueller Realität (VR), wie etwa Hololens, Magic Leap, Occulus Rift, HTC Vive usw., sowie Robotiksystemen wie etwa Roomba, Pepper usw.
  • Tracking-Systeme setzen verschiedene Sensoren ein, um Beobachtungen der Umgebung vorzunehmen und über die Position und Orientierung (Zustände) der Vorrichtung zu schlussfolgern. Die zum Tracking verwendeten Sensoren können allgemein als exterozeptiv oder propriozeptiv klassifiziert werden. Exterozeptive Sensoren, wie etwa Kameras, LIDAR (Laserbildgebung, -detektion und -entferungsmessungssensor) und Sonar, ermöglichen eine Beobachtung einer Bewegung basierend auf Messungen von der externen Welt. Propriozeptive Sensoren, wie etwa eine inertiale Messeinheit (IMU) und ein Hodometer, ermöglichen eine Beobachtung der Bewegung basierend auf für das System oder die Vorrichtung internen Messungen. In den letzten Jahren hat „Inside-Out-Tracking“ an Beliebtheit gewonnen, das ohne irgendwelche Sensoren extern zu der Vorrichtung durchgeführt wird. Die Auswahl des exterozeptiven Sensors basiert hauptsächlich auf der Umgebung und Anwendungsverwendungsfällen, während der am häufigsten verwendete propriozeptive Sensor die IMU ist.
  • KURZFASSUNG
  • Ein steuerungsbasiertes Verfahren zum Verfolgen von Position und Orientierung einer Vorrichtung beinhaltet Vorhersagen eines ersten Tracking-Zustands der Vorrichtung unter Verwendung von Messungen von einem exterozeptiven Sensor (ES), die mit einer ersten Rate abgetastet werden, und Erzeugen eines zweiten Tracking-Zustands der Vorrichtung unter Verwendung von Messungen von einer inertialen Messeinheit (IMU), die mit einer zweiten Rate abgetastet werden, die asynchron zu der ersten Rate ist. Das Verfahren beinhaltet ferner Synchronisieren des ersten und zweiten Tracking-Zustands zu einem gemeinsamen Zeitbereich durch Schätzen eines Zeitversatzes, der einen Fehler zwischen Änderungen im Laufe der Zeit zwischen dem ersten und zweiten Tracking-Zustand minimiert, sodass eine erste Zeitreihe, die mit dem ersten Tracking-Zustand assoziiert ist, und eine zweite Zeitreihe, die mit dem zweiten Tracking-Zustand assoziiert ist, zeitlich ausgerichtet sind. Das Verfahren beinhaltet ferner Ausrichten des ersten Tracking-Zustands und des zweiten Tracking-Zustands zu einem inertialen Referenzrahmen und Erzeugen eines inertialgestützten Tracking-Zustands durch Minimieren einer Kostenfunktion, die einen ersten Residuum-Term, der aus dem Propagieren einer vorherigen Zustandsschätzung unter Verwendung des zweiten Tracking-Zustands, verschoben um den Zeitversatz, abgeleitet wird, und einen zweiten Residuum-Term, der vom ersten Tracking-Zustand abgeleitet wird, beinhaltet.
  • Das Verfahren kann ferner Vorhersagen des ersten Tracking-Zustands durch Suchen nach einer Zustandsschätzung, die einen Messfehler bezüglich eines Satzes von Beobachtungen minimiert, beinhalten, wobei für den ES spezifische Bewegungszustände in einem lokalen Koordinatenrahmen liegen. Das Verfahren kann ferner Erzeugen einer Transformation beinhalten, um den lokalen Koordinatenrahmen unter Verwendung eines Schwerkraftvektors von der IMU mit einem Inertial-Referenzrahmen auszurichten. Das Verfahren kann ferner Vorhersagen einer ersten Orientierungsänderung basierend auf einer Differenz zwischen jüngsten Vorhersagen des ersten Tracking-Zustands über ein Zeitintervall, das durch die erste Rate definiert wird, und Vorhersagen einer zweiten Orientierungsänderung basierend auf dem zweiten Tracking-Zustand über das Zeitintervall beinhalten. Das Verfahren kann ferner Vorhersagen der zweiten Orientierungsänderung durch Integrieren von Abtastungen des zweiten Tracking-Zustands über das Zeitintervall beinhalten. Die zweite Rate kann größer sein als die erste Rate, und eine vorbestimmte Anzahl, basierend auf einem Verhältnis der ersten Rate zur zweiten Rate, von Abtastungen von der IMU kann integriert werden, um die zweite Änderung vorherzusagen. Das Verfahren kann ferner Minimieren des Fehlers unter Verwendung eines Optimierungsalgorithmus beinhalten.
  • Ein Positions- und Orientierungs-Tracking-System für eine Vorrichtung beinhaltet eine Steuerung in Kommunikation mit einem exterozeptiven Sensorkern, die einen exterozeptiven Sensor mit einer ersten Rate abtastet und einen ersten Satz von Messdaten erzeugt, und einer inertialen Messeinheit (IMU), die IMU-Sensoren mit einer zweiten Rate, die asynchron zu der ersten Rate ist, abtastet und einen zweiten Satz von Messdaten erzeugt, programmiert zum Verfolgen einer Bewegung der Vorrichtung gemäß einem Tracking-Zustand, der durch Synchronisieren des ersten und zweiten Satzes von Messdaten zu einem gemeinsamen Zeitbereich abgeleitet wird, wobei der erste und zweite Satz von Messdaten durch Versetzen eines der Sätze um einen Zeitversatz synchronisiert werden, der einen Gesamtfehler zwischen einer Orientierungsänderung der Vorrichtung, die durch den ersten Satz von Messdaten über ein durch die erste Rate definiertes Zeitintervall vorhergesagt wird, und einer Orientierungsänderung der Vorrichtung, die durch den zweiten Satz von Messdaten über das Zeitintervall vorhergesagt wird, minimiert.
  • Der exterozeptive Sensor kann eine Kamera sein. Der Tracking-Zustand kann eine Position der Vorrichtung und/oder eine Geschwindigkeit der Vorrichtung und/oder eine Orientierung der Vorrichtung beinhalten. Die Steuerung kann ferner programmiert sein, den Zeitversatz mit einer Menge an Zeit zu aktualisieren, die eine Distanz zwischen Bewegungszuständen minimiert, die durch ein Modell, das eine Vorrichtungsbewegung basierend auf dem zweiten Satz von Messdaten vorhersagt, und ein Modell, das eine Vorrichtungsbewegung basierend auf dem ersten Satz von Messdaten vorhersagt, die um den Zeitversatz und die Menge an Zeit verschoben sind, geschätzt werden. Die Steuerung kann ferner programmiert sein, einen Aktivitätstyp zu empfangen, der auf IMU-Daten basiert, und den Aktivitätstyp zu dem exterozeptiven Sensorkern zu transferieren. Die Steuerung kann programmiert sein, einen Aktivitätstyp zu empfangen, der auf IMU-Daten basiert, und ein Modell zum Schätzen des Tracking-Zustands basierend auf dem Aktivitätstyp zu ändern. Die Steuerung kann ferner programmiert sein, den Tracking-Zustand durch Minimieren einer Kostenfunktion zu schätzen, die eine Differenz zwischen dem Tracking-Zustand, der durch Propagieren eines vorherigen, aus dem zweiten Satz von Messdaten abgeleiteten Tracking-Zustands geschätzt wird, und dem Tracking-Zustand, der durch das Modell basierend auf dem Aktivitätstyp vorhergesagt wird, beinhaltet. Die Steuerung kann ferner programmiert sein, ein Optimierungsverfahren zum Minimieren des Gesamtfehlers durchzuführen.
  • Eine Einrichtung zum Synchronisieren von Messdaten von einer inertialen Messeinheit (IMU) und einem exterozeptiven Sensor (ES) ohne ein gemeinsames elektrisches Messauslösesignal zwischen diesen beinhaltet eine Steuerung in Kommunikation mit einem exterozeptiven Sensorkern, der dazu ausgelegt ist, einen exterozeptiven Sensor mit einer ersten Rate abzutasten, und einer inertialen Messeinheit (IMU), die dazu ausgelegt ist, IMU-Sensoren mit einer zweiten Rate, die asynchron zu dem exterozeptiven Sensor ist, abzutasten, programmiert zum Vorhersagen einer ersten Orientierungsänderung basierend auf einer Differenz zwischen jüngsten ES-Orientierungsdaten über ein Zeitintervall, das durch die erste Rate definiert wird, Vorhersagen einer zweiten Orientierungsänderung basierend auf IMU-Orientierungsdaten über das Zeitintervall und Versetzen von Messdaten von dem ES um einen Zeitversatz, der einen Fehler zwischen der ersten Änderung und der zweiten Änderung minimiert, sodass eine erste Zeitreihe, die mit der ersten Änderung assoziiert ist, und eine zweite Zeitreihe, die mit der zweiten Änderung assoziiert ist, zeitlich ausgerichtet sind.
  • Die Steuerung kann ferner programmiert sein, den Zeitversatz mit einer Menge an Zeit zu aktualisieren, die eine Distanz zwischen Tracking-Zuständen minimiert, die durch ein Modell, das die Zustände basierend auf den IMU-Daten vorhersagt, und ein Modell, das die Zustände basierend auf exterozeptiven Sensordaten vorhersagt, die um den Zeitversatz verschoben sind, geschätzt werden. Die Steuerung kann ferner programmiert sein, einen Aktivitätstyp zu empfangen, der auf IMU-Daten basiert, und den Aktivitätstyp zu dem exterozeptiven Sensorkern zu transferieren. Die Steuerung kann ferner programmiert sein, eine Integration abgetasteter IMU-Daten über das Zeitintervall zum Vorhersagen der zweiten Rotationsänderung durchzuführen. Die Steuerung kann ferner programmiert sein, einen Tracking-Zustand einer Vorrichtung unter Verwendung des Zeitversatzes zu schätzen, um ein zur Erzeugung des Tracking-Zustands verwendetes Signal zeitlich zu verschieben.
  • Figurenliste
    • 1 stellt eine mögliche Architektur eines Tracking-Systems für eine Vorrichtung dar.
    • 2 stellt ein Blockdiagramm für ein generisches inertialgestütztes Tracking-System dar.
    • 3 stellt ein mögliches Timing-Diagramm zum Abtasten von IMU-Daten und exterozeptiven Sensordaten dar.
    • 4 stellt ein Blockdiagramm zum Schätzen der zeitlichen Ausrichtung zwischen Zuständen, die durch den exterozeptiven Sensor und die IMU geschätzt werden, dar.
    • 5 stellt eine mögliche Beziehung zwischen einem Inertial-Koordinatenrahmen, dem IMU-Koordinatenrahmen und dem Koordinatenrahmen des exterozeptiven Sensors dar.
    • 6 stellt ein Blockdiagramm zum Ausrichten von IMU- und exterozeptiven Sensordaten zu dem Inertial-Koordinatenrahmen dar.
    • 7 stellt ein Diagramm zur Eliminierung von Zuständen dar, die für den exterozeptiven Sensor spezifisch sind, durch Neuparametrisieren von Beschränkungen, sodass diese von einem Verlauf der Stellungsschätzungen abhängen.
    • 8 stellt eine mögliche Systemarchitektur einer mobilen Vorrichtung dar.
    • 9 stellt eine mögliche Systemarchitektur dar, die einen dedizierten IMU-Exterozeptiver-Sensor-Fusionskern verwendet.
    • 10 stellt ein Flussdiagramm für eine mögliche Abfolge von Operationen für ein Positions- und Orientierungs-Tracking-System dar, das Synchronisieren von Messdaten von einer inertialen Messeinheit (IMU) und einem exterozeptiven Sensor (ES) ohne ein gemeinsames elektrisches Messauslösesignal beinhaltet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Offenbarung werden hier beschrieben. Es versteht sich jedoch, dass die offenbarten Ausführungsformen lediglich Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Figuren sind nicht notwendigerweise maßstabsgetreu; manche Merkmale könnten übertrieben oder minimiert sein, um Einzelheiten spezieller Komponenten zu zeigen. Die hier offenbarten speziellen strukturellen und funktionalen Details sind daher nicht als beschränkend aufzufassen, sondern lediglich als eine repräsentative Basis, um einen Fachmann zu lehren, die Ausführungsformen verschiedentlich einzusetzen. Durchschnittsfachleute auf dem Gebiet werden verstehen, dass verschiedene unter Bezugnahme auf irgendeine der Figuren veranschaulichte und beschriebene Merkmale mit in einer oder mehreren anderen Figuren veranschaulichten Merkmalen kombiniert werden können, um Ausführungsformen zu produzieren, die nicht explizit veranschaulicht oder beschrieben sind. Die Kombinationen von veranschaulichten Merkmalen stellen repräsentative Ausführungsformen für typische Anwendungen bereit. Verschiedene Kombinationen und Modifikationen der mit den Lehren dieser Offenbarung konsistenten Merkmale könnten jedoch für spezielle Anwendungen oder Implementierungen erwünscht sein.
  • Hierin ist ein Tracking-System offenbart, das die Position und Orientierung einer Vorrichtung durch Fusionieren von Beobachtungen von einem exterozeptiven Sensor und einer IMU schätzt. Der offenbarte Ansatz trennt die für den exterozeptiven Sensor spezifische Verarbeitung von der IMU-spezifischen Verarbeitung. Dieses Verfahren liefert eine deutliche schnittstellenangetriebene Trennung, die nicht erfordert, dass der Entwickler ein Fachwissen über die IMU besitzt. Um dies zu erreichen, werden eine zeitliche Synchronisation und ein Inertial-Koordinatenausrichtungsalgorithmus eingeführt, die die Ausrichtung von Messungen von der IMU und dem exterozeptiven Sensor ermöglichen. Ein verteilter Zustandsschätzungsansatz wird verwendet, in dem die Eliminierung von für den exterozeptiven Sensor spezifischen Zuständen neu parametrisiert wird, sodass sie vom Verlauf von Positions- und Orientierungsschätzungen abhängt. Das offenbarte System und die offenbarten Verfahren nutzen Schwerkraft, Aktivitätserfassung und Bias-Schätzung, die in modernen Sensorhubs verfügbar sind, um eine robuste Zustandsschätzung bereitzustellen. Schließlich präsentiert der offenbarte Ansatz eine flexible Verteilung der Algorithmusblöcke in verschiedenen Berechnungseinheiten.
  • Die Fusion der exterozeptiven Sensoren mit der IMU ermöglicht ein robustes Tracking hochdynamischer Bewegungen. Eine IMU ist ein propriozeptiver Sensor, der einen oder mehrere Beschleunigungsmesser und ein oder mehrere Gyroskope beinhaltet. Die IMU kann dazu ausgelegt sein, eine oder mehrere Beschleunigungen und eine oder mehrere Rotationsraten eines Körpers entlang einer oder mehreren Achsen oder um diese herum zu messen. Mit der Einführung von mikroelektromechanischen Systemen (MEMS) sind kommerzielle IMUs weniger kostspielig und weitläufig verfügbar geworden.
  • 1 stellt ein Blockdiagramm eines Tracking-Systems 100 dar. Das Tracking-System 100 kann als Teil einer Vorrichtung wie etwa eines Zellulartelefons, Tablets oder Robotiksystems integriert sein. Das Tracking-System 100 kann eine Anwendungsverarbeitungseinheit 102 beinhalten. Die Anwendungsverarbeitungseinheit 102 kann einen Prozessor zum Ausführen von Anweisungen beinhalten. Die Anwendungsverarbeitungseinheit 102 kann einen flüchtigen und nichtflüchtigen Speicher zum Speichern von Programmen/Anwendungen und Daten beinhalten. Die Anwendungsverarbeitungseinheit 102 kann zusätzliche Eingänge und Ausgänge zum Kommunizieren mit externen Vorrichtungen oder Komponenten beinhalten. Die Anwendungsverarbeitungseinheit 102 kann eine Anwendung 110 speichern und ausführen. Die Anwendung 110 kann ein Programm oder eine Abfolge von Anweisungen zum Durchführen eines spezifischen Satzes von Operationen sein. Die Anwendungsverarbeitungseinheit 102 kann ein Computing-System sein, wie etwa eines, das in einem Mobiltelefon oder Tablet enthalten ist. Die Anwendungsverarbeitungseinheit 102 kann eine Steuerung sein, die mit einer mobilen Plattform wie etwa einem Roboter gekoppelt ist.
  • Das Tracking-System 100 kann eine Anzeige 112 beinhalten, die durch die Anwendungsverarbeitungseinheit 102 angesteuert wird. Die Anzeige 112 kann ein Touchscreen oder ein Head-Mounted-Display sein, der/das eine Anzeige und Eingabefähigkeit liefert. Die Anwendungsverarbeitungseinheit 102 kann ein Betriebssystem (OS) 114 implementieren, das dazu ausgelegt ist, Anwendungen zu verwalten, die in die Anwendungsverarbeitungseinheit 102 programmiert sind. Das Betriebssystem 114 kann Merkmale niedriger Ebene der Anwendungsverarbeitungseinheit 102 verwalten und einen Zugriff auf die Merkmale niedriger Ebene für die Anwendung 110 bereitstellen. Die Anwendung 110 kann Anweisungen zum Implementieren eines AR- und/oder VR-Systems beinhalten. Beispielsweise kann die Anwendung 110 dazu ausgelegt sein, virtuelle Objekte auf ein Bild der umliegenden Umgebung zu platzieren. Ferner kann die Anwendung 110 programmiert sein, die virtuellen Objekte innerhalb des Bildes neu zu positionieren, während sich die Position/Orientierung der Vorrichtung oder des Tracking-Systems 100 ändert.
  • Das Tracking-System 100 kann einen exterozeptiven Sensor 104 beinhalten. Der exterozeptive Sensor 104 kann ein GPS(Globales Positionierungssystem)-Sensor, ein LIDAR, eine Kamera und/oder ein Sonar-Sensor sein. Der exterozeptive Sensor 104 kann einen Sensorvorverarbeitungskern zum Verwalten der physischen Erfassungsvorrichtung beinhalten. Der Kern kann einen Prozessor und einen Speicher zum Ausführen von Programmanweisungen und zum Speichern von Daten beinhalten. Der exterozeptive Sensor 104 kann dazu ausgelegt sein, Rohsensordaten zu transferieren. In anderen Beispielen kann der Sensorvorverarbeitungskern, anstatt Rohsensordaten zu transferieren, Beobachtungen vom exterozeptiven Sensor 104 verarbeiten, um der Anwendungsverarbeitungseinheit 102 verarbeitete Eingaben bereitzustellen. Eine solche Verarbeitung kann für die assoziierte exterozeptive Sensortechnologie spezifisch sein. Der Sensorvorverarbeitungskern kann den entsprechenden Sensor mit vorbestimmten Zeitintervallen abtasten.
  • Das Tracking-System 100 kann eine IMU 106 beinhalten. Die IMU 106 kann einen Dreiachsen-Beschleunigungsmesser und ein Dreiachsen-Gyroskop beinhalten. Die IMU 106 kann Beschleunigungs- und Rotationsrateninformationen für jede Achse bereitstellen. Die IMU 106 kann einen IMU-Fusionskern zum Verwalten der Merkmale der IMU 106 beinhalten. Der IMU-Fusionskern kann die Beschleunigungsmesser- und Gyroskopsensoren mit vorbestimmten Zeitintervallen abtasten. Ein Beispiel für einen IMU-Fusionskern ist der Bosch Sensortech BHI160. Beispielhafte Merkmale und Funktionen sind in dem entsprechenden Datenblatt für die Vorrichtung beschrieben, das hiermit durch Bezugnahme aufgenommen wird. In manchen Beispielen kann die IMU 106 mit der Anwendungsverarbeitungseinheit 102 integriert sein (z.B. on-board mit einer Steuerung oder einem Prozessor gelötet). In anderen Beispielen kann die IMU 106 eine externe Vorrichtung sein, die sich in Kommunikation mit der Anwendungsverarbeitungseinheit 102 befindet.
  • Der exterozeptive Sensor 104 und die IMU 106 können mit der Anwendungsverarbeitungseinheit 102 in Kommunikation stehen. Die Anwendungsverarbeitungseinheit 102 kann eine Anwendungsprogrammierschnittstelle (API) 108 implementieren, die dazu ausgelegt ist, die Kommunikation und den Informationsaustausch zwischen den Sensoren (z.B. dem exterozeptiven Sensor 104 und der IMU 106) und der Anwendung zu verwalten. Die API 108 kann eine vorbestimmte Anzahl von Schnittstellen oder Funktionen definieren, die durch die Anwendung 110 zum Austauschen von Daten mit dem exterozeptiven Sensor 104 und der IMU 106 ausgeführt werden können.
  • Bestehende Sensorfusionsansätze sind für einen speziellen exterozeptiven Sensor 104 wie etwa GPS, LIDAR, Kamera und Sonar spezialisiert. Obwohl es möglich ist, Algorithmen von einem exterozeptiven Sensor 104 zu einem anderen zu erweitern, erfordert eine solche Erweiterung intensive Hardwareänderungen, die Fachwissen und eine Neukonfiguration des gesamten Systems für eine geeignete Performanz erfordern. Zusätzlich trennen bestehende Ansätze die für den exterozeptiven Sensor spezifische Verarbeitung nicht von der IMU-spezifischen Verarbeitung. Dies stellt eine Herausforderung für einen Entwickler dar, der nicht mit der IMU vertraut ist, um solche Tracking-Algorithmen einzubeziehen. Der hierin offenbarte inertialgestützte Lokalisierungsalgorithmus arbeitet mit einer Systemarchitektur, die keine Hardwareeinschränkungen auferlegt, wenn sie mit verschiedenen exterozeptiven Sensoren verwendet wird, einschließlich unter anderem einer Kamera, einem LIDAR-Sensor und einem Sonar-Sensor.
  • Eine präzise zeitliche Synchronisation und extrinsische Kalibration zwischen dem exterozeptiven Sensor 104 und der IMU 106 können implementiert werden, um eine robuste Sensorfusion zu erreichen. In manchen Systemen kann der Prozess zum Erhalten einer zeitlichen Synchronisation und extrinsischer Kalibration eng mit der Hardwareimplementierung verknüpft sein. Dies verhindert eine Interoperabilität des Algorithmus von einem System zu einem anderen. Das hierin offenbarte System führt spezifische Softwarefunktionalität ein, die eine zeitliche Synchronisationsfunktion und eine Inertial-Koordinatenausrichtungsfunktion beinhaltet, die den zeitlichen Versatz und die extrinsische Kalibration basierend auf den Messungen von der IMU 106 und dem exterozeptiven Sensor 104 schätzt. Dieser verbesserte Ansatz entfernt die Hardwareanforderungen für die zeitliche Synchronisation, die explizite Auslösesignale erfordern, um die Messungen zu synchronisieren. Zusätzlich entfernt die offenbarte Strategie die Anforderung für eine vorherige extrinsische Kalibration. Der verbesserte Ansatz ermöglicht ferner eine einfachere Integration verschiedener Sensoreinheiten in das System.
  • Die für den exterozeptiven Sensor spezifischen Berechnungen können von den IMU-spezifischen Berechnungen getrennt werden. Diese rechnerische Aufteilung liefert eine deutliche schnittstellenangetriebene Trennung, die nicht erfordert, dass der Entwickler ein Fachwissen über die IMU 106 besitzt. Diese Aufteilung teilt jedoch den Optimierungsprozess in zwei Stufen. In der ersten Stufe kann nur eine für den exterozeptiven Sensor 104 spezifische Optimierung durchgeführt werden. In der zweiten Stufe können die IMU-Informationen mit Ergebnissen von der Optimierung des exterozeptiven Sensors zusammengelegt werden, um ein robustes Tracking zu erreichen. Die Unabhängigkeit der IMU-Optimierungsanforderungen vom exterozeptiven Sensor 104 ermöglicht es dem Entwickler, sich auf Verbesserungen an den für den exterozeptiven Sensor spezifischen Algorithmen zu fokussieren.
  • Der exterozeptive Sensor 104 kann dazu ausgelegt sein, Daten in Abhängigkeit vom Typ des Sensors bereitzustellen. Der exterozeptive Sensor 104 kann einer oder mehrere von verschiedenen Sensortypen sein, wie etwa GPS, LIDAR, Kamera und Sonar. Der Ausgabetyp des exterozeptiven Sensors 104 kann vom Typ der eingesetzten Sensortechnologie abhängen. Beispielsweise kann ein Kamerasystem ein Bild zur Verarbeitung liefern. In anderen Beispielen kann ein Sonar- oder LIDAR-Sensor Informationen über Distanzen zu Objekten an verschiedenen Positionen liefern.
  • 2 stellt ein Blockdiagramm 200 einschließlich eines möglichen Satzes von Verarbeitungsblöcken für einen inertialgestützten Tracking-Algorithmus dar, der als Teil des Tracking-Systems implementiert werden kann. Ein Merkmalsextraktionsblock 204 kann dazu ausgelegt sein, die Beobachtungen vom exterozeptiven Sensor 104 zu verarbeiten, um ausgeprägte Merkmale zu extrahieren, die über der Zeit mit Änderungen der Position und Orientierung erkannt werden können. Der spezielle Merkmalsextraktionsalgorithmus kann von dem speziellen Typ des verwendeten exterozeptiven Sensors 104 abhängen. Beispielsweise kann der Merkmalsextraktionsblock 204 dazu ausgelegt sein, verschiedene Objekte oder Merkmale in einem Sichtfeld einer Kamera zu detektieren. In manchen Konfigurationen kann der Merkmalsextraktionsblock 204 im Sensorvorverarbeitungskern implementiert werden.
  • Ein Merkmalsabgleichblock 206 kann dazu ausgelegt sein, nach Übereinstimmungen zwischen Sensormessungen zu suchen, die zu unterschiedlichen Zeitpunkten erfasst werden, und Korrespondenzen zu erzeugen. Der Merkmalsabgleichblock 206 kann dazu ausgelegt sein, das gleiche Merkmal zu unterschiedlichen Zeitpunkten aus den Beobachtungsdaten zu identifizieren. Merkmalsextraktion und Merkmalsabgleich können durch die Verwendung einer vorhergesagten Bewegung des Systems oder der Vorrichtung verbessert werden. Die vorhergesagte Bewegung kann die Berechnungszeit reduzieren und die Genauigkeit der Funktionen verbessern. Beispielsweise kann eine Kenntnis über die vorhergesagte Bewegung des Systems verwendet werden, um die Positionsbewegung von Merkmalen vorherzusagen, die aus den Beobachtungen identifiziert werden. Der Merkmalsabgleichblock 206 kann darüber informiert werden, wo nach den Merkmalen zu suchen ist, und kann den Suchbereich einengen. In manchen Konfigurationen kann der Merkmalsabgleichblock 206 im Sensorvorverarbeitungskern implementiert werden.
  • Eine Bewegungsvorhersageschnittstelle kann definiert sein, um einen Transfer vorhergesagter Bewegungsparameter zu dem Merkmalsabgleichblock 206 zu erleichtern. Beispielsweise kann die Schnittstelle eine Funktion definieren, die dem Merkmalsabgleichblock 206 ermöglicht, die vorhergesagten Bewegungsparameter anzufordern und zu empfangen. Die vorhergesagten Bewegungsparameter können Vorrichtungsposition, Vorrichtungsorientierung, Geschwindigkeit und Beschleunigungsinformationen beinhalten.
  • Ein Minimal Solver 208, der von den Dimensionen der Messungen vom exterozeptiven Sensor 104 abhängt, kann implementiert werden, um eine anfängliche Zustandsschätzung X E 0 = [ p E 0 , q E 0 ]
    Figure DE102020211472A1_0001
    für die Zustandsschätzung 210 des exterozeptiven Sensors zu bestimmen. Der Minimal Solver 208 kann in der Anwendungsverarbeitungseinheit 102 implementiert werden. Der Minimal Solver 208 kann eine Teilmenge der Beobachtungskorrespondenzen (ZE) verwenden, um (XE 0) zu schätzen. Der Minimal Solver 208 kann numerische Algorithmen implementieren, um die Sensorposition basierend auf mehreren Beobachtungen von Abtastungen, die durch den exterozeptiven Sensor 104 erfasst und bereitgestellt werden, zu schätzen. Der Minimal Solver 208 kann die kleinstmögliche Teilmenge von Beobachtungen verwenden, um eine initiale Schätzung für die Position, die Orientierung und den Zustand des Systems zu erzeugen. Da der Minimal Solver 208 die kleinstmögliche Teilmenge verwendet, kann er in der Lage sein, eine schnelle initiale Schätzung bereitzustellen, die kleine Teilmengengröße kann jedoch zu Fehlern führen. Beispielsweise kann ein PnP(Perspective-n-Point)-Algorithmus verwendet werden, wenn eine Kamera als ein exterozeptiver Sensor 104 verwendet wird. Gleichermaßen können andere geometrische Solver für andere exterozeptive Sensoren verwendet werden. Um die Robustheit des Minimal Solver zu verbessern, kann ein RANSAC (Random Sample Consensus Scheme) implementiert werden. Die Anzahl von Punkten oder Merkmalen, die durch den Minimal Solver 208 verwendet werden, kann von der speziellen implementierten Strategie abhängen. Beispielsweise können Dreipunkt-, Fünfpunkt- und/oder Achtpunkt-Strategien implementiert werden.
  • Ein Exterozeptive-Zustandsschätzung-Block 210 kann die für den exterozeptiven Sensor 104 spezifischen Zustände (XE) in einem lokalen Koordinatenrahmen des exterozeptiven Sensors 104 schätzen. Die Zustandsschätzung kann unter Verwendung eines Filters oder eines Optimierers durchgeführt werden. Beispielsweise können Algorithmen mit erweiterter Kalman-Filterung (oder Variationen davon) und NLSQ(Nonlinear Least Squares Estimation)-Algorithmen genutzt werden. Zustände des exterozeptiven Sensors 104 können eine Position P = { p E i | i=0 : n } ,
    Figure DE102020211472A1_0002
    eine Geschwindigkeit V = { v E i | i=0 : n } ,
    Figure DE102020211472A1_0003
    eine Winkelgeschwindigkeit Ω = { Ω E i | i=0 : n }
    Figure DE102020211472A1_0004
    und eine Orientierung (Quaternion) Q = { q E i | i=0 : n }
    Figure DE102020211472A1_0005
    der Vorrichtung beinhalten. Die Orientierung kann als die Quaternion oder als drei Winkel bezüglich einer Referenz ausgedrückt werden. Die Geschwindigkeit kann als ein Vektor mit einem Betrag und einer Richtung ausgedrückt werden. Zustände können für das System/die Vorrichtung und für in der Umgebung identifizierte Landmarken L identifiziert werden. Das Ziel des Zustandsschätzungsblocks 210 kann darin bestehen, den Messfehler angesichts der Beobachtungen ZE und einer Messungskovarianz λ wie folgt zu minimieren: X E i = argmin X E h ( X E ) Z E λ
    Figure DE102020211472A1_0006
  • Der Merkmalsextraktionsblock 204, der Merkmalsabgleichblock 206, der Minimal-Solver-Block 208 und der Exterozeptive-Zustandsschätzung-Block 210 können als Teil der Verarbeitungsroutinen des exterozeptiven Sensors implementiert werden.
  • Ein Beispiel für einen IMU-Fusionskern ist der Bosch Sensortech BHI160. Die Sensoren der IMU 106 können mit vorbestimmten Intervallen abgetastet werden. Die Sensordaten von der IMU können empfangen und verarbeitet werden. Manche Verarbeitungsoperationen können durch den IMU-Fusionskern durchgeführt werden. Ein Schwerkraftschätzungsblock 224 kann dazu ausgelegt sein, einen Schwerkraftvektor basierend auf Beobachtungen von der IMU 106 zu erzeugen. Der Schwerkraftvektor kann die Orientierung der IMU 106 bezüglich der Schwerkraft definieren.
  • Ein Aktivitätserkennungsblock 226 kann dazu ausgelegt sein, einen Aktivitätstyp hohen Niveaus zu identifizieren. Beispielsweise kann der Aktivitätserkennungsblock 226 einen Bewegungszustand der IMU 106 als stationär, während des Laufens in der Hand befindlich und/oder in einem Fahrzeug befindlich identifizieren. Andere Bewegungszustände können ähnlich definiert werden. Die Aktivität kann durch eine Verarbeitung der Beschleunigungsmesser- und Gyroskopdaten von der IMU 106 erkannt werden. Jeder Aktivitätstyp kann basierend auf entsprechenden Kriterien erfasst werden. Der Aktivitätserkennungsblock 226 kann Geschwindigkeits- und Beschleunigungsdaten verarbeiten, um einen Bewegungszustand zu bestimmen. Beispielsweise kann der Bewegungszustand als Reaktion darauf, dass die Beschleunigung und Geschwindigkeit geringer als entsprechende Schwellen sind, als stationär definiert werden. Als Reaktion darauf, dass die Geschwindigkeit eine Geschwindigkeitsschwelle überschreitet, kann der Bewegungszustand als in einem Fahrzeug befindlich definiert werden. Als Reaktion darauf, dass die Geschwindigkeit innerhalb eines vorbestimmten Bereichs liegt und die Beschleunigung einem vorbestimmten Profil folgt, kann der Bewegungszustand als während des Laufens in der Hand befindlich definiert werden. Die Aktivitätserkennung kann zur Vorhersage der Bewegung verwendet werden.
  • Ein Nullgeschwindigkeit-Bias-Schätzungsblock 228 kann dazu ausgelegt sein, einen mit der IMU 106 assoziierten Bias oder Offset zu schätzen. Es kann nützlich sein, den Offset oder Bias der Sensoren (z. B. Beschleunigungsmesser und Gyroskope) während stationärer Bedingungen zu kennen. Aufgrund von Rauschen und/oder Produktionstoleranzen kann ein Sensor einen Wert ungleich null ausgeben, wenn die Ausgabe null sein sollte. Wenn der Sensor stationär ist, kann beispielsweise eine Beschleunigung und/oder ein Winkelratenwert als ein Wert ungleich null gemessen werden, während der erwartete Wert null sein sollte. Der Bias- oder Offsetwert kann geschätzt und von den gemessenen Werten abgezogen werden, um Messfehler zu reduzieren. Die Bias- oder Offsetwerte können berechnet und in einem nichtflüchtigen Speicher zur späteren Verwendung gespeichert werden.
  • Der Schwerkraftschätzungsblock 224, der Aktivitätserkennungsblock 226 und die Nullgeschwindigkeit-Bias-Schätzung 228 können in einem IMU-Sensorhub implementiert werden. Das Folgende beschreibt das Fusionieren der exterozeptiven Sensormessungen und der IMU-Sensormessungen, um die Gesamtperformanz des Systems zu verbessern.
  • Der exterozeptive Sensor 104 und die IMU 106 können separat ähnliche Vorrichtungsbewegungsparameter messen (z. B. Position, Orientierung, Geschwindigkeit, Bewegungsrichtung). Aufgrund von Abtastungsdifferenzen sind die Bewegungsparameter jedoch möglicherweise nicht zeitlich ausgerichtet. Um ein verbessertes Tracking zu erhalten, können die Messungen zu einer gemeinsamen Taktdomäne synchronisiert werden. Ein Zeitliche-Synchronisation-Block 212 kann implementiert werden, um die IMU-Sensormessungen und die exterozeptiven Sensormessungen zu synchronisieren. Ohne ein gemeinsames Hardwareauslösesignal werden die IMU 106 und der exterozeptive Sensor 104 Messungen möglicherweise nicht zu der gleichen Zeit auslösen. Der Zeitliche-Synchronisation-Block 212 kann dazu ausgelegt sein, den Zeitversatz zwischen Messungen von der IMU 106 und dem exterozeptiven Sensor 104 zu bestimmen. Der geschätzte Zeitversatz kann dann verwendet werden, um die Messungen von der IMU 106 oder dem exterozeptiven Sensor 104 zeitlich zu verschieben, sodass die Messungen genutzt werden können, als ob sie zur gleichen Zeit abgetastet werden. Die Zustandsmessungen X E = { X E i | i=0 : n }
    Figure DE102020211472A1_0007
    des exterozeptiven Sensors können mit einem Zeitstempel T E = { t Ei | i=0 : N }
    Figure DE102020211472A1_0008
    erhalten werden, während die IMU-Messungen Zi = {zj|j = 0:M} mit einem IMU-Zeitstempel T I = { t Ij | j=0 : M }
    Figure DE102020211472A1_0009
    erhalten werden.
  • Der exterozeptive Sensor 104 und der IMU-Sensor 106 können zu unterschiedlichen Zeiten und mit unterschiedlichen Raten abgetastet werden. Das Kombinieren der exterozeptiven Sensormessungen und der IMU-Sensormessungen ohne Berücksichtigung der Zeitdifferenz kann zu Ungenauigkeiten bei der Zustandsschätzung führen. Um die exterozeptiven Sensormessungen mit den IMU-Sensormessungen zu fusionieren, können alle Messungen zeitlich zu einer einzigen Taktdomäne verschoben werden. Manche Systemdesigns können explizite Auslösesignale oder gemeinsam genutzte Takte zwischen dem exterozeptiven Sensor 104 und der IMU 106 implementieren, um eine simultane Auslösung zu erzwingen. Selbst mit Hardwaresynchronisation werden ungleiche Verzögerungen während der Abtastung, der Erfassung und dem Transfer der Messungen eingeführt, die nicht vollständig berücksichtigt werden. Ein Zeitliche-Synchronisation-Block 212 kann dazu ausgelegt sein, eine Zeitsynchronisation durchzuführen, um einen zeitlichen Versatz zwischen den Sensormessungen zu bestimmen.
  • 3 stellt ein beispielhaftes Timing-Diagramm 300 dar, das die Abtast- und Erfassungszeiten für den exterozeptiven Sensor 104 und die IMU 106 zeigt. Ein erstes Timing-Diagramm 301 stellt Abtast- und Erfassungszeiten für den exterozeptiven Sensor 104 dar. Ein Abtastzeitpunkt 302 für den exterozeptiven Sensor ist als eine gestrichelte Linie gezeigt. Erfassungszeiten 304 für den exterozeptiven Sensor sind als durchgezogene Linien gezeigt. Der Abtastzeitpunkt 302 für den exterozeptiven Sensor kann die Zeit repräsentieren, zu der der exterozeptive Sensor 104 ausgelöst wird, um eine Messung oder Abtastung zu erzeugen. Die Erfassungszeiten 304 für den exterozeptiven Sensor können die Zeit repräsentieren, zu der die Verarbeitungseinheit die Beobachtung empfängt, und kann Zeit für die Übertragung der Abtastungen zu der Verarbeitungseinheit einschließen. Eine Verzögerung 314 der Abtastungserfassung für den exterozeptiven Sensor (ES-SA-Verzögerung) kann zwischen dem Abtastzeitpunkt 302 für den exterozeptiven Sensor und den Erfassungszeiten 304 für den exterozeptiven Sensor vorhanden sein. Die ES-SA-Verzögerung 314 kann die Zeit zum Auslösen und Sammeln der Beobachtungsdaten einbeziehen, sodass die entsprechenden Daten zur Verarbeitung bereit sind. Es ist zu beachten, dass der Abtastzeitpunkt 302 für den exterozeptiven Sensor vor jeder der Erfassungszeiten 304 für den exterozeptiven Sensor vorhanden sein kann, und nicht alle in dem Diagramm dargestellt sind. Jeder Abtastzeitpunkt 302 für den exterozeptiven Sensor und jede Erfassungszeit 304 für den exterozeptiven Sensor kann durch entsprechende Zeitstempel identifiziert werden. Die Zeitstempel können durch Halten oder Abtasten eines Takt- oder Timer-Werts zu den Erfassungszeiten 304 für den exterozeptiven Sensor und/oder zu dem Abtastzeitpunkt 302 für den exterozeptiven Sensor erzeugt werden.
  • Ein zweites Timing-Diagramm 305 stellt Abtast- und Erfassungszeiten für die IMU 106 dar. Ein Abtastzeitpunkt 306 für den IMU-Sensor ist als eine gestrichelte Linie gezeigt. Erfassungszeiten 308 für den IMU-Sensor sind als durchgezogene Linien gezeigt. Der Abtastzeitpunkt 306 für den IMU-Sensor kann die Zeit repräsentieren, zu der die IMU 106 ausgelöst wird, um eine Messung oder Abtastung zu erzeugen. Die Erfassungszeiten 308 für den IMU-Sensor können die Zeit repräsentieren, zu der die Verarbeitungseinheit die Beobachtung empfängt, und kann Zeit für die Übertragung der Abtastungen zu der Verarbeitungseinheit einschließen. Eine Verzögerung 316 der Abtastungserfassung für die IMU (IMU-SA-Verzögerung) kann zwischen dem Abtastzeitpunkt 306 für den IMU-Sensor und den Erfassungszeiten 308 für den IMU-Sensor vorhanden sein. Die IMU-SA-Verzögerung 316 kann die Zeit zum Auslösen und Sammeln der Beobachtungsdaten einbeziehen, sodass die entsprechenden Daten zur Verarbeitung bereit sind. Es ist zu beachten, dass der Abtastzeitpunkt 306 für den IMU-Sensor vor jeder der Erfassungszeiten 308 für den IMU-Sensor vorhanden sein kann, und nicht alle in dem Diagramm dargestellt sind. Jeder Abtastzeitpunkt 306 für den IMU-Sensor und jede Erfassungszeit 308 für den IMU-Sensor können durch entsprechende Zeitstempel identifiziert werden.
  • Die IMU 106 und der exterozeptive Sensor 104 sind möglicherweise nicht über einen Hardwareauslöser synchronisiert. Das heißt, die Verarbeitungseinheit wird möglicherweise nicht die entsprechenden Beobachtungen zu der gleichen Zeit auslösen. Ein Sensorabtastungszeitversatz 310 kann zwischen dem Abtastzeitpunkt 302 für den exterozeptiven Sensor und dem Abtastzeitpunkt 306 für den IMU-Sensor vorhanden sein. Der Sensorabtastungszeitversatz 310 kann die Differenz in der Zeit repräsentieren, zu der der IMU-Sensor 106 und der exterozeptive Sensor 104 ausgelöst oder abgetastet werden.
  • Die Erfassungszeiten 302 für den exterozeptiven Sensor können periodisch, um einen Abtastzeitraum 303 für den exterozeptiven Sensor getrennt, auftreten. Die Erfassungszeiten 308 für den IMU-Sensor können periodisch, um einen Abtastzeitraum 312 für den IMU-Sensor getrennt, auftreten. Der Abtastzeitraum 303 für den exterozeptiven Sensor und der Abtastzeitraum 312 für den IMU-Sensor können verschieden sein. Der Abtastzeitraum 303 für den exterozeptiven Sensor kann eine Abtastfrequenz für den exterozeptiven Sensor zum Erfassen der Daten vom exterozeptiven Sensor 104 definieren (z. B. ist Frequenz der Kehrwert des Zeitraums). Der Abtastzeitraum 312 für den IMU-Sensor kann eine Abtastfrequenzfrequenz für den IMU-Sensor zum Erfassen der Daten von der IMU 106 definieren. Die Abtastfrequenz für den exterozeptiven Sensor kann sich von der Abtastfrequenz für den IMU-Sensor unterscheiden. Beispielsweise kann die Abtastfrequenz für den IMU-Sensor größer sein als die Abtastfrequenz für den exterozeptiven Sensor.
  • Der Zeitliche-Synchronisation-Block 212 kann einen zeitlichen Ausrichtungsprozess implementieren. 4 stellt ein mögliches Blockdiagramm 400 für den Zeitliche-Synchronisation-Block 212 dar. Der Exterozeptive-Zustandsschätzung-Block 210 kann Zeitstempel TE = {tEi |i = 0:n} für jede Messung des exterozeptiven Sensors 104 erzeugen und ausgeben. Die Zeitstempel (TE) können abgetastete Timer-Werte sein, die die Zeitpunkte repräsentieren, zu denen Messungen des exterozeptiven Sensors ausgelöst werden.
  • Ein Frequenzschätzungsblock 404 kann dazu ausgelegt sein, eine Frequenz der exterozeptiven Sensormessung zu schätzen. Der Abtastzeitraum 303 für den exterozeptiven Sensor kann als eine Differenz zwischen aufeinanderfolgenden Zeitstempeln (z.B. tE [n] - tE [n - 1]) geschätzt werden, wobei n eine ganze Zahl ist, die den Abtastzeitpunkt des exterozeptiven Sensors 104 bezeichnet. Die Frequenz kann der Kehrwert des Abtastzeitraums 303 für den exterozeptiven Sensor sein. Der Frequenzschätzungsblock 404 kann die geschätzte Frequenz verwenden, um ein Zeitintervall (ΔT*) für eine Vorintegration der Roh-Gyroskopinformationen zu bestimmen. Das Zeitintervall kann dem Vorintegrationsblock 230 bereitgestellt werden. Das Zeitintervall (ΔT*) kann einen Zeitraum definieren, über den die Roh-IMU-Sensordaten zu integrieren sind. Das Zeitintervall (ΔT*) ermöglicht ein konsistentes Zeitintervall zum Vergleichen von Messungen von dem exterozeptiven Sensor 104 und dem IMU-Sensor 106. Aufgrund der asynchronen Art der Abtastung können sich die durch die IMU-Daten und die ES-Daten vorhergesagten Bewegungsparameter über dasselbe Zeitintervall unterscheiden.
  • Der Vorintegrationsblock 230 kann einen Wert Δq'(n) erzeugen, der die Orientierungsänderung basierend auf IMU-Daten über das Zeitintervall repräsentiert. Der Vorintegrationsblock 230 kann nahe mit dem IMU-Sensorhub implementiert werden, um die Roh-IMU-Messungen (Beschleunigung ã[k], Winkelgeschwindigkeit ω̃[k]) basierend auf einem spezifizierten Zeitintervall (τ]0 - τ]k) schnell in vorintegrierte Werte umzuwandeln. Die IMU kann abgetastete Beschleunigungsmesser- und Gyroskopmessungen bereitstellen: ω ˜ [ k ] = ω [ k ] + b g [ k ] + η g [ k ]
    Figure DE102020211472A1_0010
    α ˜ [ k ] R WB T ( α w [ k ] g w ) + b α [ k ] + η α [ k ]
    Figure DE102020211472A1_0011
    wobei bg und bd Biases repräsentieren, die die Messungen beeinflussen, ηg und ηa Messungsrauschen repräsentieren und R WE T
    Figure DE102020211472A1_0012
    eine Rotationsmatrix repräsentiert.
  • Die IMU-Abtastungen können mit einer höheren Frequenz als die Abtastungen des exterozeptiven Sensors erzeugt werden, daher können die Messungen zwischen aufeinanderfolgenden Messungen des exterozeptiven Sensors vorintegriert werden. Die vorhergesagten Werte können aus einer Bewegungsintegration über das Intervall ΔT* basierend auf den mit Δtk abgetasteten IMU-Messungen wie folgt abgeleitet werden: R k + Δ T * = R k * Π i = 0 : Δ T * Exp ( ω ˜ [ k+i ] b g [ k+i ] ) * Δ t k
    Figure DE102020211472A1_0013
    v k + Δ T * = v k + R k i = 0 : Δ T * R 0 i ( α ˜ [ k+i ] b α [ k+i ] ) * Δ t k + g Δ T *
    Figure DE102020211472A1_0014
    p k + Δ T * = p k + R k i = 0 : Δ T * v k + i Δ T k + 1 2 R 0 i ( α ˜ [ k+i ] b α [ k+i ] ) * Δ t k 2 + 1 2 g Δ T * 3
    Figure DE102020211472A1_0015
  • Das Zeitintervall kann dem Wert ΔT* entsprechen, der aus der Frequenzschätzung abgeleitet wird. Die resultierende Ausgabe des Vorintegrationsblocks 230 kann auch als eine Änderung oder Verschiebung der Geschwindigkeit Δv, eine Änderung oder Verschiebung der Position Δp+ und eine Änderung oder Verschiebung der Orientierung Δq' repräsentiert werden, die direkt in den inertialgestützten Zustandsschätzer integriert werden können. Die Vorintegration reduziert die Latenz und rechnerischen Anforderungen des inertialgestützten Zustandsschätzers. Die Vorintegration hängt von der Integrationsdauer ΔT* oder (tE[n] - tE [n - 1]) und einem lokalen Referenzrahmen Ste[n-1] ab. Beispielsweise kann die Vorintegration durch die folgenden Gleichungen implementiert werden: Δ q' = Π i = 0 : Δ T * Exp ( ω ˜ [ k+i ] b g [ k+i ] ) * Δ t k
    Figure DE102020211472A1_0016
    Δ v = i = 0 : Δ T * R 0 i ( α ˜ [ k+i ] b α [ k+i ] ) * Δ t k + g Δ T *
    Figure DE102020211472A1_0017
    Δ p + = i = 0 : Δ T * v k + i Δ t k + 1 2 R 0 i ( α ˜ [ k+i ] b α [ k+i ] ) * Δ t k 2 + 1 2 g Δ T * 3
    Figure DE102020211472A1_0018
  • In den obigen Gleichungen können die IMU-Messungen (ã[n],ω̃[n]) und die Beschleunigungsmesser- und Gyroskop-Biases ba,bg, die durch den IMU-Fusionshub bereitgestellt werden, verwendet werden, um eine Geschwindigkeitsänderung Δv, eine Positionsänderung Δp+ und eine Orientierungsverschiebung Δq' zu schätzen. Der Vorintegrationsblock 203 kann eine Orientierungsänderung als eine Differenz zwischen den letzten Werten der Orientierungsvariable bereitstellen. Für die Vorintegrationsberechnungen können die mit den n und n-1 exterozeptiven Sensorabtastungen assoziierten Zeitintervalle verwendet werden.
  • Ein Grobe-Zeitliche-Ausrichtung-Block 406 kann dazu ausgelegt sein, einen groben Zeitversatz δtc, (z. B. Sensorabtastungszeitversatz 310) zwischen den Sensoren zu bestimmen. Der Exterozeptive-Sensorzustandsschätzung-Block 210 kann Orientierungsdaten (qe) enthalten, aus denen die relative Orientierung zwischen zwei aufeinanderfolgenden Schätzungen für den exterozeptiven Sensor (Δq(n)) abgeleitet wird. Die IMU-Sensordaten können mit einer Rate abgetastet werden, die sich von der Abtastrate des exterozeptiven Sensors unterscheidet. In Konfigurationen, in denen die Abtastrate des IMU-Sensors größer ist als die Abtastrate des exterozeptiven Sensors, kann das Zeitintervall (ΔT*) eine Anzahl von IMU-Sensorabtastungen beinhalten. Die Zeitstempel für den exterozeptiven Sensor können den Start- und Endzeitwert für das Zeitintervall definieren. Der Vorintegrationsblock 230 kann eine Schätzung der Rotation oder Orientierung über einen ähnlichen Zeitrahmen (ΔT*) basierend auf IMU-Sensordaten bereitstellen. Beispielsweise kann der Vorintegrationsblock 230 Rotations-/Orientierungsmessungen über das Zeitintervall (ΔT*) integrieren, um eine relative Rotation oder Orientierung Δq'(n) zu erzeugen. Da der exterozeptive Sensor 104 und die IMU 106 mit unterschiedlichen Raten abgetastet werden können, kann es mehrere IMU-Sensorabtastungen für jedes Zeitintervall (ΔT*) geben. Die Anzahl von Abtastungen der IMU 106 kann auf einem Verhältnis der Abtastrate des exterozeptiven Sensors 104 zu der Abtastrate der IMU 106 basieren. In manchen Fällen kann der Vorintegrationsblock 230 eine partielle Integration für manche IMU-Sensorabtastungen durchführen. Beispielsweise können die erste und letzte IMU-Sensorabtastung innerhalb des Zeitintervalls (Δ1*) partiell integriert werden. Das Ergebnis können die Werte Δq'(n) sein, die der Schätzung Δq(n) für den exterozeptiven Sensor über dasselbe Zeitintervall entsprechen. Über eine Anzahl von Zeitintervallen (ΔT*) können die Werte Δq'(n) und Δq(n) eine entsprechende Zeitreihe oder Wellenform definieren.
  • Die relative Orientierung zwischen zwei aufeinanderfolgenden Schätzungen Δq(n) für den exterozeptiven Sensor können mit der entsprechenden relativen Orientierung Aq'(n), verglichen werden, die durch den Vorintegrationsblock 203 über eine Anzahl von IMU- Abtastungen erzeugt wird. Der Grobe-Zeitliche-Ausrichtung-Block 408 kann unter Verwendung eines Optimierungsverfahrens/-algorithmus durchgeführt werden. Beispielsweise kann ein FIR-Filter (Filter mit endlicher Impulsantwort), das in einem SO3(spezielle orthogonale Gruppe dritter Ordnung)-Raum konzipiert ist, implementiert werden, um den groben Zeitversatz δtc, zwischen den Sensoren zu bestimmen. Wellenvergleichsalgorithmen können auch implementiert werden, um den groben Zeitversatz δtc, zwischen den Δq-Signalen zu bestimmen. Der Grobe-Zeitliche-Ausrichtung-Block 408 kann eine der Wellenformen oder Zeitreihen mit relativer Orientierung Δq verschieben, damit sie mit der anderen übereinstimmt. Die Zeitverschiebung zum Bewirken der Ausrichtung der Wellenformen oder Zeitreihen kann den groben Zeitversatz δtc, definieren. Die Zeitstempel der exterozeptiven Sensormessungen können basierend auf der groben zeitlichen Ausrichtung korrigiert werden. Beispielsweise kann der grobe Zeitversatz δtc, durch Finden der Minimalanzahl von Abtastungen Δn, die zum Reduzieren der Differenz zwischen der durch die IMU 106 geschätzten Orientierungsverschiebung und dem exterozeptiven Sensor 104 erforderlich ist, bestimmt werden. Δ n = arg min Δ n ( Δ q ( n ) Θ Δ q ' ( n + Δ n ) )
    Figure DE102020211472A1_0019
    δ t c = Δ n × Δ T *
    Figure DE102020211472A1_0020
  • Das System kann nach dem Abtastungsversatz suchen, der einen minimalen Gesamtfehler zwischen Δq, das durch aufeinanderfolgende exterozeptive Sensormessungen geschätzt wird, und einem verschobenen Δq', das aus Messungen der IMU über das gleiche Intervall abgeleitet wird, ergibt. Das System kann eine symmetrische Differenz zwischen Datensätzen minimieren, die durch Δq(n) und Δq'(n + Δn) repräsentiert werden. Das Δn repräsentiert den Abtastungsversatz zwischen dem exterozeptiven Sensor 104 und der IMU 106 hinsichtlich Abtastanzahlen. Der Δn-Wert kann eine ganze Zahl mit positivem oder negativem Wert sein. Um den Versatz von Abtastanzahl in Zeitversatz umzuwandeln, kann der Wert mit dem Zeitintervall multipliziert werden. In Abhängigkeit von den Konfigurationen können die IMU-Daten vor oder hinter die exterozeptiven Sensordaten verschoben werden. In manchen Konfigurationen kann ein Puffer von Orientierungswerten gespeichert werden, um eine Suche nach einem optimalen Versatz zu ermöglichen.
  • Ein Inertialgestützte-Optimierung-Block 410 kann die verbleibenden Blöcke in dem Prozess repräsentieren. Beispielsweise stehen die Blöcke 214 bis 220 mit dem Optimierungsprozess in Verbindung. Der Inertialgestützte-Optimierung-Block 410 kann dazu ausgelegt sein, die grobe zeitliche Ausrichtung δtc zu verfeinern, um die finale zeitliche Ausrichtung online in der Optimierungsstufe zu schätzen. Ein finaler Zeitversatz δtf kann wie folgt bestimmt werden: δ t f = arg min δ t f ( X , t ) p r e d ( X , t + δ t c + δ t f )
    Figure DE102020211472A1_0021
    ( X , t ) = [ p + v * Δ t + α * Δ t 2 v + α * Δ t q * Δ q ( t ) b g + Δ b g b α + Δ b α ]
    Figure DE102020211472A1_0022
  • Der finale Zeitversatz kann in dem Optimierungsprozess verwendet werden, um die Messungen zu dem gleichen Zeitrahmen auszurichten. Die f(X,t) kann die Zustandsschätzung zur Zeit t repräsentieren. Die fpred(X, t) kann einen vorhergesagten Zustand basierend auf der Aktivität repräsentieren, wie hierin später beschrieben wird. Die Optimierung kann versuchen, den Fehler oder die Distanz zwischen den Zuständen, die durch den Zustandsschätzer geschätzt werden, und dem vorhergesagten aktivitätsbasierten Zustand, der um den Kurs-Zeitversatz und einen zusätzlichen Versatz verschoben ist, zu minimieren. Der zusätzliche Zeitversatzwert, der die Funktion minimiert, kann der finale Zeitversatzwert sein. Der finale Zeitversatz kann als die Menge an Zeit geschätzt werden, die eine Distanz zwischen Zuständen, die unter Verwendung von IMU-Abtastdaten geschätzt werden, und den Zuständen, die durch das um den Zeitversatz verschobene exterozeptive Sensormodell vorhergesagt werden, minimiert.
  • Die zeitliche Synchronisationsfunktion 212 kann in einen oder mehrere Kerne oder Prozessoren programmiert sein. Die zeitliche Synchronisationsfunktion 212 kann dazu ausgelegt sein, Messdaten von der IMU 106 und dem exterozeptiven Sensor 104 in einem System, das kein gemeinsames elektrisches Messungsauslösesignal zwischen der IMU 106 und dem exterozeptiven Sensor 104 aufweist, zu einem gemeinsamen Zeitbereich zu synchronisieren. Ein Prozessor oder Kern, der die zeitliche Synchronisationsfunktion implementiert, kann Orientierungsdaten vom exterozeptiven Sensor 104 mit einer ersten Rate und von der IMU 106 mit einer zweiten Rate empfangen. Der Kern oder Prozessor kann programmiert sein, eine erste Orientierungsänderung basierend auf einer Differenz zwischen jüngsten Orientierungsdaten vom exterozeptiven Sensor 104 über ein durch die erste Rate definiertes Zeitintervall vorherzusagen. Der Kern oder Prozessor kann programmiert sein, eine zweite Orientierungsänderung basierend auf Orientierungsdaten von der IMU 106 über dasselbe Zeitintervall vorherzusagen. Der Kern oder Prozessor kann Messdaten von einem der Sensorsysteme um einen Zeitversatz versetzen, der einen Fehler zwischen der ersten Änderung und der zweiten Änderung minimiert, sodass Wellenformen oder Zeitreihen, die mit der ersten Änderung und der zweiten Änderung assoziiert sind, zeitlich ausgerichtet sind.
  • Erneut unter Bezugnahme auf 2 kann ein Inertial-Koordinatenausrichtung-Block 214 implementiert werden, um Messungen von der IMU 106 und dem exterozeptiven Sensor 104 in einen Inertial-Koordinatenrahmen umzuwandeln. In VR-/AR-Anwendungen ermöglicht eine Ausrichtung mit einem Inertial-Rahmen oder einer Inertial-Referenz ein physikbasiertes Rendering und eine bessere Schätzung von Umgebungsgeometrien anhand der Kenntnis eines Schwerkraftvektors.
  • 5 stellt ein Diagramm der Koordinatenrahmen dar, die für das Tracking-System definiert sein können. In VR-/AR-Anwendungen ermöglicht eine Ausrichtung mit einem Inertial-Rahmen 502 oder einer Inertial-Referenz ein physikbasiertes Rendering und eine bessere Schätzung von Umgebungsgeometrien anhand der Kenntnis eines Schwerkraftvektors 504. Ein Koordinatenrahmen 508 des exterozeptiven Sensors kann für den exterozeptiven Sensor 104 definiert werden und ist vom Inertial-Rahmen 502 versetzt. Die initiale Position und Orientierung des exterozeptiven Sensors 104 bezüglich des Inertial-Rahmens 502 ist jedoch nicht beobachtbar. Demnach sind die Position und Orientierung, die durch den exterozeptiven Sensor 104 geschätzt und in dem Koordinatenrahmen 508 des exterozeptiven Sensors repräsentiert werden, nicht mit dem Inertial-Koordinatenrahmen 502 ausgerichtet. Ein IMU-Koordinatenrahmen 506 kann durch den IMU-Sensor 106 definiert werden und kann auch vom Inertial-Rahmen 502 versetzt sein. Es ist möglich, eine vorausgehende Kalibration zwischen der IMU 106 und dem exterozeptiven Sensor 104 oder eine Schätzung des Schwerkraftvektors unter Verwendung von Bildern durchzuführen, um den exterozeptiven Sensor 104 mit dem Inertial-Koordinatenrahmen 502 auszurichten. Eine IMU-Inertial-Rahmentransformation TIB 512 kann bestimmt werden, die die IMU-Koordinaten zu dem Inertial-Koordinatenrahmen 502 transformiert. Beispielsweise kann die IMU-Inertial-Rahmentransformation TIB 512 eine Matrix sein, die mit gemessenen Werten multipliziert wird, um die gemessenen Werte in Inertial-Rahmenkoordinaten umzuwandeln. Eine Transformation TIE 510 zwischen dem Koordinatenrahmen 508 des exterozeptiven Sensors und dem IMU-Koordinatenrahmen 506 kann als die Transformation bestimmt werden, die die gemessenen exterozeptiven Sensorwerte umwandelt, damit sie mit den gemessenen IMU-Sensorwerten übereinstimmen.
  • Erneut unter Bezugnahme auf 2 kann das System einen Inertial-Koordinatenausrichtung-Block 214 beinhalten, der dazu ausgelegt ist, die Tracking-Daten zu dem Inertial-Rahmen 502 zu transformieren. 6 stellt ein Blockdiagramm 600 für einen möglichen Satz von Merkmalen zum Ausrichten der Koordinaten zu dem Inertial-Koordinatenrahmen 502 dar, wie als Teil des Inertial-Koordinatenausrichtung-Blocks 214 implementiert werden kann. Nachdem die zeitliche Synchronisation durchgeführt ist, kann die Ausrichtung der IMU 106 und des exterozeptiven Sensors 104 mit dem Inertial-Koordinatenrahmen 502 bestimmt werden. Ein Inertial-Koordinateninitialisierung-Block 602 kann eine Eingabe vom Schwerkraftschätzungsblock 224 und einem Magnetometer 604, der ein Signal für eine Orientierung relativ zu magnetisch Nord der Erde bereitstellt, empfangen. Die Messungen der IMU 106 können anfänglich relativ zu dem IMU-Koordinatenrahmen 506 definiert sein. Die initiale Ausrichtung der IMU 106 mit dem Schwerkraftvektor 504 (vom Schwerkraftschätzungsblock 224) kann unter Verwendung des durch den IMU-Sensorhub geschätzten Schwerkraftvektors durchgeführt werden. Beispielsweise kann die IMU 106 einen Beschleunigungsmesser beinhalten, der zum Messen einer vertikalen Beschleunigung/Verlangsamung positioniert ist. Wenn die IMU 106 auf einer ebenen Oberfläche positioniert ist, würde die erwartete Ausgabe die Gravitationsbeschleunigung sein. Jegliche Abweichungen von der bekannten Gravitationsbeschleunigung kann daraus resultieren, dass die IMU 106 nicht eben ist (z. B. geneigt oder gekippt).
  • Das Magnetometer 604 kann Koordinateninformationen für eine Nordrichtung bereitstellen. Der Inertial-Koordinatenrahmen 502 kann so definiert sein, dass die Achsen eine vorbestimmte Beziehung zu dem Schwerkraftvektor und der magnetischen Nordrichtung aufweisen. Das Magnetometersignal kann eine Orientierung für den Inertial-Koordinatenrahmen 502 bereitstellen. Unter Kenntnis der Orientierung des Inertial-Koordinatenrahmens 502 und des Schwerkraftvektors 504 kann die IMU-Inertial-Rahmentransformation TIB 512 bestimmt werden. Koordinaten im IMU-Koordinatenrahmen 506 können in den Inertial-Koordinatenrahmen 502 durch das Anwenden der IMU-Inertial-Rahmentransformation TIB 512 transformiert werden. Beispielsweise kann die IMU-Inertial-Rahmentransformation TIB 512 als eine Matrix ausgedrückt werden und an dem IMU-Koordinatenvektor kann eine Operation durch TIB ausgeführt werden, was zu einem Inertial-Koordinatenvektor führt.
  • Als Nächstes kann die Transformation zwischen dem Koordinatensystem des exterozeptiven Sensors 104 und dem Koordinatensystem der IMU 106 geschätzt werden. Ein Rotationsausrichtungsblock 606 kann eine Eingabe von der exterozeptiven Zustandsschätzung 210 und dem Vorintegrationsblock 230 empfangen. Sowohl die exterozeptive Zustandsschätzung 210 als auch der Vorintegrationsblock 230 können eine Schätzung der Rotationsorientierung (z. B. q) über ein gemeinsames Zeitintervall bereitstellen. Es kann angenommen werden, dass sich der exterozeptive Sensor 104 und die IMU 106 während des Zeitintervalls auf die gleiche Weise bewegt haben. Jegliche Unterschiede in der Rotationsbewegung können an der relativen Ausrichtung der Sensoren liegen. Durch Kenntnis der durch beide Sensoren bereitgestellten Rotationsschätzungen kann die Transformation TIE 510 berechnet werden, sodass das Anwenden der Transformation TIE 510 an den exterozeptiven Koordinaten zu den IMU-Koordinaten führt. Die exterozeptive Zustandsschätzung 210 kann die Zustände XE = [R,t,ϕE] schätzen, wobei R die Rotation des Systems bezüglich des Inertial-Referenzrahmens repräsentiert, t die Position des Systems bezüglich des Inertial-Rahmens repräsentiert und ϕE die Support-Zustände repräsentiert, die von dem exterozeptiven Sensor 104 abhängen.
  • Ein Translationsausrichtungsblock 608 kann implementiert werden, um eine Translationsausrichtung auf ähnliche Weise durchzuführen. Beispielsweise kann eine Translationstransformationsmatrix aus den Translationselementen (z. B. Geschwindigkeit und Position) bestimmt werden, die durch die exterozeptive Zustandsschätzung 210 und den Vorintegrationsblock 230 geschätzt werden. Die Translationstransformationsmatrix kann an den Daten angewendet werden, was zu Schätzungen im Inertial-Koordinatenrahmen führt. Die Transformationen können in eine einzelne Transformation kombiniert werden, die Zustandsinformationen, die mit dem exterozeptiven Sensor assoziiert sind, in den Inertial-Koordinatenrahmen 502 umwandelt.
  • Die Exterozeptiv-zu-IMU-Transformation kann als TIE = [RIE, tIE] definiert werden, wobei RIE und tIE die Rotationstransformation und den Translationsversatz vom Koordinatenrahmen 508 des exterozeptiven Sensors zu dem IMU-Koordinatenrahmen 506 repräsentieren. Um die Rotationstransformation zu schätzen, kann die relative Rotation zwischen zwei aufeinanderfolgenden Zeitstempeln t1 und t2, die in dem exterozeptiven Koordinatenrahmen ( Δ R t 1 t 2 E )
    Figure DE102020211472A1_0023
    und dem Inertial-Koordinatenrahmen (AR"-") erhalten werden, wie folgt verwendet werden: Δ R t 1 t 2 I = R I E T Δ R t 1 t 2 E R I E
    Figure DE102020211472A1_0024
  • Der Translationsversatz kann unter Verwendung eines Ansatzes wie etwa die Umeyama-Methode oder ähnliches geschätzt werden.
  • Erneut unter Bezugnahme auf 2 kann ein Bewegungsvorhersageblock 216 implementiert werden, um die Bewegung der Vorrichtung vorherzusagen. Der Bewegungsvorhersageblock 216 kann eine Aktivitätseingabe vom Aktivitätserkennungsblock 226 empfangen. Dem Bewegungsvorhersageblock 216 können auch Zustandsinformationen im Inertial-Koordinatenrahmen 502 bereitgestellt werden. Der Bewegungsvorhersageblock 216 kann zusätzliche Bewegungsschätzungen für jedes der verfolgten Merkmale vom exterozeptiven Sensor 104 bereitstellen. Der Bewegungsvorhersageblock 216 kann ferner eine Ausgabe für den Merkmalsabgleichblock 206 bereitstellen, um ein Tracking von Merkmalen zu ermöglichen.
  • Die zeitlichen Beschränkungen, die in der inertialgestützten Optimierung auferlegt werden, können auf dem Vorhersagemodell basieren, das zum Vorhersagen des aktuellen Zustands basierend auf den vorherigen Zuständen verwendet wird. Ein kontinuierliches Geschwindigkeitsmodell oder ein stationäres Bewegungsmodell wird gewöhnlich verwendet. Der moderne IMU-Fusionshub stellt jedoch Informationen über die Aktivität bereit, die zum Auswählen des geeigneten zu verwendenden Bewegungsmodells verwendet werden kann. Die durch den IMU-Sensorhub geschätzte Aktivität kann verwendet werden, um ein adaptives Vorhersagemodell zu ermöglichen, wie nachfolgend beschrieben: p r e d ( X , t ) = { p r e d i ( X , t ) Δ T ; f a l l s   A k t i v i t t = i n   F a h r z e u g   b e f i n d l i c h          0 ,5* p r e d i i ( X , t ) * Δ T 2 + p r e d i ( X , t ) * Δ T ; f a l l s   A k t i v i t t = l a u f e n d           f p r e n d ( X , t ) ; f a l l s   A k t i v i t t = s t a t i o n r }
    Figure DE102020211472A1_0025
  • Das Zeitintervall zwischen dem letzten Zustand und dem aktuellen Zustand kann als ΔT repräsentiert werden. Die Ableitungen erster und zweiter Ordnung des Vorhersagemodells sind als f' bzw. f'' definiert. Die Änderung im vorhergesagten Zustand kann als fpred(X) repräsentiert werden. Dieses Beispiel verwendet drei Modelle, jedoch können zusätzliche Modelle einbezogen werden, falls zusätzliche Aktivitätszustände definiert sind. Die Zustände können basierend auf dem Minimum des nichtlinearen Least-Squares-Kriterium geschätzt werden: r i m u = ( X k 1 , α ˜ , ω ˜ , δ t f ) p r e d ( X k 1 , t , A k t i v i t t )
    Figure DE102020211472A1_0026
    r i m u = [ p p p r e d v v p r e d log ( q * q p r e d 1 ) b g b g p r e d b a b a p r e d ]
    Figure DE102020211472A1_0027
    r e x t = h ( X , t ) Z
    Figure DE102020211472A1_0028
    X i = a r g m i n x r i m u 2 + r e x t 2
    Figure DE102020211472A1_0029
  • Ein Zustandsschätzer kann in dem inertialgestützten Tracking-Algorithmus verwendet werden, um die Position und Orientierung des Systems bezüglich des Inertial-Koordinatenrahmens 502 zu schätzen. Der Zustandsschätzer kann, zusätzlich zur Position und Orientierung, auch zusätzliche Zustände, die für die IMU 106 spezifisch sind, wie etwa Biases, und Zustände, die für den exterozeptiven Sensor 104 spezifisch sind, wie etwa Entfernungen zu Landmarken, enthalten. Dies erhöht die Anzahl von geschätzten Zuständen und somit die Komplexität des Zustandsschätzers. Ein Beschränkungsaggregationsblock 218 kann implementiert werden, um Zustände zu entfernen, die nur von dem exterozeptiven Sensor 104 abhängen. Beispielsweise können Zustandsinformationen wie etwa durch den exterozeptiven Sensor 104 identifizierte Landmarken mit Beschränkungen bezüglich vergangener Positionen und Orientierungen ersetzt werden. Die durch den inertialgestützten Zustandsschätzer 220 zu schätzenden Zustände können durch XI, = [p,q,t,ϕI,EE] definiert werden, wobei ϕI, die Support-Zustände repräsentiert, die von dem IMU-Sensor abhängen, und EE die Zustände repräsentiert, die von der vorherigen Ausführung des Exterozeptive-Zustandsschätzung-Blocks 210 aggregiert werden.
  • Die Zustandsschätzung kann in zwei Stufen unterteilt werden. Die durch den exterozeptiven Sensor 104 unterstützten Zustände können in einem separaten Schätzer geschätzt werden und die Ergebnisse können verwendet werden, um einen inertialgestützten Zustandsschätzer 220 anzusteuern. Diese Trennung kann zu einer frühen Linearisierung von Zuständen führen und daran scheitern, die gesamte Korrelation zwischen dem exterozeptiven Sensor 104 und den IMU-Zuständen zu erfassen. Sie verringert jedoch die Berechnungskomplexität, da sie die Anzahl von Variablen verringert, die zur gleichen Zeit zu schätzen sind. Die vom exterozeptiven Zustandsschätzer 210 abgeleiteten Beschränkungen können in dem inertialgestützten Zustandsschätzer 220 anstelle resultierender Zustände verwendet werden. Dies ermöglicht, dass die durch das inertialgestützte Tracking durchgeführte finale Optimierung indirekt die exterozeptiven Beschränkungen und die propriozeptiven Beschränkungen einbezieht.
  • Der Zustand XE = [PE,qE,ϕE] kann durch den exterozeptiven Zustandsschätzer 210 geschätzt werden. ϕE, besteht aus allen Landmarken, die durch den exterozeptiven Sensor 104 beobachtet werden. Dieser Term kann leicht unbegrenzt werden und eignet sich nicht zur Weiterleitung zu dem inertialgestützten Zustandsschätzer 220. Die durch den exterozeptiven Sensor 104 geschätzten Zustände ϕE können, obwohl sie als unabhängig repräsentiert sind, parametrisiert werden, damit sie vom Verlauf vorheriger geschätzter Positionen und Orientierungen [q1:n,p1:n] abhängig sind. Diese Neuparametrisierung der Zustände ϕE eliminiert Zustände, die nur von dem exterozeptiven Sensor 104 abhängig sind. Mathematisch kann dies als eine Projektion der Zustände von nur dem exterozeptiven Sensor auf den Nullraum angesehen werden, um diese zu entfernen. In Anbetracht des Falls von Landmarken in Struktur aus einem bewegungsbasierten Tracking sind beispielsweise die in der Zustandsschätzung repräsentierten Landmarken tatsächlich ein Ergebnis einer Triangulation mehrerer Ansichten. Landmarken können in aufeinanderfolgenden Bildern identifiziert werden oder vorhanden sein. Beschränkungen zwischen Stellungen können existieren, wenn das gleiche Merkmal oder die gleiche Landmarke in mehreren Bildern vorhanden ist. Die Beschränkungen können ohne den Einschluss der Landmarken- oder Merkmalspositionen ausgedrückt werden.
  • Eine maximale a-posteriori-Schätzung kann implementiert werden. Die Beschränkungen, die durch Zustände ϕE in Abhängigkeit von dem exterozeptiven Sensor 104 verbunden sind, können wie folgt marginalisiert werden: X i = a r g m a x x P ( X ) = a r g m a x x I P ( X P ) P ( X P ϕ E )
    Figure DE102020211472A1_0030
    P ( X P ϕ E ) = P ( E E ) × P ( X P | E E )
    Figure DE102020211472A1_0031
  • Während der Marginalisierung werden die Beschränkungen in ϕEdurch EE ersetzt, das eine reduzierte Repräsentation aufweist. Es kann angenommen werden, dass die Zustände Zufallsvariablen sind, und P(X) repräsentiert eine Wahrscheinlichkeitsdichtefunktion für die Zufallsvariable X.
  • 7 ist ein Diagramm 700, das eine Neuparametrisierung oder Transformation von Informationen darstellt, die für durch den exterozeptiven Sensor 104 identifizierte Landmarken spezifisch sind. Eine gegenwärtige Kamerastellung 702 (ptk) kann identifiziert werden. Eine oder mehrere Landmarken 704 in der Umgebung können relativ zu der gegenwärtigen Kamerastellung 702 identifiziert werden. Jede der Landmarken 704 kann in unterschiedlichen Kamerastellungen (z. B. Stellungen zu unterschiedlichen Zeiten) identifiziert werden. Jede der Landmarken 704 kann mit einem Satz vorheriger Kamerastellungen assoziiert sein. Beispielsweise kann eine Landmarke mit der gegenwärtigen Kamerastellung 702 (ptk), einer ersten vorherigen Kamerastellung 705 (ptk-1), einer zweiten vorherigen Kamerastellung 706 (ptk-2) und einer dritten vorherigen Kamerastellung 708 (ptk-3) assoziiert sein. 7 repräsentiert den Fall, bei dem die Landmarken 704 (L) basierend auf den Kosten durch Definieren einer Beschränkung bezüglich der aktuellen Stellung 702 zur Zeit tk und den Zuständen der vergangenen Position p und der Orientierung q eliminiert werden. Die Transformation kann als Folgendes präsentiert werden: C ( L , p t k , q t k ) C ( p t k , q t k ..., q t k 1, p t k 1 )
    Figure DE102020211472A1_0032
  • Die von dem exterozeptiven Sensor 104 erhaltenen Beschränkungen können mit den durch die IMU bereitgestellten zeitlichen Beschränkungen kombiniert werden, um die finale Position und Orientierung der Vorrichtung zu schätzen. Die zeitlichen Beschränkungen von der IMU können basierend auf der Differenz zwischen dem Zustand, der durch Propagieren des vorherigen Zustands Xk-1 unter Verwendung der IMU-Messungen geschätzt wird, und dem Zustand, der durch das Vorhersagemodell fpred vorhergesagt wird, geschätzt werden. In dem offenbarten Ansatz kann ein adaptives Vorhersagemodell verwendet werden, das von der durch den IMU-Fusionshub bestimmten Aktivität abhängt. Zusätzlich kann auch ein Residuum für den exterozeptiven Sensor 104 berechnet werden. Die Residuen können als Folgendes ausgedrückt werden: r i m u = f ( X k 1 , α ˜ , ω ˜ , δ t f ) f p r e d ( X k 1 , t , A k t i v i t t )
    Figure DE102020211472A1_0033
    r e x t = h ( X , t ) Z
    Figure DE102020211472A1_0034
    h = π ( K i ( R i l j p i ) )
    Figure DE102020211472A1_0035
    wobei Ij Landmarken und ihre entsprechenden Messungen im Bildframe i als Z={zij} repräsentiert. Der Term rext repräsentiert den Neuprojektionsfehler. Der Term Ki ∈R3x3 repräsentiert die intrinsiche Matrix, der Term Ri ∈SO(3) repräsentiert die Rotation und der Term pi repräsentiert die Translation. Die Funktion π(x,y,z) = [x/z, y/z]. Eine Kostenfunktion kann als eine Funktion der Residuen wie folgt definiert werden: X i = a r g m i n x r i m u i + r e x t T
    Figure DE102020211472A1_0036
  • Die Anwendungsverarbeitungseinheit 102 kann programmiert sein, eine Strategie zum Minimieren der Kostenfunktion zu implementieren. Gleichung (26) repräsentiert ein Least-Square-Minimierungsproblem, das unter Verwendung von Gauß-Newton- oder Lavenberg-Marquert-Optimierungstechniken gelöst werden kann. Die mit der IMU-Vorhersage assoziierte Kovarianz wird durch Σ2 repräsentiert. Die mit der Messung des exterozeptiven Sensors assoziierte Kovarianz wird durch Σ, repräsentiert.
  • Moderne IMU-Fusionshubs beinhalten ein Aktivitätserkennungsmerkmal, das den Bewegungszustand eines Systems als stationär, während des Laufens in der Hand befindlich, im Fahrzeug befindlich usw. identifiziert. Gleichermaßen werden die Richtung des Schwerkraftvektors und die IMU-Biases auch im IMU-Fusionshub geschätzt. Die durch den IMU-Fusionshub durchgeführte Schätzung ist vom Tracking-Algorithmus unabhängig und berücksichtigt die Charakteristiken der IMU. Der IMU-Fusionshub liefert Schätzungen, die als zusätzliche Eingaben in den inertialgestützten Tracking-Algorithmus verwendet werden können.
  • Mehrere unterschiedliche Berechnungseinheiten sind zwischen der Rohsensoreingabe und der verarbeiteten hochfrequenten Positions- und Orientierungsausgabe vorhanden. Diese Unterteilung der Berechnung ermöglicht einen höheren Durchsatz, während die Belastung des Anwendungsprozessors reduziert wird. Beispielsweise kann die IMU einen Prozessor beinhalten, und der exterozeptive Sensor 104 kann einen entsprechenden Prozessor aufweisen. Zusätzlich kann der Anwendungsprozessor eine Anwendung ausführen, die die Tracking-Daten verwendet, und kann eine Verarbeitung durchführen.
  • Bestehende Ansätze vernachlässigen häufig die verschiedenen Berechnungseinheiten und verlassen sich auf den Anwendungsprozessor für die gesamte Sensorfusion. Das vorgeschlagene System kann jedoch implementiert werden, um eine verfügbare Anzahl von Berechnungseinheiten auszunutzen. 8 präsentiert eine erste beispielhafte Systemarchitektur 800 für ein typisches Smartphone-basiertes System mit einem dedizierten Nur-IMU-Fusionskem 804 wie etwa BH160 von Bosch Sensortech und einem Sensorverarbeitungskern 804 wie etwa Pixel-Visual-Kern. Die Systemarchitektur 800 kann die IMU 106 beinhalten. Die Systemarchitektur 800 kann einen Nur-IMU-Fusionskern 804 beinhalten, der mit der IMU 106 assoziiert und/oder mit dieser integriert ist. Der Nur-IMU-Fusionskern 804 kann eine Verarbeitungseinheit oder eine Steuerung beinhalten, die dazu ausgelegt ist, ein Programm oder Anweisungen zur Verarbeitung von Messungen von der IMU 106 auszuführen.
  • Die Systemarchitektur 800 kann den exterozeptiven Sensor 104 beinhalten. Die Systemarchitektur 800 kann einen Sensorverarbeitungskern 806 beinhalten, der mit dem exterozeptiven Sensor 104 assoziiert und/oder mit diesem integriert ist. Der Sensorverarbeitungskern 806 kann eine Verarbeitungseinheit oder eine Steuerung beinhalten, die dazu ausgelegt ist, ein Programm oder Anweisungen zur Verarbeitung von Messungen vom exterozeptiven Sensor 104 auszuführen. In manchen Beispielen kann der exterozeptive Sensor 104 eine Kamera sein, die Teil eines Smartphones ist.
  • Die Systemarchitektur 800 kann einen Anwendungsprozessor 802 beinhalten. Beispielsweise kann der Anwendungsprozessor 802 eine Berechnungseinheit eines Smartphones sein. Der Anwendungsprozessor 802 kann mit einem oder mehreren Anwendungsprogrammen programmiert sein. Beispielsweise kann der Anwendungsprozessor 802 mit einer ersten Anwendung 812 und einer zweiten Anwendung 814 programmiert sein. Der Anwendungsprozessor 802 kann ferner programmiert sein, ein IMU-Exterozeptiver-Sensor-Fusionsmerkmal 808 zu implementieren. Das IMU-Exterozeptiver-Sensor-Fusionsmerkmal 808 kann dazu ausgelegt sein, die oben beschriebenen Sensorfusionsstrategien zu implementieren.
  • Der Anwendungsprozessor 802 kann ferner programmiert sein, eine Anwendungsprogrammierschnittstelle (API) 810 zu implementieren. Die Schnittstellen-API 810 kann dazu ausgelegt sein, eine Schnittstelle zwischen dem Sensorverarbeitungskern 806, dem IMU-Exterozeptiver-Sensor-Fusionsmerkmal 808 und der ersten Anwendung 812 und der zweiten Anwendung 814 bereitzustellen. Die Schnittstellen-API 810 kann Routinen und Schnittstellen zum Ermöglichen der Kommunikation zwischen den Sensoren und Softwareelementen definieren.
  • Der Nur-lMU-Fusionskern 804 kann Algorithmen implementieren, die die Nullgeschwindigkeit zur Bias-Korrektur und Schwerkraftschätzung ausnutzen. Die Ausgabe des Hardwarefusionskerns kann mit Schwerkraft-, Bias- und Bewegungszustandsschätzungen verwendet werden. Der Sensorverarbeitungskern 806 kann dazu ausgelegt sein, Funktionen wie etwa Merkmalsextraktion, Merkmalsabgleich und Sensorkonditionierung durchzuführen, die für den exterozeptiven Sensor 104 spezifisch sind. Das IMU-Exterozeptiver-Sensor-Fusionsmerkmal 808 ist hierin oben ausführlich beschrieben. In diesem Beispiel wird das IMU-Exterozeptiver-Sensor-Fusionsmerkmal 808 durch den Anwendungsprozessor 802 implementiert. Der Anwendungsprozessor 802 kann programmiert sein, Code auszuführen, der als eine Schnittstellen-API 810 zwischen dem Sensorvorverarbeitungskern 806 und dem IMU-Exterozeptiver-Sensor-Fusionsmerkmal 808 agiert. Das Vorhandensein der Schnittstellen-API 810 auf dem Anwendungsprozessor 802 erhöht die Flexibilität bei der Auswahl der exterozeptiven Sensoren 104 und entfernt eine jegliche Hardwareabhängigkeit zur Synchronisation über physische Drähte.
  • 9 präsentiert eine zweite mögliche Architektur 900, in der das IMU-Exterozeptiver-Sensor-Fusionsmerkmal 808 in einen IMU-Exterozeptiver-Sensor-Fusionskern 908 abgeladen ist. Die zweite Architektur 900 beinhaltet einen Anwendungsprozessor 902, der Teil eines Smartphones sein kann. Der IMU-Exterozeptiver-Sensor-Fusionskern 908 kann eine Verarbeitungseinheit oder eine Steuerung beinhalten, die dazu ausgelegt ist, ein Programm oder Anweisungen zum Implementieren des IMU-Exterozeptiver-Sensor-Fusionsmerkmals auszuführen. Die zweite Architektur 900 entfernt einen Verarbeitungsaufwand vom Anwendungsprozessor 902. In manchen Konfigurationen können der IMU-Exterozeptiver-Sensor-Fusionskern 908 und der Nur-IMU-Fusionskern 804 in eine einzelne Einheit integriert sein.
  • Der Anwendungsprozessor 902 kann mit einer ersten Anwendung 912 und einer zweiten Anwendung 914 programmiert sein. Der Anwendungsprozessor 902 kann ferner programmiert sein, eine Schnittstellen-API 910 zu implementieren. Die Schnittstellen-API 910 kann dazu ausgelegt sein, eine Schnittstelle zwischen dem Sensorverarbeitungskern 806, dem IMU-Exterozeptiver-Sensor-Fusionskern 908 und der ersten Anwendung 912 und der zweiten Anwendung 914 bereitzustellen.
  • Ein Vorteil dieser Konfiguration besteht darin, dass der Anwendungsprozessor 902 (und Entwickler/Programmierer) von der Aufgabe des Fusionierens der Sensordaten befreit wird. Einem Entwickler kann ermöglicht werden, Anwendungen zu erzeugen, ohne die Sensorfusionsaufgabe in Betracht zu ziehen. Die Anwendungsprogramme 912, 914 können unter Verwendung der API 910 auf die Tracking-Daten zugreifen. Die API 910 liefert Flexibilität bei der Auswahl von exterozeptiven Sensoren und IMUs.
  • Als ein Beispiel können die in 2 beschriebenen Merkmale durch unterschiedliche Sensoren ausgeführt werden. Der Merkmalsextraktionsblock 204 kann im Sensorverarbeitungskern 806 implementiert werden. Der Merkmalsabgleichblock 206 kann im Sensorverarbeitungskern 806 implementiert werden. Informationen bezüglich der Bewegungsvorhersage können durch die API 910 laufen. Der Minimal Solver 208 und die Beschränkungsmarginalisierung können im Anwendungsprozessor 902 implementiert werden. Die zeitliche Synchronisation 212, die Inertial-Koordinatenausrichtung 214, die Bewegungsvorhersage 216, die Beschränkungsaggregation 218 und die inertialgestützte Optimierung 220 können im IMU-Exterozeptiver-Sensor-Fusionskern 908 implementiert werden. Die Vorintegration 230, die Schwerkraftschätzung 224, die Aktivitätserkennung 226 und die Bias-Schätzung 228 können in dem Nur-IMU-Fusionskern 804 implementiert werden.
  • 10 stellt ein Flussdiagramm 1000 für eine mögliche Abfolge von Operationen für ein Positions- und Orientierungs-Tracking-System dar. Bei Operation 1002 kann eine Steuerung Daten vom exterozeptiven Sensor empfangen. Die ES-Daten können mit einer ersten Rate empfangen werden und können ES-Orientierungsdaten beinhalten. Bei Operation 1004 kann die Steuerung Anweisungen zum Vorhersagen von Positions- und Orientierungsänderungen über ein Zeitintervall basierend auf den ES-Daten implementieren. Die Änderung kann auf einer Differenz zwischen den jüngsten ES-Daten über ein durch die erste Rate definiertes Zeitintervall basieren. Die Vorhersage der Änderung kann wie hierin zuvor beschrieben stattfinden. Bei Operation 1006 kann die Steuerung Daten von der IMU empfangen. Die IMU-Daten können mit einer zweiten Rate empfangen werden, die asynchron mit der ersten Rate des ES ist, und beinhalten IMU-Orientierungsdaten. Bei Operation 1008 kann die Steuerung Anweisungen zum Vorhersagen der Positions- und Orientierungsänderungen über das Zeitintervall basierend auf den IMU-Daten implementieren.
  • Bei Operation 1010 kann die Steuerung den Zeitversatz wie hierin zuvor beschrieben erzeugen. Der Zeitversatz kann einen Fehler zwischen der durch den ES vorhergesagten Änderung und der durch die IMU vorhergesagten Änderung minimieren, sodass Wellenformen oder Zeitreihen, die mit den ES- und IMU-vorhergesagten Änderungen assoziiert sind, zeitlich ausgerichtet werden. In einem Beispiel kann der Fehler unter Verwendung eines Algorithmus mit endlicher Impulsantwort minimiert werden. Ein finaler Zeitversatz kann als eine Menge an Zeit geschätzt werden, die eine Distanz zwischen Zuständen minimiert, die durch ein Modell, das die Zustände basierend auf IMU-Abtastdaten schätzt, und ein Modell, das die Zustände basierend auf ES-Abtastdaten vorhersagt, die um den Zeitversatz verschoben sind, geschätzt werden. Der Zeitversatz synchronisiert die durch den exterozeptiven Sensor und die IMU erzeugten Signale zu einem gemeinsamen Zeitbereich. Durch das Ausrichten der Signale zu einem gemeinsamen Zeitbereich können die synchronisierten Sensorausgabewerte der Sensoren die Position und Orientierung einer assoziierten Vorrichtung zur gleichen Zeit repräsentieren. Bei Operation 1012 kann die Steuerung den Zeitversatz anwenden. Beispielsweise kann der Zeitversatz zu dem Zeitstempel der ES-Daten addiert werden, sodass diese mit den IMU-Daten ausgerichtet werden. Bei Operation 1014 kann die Steuerung den Tracking-Zustand wie hierin zuvor beschrieben schätzen. Bei Operation 1016 kann die Steuerung die Vorrichtung gemäß dem Tracking-Zustand betreiben. Der Betrieb der Vorrichtung kann von der speziellen Anwendung abhängen. Beispielsweise kann eine AR-/VR-Anwendung virtuelle Objekte auf ein angezeigtes Bild überlagern, das Bilddaten der umliegenden Umgebung beinhaltet.
  • Die hier offenbarten Prozesse, Verfahren oder Algorithmen können lieferbar sein an/implementiert werden durch eine Verarbeitungsvorrichtung, eine Steuerung oder einen Computer, welche bzw. welcher eine beliebige existierende programmierbare elektronische Steuereinheit oder dedizierte elektronische Steuereinheit beinhalten kann. Gleichermaßen können die Prozesse, Verfahren oder Algorithmen als Daten und durch eine Steuerung oder einen Computer ausführbare Anweisungen in vielen Formen gespeichert werden, unter anderem einschließlich Informationen, die auf nichtbeschreibbaren Speichermedien, wie etwa ROM-Vorrichtungen, permanent gespeichert sind, und Informationen, die auf beschreibbaren Speichermedien, wie etwa Disketten, Magnetbändern, CDs, RAM-Vorrichtungen und anderen magnetischen und optischen Medien, änderbar gespeichert sind. Die Prozesse, Verfahren oder Algorithmen können auch in einem ausführbaren Software-Objekt implementiert sein. Alternativ können die Prozesse, Verfahren oder Algorithmen in Gänze oder teilweise unter Verwendung geeigneter Hardwarekomponenten umgesetzt werden, wie etwa anwendungsspezifischer integrierter Schaltungen (ASICs), feldprogrammierbarer Gate-Arrays (FPGAs), Zustandsmaschinen, Steuerungen oder anderer Hardwarekomponenten oder -vorrichtungen oder einer Kombination von Hardware-, Software- und Firmwarekomponenten.
  • Obgleich oben beispielhafte Ausführungsformen beschrieben sind, ist es nicht beabsichtigt, dass diese Ausführungsformen alle möglichen durch die Ansprüche eingeschlossenen Formen beschreiben. Die in der Beschreibung verwendeten Ausdrücke sind eher Ausdrücke der Beschreibung statt der Beschränkung und es versteht sich, dass verschiedene Änderungen vorgenommen werden können, ohne von dem Gedanken und dem Schutzumfang der Offenbarung abzuweichen. Wie zuvor beschrieben wurde, können die Merkmale verschiedener Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung auszubilden, die möglicherweise nicht explizit beschrieben oder veranschaulicht wurden. Obgleich verschiedene Ausführungsformen als Vorteile ergebend oder gegenüber anderen Ausführungsformen oder Implementierungen im Stand der Technik bezüglich einer oder mehrerer erwünschter Charakteristiken bevorzugt beschrieben worden sein können, erkennen Durchschnittsfachleute auf dem Gebiet, dass ein oder mehrere Merkmale oder Charakteristiken beeinträchtigt werden können, um erwünschte Gesamtsystemattribute zu erzielen, die von der speziellen Anwendung und Implementierung abhängen. Diese Attribute können unter anderem Kosten, Stärke, Haltbarkeit, Lebenszykluskosten, Vermarktungsfähigkeit, Erscheinungsbild, Aufmachung, Größe, Wartbarkeit, Gewicht, Herstellbarkeit, Montagefreundlichkeit usw. beinhalten. Von daher liegen jegliche in dem Maße als weniger wünschenswert als andere Ausführungsformen oder Implementierungen im Stand der Technik bezüglich einer oder mehrerer Charakteristiken beschriebene Ausführungsformen nicht außerhalb des Schutzumfangs der Offenbarung und können für gewisse Anwendungen wünschenswert sein.

Claims (20)

  1. Verfahren zum Tracking von Position und Orientierung einer Vorrichtung, umfassend: durch eine Steuerung, Vorhersagen eines ersten Tracking-Zustands der Vorrichtung unter Verwendung von Messungen von einem exterozeptiven Sensor (ES), der mit einer ersten Rate abgetastet wird; Erzeugen eines zweiten Tracking-Zustands der Vorrichtung unter Verwendung von Messungen von einer inertialen Messeinheit (IMU), die mit einer zweiten Rate abgetastet wird, die asynchron zu der ersten Rate ist; Synchronisieren des ersten und zweiten Tracking-Zustands zu einem gemeinsamen Zeitbereich durch Schätzen eines Zeitversatzes, der einen Fehler zwischen Änderungen im Laufe der Zeit zwischen dem ersten und zweiten Tracking-Zustand minimiert, sodass eine erste Zeitreihe, die mit dem ersten Tracking-Zustand assoziiert ist, und eine zweite Zeitreihe, die mit dem zweiten Tracking-Zustand assoziiert ist, zeitlich ausgerichtet sind; Ausrichten des ersten Tracking-Zustands und des zweiten Tracking-Zustands zu einem Inertial-Referenzrahmen; und Erzeugen eines inertialgestützten Tracking-Zustands durch Minimieren einer Kostenfunktion, die einen ersten Residuum-Term, der vom Propagieren einer vorherigen Zustandsschätzung unter Verwendung des zweiten Tracking-Zustands, verschoben um den Zeitversatz, abgeleitet wird, und einen zweiten Residuum-Term, der vom ersten Tracking-Zustand abgeleitet wird, beinhaltet.
  2. Verfahren nach Anspruch 1, ferner umfassend Vorhersagen des ersten Tracking-Zustands durch Suchen nach einer Zustandsschätzung, die einen Messfehler bezüglich eines Satzes von Beobachtungen minimiert, wobei für den ES spezifische Bewegungszustände in einem lokalen Koordinatenrahmen liegen.
  3. Verfahren nach Anspruch 2, ferner umfassend Erzeugen einer Transformation, um den lokalen Koordinatenrahmen mit einem Inertial-Referenzrahmen unter Verwendung eines Schwerkraftvektors von der IMU auszurichten.
  4. Verfahren nach Anspruch 1, ferner umfassend Vorhersagen einer ersten Orientierungsänderung basierend auf einer Differenz zwischen jüngsten Vorhersagen des ersten Tracking-Zustands über ein Zeitintervall, das durch die erste Rate definiert wird, und Vorhersagen einer zweiten Orientierungsänderung basierend auf dem zweiten Tracking-Zustand über das Zeitintervall.
  5. Verfahren nach Anspruch 4, ferner umfassend Vorhersagen der zweiten Orientierungsänderung durch Integrieren von Abtastungen des zweiten Tracking-Zustands über das Zeitintervall.
  6. Verfahren nach Anspruch 5, wobei die zweite Rate größer ist als die erste Rate, und eine vorbestimmte Anzahl, basierend auf einem Verhältnis der ersten Rate zur zweiten Rate, von Abtastungen von der IMU integriert wird, um die zweite Änderung vorherzusagen.
  7. Verfahren nach Anspruch 1, ferner umfassend Minimieren des Fehlers unter Verwendung eines Optimierungsalgorithmus.
  8. Positions- und Orientierungs-Tracking-System für eine Vorrichtung, umfassend: eine Steuerung in Kommunikation mit einem exterozeptiven Sensorkern, die einen exterozeptiven Sensor mit einer ersten Rate abtastet und einen ersten Satz von Messdaten erzeugt, und einer inertialen Messeinheit (IMU), die IMU-Sensoren mit einer zweiten Rate, die asynchron zu der ersten Rate ist, abtastet und einen zweiten Satz von Messdaten erzeugt, programmiert zum Verfolgen einer Bewegung der Vorrichtung gemäß einem Tracking-Zustand, der durch Synchronisieren des ersten und zweiten Satzes von Messdaten zu einem gemeinsamen Zeitbereich abgeleitet wird, wobei der erste und zweite Satz von Messdaten durch Versetzen eines der Sätze um einen Zeitversatz synchronisiert werden, der einen Gesamtfehler zwischen einer Orientierungsänderung der Vorrichtung, die durch den ersten Satz von Messdaten über ein durch die erste Rate definiertes Zeitintervall vorhergesagt wird, und einer Orientierungsänderung der Vorrichtung, die durch den zweiten Satz von Messdaten über das Zeitintervall vorhergesagt wird, minimiert.
  9. System nach Anspruch 8, wobei der exterozeptive Sensor eine Kamera ist.
  10. System nach Anspruch 8, wobei der Tracking-Zustand eine Position der Vorrichtung und/oder eine Geschwindigkeit der Vorrichtung und/oder eine Orientierung der Vorrichtung beinhaltet.
  11. System nach Anspruch 8, wobei die Steuerung ferner programmiert ist, den Zeitversatz mit einer Menge an Zeit zu aktualisieren, die eine Distanz zwischen Bewegungszuständen minimiert, die durch ein Modell, das eine Vorrichtungsbewegung basierend auf dem zweiten Satz von Messdaten vorhersagt, und ein Modell, das eine Vorrichtungsbewegung basierend auf dem ersten Satz von Messdaten vorhersagt, die um den Zeitversatz und die Menge an Zeit verschoben sind, geschätzt werden.
  12. System nach Anspruch 8, wobei die Steuerung ferner programmiert ist, einen Aktivitätstyp zu empfangen, der auf IMU-Daten basiert, und den Aktivitätstyp zu dem exterozeptiven Sensorkern zu transferieren.
  13. System nach Anspruch 8, wobei die Steuerung programmiert ist, einen Aktivitätstyp zu empfangen, der auf IMU-Daten basiert, und ein Modell zum Schätzen des Tracking-Zustands basierend auf dem Aktivitätstyp zu ändern.
  14. System nach Anspruch 13, wobei die Steuerung ferner programmiert ist, den Tracking-Zustand durch Minimieren einer Kostenfunktion zu schätzen, die eine Differenz zwischen dem Tracking-Zustand, der durch Propagieren eines vorherigen, aus dem zweiten Satz von Messdaten abgeleiteten Tracking-Zustands geschätzt wird, und dem Tracking-Zustand, der durch das Modell basierend auf dem Aktivitätstyp vorhergesagt wird, beinhaltet.
  15. System nach Anspruch 8, wobei die Steuerung ferner programmiert ist, ein Optimierungsverfahren zum Minimieren des Gesamtfehlers durchzuführen.
  16. Einrichtung zum Synchronisieren von Messdaten von einer inertialen Messeinheit (IMU) und einem exterozeptiven Sensor (ES), ohne ein gemeinsames elektrisches Messungsauslösesignal zwischen diesen, umfassend: eine Steuerung in Kommunikation mit einem exterozeptiven Sensorkern, der dazu ausgelegt ist, einen exterozeptiven Sensor mit einer ersten Rate abzutasten, und einer inertialen Messeinheit (IMU), die dazu ausgelegt ist, IMU-Sensoren mit einer zweiten Rate, die asynchron zu dem exterozeptiven Sensor ist, abzutasten, programmiert zum Vorhersagen einer ersten Orientierungsänderung basierend auf einer Differenz zwischen jüngsten ES-Orientierungsdaten über ein Zeitintervall, das durch die erste Rate definiert wird, Vorhersagen einer zweiten Orientierungsänderung basierend auf IMU-Orientierungsdaten über das Zeitintervall und Versetzen von Messdaten von dem ES um einen Zeitversatz, der einen Fehler zwischen der ersten Änderung und der zweiten Änderung minimiert, sodass eine erste Zeitreihe, die mit der ersten Änderung assoziiert ist, und eine zweite Zeitreihe, die mit der zweiten Änderung assoziiert ist, zeitlich ausgerichtet sind.
  17. Einrichtung nach Anspruch 16, wobei die Steuerung ferner programmiert ist, den Zeitversatz mit einer Menge an Zeit zu aktualisieren, die eine Distanz zwischen Tracking-Zuständen minimiert, die durch ein Modell, das die Zustände basierend auf den IMU-Daten vorhersagt, und ein Modell, das die Zustände basierend auf exterozeptiven Sensordaten vorhersagt, die um den Zeitversatz verschoben sind, geschätzt werden.
  18. Einrichtung nach Anspruch 16, wobei die Steuerung ferner programmiert ist, einen Aktivitätstyp zu empfangen, der auf IMU-Daten basiert, und den Aktivitätstyp zu dem exterozeptiven Sensorkern zu transferieren.
  19. Einrichtung nach Anspruch 16, wobei die Steuerung ferner programmiert ist, eine Integration abgetasteter IMU-Daten über das Zeitintervall zum Vorhersagen der zweiten Rotationsänderung durchzuführen.
  20. Einrichtung nach Anspruch 16, wobei die Steuerung ferner programmiert ist, einen Tracking-Zustand einer Vorrichtung unter Verwendung des Zeitversatzes zu schätzen, um ein zur Erzeugung des Tracking-Zustands verwendetes Signal zeitlich zu verschieben.
DE102020211472.2A 2019-09-12 2020-09-14 System und verfahren zur verbesserung eines nicht inertialen tracking-systems mit inertialen beschränkungen Pending DE102020211472A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/569,024 2019-09-12
US16/569,024 US11181379B2 (en) 2019-09-12 2019-09-12 System and method for enhancing non-inertial tracking system with inertial constraints

Publications (1)

Publication Number Publication Date
DE102020211472A1 true DE102020211472A1 (de) 2021-03-18

Family

ID=73149763

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020211472.2A Pending DE102020211472A1 (de) 2019-09-12 2020-09-14 System und verfahren zur verbesserung eines nicht inertialen tracking-systems mit inertialen beschränkungen

Country Status (4)

Country Link
US (1) US11181379B2 (de)
CN (1) CN112484719A (de)
DE (1) DE102020211472A1 (de)
GB (1) GB2590117B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL253770B2 (en) * 2017-07-31 2023-02-01 Israel Aerospace Ind Ltd Determination of azimuth during flight
JP7337617B2 (ja) * 2019-09-17 2023-09-04 株式会社東芝 推定装置、推定方法及びプログラム
US20210102804A1 (en) * 2019-10-02 2021-04-08 Top Measure Instrument Company Automatic electronic rangefinder
CN113945206B (zh) * 2020-07-16 2024-04-19 北京图森未来科技有限公司 一种基于多传感器融合的定位方法及装置
CN113324542B (zh) * 2021-06-07 2024-04-12 北京京东乾石科技有限公司 一种定位方法、装置、设备和存储介质
CN113392909B (zh) * 2021-06-17 2022-12-27 深圳市睿联技术股份有限公司 数据处理方法、数据处理装置、终端及可读存储介质
CN114485760B (zh) * 2022-01-26 2023-10-31 震坤行工业超市(上海)有限公司 传感器校准方法、电子设备、介质及系统
US20230400306A1 (en) * 2022-06-14 2023-12-14 Volvo Car Corporation Localization for autonomous movement using vehicle sensors

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9766074B2 (en) * 2008-03-28 2017-09-19 Regents Of The University Of Minnesota Vision-aided inertial navigation
US8676498B2 (en) * 2010-09-24 2014-03-18 Honeywell International Inc. Camera and inertial measurement unit integration with navigation data feedback for feature tracking
WO2013134559A1 (en) * 2012-03-07 2013-09-12 Speir Technologies Inc. Methods and systems for tracking and guiding sensors and instruments
US9116001B2 (en) 2012-06-14 2015-08-25 Qualcomm Incorporated Adaptive estimation of frame time stamp latency
US10012504B2 (en) * 2014-06-19 2018-07-03 Regents Of The University Of Minnesota Efficient vision-aided inertial navigation using a rolling-shutter camera with inaccurate timestamps
US9406171B2 (en) * 2014-08-25 2016-08-02 Daqri, Llc Distributed aperture visual inertia navigation
WO2016077703A1 (en) 2014-11-13 2016-05-19 Worcester Polytechnic Institute Gyroscope assisted scalable visual simultaneous localization and mapping
US9489045B2 (en) * 2015-03-26 2016-11-08 Honeywell International Inc. Methods and apparatus for providing a snapshot truthing system for a tracker
DE102015209132A1 (de) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Verfahren zum Betreiben eines Inertialsensors und eines Fahrzeugs, Fahrzeug
US9555883B1 (en) 2015-06-25 2017-01-31 Amazon Technologies, Inc. Unmanned aerial vehicle sensor synchronization
CN109073389B (zh) * 2016-04-14 2023-04-11 欧利景无线有限公司 用于物体跟踪的方法、装置、服务器和系统
US10162362B2 (en) * 2016-08-29 2018-12-25 PerceptIn, Inc. Fault tolerance to provide robust tracking for autonomous positional awareness
US10444761B2 (en) * 2017-06-14 2019-10-15 Trifo, Inc. Monocular modes for autonomous platform guidance systems with auxiliary sensors
CN107255476B (zh) * 2017-07-06 2020-04-21 青岛海通胜行智能科技有限公司 一种基于惯性数据和视觉特征的室内定位方法和装置
JP2019074532A (ja) 2017-10-17 2019-05-16 有限会社ネットライズ Slamデータに実寸法を付与する方法とそれを用いた位置測定
CN107869989B (zh) * 2017-11-06 2020-02-07 东北大学 一种基于视觉惯导信息融合的定位方法及系统

Also Published As

Publication number Publication date
CN112484719A (zh) 2021-03-12
US20210080259A1 (en) 2021-03-18
GB202014413D0 (en) 2020-10-28
GB2590117B (en) 2024-04-10
GB2590117A (en) 2021-06-23
US11181379B2 (en) 2021-11-23

Similar Documents

Publication Publication Date Title
DE102020211472A1 (de) System und verfahren zur verbesserung eines nicht inertialen tracking-systems mit inertialen beschränkungen
US10203209B2 (en) Resource-aware large-scale cooperative 3D mapping using multiple mobile devices
EP3679549B1 (de) Visuelle-inertiale odometrie mit einer ereigniskamera
CN107990899B (zh) 一种基于slam的定位方法和系统
Leutenegger et al. Keyframe-based visual–inertial odometry using nonlinear optimization
Hu et al. A sliding-window visual-IMU odometer based on tri-focal tensor geometry
Heng et al. Self-calibration and visual slam with a multi-camera system on a micro aerial vehicle
CN110211151B (zh) 一种运动物体的追踪方法和装置
CN109885080A (zh) 自主控制系统及自主控制方法
US20160005164A1 (en) Extrinsic parameter calibration of a vision-aided inertial navigation system
US8229249B2 (en) Spatial motion calculation apparatus and method for the same
Mourikis et al. A dual-layer estimator architecture for long-term localization
CN109298629A (zh) 用于为自主和非自主位置意识提供鲁棒跟踪的容错
US20180075614A1 (en) Method of Depth Estimation Using a Camera and Inertial Sensor
CN111145251A (zh) 一种机器人及其同步定位与建图方法和计算机存储设备
CN111623773B (zh) 一种基于鱼眼视觉和惯性测量的目标定位方法及装置
Kaess et al. Concurrent filtering and smoothing
Tomažič et al. Fusion of visual odometry and inertial navigation system on a smartphone
EP3938870A1 (de) Feste hologramme in mobilen umgebungen
CN112945227A (zh) 定位方法和装置
Bloesch State estimation for legged robots-kinematics, inertial sensing, and computer vision
Caruso et al. An inverse square root filter for robust indoor/outdoor magneto-visual-inertial odometry
JP7145770B2 (ja) 車間距離測定装置、誤差モデル生成装置および学習モデル生成装置とこれらの方法およびプログラム
CN107808360B (zh) 一种端到端自动驾驶系统的数据处理方法及装置
DE112014006164T5 (de) Fahrrichtungs-Informationsausgabevorrichtung, Kartenabgleichsvorrichtung, Fahrrichtungs-Informationsausgabeverfahren und Programm

Legal Events

Date Code Title Description
R012 Request for examination validly filed