DE102016205193B4 - Marginalizing a Pose Graph - Google Patents

Marginalizing a Pose Graph Download PDF

Info

Publication number
DE102016205193B4
DE102016205193B4 DE102016205193.8A DE102016205193A DE102016205193B4 DE 102016205193 B4 DE102016205193 B4 DE 102016205193B4 DE 102016205193 A DE102016205193 A DE 102016205193A DE 102016205193 B4 DE102016205193 B4 DE 102016205193B4
Authority
DE
Germany
Prior art keywords
node
pose graph
position data
odometry
graph
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.)
Active
Application number
DE102016205193.8A
Other languages
German (de)
Other versions
DE102016205193A1 (en
Inventor
Christian Merfels
Moritz Schack
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.)
Volkswagen AG
Original Assignee
Volkswagen AG
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 Volkswagen AG filed Critical Volkswagen AG
Priority to DE102016205193.8A priority Critical patent/DE102016205193B4/en
Publication of DE102016205193A1 publication Critical patent/DE102016205193A1/en
Application granted granted Critical
Publication of DE102016205193B4 publication Critical patent/DE102016205193B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Navigation (AREA)

Abstract

Verfahren zum Marginalisieren eines Posen-Graphen (661), das umfasst:- für jeden von mehreren Zeitpunkten (t.1 - t.12): jeweils Ermitteln von Odometrie-Positionsdaten (615) einer beweglichen Maschine basierend auf einer Ausgabe mindestens eines Odometrie-Positioniersystems (111, 112),- für jeden der mehreren Zeitpunkte (t.1 - t.12): jeweils Ermitteln von Absolut-Positionsdaten (605, 606) der Maschine basierend auf einer Ausgabe mindestens eines Absolut-Positioniersystems (101, 102),- Erzeugen (152) des Posen-Graphen (661) mit Kanten (672), die den Odometrie-Positionsdaten (615) entsprechen, und mit Knoten (671, 971), die den Absolut-Positionsdaten (605, 606) entsprechen,- Optimieren (153, 1002) des Posen-Graphen (661) zum Erhalten einer geschätzten Position (190) der Maschine, dadurch gekennzeichnet, dass das Verfahren weiterhin umfasst:- nach dem Optimieren (153, 1002): Auswählen eines Knotens (971) des Posen-Graphen (661),- für den ausgewählten Knoten (971): Bestimmen eines Fixknotens (972) des Posen-Graphen (661),- Entfernen des ausgewählten Knotens (971) aus dem Posen-Graph (661) und Ersetzen des ausgewählten Knotens (971) durch den Fixknoten (972).Method for marginalizing a pose graph (661), comprising:- for each of a plurality of points in time (t.1 - t.12): determining odometry position data (615) of a movable machine based on an output of at least one odometry positioning system (111, 112),- for each of the plurality of points in time (t.1 - t.12): determining absolute position data (605, 606) of the machine based on an output of at least one absolute positioning system (101, 102),- generating (152) the pose graph (661) with edges (672) that correspond to the odometry position data (615) and with nodes (671, 971) that correspond to the absolute position data (605, 606),- optimizing (153, 1002) the pose graph (661) for obtaining an estimated position (190) of the machine, characterized in that the method further comprises:- after optimizing (153, 1002): selecting a node (971) of the pose graph (661),- for the selected node (971): determining a fixed node (972) of the pose graph (661),- removing the selected node (971) from the pose graph (661) and replacing the selected node (971) with the fixed node (972).

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die Erfindung betrifft ein Verfahren und ein Steuergerät. Insbesondere betreffen verschiedene Ausführungsformen Techniken, um Odometrie-Positionsdaten und Absolut-Positionsdaten einer Maschine beim Erhalten einer geschätzten Position der Maschine zu berücksichtigen. Dabei wird ein Posen-Graph verwendet. Insbesondere betreffen verschiedene Ausführungsformen Techniken, um einen ausgewählten Knoten aus dem Posen-Graphen zu entfernen.The invention relates to a method and a control device. In particular, various embodiments relate to techniques for taking odometry position data and absolute position data of a machine into account when obtaining an estimated position of the machine. A pose graph is used. In particular, various embodiments relate to techniques for removing a selected node from the pose graph.

HINTERGRUNDBACKGROUND

Es sind Techniken bekannt, um Karten von Gebieten zu erstellen. Z.B. ist aus DE 10 2013 208 521 A1 ein Verfahren zum kollektiven Erlernen und Erstellen eines digitalen Straßenmodells bekannt. Dabei werden Trajektoriendaten und Perzeptionsdaten für eine Mehrzahl von Trajektorien von einem oder mehreren Fahrzeugen zu erfassen. Ein Informationsgraph wird gebildet, wobei Trajektorienpunkte der Mehrzahl von Trajektorien Knoten des Informationsgraphen bilden und basierend auf Odometriemessungen und Positionsmessungen Kanten zwischen bzw. an den Knoten des Informationsgraphen gebildet werden. Der Informationsgraph wird optimiert. Eine solche Technik weist den Nachteil auf, dass die Modellbildung aufwendig ist und viel Zeit benötigt. Eine Echtzeitanwendung, z.B. um eine Fahrerassistenzfunktionalität zu steuern, ist typischerweise nicht möglich.Techniques are known to create maps of areas. For example, EN 10 2013 208 521 A1 a method for collectively learning and creating a digital road model is known. Trajectory data and perception data for a plurality of trajectories of one or more vehicles are recorded. An information graph is formed, with trajectory points of the plurality of trajectories forming nodes of the information graph and edges between or at the nodes of the information graph being formed based on odometry measurements and position measurements. The information graph is optimized. Such a technique has the disadvantage that modeling is complex and time-consuming. A real-time application, e.g. to control a driver assistance function, is typically not possible.

Andererseits sind auch Techniken bekannt, um im Zusammenhang mit einer Fahrerassistenzfunktionalität eine geschätzte Position eines Kraftfahrzeugs zu bestimmen (Positionsbestimmung). Insbesondere sind Techniken der Positionsbestimmung bekannt, welche Absolut-Positionsdaten und Odometrie-Positionsdaten beim Bestimmen der geschätzten Position des Kraftfahrzeugs berücksichtigen. Um die Fahrerassistenzfunktionalität zu gewährleisten, erfolgt dies in Echtzeit.On the other hand, techniques are also known for determining an estimated position of a motor vehicle in connection with a driver assistance functionality (position determination). In particular, position determination techniques are known which take absolute position data and odometry position data into account when determining the estimated position of the motor vehicle. In order to ensure the driver assistance functionality, this takes place in real time.

Dabei indizieren die Absolut-Positionsdaten die gemessene Position des Kraftfahrzeugs zu einem bestimmten Zeitpunkt in absoluten Werten, beispielsweise in einem UTM oder WGS84 Referenzkoordinatensystem. Optional können die Absolut-Positionsdaten auch mit einer Orientierung versehen sein, welche z.B. eine aktuelle Bewegungsrichtung des Kraftfahrzeugs indizieren. Eine Kombination aus Position und Orientierung wird häufig auch als Pose bezeichnet.The absolute position data indicates the measured position of the motor vehicle at a specific point in time in absolute values, for example in a UTM or WGS84 reference coordinate system. Optionally, the absolute position data can also be provided with an orientation, which indicates, for example, a current direction of movement of the motor vehicle. A combination of position and orientation is often also referred to as a pose.

Die Odometrie-Positionsdaten hingegen indizieren eine Eigenbewegung bzw. Relativbewegung des Kraftfahrzeugs, zum Beispiel in einem willkürlich festgelegten Referenzkoordinatensystem oder im sogenannten Fahrzeugkoordinatensystem (engl. body frame). Dabei wird die Eigenbewegung z.B. jeweils relativ in Bezug auf eine vorangegangene Position des Kraftfahrzeugs indiziert.The odometry position data, on the other hand, indicate the vehicle's own movement or relative movement, for example in an arbitrarily defined reference coordinate system or in the so-called vehicle coordinate system (body frame). The vehicle's own movement is indicated relative to a previous position of the vehicle, for example.

Um verschiedenste Positionsdaten beim Bestimmen der geschätzten Position des Kraftfahrzeugs zu berücksichtigen, sind Techniken der Positionsbestimmung bekannt, die ein oder mehrere Odometrie-Positionsdaten und ein oder mehrere Absolut-Positionsdaten miteinander kombinieren (Sensorfusion). Die verschiedenen Positionsdaten können von unterschiedlichen Positioniersystemen ausgegeben werden. Die Positioniersysteme können unterschiedliche Techniken zur Positionsbestimmung einsetzen, sodass die Positionsdaten der unterschiedlichen Positioniersysteme voneinander unabhängige Schätzungen der Position darstellen können.In order to take a wide variety of position data into account when determining the estimated position of the motor vehicle, positioning techniques are known that combine one or more odometry position data and one or more absolute position data (sensor fusion). The various position data can be output by different positioning systems. The positioning systems can use different techniques for position determination, so that the position data from the different positioning systems can represent independent estimates of the position.

Durch das Berücksichtigen mehrerer voneinander unabhängiger Positionsdaten, die als Ausgabe von verschiedenen Positioniersystemen erhalten werden, kann eine genauere und ausfallsicherere Schätzung für die Position des Kraftfahrzeugs bereitgestellt werden. Insbesondere für Anwendungen im Bereich des autonomen Fahrens ist es erforderlich, dass eine möglichst genaue Schätzung der Position des Kraftfahrzeugs mit einer hohen Ausfallsicherheit bereitgestellt werden kann.By taking into account several independent position data obtained as output from different positioning systems, a more accurate and more reliable estimate of the position of the motor vehicle can be provided. Especially for applications in the field of autonomous driving, it is necessary that the most accurate possible estimate of the position of the motor vehicle can be provided with a high level of reliability.

Aus DE 10 2014 211 178 A1 ist ein Verfahren zur Korrektur von Messdaten eines ersten Sensorsystems bekannt. Das erste Sensorsystem und/oder ein zweites Sensorsystem erfassen jeweils unterschiedliche Messdaten, die jeweils direkt und/oder indirekt Navigationsdaten beschreiben. Fehlerwerte werden korrigiert, wenn sie beobachtbar sind, und werden als konstant angenommen, wenn sie nicht beobachtbar sind. Die Fehlerwerte können mittels eines Error-State-Space Kalman-Filters bestimmt werden. Das Verwenden eines Kalman-Filters weist den Nachteil auf, dass lediglich aktuelle Messdaten berücksichtigt werden können. Insbesondere kann es nicht oder nur eingeschränkt möglich sein, weiter zurückliegende Messdaten zu berücksichtigen. Deshalb sind entsprechende Techniken oftmals vergleichsweise ungenau.Out of EN 10 2014 211 178 A1 A method for correcting measurement data from a first sensor system is known. The first sensor system and/or a second sensor system each record different measurement data, each of which directly and/or indirectly describes navigation data. Error values are corrected if they are observable and are assumed to be constant if they are not observable. The error values can be determined using an error-state-space Kalman filter. Using a Kalman filter has the disadvantage that only current measurement data can be taken into account. In particular, it may not be possible or only possible to a limited extent to take measurement data from further back into account. For this reason, corresponding techniques are often comparatively inaccurate.

Aus der deutschen Patentanmeldung DE 10 2016 211 805 A1 sind Techniken bekannt, um Sensorfusion basierend auf einen Posen-Graphen durchzuführen. Dabei wird der Posen-Graph wiederholt optimiert.From the German patent application EN 10 2016 211 805 A1 Techniques are known to perform sensor fusion based on a pose graph. The pose graph is repeatedly optimized.

Solche Techniken weisen den Nachteil auf, dass mit zunehmender Laufzeit der Posen-Graph immer größer wird und damit die Optimierung rechenintensiver wird.Such techniques have the disadvantage that with increasing runtime the pose graph is getting bigger and the optimization is becoming more computationally intensive.

Es sind Techniken zur Marginalisierung eines Posen-Graphen unter Verwendung eines Schur-Komplements bekannt, siehe z. B. Sibley, G. et al.: Sliding window filter with application to planetary landing. In: Journal of Field Robotics, Vol. 27, 2010, No. 5, S. 587-608. - ISSN 1556-4959 . Solche Techniken weisen den Nachteil auf, dass eine Anpassung des Schur-Komplements nicht oder nur eingeschränkt möglich ist.Techniques for marginalizing a Posen graph using a Schur complement are known, see e.g. Sibley, G. et al.: Sliding window filter with application to planetary landing. In: Journal of Field Robotics, Vol. 27, 2010, No. 5, pp. 587-608. - ISSN 1556-4959 Such techniques have the disadvantage that an adjustment of the Schur complement is not possible or only possible to a limited extent.

Aus Rehder, Joern; Global Pose Estimation with Limited GPS and Long Range Visual Odometry. In Robotics and Automation (ICRA), 2012 IEEE International Conference on Robotics and Automation, S. 627-633 , sind Techniken bekannt, um die globale Pose eines Fahrzeugs abzuschätzen. Dabei sind dort auch Techniken zum Reduzieren der Dimension eines Posen-Graphen bekannt. Die Posen weisen Randbedingungen in Bezug auf Messungen auf, die durch Kanten in den Graphen modelliert werden. Ein virtueller Nullpunktsknoten am Ursprung des Koordinatensystems wird in den Graphen eingeführt. Die Marginalisierung von Knoten erfolgt unter Berücksichtigung eines Schur-Komplements.Out of Rehder, Joern; Global Pose Estimation with Limited GPS and Long Range Visual Odometry. In Robotics and Automation (ICRA), 2012 IEEE International Conference on Robotics and Automation, pp. 627-633 , techniques are known to estimate the global pose of a vehicle. Techniques for reducing the dimension of a pose graph are also known there. The poses have boundary conditions with respect to measurements, which are modeled by edges in the graph. A virtual zero point node at the origin of the coordinate system is introduced into the graph. The marginalization of nodes is carried out taking into account a Schur complement.

Aus Grisetti, Giorgio; A Tutorial on Graph-Based SLAM. In IEEE Intelligent Transportation Systems Magazine, Vol. 2, No. 4, Winter 2010, S. 31-43 , sind Techniken zum simultanen Lokalisieren und Kartographieren (SLAM) bekannt, die mobile Roboter beim Navigieren in unbekannten Umgebungen betreffen. Aus US 8 442 765 B1 sind Techniken zum Marginalisieren von unbenötigten Zuständen einer gemeinsamen Verteilung eines konditional unabhängigen Filters bekannt.Out of Grisetti, Giorgio; A Tutorial on Graph-Based SLAM. In IEEE Intelligent Transportation Systems Magazine, Vol. 4, Winter 2010, pp. 31-43 , techniques for simultaneous localization and mapping (SLAM) are known, which affect mobile robots when navigating in unknown environments. US 8 442 765 B1 Techniques for marginalizing unnecessary states of a joint distribution of a conditionally independent filter are known.

Aus US 2014/0249752 A1 sind Techniken zum Lokalisieren eines Fahrzeugs entlang einer Route bekannt. Dabei werden orthographische Bilder der Route erfasst.Out of US 2014/0249752 A1 Techniques for locating a vehicle along a route are known. Orthographic images of the route are captured.

ZUSAMMENFASSUNGSUMMARY

Deshalb besteht ein Bedarf für verbesserte Techniken zur Marginalisierung eines Posen-Graphen. Insbesondere besteht ein Bedarf für flexible Techniken zur Marginalisierung eines Posen-Graphen.Therefore, there is a need for improved pose graph marginalization techniques. In particular, there is a need for flexible pose graph marginalization techniques.

Diese Aufgabe wird von den Merkmalen der unabhängigen Patentansprüche gelöst. Die abhängigen Patentansprüche definieren Ausführungsformen.This object is solved by the features of the independent patent claims. The dependent patent claims define embodiments.

Gemäß einem Aspekt betrifft die vorliegende Erfindung ein Verfahren zur Marginalisierung eines Posen-Graphen, welches für jeden von mehreren Zeitpunkten umfasst: jeweils Ermitteln von Odometrie-Positionsdaten einer Maschine basierend auf einer Ausgabe mindestens eines Odometrie-Positioniersystems. Das Verfahren umfasst weiterhin für jeden der mehreren Zeitpunkte: jeweils Ermitteln von Absolut-Positionsdaten der Maschine basierend auf einer Ausgabe mindestens eines Absolut-Positioniersystems. Das Verfahren umfasst weiterhin das Erzeugen eines Posen-Graphen. Kanten des Posen-Graphen entsprechen den Odometrie-Positionsdaten. Knoten des Posen-Graphen entsprechen den Absolut-Positionsdaten. Das Verfahren umfasst weiterhin das Optimieren des Posen-Graph zum Erhalten einer geschätzten Position der Maschine. Das Verfahren umfasst weiterhin das Auswählen eines Knotens des Posen-Graphen nach dem Optimieren. Das Verfahren umfasst weiterhin, für den ausgewählten Knoten: Bestimmen eines Fixknotens des Posen-Graphen. Das Verfahren umfasst weiterhin das Entfernen des ausgewählten Knotens aus dem Posen-Graph und das Ersetzen des ausgewählten Knotens durch den Fixknoten.According to one aspect, the present invention relates to a method for marginalizing a pose graph, which comprises for each of a plurality of points in time: determining odometry position data of a machine based on an output of at least one odometry positioning system. The method further comprises for each of the plurality of points in time: determining absolute position data of the machine based on an output of at least one absolute positioning system. The method further comprises generating a pose graph. Edges of the pose graph correspond to the odometry position data. Nodes of the pose graph correspond to the absolute position data. The method further comprises optimizing the pose graph to obtain an estimated position of the machine. The method further comprises selecting a node of the pose graph after optimizing. The method further comprises, for the selected node: determining a fixed node of the pose graph. The method further comprises removing the selected node from the pose graph and replacing the selected node with the fixed node.

Zum Beispiel kann der Posen-Graph vorzugsweise einen Knoten für jeden der mehreren Zeitpunkte aufweisen. Die mehreren Zeitpunkte können also ein Zeitfenster von der IST-Zeit bis in die Vergangenheit abdecken (engl. sliding window). Entsprechend können beim Erzeugen des Posen-Graphen Ausgaben des mindestens einen Odometrie-Positioniersystems und des mindestens einen Absolut-Positioniersystems berücksichtigt werden, die einen aktuellen Zustand der Maschine, sowie Zustände in der näheren Vergangenheit indizieren. Z.B. kann beim Erzeugen des Posen-Graph vorzugsweise eine fest vorgegebene Anzahl von Zeitpunkten berücksichtigt werden. Die Verwendung des Posen-Graphen kann eine Alternative zur Verwendung der vorbekannten Kalman-Filter zur Sensorfusion darstellen.For example, the pose graph can preferably have a node for each of the multiple points in time. The multiple points in time can therefore cover a time window from the current time into the past (sliding window). Accordingly, when generating the pose graph, outputs of the at least one odometry positioning system and the at least one absolute positioning system can be taken into account, which indicate a current state of the machine as well as states in the recent past. For example, when generating the pose graph, a fixed number of points in time can preferably be taken into account. The use of the pose graph can represent an alternative to using the previously known Kalman filters for sensor fusion.

Grundlagen zum Posen-Graph und eine entsprechende Optimierung sind beispielsweise aus Kümmerle, R. et. al.: G2O: A General Framework for Graph Optimization. In: 2011 IEEE International Conference on Robotics and Automation (ICRA), S. 3607 - 3613. - http://dx.doi.org/10.1109/ICRA.2011.5979949 bekannt. Dort ist auch der Aufbau einer entsprechenden Systemmatrix beschrieben. Der Posen-Graph umfasst Knoten, welche zu optimierenden Zustandsvariablen (hier: Absolut-Positionen der Maschine zu einem bestimmten Zeitpunkt) entsprechen, und Kanten, welche einer paarweise Verknüpfung der Zustände der durch die jeweilige Kante verbundenen Knoten entsprechen. Es ist zum Beispiel vorteilhafter möglich, dass die Knoten des Posen-Graphen mit einer Richtung (engl. heading) assoziiert sind; insoweit können die Knoten Posen darstellen. Der Posen-Graph gemäß den verschiedenen hierin offenbarten Szenarien umfasst die Ausgaben des mindestens einen Odometrie-Positioniersystems und des mindestens einen Absolut-Positioniersystems.Basics of the pose graph and a corresponding optimization are for example from Kümmerle, R. et. al.: G2O: A General Framework for Graph Optimization. In: 2011 IEEE International Conference on Robotics and Automation (ICRA), pp. 3607 - 3613. - http://dx.doi.org/10.1109/ICRA.2011.5979949 The structure of a corresponding system matrix is also described there. The pose graph comprises nodes that correspond to state variables to be optimized (here: absolute positions of the machine at a certain point in time), and edges that correspond to a pairwise connection of the states of the nodes connected by the respective edge. For example, it is advantageous for the nodes of the pose graph to be associated with a heading; in this respect, the nodes can represent poses. The pose graph according to the various scenarios disclosed herein comprises the Outputs of the at least one odometry positioning system and the at least one absolute positioning system.

Z.B. können in vorteilhaften Ausführungsformen die Schätzungen für die Position der Maschine, wie sie von dem mindestens einen Absolut-Positioniersystem bereitgestellt werden, im Zusammenhang mit Knoten des Posen-Graph berücksichtigt werden. Z.B. können die verschiedenen Knoten des Posen-Graphen über Randbedingungen mit den verschiedenen Absolut-Positionsdaten des mindestens einen Absolut-Positioniersystems verknüpft sein - manchmal werden auch solche Verknüpfungen in Form von Randbedingungen als Kanten des Posen-Graphen bezeichnet; diese Terminologie wird hierin aber zur Vermeidung von Doppeldeutigen nicht übernommen. Dabei können z.B. vorteilhafterweise die Absolut-Positionsdaten formal als Fixknoten berücksichtigt werden, die durch die Optimierung nicht beeinflusst werden, und die zu optimierenden Knoten des Posen-Graphen können als Optimierungsknoten bezeichnet werden. Ein Optimierungsknoten kann mit mehreren Fixknoten, deren Position nicht durch die Optimierung verändert wird, über Randbedingungen verknüpft sein.For example, in advantageous embodiments, the estimates for the position of the machine, as provided by the at least one absolute positioning system, can be taken into account in connection with nodes of the pose graph. For example, the various nodes of the pose graph can be linked to the various absolute position data of the at least one absolute positioning system via boundary conditions - sometimes such links in the form of boundary conditions are also referred to as edges of the pose graph; however, this terminology is not adopted here to avoid ambiguity. For example, the absolute position data can advantageously be formally taken into account as fixed nodes that are not influenced by the optimization, and the nodes of the pose graph to be optimized can be referred to as optimization nodes. An optimization node can be linked to several fixed nodes, the position of which is not changed by the optimization, via boundary conditions.

Z.B. können die Eigenbewegungsschätzungen, wie sie als die Ausgabe des mindestens einen Odometrie-Positioniersystems in Form der Odometrie-Positionsdaten bereitgestellt werden, vorteilhafterweise im Zusammenhang mit den Kanten des Posen-Graphen berücksichtigt werden. Wiederum können vorteilhafterweise Optimierungskanten und Fixkanten berücksichtigt werden, die in Form von Randbedingungen verknüpft sind. Die Optimierungskanten können vorzugsweise durch zwei benachbarte Optimierungsknoten vorgegeben sein. Zum Beispiel sind Szenarien denkbar, bei denen mehr als ein Odometrie-Positioniersystem Ausgaben bereitstellt; in einem solchen Szenario ist es möglich, dass mehr als eine Kante zwischen zwei benachbarten Knoten des Posen-Graphen vorhanden ist.For example, the egomotion estimates, as provided as the output of the at least one odometry positioning system in the form of the odometry position data, can advantageously be taken into account in connection with the edges of the pose graph. Again, optimization edges and fixed edges linked in the form of constraints can advantageously be taken into account. The optimization edges can preferably be specified by two adjacent optimization nodes. For example, scenarios are conceivable in which more than one odometry positioning system provides outputs; in such a scenario, it is possible that more than one edge is present between two adjacent nodes of the pose graph.

Da die unterschiedlichen Odometrie-Positionsdaten und Absolut-Positionsdaten Abweichungen voneinander aufweisen können, kann es mittels des Optimierens des Posen-Graph möglich sein, die geschätzte Position als besten Kompromiss zwischen den verschiedenen Absolut-Positionsdaten und Odometrie-Positionsdaten zu erhalten. Im Rahmen des Optimierens des Posen-Graphen können die Knoten und Kanten verschoben werden, d.h. gegenüber den aus den Ausgaben der Positioniersystem erhaltenen Werten verändert werden. Die zu optimierenden Knoten werden häufig als Optimierungsknoten bezeichnet. Die Optimierungsknoten sind durch Randbedingungen mit den aus den Ausgaben der Positioniersysteme erhaltenen Knoten und Kanten verknüpft.Since the different odometry position data and absolute position data can deviate from each other, by optimizing the pose graph it may be possible to obtain the estimated position as the best compromise between the different absolute position data and odometry position data. When optimizing the pose graph, the nodes and edges can be moved, i.e. changed compared to the values obtained from the outputs of the positioning systems. The nodes to be optimized are often referred to as optimization nodes. The optimization nodes are linked by boundary conditions to the nodes and edges obtained from the outputs of the positioning systems.

Es ist möglich, dass die Absolut-Positionsdaten und/oder die Odometrie-Positionsdaten mit einer gewissen Unsicherheit behaftet sind. Eine solche Unsicherheit kann auch als Varianz bezeichnet werden. Zum Beispiel kann die Varianz der Odometrie-Positionsdaten und/oder der Absolut-Positionsdaten beim Optimieren des Posen-Graph berücksichtigt werden.It is possible that the absolute position data and/or the odometry position data may have some uncertainty. Such uncertainty may also be referred to as variance. For example, the variance of the odometry position data and/or the absolute position data may be taken into account when optimizing the pose graph.

Im Zusammenhang mit dem Posen-Graph werden oftmals Fehlerterme definiert, welche umso größer (kleiner) sind, umso weiter (weniger weit) sich die durch das Optimieren geschätzte Positionen von den Ausgaben der Positioniersysteme entfernen und je kleiner (größer) die Varianz der entsprechenden Ausgaben der Positioniersysteme ist. Das Optimieren kann vorzugsweise eine Konfiguration des Posen-Graphen bereitstellen, welche einem extremalen Wert der Fehlerterme entspricht. Vorzugsweise wird ein globaler extremaler Wert der Fehlerterme angestrebt. Das Optimieren kann in vorteilhafter Weise numerisch erfolgen. Das Optimieren kann in vorteilhafter Weise iterativ erfolgen, d.h. mehrere Optimierungsiterationen umfassen. Zum Beispiel kann das Optimieren vorteilhafterweise eine Technik nichtlinearer minimaler Quadrate (engl. nonlinear least-squares) umfassen. Zum Beispiel kann das Optimieren vorteilhafterweise mittels einer Gauß-Newton-Technik erfolgen und / oder mittels einer Levenberg-Marquardt-Technik erfolgen.In connection with the pose graph, error terms are often defined which are larger (smaller), the further (less far) the positions estimated by the optimization are from the outputs of the positioning systems and the smaller (larger) the variance of the corresponding outputs of the positioning systems. The optimization can preferably provide a configuration of the pose graph which corresponds to an extremal value of the error terms. A global extremal value of the error terms is preferably aimed for. The optimization can advantageously be carried out numerically. The optimization can advantageously be carried out iteratively, i.e. comprise several optimization iterations. For example, the optimization can advantageously comprise a nonlinear least squares technique. For example, the optimization can advantageously be carried out using a Gauss-Newton technique and/or a Levenberg-Marquardt technique.

Solche Techniken ermöglichen eine Echtzeitanwendung. Z.B. kann die Maschine ein Kraftfahrzeug sein. Vorzugsweise umfasst weiterhin das Steuern einer Fahrerassistenzfunktionalität basierend auf der geschätzten Position des Kraftfahrzeugs. Z.B. kann die Fahrerassistenzfunktionalität vorzugsweise autonomes Fahren des Kraftfahrzeugs betreffen. Es wäre auch möglich, dass die Fahrerassistenzfunktionalität vorteilhafterweise teilautomatisches oder hochautomatisches Fahren betrifft. Es wäre auch möglich, dass die Fahrerassistenzfunktionalität vorteilhafterweise einen Stauassistent betrifft. Es ist zum Beispiel vorzugsweise möglich, dass die Fahrerassistenzfunktionalität die Position des Kraftfahrzeugs beeinflusst. Insoweit kann basierend auf der geschätzten Position die Position des Kraftfahrzeugs beeinflusst werden. Z.B. kann die Fahrerassistenzfunktionalität einen elektrischen Lenkstrang des Kraftfahrzeugs steuern. Z.B. kann die Fahrerassistenzfunktionalität vorzugsweise die Bremsen und den Motor des Kraftfahrzeugs steuern. Z.B. kann die Fahrerassistenzfunktionalität umfassen: einen Spurhalteassistenten; einen Abstandsassistenten; einen Einparkassistenten; etc.Such techniques enable real-time application. For example, the machine can be a motor vehicle. Preferably, it also includes controlling a driver assistance functionality based on the estimated position of the motor vehicle. For example, the driver assistance functionality can preferably relate to autonomous driving of the motor vehicle. It would also be possible for the driver assistance functionality to advantageously relate to partially automated or highly automated driving. It would also be possible for the driver assistance functionality to advantageously relate to a traffic jam assistant. For example, it is preferably possible for the driver assistance functionality to influence the position of the motor vehicle. In this respect, the position of the motor vehicle can be influenced based on the estimated position. For example, the driver assistance functionality can control an electric steering system of the motor vehicle. For example, the driver assistance functionality can preferably control the brakes and the engine of the motor vehicle. For example, the driver assistance functionality can include: a lane keeping assistant; a distance assistant; a parking assistant; etc.

Durch das Verwenden des Posen-Graphen ist es möglich, vorzugsweise eine unterschiedliche Anzahl von Odometrie-Positionsdaten und/oder eine unterschiedliche Anzahl von Absolut-Positionsdaten zu berücksichtigen. Insbesondere ist es möglich, dass die Anzahl der Odometrie-Positionsdaten und/oder die Anzahl der Absolut-Positionsdaten, die beim Erzeugen des Posen-Graph berücksichtigt wird, als Funktion der Zeit variiert. Durch die generische Verwendung der Odometrie-Positionsdaten und der Absolut-Positionsdaten können die zu fusionierenden Ausgaben verschiedener Positioniersysteme modular ausgewechselt werden. Derart kann es vorteilhafterweise möglich sein, immer sämtliche verfügbaren Ausgaben von Positioniersysteme zu berücksichtigen. Derart kann es vorzugsweise möglich sein, auch in Übergangssituationen, bei denen Ausgaben von bestimmten Positioniersysteme gerade nicht mehr oder nur noch eingeschränkt verfügbar sind, jedoch Ausgaben von weiteren Positioniersystemen verfügbar werden, die geschätzte Position der Maschine mit einer besonders hohen Zuverlässigkeit zu erhalten.By using the pose graph it is possible to preferably use a different number of odometry position data and/or a different number of absolute position data to be taken into account. In particular, it is possible for the number of odometry position data and/or the number of absolute position data taken into account when generating the pose graph to vary as a function of time. Through the generic use of the odometry position data and the absolute position data, the outputs of different positioning systems to be merged can be exchanged modularly. In this way, it may advantageously be possible to always take into account all available outputs of positioning systems. In this way, it may preferably be possible to obtain the estimated position of the machine with a particularly high level of reliability even in transitional situations in which outputs from certain positioning systems are no longer available or only available to a limited extent, but outputs from other positioning systems become available.

Darüber hinaus erlaubt die Verwendung des Posen-Graphen im Vergleich zu Referenzimplementierungen basierend auf Kalman-Filtern eine genauere Schätzung der Position der Maschine nicht nur für die IST-Zeit, sondern auch für die Vergangenheit.Furthermore, the use of the pose graph allows a more accurate estimation of the position of the machine not only for the current time but also for the past, compared to reference implementations based on Kalman filters.

In verschiedenen vorteilhaften Szenarien kann das Optimieren des Posen-Graphen weiterhin eine Zuverlässigkeit der geschätzten Position der Maschine bereitstellen. Es ist möglich, dass die Fahrerassistenzfunktionalität der Maschine weiterhin basierend auf der Zuverlässigkeit der geschätzten Position gesteuert wird.In various advantageous scenarios, optimizing the pose graph may still provide reliability of the estimated position of the machine. It is possible that the driver assistance functionality of the machine may still be controlled based on the reliability of the estimated position.

Die Zuverlässigkeit kann z.B. vorzugsweise die Summe der Fehlerterme für die verschiedenen Knoten des optimierten Posen-Graphen berücksichtigen. Aktuellere (ältere) Knoten können einen größeren (geringeren) Einfluss auf die Zuverlässigkeit der geschätzten Position aufweisen. Zum Beispiel kann in einem Szenario, bei dem die durch das Optimieren erhaltene Zuverlässigkeit der geschätzten Position vergleichsweise groß wird, ein manueller Fahrereingriff von der Fahrerassistenzfunktionalität gefordert werden.For example, the reliability may preferentially take into account the sum of the error terms for the different nodes of the optimized pose graph. More recent (older) nodes may have a larger (smaller) influence on the reliability of the estimated position. For example, in a scenario where the reliability of the estimated position obtained by optimization becomes comparatively large, manual driver intervention may be required by the driver assistance functionality.

Durch das Berücksichtigen der Zuverlässigkeit der geschätzten Position kann die Fahrerassistenzfunktionalität mit einer großen Sicherheit gesteuert werden; insbesondere kann vermieden werden, dass die Fahrerassistenzfunktionalität auf Grundlage von nicht oder nur eingeschränkt belastbaren Schätzungen für die Position des Kraftfahrzeugs gesteuert wird.By taking into account the reliability of the estimated position, the driver assistance functionality can be controlled with a high degree of certainty; in particular, it can be avoided that the driver assistance functionality is controlled on the basis of unreliable or only partially reliable estimates of the position of the motor vehicle.

In verschiedenen vorteilhaften Szenarien kann das Optimieren des Posen-Graphen weiterhin eine geschätzte Odometrie der Maschine bereitstellen. Es ist möglich, dass die Fahrerassistenzfunktionalität des Kraftfahrzeugs weiterhin basierend auf der geschätzten Odometrie gesteuert wird.In various advantageous scenarios, optimizing the pose graph may still provide an estimated odometry of the machine. It is possible that the driver assistance functionality of the motor vehicle may still be controlled based on the estimated odometry.

Die Odometrie kann z.B. vorteilhafterweise eine aktuelle Orientierung / Fahrrichtung der Maschine indizieren. Zusammen mit der geschätzten Position des Kraftfahrzeugs kann so eine geschätzte Position und Orientierung (Pose) des Kraftfahrzeugs bereitgestellt werden.The odometry can, for example, advantageously indicate a current orientation/direction of travel of the machine. Together with the estimated position of the motor vehicle, an estimated position and orientation (pose) of the motor vehicle can thus be provided.

Zum Beispiel kann vorteilhafterweise durch das Optimieren des Posen-Graphen die geschätzte Position der Maschine zu einem in Bezug auf die mehreren Zeitpunkte zukünftigen Zeitpunkt erhalten werden.For example, by optimizing the pose graph, the estimated position of the machine at a future time with respect to the plurality of time points can advantageously be obtained.

In anderen Worten kann es in verschiedenen vorteilhaften Ausführungsformen möglich sein, dass die Position für einen zukünftigen Zeitpunkt abgeschätzt wird. Es kann also eine Vorhersage für die Position der Maschine getroffen werden.In other words, in various advantageous embodiments it may be possible for the position to be estimated for a future point in time. A prediction can therefore be made for the position of the machine.

Das Erzeugen und Optimieren des Posen-Graph benötigt eine gewisse Zeitdauer (Optimierungszeitdauer). Die Optimierungszeitdauer kann durch das Bereitstellen der geschätzten Position für den zukünftigen Zeitpunkt kompensiert werden.Generating and optimizing the pose graph requires a certain amount of time (optimization time). The optimization time can be compensated by providing the estimated position for the future time.

Dadurch kann es möglich sein, die Fahrerassistenzfunktionalität besonders zielgerichtet zu steuern. Insbesondere kann es möglich sein, mit einer besonders geringen Latenzzeit eine Information über die aktuelle Position der Maschine bereitzustellen. Echtzeitanwendungen sind möglich.This can make it possible to control the driver assistance functionality in a particularly targeted manner. In particular, it can be possible to provide information about the current position of the machine with a particularly low latency. Real-time applications are possible.

Die Optimierungszeitdauer kann durch Begrenzen der Anzahl von Knoten des Posen-Graphen reduziert werden. Durch das Entfernen des ausgewählten Knoten aus dem Posen-Graph kann die Anzahl der Knoten des Posen-Graphen reduziert werden. Indem jedoch gleichzeitig der Fixknoten für den Posen-Graph bestimmt wird, kann ein nachfolgendes Optimieren des Posen-Graphen trotzdem eine hohe Genauigkeit aufweisen.The optimization time can be reduced by limiting the number of nodes of the pose graph. By removing the selected node from the pose graph, the number of nodes of the pose graph can be reduced. However, by simultaneously determining the fix node for the pose graph, subsequent optimization of the pose graph can still have high accuracy.

Zum Beispiel könnte das Verfahren also weiterhin, nach dem Entfernen des ausgewählten Knotens umfassen: erneutes Optimieren des Posen-Graphen zum Erhalten einer weiteren geschätzten Position der Maschine. Die Position des Fixknotens kann gegenüber dem erneuten Optimieren unveränderlich sein. Der Fixknoten kann über eine Kante mit einem benachbarten Knoten des Posen-Graphen verbunden sein. Indem die Position des Fixknotens gegenüber dem erneuten Optimieren unveränderlich bzw. fix ist, kann die Komplexität des erneuten Optimierens vergleichsweise begrenzt sein. Dadurch kann die Optimierungszeitdauer reduziert werden.For example, after removing the selected node, the method could further comprise: re-optimizing the pose graph to obtain another estimated position of the machine. The position of the fixed node can be invariant with respect to the re-optimization. The fixed node can be connected to an adjacent node of the pose graph via an edge. By making the position of the fixed node invariant or fixed with respect to the re-optimization, the complexity of the re-optimization can be comparatively limited. This can reduce the optimization time.

Solchen Techniken liegt die Erkenntnis zugrunde, dass es aufgrund von Restriktionen in der Komplexität der Optimierung des Posen-Graphen oftmals erforderlich sein kann, die Anzahl von Knoten und Kanten des Posen-Graphen zu reduzieren. Dies kann durch Entfernen bzw. Löschen einzelner Knoten und Kanten des Posen-Graphen erfolgen. Zum Beispiel können die ältesten Knoten und Kanten des Posen-Graphen gelöscht werden, d.h. es kann derjenige Knoten des Posen-Graphen ausgewählt werden, der dem ältesten Zeitpunkt entspricht. Ein solches Löschen von alten Knoten und Kanten bewirkt herkömmlicherweise, dass alte Positionsdaten keinen Einfluss mehr auf die aktuelle Schätzung der Position aufweisen. Dies führt dazu, dass die Schätzungen eine begrenzte Genauigkeit aufweisen. Zum Beispiel können die Schätzungen für die Position eine vergleichsweise hohe Ungenauigkeit aufweisen.Such techniques are based on the realization that, due to restrictions in the complexity of optimizing the pose graph, it may often be necessary to reduce the number of nodes and edges of the pose graph. This can be done by removing or deleting individual nodes and edges of the pose graph. For example, the oldest nodes and edges of the pose graph can be deleted, i.e. the node of the pose graph that corresponds to the oldest point in time can be selected. Deleting old nodes and edges in this way usually means that old position data no longer has any influence on the current estimate of the position. This means that the estimates have limited accuracy. For example, the estimates for the position can have a comparatively high level of inaccuracy.

Deshalb sind in vorbekannten Techniken Ansätze zur sogenannten Marginalisierung bekannt. Vorbekannte Ansätze zur Marginalisierung umfassen das Bilden des Schur-Komplements auf die Systemmatrix. Solche Techniken haben keine modellhafte Entsprechung im Posen-Graph. Solche Techniken resultieren häufig in einer dichter besetzten Systemmatrix; dadurch kann wiederum der Rechenaufwand zum Durchführen der Optimierung erhöht werden, wodurch wiederum die Optimierungszeitdauer vergleichsweise lang sein kann.Therefore, approaches to so-called marginalization are known in previously known techniques. Previously known approaches to marginalization include forming the Schur complement on the system matrix. Such techniques have no model equivalent in the Posen graph. Such techniques often result in a more densely populated system matrix; this in turn can increase the computational effort required to carry out the optimization, which in turn can make the optimization time comparatively long.

Die hierin beschriebenen Techniken ermöglichen es, durch Vorsehen des Fixknotens anstelle des ausgewählten Knotens, beispielsweise desjenigen Knotens, der dem ältesten Zeitpunkt entspricht, einerseits eine dichtere Besetzung der Systemmatrix - und damit eine verlängerte Optimierungszeitdauer - zu vermeiden und gleichzeitig die Genauigkeit bei der Abschätzung der Position durch Optimieren des Posen-Graphen nicht oder nicht signifikant herabzusetzen. Die hierin beschriebenen Techniken ermöglichen daher eine besonders genaue Marginalisierung des Posen-Graphen im Vergleich zu vorbekannten Techniken. Mittels der hier beschriebenen Techniken kann es also möglich sein, dass auch nach mehreren Marginalisierungen des Posen-Graphen das Optimierungsproblem handhabbar bleibt und nicht als Funktion der Zeit degeneriert.The techniques described here make it possible to avoid a denser population of the system matrix - and thus a longer optimization time - by providing the fixed node instead of the selected node, for example the node that corresponds to the oldest point in time, and at the same time not or not significantly reducing the accuracy of the position estimation by optimizing the pose graph. The techniques described here therefore enable a particularly precise marginalization of the pose graph compared to previously known techniques. Using the techniques described here, it may therefore be possible for the optimization problem to remain manageable even after several marginalizations of the pose graph and not to degenerate as a function of time.

Es können unterschiedliche Techniken zum Bestimmen des Fixknotens eingesetzt werden. Zum Beispiel kann der Fixknoten basierend auf Elementen bestimmt werden, die aus folgender Gruppe ausgewählt sind: die Position des ausgewählten Knotens; mindestens eine Kante, die mit dem ausgewählten Knoten verbunden ist; Absolut-Positionsdaten, die dem ausgewählten Knoten entsprechen; und ein weiterer Fixknoten, der über eine Kante mit dem ausgewählten Knoten verbunden ist. Zum Beispiel können die Absolut-Positionsdaten über einen Fixknoten repräsentiert werden. Solche Fixknoten, die über eine Kante als Randbedingung mit dem ausgewählten Knoten verbunden sind, können beim Bestimmen des Fixknotens berücksichtigt werden; andere Absolut-Positionsdaten können unberücksichtigt bleiben. Zum Beispiel kann der weitere Fixknoten im Rahmen einer vorangegangenen Marginalisierung bestimmt worden sein. Zum Beispiel können alle weiteren vorhandenen entsprechenden weiteren Fixknoten berücksichtigt werden. Derart kann es zum Beispiel möglich sein, dass der Fixknoten Informationen in Bezug auf den ausgewählten und entfernten Knoten in sich bündelt. Vergangene Information wird dann durch das Entfernen des ausgewählten Knotens nicht einfach verworfen, sondern auf den Fixknoten übertragen. Deshalb könnte der Fixknoten auch als Prior-Fixknoten bezeichnet werden.Different techniques can be used to determine the fixed node. For example, the fixed node can be determined based on elements selected from the following group: the position of the selected node; at least one edge connected to the selected node; absolute position data corresponding to the selected node; and another fixed node connected to the selected node via an edge. For example, the absolute position data can be represented by a fixed node. Such fixed nodes that are connected to the selected node via an edge as a boundary condition can be taken into account when determining the fixed node; other absolute position data can be disregarded. For example, the additional fixed node can have been determined as part of a previous marginalization. For example, all other existing corresponding additional fixed nodes can be taken into account. In this way, it can be possible, for example, for the fixed node to bundle information relating to the selected and removed node. Past information is then not simply discarded by removing the selected node, but transferred to the fixed node. Therefore, the fixed node could also be called a prior fixed node.

Da ein solcher Fixknoten im Graphen direkt dargestellt werden kann, ist eine semantische Interpretation einfach möglich - im Gegensatz zur herkömmlichen Marginalisierung auf Grundlage des Schur-Komplements. Eine solche semantische Interpretation könnte zum Beispiel lauten: „die gebündelten Positionsinformationen, die bisher aus dem Posen-Graphen entfernt wurden, führen zu der Schätzung, dass die Maschine sich an der Position des Fixknoten befunden hat“. Vorteilhafterweise wäre es also möglich, dass der Fixknoten das Schur-Komplement des ausgewählten Knotens darstellt. Damit kann erreicht werden, dass der Fixknoten eine Reduktion der Genauigkeit der Optimierung durch Entfernen des ausgewählten Knotens vermeidet. In anderen Ausführungsformen sind aber auch andere Techniken zum Bestimmen des Fixknotens möglich.Since such a fixed node can be represented directly in the graph, a semantic interpretation is easily possible - in contrast to the conventional marginalization based on the Schur complement. Such a semantic interpretation could, for example, be: "the bundled position information that has so far been removed from the pose graph leads to the estimate that the machine was at the position of the fixed node." It would therefore be advantageous for the fixed node to represent the Schur complement of the selected node. This means that the fixed node can avoid a reduction in the accuracy of the optimization by removing the selected node. In other embodiments, however, other techniques for determining the fixed node are also possible.

Der Posen-Graph, der den Fixknoten aufweist, nicht jedoch den ausgewählten Knoten, kann weiterhin das vollständige bzw. ursprüngliche Optimierungsproblem repräsentieren. Jedoch ist es entbehrlich, die Matrix-Darstellung des Posen-Graphen zum vollständigen Verständnis zu berücksichtigen. Dies verbessert das Potenzial zum Problemverständnis des Entwicklers/Nutzers, Analysemöglichkeiten und Manipulationsmöglichkeiten zur Lösung des Problems.The pose graph that has the fixed node but not the selected node can still represent the complete or original optimization problem. However, it is not necessary to consider the matrix representation of the pose graph for complete understanding. This improves the potential for the developer/user to understand the problem, analyze and manipulate the problem.

Als weiterer Effekt ermöglicht es der Fixknoten, die Unsicherheit der alten Informationen anzupassen und die Gewichtung zu beeinflussen, falls dies erforderlich ist. Zum Beispiel könnte das Verfahren weiterhin umfassen, vor dem Durchführen einer erneuten Optimierung: Anpassen einer Verlustfunktion der Kante des Posen-Graphen, die zwischen dem Fixknoten und dem benachbarten Knoten verläuft, und/oder Anpassen einer Unsicherheit des Fixknotens. Besonders unplausible Information, die in dem Fixknoten abgebildet ist, kann dann mit einer größeren Unsicherheit berücksichtigt werden, was eine Toleranz bei der Optimierung erhöhen kann. Es ist auch möglich eine robuste Kosten- oder Verlustfunktion auf den Fehlerterm der Randbedingung, die durch den Fixknoten repräsentiert wird, anzuwenden.As a further effect, the fixed node allows to adjust the uncertainty of the old information and to influence the weighting if necessary. For example, the method could further comprise, before performing a new optimization: adjusting a loss function of the edge of the pose graph that runs between the fixed node and the neighboring node, and/or adjusting an uncertainty of the fixed node. Particularly implausible information contained in the fixed node can then be taken into account with a larger uncertainty, which can increase a tolerance in the optimization. It is also possible to apply a robust cost or loss function to the error term of the constraint represented by the fixed node.

Zum Beispiel wäre es möglich, dass das Entfernen des ausgewählten Knotens selektiv in Abhängigkeit einer Anzahl von Knoten des Posen-Graphen durchgeführt wird. Überschreitet zum Beispiel die Anzahl der Knoten des Posen-Graphen einen vorgegebenen Schwellenwert, so kann jeweils der älteste Knoten aus dem Posen-Graphen ausgewählt und entfernt werden, wobei gleichzeitig der entsprechende Fixknoten bestimmt wird. Dadurch kann einerseits erreicht werden, dass die Optimierungszeitdauer durch eine besonders große Anzahl von Knoten nicht unverhältnismäßig lange wird; gleichzeitig kann jedoch eine unnötig häufige Marginalisierung des Posen-Graphen vermieden werden.For example, it would be possible for the removal of the selected node to be carried out selectively depending on the number of nodes in the pose graph. If, for example, the number of nodes in the pose graph exceeds a predetermined threshold, the oldest node in the pose graph can be selected and removed, while the corresponding fixed node is determined at the same time. On the one hand, this can ensure that the optimization time does not become disproportionately long due to a particularly large number of nodes; at the same time, however, unnecessarily frequent marginalization of the pose graph can be avoided.

Gemäß verschiedener vorteilhafter Beispiele ist es möglich, dass die mehreren Zeitpunkte basierend auf einer vorgegebenen Taktrate bestimmt werden. Dann ist es vorzugsweise möglich, dass jeweils mit zugehörigen Abtastraten Roh-Odometrie-Positionsdaten als die Ausgabe des mindestens einen Odometrie-Positioniersystems empfangen werden. Entsprechend ist es vorzugsweise möglich, dass jeweils mit zugehörigen Abtastraten Roh-Absolut-Positionsdaten als die Ausgabe des mindestens einen Absolut-Positioniersystems empfangen werden. Dabei kann die vorgegebene Taktrate verschieden von den Abtastraten sein. Die Abtastraten können als Funktion der Zeit variieren.According to various advantageous examples, it is possible for the plurality of points in time to be determined based on a predetermined clock rate. It is then preferably possible for raw odometry position data to be received as the output of the at least one odometry positioning system at respective sampling rates. Accordingly, it is preferably possible for raw absolute position data to be received as the output of the at least one absolute positioning system at respective sampling rates. The predetermined clock rate can be different from the sampling rates. The sampling rates can vary as a function of time.

Zum Beispiel wäre es möglich, dass das Verfahren weiterhin umfasst: Interpolieren der Roh-Absolut-Positionsdaten basierend auf der vorgegebenen Taktrate und basierend auf der jeweiligen Abtastrate zum Ermitteln der Absolut-Positionsdaten für jeden der mehreren Zeitpunkte. Zum Beispiel wäre es vorzugsweise möglich, dass das Verfahren weiterhin umfasst: Interpolieren der Roh-Odometrie-Positionsdaten basierend auf der vorgegebenen Taktrate und basierend auf der Abtastrate zum Ermitteln der Odometrie-Positionsdaten für die verschiedenen Zeitpunkte. Das Interpolieren kann also vorzugsweise im Orts-Zeitraum erfolgen. Z.B. kann das Interpolieren in einem Referenzkoordinatensystem des Posen-Graphen erfolgen.For example, it would be possible for the method to further comprise: interpolating the raw absolute position data based on the predetermined clock rate and based on the respective sampling rate to determine the absolute position data for each of the multiple points in time. For example, it would preferably be possible for the method to further comprise: interpolating the raw odometry position data based on the predetermined clock rate and based on the sampling rate to determine the odometry position data for the different points in time. The interpolation can therefore preferably take place in the spatial time period. For example, the interpolation can take place in a reference coordinate system of the pose graph.

In verschiedenen vorteilhaften Varianten ist es möglich, dass eine Koordinatentransformation der Roh-Absolut-Positionsdaten und/oder der Roh-Odometrie-Positionsdaten durchgeführt wird, um jeweils die Absolut-Positionsdaten und/oder die Odometrie-Positionsdaten zu erhalten. Zum Beispiel könnte eine Koordinatentransformation zwischen einem UTM-Koordinatensystem und einem WGS84-Koordinatensystem durchgeführt werden. Es wäre vorteilhafterweise auch möglich, dass die Koordinatentransformation eine Koordinatenrotation umfasst. Zum Beispiel könnte eine Rotation zwischen einem proprietären Referenzsystem, beispielsweise Geschwindigkeit und Gierrate des Kraftfahrzeugs als Maschine, und dem Referenzsystem des Posen-Graphen stattfinden. Zum Beispiel kann vorzugsweise ein Modell des Kraftfahrzeugs berücksichtigt werden, um Fahrzeug-spezifische Eigenschaften bei der Koordinatentransformation zu berücksichtigen.In various advantageous variants, it is possible for a coordinate transformation of the raw absolute position data and/or the raw odometry position data to be carried out in order to obtain the absolute position data and/or the odometry position data, respectively. For example, a coordinate transformation could be carried out between a UTM coordinate system and a WGS84 coordinate system. It would also advantageously be possible for the coordinate transformation to include a coordinate rotation. For example, a rotation could take place between a proprietary reference system, for example speed and yaw rate of the motor vehicle as a machine, and the reference system of the pose graph. For example, a model of the motor vehicle can preferably be taken into account in order to take vehicle-specific properties into account in the coordinate transformation.

Mittels solcher Techniken ist es möglich, dass unterschiedliche Zeitverhalten der verschiedenen Positioniersysteme flexibel berücksichtigt werden. Insbesondere ist es nicht notwendig, dass die verschiedenen Positioniersysteme die Ausgaben mit einer fest vorgegebenen oder statischen Abtastrate bereitstellen. Es muss keine a-priori Annahme über das Zeitverhalten der bei dem Erzeugen des Posen-Graph berücksichtigten Positionsdaten getroffen werden.Using such techniques, it is possible to flexibly take into account different timing behaviors of the various positioning systems. In particular, it is not necessary for the various positioning systems to provide the outputs with a fixed or static sampling rate. No a priori assumption needs to be made about the timing behavior of the position data taken into account when generating the pose graph.

Zum Beispiel wäre es vorteilhafterweise möglich, dass die Roh-Odometrie-Positionsdaten und/oder die Roh-Absolut-Positionsdaten jeweils mit einem Zeitstempel versehen sind. Zum Beispiel könnte vorteilhafterweise der Zeitstempel einen Zeitpunkt indizieren, zu welchem das jeweilige Positioniersystem die Odometrie-Positionsdaten und/oder die Roh-Absolut-Positionsdaten gemessen hat.For example, it would advantageously be possible for the raw odometry position data and/or the raw absolute position data to each be provided with a time stamp. For example, the time stamp could advantageously indicate a point in time at which the respective positioning system measured the odometry position data and/or the raw absolute position data.

Zum Beispiel kann es vorteilhafterweise möglich sein, dass Positionsdaten unterschiedlicher Positioniersysteme nicht in einer zeitsequenziellen Abfolge bereitgestellt werden, sondern in einer Reihenfolge, die gegenüber den entsprechenden Zeitstempeln vertauscht ist. Dies kann der Fall sein, da unterschiedliche Positioniersysteme unterschiedliche Abtastraten und / oder unterschiedliche Latenzzeiten aufweisen können. Zum Beispiel können die Odometrie-Positionsdaten und die Absolut-Positionsdaten für die mehreren Zeitpunkte in einem Speicher zwischengespeichert werden.For example, it may advantageously be possible for position data from different positioning systems to be provided not in a time-sequential sequence, but in an order that is swapped with respect to the corresponding time stamps. This may be the case because different positioning systems may have different sampling rates and/or different latencies. For example, the odometry position data and the absolute position data for the multiple points in time may be temporarily stored in a memory.

Beim Erzeugen des Posen-Graphen können solche nicht zeitsequenziell empfangenen Roh-Positionsdaten in der Vergangenheit einfach eingefügt werden. Dies erhöht die Flexibilität beim Fusionieren der Ausgaben unterschiedlichster Positioniersysteme. Eine Echtzeit-Erzeugung und Optimierung des Posen-Graphen kann entbehrlich sein, da eine Vorhersage für die geschätzte Position zu dem zukünftigen Zeitpunkt getroffen werden kann.When generating the pose graph, such raw position data that is not received sequentially in the past can simply be inserted. This increases the flexibility when merging the outputs of different positioning systems. Real-time generation and optimization of the pose graph can be dispensed with, since a prediction for the estimated position can be made at the future point in time.

Es ist zum Beispiel vorzugsweise möglich, dass jeweils eine Iteration des Erzeugens und Optimierens des Posen-Graphen für jeden Takt einer vorgegebenen Optimierungstaktrate durchgeführt wird. Für jede Iteration kann vorteilhafterweise die entsprechende geschätzte Position der Maschine erhalten werden.For example, it is preferably possible that one iteration of the generation and optimization optimization of the pose graph is performed for each cycle of a given optimization cycle rate. For each iteration, the corresponding estimated position of the machine can advantageously be obtained.

Es ist möglich, dass die Optimierungstaktrate verschieden von der Taktrate, welche die mehreren Zeitpunkte bestimmt, gewählt wird. Es wäre aber auch möglich, dass die Optimierungstaktrate gleich der Taktrate zum Bestimmen der mehreren Zeitpunkte gewählt wird. In beiden Szenarien kann es möglich sein, dass der Posen-Graph iterativ erzeugt wird, d.h. dass für verschiedene Iterationen des Erzeugens und Optimierens des Posen-Graphen auf vorangegangen erzeugte Posen-Graphen zurückgegriffen werden kann.It is possible that the optimization clock rate is chosen to be different from the clock rate that determines the multiple points in time. However, it would also be possible that the optimization clock rate is chosen to be the same as the clock rate for determining the multiple points in time. In both scenarios, it may be possible for the pose graph to be generated iteratively, i.e. that previously generated pose graphs can be used for different iterations of generating and optimizing the pose graph.

Zum Beispiel kann die Optimierungstaktrate im Bereich zwischen 0,1 Hz und 100 Hz liegen, bevorzugt im Bereich zwischen 1 Hz und 50 Hz. In verschiedenen Szenerien kann es erstrebenswert sein, die Optimierungstaktrate möglichst konstant zu halten. Dies kann es ermöglichen, dass nachgeschaltete Logik wie insbesondere die Fahrerassistenzfunktionalität besonders zuverlässig betrieben bzw. gesteuert werden kann.For example, the optimization clock rate can be in the range between 0.1 Hz and 100 Hz, preferably in the range between 1 Hz and 50 Hz. In various scenarios, it may be desirable to keep the optimization clock rate as constant as possible. This can enable downstream logic, such as the driver assistance functionality in particular, to be operated or controlled particularly reliably.

Durch das Verwenden des Posen-Graphen kann ein besonders effizientes Optimieren zum Erhalten der geschätzten Position der Maschine implementiert werden. Deshalb können vergleichsweise hohe Optimierungstaktraten gewählt werden. Dadurch kann die geschätzte Position besonders zügig bestimmt werden.By using the pose graph, a particularly efficient optimization can be implemented to obtain the estimated position of the machine. Therefore, comparatively high optimization clock rates can be selected. This allows the estimated position to be determined particularly quickly.

Es ist zum Beispiel vorzugsweise möglich, dass die Zeitdauer, die zumindest für das Optimieren des Posen-Graphen in den verschiedenen Iterationen benötigt wird, überwacht wird. Dann ist es vorzugsweise möglich, dass die vorgegebene Taktrate und/oder die Anzahl der Zeitpunkte und / oder eine Genauigkeit des Optimierens in Abhängigkeit des Überwachens der Zeitdauer bestimmt wird.For example, it is preferably possible for the time period required at least for optimizing the pose graph in the various iterations to be monitored. Then it is preferably possible for the predetermined clock rate and/or the number of points in time and/or an accuracy of the optimization to be determined as a function of monitoring the time period.

Zum Beispiel kann vorteilhafterweise die Genauigkeit des Optimierens einer Anzahl der Optimierungsiterationen entsprechen. Zum Beispiel kann eine höhere (geringere) Genauigkeit einer größeren Anzahl (geringeren Anzahl) von Optimierungsiterationen entsprechen.For example, advantageously, the accuracy of optimizing may correspond to a number of optimization iterations. For example, a higher (lower) accuracy may correspond to a larger number (lower number) of optimization iterations.

Das Überwachen kann vorzugsweise das wiederholte Messen der Optimierungszeitdauer umfassen. Zum Beispiel kann vorzugsweise die gesamte Zeitdauer überwacht werden, die zum Erzeugen und Optimieren des Posen-Graph benötigt wird. Zum Beispiel wäre es möglich, kleinere (größere) Taktraten und / oder eine kleinere (größere) Anzahl von Zeitpunkten und/oder eine geringere (größere) Genauigkeit des Optimierens zu wählen, wenn das Überwachen eine größere (kleinere) Optimierungszeitdauer indiziert. Kleinere (größere) Taktraten und eine kleinere (größere) Anzahl von Zeitpunkten können in einer kleineren (größeren) Zeitdauer, die zumindest für das Optimieren des Posen-Graph in den verschiedenen Iterationen benötigt wird, resultieren.The monitoring may preferably comprise repeatedly measuring the optimization time duration. For example, the total time duration required to generate and optimize the pose graph may preferably be monitored. For example, it would be possible to choose smaller (larger) clock rates and/or a smaller (larger) number of time points and/or a lower (larger) accuracy of optimization if the monitoring indicates a larger (smaller) optimization time duration. Smaller (larger) clock rates and a smaller (larger) number of time points may result in a smaller (larger) time duration required at least for optimizing the pose graph in the different iterations.

Derart können zu lange Optimierungszeitdauern vermieden werden. In anderen Worten kann es vorzugsweise möglich sein, die Optimierungszeitdauer flexibel anzupassen.In this way, optimization periods that are too long can be avoided. In other words, it may preferably be possible to adapt the optimization period flexibly.

Zum Beispiel kann die Taktrate im Bereich von 1 Hz - 1.000 Hz liegen oder im Bereich von 10 Hz - 100 Hz liegen, oder im Bereich von 25 - 50 Hz liegen.For example, the clock rate can be in the range of 1 Hz - 1,000 Hz, or in the range of 10 Hz - 100 Hz, or in the range of 25 - 50 Hz.

Grundsätzlich ist es möglich, dass zumindest einige der Abtastraten eine Zeitabhängigkeit aufweisen. Z.B. können vorzugsweise zumindest einige der Abtastraten zeitliche Schwankungen aufweisen. In anderen Worten kann es vorteilhafterweise möglich sein, Ausgaben von Positioniersysteme beim Erzeugen des Posen-Graphen zu berücksichtigen, die Positionsdaten nicht mit einer konstanten Abtastrate bereitstellen. Zum Beispiel ist es vorzugsweise möglich, dass zumindest eine der Abtastraten im Bereich von 0,1 Hz - 100 Hz liegt, oder im Bereich 0,5 Hz bis 10 Hz liegt, oder im Bereich von 0,5 Hz bis 2 Hz liegt.In principle, it is possible for at least some of the sampling rates to have a time dependency. For example, preferably at least some of the sampling rates can have temporal fluctuations. In other words, it can advantageously be possible to take into account outputs from positioning systems when generating the pose graph that do not provide position data at a constant sampling rate. For example, it is preferably possible for at least one of the sampling rates to be in the range of 0.1 Hz - 100 Hz, or in the range of 0.5 Hz to 10 Hz, or in the range of 0.5 Hz to 2 Hz.

In den verschiedenen hierein beschriebenen Szenarien kann es auch möglich sein, dass die Ausgabe von zumindest einem der Positioniersysteme die zugehörigen Positionsdaten nicht in zeitsequentieller Reihenfolge bereitstellt (engl. out-of-order). Es kann in vorteilhaften Szenarien möglich sein - z.B. im Gegensatz zu Referenzimplementierungen basierend auf einem Kalmanfilter - solche nicht-zeitsequentiell erhaltenen Positionsdaten beim Erzeugen des Posen-Graphen zu berücksichtigen.In the various scenarios described herein, it may also be possible that the output of at least one of the positioning systems does not provide the associated position data in time-sequential order (out-of-order). It may be possible in advantageous scenarios - e.g. in contrast to reference implementations based on a Kalman filter - to take such non-time-sequentially obtained position data into account when generating the pose graph.

Insbesondere kann es zum Beispiel möglich sein, dass zumindest eine der Abtastraten Unterbrechungen aufweist. Zum Beispiel können die Unterbrechungen mehr als zwei Abtastintervalle der entsprechenden Abtastrate umfassen. Zum Beispiel können die Unterbrechungen mehr als 10 Abtastintervalle umfassen. Zum Beispiel können die Unterbrechungen mehr als 100 Abtastintervalle umfassen.In particular, it may be possible, for example, that at least one of the sampling rates has interruptions. For example, the interruptions may comprise more than two sampling intervals of the corresponding sampling rate. For example, the interruptions may comprise more than 10 sampling intervals. For example, the interruptions may comprise more than 100 sampling intervals.

Die Unterbrechungen können Aussetzer darstellen, während welchen keine oder keine belastbaren Positionsdaten des entsprechenden Positioniersystems vorhanden sind.The interruptions may represent outages during which no or no reliable position data from the corresponding positioning system is available.

In anderen Worten kann es also möglich sein, dass Aussetzer beim Bereitstellen von Ausgaben der verschiedenen Positioniersysteme kompensiert werden. Der Posen-Graph kann mit einer flexiblen Anzahl von Ausgaben verschiedener Positioniersysteme erzeugt werden.In other words, it may be possible to compensate for interruptions in the provision of outputs from the various positioning systems. The pose graph can be generated with a flexible number of outputs from different positioning systems.

Zum Beispiel ist es in vorteilhaften Szenarien möglich, dass die Absolut-Positionsdaten basierend auf der Ausgabe eines ersten Absolut-Positioniersystems jeweils für mehrere Zeitpunkte in einem ersten Zeitintervall ermittelt werden; die Absolut-Positionsdaten können vorzugsweise basierend auf der Ausgabe eines zweiten Absolut-Positioniersystems jeweils für mehrere Zeitpunkte in einem zweiten Zeitintervall ermittelt werden. Das erste Absolut-Positioniersystem kann vorteilhafterweise verschieden von dem zweiten Absolut-Positioniersystem sein. Die Absolut-Positionsdaten können vorzugsweise für die mehreren Zeitpunkte in dem ersten Zeitintervall nicht basierend auf der Ausgabe des zweiten Absolut-Positioniersystems ermittelt werden.For example, in advantageous scenarios it is possible for the absolute position data to be determined based on the output of a first absolute positioning system for a plurality of points in time in a first time interval; the absolute position data can preferably be determined based on the output of a second absolute positioning system for a plurality of points in time in a second time interval. The first absolute positioning system can advantageously be different from the second absolute positioning system. The absolute position data can preferably not be determined based on the output of the second absolute positioning system for the plurality of points in time in the first time interval.

Deshalb kann z.B. das erste Zeitintervall einer Unterbrechung in Bezug auf die Ausgabe des zweiten Absolut-Positioniersystems darstellen. Das Verfahren kann in vorteilhaften Szenarien umfassen: Umschalten zwischen der Ausgabe des ersten Absolut-Positioniersystems und der Ausgabe des zweiten Absolut-Positioniersystems zum Ende des ersten Zeitintervalls.Therefore, for example, the first time interval may represent an interruption with respect to the output of the second absolute positioning system. The method may, in advantageous scenarios, comprise: switching between the output of the first absolute positioning system and the output of the second absolute positioning system at the end of the first time interval.

In verschiedenen bevorzugten Szenarien kann es also möglich sein, dass je nach Zeitpunkt unterschiedliche Ausgaben von Positioniersystemen berücksichtigt werden. Z.B. kann es in vorteilhaften Implementierungen möglich sein, flexibel zwischen den Ausgaben der ersten und zweiten Absolut-Positioniersysteme beim Erzeugen des Posen-Graphen umzuschalten. Das Umschalten kann graduell erfolgen. Insbesondere in Übergangssituationen kann es derart möglich sein, die Position der Maschine mit einer hohen Zuverlässigkeit zu schätzen.In various preferred scenarios, it may therefore be possible for different outputs of positioning systems to be taken into account depending on the point in time. For example, in advantageous implementations it may be possible to flexibly switch between the outputs of the first and second absolute positioning systems when generating the pose graph. The switching can be done gradually. In particular in transitional situations it may be possible in this way to estimate the position of the machine with a high degree of reliability.

Gemäß einem weiteren Aspekt betrifft die vorliegende Erfindung ein Steuergerät. Das Steuergerät umfasst mindestens eine Schnittstelle. Die mindestens eine Schnittstelle ist eingerichtet, um jeweils Ausgaben von mindestens einem Odometrie-Positioniersystem zu empfangen und um jeweils Ausgaben von mindestens einem Absolut-Positioniersystem zu empfangen. Das Steuergerät umfasst weiterhin mindestens einen Prozessor. Der mindestens eine Prozessor ist eingerichtet, um jeweils für jeden von mehreren Zeitpunkten Odometrie-Positionsdaten der Maschine basierend auf den Ausgaben des mindestens einen Odometrie-Positioniersystems zu ermitteln. Der mindestens eine Prozessor ist weiterhin eingerichtet, um jeweils für jeden der mehreren Zeitpunkte Absolut-Positionsdaten der Maschine basierend auf den Ausgaben des mindestens einen Absolut-Positioniersystems zu ermitteln. Der mindestens eine Prozessor ist weiterhin eingerichtet, um einen Posen-Graph zu erzeugen. Kanten des Posen-Graphen entsprechen den Odometrie-Positionsdaten. Knoten des Posen-Graphen entsprechen den Absolut-Positionsdaten. Der mindestens eine Prozessor ist weiterhin eingerichtet, um den Posen-Graph zum Erhalten einer geschätzten Position des Kraftfahrzeugs zu optimieren. Der mindestens eine Prozessor ist weiterhin eingerichtet, um nach dem Optimieren einen Knoten des Posen-Graphen auszuwählen, für den ausgewählten Knoten einen Fixknoten des Posen-Graphen zu bestimmen und den ausgewählten Knoten aus dem Posen-Graph zu entfernen.According to a further aspect, the present invention relates to a control device. The control device comprises at least one interface. The at least one interface is configured to receive outputs from at least one odometry positioning system and to receive outputs from at least one absolute positioning system. The control device further comprises at least one processor. The at least one processor is configured to determine odometry position data of the machine for each of a plurality of points in time based on the outputs of the at least one odometry positioning system. The at least one processor is further configured to determine absolute position data of the machine for each of the plurality of points in time based on the outputs of the at least one absolute positioning system. The at least one processor is further configured to generate a pose graph. Edges of the pose graph correspond to the odometry position data. Nodes of the pose graph correspond to the absolute position data. The at least one processor is further configured to optimize the pose graph to obtain an estimated position of the motor vehicle. The at least one processor is further configured to select a node of the pose graph after optimization, to determine a fixed node of the pose graph for the selected node, and to remove the selected node from the pose graph.

Das Steuergerät gemäß dem gegenwärtig diskutierten Aspekt ist eingerichtet, um das Verfahren gemäß einem weiteren Aspekt der vorliegenden Erfindung auszuführen.The control device according to the currently discussed aspect is arranged to carry out the method according to a further aspect of the present invention.

Für ein solche Steuergerät gemäß den gegenwärtig diskutierten Aspekt können Effekte erzielt werden, die vergleichbar sind mit den Effekten, die für das Verfahren gemäß einem weiteren Aspekt der vorliegenden Erfindung erzielt werden können.For such a control device according to the presently discussed aspect, effects can be achieved that are comparable to the effects that can be achieved for the method according to another aspect of the present invention.

Die oben dargelegten Merkmale und Merkmale, die nachfolgend beschrieben werden, können nicht nur in den entsprechenden explizit dargelegten Kombinationen verwendet werden, sondern auch in weiteren Kombinationen oder isoliert, ohne den Schutzumfang der vorliegenden Erfindung zu verlassen.The features set out above and features described below may be used not only in the corresponding explicitly set out combinations, but also in further combinations or in isolation without departing from the scope of the present invention.

KURZBESCHREIBUNG DER FIGURENBRIEF DESCRIPTION OF THE CHARACTERS

Nachfolgend wird die vorliegende Erfindung anhand bevorzugter Ausführungsformen unter Bezugnahme auf die Zeichnungen näher erläutert. In den Figuren bezeichnen gleiche Bezugszeichen gleiche oder ähnliche Elemente.

  • 1 ist eine schematische Illustration des logischen Informationsflusses im Rahmen der Fusion von Positionsdaten mehrerer Positioniersysteme auf Grundlage eines Posen-Graphen gemäß verschiedener Ausführungsformen.
  • 2 illustriert schematisch die Verfügbarkeit der unterschiedlichen Positionsdaten für Zeitpunkte in unterschiedlichen Zeitintervallen in einer Übergangssituation gemäß verschiedener Ausführungsformen.
  • 3 illustriert schematisch die Verfügbarkeit bestimmter Positionsdaten zu verschiedenen Zeitpunkten gemäß verschiedener Ausführungsformen, wobei in 3 eine Unterbrechung, bei welcher temporär keine Positionsdaten verfügbar sind, illustriert ist.
  • 4 illustriert schematisch ein Steuergerät gemäß verschiedener Ausführungsformen.
  • 5 ist ein Flussdiagramm eines Verfahrens gemäß verschiedener Ausführungsformen.
  • 6 illustriert schematisch das Erzeugen von Knoten eines Posen-Graphen auf Grundlage von Roh-Absolut-Positionsdaten gemäß verschiedener Ausführungsformen, wobei die Roh-Absolut-Positionsdaten von zwei Absolut-Positioniersystemen mit unterschiedlichen Abtastraten empfangen werden.
  • 7 illustriert schematisch das Erzeugen von Kanten des Posen-Graphen der 6 auf Grundlage von Roh-Odometrie-Positionsdaten gemäß verschiedener Ausführungsformen, wobei die Roh-Odometrie-Positionsdaten von einem Odometrie-Positioniersystem mit einer bestimmten Abtastrate empfangen werden.
  • 8 illustriert schematisch den Posen-Graph der 6 und 7, bevor der Posen-Graph optimiert wird.
  • 9 illustriert schematisch den optimierten Posen-Graph der 6-8 und illustriert weiterhin eine aus dem optimierten Posen-Graph erhaltene geschätzte Position eines Kraftfahrzeugs.
  • 10 illustriert schematisch einen Posen-Graphen gemäß verschiedener Ausführungsformen.
  • 11 illustriert schematisch eine Systemmatrix für den Posen-Graphen der 10 gemäß verschiedener Ausführungsformen.
  • 12, 13, 14 und 15 illustrieren schematisch die Marginalisierung eines Posen-Graphen unter Verwendung eines Fixknotens.
  • 16 ist ein Flussdiagramm eines Verfahrens gemäß verschiedener Ausführungsformen.
The present invention is explained in more detail below using preferred embodiments with reference to the drawings. In the figures, identical reference numerals designate identical or similar elements.
  • 1 is a schematic illustration of the logical information flow in the context of the fusion of position data from multiple positioning systems based on a pose graph according to various embodiments.
  • 2 schematically illustrates the availability of the different position data for points in time in different time intervals in a transition situation according to various embodiments.
  • 3 schematically illustrates the availability of certain position data at different times according to different embodiments, wherein in 3 an interruption during which position data is temporarily unavailable is illustrated.
  • 4 schematically illustrates a control device according to various embodiments.
  • 5 is a flowchart of a method according to various embodiments.
  • 6 schematically illustrates the generation of nodes of a pose graph based on raw absolute position data according to various embodiments, wherein the raw absolute position data is received from two absolute positioning systems with different sampling rates.
  • 7 schematically illustrates the generation of edges of the pose graph of the 6 based on raw odometry position data according to various embodiments, wherein the raw odometry position data is received from an odometry positioning system at a certain sampling rate.
  • 8 schematically illustrates the pose graph of the 6 and 7 before the pose graph is optimized.
  • 9 schematically illustrates the optimized pose graph of the 6-8 and further illustrates an estimated position of a motor vehicle obtained from the optimized pose graph.
  • 10 schematically illustrates a pose graph according to various embodiments.
  • 11 schematically illustrates a system matrix for the pose graph of the 10 according to various embodiments.
  • 12 , 13 , 14 and 15 schematically illustrate the marginalization of a pose graph using a fixed node.
  • 16 is a flowchart of a method according to various embodiments.

DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMENDETAILED DESCRIPTION OF EMBODIMENTS

Nachfolgend wird die vorliegende Erfindung anhand bevorzugter Ausführungsformen unter Bezugnahme auf die Zeichnungen näher erläutert. In den Figuren bezeichnen gleiche Bezugszeichen gleiche oder ähnliche Elemente. Die Figuren sind schematische Repräsentationen verschiedener Ausführungsformen der Erfindung. In den Figuren dargestellte Elemente sind nicht notwendigerweise maßstabsgetreu dargestellt. Vielmehr sind die verschiedenen in den Figuren dargestellten Elemente derart wiedergegeben, dass ihre Funktion und genereller Zweck dem Fachmann verständlich wird. In den Figuren dargestellte Verbindungen und Kopplungen zwischen funktionellen Einheiten und Elementen können auch als indirekte Verbindung oder Kopplung implementiert werden. Eine Verbindung oder Kopplung kann drahtgebunden oder drahtlos implementiert sein. Funktionale Einheiten können als Hardware, Software oder eine Kombination aus Hardware und Software implementiert werden.The present invention is explained in more detail below using preferred embodiments with reference to the drawings. In the figures, identical reference numerals denote identical or similar elements. The figures are schematic representations of various embodiments of the invention. Elements shown in the figures are not necessarily shown to scale. Rather, the various elements shown in the figures are shown in such a way that their function and general purpose is understandable to those skilled in the art. Connections and couplings between functional units and elements shown in the figures can also be implemented as an indirect connection or coupling. A connection or coupling can be implemented wired or wirelessly. Functional units can be implemented as hardware, software or a combination of hardware and software.

Nachfolgend werden Techniken zur Positionsbestimmung einer Maschine, wie z. B. einem Kraftfahrzeug beschrieben, welche es erlauben, Odometrie-Positionsdaten mindestens eines Odometrie-Positioniersystems und Absolut- Positionsdaten mindestens eines Absolut-Positioniersystems zu fusionieren. Der Einfachheit wegen wird nachfolgend auf ein Kraftfahrzeug Bezug genommen, obwohl entsprechende Techniken auch für andere Maschinen angewendet werden können.Techniques for determining the position of a machine, such as a motor vehicle, are described below, which allow odometry position data from at least one odometry positioning system and absolute position data from at least one absolute positioning system to be merged. For the sake of simplicity, reference is made below to a motor vehicle, although corresponding techniques can also be applied to other machines.

Insbesondere werden nachfolgend Techniken geschrieben, welche es erlauben, eine geschätzte Position des Kraftfahrzeugs zu bestimmen, welche für eine Fahrerassistenzfunktionalität verwendet werden kann. Z.B. kann die Fahrerassistenzfunktionalität autonomes Fahren betreffen. Es sind auch andere Fahrerassistenzfunktionalitäten denkbar.In particular, techniques are described below that allow an estimated position of the motor vehicle to be determined, which can be used for a driver assistance functionality. For example, the driver assistance functionality can relate to autonomous driving. Other driver assistance functionalities are also conceivable.

Verschiedene hierin offenbarte Beispiele erlauben es, die Fusion der verschiedenen Positionsdaten auf Grundlage eines Posen-Graphen durchzuführen. Der Posen-Graph kann optimiert werden, um die Position des Kraftfahrzeugs abzuschätzen.Various examples disclosed herein allow the fusion of the various position data to be performed based on a pose graph. The pose graph can be optimized to estimate the position of the motor vehicle.

Dabei werden für jeden von mehreren Zeitpunkten Odometrie-Positionsdaten eines Kraftfahrzeugs basierend auf der Ausgabe mindestens eines Odometrie-Positioniersystems ermittelt und weiterhin Absolut-Positionsdaten des Kraftfahrzeugs basierend auf einer Ausgabe mindestens eines Absolut-Positioniersystems ermittelt. Der Posen-Graph wird erzeugt, wobei Knoten des Posen-Graphen den Absolut-Positionsdaten entsprechen und wobei Kanten des Posen-Graphen den Odometrie-Positionsdaten entsprechen. Der Posen-Graph wird dann optimiert.For each of several points in time, odometry position data of a motor vehicle is determined based on the output of at least one odometry positioning system, and absolute position data of the motor vehicle is also determined based on an output of at least one absolute positioning system. The pose graph is generated, with nodes of the pose graph corresponding to the absolute position data and with edges of the pose graph corresponding to the odometry position data. The pose graph is then optimized.

Hierin werden Techniken beschrieben, die es ermöglichen, den Posen-Graphen effizient und ohne Genauigkeitsverlust zu marginalisieren. Dabei wird ein zu optimierender Knoten durch einen Fixknoten ersetzt.This paper describes techniques that allow the pose graph to be marginalized efficiently and without loss of accuracy. A node to be optimized is replaced by a fixed node.

In 1 sind verschiedene Aspekte in Bezug auf einen Arbeitsablauf zur Positionsbestimmung mittels Sensorfusion illustriert. Es werden Roh-Absolut-Positionsdaten 105, 106 als Ausgaben von zwei Absolut-Positioniersystemen 101, 102 empfangen. Ferner werden Roh-Odometrie-Positionsdaten 115, 116 als Ausgaben von zwei Odometrie-Positioniersystemen 111, 112 empfangen. Zum Beispiel könnte ein Software-Modul 151 die entsprechenden Positionsdaten 105, 106, 115, 116 auf einem dedizierten Ausführungsstrang (engl. thread) empfangen. Ein Speicher (in 1 nicht gezeigt) kann die empfangenen Positionsdaten 105, 106, 115, 116 zwischenspeichern, bis sie verworfen werden.In 1 various aspects are illustrated in relation to a workflow for position determination using sensor fusion. Raw absolute position data 105, 106 are received as outputs from two absolute positioning systems 101, 102. Furthermore, raw odometry position data 115, 116 are received as outputs from two odometry positioning systems systems 111, 112. For example, a software module 151 could receive the corresponding position data 105, 106, 115, 116 on a dedicated thread. A memory (in 1 not shown) can temporarily store the received position data 105, 106, 115, 116 until they are discarded.

Es ist dann möglich, in regelmäßigen, einstellbaren Zeitintervallen - das heißt mit einer Optimierungstaktrate - einen Konstruktionsprozess zum Erzeugen des Posen-Graphen durch eine Graphenverwaltung 152 anzustoßen. Dabei kann zum Beispiel der in einer vorangehenden Iteration der Optimierungstaktrate erzeugte Posen-Graph jeweils um neue Knoten und Kanten erweitert werden.It is then possible to initiate a construction process for generating the pose graph by a graph management system 152 at regular, adjustable time intervals - that is, at an optimization clock rate. For example, the pose graph generated in a previous iteration of the optimization clock rate can be expanded by new nodes and edges.

Der Posen-Graph kann in verschiedenen Szenarien Knoten aufweisen, die in festen Zeitabständen angeordnet sind. Entsprechend ist es möglich, dass mehrere Zeitpunkte, für die Knoten zu dem Posen-Graph hinzugefügt werden, basierend auf einer vorgegebenen Taktrate ermittelt werden. Für jeden der mehreren Zeitpunkte können dann entsprechende Odometrie-Positionsdaten und Absolut-Positionsdaten basierend auf den Roh-Odometrie-Positionsdaten und den Roh-Absolut-Positionsdaten ermittelt werden und jeweils mit zu optimierenden Kanten bzw. Knoten des Posen-Graphen assoziiert werden, z.B. in Form von Randbedingungen.In various scenarios, the pose graph can have nodes arranged at fixed time intervals. Accordingly, it is possible for several points in time at which nodes are added to the pose graph to be determined based on a predetermined clock rate. For each of the several points in time, corresponding odometry position data and absolute position data can then be determined based on the raw odometry position data and the raw absolute position data and each associated with edges or nodes of the pose graph to be optimized, e.g. in the form of boundary conditions.

Z.B. kann die Optimierungstaktrate gleich oder ungleich der Taktrate der Knoten des Posen-Graphen sein.For example, the optimization clock rate can be equal to or different from the clock rate of the nodes of the Posen graph.

Nachdem der Posen-Graph erzeugt wurde, kann die Optimierung durchgeführt werden. Dazu wird der erzeugte Posen-Graph an ein Backend 153 übergeben. Das Backend 153 führt dann die Optimierung aus. Als Ergebnis der Optimierung wird eine IST-Position des Kraftfahrzeugs erhalten.After the pose graph has been generated, the optimization can be carried out. For this purpose, the generated pose graph is passed to a backend 153. The backend 153 then carries out the optimization. As a result of the optimization, an actual position of the motor vehicle is obtained.

Dabei kann in den verschiedenen hierin offenbarten Szenarien die IST-Position eine Vorhersage für einen zukünftigen Zeitpunkt sein, um Latenzzeiten aufgrund der Erzeugung des Posen-Graphen durch die Graphenverwaltung 152 und das Durchführen der Optimierung durch das Backend 153 zu kompensieren. Zum Beispiel wäre es möglich, dass die IST-Position eine Vorhersage der Position des Kraftfahrzeugs für den nächsten Takt der vorgegebenen Optimierungstaktrate ist.In the various scenarios disclosed herein, the actual position may be a prediction for a future point in time in order to compensate for latencies due to the generation of the pose graph by the graph management 152 and the performance of the optimization by the backend 153. For example, it would be possible for the actual position to be a prediction of the position of the motor vehicle for the next cycle of the predetermined optimization cycle rate.

Mittels solcher Techniken zur Positionsbestimmung auf Grundlage des Posen-Graphen ist es möglich, flexibel Positionsdaten 105, 106, 115, 116 zu berücksichtigen, die aus unterschiedlichsten Positioniersystemen 101, 102, 111, 112, 113 stammen, siehe 2. Dabei ist der konkrete Typ des verwendeten Positioniersystems 101, 102, 111-113 nicht wesentlich für die Funktionsweise der hierin beschriebenen Techniken zur Positionsbestimmung; es können unterschiedlichste Typen und Arten von Positioniersystemen 101, 102, 111-113 in den verschiedenen hierin offenbarten Szenarien verwendet werden.Using such techniques for determining positions based on the pose graph, it is possible to flexibly take into account position data 105, 106, 115, 116 that originate from a wide variety of positioning systems 101, 102, 111, 112, 113, see 2 The specific type of positioning system 101, 102, 111-113 used is not essential for the functioning of the position determination techniques described herein; a wide variety of types and kinds of positioning systems 101, 102, 111-113 can be used in the various scenarios disclosed herein.

Zum Beispiel können Satelliten-basierte Positioniersysteme zum Bereitstellen der Absolut-Positionsdaten 105, 106 verwendet werden; ein Beispiel ist das Global Positioning System (GPS). Zum Beispiel kann eine Erkennung von maschinenlesbaren Zeichen 101 als Positioniersystem zum Bereitstellen der Absolut-Positionsdaten 105, 106 verwendet werden. Zum Beispiel könnte eine Laser-basierte Abstandsmessung 111 (engl. Light detection and ranging, LIDAR) zum Bestimmen von Absolut-Positionsdaten 105, 106 und / oder Odometrie-Positionsdaten 115, 116 verwendet werden. Auch die visuelle Posenerkennung 112 kann basierend auf Unterschieden in sequentiell aufgenommenen Bildern, die eine Landmarke abbilden, die Odometrie-Positionsdaten 115, 116 bereitstellen. Informationen aus der Fahrwerk-Odometrie 113 können zum Bereitstellen der Odometrie-Positionsdaten 115, 116 verwendet werden; zum Beispiel können in diesem Zusammenhang ein Lenkwinkel und/oder eine Drehgeschwindigkeit der Räder berücksichtigt werden. Es könnten auch Beschleunigungssensoren zum Bereitstellen der Odometrie-Positionsdaten 115, 116 verwendet werden; zum Beispiel könnte ein elektronisches Stabilitätssystem (ESP) als Beschleunigungssensor verwendet werden.For example, satellite-based positioning systems may be used to provide the absolute position data 105, 106; one example is the Global Positioning System (GPS). For example, machine-readable character recognition 101 may be used as a positioning system to provide the absolute position data 105, 106. For example, laser-based distance measurement 111 (light detection and ranging, LIDAR) could be used to determine absolute position data 105, 106 and/or odometry position data 115, 116. Also, visual pose recognition 112 may provide the odometry position data 115, 116 based on differences in sequentially captured images depicting a landmark. Information from the chassis odometry 113 may be used to provide the odometry position data 115, 116; for example, a steering angle and/or a rotational speed of the wheels may be taken into account in this context. Acceleration sensors could also be used to provide the odometry position data 115, 116; for example, an electronic stability system (ESP) could be used as an acceleration sensor.

Eine weitere Quelle für die Positionsdaten könnten car2car-Systeme sein: diese können entweder direkt die Position eines Fahrzeugs bestimmen oder eine indirekte Positionsbestimmung über die Position eines dritten Fahrzeugs ermöglichen, wobei dann die Relativpositionierung zum dritten Fahrzeug berücksichtigt werden kann.Another source for the position data could be car2car systems: these can either directly determine the position of a vehicle or enable indirect position determination via the position of a third vehicle, whereby the relative positioning to the third vehicle can then be taken into account.

Stereo- und/oder Monokameras können nicht nur zur Bereitstellung von Odometrie-Positionsdaten genutzt werden, sondern alternativ oder zusätzlich zur Bereitstellung von Absolut-Positionsdaten. Hierfür gibt es verschiedene Ansätze: es ist z.B. möglich, eine visuelle Karte einer Strecke zu erstellen und beim erneuten Durchfahren eine Lokalisierung in der Karte vorzunehmen.Stereo and/or mono cameras can be used not only to provide odometry position data, but also alternatively or additionally to provide absolute position data. There are various approaches to this: for example, it is possible to create a visual map of a route and to localize it on the map when driving through it again.

Techniken der simultanen Lokalisierung und Kartenerstellung (engl. Simultaneous Localization and Mapping, SLAM) können auch als Quelle für Positionsdaten dienen. Z.B. können SLAM-Techniken Absolut-Positionsdaten in einem globalen Koordinatensystem bereitstellen oder alternativ oder zusätzlich Odometrie-Positionsdaten bereitstellen.Simultaneous localization and mapping (SLAM) techniques can also serve as a source of position data. For example, SLAM techniques can provide absolute position data in a global coordinate system or alternatively or additionally provide odometry position data.

Weitere Beispiele für Positioniersysteme umfassen: Techniken basierend auf RFID-Markern. Techniken basierend auf WLAN-Netzen, die aktuell empfangen werden und / oder basierend auf einer Triangulation in einer bekannten WLAN-Netzwerke-Karte. Es können auch Mobilfunkmasten ausgelesen werden.Other examples of positioning systems include: Techniques based on RFID markers. Techniques based on WLAN networks that are currently being received and/or based on triangulation in a known WLAN network map. Cell phone towers can also be read.

In den verschiedensten hierin beschriebenen Szenarien kann es jeweils auch möglich sein, durch Differenzbildung von zwei zeitsequentiellen Absolut-Positionsdaten Odometrie-Positionsdaten zu erzeugen.In the various scenarios described herein, it may also be possible to generate odometry position data by taking the difference between two time-sequential absolute position data.

Aus 2 ist ersichtlich, dass einerseits die Zeitintervalle 201, in welchen die verschiedenen Positioniersysteme 101, 102, 111-113 die zugehörigen Positionsdaten bereitstellen, verschieden voneinander sind. 2 stellt eine sogenannte Übergangssituation dar: die von LIDAR 111, der Erkennung von maschinenlesbaren Zeichen 101 und der visuellen Posenerkennung 112 bereitgestellten Positionsdaten 105, 106, 115, 116 brechen ab; dafür werden Positionsdaten des GPS-Systems 106 verfügbar. Eine entsprechende Situation kann sich zum Beispiel beim Verlassen eines Parkhauses ergeben. Dies bedeutet, dass zunächst die Absolut-Positionsdaten 105 aus der Erkennung maschinenlesbarer Zeichen 101 erhalten werden und nicht von dem GPS-System 106; anschließend werden die Absolut-Positionsdaten 106 von dem GPS-System 102 erhalten. In den verschiedenen hierin beschriebenen Szenarien kann also zwischen unterschiedlichen Quellen für die Positionsdaten 105, 106, 115, 116 umgeschaltet werden; dies bedeutet, dass in den verschiedenen hierin beschriebenen Szenarien zwischen den unterschiedlichen Positioniersysteme 101, 102, 111-113 umgeschaltet werden kann. Das Umschalten kann graduell erfolgen. Das Umschalten kann Situationsangepasst erfolgen. Das Umschalten kann unter Berücksichtigung von Übergangsphasen zwischen den verschiedenen Positioniersystemen erfolgen.Out of 2 It can be seen that, on the one hand, the time intervals 201 in which the various positioning systems 101, 102, 111-113 provide the associated position data are different from one another. 2 represents a so-called transition situation: the position data 105, 106, 115, 116 provided by LIDAR 111, the recognition of machine-readable characters 101 and the visual pose recognition 112 break off; instead, position data from the GPS system 106 becomes available. A corresponding situation can arise, for example, when leaving a parking garage. This means that first the absolute position data 105 is obtained from the recognition of machine-readable characters 101 and not from the GPS system 106; then the absolute position data 106 is obtained from the GPS system 102. In the various scenarios described here, it is therefore possible to switch between different sources for the position data 105, 106, 115, 116; This means that in the various scenarios described here, switching can take place between the different positioning systems 101, 102, 111-113. The switching can take place gradually. The switching can be adapted to the situation. The switching can take place taking into account transition phases between the different positioning systems.

In 2 ist ferner illustriert, dass sich die Abtastraten 202, mit welchen die verschiedenen Positioniersysteme 101, 102, 111-113 die zugehörigen Roh-Positionsdaten bereitstellen, voneinander abweichen.In 2 It is further illustrated that the sampling rates 202 with which the various positioning systems 101, 102, 111-113 provide the associated raw position data differ from one another.

In verschiedenen Szenarien ist es auch möglich, dass die Abtastrate 202 eine Unterbrechung 203 aufweist, siehe 3. In 3 ist die Abtastrate 202 als Funktion der Zeit aufgetragen. In einen solchen Szenario ist es möglich, dass während der Unterbrechung 203 das entsprechende Positioniersystem 101, 102, 111-113 keine oder keine signifikanten Ausgaben bereitstellt. Eine Unterbrechung 203 kann insbesondere dann vorliegen, wenn wesentlich weniger Roh-Positionsdaten bereitstehen, als durch eine Taktrate, mit der Knoten in den Posen-Graph eingefügt werden, gefordert. Kurze Unterbrechungen 203 können kompensiert werden, beispielsweise durch Interpolation. Grundsätzlich ist es aber möglich, dass die Unterbrechung 203 vergleichsweise lang ist. Zum Beispiel kann die Unterbrechung 203 mehrere Abtastintervalle der Abtastrate 202 umfassen. In dem Szenario der 3 beträgt die Abtastrate 202 in etwa 1 Hz vor und nach der Unterbrechung 203. Dies bedeutet, dass ein Abtastintervall eine Länge von ca. 1 Sekunde aufweist. Die Unterbrechung 203 weist eine Zeitdauer von ca. 12 Sekunden auf, umfasst also mehr als 10 Abtastintervalle.In various scenarios it is also possible that the sampling rate 202 has an interruption 203, see 3 . In 3 the sampling rate 202 is plotted as a function of time. In such a scenario, it is possible that during the interruption 203 the corresponding positioning system 101, 102, 111-113 provides no or no significant outputs. An interruption 203 can occur in particular when significantly less raw position data is available than required by a clock rate with which nodes are inserted into the pose graph. Short interruptions 203 can be compensated, for example by interpolation. In principle, however, it is possible that the interruption 203 is comparatively long. For example, the interruption 203 can include several sampling intervals of the sampling rate 202. In the scenario of the 3 the sampling rate 202 is approximately 1 Hz before and after the interruption 203. This means that a sampling interval has a length of approximately 1 second. The interruption 203 has a duration of approximately 12 seconds, thus comprising more than 10 sampling intervals.

Grundsätzlich ist es auch möglich, dass die Abtastrate 202 - außerhalb einer Unterbrechung 203 - als Funktion der Zeit variiert. Zum Beispiel könnte je nach verfügbaren Signalqualität das Satelliten-basierte Positionssystem 106 eine höhere oder geringere Abtastrate 202 implementieren.In principle, it is also possible for the sampling rate 202 - outside of an interruption 203 - to vary as a function of time. For example, depending on the available signal quality, the satellite-based positioning system 106 could implement a higher or lower sampling rate 202.

Nachfolgend werden Techniken beschrieben, um die IST-Position 190 des Kraftfahrzeugs durchgängig und zuverlässig mit einer hohen Genauigkeit zu bestimmen. Diese Techniken können auch in Übergangssituationen oder bei voneinander abweichenden bzw. mit Unterbrechungen 203 versehenen Abtastraten 201 zuverlässig und genau die IST-Position 190 bestimmen.Techniques are described below for determining the actual position 190 of the motor vehicle consistently and reliably with a high degree of accuracy. These techniques can also determine the actual position 190 reliably and precisely in transitional situations or when sampling rates 201 differ from one another or are provided with interruptions 203.

4 illustriert ein Steuergerät 120 welches zum Durchführen entsprechender Techniken eingerichtet ist. Das Steuergerät 120 umfasst eine Schnittstelle 121, welche mit den verschiedenen Positioniersystemen 101, 102, 111, 112 kommuniziert. Ferner umfasst das Steuergerät 120 einen Prozessor 123, der mit der Schnittstelle 121 und einem Speicher 124 gekoppelt ist. Zum Beispiel kann der Speicher 124 die verschiedenen Positionsdaten 105, 106, 115, 116 zwischenspeichern bzw. puffern. Der Prozessor 123 kann eingerichtet sein, um verschiedenste Techniken, die hierin im Zusammenhang mit dem Ermitteln der Odometrie-Positionsdaten und der Absolut-Positionsdaten auf Grundlage jeweils der Roh-Odometrie-Positionsdaten und der Roh-Absolut-Positionsdaten, dem Erzeugen des Posen-Graphen und dem Optimieren des Posen-Graphen, sowie dem Steuern der Fahrerassistenzfunktionalität beschrieben sind, durchzuführen. Zum Steuern der Fahrerassistenzfunktionalität 129 umfasst das Steuergerät 120 eine weitere Schnittstelle 122. Die verschiedenen Schnittstellen 121, 122 können eingerichtet sein, um zum Beispiel über ein Bus-System des Kraftfahrzeugs mit den verschiedenen Einheiten zu kommunizieren. Es sind auch direkte Datenverbindungen möglich. 4 illustrates a control unit 120 which is set up to carry out corresponding techniques. The control unit 120 comprises an interface 121 which communicates with the various positioning systems 101, 102, 111, 112. The control unit 120 further comprises a processor 123 which is coupled to the interface 121 and a memory 124. For example, the memory 124 can temporarily store or buffer the various position data 105, 106, 115, 116. The processor 123 can be set up to carry out a variety of techniques described herein in connection with determining the odometry position data and the absolute position data based on the raw odometry position data and the raw absolute position data, respectively, generating the pose graph and optimizing the pose graph, as well as controlling the driver assistance functionality. To control the driver assistance functionality 129, the control unit 120 includes a further interface 122. The various interfaces 121, 122 can be set up to communicate with the various units, for example via a bus system of the motor vehicle. Direct data connections are also possible.

Zum Beispiel können in dem Speicher 124 Steuerdaten hinterlegt sein, die von dem Prozessor 123 ausgeführt werden können. Ausführen der Steuerdaten durch den Prozessor 123 kann bewirken, dass der Prozessor 123 ein Verfahren ausführt, wie es im Zusammenhang mit dem Flussdiagramm der 5 illustriert ist.For example, control data can be stored in the memory 124 that can be executed by the processor 123. Execution of the Control data by the processor 123 may cause the processor 123 to execute a method as described in connection with the flow chart of the 5 is illustrated.

Zunächst wird in Schritt 1 überprüft, ob die nächste Iteration für das Erzeugen und Optimieren eines Posen-Graphen durchgeführt werden soll; dafür kann eine vorgegebene Optimierungstaktrate berücksichtigt werden. Für jede Iteration wird eine IST-Position 190 erhalten.First, in step 1, it is checked whether the next iteration for generating and optimizing a pose graph should be carried out; for this purpose, a predetermined optimization clock rate can be taken into account. An actual position 190 is obtained for each iteration.

Optional kann in allen hierin beschriebenen Beispielen für jede Iteration auch eine IST-Odometrie erhalten werden. Z.B. kann es möglich sein, die IST-Odometrie auf Grundlage der beiden letzten Optimierungsknoten zu berechnen, d.h., unter Berücksichtigen der zurückgelegten Strecke und der erfolgten Drehung. Daraus kann z.B. auf die Geschwindigkeit und die Drehrate zurückgeschlossen werden.Optionally, in all examples described here, an actual odometry can also be obtained for each iteration. For example, it may be possible to calculate the actual odometry based on the last two optimization nodes, i.e., taking into account the distance covered and the rotation that has taken place. From this, for example, the speed and the rotation rate can be deduced.

Wenn die nächste Iteration durchgeführt werden soll, werden in Schritt 2 zunächst für mehrere Zeitpunkte Absolut-Positionsdaten auf Grundlage von Roh-Absolut-Positionsdaten 105, 106 ermittelt. Dies ist in 6 illustriert. In 6 ist der Posen-Graph 661 lediglich in Bezug auf Knoten 671 illustriert. Der Posen-Graph 661 ist in 6 im zweidimensionalen xy-Ortsraum dargestellt. Der Posen-Graph 661 umfasst Optimierungsknoten 671 zu den Zeitpunkten t.1, t.3, t.5, t.8 und t.11. Die Zeitpunkte t.1, t.3, t.5, t.8 und t.11 weisen einen festen Zeitabstand zueinander auf und sind entsprechend einer Taktrate bestimmt.If the next iteration is to be carried out, in step 2 absolute position data are first determined for several points in time based on raw absolute position data 105, 106. This is shown in 6 illustrated. In 6 the pose graph 661 is illustrated only with respect to nodes 671. The pose graph 661 is in 6 shown in two-dimensional xy-position space. The pose graph 661 comprises optimization nodes 671 at the times t.1, t.3, t.5, t.8 and t.11. The times t.1, t.3, t.5, t.8 and t.11 have a fixed time interval from each other and are determined according to a clock rate.

In den verschiedenen hierin offenbarten Szenarien können unterschiedlichste Taktraten berücksichtigt werden. Zum Beispiel kann die Taktrate im Bereich von 1 Hz bis 1000 Hz liegen, bevorzugt im Bereich von 10 Hz bis 100 Hz, besonders bevorzugt im Bereich von 25 Hz bis 50 Hz. Derart kann die IST-Position zügig und mit einer hinreichend hohen Zuverlässigkeit bestimmt werden.In the various scenarios disclosed herein, a wide variety of clock rates can be taken into account. For example, the clock rate can be in the range from 1 Hz to 1000 Hz, preferably in the range from 10 Hz to 100 Hz, particularly preferably in the range from 25 Hz to 50 Hz. In this way, the actual position can be determined quickly and with a sufficiently high level of reliability.

In den verschiedenen hierin offenbarten Szenarien ist es möglich, dass die Taktrate veränderlich ist und flexibel bestimmt wird. Zum Beispiel kann eine höhere Taktrate einer größeren Anzahl von Knoten 671 entsprechen, sodass wiederum die Optimierungszeitdauer zunimmt; deshalb kann es erstrebenswert sein, in Abhängigkeit von einem Überwachen der Optimierungszeitdauer die Taktrate zu bestimmen. Derart kann eine bestimmte Optimierungstaktrate auch für rechenintensive Posen-Graphen 661 gewährleistet werden.In the various scenarios disclosed herein, it is possible that the clock rate is variable and is determined flexibly. For example, a higher clock rate may correspond to a larger number of nodes 671, which in turn increases the optimization time period; therefore, it may be desirable to determine the clock rate depending on monitoring the optimization time period. In this way, a certain optimization clock rate can be guaranteed even for computationally intensive pose graphs 661.

Die Knoten 671 entsprechen den Absolut-Positionsdaten 605, 606 (in 6 mit gestricheltgefüllten Kreisen und Quadraten dargestellt). Die Absolut-Positionsdaten 605, 606 bilden insbesondere Randbedingungen für die Knoten 671. Die Absolut-Positionsdaten 605, 606 werden basierend auf den Roh-Absolut-Positionsdaten 105, 106 bestimmt. Dabei werden die Roh-Absolut-Positionsdaten 105, 106 mit Abtastraten erhalten, die sich von der Taktrate unterscheiden; z.B. werden Roh-Absolut-Positionsdaten 105, 106 zu den Zeitpunkten t.2, t.4, t.4a, t.6, t.7, t.9, t.10 und t.12 erhalten. Die Roh-Absolut-Positionsdaten 105, 106 weisen entsprechende Zeitstempel auf. Deshalb werden die Roh-Absolut-Positionsdaten 105, 106 zum Erhalten der Absolut-Positionsdaten 605, 606 interpoliert (in 6 durch die durchgezogenen Linien 662 dargestellt). Zum Beispiel werden die Roh-Absolut-Positionsdaten 105 zu den Zeitpunkten t.2 und t.4 zum Erhalten der Absolut-Positionsdaten 605 zum Zeitpunkt t.3 interpoliert. Die Interpolation stellt also eine Schätzung dar, wo das entsprechende Positioniersystem zum Zeitpunkt t.3 das Kraftfahrzeug vermutet hätte.The nodes 671 correspond to the absolute position data 605, 606 (in 6 with dashed-filled circles and squares). The absolute position data 605, 606 form in particular boundary conditions for the nodes 671. The absolute position data 605, 606 are determined based on the raw absolute position data 105, 106. The raw absolute position data 105, 106 are obtained with sampling rates that differ from the clock rate; e.g., raw absolute position data 105, 106 are obtained at times t.2, t.4, t.4a, t.6, t.7, t.9, t.10 and t.12. The raw absolute position data 105, 106 have corresponding time stamps. Therefore, the raw absolute position data 105, 106 are interpolated to obtain the absolute position data 605, 606 (in 6 represented by the solid lines 662). For example, the raw absolute position data 105 at times t.2 and t.4 are interpolated to obtain the absolute position data 605 at time t.3. The interpolation thus represents an estimate of where the corresponding positioning system would have expected the motor vehicle to be at time t.3.

Alle Zeitpunkte t.1-t.13 liegen innerhalb des Zeitfensters [t0-T; t0], wobei t0 die IST-Zeit darstellt. T bezeichnet eine Zeitdifferenz. Roh-Absolut-Positionsdaten 105, 106, die nicht innerhalb dieses Zeitfensters liegen, werden verworfen, d.h. nicht in den Posen-Graph 661 übernommen und z.B. aus dem Speicher gelöscht. Dadurch kann die Menge der Knoten 671 des Posen-Graphen 661 begrenzt werden; dadurch wird die zum Optimieren benötigte Zeitdauer reduziert. Gleichzeitig wird die jüngere Vergangenheit der Posen des Kraftfahrzeugs berücksichtigt, so dass die Zuverlässigkeit, mit der die IST-Position 190 abgeschätzt werden kann, vergleichsweise hoch ist.All times t.1-t.13 are within the time window [t0-T; t0], where t0 represents the actual time. T denotes a time difference. Raw absolute position data 105, 106 that are not within this time window are discarded, i.e. not included in the pose graph 661 and e.g. deleted from the memory. This allows the number of nodes 671 of the pose graph 661 to be limited; this reduces the time required for optimization. At the same time, the recent past of the poses of the motor vehicle is taken into account, so that the reliability with which the actual position 190 can be estimated is comparatively high.

In manchen Szenarien kann es vorkommen dass z.B. Odometrie-Positioniersysteme, die Ausgaben mit einer vergleichsweise sehr hohen Abtastrate bereitstellen, Messungen durchführen, die gegenüber dem Zeithorizont t0 in der Zukunft liegen. Dies kann aufgrund einer internen Vorhersage des Odometrie-Positioniersystems vorkommen. Es ist möglich, entsprechende Roh-Odometrie-Positionsdaten beim Erzeugen des Posen-Graphen 661 zu berücksichtigen.In some scenarios, it may happen that, for example, odometry positioning systems that provide outputs with a comparatively very high sampling rate perform measurements that lie in the future compared to the time horizon t0. This may occur due to an internal prediction of the odometry positioning system. It is possible to take corresponding raw odometry position data into account when generating the pose graph 661.

Ferner werden die Roh-Absolut-Positionsdaten 105, 106 basierend auf einer Datendichte der Roh-Absolut-Positionsdaten 105, 106 im Zeitraum und basierend auf der Taktrate selektiv verworfen. Zum Beispiel sind im Zeitbereich t.1-t.6 nur sehr wenige Roh-Absolut-Positionsdaten 106 vorhanden - insbesondere im Vergleich zur Taktrate. Deshalb wären denn die Roh-Absolut-Positionsdaten 106 zum Zeitpunkt t.4a verworfen und beim Erzeugen des Posen-Graphen 661 nicht als Randbedingung z.B. für die Knoten 671 zu den Zeitpunkten t.3 oder t.5 berücksichtigt.Furthermore, the raw absolute position data 105, 106 are selectively discarded based on a data density of the raw absolute position data 105, 106 in the time period and based on the clock rate. For example, in the time range t.1-t.6, only very few raw absolute position data 106 are present - especially in comparison to the clock rate. Therefore, the raw absolute position data 106 would be discarded at time t.4a and not taken into account as a boundary condition when generating the pose graph 661, e.g. for the nodes 671 at the times t.3 or t.5.

In anderen Beispielen können auch die Positionsdaten 106 zum Zeitpunkt t.4a zunächst im Speicher gepuffert verbleiben, aber nicht für das Erzeugen des Posen-Graphen 661 in der gegenwärtigen Iteration berücksichtigt werden. Das Löschen aus dem Speicher kann in einer späteren Iteration erfolgen, sofern keine nicht-zeitsequentiellen Positionsdaten 106 mehr erhalten werden.In other examples, the position data 106 at time t.4a may initially remain buffered in memory, but may not be taken into account for generating the pose graph 661 in the current iteration. Deletion from memory may occur in a later iteration, provided that no more non-time-sequential position data 106 is obtained.

In verschiedenen weiteren Szenarien wäre es zum Beispiel möglich, dass das selektive Verwerfen der verschiedenen Roh-Absolut-Positionsdaten 105, 106 auf der vorgegebenen Optimierungstaktrate basiert; zum Beispiel könnte für höhere (niedrigere) Optimierungstaktrate und eine größere (kleinere) Anzahl von Roh-Absolut-Positionsdaten 105, 106 verworfen werden.In various other scenarios, it would be possible, for example, for the selective discarding of the various raw absolute position data 105, 106 to be based on the predetermined optimization clock rate; for example, for higher (lower) optimization clock rate and a larger (smaller) number of raw absolute position data 105, 106 could be discarded.

Wieder Bezug nehmend auf 5, werden in Schritt 3 Odometrie-Positionsdaten ermittelt. Entsprechende Aspekte sind in Bezug auf 7 illustriert. In 7 sind die aus den Roh-Absolut-Positionsdaten 105, 106 ermittelten Knoten 671 dargestellt, die den Absolut-Positionsdaten 605, 606 entsprechen (wobei in 7 aus Gründen der Übersichtlichkeit die Randbedingungen nicht illustriert sind). Ferner sind in 7 Roh-Odometrie-Positionsdaten 115 dargestellt, die mit einer vergleichsweise hohen Abtastrate erhalten werden; die Abtastrate ist größer als die Taktrate. In verschiedenen beispielhaften Szenarien kann es erforderlich sein, die Roh-Odometrie-Positionsdaten 115 vor dem Einfügen in den Posen-Graph 661 durch eine Koordinaten-Rotation in das Koordinatensystem des Posen-Graph 661 zu überführen (in 7 nicht gezeigt). Die Roh-Odometrie-Positionsdaten 115 werden wiederum durch Interpolation in Odometrie-Positionsdaten 615, die den Kanten 672 des Posen-Graphen 661 entsprechen, überführt.Referring again to 5 , odometry position data are determined in step 3. Corresponding aspects are related to 7 illustrated. In 7 the nodes 671 determined from the raw absolute position data 105, 106 are shown, which correspond to the absolute position data 605, 606 (where in 7 for reasons of clarity the boundary conditions are not illustrated). Furthermore, 7 Raw odometry position data 115 are shown, which are obtained with a comparatively high sampling rate; the sampling rate is greater than the clock rate. In various exemplary scenarios, it may be necessary to transfer the raw odometry position data 115 into the coordinate system of the pose graph 661 by means of a coordinate rotation before inserting it into the pose graph 661 (in 7 not shown). The raw odometry position data 115 are in turn converted by interpolation into odometry position data 615 which correspond to the edges 672 of the pose graph 661.

Entsprechende Techniken, die obenstehend in Bezug auf das Verwerfen von Roh-Absolut-Positionsdaten 105, 106 offenbart sind, können auch auf die Roh-Odometrie-Positionsdaten 115, 116 angewendet werden.Corresponding techniques disclosed above with respect to discarding raw absolute position data 105, 106 may also be applied to the raw odometry position data 115, 116.

Wieder Bezug nehmend auf 5, wird anschließend in Schritt 4 der Posen-Graph 661, d.h. die Knoten 671 und Kanten 672, auf Grundlage der in Schritten 2 und 3 erzeugten Positionsdaten 105, 106, 115, 116 erzeugt. Dazu werden die zu optimierenden Knoten 671 in gemäß der vorgegeben Taktrate bestimmten, zeitlich festen Abständen eingefügt.Referring again to 5 , the pose graph 661, ie the nodes 671 and edges 672, is then generated in step 4 on the basis of the position data 105, 106, 115, 116 generated in steps 2 and 3. For this purpose, the nodes 671 to be optimized are inserted at fixed intervals determined according to the predetermined clock rate.

In 8 ist der zu optimierende Posen-Graph 661 dargestellt; insbesondere ist in Bezug auf die Knoten 661 durch die Verbindung zwischen den schematisch illustrierten Absolut-Positionsdaten 605 und den Optimierungsknoten 671 der Aspekt der Randbedingung grafisch illustriert. Ziel der Optimierung ist es, unter Berücksichtigung der Randbedingungen eine entsprechende Fehlerfunktion global zu minimieren. Die Kanten 672 bilden auch Randbedingungen für die Optimierung der Knoten 671. Der Graph 661 wird zur Optimierung an das Backend 153 übergeben.In 8 the pose graph 661 to be optimized is shown; in particular, with respect to the nodes 661, the aspect of the boundary condition is graphically illustrated by the connection between the schematically illustrated absolute position data 605 and the optimization nodes 671. The aim of the optimization is to globally minimize a corresponding error function while taking the boundary conditions into account. The edges 672 also form boundary conditions for the optimization of the nodes 671. The graph 661 is passed to the backend 153 for optimization.

Wieder Bezug nehmend auf 5: anschließend wird in Schritt 5 der Posen-Graph 661 optimiert. Dann kann angenommen werden, dass der optimierte Posen-Graph 661 einen bestmöglichen Kompromiss aus den verschiedenen Positionsdaten 105, 106, 115, 116 der zu fusionierenden Positioniersysteme 101, 102, 111-113 darstellt.Referring again to 5 : subsequently, in step 5, the pose graph 661 is optimized. It can then be assumed that the optimized pose graph 661 represents the best possible compromise between the various position data 105, 106, 115, 116 of the positioning systems 101, 102, 111-113 to be merged.

In 9 sind Aspekte des optimierten Posen-Graph 661 dargestellt. In 9 sind die nunmehr optimierten Knoten 671 dargestellt, sowie die abgeschätzt IST-Position 190 des Kraftfahrzeugs. Aus 9 ist ersichtlich, dass die IST-Position 190 für den zukünftigen Zeitpunkt t.13 vorhergesagt wird (in 9 durch die gepunktete Linie illustriert). Dadurch kann eine Latenzzeit für das Optimieren des Posen-Graphen 661 kompensiert werden. Durch die Vorhersage der IST-Position 190 kann erreicht werden, dass zu Beginn einer nächsten Iteration gemäß Schritt 1 der 5 bereits eine aktuelle Abschätzung der Position 190 vorliegt.In 9 Aspects of the optimized pose graph 661 are shown. In 9 the now optimized nodes 671 are shown, as well as the estimated actual position 190 of the motor vehicle. 9 it can be seen that the actual position 190 is predicted for the future time t.13 (in 9 illustrated by the dotted line). This can compensate for a latency for optimizing the pose graph 661. By predicting the actual position 190, it can be achieved that at the beginning of a next iteration according to step 1 of the 5 A current estimate of position 190 is already available.

Zur Vorhersage der IST-Position 190 kann in verschiedenen Beispielen eine Interpolation der letzten beiden optimierten Knoten 671 erfolgen. Daraus kann eine Eigenbewegung des Kraftfahrzeugs bestimmt werden und optional ausgegeben werden. Unter der Annahme, dass sich das Kraftfahrzeug in naher Zukunft genauso verhält, wie in der letzten bekannten Vergangenheit, wird diese Eigenbewegung an den jüngsten optimierten Knoten 671 per Vektoraddition angehangen.In order to predict the actual position 190, an interpolation of the last two optimized nodes 671 can be carried out in various examples. From this, the motor vehicle's own motion can be determined and optionally output. Assuming that the motor vehicle behaves in the same way in the near future as it did in the last known past, this own motion is appended to the most recently optimized node 671 by vector addition.

Die IST-Position 190 wird mit einer bestimmten Genauigkeit bestimmt, welche invers proportional zu einer Zuverlässigkeit 191 (in 9 mittels der Fehlerbalken illustriert) ist. Die Zuverlässigkeit 191 kann auch zum Steuern der Fahrerassistenzfunktionalität 129 berücksichtigt werden.The actual position 190 is determined with a certain accuracy, which is inversely proportional to a reliability 191 (in 9 illustrated by the error bars). The reliability 191 can also be taken into account to control the driver assistance functionality 129.

10 illustriert einen Posen-Graphen 661, der mittels der voranstehend beschriebenen Techniken bestimmt werden kann. Der Posen-Graph 661 weist mehrere Knoten 671 auf, die in einem festen zeitlichen Abstand zueinander an den Zeitpunkten t.1, t.2 und t.3 angeordnet sind. 10 illustrates a pose graph 661 that can be determined using the techniques described above. The pose graph 661 has several nodes 671 that are arranged at a fixed time distance from each other at times t.1, t.2 and t.3.

Den verschiedenen Knoten 671 sind jeweils Absolut-Positionsdaten 605, 606 zugeordnet; diese Zuordnung kann in Form von Randbedingungen erfolgen (in 10 durch die vertikalen Kanten des Posen-Graphen 661 dargestellt). Die Absolut-Positionsdaten 605, 606 entsprechen dabei Fixknoten, da ihre Position im Rahmen der Optimierung des Posen-Graphen 661 nicht verändert wird. Dabei können Techniken der Interpolation angewendet werden; Roh-Absolut-Positionsdaten 105, 106 können auf die Absolut-Positionsdaten 605, 606 abgebildet werden, die an den Zeitpunkten t.1, t.2 und t.3 angeordnet sind, die den zu optimierenden Knoten 671 entsprechen. Anschließend können die Kanten 672 des Posen-Graphen 661 erzeugt werden, z.B. basierend auf den Odometrie-Positionsdaten 615.The various nodes 671 are each assigned absolute position data 605, 606; this assignment can be made in the form of boundary conditions (in 10 represented by the vertical edges of the pose graph 661). The absolute position data 605, 606 correspond to fixed nodes, since their position is not changed during the optimization of the pose graph 661. Interpolation techniques can be used; raw absolute position data 105, 106 can be mapped to the absolute position data 605, 606 arranged at the times t.1, t.2 and t.3 that correspond to the nodes 671 to be optimized. The edges 672 of the pose graph 661 can then be generated, e.g. based on the odometry position data 615.

11 illustriert Aspekte in Bezug auf eine Systemmatrix 901. Die Systemmatrix 901, H ist die diejenige Matrix, die während der Optimierung invertiert wird, zum Beispiel mittels eines Gauss-Newton-Verfahrens oder eines Levenberg-Marquardt-Verfahrens. Dies kann dem Lösen folgender Gleichung entsprechen: H Δ x = b

Figure DE102016205193B4_0001
wobei Δx den Aktualisierungsvektor und b den Koeffizientenvektor bezeichnet. Typischerweise wird die Lösung der Gleichung 1 durch Invertieren schneller, wenn die Systemmatrix 901 dünn besetzt ist. 11 illustrates aspects related to a system matrix 901. The system matrix 901, H is the matrix that is inverted during optimization, for example by means of a Gauss-Newton method or a Levenberg-Marquardt method. This can correspond to solving the following equation: H Δ x = b
Figure DE102016205193B4_0001
where Δx denotes the update vector and b the coefficient vector. Typically, the solution of equation 1 becomes faster by inversion when the system matrix 901 is sparse.

Die Systemmatrix 901 umfasst Diagonaleinträge 902, welche von den Absolut-Positionsdaten 605, 606 und den Odometrie-Positionsdaten 615 jeweils als Randbedingungen beeinflusst werden. Die Nicht-Diagonaleinträge 903 werden nur von den Odometrie-Positionsdaten 615 als Randbedingungen beeinflusst.The system matrix 901 includes diagonal entries 902, which are each influenced by the absolute position data 605, 606 and the odometry position data 615 as boundary conditions. The non-diagonal entries 903 are only influenced by the odometry position data 615 as boundary conditions.

Sofern neue Knoten 671 jeweils dann eingefügt werden, wenn neue Absolut-Positionsdaten 605, 606 und/oder neue Odometrie-Positionsdaten 615 verfügbar sind, resultiert eine verzweigter Struktur des Posen-Graphen 661 und damit auch eine verzweigter Struktur der Systemmatrix 901. Deshalb ist es in verschiedenen Ausführungsformen erstrebenswert, von Zeit zu Zeit eine Marginalisierung des Posen-Graphen 661 durchzuführen.If new nodes 671 are inserted whenever new absolute position data 605, 606 and/or new odometry position data 615 are available, a branched structure of the pose graph 661 and thus also a branched structure of the system matrix 901 results. Therefore, in various embodiments, it is desirable to carry out a marginalization of the pose graph 661 from time to time.

Im Folgenden werden Techniken zur Marginalisierung im Detail beschrieben. Es wird ferner dargelegt, dass ein Fixknoten als Ersatz für einen ausgewählten bisherigen Knoten verwendet werden kann. Der Fixknoten kann die gleiche Information beinhalten wie das Schur-Komplement. Gleichzeitig kann ein solcher Fixknoten den Vorteil aufweisen, dass dieser Fixknoten explizit im Design des Posen-Graphen 661 wieder gefunden werden kann und dadurch gezielt manipuliert werden kann.In the following, techniques for marginalization are described in detail. It is also explained that a fixed node can be used as a replacement for a selected previous node. The fixed node can contain the same information as the Schur complement. At the same time, such a fixed node can have the advantage that this fixed node can be explicitly found in the design of the Posen graph 661 and can therefore be manipulated in a targeted manner.

Herkömmlicherweise wird das Schur-Komplement auf die Gleichung 1 angewendet, um Zustandsvariablen aus dem Optimierungsproblem zu entfernen. Im Posen-Graphen 661 entspricht diese Operation dem Entfernen von Knoten 671. Durch das Schur-Komplement ist sichergestellt, dass vor und nach der Anwendung die restlichen Knoten 671 den gleichen Schätzwert behalten. Würde man die Zustandsvariablen einfach löschen, hätte man einen anderen Schätzwert; dies bedeutet, dass das einfache Entfernen eines Knoten 671 die Abschätzung für die Position des Fahrzeugs verfälschen würde. Der Zustandsvektor besteht in einem Zeitfenster-Verfahren aus m Zustandsvariablen. Es wird nachfolgend gezeigt, wie man einen einzelnen Knoten 671/eine einzelne Zustandsvariable marginalisieren kann. Sofern mehrere Knoten 671/Zustandsvariablen marginalisiert werden sollen, ist es möglich, solche Techniken mehrfach hintereinander anzuwenden.Traditionally, the Schur complement is applied to equation 1 to remove state variables from the optimization problem. In the Posen graph 661, this operation corresponds to removing nodes 671. The Schur complement ensures that the remaining nodes 671 retain the same estimate before and after the application. If the state variables were simply deleted, a different estimate would be obtained; this means that simply removing a node 671 would distort the estimate for the position of the vehicle. The state vector consists of m state variables in a time window method. It is shown below how a single node 671/a single state variable can be marginalized. If several nodes 671/state variables are to be marginalized, it is possible to apply such techniques several times in succession.

Nachfolgend wird eine beispielhafte Herleitung einer Möglichkeit, den Fixknoten zu bestimmen, beschrieben. Diese ist rein beispielhaft. Es sind auch andere Techniken zum Bestimmen des Fixknotens möglich. Es ist nützlich, für die Herleitung zunächst mit einem Posen-Graphen 661 zu beginnen, der lediglich zwei Knoten 671 und mehrere Randbedingungen aufgrund von Odometrie-Positionsdaten 615 und Absolut-Positionsdaten 605, 606 aufweist. Eine solche Situation ist in 12 dargestellt. In dem Beispiel der 12 wird ein Knoten 971 (zum Beispiel in 13 mit xa bezeichnet) ignoriert, vergleiche 12 und 13. Dies wird getan, um zu sehen, wie die verschiedenen Knoten 671, 971 sich auf die Systemmatrix 901 auswirken. Im resultierenden Posen-Graphen 661 G small

Figure DE102016205193B4_0002
für 12, in dem die übrigen Knoten 671, xb, xc miteinander verbunden sind und die zusätzliche Randbedingungen 605, 606, 615 aufweisen, ist die zugehörige Optimierungsgleichung: [ H b b small H b c small H c b small H c c small ] Δ x s m a l l = [ b b small b c small ] .
Figure DE102016205193B4_0003
An exemplary derivation of a possibility for determining the fixed node is described below. This is purely exemplary. Other techniques for determining the fixed node are also possible. For the derivation, it is useful to start with a pose graph 661 that has only two nodes 671 and several boundary conditions based on odometry position data 615 and absolute position data 605, 606. Such a situation is in 12 In the example of 12 a node 971 (for example in 13 denoted by x a ) is ignored, compare 12 and 13 . This is done to see how the different nodes 671, 971 affect the system matrix 901. In the resulting pose graph 661 G small
Figure DE102016205193B4_0002
for 12 , in which the remaining nodes 671, x b , x c are connected to each other and have the additional boundary conditions 605, 606, 615, the corresponding optimization equation is: [ H b b small H b c small H c b small H c c small ] Δ x s m a l l = [ b b small b c small ] .
Figure DE102016205193B4_0003

Wenn der zusätzliche Knoten 971, xa berücksichtigt wird, verändert sich die Struktur des Posen-Graphen (vergleiche 13), als auch die Struktur der Systemmatrix 901. Sei zusätzlich xa mit mehreren globalen Fixknoten x i verbunden, die Absolut-Positionsdaten 605 entsprechen, die die Informationsmatrizen Ω̅ i besitzen, sodass Ω̅ = -iΩ̅i.If the additional node 971, x a is taken into account, the structure of the Posen graph changes (compare 13 ), as well as the structure of the system matrix 901. In addition, let x a with several global fixed nodes x i corresponding to the absolute position data 605 having the information matrices Ω ̅ i such that Ω ̅ = -i Ω̅ i .

Außerdem soll es eine oder mehrere Kanten 672 zwischen Xa und Xb mit den Informationsmatrizen Ω ^ a , b j

Figure DE102016205193B4_0004
geben, so dass Ω ^ = j Ω ^ a , b j .
Figure DE102016205193B4_0005
Der resultierende Posen-Graph 661 G full
Figure DE102016205193B4_0006
für das Beispiel der 13 wird definiert durch die Systemmatrix 901: H full = [ H a a full H a b full H b a full H b b full H b c full H c b full H c c full ] = [ Ω ¯ + Ω ^ Ω ^ Ω ^ H b b small + Ω ^ H b c small H c b small H c c small ]
Figure DE102016205193B4_0007
und dem Koeffizientenvektor b f u l l = [ b a full b b full b c full ] = [ i Ω ¯ i e i ¯ , a + j Ω ^ a , b j e a , b b b small + j Ω ^ a , b j e a , b b c small ] ,
Figure DE102016205193B4_0008
wobei ei̅,a der Fehler ist zwischen den Fixknoten x̅i für die Absolut-Positionsdaten 605, 606 und dem zu optimierenden Knoten 971 Xa. Der Einfachheit halber werden alle Randbedingungen aufgrund von Odometrie-Positionsdaten 615 abgekürzt mit b rel = j Ω ^ a , b j e a , b .
Figure DE102016205193B4_0009
In addition, there should be one or more edges 672 between X a and X b with the information matrices Ω ^ a , b j
Figure DE102016205193B4_0004
so that Ω ^ = j Ω ^ a , b j .
Figure DE102016205193B4_0005
The resulting pose graph 661 G full
Figure DE102016205193B4_0006
for the example of 13 is defined by the system matrix 901: H full = [ H a a full H a b full H b a full H b b full H b c full H c b full H c c full ] = [ Ω ¯ + Ω ^ Ω ^ Ω ^ H b b small + Ω ^ H b c small H c b small H c c small ]
Figure DE102016205193B4_0007
and the coefficient vector b e u l l = [ b a full b b full b c full ] = [ i Ω ¯ i e i ¯ , a + j Ω ^ a , b j e a , b b b small + j Ω ^ a , b j e a , b b c small ] ,
Figure DE102016205193B4_0008
where e i̅, a is the error between the fixed nodes x̅ i for the absolute position data 605, 606 and the node 971 to be optimized X a . For the sake of simplicity, all boundary conditions based on odometry position data 615 are abbreviated to b rel = j Ω ^ a , b j e a , b .
Figure DE102016205193B4_0009

Der herkömmliche Weg, um den Knoten 971, Xa „weg zu marginalisieren“, ist es, das Schur-Komplement auf Hfull und bfull zu berechnen. Dies führt zu der marginalisierten Systemmatrix 901 Hmarg, welche identisch ist zu Hsmall außer dass der linke obere Block sich ändert zu H b b marg = H b b small + Ω ^ Ω ^ ( Ω ¯ + Ω ^ ) 1 Ω ^

Figure DE102016205193B4_0010
The conventional way to “marginalize away” node 971, X a , is to compute the Schur complement on H full and b full . This leads to the marginalized system matrix 901 H marg , which is identical to H small except that the upper left block changes to H b b margin = H b b small + Ω ^ Ω ^ ( Ω ¯ + Ω ^ ) 1 Ω ^
Figure DE102016205193B4_0010

Der dazugehörige marginalisierte Koeffizientenvektor ist gegeben durch b marg = [ b b full + Ω ^ ( Ω ¯ + Ω ^ ) 1 b a full   b c small ] .

Figure DE102016205193B4_0011
The corresponding marginalized coefficient vector is given by b margin = [ b b full + Ω ^ ( Ω ¯ + Ω ^ ) 1 b a full b c small ] .
Figure DE102016205193B4_0011

Das bisherige Teilergebnis gibt vor, wie die Systemmatrix 901 nach der Marginalisierung aussehen kann. Dies wird benutzt, um den Fixknoten 972 (cf. 14) herzuleiten.The partial result so far indicates how the system matrix 901 can look after marginalization. This is used to determine the fixed node 972 (cf. 14 ).

In einem solchen Fall kann der Fixknoten 972 das Schur-Komplement 972 des Knotens 971 darstellen.In such a case, the fixed node 972 may represent the Schur complement 972 of the node 971.

Nachfolgend wird eine Gleichung hergeleitet, mit der die Pose und die Unsicherheit des Fixknotens 972, x̅p berechnet werden kann, um ihn in den Posen-Graphen 661 anstelle des Knotens 971, Xa einzufügen. Wenn entweder Knoten 971, Xa nicht mit mindestens einem Fixknoten, der Absolut-Positionsdaten 605, 606 entspricht, oder wenn Knoten 971, Xa nicht über eine Kante 672 mit dem benachbarten Knoten 671, Xb verbunden ist, beeinflusst Knoten 971, X a den Knoten 671, Xb nicht. In diesem Fall muss kein Fixknoten 972 berechnet werden, da auch die Marginalisierung äquivalent dazu ist, dass der Knoten 971 einfach gelöscht wird. Im Allgemeinen Fall jedoch ist dies nicht der Fall.An equation is derived below that can be used to calculate the pose and uncertainty of the fixed node 972, x̅ p in order to insert it into the pose graph 661 instead of the node 971, X a . If either node 971, X a is not connected to at least one fixed node that corresponds to absolute position data 605, 606, or if node 971, X a is not connected to the neighboring node 671, X b via an edge 672, node 971, X a does not influence the node 671, X b . In this case, no fixed node 972 needs to be calculated, since the marginalization is also equivalent to simply deleting the node 971. In the general case, however, this is not the case.

Als erstes wird der Knoten 971, Xa und alle zugehörigen Fixknoten, die Absolut-Positionsdaten 605, 606 entsprechen, und alle Kanten 672 zwischen dem Knoten 971, Xa und dem Knoten 671, Xb, entfernt. Wird nun der Fixknoten 972, x̅p mit der Informationsmatrix Ω̅ p zu dem Knoten 671, Xb, verbunden, wird der Graph G prior

Figure DE102016205193B4_0012
erhalten (siehe 14). Der vorangestellte Fixknoten 972, Xp führt zu einem zusätzlichen Summanden in der Systemmatrix Hprior von G p r i o r :
Figure DE102016205193B4_0013
. H prior = [ H b b small + Ω ¯ p H b c small H c b small H c c small ] .
Figure DE102016205193B4_0014
First, the node 971, X a and all associated fixed nodes that correspond to absolute position data 605, 606, and all edges 672 between the node 971, X a and the node 671, X b , are removed. If the fixed node 972, x̅ p is now connected to the information matrix Ω ̅ p to the node 671, X b , the graph is G prior
Figure DE102016205193B4_0012
received (see 14 ). The preceding fixed node 972, X p leads to an additional summand in the system matrix H prior of G p r i O r :
Figure DE102016205193B4_0013
. H prior = [ H b b small + Ω ¯ p H b c small H c b small H c c small ] .
Figure DE102016205193B4_0014

Nun wid gezeigt, dass die Wahl von Ω ¯ p 1 = Ω ^ 1 + Ω ^ 1

Figure DE102016205193B4_0015
äquivalent ist zum Anbringen des Schur-Komplements bezüglich der resultierenden Unsicherheit. Es wird Äquivalenz zwischen den oberen linken Blöcken von Hmarg und Hprior gefordert:   Ω ^ Ω ^ ( Ω ¯ + Ω ^ ) 1 Ω ^ Ω ^ Ω ^ ( Ω ¯ + Ω ^ ) 1 Ω ^   Ω ^ ( Ω ^ + Ω ¯ ) 1 ( Ω ^ + Ω ¯ ) Ω ^ = ( Ω ^ 1 + Ω ¯ 1 ) 1 Ω ^ =   Ω ¯ ( Ω ^ + Ω ¯ ) 1 Ω ^ = Ω ^ = Ω ^ .
Figure DE102016205193B4_0016
Now it is shown that the choice of Ω ¯ p 1 = Ω ^ 1 + Ω ^ 1
Figure DE102016205193B4_0015
is equivalent to applying the Schur complement with respect to the resulting uncertainty. Equivalence is required between the upper left blocks of H marg and H prior : Ω ^ Ω ^ ( Ω ¯ + Ω ^ ) 1 Ω ^ Ω ^ Ω ^ ( Ω ¯ + Ω ^ ) 1 Ω ^ Ω ^ ( Ω ^ + Ω ¯ ) 1 ( Ω ^ + Ω ¯ ) Ω ^ = ( Ω ^ 1 + Ω ¯ 1 ) 1 Ω ^ = Ω ¯ ( Ω ^ + Ω ¯ ) 1 Ω ^ = Ω ^ = Ω ^ .
Figure DE102016205193B4_0016

Diese Herleitung zeigt, dass die obige Wahl für Ω̅ p unsere Anforderungen erfüllt. Die nächste Frage ist, mit welcher Posenschätzung bzw. Position der Fixknoten 972, x̅p initialisiert wird.This derivation shows that the above choice for Ω ̅ p satisfies our requirements. The next question is with which pose estimate or position of the fixed node 972, x̅ p is initialized.

Nun wird die Position x̅p des Fixknotens 972, x̅p so festlegt, dass alle Knoten 671 nach der Marginalisierung noch auf die selben Positionen wie vorher geschätzt werden. Dafür wird Gleichheit zwischen bmarg und bprior gefordert. Eine genauere Analyse von bmarg zeigt b marg = [ b b small + b rel + Ω ^ ( Ω ¯ + Ω ^ ) 1 b a full  b c small ] .

Figure DE102016205193B4_0017
Now the position x̅ p of the fixed node 972, x̅ p is determined in such a way that all nodes 671 are estimated to have the same positions after marginalization as before. For this, equality between b marg and b prior is required. A more detailed analysis of b marg shows b margin = [ b b small + b rel + Ω ^ ( Ω ¯ + Ω ^ ) 1 b a full b c small ] .
Figure DE102016205193B4_0017

Das Hinzufügen eines Fixknotens 972, x̅p mit der Posenschätzung x̅p und Unsicherheit Ω̅ p -1̅-1+ Ω̂-1 resultiert in b prior = [ b b small + Ω ¯ p ( x b x ¯ p )  b c small ] .

Figure DE102016205193B4_0018
Adding a fixed node 972, x̅ p with the pose estimate x̅ p and uncertainty Ω ̅ p -1̅-1 + Ω ̂-1 results in b prior = [ b b small + Ω ¯ p ( x b x ¯ p ) b c small ] .
Figure DE102016205193B4_0018

Fordern von Gleichheit zwischen bmarg und bprior lasst uns nach x̅p auflösen: x ¯ p = x b Ω ¯ p 1 [ b b marg b b small ] .

Figure DE102016205193B4_0019
Requiring equality between b marg and b prior let us solve for x̅ p : x ¯ p = x b Ω ¯ p 1 [ b b margin b b small ] .
Figure DE102016205193B4_0019

Dies ist die analytische Lösung für x̅p . Damit kann der Fixknoten 972, x̅p konstruiert werden, nämlich seine Unsicherheit und seine Position. Das Anfügen des Fixknotens 972 mit dieser Position und Unsicherheit an den Posen-Graphen 661 führt zu den gleichen Effekten wie das Anwenden der Marginalisierung mit Hilfe des Schur-Komplements.This is the analytical solution for x̅ p . This allows the fixed node 972, x̅ p , namely its uncertainty and its position, to be constructed. Attaching the fixed node 972 with this position and uncertainty to the Posen graph 661 leads to the same effects as applying marginalization using the Schur complement.

Die nach Gleichung 11 berechnete Position des Fixknotens 972 kann im Allgemeinen abweichen von der Position des gelöschten Knotens 971.The position of the fixed node 972 calculated according to equation 11 may generally differ from the position of the deleted node 971.

Da der Fixknoten 972 transparent in dem Posen-Graphen 661 hinterlegt ist, kann es möglich sein, vor dem erneuten Durchführen einer Optimierung verschiedener Eigenschaften des Fixknotens 972 zu verändern. Zum Beispiel wäre es möglich, die Verlustfunktion der Kante 973 und/oder die Unsicherheit des Fixknotens 972 anzupassen. Beispiele für Verlustfunktionen umfassen: Huber-Loss-Funktion und m-Estimator. Eine derartige Anpassung kann es ermöglichen, besonders genaue Ergebnisse der Sensorfusion zu erzielen. Zum Beispiel kann die Optimierung den Fixknoten 972 umso stärker berücksichtigen, je geringer dessen Unsicherheit ist. Generell kann das Ortungsresultat nach Optimierung des Fixknotens 972 näher an solchen Quellen liegen, die eine geringere Unsicherheit aufweisen. Die Verlustfunktion ist eine Technik, die es ermöglicht, die Unsicherheit zu verändern. Basierend darauf, wie gut bestimmte Positionsdaten zu weiteren Positionsdaten passen, kann die Unsicherheit skaliert werden.Since the fixed node 972 is stored transparently in the pose graph 661, it may be possible to change various properties of the fixed node 972 before re-performing an optimization. For example, it would be possible to adjust the loss function of the edge 973 and/or the uncertainty of the fixed node 972. Examples of loss functions include: Huber loss function and m-estimator. Such an adjustment can make it possible to achieve particularly accurate sensor fusion results. For example, the optimization can take the fixed node 972 into account more the lower its uncertainty. In general, the location result after optimizing the fixed node 972 can be closer to sources that have a lower uncertainty. The loss function is a technique that makes it possible to change the uncertainty. Based on how well certain position data fits with other position data, the uncertainty can be scaled.

Eine Verlustfunktion ist lediglich eine beispielhafte Möglichkeit, um die Unsicherheit zu skalieren. Weitere Techniken, um dies Unsicherheit zu bestimmen, umfassen zum Beispiel Karten-basierte Techniken: dabei kann das Vorwissen über eine Position, das durch den Fixknoten 972 ausgedrückt wird, in eine Straßenkarte eingezeichnet werden. Es kann dann analysiert werden, wie gut dieses Vorwissen zu der Karte passt. Liegt der Fixknoten 972 beispielsweise neben der Straße, zum Beispiel in einem See, dann wäre die Unsicherheit dieses Fixknotens 972 stark erhöht. Dies ist der Fall, da die entsprechende Position unplausibel ist. Anders wäre die Unsicherheit einzuschätzen, wenn die Position des Fixknotens 972 auf einem Fahrstreifen liegt und dieser Fahrstreifen einer Straße zugeordnet ist, die in der Vergangenheit befahren wurde. Dann wäre zum Beispiel die Unsicherheit nicht zu erhöhen. Es ist also möglich, die Unsicherheit unter Berücksichtigung von Expertenwissen und/oder Kontextwissen anzupassen.A loss function is just one example of how to scale the uncertainty. Other techniques for determining this uncertainty include, for example, map-based techniques: the prior knowledge about a position, which is expressed by the fixed node 972, can be plotted on a road map. It can then be analyzed how well this prior knowledge fits the map. If the fixed node 972 is located next to the road, for example in a lake, then the uncertainty of this fixed node 972 would be greatly increased. This is the case because the corresponding position is implausible. The uncertainty would be assessed differently if the position of the fixed node 972 is on a lane and this lane is assigned to a road that was traveled on in the past. Then, for example, the uncertainty would not be increased. It is therefore possible to adjust the uncertainty taking into account expert knowledge and/or context knowledge.

Aus Obenstehendem ist ersichtlich, dass der Posen-Graph 661 in Bezug auf den Knoten 971 durch Bestimmen des Fixknotens 972 marginalisiert werden kann. In dem Beispiel, welches in Bezug auf die 12-14 beschrieben wurde, wurde dabei der Knoten 971 ausgewählt, der dem ältesten Zeitpunkt t.1 entspricht. In anderen Fällen könnte jedoch auch ein anderer Knoten 671, 971 ausgewählt werden.From the above it can be seen that the pose graph 661 can be marginalized with respect to the node 971 by determining the fixed node 972. In the example which is shown with respect to the 12-14 described, node 971 was selected, which corresponds to the oldest time t.1. In other cases, however, another node 671, 971 could be selected.

Dabei können die Techniken, die obenstehend mit Bezug auf die 12-14 beschrieben wurden, wiederholt nacheinander ausgeführt werden, um weitere Knoten 671 zu entfernen. Zum Beispiel ist in Bezug auf 15 ein Szenario dargestellt, bei dem der Knoten 671, xb ausgewählt und entfernt wurde und dafür ein weiterer Fixknoten 972 zum Posen-Graphen 661 hinzugefügt wurde.The techniques described above with reference to the 12-14 described above may be executed repeatedly one after the other to remove further nodes 671. For example, with respect to 15 a scenario is shown in which the node 671, x b was selected and removed and another fixed node 972 was added to the pose graph 661.

16 ist ein Flussdiagramm eines Verfahrens gemäß verschiedener Ausführungsformen. Zunächst erfolgt in Schritt 1001 das Erzeugen eines Posen-Graphen 661. Insbesondere kann in Schritt 1001 ein Posen-Graph 661 mit Ketten-Struktur erzeugt werden, wie oben stehend beschrieben. 16 is a flow chart of a method according to various embodiments. First, in step 1001, a pose graph 661 is generated. In particular, in step 1001, a pose graph 661 with a chain structure can be generated, as described above.

Dann erfolgt in Schritt 1002 das Optimieren des Posen-Graphen 661. Dabei kann die Position der Knoten 671 verändert werden. Das Optimieren berücksichtigt Randbedingungen, die durch die Kanten 672 bzw. die Fixknoten, die den Absolut-Positionsdaten 605, 606 entsprechen. Beim Optimieren wird die Pose von Fixknoten nicht verändert.Then, in step 1002, the pose graph 661 is optimized. The position of the nodes 671 can be changed. The optimization takes into account boundary conditions that are determined by the edges 672 or the fixed nodes that correspond to the absolute position data 605, 606. During optimization, the pose of fixed nodes is not changed.

Anschließend wird in Schritt 1003 überprüft, ob zwischenzeitlich weitere Positionsdaten 605, 606, 615 verfügbar geworden sind. Dabei kann zum Beispiel eine zwischenzeitliche Abtastrate, mit der die Position ihrer Systeme 101, 102, 111, 112 Roh-Positionsdaten 105, 106, 115, 116 bereitstellen, berücksichtigt werden.Subsequently, in step 1003, it is checked whether further position data 605, 606, 615 have become available in the meantime. For example, an interim sampling rate with which the position of their systems 101, 102, 111, 112 provide raw position data 105, 106, 115, 116 can be taken into account.

Sind neue Positionsdaten 605, 606, 615 verfügbar, wird ein neuer Knoten 671 und/oder eine neue Kante 672 zu dem Posen-Graphen 661 hinzugefügt, siehe Schritt 1004.If new position data 605, 606, 615 are available, a new node 671 and/or a new edge 672 is added to the pose graph 661, see step 1004.

Dann wird in Schritt 1005 überprüft, ob eine Marginalisierung des Posen-Graphen 661 durchgeführt werden soll. Zum Beispiel kann in Schritt 1005 eine Anzahl der Knoten 671 des Posen-Graphen 661 berücksichtigt werden. Überschreitet zum Beispiel die Anzahl einen vorgegebenen Schwellenwert, so kann die Marginalisierung durchgeführt werden.Then, in step 1005, it is checked whether a marginalization of the pose graph 661 should be carried out. For example, in step 1005, a number of nodes 671 of the pose graph 661 can be taken into account. If, for example, the number exceeds a predetermined threshold value, the marginalization can be carried out.

Wird in Schritt 1005 bestimmt, dass die Marginalisierung nicht durchgeführt werden soll, so werden Schritte 1002-1004 erneut durchgeführt. Andernfalls wird Schritt 1006 durchgeführt. In Schritt 1006 wird der Fixknoten 972 für einen ausgewählten Knoten 971 bestimmt und der ausgewählte Knoten 971 wird aus dem Posen-Graphen 661 entfernt. Der Fixknoten 972 wird dem Posen-Graphen 661 hinzugefügt. Dann wird das Optimieren in Schritt 1002 erneut durchgeführt, wobei die Pose des Fixknotens 972 im Rahmen der Optimierung nicht verändert wird.If it is determined in step 1005 that the marginalization should not be performed, steps 1002-1004 are performed again. Otherwise, step 1006 is performed. In step 1006, the fixed node 972 is determined for a selected node 971 and the selected node 971 is removed from the pose graph 661. The fixed node 972 is added to the pose graph 661. Then the optimization is performed again in step 1002, whereby the pose of the fixed node 972 is not changed during optimization.

Der Fixknoten 972 kann z.B. basierend auf Elementen bestimmt werden, die aus folgender Gruppe ausgewählt sind: die Position des ausgewählten Knotens 971; mindestens eine Kante 672, die mit dem ausgewählten Knoten verbunden ist; Absolut-Positionsdaten 605, 606, die dem ausgewählten Knoten 971 entsprechen und; Optimierungs-Knoten, mit denen der ausgewählte Knoten 971 direkt verbunden ist (sh. Gleichung 11). Gl. 11 enthält die Terme b b m a r g u n d   b b s m a l l

Figure DE102016205193B4_0020
Der erstere wiederum beinhaltet brelI, der aus den Nebenbedingungen der Odometriekanten, die mit dem zu marginalisierenden Knoten verbunden sind, gewonnen wurden. Außerdem enthält er b a f u l l
Figure DE102016205193B4_0021
der aus den Fixknoten und den Odometriekanten, die mit dem zu entfernenden Knoten verbunden sind, gewonnen wurde. Es wäre auch möglich, dass der Fixknoten 972 basierend auf einem weiteren Fixknoten, der über eine Kante 973 mit dem ausgewählten Knoten 971 verbunden ist, bestimmt wird (vgl. 14 und 15).The fixed node 972 can be determined, for example, based on elements selected from the following group: the position of the selected node 971; at least one edge 672 connected to the selected node; absolute position data 605, 606 corresponding to the selected node 971 and; optimization nodes to which the selected node 971 is directly connected (see equation 11). Equation 11 contains the terms b b m a r G u n d b b s m a l l
Figure DE102016205193B4_0020
The former in turn contains b relI , which is obtained from the constraints of the odometry edges connected to the node to be marginalized. It also contains b a e u l l
Figure DE102016205193B4_0021
which was obtained from the fixed nodes and the odometry edges that are connected to the node to be removed. It would also be possible for the fixed node 972 to be determined based on another fixed node that is connected to the selected node 971 via an edge 973 (cf. 14 and 15 ).

Selbstverständlich können die Merkmale der vorab beschriebenen Ausführungsformen und Aspekte der Erfindung miteinander kombiniert werden. Insbesondere können die Merkmale nicht nur in den beschriebenen Kombinationen, sondern auch in anderen Kombinationen oder für sich genommen verwendet werden, ohne das Gebiet der Erfindung zu verlassen.Of course, the features of the embodiments and aspects of the invention described above can be combined with one another. In particular, the features can be used not only in the combinations described, but also in other combinations or on their own, without departing from the scope of the invention.

Z.B. wurden voranstehend verschiedenste Beispiele in Bezug auf das Erhalten der geschätzten Position aus dem Optimieren des Posen-Graphen beschrieben. Alternativ oder zusätzlich kann es möglich sein, eine geschätzte Orientierung bzw. Odometrie des Kraftfahrzeugs aus dem Optimieren des Posen-Graphen zu erhalten und z.B. im Rahmen des Steuerns der Fahrerassistenzfunktionalität zu berücksichtigen.For example, various examples were described above with regard to obtaining the estimated position from optimizing the pose graph. Alternatively or additionally, it may be possible to obtain an estimated orientation or odometry of the motor vehicle from optimizing the pose graph and to take this into account, for example, when controlling the driver assistance functionality.

Z.B. wurden voranstehend verschiedenste Beispiele in Bezug auf das Steuern einer Fahrerassistenzfunktionalität für autonomes Fahren beschrieben. Alternativ oder zusätzlich können auch andere Fahrerassistenzfunktionalitäten gesteuert werden, z.B. teil- oder hochautomatisierte Fahrtlösungen, etc.For example, various examples were described above with regard to controlling a driver assistance functionality for autonomous driving. Alternatively or additionally, other driver assistance functionalities can also be controlled, e.g. partially or highly automated driving solutions, etc.

BezugszeichenlisteList of reference symbols

t.1 - t.13t.1 - t.13
Zeitpunkttime
1 - 51 - 5
SchrittStep
101101
Absolut-PositioniersystemAbsolute positioning system
102102
Absolut-PositioniersystemAbsolute positioning system
111111
Odometrie-PositioniersystemOdometry positioning system
112112
Odometrie-PositioniersystemOdometry positioning system
113113
Odometrie-PositioniersystemOdometry positioning system
121121
Schnittstelleinterface
122122
Schnittstelleinterface
123123
Prozessorprocessor
124124
Speichermemory
129129
FahrerassistenzDriver assistance
151151
OrtungsfusionLocation fusion
152152
GraphenverwaltungGraph management
153153
Backend, OptimierungBackend, optimization
190190
Ist-PositionActual position
191191
Zuverlässigkeitreliability
201201
ZeitintervallTime interval
202202
AbtastrateSampling rate
203203
UnterbrechungInterruption
105, 106105, 106
Roh-Absolut-PositionsdatenRaw absolute position data
115, 116115, 116
Roh-Odometrie-PositionsdatenRaw odometry position data
615615
Odometrie-PositionsdatenOdometry position data
661661
Posen-GraphPose graph
662662
Interpolationinterpolation
671671
Knotennode
672672
KantenEdge
605, 606605, 606
Absolut-PositionsdatenAbsolute position data
901901
SystemmatrixSystem matrix
902, 903902, 903
Einträge der SystemmatrixEntries of the system matrix
971971
Ausgewählter KnotenSelected node
972972
FixknotenFixed knot
973973
KanteEdge
1001-10061001-1006
SchrittStep

Claims (10)

Verfahren zum Marginalisieren eines Posen-Graphen (661), das umfasst: - für jeden von mehreren Zeitpunkten (t.1 - t.12): jeweils Ermitteln von Odometrie-Positionsdaten (615) einer beweglichen Maschine basierend auf einer Ausgabe mindestens eines Odometrie-Positioniersystems (111, 112), - für jeden der mehreren Zeitpunkte (t.1 - t.12): jeweils Ermitteln von Absolut-Positionsdaten (605, 606) der Maschine basierend auf einer Ausgabe mindestens eines Absolut-Positioniersystems (101, 102), - Erzeugen (152) des Posen-Graphen (661) mit Kanten (672), die den Odometrie-Positionsdaten (615) entsprechen, und mit Knoten (671, 971), die den Absolut-Positionsdaten (605, 606) entsprechen, - Optimieren (153, 1002) des Posen-Graphen (661) zum Erhalten einer geschätzten Position (190) der Maschine, dadurch gekennzeichnet, dass das Verfahren weiterhin umfasst: - nach dem Optimieren (153, 1002): Auswählen eines Knotens (971) des Posen-Graphen (661), - für den ausgewählten Knoten (971): Bestimmen eines Fixknotens (972) des Posen-Graphen (661), - Entfernen des ausgewählten Knotens (971) aus dem Posen-Graph (661) und Ersetzen des ausgewählten Knotens (971) durch den Fixknoten (972).Method for marginalizing a pose graph (661), comprising: - for each of a plurality of points in time (t.1 - t.12): determining odometry position data (615) of a movable machine based on an output of at least one odometry positioning system (111, 112), - for each of the plurality of points in time (t.1 - t.12): determining absolute position data (605, 606) of the machine based on an output of at least one absolute positioning system (101, 102), - generating (152) the pose graph (661) with Edges (672) corresponding to the odometry position data (615) and with nodes (671, 971) corresponding to the absolute position data (605, 606), - optimizing (153, 1002) the pose graph (661) to obtain an estimated position (190) of the machine, characterized in that the method further comprises: - after optimizing (153, 1002): selecting a node (971) of the pose graph (661), - for the selected node (971): determining a fixed node (972) of the pose graph (661), - removing the selected node (971) from the pose graph (661) and replacing the selected node (971) with the fixed node (972). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Fixknoten (972) basierend auf Elementen bestimmt wird, die aus folgender Gruppe ausgewählt sind: die Position des ausgewählten Knotens (971); mindestens eine Kante (672), die mit dem ausgewählten Knoten (971) verbunden ist; Absolut-Positionsdaten (605, 606), die dem ausgewählten Knoten (971) entsprechen; und die Position eines weiteren Fixknotens (972), der über eine Kante (973) mit dem ausgewählten Knoten (971) verbunden ist.Procedure according to Claim 1 , characterized in that the fixed node (972) is determined based on elements selected from the following group: the position of the selected node (971); at least one edge (672) connected to the selected node (971); absolute position data (605, 606) corresponding to the selected node (971); and the position of another fixed node (972) connected to the selected node (971) via an edge (973). Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Fixknoten (972) ein Schur-Komplement des ausgewählten Knotens (971) darstellt.Procedure according to Claim 1 or 2 , characterized in that the fixed node (972) represents a Schur complement of the selected node (971). Verfahren nach einem der voranstehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren weiterhin umfasst: - nach dem Entfernen und Ersetzen des ausgewählten Knotens (971) durch den Fixknoten (972): erneutes Optimieren (153, 1002) des Posen-Graphen (661) zum Erhalten einer weiteren geschätzten Position (190) der Maschine, wobei die Position des Fixknotens (972) gegenüber dem erneuten Optimieren unveränderlich ist, wobei der Fixknoten (972) über eine Kante (973) mit einem benachbarten Knoten (671) des Posen-Graphen (661) verbunden ist.Method according to one of the preceding claims, characterized in that the method further comprises: - after removing and replacing the selected node (971) by the fixed node (972): re-optimizing (153, 1002) the pose graph (661) to obtain a further estimated position (190) of the machine, wherein the position of the fixed node (972) is invariant with respect to the re-optimization, wherein the fixed node (972) is connected via an edge (973) to an adjacent node (671) of the pose graph (661). Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass das Verfahren weiterhin umfasst: - vor dem Durchführen des erneuten Optimierens: Anpassen einer Verlustfunktion der Kante (973) des Posen-Graphen (661), die zwischen dem Fixknoten (972) und dem benachbarten Knoten (671) verläuft, und / oder Anpassen einer Unsicherheit des Fixknotens (972).Procedure according to Claim 4 , characterized in that the method further comprises: - before performing the re-optimization: adjusting a loss function of the edge (973) of the pose graph (661) which runs between the fixed node (972) and the adjacent node (671), and / or adjusting an uncertainty of the fixed node (972). Verfahren nach einem der voranstehenden Ansprüche, dadurch gekennzeichnet, dass derjenige Knoten (971) des Posen-Graphen (661) ausgewählt wird, der dem ältesten Zeitpunkt (t. 1-t. 12) entspricht.Method according to one of the preceding claims, characterized in that the node (971) of the pose graph (661) is selected which corresponds to the oldest point in time (t. 1-t. 12). Verfahren nach einem der voranstehenden Ansprüche, dadurch gekennzeichnet, dass das Entfernen und Ersetzen des ausgewählten Knotens (971) durch den Fixknoten (972) selektiv in Abhängigkeit einer Anzahl von Knoten (671, 971) des Posen-Graphen (661) durchgeführt wird.Method according to one of the preceding claims, characterized in that the removal and replacement of the selected node (971) by the fixed node (972) is carried out selectively depending on a number of nodes (671, 971) of the pose graph (661). Verfahren nach einem der voranstehenden Ansprüche, dadurch gekennzeichnet, dass die Maschine ein Kraftfahrzeug ist und dadurch, dass das Verfahren weiterhin umfasst: - Steuern einer Fahrerassistenzfunktionalität (129) basierend auf der geschätzten Position (190) des Kraftfahrzeugs.Method according to one of the preceding claims, characterized in that the machine is a motor vehicle and in that the method further comprises: - controlling a driver assistance functionality (129) based on the estimated position (190) of the motor vehicle. Steuergerät (120), das umfasst: - mindestens eine Schnittstelle (121, 122), die eingerichtet ist, um jeweils Ausgaben von mindestens einem Odometrie-Positioniersystem (111, 112) zu empfangen und um jeweils Ausgaben von mindestens einem Absolut-Positioniersystem (101, 102) zu empfangen, - mindestens einen Prozessor (123), der eingerichtet ist, um jeweils für jeden von mehreren Zeitpunkten (t.1 - t.12) Odometrie-Positionsdaten (615) einer Maschine basierend auf den Ausgaben des mindestens einen Odometrie-Positioniersystems (111, 112) zu ermitteln, wobei der mindestens eine Prozessor (123) weiterhin eingerichtet ist, um jeweils für jeden der mehreren Zeitpunkte (t.1 - t.12) Absolut-Positionsdaten (605, 606) der Maschine basierend auf den Ausgaben des mindestens einen Absolut-Positioniersystems (101, 102) zu ermitteln, wobei der mindestens eine Prozessor (123) weiterhin eingerichtet ist, um einen Posen-Graph (661) zu erzeugen, wobei Kanten (672) des Posen-Graphs (661) den Odometrie-Positionsdaten (615) entsprechen, wobei Knoten (671) des Posen-Graphs (661) den Absolut-Positionsdaten (605, 606) entsprechen, wobei der mindestens eine Prozessor (123) weiterhin eingerichtet ist, um den Posen-Graph (661) zum Erhalten einer geschätzten Position (190) der Maschine zu optimieren (153, 1002), dadurch gekennzeichnet, dass der mindestens eine Prozessor (123) weiterhin eingerichtet ist, um nach dem Optimieren (153, 1002) einen Knoten (971) des Posen-Graphen (661) auszuwählen, für den ausgewählten Knoten (971) einen Fixknoten (972) des Posen-Graphen (661) zu bestimmen, den ausgewählten Knoten (971) aus dem Posen-Graph (661) zu entfernen und den ausgewählten Knoten (971) durch den Fixknoten (972) zu ersetzen.Control device (120) comprising: - at least one interface (121, 122) which is configured to receive outputs from at least one odometry positioning system (111, 112) and to receive outputs from at least one absolute positioning system (101, 102), - at least one processor (123) which is configured to determine odometry position data (615) of a machine for each of a plurality of points in time (t.1 - t.12) based on the outputs of the at least one odometry positioning system (111, 112), wherein the at least one processor (123) is further configured to determine absolute position data (605, 606) of the machine for each of the plurality of points in time (t.1 - t.12) based on the outputs of the at least one absolute positioning system (101, 102), wherein the at least one processor (123) is further configured, to generate a pose graph (661), wherein edges (672) of the pose graph (661) correspond to the odometry position data (615), wherein nodes (671) of the pose graph (661) correspond to the absolute position data (605, 606), wherein the at least one processor (123) is further configured to optimize the pose graph (661) to obtain an estimated position (190) of the machine (153, 1002), characterized in that the at least one processor (123) is further configured to select a node (971) of the pose graph (661) after the optimization (153, 1002), to determine a fixed node (972) of the pose graph (661) for the selected node (971), to remove the selected node (971) from the pose graph (661) and to delete the selected node (971) by the fixed node (972). Steuergerät (120) nach Anspruch 9, wobei das Steuergerät (120) eingerichtet ist, um ein Verfahren nach einem der Ansprüche 2-8 durchzuführen.Control unit (120) to Claim 9 , wherein the control device (120) is configured to carry out a method according to one of the Claims 2 - 8 to carry out.
DE102016205193.8A 2016-03-30 2016-03-30 Marginalizing a Pose Graph Active DE102016205193B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016205193.8A DE102016205193B4 (en) 2016-03-30 2016-03-30 Marginalizing a Pose Graph

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016205193.8A DE102016205193B4 (en) 2016-03-30 2016-03-30 Marginalizing a Pose Graph

Publications (2)

Publication Number Publication Date
DE102016205193A1 DE102016205193A1 (en) 2017-10-05
DE102016205193B4 true DE102016205193B4 (en) 2024-08-14

Family

ID=59886073

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016205193.8A Active DE102016205193B4 (en) 2016-03-30 2016-03-30 Marginalizing a Pose Graph

Country Status (1)

Country Link
DE (1) DE102016205193B4 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016211805A1 (en) * 2015-10-09 2017-04-13 Volkswagen Aktiengesellschaft Fusion of position data using poses graph
DE102018117660A1 (en) 2018-07-20 2020-01-23 Man Truck & Bus Se METHOD AND SYSTEM FOR DETERMINING A POSITION OF A VEHICLE
DE102019123538A1 (en) * 2019-09-03 2021-03-04 Bayerische Motoren Werke Aktiengesellschaft Method and device for determining a trajectory of a vehicle

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442765B1 (en) 2012-11-08 2013-05-14 Honeywell International Inc. Shared state selection and data exchange for collaborative navigation using conditionally independent parallel filters
US20140249752A1 (en) 2011-09-30 2014-09-04 The Chancellor Masters And Scholars Of The University Of Oxford Localising a vehicle along a route
DE102013208521A1 (en) 2013-05-08 2014-11-13 Bayerische Motoren Werke Aktiengesellschaft Collective learning of a highly accurate road model
DE102014211178A1 (en) 2013-11-20 2015-06-25 Continental Teves Ag & Co. Ohg Method and system for correcting measurement data of a first sensor system
DE102016211805A1 (en) 2015-10-09 2017-04-13 Volkswagen Aktiengesellschaft Fusion of position data using poses graph

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140249752A1 (en) 2011-09-30 2014-09-04 The Chancellor Masters And Scholars Of The University Of Oxford Localising a vehicle along a route
US8442765B1 (en) 2012-11-08 2013-05-14 Honeywell International Inc. Shared state selection and data exchange for collaborative navigation using conditionally independent parallel filters
DE102013208521A1 (en) 2013-05-08 2014-11-13 Bayerische Motoren Werke Aktiengesellschaft Collective learning of a highly accurate road model
DE102014211178A1 (en) 2013-11-20 2015-06-25 Continental Teves Ag & Co. Ohg Method and system for correcting measurement data of a first sensor system
DE102016211805A1 (en) 2015-10-09 2017-04-13 Volkswagen Aktiengesellschaft Fusion of position data using poses graph

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Grisetti, Giorgio; A Tutorial on Graph-Based SLAM. In IEEE Intelligent Transportation Systems Magazine, Vol. 2, No. 4, Winter 2010, S. 31-43
Kümmerle, R. et. al.: G2O: A General Framework for Graph Optimization. In: 2011 IEEE International Conference on Robotics and Automation (ICRA), S. 3607 - 3613. - http://dx.doi.org/10.1109/ICRA.2011.5979949
Rehder, Joern; Global Pose Estimation with Limited GPS and Long Range Visual Odometry. In Robotics and Automation (ICRA), 2012 IEEE International Conference on Robotics and Automation, S. 627-633
REHDER, Joern; Global Pose Estimation with Limited GPS and Long Range Visual Odometry. In Robotics and Automation (ICRA), 2012 IEEE International Conference on. IEEE, 2012. S. 627-633 *
Sibley, G. et al.: Sliding window filter with application to planetary landing. In: Journal of Field Robotics, Vol. 27, 2010, No. 5, S. 587-608. - ISSN 1556-4959

Also Published As

Publication number Publication date
DE102016205193A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
EP3359914B1 (en) Fusion of position data by means of pose graph
DE102020118187B4 (en) System and method for calibrating a steering wheel neutral position
EP3491339B1 (en) Method, device and computer-readable storage medium with instructions for determining the lateral position of a vehicle relative to the lanes of a road
DE102015111535B4 (en) Algorithm for precise curvature estimation for the path planning of autonomous vehicles
DE102013107861A1 (en) Tracking of road vehicles with sensors of different types
DE112014002019B4 (en) Waveform modeling device, vehicle information processing system, waveform modeling method and waveform modeling program
DE102018117660A1 (en) METHOD AND SYSTEM FOR DETERMINING A POSITION OF A VEHICLE
DE102015108605A1 (en) Vehicle lane change path planning algorithm for an autonomous-driving vehicle
WO2020229002A1 (en) Method and device for multi-sensor data fusion for automated and autonomous vehicles
DE102016111371A1 (en) Parameter estimation for fast traffic
WO2018019465A1 (en) Method, device and computer-readable storage medium with instructions for determining the lateral position of a vehicle relative to the lanes of a road
DE102012018914A1 (en) Device for estimating angular deviation of faulty bending angle between towing vehicle and trailer, has estimation unit which simulates relationship between position of clutch, bending angle and vehicle orientation, and angular deviation
DE102020105619A1 (en) SYSTEM AND PROCEDURE FOR DETERMINING VEHICLE POSITION
DE102021114768A1 (en) Vehicle control using a neural network controller in combination with a model-based controller
EP3610224B1 (en) Method, device, and computer-readable storage medium with instructions for estimating the pose of a motor vehicle
DE102023111700A1 (en) ALGORITHM FOR GENERATING PLANNING-BASED ATTENTION SIGNALS
DE102016205193B4 (en) Marginalizing a Pose Graph
DE102020133092A1 (en) POSITION ESTIMATE DEVICE AND POSITION ESTIMATE PROCEDURES
EP3865915A1 (en) Position estimation in different coordinate systems
DE112018002372T5 (en) INFORMATION MANAGEMENT DEVICE
DE102023132314B3 (en) SYSTEM AND METHOD FOR COMBINING TWO OR MORE VERSIONS OF MAP DATA BASED ON SPATIAL KALMAN FILTERING
DE102021214763A1 (en) Method and control device for controlling an automated vehicle
DE102016223999B4 (en) Determining a reference trajectory using a pose graph
DE102020119498A1 (en) Method for estimating a vehicle's own motion based on measurements from a lidar sensor and computing device
DE102020206134A1 (en) Method for operating a motor vehicle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final