DE102022111926A1 - Verfahren und Vorrichtung für eine tiefengestützte visuelle Trägheitsodometrie - Google Patents

Verfahren und Vorrichtung für eine tiefengestützte visuelle Trägheitsodometrie Download PDF

Info

Publication number
DE102022111926A1
DE102022111926A1 DE102022111926.2A DE102022111926A DE102022111926A1 DE 102022111926 A1 DE102022111926 A1 DE 102022111926A1 DE 102022111926 A DE102022111926 A DE 102022111926A DE 102022111926 A1 DE102022111926 A1 DE 102022111926A1
Authority
DE
Germany
Prior art keywords
depth
residual
feature
imu
anchor frame
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
DE102022111926.2A
Other languages
English (en)
Inventor
Abhishek Tyagi
Dongwoon Bai
Shuangquan Wang
Yangwen Liang
Vignesh Sethuraman
Xue Li
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102022111926A1 publication Critical patent/DE102022111926A1/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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • 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
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Navigation (AREA)
  • Image Analysis (AREA)

Abstract

Ein Verfahren und eine Vorrichtung sind zum Durchführen einer visuellen Trägheitsodometrie (VIO) vorgesehen. Es werden Messwerte von einer inertialen Messeinheit (IMU), einer Kamera und einem Tiefensensor verarbeitet. Der Keyframe-Restwert, der zumindest einen Tiefenrestwert beinhaltet, wird basierend auf den verarbeiteten Messwerten bestimmt. Ein Gleitfenstergraph wird basierend auf Faktoren erzeugt und optimiert, die von dem Keyframe-Restwert abgeleitet werden. Eine Objektpose wird basierend auf dem optimierten Gleitfenstergraphen geschätzt.

Description

  • Priorität
  • Die vorliegende Anmeldung basiert auf und beansprucht die Priorität der am 24. Mai 2021 beim US-Patent- und Markenamt eingereichten vorläufigen US-Patentanmeldung mit der zugewiesenen Nummer 63/192,488 , deren Inhalt hierin durch Verweis aufgenommen ist.
  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft im Allgemeinen ein visuelles Trägheitsodometriesystem und insbesondere ein visuelles Trägheitsodometrie- (VIO-) System, welches Tiefenmesswerte in einer visuellen und trägheitsbezogenen Messung beinhaltet.
  • Hintergrund
  • In modernen Smartphones hat sich die Anzahl von Sensoren vergrößert, welche für eine Positionsbestimmung in einer Augmented-Reality- (AR-) oder einer dreidimensionalen Rekonstruktions- (3DR-) Anwendung verwendet werden können. Verschiedene Arten von simultanen Positionsbestimmungs- und Kartierungs- (SLAM-) Systemen beinhalten ausschließlich visuelle SLAM-Systeme und durch eine inertiale Messeinheit (IMU) gestützte visuelle SLAM-Systeme, die als VIO-Systeme bezeichnet werden. Ausschließlich visuelle SLAM-Systeme, die sowohl Kamera- als auch Tiefensensoren zum Schätzen einer Kameratrajektorie verwenden, beinhalten einen Oriented-Fast-and-Rotated-Brief- (ORB-) SLAM einer Version 2 (SLAM2) und einen Red-Green-Blue-Depth- (RGBD-) SLAM. Diese beiden Systeme verwenden Tiefenmesswerte zur Verbesserung einer Posenschätzung, die durch das zweidimensionale (2D-) merkmalbasierte ausschließlich visuelle SLAM-System durchgeführt wird.
  • VIO-Systeme werden beim Nachverfolgen von sechs Freiheitsgraden (6DOF) für eine Objektpose unter Verwendung von Daten von einem Kamerabild (z. B. visuellen Daten) und einer IMU verwendet. Die VIO-Systeme verwenden eindeutige Merkmale, welche in Kamerabildern, Beschleunigungsmesserdaten und Gyroskopdaten nachverfolgt werden, als Messwerte zur Schätzung der Objektpose durch ein eng gekoppeltes System, das mathematische Optimierungstechniken verwendet.
  • Kurzfassung
  • Gemäß einer Ausführungsform ist ein Verfahren zur Durchführung einer VIO an einer Benutzervorrichtung (UE) bereitgestellt. Messwerte werden von einer IMU, einer Kamera und einem Tiefensensor der UE verarbeitet. Ein Keyframe-Restwert, der zumindest einen Tiefenrestwert beinhaltet, wird basierend auf den verarbeiteten Messwerten bestimmt. Ein Gleitfenstergraph wird basierend auf Faktoren erzeugt und optimiert, welche von dem Keyframe-Restwert abgeleitet werden. Eine Objektpose der UE wird basierend auf dem optimierten Gleitfenstergraphen geschätzt.
  • Gemäß einer Ausführungsform ist eine UE bereitgestellt, welche eine IMU, eine Kamera, einen Tiefensensor, einen Prozessor und ein nichttransitorisches computerlesbares Speichermedium beinhaltet, das Anweisungen speichert. Wenn die Anweisungen ausgeführt werden, bewirken sie, dass der Prozessor Messwerte von der IMU, der Kamera und dem Tiefensensor verarbeitet. Die Anweisungen bewirken zudem, dass der Prozessor den Keyframe-Restwert, der zumindest einen Tiefenrestwert beinhaltet, basierend auf den verarbeiteten Messwerten bestimmt, und einen Gleitfenstergraphen basierend auf Faktoren erzeugt und optimiert, welche von dem Keyframe-Restwert abgeleitet werden. Die Anweisungen bewirken ferner, dass der Prozessor eine Objektpose der UE basierend auf dem optimierten Gleitfenstergraphen schätzt.
  • Figurenliste
  • Die vorstehenden und weiteren Aspekte, Merkmale und Vorteile von bestimmten Ausführungsformen der vorliegenden Offenbarung werden anhand der nachstehenden ausführlichen Beschreibung im Zusammenhang mit der beigefügten Zeichnung näher erläutert. Es zeigen:
    • 1 ein Diagramm, das einen Faktorgraphen von einem monokularen visuellen Trägheitsnavigationssystem (VINS-Mono) darstellt;
    • 2 ein Diagramm, das einen Faktorgraphen für eine MSL-tiefengestützte VIO (DVIO) gemäß einer Ausführungsform darstellt;
    • 3 ein Diagramm, das eine Laufzeit- (TOF-) Kamera gemäß einer Ausführungsform darstellt;
    • 4 ein Diagramm, das strukturierte Lichtsensoren gemäß einer Ausführungsformen darstellt,
    • 5 ein Diagramm, das einen Systemfluss der MSL-DVIO gemäß einer Ausführungsformen darstellt;
    • 6 ein Diagramm, das einen ausführlichen Systemfluss der MSL-DVIO gemäß einer Ausführungsform der Offenbarung darstellt;
    • 7 ein Diagramm, das eine MSL-DVIO-1D-Merkmalsimplementieurng gemäß einer Ausführungsform darstellt;
    • 8 ein Diagramm, das Einzelheiten auf der Implementierung der MSL-DVIO für eine 3D-Merkmalsparameterisierung gemäß einer Ausführungsform darstellt;
    • 9 ein Flussdiagramm, das ein Verfahren zum Durchführen einer VIO an einer UE gemäß einer Ausführungsform darstellt; und
    • 10 ein Blockdiagramm von einer elektronischen Vorrichtung in einer Netzwerkumgebung gemäß einer Ausführungsform.
  • Ausführliche Beschreibung
  • Nachstehend werden Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die beigefügte Beschreibung ausführlich beschrieben. Es wird darauf hingewiesen, dass identische Elemente mit identischen Bezugszeichen gekennzeichnet sind, auch wenn sie in unterschiedliche Figuren gezeigt sind. In der nachstehenden Beschreibung sind bestimmte Details, wie z. B. ausführliche Konfigurationen und Komponenten, lediglich dazu vorgesehen, für ein umfassendes Verständnis der Ausführungsformen der vorliegenden Offenbarung zu sorgen. Daher sollte es für Fachleute offenkundig sein, dass verschiedene Veränderungen und Modifikationen der hierin beschriebenen Ausführungsformen vorgenommen werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Darüber hinaus wird aus Gründen der Übersichtlichkeit auf die Beschreibung von hinreichend bekannten Funktionen und Konstruktion verzichtet. Bei den nachstehend beschriebenen Begriffen handelt es sich um Begriffe, die unter Berücksichtigung der Funktionen in der vorliegenden Offenbarung definiert sind, und können je nach Benutzer, Intention des Benutzers oder Gewohnheit variieren. Die Definitionen der Begriffe sollten basierend auf dem Inhalt der gesamten Beschreibung bestimmt sein.
  • Die vorliegende Offenbarung kann verschiedene Modifikationen und Ausführungsformen aufweisen, von denen einige Ausführungsformen nachstehend unter Bezugnahme auf die beigefügte Zeichnung näher erläutert sein. Es wird darauf hingewiesen, dass die vorliegende Offenbarung nicht auf die Ausführungsformen beschränkt ist, sondern alle Modifikationen, Entsprechungen und Alternativen innerhalb des Schutzbereichs der vorliegenden Offenbarung beinhaltet.
  • Obgleich die Begriffe, die eine Ordinalzahl beinhalten, wie z. B. erste/r/s, zweite/r/s etc., zur Beschreibung unterschiedlicher Elemente verwendet werden können, sind die strukturellen Elemente nicht durch die Begriffe eingeschränkt. Die Begriffe werden lediglich zur Unterscheidung des einen Elements von dem anderen verwendet. Ohne vom Schutzbereich der vorliegenden Offenbarung abzuweichen, kann z. B. ein erstes strukturelles Element als ein zweites strukturelles Element bezeichnet werden. Das zweite strukturelle Element kann auch als das erste strukturelle Element bezeichnet werden. Der hierin verwendete Begriff „und/oder“ beinhaltet alle möglichen Kombinationen von einem oder mehreren zugeordneten Elementen.
  • Die hierin verwendeten Begriffe werden lediglich zur Beschreibung verschiedener Ausführungsformen der vorliegenden Offenbarung verwendet, sind aber nicht als Einschränkung der vorliegenden Offenbarung gedacht. Soweit der Kontext nicht deutlich etwas anderes besagt, sollen in Singularformen auch Pluralformen enthalten sein. In der vorliegenden Offenbarung wird darauf hingewiesen, dass die Begriffe „beinhalten“ oder „aufweisen“ das Vorhandensein von einem Merkmal, einer Zahl, eines Schritts, einer Operation, eines strukturellen Elements, von Teilen oder von einer Kombination aus denselben anzeigt, und das Vorhandensein oder die Wahrscheinlichkeit der Hinzufügung von einer/m oder mehreren anderen Merkmalen, Zahlen, Schritten, Operationen, strukturellen Elementen, Teilen oder Kombinationen aus denselben nicht ausschließt.
  • Soweit sie in ihrer Definition nicht abweichen, haben alle hierin verwendeten Begriffe dieselbe Bedeutung wie jene, wie sie von einem Fachmann auf dem Gebiet der Technik verstanden werden, auf welches sich die vorliegende Offenbarung bezieht. Begriffe, wie z. B. jene, wie sie in einem allgemein verwendeten Wörterbuch definiert sind, sind so zu interpretieren, als hätten sie dieselbe Bedeutung wie im Kontext des einschlägigen Gebiets der Technik, und nicht so, als wäre deren Bedeutung eine ideale oder überaus formale, sofern die vorliegende Offenbarung keine eindeutig Definition dazu enthält.
  • Die elektronische Vorrichtung kann eine von verschiedenen Typen von elektronischen Vorrichtungen sein. Die elektronischen Vorrichtungen können z. B. eine tragbare Kommunikationsvorrichtung (z. B. ein Smartphone), einen Computer, eine tragbare Multimediavorrichtung, eine tragbare medizinische Vorrichtung, eine Kamera, eine tragbare Vorrichtung oder ein Haushaltsgerät beinhalten. Gemäß einer Ausführungsform der Offenbarung ist eine elektronische Vorrichtung nicht auf die vorstehend beschriebenen beschränkt.
  • Die in der vorliegenden Offenbarung verwendeten Begriffe sollen die vorliegende Offenbarung nicht einschränken, sondern verschiedene Veränderungen, Entsprechungen oder Ersetzungen für eine entsprechende Ausführungsform beinhalten. In Bezug auf die Beschreibungen der beigefügten Zeichnung können identische Bezugszeichen zur Benennung identischer oder verwandter Elemente verwendet werden. Eine Singularform eines Nomens, das einem Element entspricht, kann ein oder mehrere Dinge beinhalten, es sei denn, aus dem entsprechenden Kontext geht eindeutig anderes hervor. Die hierin verwendeten Ausdrücke „A oder B“, „zumindest eine/r/s von A und B“, „zumindest eine/r/s von A oder B“, „A, B oder C“, „zumindest eine/r/s von A, B, und C“ und „zumindest eine/r/s von A, B oder C“ können jeweils alle möglichen Kombinationen der Elemente beinhalten, die in einem entsprechenden der Ausdrücke gemeinsam aufgezählt sind. Die hierin verwendeten Ausdrücke „1.“, „2.“, erste/r/s und „zweite/r/s“ können verwendet werden, um eine entsprechende Komponente von einer anderen Komponente zu unterscheiden, sollen die Komponenten aber nicht in anderen Aspekten (z. B. Bedeutung oder Reihenfolge) beeinträchtigen. Wenn auf ein Element (z. B. ein erstes Element), mit oder ohne den Begriff „operativ“ oder „kommunikativ“, Bezug genommen werden soll als „gekoppelt mit“, „gekoppelt an“, „verbunden mit“ oder „verbunden an“ ein anderes / einem anderen Element (z. B. ein zweites / einem zweiten Element), zeigt dies an, dass das Element mit dem anderen Element direkt (z. B. verdrahtet), drahtlos oder über ein drittes Element gekoppelt sein kann.
  • Der hierin verwendete Begriff „Modul“ kann eine Einheit beinhalten, die in einer Hardware, einer Software oder einer Firmware implementiert ist, und kann austauschbar mit anderen Begriffen verwendet werden, wie z. B. „Logik“, „Logikblock“, „Teil“ und „Schaltungsaufbau“. Ein Modul kann eine einzelne integrale Komponente oder eine minimale Einheit oder ein Teil derselben sein, welche/s so angepasst ist, dass sie/es eine oder mehrere Funktionen durchführt. Zum Beispiel kann gemäß einer Ausführungsform ein Modul in Form von einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert sein.
  • 1 ist ein Diagramm, das einen Faktorgraphen von einem VINS-Mono darstellt. xk bezeichnet einen vollständigen Zustand einer Roboterbewegung. Zustandsvariablen können wie durch Tabelle 1 definiert als nachstehende Gleichung (1) geschrieben werden. x k n a v = [ x k R x k S B ] = [ p k w q k w w k w b a k b ω k ]
    Figure DE102022111926A1_0001
  • Der Roboterposenzustand ist definiert als x k R : = [ p k w q k w ] ,
    Figure DE102022111926A1_0002
    wobei der Robotergeschwindigkeits- und Bias-Zustand definiert ist als x k S B : = [ v k w b a k b w k ] .
    Figure DE102022111926A1_0003
    Tabelle 1
    Zustandsvariable Größe Beschreibungen
    x k n a v
    Figure DE102022111926A1_0004
    16×1 Vollständiger Roboterzustand bei Frame k
    x k R
    Figure DE102022111926A1_0005
    7×1 Roboterposenzustand
    x k S B
    Figure DE102022111926A1_0006
    9×1 Robotergeschwindigkeits- und Bias-Zustand
    p k w
    Figure DE102022111926A1_0007
    3×1 Position (im World-Frame bzw. festen Referenzrahmen)
    q k w
    Figure DE102022111926A1_0008
    4×1 Ausrichtungsquaternion (im World-Frame)
    v k w
    Figure DE102022111926A1_0009
    3×1 Geschwindigkeit (im World-Frame)
    bak 3×1 Bias-Schätzung von einem Beschleunigungsmesser
    bωk 3×1 Bias-Schätzung von einem Gyroskop
  • Für das gesamte VINS-Mono von 1 beinhaltet eine gleitfensterbasierte, enggekoppelte VIO für eine Zustandsschätzung n + 1 Roboterzustände xnav und m + 1 inverse 3D-Orientierungspunkt-Tiefen λ i = 1 d i , i { 0, , m } ..
    Figure DE102022111926A1_0010
    Der Zustandsvektor innerhalb des Gleitfensters ist definiert wie in Gleichung (2) unten aufgeführt. X = [ x n a v ; x f e a t ]
    Figure DE102022111926A1_0011
    wenn x n a v = [ x 0 n a v ; x 1 n a v ; ; x n n a v ]
    Figure DE102022111926A1_0012
    mit x k n a v = [ x k R x k S B ] ,
    Figure DE102022111926A1_0013
    Pose, Geschwindigkeit und Bias für k. Keyframes, und xfeat = [λ0...λm], inverse Orientierungspunkttiefe wie im ersten Kamera-Keyframe beobachtet. Dieser erste Keyframe, mit dem der Orientierungspunktmesswert verankert ist, wird als Anker-Frame bezeichnet.
  • Im VINS-Mono wird nach einer Lösung für Gleichung (3) unten gesucht. min x { r m ( X r ) 2 + k B w r I M U ( x k , x k + 1 ) P b k + 1 b k 2 + ( i , j , l ) F w r V I S ( x i R , x j R , λ l ) Q 2 }
    Figure DE102022111926A1_0014
  • Hier ist Bw ein Index des Gleitfensters, ist Fw ein Satz von Feststellungen innerhalb des Gleitfensters, ist X =Uk∈Bw {xk} ein Satz von Zustandsvariablen zur Überoptimierung, ist rIMU(xk,xk+1) ein IMU-Faktor, ist r V I S ( x i R , x j R , λ l )
    Figure DE102022111926A1_0015
    ein visueller Faktor, ist rM (Xr) ein Marginalisierungsfaktor, ist Xr ein voller Zustand nach einer Marginalisierung, ist P b k + 1 b k
    Figure DE102022111926A1_0016
    eine Kovarianzmatrix für das IMU-Teil zum Erzeugen des Mahalanobis-Abstands für den Restwert und ist Q eine Kovarianzmatrix für den visuellen Teil, der zum Erzeugen des Mahalanobis-Abstands für den Restwert notwendig ist.
  • Somit stellt 1 eine Beziehung zwischen den Faktoren x 1 S B
    Figure DE102022111926A1_0017
    102, x 2 S B
    Figure DE102022111926A1_0018
    104, x 3 S B
    Figure DE102022111926A1_0019
    106, rIMU(x1,x2) 108, rIMU(x2,x3) 110, x 1 R
    Figure DE102022111926A1_0020
    112, x 2 R
    Figure DE102022111926A1_0021
    114, x 3 R
    Figure DE102022111926A1_0022
    116, r V I S ( x 1 R , x 2 R , λ j )
    Figure DE102022111926A1_0023
    1118, r V I S ( x 1 R , x 2 R , λ i )
    Figure DE102022111926A1_0024
    and r V I S ( x 1 R , x 3 R , λ i )
    Figure DE102022111926A1_0025
    120, λj 122, und λi 124 dar.
  • Da Ausführungsformen in der MSL-DVIO Einfluss ausüben auf den visuellen Faktor in dem vorstehend beschriebenen Faktorgraphenansatz, wird der visuelle Faktor nachstehend ausführlich beschrieben. Der IMU-Faktor ist weiter unten ausführlich beschrieben.
  • In der MSL-DVIO, bei der es sich um ein RGBD+IMU-System handelt, wird der visuelle Faktor von dem Merkmalsmesswert des Kamerabildes und der Tiefenkarte erzeugt. Der IMU-Faktor für die MSL-DVIO ist mit der für das VINS-Mono identisch. Im Gegensatz zum VINS-Mono ist die Tiefenkarte zusammen mit der Kameraaufnahme für die MSL-DVIO verfügbar.
  • 2 ist ein Diagramm, das einen Faktorgraphen für die MSL-DVIO gemäß einer Ausführungsform darstellt. Insbesondere 2 stellt eine Beziehung dar zwischen den Faktoren x 1 S B
    Figure DE102022111926A1_0026
    202, x 2 S B
    Figure DE102022111926A1_0027
    204, x 3 S B
    Figure DE102022111926A1_0028
    206, x 4 S B
    Figure DE102022111926A1_0029
    208, rIMU(x1,x2) 210, rIMU(x2,x3) 212, rIMI(x3,x4) 214, x 1 R
    Figure DE102022111926A1_0030
    216, x 2 R
    Figure DE102022111926A1_0031
    218, x 3 R
    Figure DE102022111926A1_0032
    220, x 4 R
    Figure DE102022111926A1_0033
    222, r V I S ( x 1 R , x 2 R , λ j )
    Figure DE102022111926A1_0034
    224, r V I S ( x 1 R , x 2 R , λ i )
    Figure DE102022111926A1_0035
    and r V I S ( x 1 R , x 3 R , λ i )
    Figure DE102022111926A1_0036
    226, r V I S ( x 3 R , x 4 R , λ m )
    Figure DE102022111926A1_0037
    228, r D P ( x 1 R , λ i )
    Figure DE102022111926A1_0038
    230, r D P ( x 1 R , x 3 R , λ j )
    Figure DE102022111926A1_0039
    232, r D P ( x 4 R , λ m )
    Figure DE102022111926A1_0040
    234, λj 236, λi 238, und λm 240. rDP ist ein Tiefenrestwert.
  • Die Begriffe „Restwert“ und „Rest-“ sind austauschbar und definieren im Allgemeinen einen Rechenverlust zwischen einem geschätzten Wert von Zustandsparametern und einem Messwert von einem Sensor.
  • Die Bildmerkmalserfassung und -nachverfolgung von VINS-Mono werden in der MSL-DVIO übernommen. Für jedes erfasste Merkmal wird eine entsprechende Tiefe von der Tiefenkarte extrahiert und ein Tiefenrestfaktor gebildet. Aufgrund der Beschaffenheit der Tiefenkarte können Verdeckungen und ein Out-of-Range auftreten, wobei die entsprechende Tiefe für den Merkmalspunkt nicht immer verfügbar sein kann. Daher ist die Anzahl von Tiefenfaktoren kleiner oder gleich der Anzahl von Bildmerkmalsfaktoren, wie in 2 gezeigt ist.
  • Für einen RGBD-Sensor werden Real-World-3D-Orientierungspunkte auf eine Bildebene projiziert, um 2D-Positionen von diesen Orientierungspunkten auf dem RGBD-Sensor und die Tiefe dieser Orientierungspunkte auf dem Tiefensensor zu erzeugen. Das Kameramessungsmodell ist in Gleichung (4) unten aufgeführt. z l I M G = K [ R | t ] [ x l w y l w z l w 1 ] + n f e a t
    Figure DE102022111926A1_0041
  • Das Tiefenmessungsmodell ist in Gleichung (5) unten aufgeführt. z l D P = ( | [ R | t ] [ x l w y l w z l w 1 ] | z ) + n d e p t h
    Figure DE102022111926A1_0042
  • Hier ist z l I M G
    Figure DE102022111926A1_0043
    eine 2D-Position eines Orientierungspunkts in einem Image-Frame, ist z l D P
    Figure DE102022111926A1_0044
    eine Tiefe des Orientierungspunkts in einem Referenz-Kamera-Frame, ist K eine intrinsische Kameramatrix. [R|t] ist eine Posenmatrix der Kamera in einer WorldFrame-Referenz, [ x l w y l w z l w 1 ]
    Figure DE102022111926A1_0045
    ist eine 3D-Position des Orientierungspunkts / in einem ReferenzWorld-Frame und nfeat und ndepth sind ein Messungsrauschen, von dem man annimmt, dass es sich um ein Gaußsches Rauschen handelt.
  • Für einen gegebenen Orientierungspunkt l wird der Frame i auf den ersten Frame gesetzt, der den Orientierungspunkt l feststellt. Der Frame i wird als der Anker-Frame des Orientierungspunkts l bezeichnet. Z l i I M G = [ u i l ¯ , v i l ¯ ] T
    Figure DE102022111926A1_0046
    wird als der Merkmalsmesswert des Orientierungspunkts l im Frame i gesetzt, und Z I j I M G = [ u j l ¯ , v j l ¯ ] T
    Figure DE102022111926A1_0047
    wird als der Merkmalsmesswert des Orientierungspunkts l in einem zukünftigen Frame j gesetzt.
  • Da die MSL-DVI kalibrierte Kameras verwendet, wird der Merkmalsmesswert in der normalisierten Ebene und nicht in der Bildebene gespeichert. Zur Berechnung dieses Messwerts wird der Merkmalspunkt von der Bildebene auf eine normalisierte Ebene unter Verwendung einer inversen Kameraprojektionsmatrix angehoben, wie in Gleichung (6) unten aufgeführt ist. [ x l ¯ y l ¯ z l ¯ ] = π 1 ( z l I M G )
    Figure DE102022111926A1_0048
  • Eine Linsenverzeichnung wird dann durch rekursives Anwenden des Verzerrungsmodells auf den normalisierten Merkmalsmesswert gehandhabt. Der endgültige Merkmalsmesswert für einen Orientierungspunkt in einem Kamera-Frame wird wie unten in Gleichung (7) aufgeführt gespeichert. Z l I M G = [ u l ¯ v l ¯ ] = [ x l ¯ z l ¯ y l ¯ z l ¯ ]
    Figure DE102022111926A1_0049
  • Da der Orientierungspunkt unter Verwendung der inversen Tiefe des Merkmals im Anker-Frame geschätzt wird, wird diese Implementierung der MSL-DVIO bezeichnet als MSL-DVIO 1D.
  • Unter Verwendung des Merkmalsmesswerts in den Frames i und j wird der BildRestwert für das Merkmal in dem Nicht-Anker-Frame j berechnet wie in Gleichung (8) unten aufgeführt. r I M G ( x i R , x j R , λ l ) = g ( T c b T b j w T w b i T b c [ u i l ¯ λ l , v i l ¯ λ l , 1 λ l ,1 ] T ) Z l j I M G
    Figure DE102022111926A1_0050
  • Hier ist g ( [ X , Y , Z ,1 ] T ) = [ X Z , Y Z ] T , T b c = [ R b c p c b 0 1 ]
    Figure DE102022111926A1_0051
    die Transformation von der Kamerakoordinate zur IMU-Koordinate, ist T c b = T b c T , T b j w = [ R b j w p w b j 0 1 ]
    Figure DE102022111926A1_0052
    die Roboterpose für den Frame j und ist T b i w = [ R b i w p w b i 0 1 ]
    Figure DE102022111926A1_0053
    die Roboterpose für den Frame i, T w b i = T b i w T .
    Figure DE102022111926A1_0054
  • Unter der Annahme, dass die Kamera und die Tiefenkarte in Zeit und Raum ausgerichtet sind, wird in der Tiefenkarte ebenso das Tiefenfeld von Orientierungspunkt / gemessen. Die geschätzte Tiefe des Orientierungspunkts im Anker-Frame kann zum Schätzen der Tiefe des Orientierungspunkts im Frame j verwendet werden. Dementsprechend ist der Tiefenrestwert in Gleichung (9) unten aufgeführt. r D P ( x i R , x j R , λ l ) = ( | T c b T b j w T w b i T b c [ u i l ¯ λ l , v i l ¯ λ l , 1 λ l ,1 ] T | z ) 1 Z l j D P
    Figure DE102022111926A1_0055
  • Hier ist Z l j D P
    Figure DE102022111926A1_0056
    der inverse Tiefenmesswert des Orientierungspunkts in dem Kamera-Frame einer Referenz gegeben durch Z l j D P = 1 z l D P .
    Figure DE102022111926A1_0057
    Der Einfachheit halber kann angenommen werden, dass das Messungsrauschen für einen inversen Tiefenmesswert ebenfalls ein Gaußsches Rauschen ist.
  • Unter Verwendung des Tiefenrestwerts und des Bildrestwerts wird der visuelle Faktorrestwert für einen Nicht-Anker-Frame durch Stapeln des Bild- und Tiefenrestwerts miteinander erzeugt, wie in Gleichung (10) unten aufgeführt ist. r V I S n o n ( x i R , x j R , λ l ) = [ r I M G ( x i R , x j R , λ l ) r D P ( x i R , x j R , λ l ) ]
    Figure DE102022111926A1_0058
  • Dieser Restwert wird dann in einer Graphenoptimierung verwendet, um den Roboterzustand unter Verwendung einer nichtlinearen Optimierung zu lösen. Beim Durchführen der Optimierung wird die Jacobische des Restwerts in Bezug auf die Zustandsvariable erzeugt. Zur Berechnung der Jacobischen des visuellen Restwerts des Nicht-Anker-Frames wird eine Orientierungspunktfeststellung im Kamerabereich wie in Gleichung (11) unten aufgeführt definiert. p l c j = [ x l c j , y l c j , z l c j ,1 ] T = T c b T b j w T w b i T b c [ u i l ¯ λ l , v i l ¯ λ l , 1 λ l ,1 ] T
    Figure DE102022111926A1_0059
  • Der RGBD-Messwert des Merkmals ist gegeben durch ƒ ( p l c j ) = [ x l c j z l c j y l c j z l c j 1 z l c l ] ,
    Figure DE102022111926A1_0060
    was in der Gleichung (12) unten resultiert. ƒ ( p l c j ) p l c j = [ 1 z l c j 0 x l c j z l c j 2 0 1 z l c j y l c j z l c j 2 0 0 1 z l c j 2 ]
    Figure DE102022111926A1_0061
  • Die Jacobi-Matrizen des visuellen Restwerts können wie unten aufgeführt berechnet werden.
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Anker-Frame i, (3x3-Matrix), ist unten in Gleichung (13) aufgeführt. r V I S n o n ( x i R , x j R , λ l ) p b i w = ƒ ( p l c j ) p l c j R c b R w b j T
    Figure DE102022111926A1_0062
  • Die Jacobische des visuellen Restwerts in Bezug auf die Rotation des Anker-Frame j, (3x3-Matrix), ist unten in Gleichung (14) aufgeführt. r V I S n o n ( x i R , x j R , λ l ) θ i = ƒ ( p l c j ) p l c j R c b R w b j T R w b i [ p l b i ] x
    Figure DE102022111926A1_0063
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Frame j, (3x3-Matrix), ist unten in Gleichung (15) aufgeführt. r V I S n o n ( x i R , x j R , λ l ) p b j w = ƒ ( p l c j ) p l c j R c b R w b j T
    Figure DE102022111926A1_0064
  • Die Jacobische des visuellen Restwerts in Bezug auf die Rotation des Frame j, (3x3-Matrix), ist unten in Gleichung (16) aufgeführt. r V I S n o n ( x i R , x j R , λ l ) θ i = ƒ ( p l c j ) p l c j R c b [ p l b j ] x
    Figure DE102022111926A1_0065
  • Die Jacobische des visuellen Restwerts in Bezug auf die inverse Tiefe des Merkmals l, (3x1-Matrix), ist unten in Gleichung (17) aufgeführt. r V I S n o n ( x i R , x j R , λ l ) λ l = ƒ ( p l c j ) p l c j R c b R w b j T R w b i R b c [ u i l ¯ λ l 2 , v i l ¯ λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0066
  • In dem vorstehend beschriebenen Szenario wird der Tiefenmesswert in dem Graphen unter Verwendung des ursprünglichen Messwerts im Anker-Keyframe i verwendet und der Messwert an den Keyframe j übertragen, um den Restwert für die Merkmals- und Tiefenmessung zu berechnen. Darüber hinaus kann ein Block für die Tiefenmessung im Anker-Keyframe hinzugefügt werden, um die Tiefenaktualisierung stärker einzuschränken.
  • In diesem Fall ist das verwendete Messwertmodell nur der Tiefenmesswert, wie in Gleichung (18) unten aufgeführt ist. Z l D P = ( | [ R | p ] [ x l w y l w z l w 1 ] | z ) 1 + n d e p t h
    Figure DE102022111926A1_0067
  • Da an dem 2D-Merkmalsmesswert keine Aktualisierung vorgenommen wird, ist der Restwert für den Merkmalsmesswert null, wobei der Restwert zum Hinzufügen des Parameters auf nur den Restwert von dem Tiefenmesswert reduziert wird, wie in Gleichung (19) unten aufgeführt ist. r D P ( λ l ) = ( | [ u i l ¯ λ l , v i l ¯ λ l , 1 λ l ,1 ] T | z ) 1 Z li D P
    Figure DE102022111926A1_0068
  • Dadurch wird die Jacobische in die inverse Tiefe von Merkmal 1, (3x1-Matrix), verwandelt, wie in Gleichung (20) unten aufgeführt ist. r D P ( λ l ) λ l = [ 0,0,1 ] T
    Figure DE102022111926A1_0069
  • Viele Sensoren, die RGBD- und IMU-Sensoren beinhalten, sind unsynchronisiert. In diesem Fall liegt ein kleiner Zeitversatz zwischen Kamera- und IMU-Zeitstempeln vor. Dieser Zeitversatz gilt typischerweise als konstant, aber unbekannt. Für eine Online-Schätzung des Zeitversatzes wird dieser Zeitversatz modelliert, wie in Gleichung (21) unten aufgeführt ist. t I M U = t C A M + Δ t
    Figure DE102022111926A1_0070
  • Hier ist tIMU die IMU-Taktzeit, ist tCAM die Kamerataktzeit, und ist Δt der Zeitversatz zwischen den beiden Takten. Δt wird als Random Walk abgebildet und unter Verwendung des Merkmals- und Tiefenmesswerts optimiert.
  • Gemäß Ausführungsformen unter Verwendung der MSL-DVIO wird mit dem Zeitversatz zu einem beliebigen Zeitpunkt der Kamerazeitstempel kompensiert, um diesen auf den IMU-Zeitstempel zu bringen. Zum Berechnen eines Merkmalsmesswerts zu einem beliebigen Zeitpunkt in der Zukunft kann der Merkmalsmesswert unter Verwendung eines konstanten Geschwindigkeitsbewegungsmodells verbreitet werden, wie in Gleichung (22) unten aufgeführt ist. Z liTD I M G = Z li I M G ( Δ t Δ t i + T R i ) V l i I M G
    Figure DE102022111926A1_0071
  • Wenn Z liTD IMG
    Figure DE102022111926A1_0072
    der zeitversatzkompensierte 2D-Messwert des Orientierungspunkts l1 im Frame i ist, ist Z li I M G
    Figure DE102022111926A1_0073
    der ursprüngliche 2D-Messwert des Orientierungspunkts l im Frame i, ist Δt der aktuelle Schätzwert des Zeitversatzes, ist Δti der Schätzwert des Zeitversatzes, als der Kamera-Frame i verarbeitet wurde, und ist V l i I M G
    Figure DE102022111926A1_0074
    die 2D-Geschwindigkeit des Merkmals, die während der Merkmalsnachverfolgung berechnet wird.
  • TRi ist der Zeitversatz, der aus der Rolling-Shutter-Kamera entsteht, der in der Gleichung (23) unten aufgeführt ist. T R i = T R R O W R O W i
    Figure DE102022111926A1_0075
  • Wenn TR die Rolling-Shutter-Auslesezeit ist, ist ROW die Zeilengesamtanzahl in dem Frame und ist OWi die Zeile, in der das Merkmal festgestellt wird.
  • Desgleichen ist ein Merkmalsmesswert für die Tiefe in Gleichung (24) unten aufgeführt. z liTD D P = z li D P ( Δ t Δ t i + T R i ) V l i D P
    Figure DE102022111926A1_0076
  • V l i D P
    Figure DE102022111926A1_0077
    ist die Veränderungsrate der Merkmalstiefe in der Tiefenkarte, wie in Gleichung (25) unten aufgeführt ist. V l i D P = ( z li D P z l ( i 1 ) D P ) / d t
    Figure DE102022111926A1_0078
  • Unter Verwendung dieses neuen Messwerts wird der Restwert berechnet wie in den Gleichungen (26), (27) und (28) unten aufgeführt ist. r V I S T D ( x i R , x j R , λ l ) = [ r I M G T D ( x i R , x j R , λ l ) r D P T D ( x i R , x j R , λ l ) ]
    Figure DE102022111926A1_0079
    r I M G T D ( x i R , x j R , λ l ) = g ( T c b T b j w T w b i T b c [ u i l T D ¯ λ l , v i l T D ¯ λ l , 1 λ l ,1 ] T ) Z l j T D I M G
    Figure DE102022111926A1_0080
    r D P T D ( x i R , x j R , λ l ) = ( | T c b T b j w T w b i T b c [ u i l T D ¯ λ l , v i l T D ¯ λ l , 1 λ l ,1 ] T | z ) 1 1 z l j TD D P
    Figure DE102022111926A1_0081
  • Ähnlich wie oben beschrieben ist eine Orientierungspunktfeststellung im Kamerabereich definiert wie in Gleichung (29) unten aufgeführt. p l T D c j = [ x l T D c j , y l T D c j , z l T D c j ,1 ] T = T c b T b j w T w b i T b c [ u i l T D ¯ λ l , v i l T D ¯ λ l , 1 λ l ,1 ] T
    Figure DE102022111926A1_0082
  • Der RGBD-Messwert des Merkmals ist gegeben durch ƒ ( p l T D c j ) = [ x l T D c j z l T D c j y l c j z l T D c j 1 z l T D c j ]
    Figure DE102022111926A1_0083
  • Mit dem neuen Restwert können die Jacobi-Matrizen des visuellen Restwerts berechnet werden wie nachstehend aufgeführt ist.
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Anker-Frame i, (3x3-Matrix), ist in Gleichung (30) unten aufgeführt. r V I S T D ( x i R , x j R , λ l ) p b i w = ƒ ( p l T D c j ) p l T D c j R c b R w b j T
    Figure DE102022111926A1_0084
  • Die Jacobische des visuellen Restwerts in Bezug auf die Rotation des Anker-Frame i, (3x3-Matrix), ist in Gleichung (31) unten aufgeführt. r V I S T D ( x i R , x j R , λ l ) θ i = ƒ ( p l T D c j ) p l T D c j R c b R w b j T R w b i [ p l T D b i ] x
    Figure DE102022111926A1_0085
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Frame j, (3x3-Matrix), ist in Gleichung (32) unten aufgeführt. r V I S T D ( x i R , x j R , λ l ) p b j w = ƒ ( p l T D c j ) p l T D c j R c b R w b j T
    Figure DE102022111926A1_0086
  • Die Jacobische des visuellen Restwerts in Bezug auf die Rotation des Frame jj, (3x3-Matrix), ist in Gleichung (33) unten aufgeführt. r V I S T D ( x i R , x j R , λ l ) θ j = ƒ ( p l c j ) p l c j R c b [ p l T D b j ] x
    Figure DE102022111926A1_0087
  • Die Jacobische des visuellen Restwerts in Bezug auf die inverse Tiefe des Merkmals l, (3x1-Matrix), ist in Gleichung (34) unten aufgeführt. r V I S T D ( x i R , x j R , λ l ) λ l = ƒ ( p l c j ) p l c j R c b R w b j T R w b i R b c [ u i l T D ¯ λ l 2 , v i l T D ¯ λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0088
  • Die Jacobische des visuellen Restwerts in Bezug auf den Zeitversatz, (3x1-Matrix), ist in Gleichung (35) unten aufgeführt. α r V I S T D ( x i R , x j R , λ i ) Δ t = ƒ ( p l T D c j ) p l T D c j 1 λ l R c b R w b j T R w b i R b c [ V l i I M G 0 ] + [ V l j I M G 0 ]
    Figure DE102022111926A1_0089
  • Die Jacobische des visuellen Restwerts in Bezug auf die inverse Tiefe im Anker-Frame, (3x1-Matrix), ist in Gleichung (36) unten aufgeführt. r D P ( λ l ) λ l = [ 0,0,1 ] T
    Figure DE102022111926A1_0090
  • Im VINS-Mono wird das Merkmal unter Verwendung der inversen Tiefe in dem Anker-Keyframe parametrisiert. Somit kann der Merkmalsmesswert im Anker-Frame nicht als ein Restwert zur Durchführung der Graphenoptimierung verwendet werden. Damit der Merkmalsmesswert in dem Anker-Frame als ein Restwert in dem Graphenoptimierungsproblem verwendet werden kann, wird die 2D-Position des Merkmals in dem Anker als Teil des Merkmalszustands hinzugefügt, wodurch die Merkmalszustandsparametrisierung auf 3D umgewandelt wird. Dieser neue Zustand des Gleitfensters ist in Gleichung (37) unten aufgeführt. X = [ x n a v ; x f e a t ]
    Figure DE102022111926A1_0091
  • Wenn x n a v = [ x 0 n a v ; x 1 n a v ; ; x n n a v ]  mit  x k n a v = [ x k R x k S B ] ,
    Figure DE102022111926A1_0092
    Pose, Geschwindigkeit und Bias für k. Keyframes, ist xfeat = [f0 ... fm], f1 = [u1, v1, λ1], (u1,v1) der Schätzwert für die 2D-Position des Merkmals im Anker-Frame und ist λ1 der Schätzwert der inversen tiefe des Merkmals im Anker-Frame.
  • Da der Orientierungspunkt unter Verwendung der vollen 3D-Position des Merkmals in dem Anker-Frame geschätzt wird, wird diese Implementierung der MSL-DVIO als MSL-DVIO 3D bezeichnet.
  • Mit der vorstehend beschriebenen 3D-Merkmalsparametrisierung kann der visuelle Restwert für sowohl Anker- als auch Nicht-Anker-Frames berechnet werden.
  • Für den Nicht-Anker-Frame wird der Schätzwert des 3D-Merkmals in dem Anker-Frame zur Projektion im Nicht-Anker-Frame verwendet, um Restwerte zu berechnen, wie in den Gleichungen (38), (39) und (40) unten aufgeführt ist. r V I S n o n ( x i R , x j R , ƒ l ) = [ r I M G ( x i R , x j R , ƒ l c ) r D P ( x i R , x j R , ƒ l c ) ]
    Figure DE102022111926A1_0093
    r I M G ( x i R , x j R , ƒ l ) = g ( T c b T b j w T w b i T b c [ u i l λ l , v i l λ l , 1 λ l ,1 ] T ) Z l j I M G
    Figure DE102022111926A1_0094
    r D P ( x i R , x j R , ƒ l ) = ( | T c b T b j w T w b i T b c [ u i l λ l , v i l λ l , 1 λ l ,1 ] T | z ) 1 Z l j D P
    Figure DE102022111926A1_0095
  • Ebenso wird der visuelle Restwert für den Anker-Frame unter Verwendung des 3D-Schätzwerts in dem Anker-Frame berechnet, wie in den Gleichungen (41), (42) und (43) unten aufgeführt ist. r V I S a n c h o r ( u i l , v i l , λ l ) = [ r a n c h o r ( u i l , v i l ) r a n c h o r ( λ l ) ]
    Figure DE102022111926A1_0096
    r a n c h o r ( u i l , v i l ) = [ u i l , v i l ] T Z l i I M G
    Figure DE102022111926A1_0097
    r a n c h o r ( λ i ) = λ i Z l i D P
    Figure DE102022111926A1_0098
  • Ähnlich wie oben beschrieben, wird die Jacobische für die 3D-Parametrisierung durch Verwendung des geschätzten 2D-Werts des Merkmals von einem Zustand berechnet, wie in Gleichung (44) unten aufgeführt ist. p I 3 D c j = [ x I 3 D c j , y I 3 D c j , z I 3 D c j ,1 ] T = T c b T b j w T w b i T b c [ u i l λ l , v i l λ l , 1 λ l ,1 ] T
    Figure DE102022111926A1_0099
  • Der RGBD-Messwert des Merkmals ist gegeben durch ( p I 3 D c j ) = [ x I 3 D c j z I 3 D c j y I 3 D c j z I 3 D c j 1 z I 3 D c j ] ,
    Figure DE102022111926A1_0100
    was in der Gleichung (45) unten resultiert. ƒ ( p I 3 D c j ) p I 3 D c j = [ 1 z I 3 D c j 0 x I 3 D c j z I 3 D c j 2 0 1 z I 3 D c j y I 3 D c j z I 3 D c j 2 0 0 1 z I 3 D c j 2 ]
    Figure DE102022111926A1_0101
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Anker-Frame i, (3x3-Matrix), ist in Gleichung (46) unten aufgeführt. r V I S n o n ( x i R , x j R , ƒ l ) p b i w = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T
    Figure DE102022111926A1_0102
  • Die Jacobische des visuellen Restwertes in Bezug auf die Rotation des Anker-Frame i, (3x3-Matrix), ist in Gleichung (47) unten aufgeführt. r V I S n o n ( x i R , x j R , ƒ l ) θ i = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T R w b i [ p I 3 D b i ] x
    Figure DE102022111926A1_0103
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Frame j, (3x3-Matrix), ist in Gleichung (48) unten aufgeführt. r V I S n o n ( x i R , x j R , ƒ l ) p b j w = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T
    Figure DE102022111926A1_0104
  • Die Jacobische des visuellen Restwerts in Bezug auf die Rotation des Frame j, (3x3-Matrix), ist in Gleichung (49) unten aufgeführt. r V I S n o n ( x i R , x j R , ƒ l ) θ j = ƒ ( p I 3 D c j ) p I 3 D c j R c b [ p I 3 D b j ] x
    Figure DE102022111926A1_0105
  • Indem die 3D-Parametrisierung des Merkmals im Zustand vorgenommen wird, verändert sich die Jacobische des Restwerts in Bezug auf das Merkmal in eine 3x3-Matrix wie unten beschrieben ist.
  • Die Jacobische für den Nicht-Anker-Frame ist in Gleichungen (50), (51) (52) unten aufgeführt. r V I S n o n ( x i R , x j R , ƒ l ) u i l = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T R w b i R b c [ 1 λ l ,0,0 ] T
    Figure DE102022111926A1_0106
    r V I S n o n ( x i R , x j R , ƒ l ) v i l = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T R w b i R b c [ 0, 1 λ l ,0 ] T
    Figure DE102022111926A1_0107
    r V I S n o n ( x i R , x j R , ƒ l ) λ l = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T R w b i R b c [ u i l λ l 2 , v i l λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0108
  • Die Jacobische für den Anker-Frame ist in Gleichungen (53), (54) und (55) unten aufgeführt. r V I S a n c h o r ( u i l , v i l , λ l ) u i l = [ 1,0,0 ] T
    Figure DE102022111926A1_0109
    r V I S a n c h o r ( u i l , v i l , λ l ) v i l = [ 0,1,0 ] T
    Figure DE102022111926A1_0110
    r V I S a n c h o r ( u i l , v i l , λ l ) λ l = [ 0,0,1 ] T
    Figure DE102022111926A1_0111
  • Wie oben beschrieben werden durch die 3D-Parametrisierung volle 3D-Merkmalsmesswerte in dem Anker-Frame als Teil des Anker-Frame-Restwerts für die Graphenoptimierung hinzugefügt.
  • Ähnlich wie der Zeitversatzschätzvorgang für die MSL-DVIO 1D kann der zeitversatzkorrigierte Messwert der 3D-Position des Merkmals berechnet werden. Die 2D-Position des Merkmals kann unter Verwendung der Zeitversatzschätzung ähnlich wie die MSL-DVIO 1D geschätzt werden, außer dass der geschätzte Wert der Gleichung (56) verwendet wird. Z I 3 DiTD I M G = Z Ii I M G = ( Δ t Δ t i + T R i ) V l i I M G
    Figure DE102022111926A1_0112
  • Ebenso kann für der Tiefenmesswert der zeitversatzkorrigierte Messwert, wie in der MSL-DVIO 1D beschrieben, berechnet werden, wie in Gleichung (57) unten aufgeführt ist. z I 3 DiTD D P = z li D P ( Δ t Δ t i + T R i ) V l i D P
    Figure DE102022111926A1_0113
  • Unter Verwendung des neuen Messwerts kann der Restwert für den Nicht-Anker-Frame berechnet werden, wie in Gleichungen (58), (59) und (60) unten aufgeführt ist. r V I S T D ( x i R , x j R , ƒ l ) = [ r I M G T D ( x i R , x j R , ƒ l ) r D P T D ( x i R , x j R , ƒ l ) ]
    Figure DE102022111926A1_0114
    r I M G T D ( x i R , x j R , ƒ l ) = g ( T c b T b j w T w b i T b c [ u i l T D λ l , v i l T D λ l , 1 λ l ,1 ] T ) Z I 3 DjTD I M G
    Figure DE102022111926A1_0115
    r D P T D ( x i R , x j R , ƒ l ) = ( | T c b T b j w T w b i T b c [ u i l T D λ l , v i l T D λ l , 1 λ l ,1 ] T | z ) 1 1 z I 3 DjTD D P
    Figure DE102022111926A1_0116
  • Für den Anker-Frame ist der Restwert ebenso in Gleichungen (61), (62) und (63) unten aufgeführt. r V I S T D a n c h o r ( u i l , v i l , λ l ) = [ r a n c h o r T D ( u i l , v i l ) r a n c h o r T D ( λ l ) ]
    Figure DE102022111926A1_0117
    r a n c h o r T D ( u i l , v i l ) = [ u i l , v i l ] T Z I 3 D i T D I M G
    Figure DE102022111926A1_0118
    r a n c h o r T D ( λ l ) = λ l Z I 3 D i T D D P
    Figure DE102022111926A1_0119
  • Die Jacobische für dieses System wird berechnet wie nachstehend beschrieben ist.
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Anker-Frame i, (3x3-Matrix), ist in Gleichung (64) unten aufgeführt. r V I S T D ( x i R , x j R , ƒ l ) p b i w = ƒ ( p I 3 D T D c j ) p I 3 D T D c j R c b R w b j T
    Figure DE102022111926A1_0120
  • Die Jacobische des visuellen Restwerts in Bezug auf die Rotation des Anker-Frame i, (3x3-Matrix), ist in Gleichung (65) unten aufgeführt. r V I S T D ( x i R , x j R , ƒ l ) θ i = ƒ ( p I 3 D T D c j ) p I 3 D T D c j R c b R w b j T R w b i [ p I 3 D b j ] x
    Figure DE102022111926A1_0121
  • Die Jacobische des visuellen Restwerts in Bezug auf die World-Position des Frame j, (3x3-Matrix), ist in Gleichung (66) unten aufgeführt. r V I S T D ( x i R , x j R , ƒ l ) p b i w = ƒ ( p I 3 D T D c j ) p I 3 D T D c j R c b R w b j T
    Figure DE102022111926A1_0122
  • Die Jacobische des visuellen Restwerts in Bezug auf die Rotation des Frame j, (3x3-Matrix), ist in Gleichung (67) unten aufgeführt. r V I S T D ( x i R , x j R , ƒ l ) θ j = ƒ ( p I 3 D T D c j ) p I 3 D T D c j R c b [ p I 3 D b j ] x
    Figure DE102022111926A1_0123
  • Indem die 3D-Parametrisierung des Merkmals im Zustand vorgenommen wird, verändert sich die Jacobische des Restwerts in Bezug auf das Merkmal in eine 3x3-Matrix, wie unten beschrieben ist.
  • Die Jacobische für den Nicht-Anker-Frame ist in Gleichungen (68), (69) und (70) unten aufgeführt. r V I S T D ( x i R , x j R , ƒ l ) u i l = ƒ ( p I 3 D T D c j ) p I 3 D T D c j R c b R w b j T R w b i R b c [ 1 λ l ,0,0 ] T
    Figure DE102022111926A1_0124
    r V I S T D ( x i R , x j R , ƒ l ) v i l = ƒ ( p I 3 D T D c j ) p I 3 D T D c j R c b R w b j T R w b i R b c [ 0, 1 λ l ,0 ] T
    Figure DE102022111926A1_0125
    r V I S T D ( x i R , x j R , ƒ l ) λ l = ƒ ( p I 3 D T D c j ) p I 3 D T D c j R c b R w b j T R w b i R b c [ u i l T D λ l 2 , v i l T D λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0126
  • Die Jacobische für den Anker-Frame ist in Gleichungen (71), (72) und (73) unten aufgeführt. r V I S T D a n c h o r ( u i l , v i l , ƒ l ) u i l = [ 1,0,0 ] T
    Figure DE102022111926A1_0127
    r V I S T D a n c h o r ( u i l , v i l , ƒ l ) v i l = [ 0,1,0 ] T
    Figure DE102022111926A1_0128
    r V I S T D a n c h o r ( u i l , v i l , ƒ l ) λ l = [ 0,0,1 ] T
    Figure DE102022111926A1_0129
  • Die Jacobische für den visuellen Restwert in Bezug auf den Zeitversatz, (3x1-Matrix), ist in Gleichung (74) unten aufgeführt. r V I S n o n ( x i R , x j R , ƒ l ) Δ t = ƒ ( p I 3 D T D c j ) p I 3 D T D c j 1 λ l R c b R w b j T R w b i R b c [ V l i I M G 0 ] + [ V l j I M G 0 ]
    Figure DE102022111926A1_0130
  • In Tabelle 2 und 3 sind ein Systemrestwert und ein Jacobischer Vergleich der MSL-DVIO für alle vorstehend beschriebenen Kombinationen aufgeführt. Tabelle 2 - MSL-DVIO-Restwert und Jacobische ohne Zeitversatz
    1D-Merkmalsparameter 3D-Merkmalsparameter
    Bildrestwert (Nicht-Anker) g ( T c b T b j w T w b i T b c [ u i l ¯ λ l , v i l ¯ λ l , 1 λ l ,1 ] T ) Z lj I M G
    Figure DE102022111926A1_0131
    g ( T c b T b j w T w b i T b c [ u i l λ l , v i l λ l , 1 λ l ,1 ] T ) Z l j I M G
    Figure DE102022111926A1_0132
    Tiefenrestwert (Nicht-Anker) ( | T c b T b j w T w b i T b c [ u i l ¯ λ l , v i l ¯ λ l , 1 λ l ,1 ] T | z ) 1 Z l j D P
    Figure DE102022111926A1_0133
    ( | T c b T b j w T w b i T b c [ u i l λ l , v i l λ l , 1 λ l ,1 ] T | z ) 1 Z l j D P
    Figure DE102022111926A1_0134
    Bildrestwert (Anker) unzutreffend [ u i l , v i l ] T Z l i I M G
    Figure DE102022111926A1_0135
    Tiefenrestwert (Anker) ( | [ u i l ¯ λ l , v i l ¯ λ l , 1 λ l ,1 ] T | z ) 1 Z li D P
    Figure DE102022111926A1_0136
    λ l Z l i D P
    Figure DE102022111926A1_0137
    Jacobische (Anker-Pose) r V I S n o n ( x i R , x j R , λ l ) p b i w = ƒ ( p I c j ) p l c j R c b R w b j T
    Figure DE102022111926A1_0138
    r V I S n o n ( x i R , x j R , ƒ l ) p b i w = ƒ ( p I 3 D c j ) p l 3 D c j R c b R w b j T
    Figure DE102022111926A1_0139
    Jacobische (Anker-Rotation) r V I S n o n ( x i R , x j R , λ l ) θ i = ƒ ( p I c j ) p I c j R c b R w b j T R w b I [ p I b I ] x
    Figure DE102022111926A1_0140
    r V I S n o n ( x i R , x j R , ƒ l ) θ i = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T R w b I [ p I 3 D b I ] x
    Figure DE102022111926A1_0141
    Jacobische (Nicht-Anker-Pose) r V I S n o n ( x i R , x j R , λ l ) p b j w = ƒ ( p I c j ) p I c j R c b R w b j T
    Figure DE102022111926A1_0142
    r V I S n o n ( x i R , x j R , ƒ l ) p b j w = ƒ ( p I 3 D c j ) p I 3 D c j R c b R w b j T
    Figure DE102022111926A1_0143
    Jacobische (Nicht-Anker-Rotation) r V I S n o n ( x i R , x j R , λ l ) θ j = ƒ ( p I c j ) p I c j R c b [ p I b j ] x
    Figure DE102022111926A1_0144
    r V I S n o n ( x i R , x j R , ƒ l ) θ j = ƒ ( p l 3 D c j ) l 3 D c j R c b [ p l 3 D b j ] x
    Figure DE102022111926A1_0145
    Jacobische (Nicht-Anker-Rotation) r V I S n o n ( x i R , x j R , λ l ) λ l = ƒ ( p l c j ) p l c j R c b R w b j T R w b i R b c [ u ι l ¯ λ l 2 , v ι l ¯ λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0146
    r V I S n o n ( x i R , x j R , ƒ l ) u i l = ƒ ( p l 3 D c j ) p l 3 D c j R c b R w b j T R w b i R b c [ 1 λ l ,0,0 ] T r V I S n o n ( x i R , x j R , ƒ l ) v i l = ƒ ( p l 3 D c j ) p l 3 D c j R c b R w b j T R w b i R b c [ 0, 1 λ l ,0 ] T r V I S n o n ( x i R , x j R , ƒ l ) λ l = ƒ ( p l 3 D c j ) p l 3 D c j R c b R w b j T R w b i R b c [ u i l λ l 2 , v i l λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0147
    Jacobische (Anker-Merkmal) r D P ( λ l ) λ l = [ 0,01 ] T
    Figure DE102022111926A1_0148
    r V I S a n c h o r ( u i l , v i l , λ l ) u i l = [ 1,0,0 ] T
    Figure DE102022111926A1_0149
    r V I S a n c h o r ( u i l , v i l , λ l ) u i l = [ 0,1,0 ] T
    Figure DE102022111926A1_0150
    r V I S a n c h o r ( u i l , v i l , λ l ) λ l = [ 0,0,1 ] T
    Figure DE102022111926A1_0151
    Tabelle 3 - MSL-DVIO-Restwert und Jacobische mit Zeitversatz
    1 D-Merkmalsparameter 3D-Merkmalsptinmeter
    Bildrestwert (Nicht-Anker) g ( T c b T b j w T w b i T b c [ u ι l T D ¯ λ l , v ι l T D ¯ λ l , 1 λ l ,1 ] T ) Z ljTD I M G
    Figure DE102022111926A1_0152
    g ( T c b T b j w T w b i T b c [ u ι l T D λ l , v ι l T D λ l , 1 λ l ,1 ] T ) Z l3DjTD I M G
    Figure DE102022111926A1_0153
    Tiefenrestwert (Nicht-Anker) ( | T c b T b j w T w b i T b c [ u ι l T D ¯ λ l , v ι l T D ¯ λ l , 1 λ l ,1 ] T | z ) 1   1 z ljTD D P
    Figure DE102022111926A1_0154
    ( | T c b T b j w T w b i T b c [ u i l T D λ l , v i l T D λ l , 1 λ l ,1 ] T | z ) 1   1 z l3Dj T D D P  
    Figure DE102022111926A1_0155
    Bildrestwert (Anker) unzutreffend [ u i l , v i l ] T Z l 3 D i T D I M G
    Figure DE102022111926A1_0156
    Tiefenrestwert (Anker) ( | [ u ι l T D ¯ λ l , v ι l T D ¯ λ l , 1 λ l ,1 ] T | z ) 1 z ljTD D P  
    Figure DE102022111926A1_0157
    λ l Z l 3 D i T D D P
    Figure DE102022111926A1_0158
    Jacobische (Anker-Pose) r V I S T D ( x i R , x j R , λ l ) p b i w = ƒ ( p l T D c j ) p l T D c j R c b R w b j T
    Figure DE102022111926A1_0159
    r V I S T D ( x i R , x j R , ƒ l ) p b i w = ƒ ( p l 3 D T D c j ) p l 3 D T D c j R c b R w b j T
    Figure DE102022111926A1_0160
    Jacobische (Anker-Rotation) r V I S T D ( x i R , x j R , ƒ l ) θ j = ƒ ( p l T D c j ) p l T D c j R c b R w b j T R w b i [ p l T D b i ] x
    Figure DE102022111926A1_0161
    r V I S T D ( x i R , x j R , ƒ l ) θ i = = ƒ ( p l 3 D T D c j ) p l 3 D T D c j R c b R w b j T R w b l [ p l 3 D b i ] x
    Figure DE102022111926A1_0162
    Jacobische (Nicht-Anker Pose) r V I S T D ( x i R , x j R , λ l ) p b j w = ƒ ( p l T D c j ) p l T D c j R c b R w b j T
    Figure DE102022111926A1_0163
    r V I S T D ( x i R , x j R , ƒ l ) p b j w = ƒ ( p l 3 D T D c j ) p l 3 D T D c j R c b R w b j T
    Figure DE102022111926A1_0164
    Jacobische (Nicht-Anker-Rotation) r V I S T D ( x i R , x j R , λ l ) θ j = ƒ ( p l c j ) p l c j R c b [ p l T D b j ] x
    Figure DE102022111926A1_0165
    r V I S T D ( x i R , x j R , ƒ l ) θ j = ƒ ( p l 3 D T D c j ) p l 3 D T D c j R c b [ p l 3 D b j ] x
    Figure DE102022111926A1_0166
    Jacobische (Nicht-Anker-Merkmal) r V I S T D ( x i R , x j R , λ l ) λ l = ƒ ( p l c j ) p l c j R c b R w b j T R w b i R b c [ u ι l T D ¯ λ l 2 , u ι l T D ¯ λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0167
    r V I S T D ( x i R , x j R , ƒ l ) u i l = ƒ ( p l 3 D T D c j ) p l 3 D T D c j R c b R w b j T R w b i R b c [ 1 λ l ,0,0 ] T r V I S T D ( x i R , x j R , ƒ l ) v i l = ƒ ( p l 3 D T D c j ) p l 3 D T D c j R c b R w b j T R w b i R b c [ 0, 1 λ l ,0 ] T r V I S T D ( x i R , x j R , ƒ l ) λ l = ƒ ( p l 3 D T D c j ) p l 3 D T D c j R c b R w b j T R w b i R b c [ u i l T D λ l 2 , v i l T D λ l 2 , 1 λ l 2 ] T
    Figure DE102022111926A1_0168
    Jacobische (Anker-Merkmal) r D P ( λ l ) λ l = [ 0,0,1 ] T
    Figure DE102022111926A1_0169
    r V I S T D a n c h o r ( u i l , v i l , ƒ l ) u i l = [ 1,0,0 ] T
    Figure DE102022111926A1_0170
    r V I S T D a n c h o r ( u i l , v i l , ƒ l ) v i l = [ 0,1,0 ] T
    Figure DE102022111926A1_0171
    r V I S T D a n c h o r ( u i l , v i l , ƒ l ) λ l = [ 0,0,1 ] T
    Figure DE102022111926A1_0172
    Jacobische (Zeitversatz) r V I S T D ( x i R , x j R , λ l ) Δ t = ƒ ( p l T D c j ) l T D c j 1 λ l R c b R w b j T R w b i R b c [ V l i I M G 0 ]   + [ V l j I M G 0 ]
    Figure DE102022111926A1_0173
    r V I S n o n ( x i R , x j R , ƒ l ) Δ t = ƒ ( p l 3 D T D c j ) p l 3 D T D c j 1 λ l R c b R w b j T R w b i R b c [ V l i I M G 0 ] + [ V l j I M G 0 ]  
    Figure DE102022111926A1_0174
  • Die Veränderungen an der Graphenoptimierung in der MSL-DVIO sind oben beschrieben. Ausführungsformen sind bezogen auf die 1D- und 3D-Merkmalsparametrisierung bereitgestellt. Zur Schätzung des initialen Werts für den Merkmalsparameter ist der Schätzvorgang in zwei separate Blöcke unterteilt. Ein erster Block schätzt die inverse Tiefenschätzung für das Merkmal, und ein zweiter Block schätzt den initialen Wert des 2D-Merkmalsmesswerts im Anker-Frame.
  • Eine Merkmalstiefe wird in Bezug auf den Anker-Frame berechnet. In der MSL-DVIO wird der initiale Schätzwert der Merkmalstiefe unter Verwendung des Gleitfenstermesswerts und Verwendung des Merkmalstiefenmesswerts von der Tiefenkarte berechnet.
  • In dem ersten Schritt zur Schätzung des initialen Tiefenschätzwerts wird der Tiefenmesswert für den Merkmalspunkt von der Tiefenkarte zur Berechnung der Merkmalstiefe verwendet. Kl = {k1, k2, ..., kn} ist der 3D-Merkmalsmesswert für einen einzigen Orientierungspunkt l in dem vollen Gleitfenster. Hier entspricht k 1 = ( u 1 l ¯ , v 1 l ¯ , z 1 l D P )
    Figure DE102022111926A1_0175
    den Merkmalsmesswert des Orientierungspunkts l in dem Anker-Frame, und k2, ..., kn entspricht dem Merkmalsmesswert des Orientierungspunkts l in dem Nicht-Anker-Frame. X R = { x 1 R , , x n R }
    Figure DE102022111926A1_0176
    ist die Roboterpose für das Gleitfenster, für welches die Graphenoptimierung durchgeführt wird. Unter Verwendung der Gleitfensterpose und des Merkmalsmesswerts für den Orientierungspunkt l, wird ein 3D-Punkt auf den Anker-Frame projiziert, wie in Gleichung (75) unten aufgeführt ist. = | u 1 l ^   z 1 l D P ^ v 1 l ^   z 1 l D P ^ z 1 l D P ^ | = T c b T b 1 w T w b j T b c | u j l ¯   z j l D P v j l ¯   z j l D P z j l D P | f ü r   a l l e   j   F r a m e   i m   G l e i t f e n s t e r .
    Figure DE102022111926A1_0177
  • Ein Anker-Frame-3D-Merkmals-Schätzwert wird als k 1 ^ = ( u 1 l ^ , v 1 l ^ , z 1 l D P ^ ) = ( A 1 A 3 , A 2 A 3 , A 3 )
    Figure DE102022111926A1_0178
     
    Figure DE102022111926A1_0179
    erzeugt. Unter Verwendung des 2D-Schätzwerts ( u 1 l ^ , v 1 l ^ )
    Figure DE102022111926A1_0180
    wird ein Reprojektionsfehler des Merkmals auf dem Anker-Frame erzeugt. Auf diesen Reprojektionsfehler wird ein Schwellwert angewendet, so dass eine Einordnung in „Inliers“ und „Outliers“ bzw. Ausreißer vorgenommen werden kann. Die Feature-Tiefe wird unter Verwendung des Mittelwerts aller durch Inlier geschätzten Anker-Frame-Tiefen initialisiert.
  • Zur Schätzung des zweidimensionalen Positionsschätzwerts der Tiefe und des Merkmals im Anker-Frame unter Verwendung von ausschließlich der Gleitfensterdaten und der zweidimensionalen Merkmalsposition wird ein direkter linearer Transformations- (DLT-) Algorithmus verwendet. Das Problem wird in der Form AX = 0 formuliert und unter Verwendung einer Einzelwertzerlegung gelöst. Zum Beispiel kann der Orientierungspunkt l = ( x l a n c h , y l a n c h , z l a n c h )
    Figure DE102022111926A1_0181
    ein 3D-Punkt sein, der in dem Kamera-Anker-Frame für das Gleitfenster X R = { x 1 R , , x n R }
    Figure DE102022111926A1_0182
    festgestellt wird, und kann einen Merkmalsmesswert als Kl = {k1, k2, ..., kn) aufweisen. x 1 R
    Figure DE102022111926A1_0183
    ist der Anker-Frame und k1 ist der Merkmalsmesswert im Anker-Frame. Unter Verwendung der Kameraprojektionsmatrix wird die Beziehung der Gleichung (76) bereitgestellt. [ u j l ¯ v j l ¯ 1 ] = α T ( x j R ) [ x l a n c h y l a n c h z l a n c h 1 ]
    Figure DE102022111926A1_0184
  • Wenn j jeder Keyframe in dem Gleitfenster ist, ist T ( x j R )
    Figure DE102022111926A1_0185
    eine relative Transformationsmatrix zwischen dem Keyframe und dem Anker-Frame unter Verwendung des Rotationsvektors und des Translationsvektors in x j R
    Figure DE102022111926A1_0186
    und x 1 R
    Figure DE102022111926A1_0187
    , wobei α der Skalenfaktor ist.
  • Das Kreuzprodukt von zwei Vektoren in der gleichen Richtung ist null, wobei anhand der Beziehung Gleichung (77) bereitgestellt wird. [ u j l ¯ v j l ¯ 1 ] × T ( x j R ) [ x l w y l w z l w 1 ] = [ 0 0 0 ]
    Figure DE102022111926A1_0188
  • In der Gleichung (77) wird T ( x j R )
    Figure DE102022111926A1_0189
    auf seine erweiterte Form der 3×4-Matrix abgeleitet, wobei die Notation minimiert wird, wie in Gleichung (78) unten aufgeführt ist. T ( x j R ) [ x l w y l w z l w 1 ] = [ t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 t 11 t 12 ] [ x l w y l w z l w 1 ] = [ T 1 T L T 2 T L T 3 T L ]
    Figure DE102022111926A1_0190
  • Wobei: T 1 T = [ t 1   t 2   t 3   t 4 ] , T 1 T = [ t 5   t 6   t 7   t 8 ]
    Figure DE102022111926A1_0191
    und T 1 T = [ t 9   t 10   t 11   t 12 ] , und  L = [ x l w y l w z l w 1 ] .
    Figure DE102022111926A1_0192
  • Der Kreuzproduktterm ist in Gleichung (79) unten aufgeführt. [ u j l ¯ v j l ¯ 1 ] × [ T 1 T L T 2 T L T 3 T L ] = [ v j l T 3 T L T 2 T L T 1 T L u j l T 3 T L u j l T 2 T L v j l T 1 T L ] = [ 0 0 0 ]
    Figure DE102022111926A1_0193
  • Die Gleichung (79) kann weiter reduziert werden, da die dritte Zeile die lineare Kombination aus der ersten und der zweiten Zeile ist, was in der Gleichung (80) für eine einzelne Feststellung resultiert, wie unten aufgeführt ist. [ v j l ¯ T 3 T L T 2 T L T 1 T L u j l ¯ T 3 T L ] = [ v j l ¯ T 3 T T 2 T T 1 T u j l ¯ T 3 T ] L = [ 0 0 ]
    Figure DE102022111926A1_0194
  • Die Gleichung (80) kann als Gleichung (81) unten geschrieben werden. A j L = 0
    Figure DE102022111926A1_0195
  • Die Feststellungen für das jeweilige Merkmal sind gestapelt, wobei ein System aus linearen Gleichungen erzeugt wird, das die Form AL = 0 aufweisen wird. Zur Auflösung dieses homogenen linearen Systems wird ein Minimieren des algebraischen Fehlers der kleinsten Quadrate unter Verwendung einer Einzelwertzerlegung gelöst, wenn die Lösung der Eigenvektor ist, der dem kleinsten Eigenwert von ATA entspricht, wie unten in den Gleichungen (82) und (83) aufgeführt ist. U Σ V = S V D ( A )
    Figure DE102022111926A1_0196
    L ^ = [ I 1 ^ I 2 ^ I 3 ^ I 4 ^ ] = [ V 1,4 V 2,4 V 3,4 V 4,4 ]
    Figure DE102022111926A1_0197
  • Der Schätzwert des 2D-Messwerts und die Tiefe des Orientierungspunkts in dem Anker-Frame werden erzeugt, wie unten in Gleichung (84) aufgeführt ist. u l ^ = I 1 ^ / I 4 ^ z I ^ , v I ^ = I 2 ^ / I 4 ^ z I ^ , z I ^ = I 3 ^ I 4 ^
    Figure DE102022111926A1_0198
  • Diese Schätzwerte werden dann zur Initialisierung der Zustandsvariablen im Graphenoptimierungsproblem verwendet. In den vorstehend beschriebenen Verfahren hängt der Initialwert der Merkmalsparameter vom Merkmalsmesswert und den Gleitfensterposen ab. Im Fall der Tiefenschätzung wird die gesamte Tiefe mit dem Mittelungswert des Einlieger-Tiefenmesswerts initialisiert, wobei nur die Merkmale, die unter Verwendung des ersten Schritts nicht geschätzt werden, unter Verwendung des zweiten Verfahrens initialisiert werden. Im Fall einer zweidimensionalen Merkmalsparameter-Initialisierung kommt nur das zweite Verfahren zur Initialisierung in Frage.
  • Wenn in den Gleitfensterposen große Fehler vorliegen, ist das vorstehend beschriebene Verfahren für eine fehlerhafte Initialisierung anfällig. Da die Schätzung von der Qualität der Gleitfensterposen abhängt, ist dieses Problem in dem ersten Optimierungsdurchlauf als Teil des Initialisierungsschritts ausgeprägter. Um ein fehlerhaftes Verhalten des MSL-DVIO-Systems zu vermeiden, werden die Optimierungsschritte durch Fixe ergänzt, die nur für den erstmaligen Optimierungsdurchlauf als Teil der Initialisierungsschritte vorgesehen sind.
  • Zur Durchführung einer Tiefenstützung bzw. des Depth-Aiding wird der Tiefenkarten-Frame verwendet. Diese Tiefenkarten-Frames werden unter Verwendung eines Tiefenerfassungsmoduls erzeugt. Es gibt zwei Arten von Tiefenerfassungsmodulen. Eine erste Art ist ein passiver Tiefensensor, und eine zweite Art betrifft einen aktiven Tiefensensor. Ein Beispiel für einen passiven Tiefensensor beinhaltet eine Tiefe von einem Stereokamerapaar, wobei ein Beispiel eines aktiven Tiefensensors eine TOF-Kamera oder eine Strukturlichtkamera beinhaltet.
  • Alle Sensoren schätzen die Szenentiefe basierend auf Messmodellen. Da sich die Ausführungsformen schwerpunktmäßig auf RGBD-Sensoren beziehen, sind aktive Sensoren hierin ebenfalls darauf fokussiert.
  • 3 ist ein Diagramm, dass eine TOF-Kamera gemäß einer Ausführungsform darstellt. Die TOF-Kamera beinhaltet einen Controller 302, einen Sensor 304 und einen Infrarot- (IR-) Emitter 306. Eine Phasendifferenz 308 zwischen einem übertragenen Signal 310 und einem empfangenen Signal 312 von einem Objekt 314 wird zur Schätzung einer Tiefe verwendet.
  • 4 ist ein Diagramm, das Strukturlichtsensoren gemäß einer Ausführungsform darstellt. Ein Punktmuster unter Verwendung einer Grundlinie 402 und einer Brennweite 404 wird zum Berechnen eines Disparitätsmesswerts zwischen einem Projektor 406 und einer Kamera 408 verwendet, welcher dann zur Schätzung einer Tiefe 410 von einem Punkt 412 verwendet wird.
  • Wie vorstehend in zwei stark vereinfachten Beispielen der Messmodelle beschrieben, ist der Tiefenmesswert von einem Sensor in Bezug auf die Art des verwendeten Sensors sehr spezifisch. Um diesen Tiefenmesswert zusammen mit dem zweidimensionalen Tiefenmesswert zur Durchführung einer Graphenoptimierung zu verwenden, wird ein Modell auf einer Pro-Sensor-Basis für das Messrauschen benötigt.
  • Während in der MSL-DVIO eine Tiefenstützung bzw. Depth-Aiding durchgeführt wird, wird davon ausgegangen, dass ein additives Gaußsches Modell für das Messrauschen für den inverse Tiefenmesswert verwendet werden soll. Diese Art von Modell kann sich für unterschiedliche Arten von Sensoren möglicherweise als nicht akkurat erweisen. Zum Beispiel kann ein Sensor mit einem aktiven IR-Stereosensor verwendet werden. Dieser Sensor verwendet sowohl ein IR- als auch ein sichtbares Licht, um eine dichtes Stereosehen basierend auf Merkmalen durchzuführen, die für ihn sichtbar sind. Da der Sensor eine Disparität als einen Messwert zur Schätzung der Tiefe von einem Merkmalspunkt verwendet, ist die Verwendung eines additiven Gaußschen Rauschen für die inverse Tiefe ein zulässiges Modell für Tiefenunsicherheit.
  • In dem Graphenoptimierungsproblem wird zur Beibehaltung einer feststehenden Größe für das Optimierungsproblem ein Gleitfenster zum Durchführen der Graphenoptimierung verwendet. Bei diesem Lösungsansatz werden eine feststehende Größe und eine kürzere Verarbeitungszeit in dem nichtlinearen Optimierungsschritt beibehalten. Sobald ein Gleitfenster mit einer maximalen Anzahl von Knoten befüllt ist, die die feststehende Größe des Problems aufrechterhalten können, wird eine Marginalisierung durchgeführt, in der ein bestimmter Teilsatz von Knoten Xm fallengelassen werden und ein Graph mit den verbliebenen Knoten Xr (Xm ∪ Xr = X, Xm ∩ Xr = ∅) gebildet wird.
  • Die Kostenfunktion, die in der Batch-Optimierung minimiert wird, ist von der in Gleichung (85) unten gezeigten Form. C ( X ) = e T ( X ) Ω e ( X )
    Figure DE102022111926A1_0199
  • Hier ist e ( X )
    Figure DE102022111926A1_0200
    ein Säulenvektor einer Länge L, welche alle Einschränkungen unter X enthält, wobei Ω eine L × L -Diagonalmatrix als das kombinierende Gewicht für jede Einschränkung ist.
  • Nach der Marginalisierung findet die Batch-Optimierung nur über den verbliebenen Variablen Xr statt. Die revidierte Kostenfunktion wird bezeichnet als F(Xr). Der Zweck der Marginalisierung ist die Identifikation einer solchen revidierten Kostenfunktion F(Xr), die dieselbe optimale Auswahl von Xr wie C(X) ermöglicht.
  • Dadurch wird F(Xr) das nachstehende Erfordernis auferlegt: Finde F(Xr), so dass Gleichung (86) ist wie unten. F ( X r ) = min X m | X r C ( [ X m X r ] )
    Figure DE102022111926A1_0201
  • Der Vorgang der Marginalisierung kann dann in den nachfolgenden Schritten zusammengefasst werden.
  • Gegeben seien eine Informationsmatrix H und ein Fehlervektor b ,
    Figure DE102022111926A1_0202
    wie in Gleichung (87) unten gezeigt: H = [ H m m H m r H r m H r r ] , b = [ b m b r ]
    Figure DE102022111926A1_0203
  • Der Marginalisierungsvorgang berechnet die neue Informationsmatrix und den Fehlervektor wie in Gleichung (88) unten gezeigt. H n e w = H r r H r m H m m 1 H m r
    Figure DE102022111926A1_0204
    b n e w = b r H r m H m m 1 b m
    Figure DE102022111926A1_0205
  • Zur Durchführung des Marginalisierungsvorgangs wird die Inverse der Informationsmatrix bezogen auf den marginalisierten Zustand Hmm benötigt. Abhängig davon, wie groß der marginalisierte Zustand ist, kann dies sehr zeitaufwändig sein. In Systemen, wie z. B. VINS-Mono, wird eine Eigenzerlegung der kompletten Matrix durchgeführt, um die Inverse der Matrix zu berechnen, was ein sehr zeitaufwendiger Prozess sein kann und die Echtzeitleistung des endgültigen Algorithmus beeinträchtigen kann.
  • Dementsprechend werden zwei Änderungen vorgenommen, um den Marginalisierungsprozess für MSL-DVIO 1D zu optimieren. Zunächst wird das Problem in Blöcke unterteilt: 1) Marginalisierung aller Orientierungspunkte; und 2) Marginalisierung der Keyframe-Pose, der Geschwindigkeit und der Bias-Terme. Die Marginalisierung aller Orientierungspunkte ist einfach, da eine Diagonalmatrix von der eindimensionalen Merkmalsparametrisierung bereitgestellt wird. Das Marginalisierungsproblem kann als Gleichung (89) unten umgeschrieben werden, es gegeben seien die Matrix H und der Fehlervektor b .
    Figure DE102022111926A1_0206
    H = [ H m m H m r H r m H r r ] = [ H m m 11 H m m 12 H m r 1 H m m 21 H m m 22 H m r 2 H r m 1 H r m 2 H r r ] , b = [ b m b r ] = [ b m 1 b m 2 b r ]
    Figure DE102022111926A1_0207
  • Hmm11 ist die Informationsmatrix für Orientierungspunkte, die eine einfache Diagonalmatrix H m m 11 = d i a g ( h m m 11 )
    Figure DE102022111926A1_0208
    ist.
  • Im zweiten Schritt werden die Keyframe-Pose, die Geschwindigkeit und die Bias-Terme marginalisiert, wie in Tabelle 4 unten gezeigt ist. Tabelle 4 Blockmarginalisierung für die MSL-DVIO 1D
    Schritt 1): Marginalisiere Orientierungspunkte
    H = [ H m m H m r H r m H r r ] = [ H m m 11 H m m 12 H m r 1 H m m 21 H m m 22 H m r 2 H r m 1 H r m 2 H r r ] , b = [ b m b r ] = [ b m 1 b m 2 b r ]
    Figure DE102022111926A1_0209
    H m m 11 1 = d i a g ( 1 h m m 11 )
    Figure DE102022111926A1_0210
    H n e w t e m p = [ H m m 22 H m r 2 H r m 2 H r r ] [ H m m 21 H r m 1 ] H m m 11 1 [ H m m 12 H m r 1 ] = [ H 11 H 12 H 21 H 22 ]
    Figure DE102022111926A1_0211
    b n e w t e m p = [ b m 2 b r ] [ H m m 21 H r m 1 ] H m m 11 1 b m 1 = [ b 1 b 2 ]
    Figure DE102022111926A1_0212
    Schritt 2): Marginalisiere andere Terme
    H n e w = H 22 H 21 H 11 1 H 12
    Figure DE102022111926A1_0213
    b n e w = b 2 H 21 H 11 1 b 1
    Figure DE102022111926A1_0214
  • Zur Durchführung der Marginalisierung der Keyframe-Pose, der Geschwindigkeit und der Bias-Terme wird der Sicherheits-Cholesky-Algorithmus verwendet. Dieser ermöglicht eine robustere und schnellere Verarbeitung für den zweiten Schritt der Blockmarginalisierung in der MSL-DVIO 1D. Die Zusammenfassung dieses Algorithmus ist unten in Tabelle 5 aufgeführt. Tabelle 5 - Sicherheits-Cholesky-Zerlegung
    H ist eine N × N symmetrische reelle positive endgültige Matrix. Initialisiere L , so dass sie eine N × N -Nullmatrix ist. Denn j = 1:N
    d j = H j , j k = 1 j 1 L j , k 2
    Figure DE102022111926A1_0215
     Wenn d j > ∈2
    L j , j = d j
    Figure DE102022111926A1_0216
     Denn i = j + 1:N
    L i , j = 1 L j , j ( H i , j k = 1 j 1 L i , k L j , k )
    Figure DE102022111926A1_0217
     Sonst falls d j > -∈2
    L j , j = , L i , j = 0
    Figure DE102022111926A1_0218
    Sonst Rückgabe von FALSE; //Choleskv-Zerlegung scheitert
  • Im Fall von MSL-DVIO 3D kann ein einziger einfacher Schritt nicht zur Berechnung der Inversen des Blocks für den Orientierungspunkt durchgeführt werden, da jeder Orientierungspunkt mit 3 Zuständen in dem Graphen korreliert. Somit wird die Inverse der 3x3-Matrix für jeden Orientierungspunkt der Reihe nach gehandhabt. Somit verändert sich der Block-um-Block-Marginalisierungsvorgang für die MSL-DVIO 3D-Veränderungen in den in Tabelle 6 unten gezeigten Vorgang. Tabelle 6 - Blockmarginalisierung für MSL DVIO 3D
    n Orientierungspunkt, der zu marginalisieren ist. H 3×3 und b 3 × 3
    Figure DE102022111926A1_0219
    bezeichnet die Informationsmatrix und den Restwert für den ersten Orientierungspunkt, wobei folgende Matrizen bereitgestellt werden:
    H = [ H m m H m r H r m H r r ] = [ H 3 × 3 H m m 12 H m r 1 H m m 21 H m m 22 H m r 2 H r m 1 H r m 2 H r r ] , b = [ b m b r ] = [ b 3 × 3 b m 2 b r ]
    Figure DE102022111926A1_0220
    H n e w t e m p = [ H m m 22 H m r 2 H r m 2 H r r ] [ H m m 21 H r m 1 ] H 3 × 3 1 [ H m m 12 H m r 1 ] = [ H 11 H 12 H 21 H 22 ]
    Figure DE102022111926A1_0221
    b n e w t e m p = [ b m 2 b r ] [ H m m 21 H r m 1 ] H 3 × 3 1 b 3 × 3 = [ b 1 b 2 ]
    Figure DE102022111926A1_0222
    Schritt 2): Marginalisiere andere Terme
    H n e w = H 22 H 21 H 11 1 H 12
    Figure DE102022111926A1_0223
    b n e w = b 2 H 21 H 11 1 b 1
    Figure DE102022111926A1_0224
  • Wie vorstehend beschrieben wird jeder Orientierungspunkt für die MSL-DVIO 3D separat marginalisiert. Bei diesem Lösungsansatz wird in Bezug auf die Verarbeitungszeit eine große Verbesserung erreicht, da der Umfang der Matrixinversion gering ist, was im Vergleich zu dem Versuch, eine große Matrix in einem einzigen Schritt zu invertieren, viel schneller gelingt.
  • Der Plattformentwurf des VINS-Mono-Systems kann für den vorstehend beschriebenen Systementwurf verwendet werden. VINS-Mono weist eine dem aktuellen Stand der Technik entsprechende VIO-Implementierung unter Verwendung eines Graphenoptimierungslösungsansatzes auf. Das aktuelle System kann obendrein noch um eine Tiefenstützung bzw. Depth-Aiding ergänzt werden, um die beim Implementieren eines kompletten VIO-Systems notwendige Nachbearbeitung zu vermeiden.
  • Indem die nachstehenden Änderungen aufgenommen werden, wird der visuelle Teil des VINS-Mono um eine Tiefenstützung bzw. Depth-Aiding ergänzt.
  • Eine Tiefendaten-Eingabe/Ausgabe (I/O) erfordert das Lesen des Tiefenmesswerts und eine Verarbeitung dieses Messwerts synchronisiert mit dem 2D-Merkmalsmesswert.
  • Der Tiefenmesswert erfordert das Berechnen des Tiefenmesswerts, der einem jeweiligen 2D-Merkmalsmesswert zugeordnet ist, und das Hinzufügen dieses Messwerts zu der aktuellen Verarbeitungs-Pipeline.
  • Die Optimierung berechnet den Tiefenrestwert basierend auf dem Tiefenmesswert und den Zustandsparametern. Dieser Restwert kommt als ein Parameterblock im Graphenoptimierungsproblem hinzu.
  • Die Tiefendaten-I/O, der Tiefenmesswert und der Tiefenrestwert sowie -Optimierung werden separat für eine Tiefenstützung bzw. ein Depth-Aiding für den Anker-Keyframe, eine Tiefenstützung bzw. Depth-Aiding für den Nicht-Anker-Keyframe, eine Tiefenstützung bzw. ein Depth-Aiding für unsynchronisierte Sensoren und eine Tiefenstützung bzw. ein Depth-Aiding für eine 3D-Merkmalsparametrisierung durchgeführt.
  • 5 ist ein Diagramm, das einen Systemfluss der MSL-DVIO gemäß einer Ausführungsform darstellt.
  • In einem Messwertverarbeitungsblock 502 werden die eingegebenen Daten von einer IMU 504, einer RGB-Kamera 506 und einem Tiefensensor 508 genommen und dann separat verarbeitet. Die RGB-Kamera 506 und der Tiefensensor 508 können als ein RGB-Sensor kombiniert werden. Für den IMU-Datenstrom von der IMU 504 wird die IMU-Vorintegration an dem Messwertverarbeitungsblock 502 durchgeführt. Für den RGB-Kamera-Frame von der RGB-Kamera 506 werden eine Merkmalserfassung und -nachverfolgung an dem Messwertverarbeitungsblock 502 durchgeführt. Für die Tiefenkarte von dem Tiefensensor 508 wird die Tiefe für das Merkmal erzeugt, das in dem RGB-Kamera-Frame am Messwertverarbeitungsblock 502 gemessen wird.
  • In einem Initialisierungsblock 510 werden ein IMU-Vorintegrationsterm und eine 2D-Merkmalsspur von dem Messwertverarbeitungsblock 502 empfangen, wobei eine ausschließlich visuelle Struktur von einer Bewegung durchgeführt wird. Eine visuelle Trägheitsausrichtung wird zudem durchgeführt, um einen initialen Keyframe für eine Gleitfensterkarte zu erzeugen.
  • In einem Bewegungs-BA-Block 512 werden eine 2D-Merkmalsspur und der IMU-Vorintegrationsterm von dem Messwertverarbeitungsblock 502 empfangen, um eine Frame-to-Frame-Posen-Nachverfolgung durchzuführen.
  • In einem Zustandsschätzeinrichtungsblock 514 wird der initiale Keyframe von dem Initialisierungsblock 510 empfangen, wobei der IMU-Vorintegrationsterm, die 2D-Merkmalsspur und der Tiefenmesswert von dem Messwertverarbeitungsblock 502 empfangen werden. Die Optimierung des Faktorgraphen wird durchgeführt, wobei ein Gleitgraph basierend auf 2, am Zustandsschätzeinrichtungsblock 514, erzeugt wird. Sobald der Graph erzeugt worden ist, wird das System unter Verwendung eines nichtlinearen Solver optimiert.
  • In einem Schleifenschlussblock 516 wird der Posengraph von der Zustandsschätzeinrichtung 514 in einem Versuch verwendet, Langzeitfehler vom Zustandsschätzeinrichtungsblock 514 zu minimieren.
  • 6 ist ein Diagramm, das einen detaillierten Systemfluss der MSL-DVIO gemäß einer Ausführungsform der Offenbarung darstellt.
  • Der Messwertverarbeitungsblock 502 beinhaltet einen IMU-Vorintegrationsblock 602, einen Merkmalserfassungs- und -nachverfolgungsblock 604 und einen Tiefenmesswertblock 606.
  • Der Zustandsschätzeinrichtungsblock 514 beinhaltet einen Keyframe-Restwertblock 608, einen Gleitfenstergraphenblock 610 und einen Graphenoptimierungsblock 612. Der Keyframe-Restwertblock 608 beinhaltet einen IMU-Restwertblock 614, einen 2D-Merkmalsrestwertblock 616 und einen Tiefenrestwertblock 618. Der Gleitfenstergraphenblock 610 beinhaltet einen IMU-Parameterblock 620, einen Anker-Frame-Parameterblock 622, einen Nicht-Anker-Frame-Parameterblock 624 und einen Zeitversatz-Parameterblock 626.
  • Der IMU-Restwert ist der Verlust zwischen dem geschätzten Wert der 6DOF-Pose für die Keyframes, die Geschwindigkeit und die Biases für die IMU, und dem IMU-Messwert (z. B. Beschleunigungssensor- und Gyroskopmesswert). Der Bildrestwert ist der Verlust zwischen dem geschätzten Wert der 6DOF-Pose für die Keyframes und die Position von einem Orientierungspunkt (1D oder 3D), und dem 2D-Messwert des Orientierungspunkts auf dem Keyframe. Der Tiefenrestwert ist der Verlust zwischen dem geschätzten Wert der 6DOF-Pose für die Keyframes und die Position von einem Orientierungspunkt (1D oder 3D) und dem Tiefenmesswert des Orientierungspunkts auf der Tiefenkarte.
  • 7 ist ein Diagramm, das eine MSL-DVIO 1D-Merkmalsimplementierung gemäß einer Ausführungsform darstellt. In der MSL-DVIO ist die Implementierung der tiefenstützenden Veränderungen auf zwei Threads verteilt. Ein erster Thread ist ein Merkmalsnachverfolgungs-Thread 702, und ein zweiter Thread befindet sich in einem Zustandsschätzeinrichtungs-Thread 704.
  • Der Merkmalsnachverfolgungs-Thread 702 beinhaltet eine Tiefen- und Bildmesswertverarbeitung. Die RGBD-Daten von der RGB-Kamera 506 und dem Tiefensensor 508 werden an einem Roboterbetriebssystem (ROS-) Synchronisatorblock 706 synchronisiert. Der ROS-Synchronisatorblock 706 liefert eine RGB-Bildnachricht- und Tiefenbildnachricht an den Merkmalserfassungs- und -nachverfolgungsblock 604. Der Merkmalserfassungs- und -nachverfolgungsblock 604 liefert einen Merkmalsmesswert und eine Tiefenbildnachricht an den Tiefenmesswertblock 606 bereit. Der Tiefenmesswertblock liefert den Merkmalsmesswert und den Tiefenmesswert an einen Geschwindigkeitsberechnungsblock 708 bereit, der eine Merkmalsgeschwindigkeit in den Bild- und Tiefenbereichen berechnet. Die Geschwindigkeits-, Merkmals- und Tiefenmesswerte werden dann auf der ROS-Plattform bei 710 veröffentlicht.
  • Der Zustandsschätzeinrichtungs-Thread 704 handhabt das Gros der Arbeit für die Graphenoptimierung. Die IMU- und Merkmalsdaten werden bei 712 empfangen. Die IMU-Daten werden einem IMU-Vorintegrationsblock 602 bereitgestellt, um den IMU-Vorintegrationsterm für die Optimierung zu erzeugen. Die Merkmalsdaten werden einem Keyframe-Auswahlblock 714 zum Erzeugen von Keyframes bereitgestellt, die dem Gleitfenster hinzugefügt werden können. Ein Gleitfenster-Einrichtungsblock 716 empfängt den IMU-Vorintegrationsterm und die Keyframes. Bei Block 718 wird basierend auf den Gleitfensterdaten von dem Gleitfenster-Einrichtungsblock 716 bestimmt, ob die Initialisierung vollständig. Die Gleitfensterdaten werden einem Merkmal-Triangulieren-Block 720 bereitgestellt, wenn eine Initialisierung abgeschlossen ist. Wenn eine Initialisierung nicht abgeschlossen ist, werden die Gleitfensterdaten zunächst einem Initialstrukturblock 722 bereitgestellt. Die Gleitfensterdaten werden einem Posengraphen-Einrichtungsblock 724 bereitgestellt, der einen Posengraphen durch Initialisieren der Tiefe des Merkmals in dem Gleitfenster einrichtet.
  • Unter Verwendung des Posengraphen wird der IMU-Restwert bei Block 726 bestimmt, wobei ein IMU-Faktor für eine Posengraphenoptimierung bei Block 728 bestimmt wird. Unter Verwendung des Posengraphen wird bestimmt, ob eine Zeitdeltaschätzung bei Block 730 bekannt ist. Wenn eine Zeitdeltaschätzung nicht bekannt ist, wird bestimmt, ob ein Frame der Anker-Frame bei Block 732 ist. Wenn es sich um den Anker-Frame handelt, wird die Anker-Frame-Tiefe bei Block 734 bestimmt, wobei ein visueller Anker-Frame-Faktor für eine Posengraphenoptimierung bei Block 736 bestimmt wird. Wenn es sich nicht um den Anker-Frame handelt, wird der Nicht-Anker-Frame-Bild- und Tiefenrestwert bei Block 738 bestimmt, wobei ein visueller Nicht-Anker-Frame-Faktor für eine Posengraphenoptimierung bei Block 740 bestimmt wird.
  • Im Allgemeinen wird ein Visionsfaktor unter Verwendung von visuellen Sensoren erzeugt, die die 6DOF-Pose der Keyframes, die Position des Orientierungspunkts, den Tiefenrestwert und den Bildrestwert beinhalten. Ein IMU-Faktor wird unter Verwendung der IMU-Sensoren, die die 6DOF-Pose der Keyframes, die Geschwindigkeit und die Biases der IMU beinhalten, und des IMU-Restwerts erzeugt.
  • Wenn die Zeitdeltaschätzung bekannt ist, wird bestimmt, ob ein Frame der Anker-Frame bei Block 742 ist. Wenn es sich um den Anker-Frame handelt, wird der Anker-Frame-Zeitdelta-Tiefenrestwert bei Block 744 bestimmt, wobei ein Anker-Frame-Zeitdelta-Visionsfaktor für eine Posengraphenoptimierung bei Block 746 bestimmt wird. Wenn es sich nicht um den Anker-Frame handelt, wird der Nicht-Anker-Frame-Bild- und Tiefenzeitdelta-Restwert bei Block 748 bestimmt, wobei ein Nicht-Anker-Frame-Zeitdelta-Visions faktor für eine Posengraphenoptimierung bei Block 750 bestimmt.
  • Ein Posengraphenoptimierungsblock 752 bestimmt einen optimierten Graphen unter Verwendung des Posengraphen, des IMU-Faktors, des Anker-Frame-Visionsfaktors und des Nicht-Anker-Frame-Visionsfaktors. Eine Statusaktualisierung wird auf dem optimierten Posengraphen bei Block 754 durchgeführt, wobei eine Marginalisierung bei Block 756 durchgeführt wird, was in einem endgültigen Gleitfenster bei 758 resultiert.
  • 8 ist ein Diagramm, das Einzelheiten über die Implementierung der MSL-DVIO für die 3D-Merkmalsparameterisierung gemäß einer Ausführungsform darstellt. Der Hauptunterschied zwischen dem MSL-DVIO-3D-Merkmal und dem MSL-DVIO 1D-Merkmal ist, dass das MS-DVIO-3D-Merkmal eine 2D-Merkmalsposition als Teil des Zustands aufweist, so dass die 2D-Position des Merkmals, bei Block 802, geschätzt wird, bevor der Posengraph erzeugt wird. Ein zweiter Unterschied ist, dass der Anker-Frame-Visionsfaktor sowohl einen Bild- als auch einen Tiefenrestwert aufweist. Insbesondere werden der Anker-Frame-Bild- und Tiefenrestwert bei Block 834 bestimmt, wobei der Anker-Frame-Bild- und Tiefenzeitdelta-Restwert bei Block 844 bestimmt wird.
  • In dieser Implementierung des MSL-DVIO ist die Optimierung für den Visionsfaktor modifiziert, doch bleibt der IMU-Faktor für das Gesamtoptimierungsproblem unverändert. Wenn das VIO-System keiner aggressiven Bewegung ausgesetzt wird, hat dies keine Auswirkungen. In einigen Fällen, in denen die Bewegung relativ aggressiv ist, insbesondere während der Initialisierungsphase, kann jedoch eine Abweichung in der Trajektorie festgestellt werden.
  • Die Zustände können beginnen, abzuweichen nachdem die erste Graphenoptimierung als Teil des Initialisierungsschritts durchgeführt worden ist. Somit kann eine Systementwurfsentscheidung vorgenommen werden, damit zwischen dem Initialisierungsschritt für die MSL-DVIO und das VINS-Mono Gleichwertigkeit herrscht. Zur Erlangung dieser Gleichwertigkeit kann das System modifiziert werden, wie nachstehend aufgeführt ist.
  • Im MSL-DVIO-1D-Merkmal wird eine Berechnung des Tiefenrestwerts für den Anker-Frame unterbrochen, wobei der Tiefenrestwert in dem Nicht-Anker-Frame für den Initialisierungsschritt auf null gesetzt wird. Auch die Jacobische in dem Visionsfaktor, der für den Tiefenrestwert spezifisch ist, wird ebenfalls auf null gesetzt.
  • Der Visionsrestwert ist nachstehend in den Gleichungen (90), (91) und (92) aufgeführt. r V I S n o n ( x i R , x j R , λ l ) = [ r I M G ( x i R , x j R , λ l ) r D P ( x i R , x j R , λ l ) ]
    Figure DE102022111926A1_0225
    r I M G ( x i R , x j R , λ l ) = g ( T c b T b j w T w b i T b c [ u j l ¯ λ l , v j l ¯ λ l , 1 λ l ,1 ] T ) Z li I M G
    Figure DE102022111926A1_0226
    r D P ( x i R , x j R , λ l ) = 0
    Figure DE102022111926A1_0227
  • Der veränderte Jacobische Teil ist nachstehend in Gleichung (93) aufgeführt. ƒ ( p l c j ) p l c j = [ 1 z l c j 0 x l c j z l c j 2 0 1 z l c j y l c l j z l c j 2 0 0 0 ]
    Figure DE102022111926A1_0228
  • Im MSL-DVIO-3D-Merkmal kann die Initialisierung des 2D-Merkmals im Zustand unter Verwendung des vorstehend beschriebenen Schätzalgorithmus unterbrochen werden. Der 2D-Merkmalszustand wird mit dem 2D-Merkmalsmesswert in dem Anker-Frame initialisiert. Die Berechnung des Tiefen- und -Bildrestwerts wird für den Anker-Frame unterbrochen, wobei der Tiefenrestwert für den Nicht-Anker-Frame auf null gesetzt wird. Die Jacobische in dem Visionsfaktor, der in Bezug auf ein 2D-Merkmal spezifisch ist, sowie der Tiefenrestwert werden auf null gesetzt.
  • Der Visionsrestwert ist nachstehend in Gleichungen (94), (95) und (96) aufgeführt. r V I S n o n ( x i R , x j R , λ l ) = [ r I M G ( x i R , x j R , λ l ) r D P ( x i R , x j R , λ l ) ]
    Figure DE102022111926A1_0229
    r I M G ( x i R , x j R , λ l ) = g ( T c b T b j w T w b i T b c [ u ι l ¯ λ l , v ι l ¯ λ l , 1 λ l ,1 ] T ) Z lj I M G
    Figure DE102022111926A1_0230
    r D P ( x i R , x j R , λ l ) = 0
    Figure DE102022111926A1_0231
  • Der veränderte Jacobische Teil ist nachstehend in Gleichung (97) aufgeführt. ƒ ( p l c j ) p l c j = [ 1 z l c j 0 x l c j z l c j 2 0 1 z l c j y l c l j z l c j 2 0 0 0 ]
    Figure DE102022111926A1_0232
  • Die gestapelte Jacobische für das Merkmalparameter ist nachstehend in Gleichung (98) aufgeführt. r V I S ( x i R , x j R , λ l ) x ƒ e a t = [ 0 0 A 1 0 0 A 2 0 0 0 ] ,   w e n n   A = [ A 1 , A 2 , A 3 ] T = r V I S ( x i R , x j R , λ l ) λ l
    Figure DE102022111926A1_0233
  • In der vorstehend beschriebenen Tiefeninitialisierung wird die Tiefeninitialisierung unter Verwendung des Tiefenmesswerts unterbrochen.
  • 9 ist ein Flussdiagramm, das ein Verfahren zum Durchführen einer VIO an einer UE gemäß einer Ausführungsform darstellt. Bei 902 werden Messwerte von einer IMU, einer Kamera und einem Tiefensensor der UE verarbeitet. Ein Datenstrom wird von der IMU empfangen und eine Vorintegration durchgeführt, um einen IMU-Vorintegrationsterm zu erzeugen. Ein Frame wird durch die Kamera aufgenommen, wobei eine Merkmalserfassung- und -nachverfolgung durchgeführt wird, um eine 2D-Merkmalsspur zu erzeugen. Ein Tiefenmesswert wird für ein erfasstes Merkmal des aufgenommenen Frames durch den Tiefensensor erzeugt.
  • Die Merkmalserfassung- und -nachverfolgung für den aufgenommenen Frame kann mit dem Tiefenmesswert synchronisiert werden. Die Merkmalsgeschwindigkeit in den Bild- und Tiefenbereichen kann basierend auf der Merkmalserfassung- und -nachverfolgung und der Tiefenmessung bzw. dem Tiefenmesswert berechnet werden.
  • Bei 904 wird die Keyframe-Initialisierung unter Verwendung des IMU-Vorintegrationsterms und der 2D-Merkmalsspur durchgeführt, um einen initialen Keyframe zu erzeugen.
  • Bei 906 wird der Keyframe-Restwert basierend auf den verarbeiteten Messwerten bestimmt. Der Keyframe-Restwert kann einen IMU-Restwert, einen 2D-Merkmalsrestwert und einen Tiefenrestwert beinhalten. Der IMU-Tiefenrestwert wird unter Verwendung des IMU-Vorintegrationsterms bestimmt, der 2D-Merkmalrestwert wird von der 2D-Merkmalsspur bestimmt, und der Tiefenrestwert wird von dem Tiefenmesswert bestimmt. Insbesondere der IMU-Restwert ist der Verlust zwischen dem geschätzten Wert der 6DOF-Pose für die Keyframes, die Geschwindigkeit und die Biases für die IMU, und dem IMU-Messwert (z. B. Beschleunigungssensor- und Gyroskopmesswert). Der Bildrestwert ist der Verlust zwischen dem geschätzten Wert der 6DOF-Pose für die Keyframes und die Position von einem Orientierungspunkt (1D oder 3D), und dem 2D-Messwert des Orientierungspunkts auf dem Keyframe. Der Tiefenrestwert ist der Verlust zwischen dem geschätzten Wert der 6DOF-Pose für die Keyframes und die Position von einem Orientierungspunkt (1D oder 3D) und dem Tiefenmesswert des Orientierungspunkts auf der Tiefenkarte.
  • Bei 908 wird ein Gleitfenstergraph basierend auf dem initialen Keyframe und von dem Keyframe-Restwert hergeleiteten Faktoren erzeugt und optimiert. Ein IMU-Faktor wird basierend auf dem IMU-Restwert bestimmt. Ein Anker-Frame-Visionsfaktor wird basierend auf dem Tiefenrestwert oder basierend auf dem 2D-Merkmalsrestwert und dem Tiefenrestwert bestimmt, wenn der aufgenommene Frame ein Anker-Frame ist. Ein Nicht-Anker-Frame-Visionsfaktor wird basierend auf dem 2D-Merkmalsrestwert und dem Tiefenrestwert bestimmt, wenn der aufgenommene Frame ein Nicht-Anker-Frame ist. Der Anker-Frame-Visionsfaktor und der Nicht-Anker-Frame-Visionsfaktor können auf einem Zeitversatz basieren, der Zeitstempel von der Kamera, dem Tiefensensors und der IMU ausgleicht.
  • Im Allgemeinen wird ein Visionsfaktor unter Verwendung von visuellen Sensoren erzeugt, die die 6DOF-Pose der Keyframes, der Position des Orientierungspunkts, des Tiefenrestwerts und des Bildrestwerts beinhalten. Ein IMU-Faktor wird unter Verwendung der IMU-Sensoren, die die 6DOF-Pose der Keyframes, die Geschwindigkeit und die Biases der IMU beinhalten, sowie des IMU-Restwerts erzeugt.
  • Der Gleitfenstergraph wird basierend auf dem IMU-Faktor und einem von dem Anker-Frame-Visionsfaktor und dem Nicht-Anker-Frame-Visionsfaktor optimiert. Die Optimierung kann die vorstehend beschriebene Zwei-Schritte-Marginalisierung beinhalten.
  • Während der Optimierung werden die Zustandsparameter derart geschätzt, dass ein sehr geringer Restwert für den Graphen zu einem gegebenen Zeitpunkt vorliegt.
  • Bei 910 wird eine Objektpose der UE basierend auf dem optimierten Gleitfenstergraphen geschätzt.
  • Für einen Vergleich der Leistung des MSL-DVIO-Systems können Testdatensätze herangezogen werden, die, neben einer Ground-Truth-Trajektorie, aus Sequenzen bestehen, die eine IMU-Kamera und Tiefendaten aufweisen. Es sind zwei Arten von Sequenzen vorgesehen.
  • Simulationssequenzen erzeugen RGBD- und IMU-Daten für die Trajektorie.
  • Durch das VINS-RGBD-System, das drei (3) handgehaltene Sequenzen des Abschreitens eines großen Raums beinhaltet, werden Real-World-Sequenzen erzeugt. Diese Sequenzen können unter Verwendung eines Realsense-D435-Sensors erzeugt werden, wobei die Ground-Truth unter Verwendung des MoCap-Systems erzeugt werden kann.
  • Unter Verwendung eines Okzipitalstrukturkernsensors können Depth-uncertaintyincorporated- (DUI-) VIO-Sequenzen (bzw. VIO-Sequenzen mit Tiefenunschärfe) erzeugt werden, wobei die Ground-Truth unter Verwendung des MoCap-Systems erzeugt werden kann.
  • Die Leistung des MSL-DVIO-Systems wird mit dem VINS-Mono und VINS-RGBD verglichen.
  • Die für den Vergleich verwendete Testmetrik ist der Fehler des quadratischen Mittelwerts (RMSE) eines absoluten Übersetzungsfehlers, der nachstehend durch die Gleichung (99) gegeben ist. R M S E = ( 1 n i n t r a n s ( Q i 1 S P i ) 2 ) 1 / 2
    Figure DE102022111926A1_0234
    wobei Q die Ground-Truth-Trajektorie ist, P die geschätzte Trajektorie ist und S die Festkörpertransformation zwischen der Ground-Truth und der geschätzten Trajektorie ist.
  • Die Vergleichsleistung der drei Systeme für die Sequenzen ist in Tabelle 7 unten bereitgestellt. Tabelle 7 - ATE-Leistungsergebnis
    Sequenz-Name MSL-DVIO 1D-Merkmal MSL-DVIO 3D-Merkmal VINS-Mono VINS-RGBD
    u3d spiral 0,032 0,046 0,145 X
    u3d sine 0,036 0,037 0,353 0,084
    u3d simple 0,241 0,213 0,575 0,369
    u3d normal 0,122 0,189 0,795 0,453
    u3d rotation 0,836 0,496 0,924 0,682
    rgbd simple 0,184 0,205 0,228 0,183
    rgbd normal 0,181 0,204 0,229 0,059
    rgbd rotation 0,195 0,210 0,196 0,126
    corridor1 X X 4,39 5,13
    corridor2 1,41 1,14 1,61 1,81
    corridor3 2,35 1,99 3,97 6,81
    corridor4 1,51 0,915 4,33 1,95
    halll 0,694 2,36 4,8 2,34
    hal12 2,176 1,019 12,71 7,98
    hall3 X 6,61 X X
    easy1 0,075 0,079 0,142 0,137
    easy2 0,067 0,073 0,175 0,431
    easy3 0,079 0,084 0,236 0,116
    dynamic 1 0,157 0,159 0,287 0,216
    dynamic2 0,206 0,303 0,55 0,324
    dynamic3 0,294 0,293 0,653 0,52
    dynamic4 0,820 1,186 1,7 2,5
    dynamic5 0,060 0,118 0,469 0,177
    light1 0,871 0,361 X X
    light2 0,37 0,3752 0,4 0,48
    light3 0,139 0,156 0,384 X
    light4 0,175 0,181 0,29 3,11
    light5 1,211 0,574 X 1,12
    light6 2,2 1,98 1,06 X
    motion1 0,292 0,371 0,526 0,581
    motion2 0,333 0,475 0,699 0,66
    motion3 0,158 0,161 0,452 0,361
    motion4 0,334 0,345 0,54 0,488
    motion5 0,250 0,226 0,373 0,378
    motion6 0,246 0,225 0,707 0,725
  • Wie in Tabelle 7 gezeigt, kennzeichnen die fett gedruckten Zahlen die beste Leistung für die Sequenz, kennzeichnet ein „X“, dass die Initialisierung des Systems gescheitert ist oder dass das System in einer großen ATE (>50 Meter) resultierte.
  • Die Timing-Leistung der unterschiedlichen Systeme kann auch zu dem Zweck verglichen werden, die Echtzeitleistung des Algorithmus sowie die Auswirkungen der Algorithmusveränderungen zu bestimmen. Für einen solchen Vergleich werden Timing-Zahlen der MSL-DVIO-1D- und der MSL-DVIO-3D-Systeme mit und ohne schnelle Marginalisierungsänderungen mit dem VINS-Mono- und dem VINS-RGBD-System geschätzt. Die Ergebnisse sind nachstehend in Tabelle 8 gezeigt. Tabelle 8 - Verarbeitungszeitschätzung von MSL-DVIO
    Gesamtzeit (Millisek.) Ceres Optimierungszeit (Millisek. ) Marginalisierungszeit (Millisek.) Triangulationszeit (Millisek.)
    MSL-DVIO 1D (mit schneller Marginalisierung) 54,0985 0,0558 45,5234 4,9316
    MSL-DVIO 3D (mit schneller Marginalisierung) 83,527 1,0526 54,2526 25,4595
    MSL-DVIO 1D (ohne schnelle Marginalisierung) 69,6035 0,0462 37,3896 27,5371
    MSL-DVIO 1D (ohne schnelle Marginalisierung) 449,92 0,718 39,0122 407,3284
    VINS-Mono 61,4034 0,0505 30,7614 26,7074
    VINS-RGBD 61,4034 0,0505 30,7614 26,7074
  • Wie in Tabelle 8 gezeigt ist, wird bei schnellen Marginalisierungsveränderungen die Marginalisierungsverarbeitungszeit für sowohl MSL-DVIO 1D (~ 80 % Verbesserung) als auch MSL-DVIO 3D (~ 94 % Verbesserung) verbessert. Dementsprechend wird eine Echtzeitleistung von ~ 18 Hz für MSL-DVIO 1D und ~ 11 Hz für MSL-DVIO 3D erreicht. Beide Zahlen übersteigen eine 10 Hz-Anforderung für den nichtlinearen Optimierungs-Thread, so dass eine Echtzeitleistung des vollständigen VIO-Systems ermöglicht wird.
  • 10 ist ein Blockdiagramm einer elektronischen Vorrichtung in einer Netzwerkumgebung gemäß einer Ausführungsform. Bezugnehmend auf 10 kann eine elektronische Vorrichtung 1001 in einer Netzwerkumgebung 1000 mit einer elektronischen Vorrichtung 1002 über ein erstes Netzwerk 1098 (z. B. ein drahtloses Kommunikationsnetzwerk mit kurzer Reichweite) kommunizieren, oder eine elektronische Vorrichtung 1004 oder ein Server 1008 über ein zweites Netzwerk 1099 (z. B. ein drahtloses Langstrecken-Kommunikationsnetzwerk). Die elektronische Vorrichtung 1001 kann mit der elektronischen Vorrichtung 1004 über den Server 1008 kommunizieren. Die elektronische Vorrichtung 1001 kann einen Prozessor 1020, einen Speicher 1030, eine Eingabevorrichtung 1050, eine Tonausgabevorrichtung 1055, eine Anzeigevorrichtung 1060, ein Audiomodul 1070, ein Sensormodul 1076, eine Schnittstelle 1077, ein Haptikmodul 1079, ein Kameramodul 1080, ein Leistungsverwaltungsmodul 1088, eine Batterie 1089, ein Kommunikationsmodul 1090, ein Teilnehmeridentitätsmodul (SIM) 1096 oder ein Antennenmodul 1097 beinhalten. In einer Ausführungsform kann auf zumindest eine der Komponenten (z. B. die Anzeigevorrichtung 1060 oder das Kameramodul 1080) in der elektronischen Vorrichtung 1001 verzichtet werden, oder es können der elektronischen Vorrichtung 1001 eine oder mehrere Komponenten hinzugefügt werden. Einige der Komponenten können als eine einzelne integrierte Schaltung (IC) implementiert sein. Zum Beispiel kann das Sensormodul 1076 (z. B. ein Fingerabdrucksensor, ein Irissensor oder ein Helligkeitssensor) in die Anzeigevorrichtung 1060 (z. B. eine Anzeige) eingebettet sein.
  • Der Prozessor 1020 kann z. B. eine Software (z. B. ein Programm 1040) ausführen, um zumindest eine andere Komponente (z. B. eine Hardware- oder Software-Komponente) der elektronischen Vorrichtung 1001, die mit dem Prozessor 1020 gekoppelt ist, zu steuern und kann verschiedene Datenverarbeitungen und -berechnungen durchführen. Als zumindest ein Teil der Datenverarbeitungen und -berechnungen kann der Prozessor 1020 einen Befehl oder Daten laden, die von einer anderen Komponente (z. B. dem Sensormodul 1076 oder dem Kommunikationsmodul 1090) in einem flüchtigen Speicher 1032 empfangen werden, den Befehl oder die Daten, die in dem flüchtigen Speicher 1032 gespeichert sind, verarbeiten und resultierende Daten in dem nicht-flüchtigen Speicher 1034 speichern. Der Prozessor 1020 kann einen Hauptprozessor 1021 (z. B. eine zentrale Verarbeitungseinheit (CPU) oder einen Anwendungsprozessor (AP)) und einen Hilfsprozessor 1023 (z. B. eine Graphikverarbeitungseinheit (GPU), einen Bildsignalprozessor (ISP), einen Sensorhubprozessor oder einen Kommunikationsprozessor (CP)) beinhalten, der unabhängig von oder zusammen mit dem Hauptprozessor 1021 betreibbar ist. Zusätzlich oder alternativ kann der Hilfsprozessor 1023 so angepasst sein, dass er weniger Leistung als der Hauptprozessor 1021 verbraucht oder eine spezielle Funktion ausführt. Der Hilfsprozessor 1023 kann separat oder als ein Teil von dem Hauptprozessor implementiert sein.
  • Der Hilfsprozessor 1023 kann, im Gegensatz zum Hauptprozessor 1021, zumindest einige der Funktionen oder Zustände, welche auf zumindest eine Komponente (z. B. die Anzeigevorrichtung 1060, das Sensormodul 1076 oder das Kommunikationsmodul 1090) unter den Komponenten der elektronischen Vorrichtung 1001 bezogen sind, steuern, während sich der Hauptprozessor 1021 in einem inaktiven (z. B. Sleep-) Zustand befindet, oder er kann dies zusammen mit dem Hauptprozessor 1021 tun, während der Hauptprozessor 1021 sich in einem aktiven Zustand befindet (z. B. eine Anwendung ausführt). Der Hilfsprozessor 1023 (z. B. ein Bildsignalprozessor oder ein Kommunikationsprozessor) kann als ein Teil einer anderen Komponente (z. B. des Kameramoduls 1080 oder des Kommunikationsmoduls 1090) implementiert sein, welche funktionell auf den Hilfsprozessor 1023 bezogen ist.
  • Der Speicher 1030 kann verschiedene Daten speichern, welche durch zumindest eine Komponente (z. B. den Prozessor 1020 oder das Sensormodul 1076) der elektronischen Vorrichtung 1001 verwendet werden. Die verschiedenen Daten können z. B. eine Software (z. B. das Programm 1040) und Eingabedaten oder Ausgabedaten für einen darauf bezogenen Befehl beinhalten. Der Speicher 1030 kann den flüchtigen Speicher 1032 oder den nichtflüchtigen Speicher 1034 beinhalten.
  • Das Programm 1040 kann in dem Speicher 1030 als eine Software gespeichert sein und kann z. B. ein Betriebssystem (OS) 1042, eine Middleware 1044 oder eine Anwendung 1046 beinhalten.
  • Die Eingabevorrichtung 1050 kann einen Befehl oder Daten, die durch eine andere Komponente (z. B. den Prozessor 1020) der elektronischen Vorrichtung 1001 verwendet werden sollen, von außerhalb (z. B. einem Benutzer) der elektronischen Vorrichtung 1001 empfangen. Die Eingabevorrichtung 1050 kann z. B. ein Mikrophon, eine Maus oder eine Tastatur beinhalten.
  • Die Tonausgabevorrichtung 1055 kann Tonsignale nach außerhalb der elektronischen Vorrichtung 1001 ausgeben. Die Tonausgabevorrichtung 1055 kann z. B. einen Lautsprecher oder einen Empfänger beinhalten. Der Lautsprecher kann für allgemeine Zwecke verwendet werden, wie z. B. ein Wiedergeben von Multimedia oder einer Aufzeichnung, wobei der Empfänger zum Empfangen eines eingehenden Anrufs verwendet werden kann. Der Empfänger kann separat von oder als ein Teil von dem Lautsprecher implementiert sein.
  • Die Anzeigevorrichtung 1060 kann Informationen nach außerhalb (z. B. einem Benutzer) der elektronischen Vorrichtung 1001 visuell bereitstellen. Die Anzeigevorrichtung 1060 kann z. B. eine Anzeige, eine Hologrammvorrichtung oder einen Projektor- und Steuerungsschaltungsaufbau zum Steuern einer entsprechenden Anzeige, Hologrammvorrichtung und eines entsprechenden Projektors beinhalten. Die Anzeigevorrichtung 1060 kann einen Tastschaltungsaufbau, der dafür eingerichtet ist, eine Berührung zu erfassen, oder einen Sensorschaltungsaufbau (z. B. einen Drucksensor), der dafür angepasst ist, die Intensität der durch die Berührung erfahrenen Kraft zu messen, beinhalten.
  • Das Audiomodul 1070 kann einen Ton in ein elektrisches Signal umwandeln und umgekehrt. Das Audiomodul 1070 kann den Ton über die Eingabevorrichtung 1050 erhalten oder den Ton über die Tonausgabevorrichtung 1055 oder einen Kopfhörer von einer externen elektronischen Vorrichtung 1002 direkt (z. B. verdrahtet) oder drahtlos gekoppelt mit der elektronischen Vorrichtung 1001 ausgeben.
  • Das Sensormodul 1076 kann einen Betriebszustand (z. B. eine Leistung oder Temperatur) der elektronischen Vorrichtung 1001 oder einen Umgebungszustand (z. B. einen Zustand eines Benutzers) außerhalb der elektronischen Vorrichtung 1001 erfassen und dann ein elektrisches Signal oder einen Datenwert erzeugen, der dem erfassten Zustand entspricht. Das Sensormodul 1076 kann z. B. einen Gestensensor, einen Gyrosensor, einen Atmosphärendrucksensor, einen Magnetsensor, einen Beschleunigungssensor, einen Griffsensor, einen Näherungssensor, einen Farbsensor, einen Infrarot- (IR-) Sensor, einen biometrischen Sensor, einen Temperatursensor, einen Feuchtigkeitssensor oder einen Beleuchtungsstärkensensor beinhalten.
  • Die Schnittstelle 1077 kann ein oder mehrere spezifizierte Protokolle unterstützen, die für die elektronische Vorrichtung 1001, die mit der externen elektronischen Vorrichtung 1002 direkt (z. B. drahtgebunden) oder drahtlos gekoppelt werden soll, verwendet werden sollen. Die Schnittstelle 1077 kann z. B. eine High-Definition-Multimedia-Interface (HDMI), eine Universal-Serial-Bus- (USB-) Schnittstelle, eine sichere digitale (SD-) Kartenschnittstelle oder eine Audioschnittstelle beinhalten.
  • Ein Verbindungsanschluss 1078 kann einen Verbinder beinhalten, über den die elektronische Vorrichtung 1001 mit der externen elektronischen Vorrichtung 1002 physikalisch verbunden werden kann. Der Verbindungsanschluss 1078 kann z. B. einen HDMI-Verbinder, einen USB-Verbinder, einen SD-Kartenverbinder oder einen Audioverbinder (z. B. einen Kopfhörerverbinder) beinhalten.
  • Das haptische Modul 1079 kann ein elektrisches Signal in einen mechanischen Reiz (z. B. eine Vibration oder eine Bewegung) oder einen elektrischen Reiz umwandeln, der durch einen Benutzer über eine Tastempfindung oder kinästhetische Empfindung erkannt werden kann. Das haptische Modul 1079 kann z. B. einen Elektromotor, ein piezoelektrisches Element oder einen elektrischen Stimulator beinhalten.
  • Das Kameramodul 1080 kann ein Standbild oder Bewegtbilder erfassen. Das Kameramodul 1080 kann eine oder mehrere Linsen, Bildsensoren, Bildsignalprozessoren oder Blitzlichter beinhalten.
  • Das Leistungsverwaltungsmodul 1088 kann eine der elektronischen Vorrichtung 1001 zugeführte Leistung verwalten. Das Leistungsverwaltungsmodul 1088 kann als zumindest ein Teil von z. B. einer integrierten Leistungsverwaltungsschaltung (PMIC) implementiert sein.
  • Die Batterie 1089 kann zumindest einer Komponente der elektronischen Vorrichtung 1001 Leistung zuführen. Die Batterie 1089 kann z. B. eine Primärzelle, die nicht wiederaufladbar ist, oder eine Sekundärzelle, die wiederaufladbar ist, oder eine Brennstoffzelle beinhalten.
  • Das Kommunikationsmodul 1090 kann ein Einrichten eines direkten (z. B. drahtgebundenen) Kommunikationskanals oder eines drahtlosen Kommunikationskanals zwischen der elektronischen Vorrichtung 1001 und der externen elektronischen Vorrichtung (z. B. der elektronischen Vorrichtung 1002, der elektronischen Vorrichtung 1004 oder dem Server 1008) und ein Durchführen einer Kommunikation über den eingerichteten Kommunikationskanal unterstützen. Das Kommunikationsmodul 1090 kann einen oder mehrere Kommunikationsprozessoren, die unabhängig von dem Prozessor 1020 (z. B. dem AP) betreibbar sind, beinhalten und unterstützt eine direkte (z. B. drahtgebundene) Kommunikation oder eine drahtlose Kommunikation. Das Kommunikationsmodul 1090 kann ein drahtloses Kommunikationsmodul 1092 (z. B. ein zellulares Kommunikationsmodul, ein drahtloses Kommunikationsmodul mit kurzer Reichweite oder ein globales Satellitennavigations- (GNSS-) Kommunikationsmodul) oder ein drahtgebundenes Kommunikationsmodul 1094 (z. B. ein lokales Netzwerk- (LAN-) Kommunikationsmodul oder ein Powerline-Kommunikations- (PLC-) Modul) beinhalten. Ein entsprechendes von diesen Kommunikationsmodulen kann mit der externen elektronischen Vorrichtung über das erste Netzwerk 1098 (z. B. ein Kommunikationsnetzwerk mit kurzer Reichweite, wie z. B. Bluetooth®, Wireless-Fidelity- (Wi-Fi-) Direct oder einen Standard der Infrared-Data-Association (IrDA)) oder das zweite Netzwerk 1099 (z. B. ein Kommunikationsnetzwerk mit großer Reichweite, wie z. B. ein zelluläres Netzwerk, das Internet oder ein Computernetzwerk (z. B. LAN oder ein Weitverkehrsnetz (WAN)) kommunizieren. Diese verschiedenen Arten von Kommunikationsmodulen können als eine einzelne Komponente (z. B. eine einzelne integrierte Schaltung) implementiert sein, oder sie können als mehrere Komponenten (z. B. mehrere integrierte Schaltungen), die voneinander getrennt sind, implementiert sein. Das drahtlose Kommunikationsmodul 1092 kann die elektronische Vorrichtung 1001 in einem Kommunikationsnetzwerk, wie z. B. dem ersten Netzwerk 1098 oder dem zweiten Netzwerk 1099, unter Verwendung von Teilnehmerinformationen (z. B. einer internationalen mobilen Teilnehmeridentität (IMSI)), die in dem Teilnehmeridentifikationsmodul 1096 gespeichert sind, identifizieren und authentifizieren.
  • Das Antennenmodul 1097 kann ein Signal oder eine Leistung nach oder von außerhalb (z. B. der externen elektrischen Vorrichtung) der elektronischen Vorrichtung 1001 übertragen oder empfangen. Das Antennenmodul 1097 kann eine oder mehrere Antennen beinhalten, und von diesen kann zumindest eine Antenne, die für ein Kommunikationsschema geeignet ist, das in dem Kommunikationsnetzwerk, wie z. B. dem ersten Netzwerk 1098 oder dem zweiten Netzwerk 1099, verwendet wird, durch z. B. das Kommunikationsmodul 1090 (z. B. das drahtlose Kommunikationsmodul 1092) ausgewählt werden. Das Signal oder die Leistung kann dann zwischen dem Kommunikationsmodul 1090 und der externen elektrischen Vorrichtung über die ausgewählte zumindest eine Antenne übertragen oder empfangen werden.
  • Zumindest einige der vorstehend beschriebenen Komponenten können miteinander gekoppelt sein und untereinander über ein interperiphäres Kommunikationsschema (z. B. einen Bus, eine Allzweckeingabe-/ausgabe (GPIO), eine serielle periphere Schnittstelle (SPI) oder eine mobile Industrieprozessorschnittstelle (MIPI)) Signale kommunizieren.
  • Befehle oder Daten können zwischen der elektronischen Vorrichtung 1001 und der externen elektronischen Vorrichtung 1004 über den Sensor 1008, der mit dem zweiten Netzwerk 1099 gekoppelt ist, übertragen und empfangen werden. Die elektronischen Vorrichtungen 1002 und 1004 können jeweils eine Vorrichtung eines identischen Typs wie die oder eines unterschiedlichen Typs zur der elektronischen Vorrichtung 1001 sein. Die Gesamtheit der an der elektronischen Vorrichtung 1001 auszuführenden Vorgänge oder ein Teil davon kann an einer oder mehreren der externen elektronischen Vorrichtungen 1002, 1004 oder 1008 ausgeführt werden. Wenn die elektronische Vorrichtung 1001 z. B. eine Funktion oder einen Dienst automatisch oder in Reaktion auf eine Anforderung von einem Benutzer oder einer anderen Vorrichtung ausführen soll, kann die elektronische Vorrichtung 1001, anstelle des Ausführens der Funktion oder des Dienstes, oder zusätzlich dazu, die eine oder die mehreren elektronischen Vorrichtungen auffordern, zumindest einen Teil der Funktion oder des Dienstes auszuführen. Die eine oder die mehreren elektronischen Vorrichtungen, die die Anforderung empfangen, kann/können den zumindest einen Teil der angeforderten Funktion oder des angeforderten Dienstes oder eine zusätzliche Funktion oder einen zusätzlichen Dienst, die auf die Anforderung bezogen sind, durchführen und ein Ergebnis der Durchführung an die elektronische Vorrichtung 1001 übertragen. Die elektronische Vorrichtung 1001 kann das Ergebnis, mit oder ohne eine weitere Verarbeitung des Ergebnisses, als zumindest einen Teil einer Antwort auf die Anforderung bereitstellen. Zu diesem Zweck kann eine Cloud-Computing-, eine verteilte Rechen- oder eine Client-Server-Rechentechnologie verwendet werden.
  • Eine Ausführungsform kann als eine Software (z. B. das Programm 1040) implementiert sein, die eine oder mehrere Anweisungen beinhaltet, die in einem Speichermedium (z. B. einem internen Speicher 1036 oder einem externen Speicher 1038) gespeichert sind, das durch eine Maschine (z. B. die elektronische Vorrichtung 1001) lesbar ist. Ein Prozessor der elektronischen Vorrichtung 1001 kann z. B. zumindest eine von der einen oder den mehreren in dem Speichermedium gespeicherten Anweisungen unter oder ohne Verwendung von einer oder mehreren anderen Komponenten unter der Steuerung des Prozessors aufrufen und diese ausführen. Somit kann eine Maschine betrieben werden, um zumindest eine Funktion gemäß der zumindest einen aufgerufenen Anweisung durchzuführen. Die eine oder die mehreren Anweisungen können einen Code, der durch einen Compiler erzeugt wird, oder einen durch einen Interpreter ausführbaren Code beinhalten. Ein maschinenlesbares Speichermedium kann in der Form eines nichttransitorischen Speichermediums bereitgestellt sein. Der Begriff „nichttransitorisch“ weist darauf hin, dass das Speichermedium eine dinghafte Vorrichtung ist und kein Signal beinhaltet (z. B. eine elektromagnetische Welle), j edoch unterscheidet dieser Begriff nicht zwischen dem Ort, wo Daten in dem Speichermedium semipermanent gespeichert sind, und dem Ort, wo die Daten in dem Speichermedium vorübergehend gespeichert sind.
  • Gemäß einer Ausführungsform kann ein Verfahren der Offenbarung in einem Computerprogrammprodukt enthalten und bereitgestellt sein. Das Computerprogrammprodukt kann als ein Produkt zwischen einem Verkäufer und einem Käufer gehandelt werden. Das Computerprogrammprodukt kann in der Form eines maschinenlesbaren Speichermediums (z. B. einem Compact-Disc-Read-Only-Memory (CD-ROM)) oder online über ein Application-Store (z. B. Play Store®) oder direkt zwischen zwei Benutzervorrichtungen (z. B. Smartphones) vertrieben werden. Beim Onlinevertrieb kann zumindest ein Teil des Computerprogrammprodukts vorübergehend erzeugt werden oder zumindest vorübergehend in dem maschinenlesbaren Speichermedium, wie z. B. einem Speicher des Servers des Herstellers, einem Server des Application-Store oder einem Relay-Server, gespeichert sein.
  • Gemäß einer Ausführungsform kann jede Komponente (z. B. ein Modul oder ein Programm) der vorstehend beschriebenen Komponenten eine einzelne Entität oder mehrere Entitäten beinhalten. Es kann auf eine oder mehrere der vorstehend beschriebenen Komponenten verzichtet werden, oder es können eine oder mehrere weitere Komponenten hinzugefügt werden. Alternativ oder zusätzlich kann eine Mehrzahl von Komponenten (z. B. Module oder Programme) zu einer einzelnen Komponente integriert sein. In diesem Fall kann die integrierte Komponente immer noch eine oder mehrere Funktionen von einer jeweiligen von der Mehrzahl von Komponenten auf die gleiche oder eine ähnliche Weise durchgeführt werden wie sie durch eine entsprechende von der Mehrzahl von Komponenten vor der Integration durchgeführt werden. Durch das Modul, das Programm oder eine andere Komponente durchgeführte Operationen können sequentiell, parallel, wiederholt oder heuristisch ausgeführt werden, oder es können eine oder mehrere Operationen in einer unterschiedlichen Reihenfolge ausgeführt oder ausgelassen werden, oder es können eine oder mehrere Operationen hinzugefügt werden.
  • Selbst wenn bestimmte Ausführungsformen der vorliegenden Offenbarung in der ausführlichen Beschreibung der vorliegenden Offenbarung erläutert worden sind, kann die vorliegende Offenbarung verschiedenartig modifiziert werden, ohne vom Schutzbereich der vorliegenden Offenbarung abweichen. Der Schutzbereich der vorliegenden Offenbarung ist somit nicht nur im Zusammenhang mit den beschriebenen Ausführungsformen, sondern vielmehr auf Basis der beigefügten Ansprüche und deren Entsprechungen zu bestimmen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/192488 [0001]

Claims (20)

  1. Verfahren zum Durchführen einer visuellen Trägheitsodometrie (VIO) an einer Benutzervorrichtung (UE), wobei das Verfahren folgende Schritte aufweist: Verarbeiten von Messungen von einer Trägheitsmessungseinheit (IMU), einer Kamera und einem Tiefensensor der UE; Bestimmen eines Keyframe-Restwertes, der zumindest einen Tiefenrestwert aufweist, basierend auf den verarbeiteten Messungen; Erzeugen und Optimieren eines Gleitfenstergraphen basierend auf Faktoren, die von dem Keyframe-Restwert abgeleitet werden; und Schätzen von einer Objektpose der UE basierend auf dem optimierten Gleitfenstergraphen.
  2. Verfahren nach Anspruch 1, wobei das Verarbeiten der Messungen aufweist: Empfangen eines Datenstroms von der IMU und Durchführen einer Vorintegration für den Datenstrom, um einen IMU-Vorintegrationsterm zu erzeugen; Aufnehmen eines Frames durch die Kamera, und Durchführen einer Merkmalserfassung und -nachverfolgung des aufgenommenen Frames, um eine zweidimensionale (2D-) Merkmalsspur zu erzeugen; und Erzeugen einer Tiefenmessung, für ein erfasstes Merkmal des aufgenommenen Frames, durch den Tiefensensor.
  3. Verfahren nach Anspruch 2, wobei das Bestimmen des Keyframe-Restwerts aufweist: Bestimmen eines IMU-Restwerts unter Verwendung des IMU-Vorintegrationsterms; Bestimmen eines 2D-Merkmalsrestwerts von der 2D-Merkmalsspur; und Bestimmen des Tiefenrestwerts von der Tiefenmessung.
  4. Verfahren nach Anspruch 3, wobei das Erzeugen und Optimieren des Gleitfenstergraphen aufweist: Bestimmen eines IMU-Faktors basierend auf dem IMU-Restwert; Bestimmen eines Ankerframe-Visionsfaktors basierend auf zumindest dem Tiefenrestwert, falls der aufgenommene Frame ein Ankerframe ist; Bestimmen eines Nicht-Ankerframe-Visionsfaktors basierend auf dem 2D-Merkmalsrestwert und dem Tiefenrestwert, in dem Fall, dass der aufgenommene Rahmen ein Nicht-Ankerframe ist; und Optimieren des Gleitfenstergraphen basierend auf dem IMU-Faktor und einem von dem Ankerframe-Visionsfaktor und dem Nicht-Ankerframe-Visionsfaktor.
  5. Verfahren nach Anspruch 4, wobei der Ankerframe-Visionsfaktor basierend auf dem 2D-Merkmalsrestwert und dem Tiefenrestwert bestimmt wird.
  6. Verfahren nach Anspruch 4, wobei der Ankerframe-Visionsfaktor und der Nicht-Ankerframe-Visionsfaktor auf einem Zeitversatz basieren, der Zeitstempeln von der Kamera, dem Tiefensensor und der IMU entspricht.
  7. Verfahren nach Anspruch 2, ferner aufweisend ein Durchführen einer Keyframe-Initialisierung unter Verwendung des IMU-Vorintegrationsterms und der 2D-Merkmalsspur, um einen initialen Keyframe zu erzeugen, wobei der Gleitfenstergraph basierend auf dem initialen Keyframe erzeugt wird.
  8. Verfahren nach Anspruch 2, ferner aufweisend ein Synchronisieren einer Merkmalserfassung und -nachverfolgung des aufgenommenen Frames mit einer Tiefenmessung des erfassten Merkmals.
  9. Verfahren nach Anspruch 2, ferner aufweisend ein Berechnen einer Merkmalsgeschwindigkeit in Bild- und Tiefenbereichen basierend auf der Merkmalserfassung und -nachverfolgung und Tiefenmessung.
  10. Verfahren nach Anspruch 4, wobei ein Optimieren des Gleitfenstergraphen aufweist: Durchführen einer Marginalisierung von Orientierungspunkten in dem aufgenommenen Frame; und Durchführen einer Marginalisierung von einer Keyframe-Pose, Geschwindigkeit und Bias-Termen.
  11. Benutzervorrichtung (UE), aufweisend: eine Trägheitsmessungseinheit (IMU); eine Kamera; einen Tiefensensor; einen Prozessor; und ein nichttransitorisches computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie ausgeführt werden, bewirken, dass der Prozessor: Messungen von der IMU, der Kamera und dem Tiefensensor verarbeitet; einen Keyframe-Restwert, der zumindest einen Tiefenrestwert aufweist, basierend auf den verarbeiteten Messungen bestimmt; einen Gleitfenstergraphen basierend auf Faktoren erzeugt und optimiert, die von dem Keyframe-Restwert abgeleitet werden; und eine Objektpose der UE basierend auf dem optimierten Gleitfenstergraphen schätzt.
  12. UE nach Anspruch 11, wobei beim Verarbeiten der Messungen die Anweisungen ferner bewirken, dass der Prozessor: einen Datenstrom von der IMU empfängt und eine Vorintegration für den Datenstrom durchgeführt wird, um einen IMU-Vorintegrationsterm zu erzeugen; einen Frame durch die Kamera aufnimmt, und eine Merkmalserfassung und -nachverfolgung des aufgenommenen Frames durchgeführt wird, um eine zweidimensionale (2D-) Merkmalsspur zu erzeugen; und eine Tiefenmessung für ein erfasstes Merkmal des aufgenommenen Frames durch den Tiefensensor erzeugt.
  13. UE nach Anspruch 12, wobei, beim Bestimmen des Keyframe-Restwerts, die Anweisungen ferner bewirken, dass der Prozessor: einen IMU-Restwert unter Verwendung des IMU-Vorintegrationsterms bestimmt; einen 2D-Merkmals-Restwert von der 2D-Merkmalsspur bestimmt; und den Tiefenrestwert von der Tiefenmessung bestimmt.
  14. UE nach Anspruch 13, wobei, beim Erzeugen und Optimieren des Gleitfenstergraphen, die Anweisungen ferner bewirken, dass der Prozessor: einen IMU-Faktor basierend auf dem IMU-Restwert bestimmt; einen Ankerframe-Visionsfaktor basierend auf zumindest dem Tiefenrestwert bestimmt, in dem Fall, dass der aufgenommene Frame ein Ankerframe ist; einen Nicht-Ankerframe-Visionsfaktor basierend auf dem 2D-Merkmalsrestwert und dem Tiefenrestwert bestimmt, in dem Fall, dass der aufgenommene Frame ein Nicht-Ankerframe ist; und den Gleitfenstergraphen basierend auf dem IMU-Faktor und einem von dem Ankerframe-Visionsfaktor und dem Nicht-Ankerframe-Visionsfaktor optimiert.
  15. UE nach Anspruch 14, wobei der Ankerframe-Visionsfaktor basierend auf dem 2D-Merkmalsrestwert und dem Tiefenrestwert bestimmt wird.
  16. UE nach Anspruch 14, wobei der Ankerframe-Visionsfaktor und der Nicht-Ankerframe-Visionsfaktor auf einem Zeitversatz basieren, der Zeitstempeln von der Kamera, dem Tiefensensorsund der IMU entspricht.
  17. UE nach Anspruch 12, wobei die Anweisungen ferner bewirken, dass der Prozessor eine Keyframe-Initialisierung unter Verwendung des IMU-Vorintegrationsterms und der 2D-Merkmalsspur durchführt, um einen initialen Keyframe zu erzeugen, wobei der Gleitfenstergraph basierend auf dem initialen Keyframe erzeugt wird.
  18. UE nach Anspruch 12, wobei die Anweisungen ferner bewirken, dass der Prozessor die Merkmalserfassung und -nachverfolgung des aufgenommenen Frames mit der Tiefenmessung des erfassten Merkmals synchronisiert.
  19. UE nach Anspruch 12, wobei die Anweisungen ferner bewirken, dass der Prozessor eine Merkmalsgeschwindigkeit in Bild- und Tiefenbereichen basierend auf der Merkmalserfassung und -nachverfolgung und der Tiefenmessung berechnet.
  20. UE nach Anspruch 14, wobei, beim Optimieren des Gleitfenstergraphen, die Anweisungen ferner bewirken, dass der Prozessor: eine Marginalisierung von Orientierungspunkten in dem aufgenommenen Frame durchführt; und eine Marginalisierung von einer Keyframe-Pose, Geschwindigkeit und Bias-Termen durchführt.
DE102022111926.2A 2021-05-24 2022-05-12 Verfahren und Vorrichtung für eine tiefengestützte visuelle Trägheitsodometrie Pending DE102022111926A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163192488P 2021-05-24 2021-05-24
US63/192,488 2021-05-24
US17/726,124 US20220414919A1 (en) 2021-05-24 2022-04-21 Method and apparatus for depth-aided visual inertial odometry
US17/726,124 2022-04-21

Publications (1)

Publication Number Publication Date
DE102022111926A1 true DE102022111926A1 (de) 2022-12-01

Family

ID=83997287

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022111926.2A Pending DE102022111926A1 (de) 2021-05-24 2022-05-12 Verfahren und Vorrichtung für eine tiefengestützte visuelle Trägheitsodometrie

Country Status (5)

Country Link
US (1) US20220414919A1 (de)
KR (1) KR20220158628A (de)
CN (1) CN115388882A (de)
DE (1) DE102022111926A1 (de)
TW (1) TW202247099A (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117710449B (zh) * 2024-02-05 2024-04-16 中国空气动力研究与发展中心高速空气动力研究所 基于numa的实时位姿视频测量流水线模型优化方法

Also Published As

Publication number Publication date
TW202247099A (zh) 2022-12-01
US20220414919A1 (en) 2022-12-29
KR20220158628A (ko) 2022-12-01
CN115388882A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
DE112018001050T5 (de) System und verfahren zur virtuell erweiterten visuellen gleichzeitigen lokalisierung und kartographierung
CN107481292B (zh) 车载摄像头的姿态误差估计方法和装置
US10484665B2 (en) Camera parameter set calculation method, recording medium, and camera parameter set calculation apparatus
DE112016003118B4 (de) Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern
DE112018001056T5 (de) Automatisches fahrzeug-parksystem und -verfahren
DE102020104363A1 (de) Erkennung eines anomalen bilds in zusammenhang mit bilddaten von einer oder mehreren kameras eines computerunterstützt oder autonom fahrenden fahrzeugs
DE102016118680A1 (de) Situationsabhängiges Aufheben eines Weckwortes zum Aktivieren einer Sprachbefehlseingabe
Tamas et al. Targetless calibration of a lidar-perspective camera pair
US20220051031A1 (en) Moving object tracking method and apparatus
CN108932734B (zh) 单目图像的深度恢复方法及装置、计算机设备
CN111754579B (zh) 多目相机外参确定方法及装置
DE102020128899A1 (de) Adaptive virtuelle kamera für indirect-sparse-simultaneous-localization- und mapping-systeme
CN112435193B (zh) 一种点云数据去噪的方法、装置、存储介质和电子设备
DE102020211472A1 (de) System und verfahren zur verbesserung eines nicht inertialen tracking-systems mit inertialen beschränkungen
CN110378182B (zh) 图像解析装置、图像解析方法及记录介质
DE112020001434T5 (de) Datenverarbeitungsvorrichtung, datenverarbeitungsverfahren und programm
DE102020131267A1 (de) Kalibrieren von kameras und berechnen von punktprojektionen unter verwendung eines eine axiale blickpunktverschiebung aufweisenden nicht zentralen kameramodells
DE102021124228A1 (de) Verfahren und vorrichtung zur detailgradzuordnungsschätzung auf mehrrahmenbasis und zur adaptiven mehrrahmen-entrauschung
DE102022111926A1 (de) Verfahren und Vorrichtung für eine tiefengestützte visuelle Trägheitsodometrie
DE102020100230A1 (de) Rekonstruktion von landmarkenpositionen in autonomen maschinenanwendungen
CN113763504B (zh) 地图更新方法、***、车载终端、服务器及存储介质
Samadi et al. A new fast and robust stereo matching algorithm for robotic systems
US20240087155A1 (en) Prior informed pose and scale estimation
CN112132960B (zh) 一种三维重建方法、装置和电子设备
DE112019007064B4 (de) Bewegungsbetrag-schätzeinrichtung, bewegungsbetrag-schätzverfahren und bewegungsbetrag-schätzprogramm

Legal Events

Date Code Title Description
R012 Request for examination validly filed