DE102022207829A1 - Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung - Google Patents

Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung Download PDF

Info

Publication number
DE102022207829A1
DE102022207829A1 DE102022207829.2A DE102022207829A DE102022207829A1 DE 102022207829 A1 DE102022207829 A1 DE 102022207829A1 DE 102022207829 A DE102022207829 A DE 102022207829A DE 102022207829 A1 DE102022207829 A1 DE 102022207829A1
Authority
DE
Germany
Prior art keywords
map
anchor
anchor point
anchor points
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022207829.2A
Other languages
English (en)
Inventor
Matthias Holoch
Marco Lampacrescia
Gerhard Kurz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022207829.2A priority Critical patent/DE102022207829A1/de
Priority to US18/354,326 priority patent/US20240036586A1/en
Priority to CN202310944241.0A priority patent/CN117470213A/zh
Publication of DE102022207829A1 publication Critical patent/DE102022207829A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • G05D1/2462Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using feature-based mapping
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/383Indoor data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/22Command input arrangements
    • G05D1/229Command input data, e.g. waypoints
    • G05D1/2295Command input data, e.g. waypoints defining restricted zones, e.g. no-flight zones or geofences
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/242Means based on the reflection of waves generated by the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2111/00Details of signals used for control of position, course, altitude or attitude of land, water, air or space vehicles
    • G05D2111/10Optical signals
    • G05D2111/17Coherent light, e.g. laser signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte (440) einer Umgebung, wobei dem einen oder den mehreren Ankerpunkten insbesondere eine Beschreibung zugeordnet ist oder wird, wobei die Karte auf einem SLAM-Graphen (442) basiert, und wobei die Karte insbesondere zum Navigieren eines mobilen Gerätes in der Umgebung dient, umfassend, für den einen oder jeden der mehreren Ankerpunkte: Bereitstellen einer Position und/oder Orientierung des Ankerpunktes (404); Zuordnen des Ankerpunktes (404) zu einem Knoten in dem SLAM-Graphen (442), insbesondere einem zu dem Ankerpunkt nächstgelegenen Knoten; Erstellen einer Verknüpfung zwischen dem Ankerpunkt und dem Knoten; und Hinzufügen des Ankerpunktes zu der Karte (440) der Umgebung.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung, wobei die Karte auf einem SLAM-Graphen basiert, und wobei dem einen oder den mehreren Ankerpunkten insbesondere eine Beschreibung zugeordnet ist oder wird, sowie ein System zur Datenverarbeitung, ein mobiles Gerät und ein Computerprogramm zu dessen Durchführung.
  • Hintergrund der Erfindung
  • Mobile Geräte wie z.B. sich zumindest teilautomatisiert bewegende Fahrzeuge oder Roboter bewegen sich typischerweise in einer Umgebung, insbesondere einer zu bearbeitenden Umgebung oder einem Arbeitsbereich, wie z.B. einer Wohnung, in einem Garten, in einer Fabrikhalle oder auf der Straße, in der Luft oder im Wasser. Eines der grundlegenden Probleme eines solchen oder auch anderen mobilen Geräts besteht darin, sich zu orientieren, also zu wissen, wie die Umgebung aussieht, also insbesondere wo Hindernisse oder andere Objekte sind, und wo es sich (absolut) befindet. Dafür kann das mobile Gerät z.B. mit verschiedenen Sensoren ausgerüstet sein, wie z.B. Kameras, Lidar-Sensoren oder auch Intertialsensoren, mit deren Hilfe die Umgebung und die Bewegung des mobilen Gerätes z.B. zwei- oder dreidimensional erfasst wird. Dies ermöglicht es dem mobilen Gerät, sich lokal zu bewegen, Hindernisse rechtzeitig zu erkennen und zu umfahren.
  • Als SLAM („Simultaneous Localization and Mapping“, in etwa: Simultane Positionsbestimmung und Kartierung) wird ein Verfahren in der Robotik bezeichnet, bei dem ein mobiles Gerät wie ein Roboter gleichzeitig eine Karte seiner Umgebung erstellen und seine räumliche Lage innerhalb dieser Karte schätzen kann oder muss. Es dient damit dem Erkennen von Hindernissen und unterstützt somit die autonome Navigation. Bei SLAM ist in der Regel keine absolute Position wie z.B. von einem GPS-Sensor nötig.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung sowie ein System zur Datenverarbeitung, ein mobiles Gerät und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Die Erfindung beschäftigt sich mit dem Thema SLAM sowie insbesondere dessen Anwendung bei mobilen Geräten. Beispiele für solche mobilen Geräte (oder auch mobile Arbeitsgeräte) sind z.B. Roboter und/oder Drohnen und/oder auch sich teilautomatisiert oder (vollständig) automatisiert (zu Land, Wasser oder in der Luft) bewegende Fahrzeuge. Als Roboter kommen z.B. Haushaltsroboter wie Saug- und/oder Wischroboter, Boden- oder Straßenreinigungsgeräte oder Rasenmähroboter in Betracht, ebenso aber auch andere sog. Service-Roboter, als sich zumindest teilweise automatisiert bewegende Fahrzeuge z.B. Personenbeförderungsfahrzeuge oder Güterbeförderungsfahrzeuge (auch sog. Flurförderfahrzeuge, z.B. in Lagerhäusern), aber auch Luftfahrzeuge wie sog. Drohen oder Wasserfahrzeuge.
  • Ein solches mobiles Gerät weist insbesondere eine Steuer- oder Regeleinheit und eine Antriebseinheit zum Bewegen des mobilen Geräts auf, sodass das mobile Gerät in der Umgebung und z.B. entlang einer Trajektorie bewegt werden kann. Außerdem weist ein mobiles Gerät z.B. einen oder mehrere Sensoren auf, mittels welcher Informationen in der Umgebung und/oder von Objekten (in der Umgebung, insbesondere Hindernisse) und/oder vom mobilen Gerät selbst erfasst werden können. Beispiele für solche Sensoren sind Lidar-Sensoren oder andere Sensoren zum Bestimmen von Abständen, Kameras, sowie Inertialsensoren. Mittels eines Lidar-Sensors können z.B. sog. Punktwolken erfasst bzw. erhalten werden. Ebenso kann z.B. eine sog. Odometrie (des mobilen Geräts) berücksichtigt werden.
  • Bei SLAM gibt es verschiedene Ansätze, Karten und Positionen darzustellen. Herkömmliche Verfahren für SLAM stützen sich in der Regel auf geometrische Informationen, die typischerweise durch Knoten und Kanten repräsentiert werden. Knoten und Kanten sind typischerweise Bestandteile des SLAM-Graphen. Die Knoten und Kanten im SLAM-Graph können verschieden ausgestaltet sein und verschiedene Informationen umfassen; traditionell entsprechen die Knoten z.B. der Pose (Position und Orientierung) des mobilen Geräts oder bestimmter Umgebungsmerkmale zu bestimmten Zeitpunkten, während die Kanten relative Messungen zwischen den Knoten repräsentieren. SLAM-Graphen werden z.B. in „Giorgio Grisetti, Rainer Kümmerle, Cyrill Stachniss, Wolfram Burgard, A Tutorial on Graph-Based SLAM, IEEE Intelligent Transportation Systems Magazine, Vol. 2(4), pp 31-42, 2010“ näher beschrieben.
  • Basierend auf einem solchen SLAM-Graphen kann eine Karte der Umgebung, in der sich das mobile Gerät bewegt, bestimmt sein oder bestimmt werden. Hierzu kann die Karte eine oder mehrere sog. Landmarken (engl.: „landmarks“) umfassen. Hierzu können sog. Anker oder Ankerpunkte mit Position und/oder Orientierung (Pose) verwendet werden, die in der Karte vorhanden sind oder damit verknüpft sind, und denen Informationen oder eine Beschreibung (bzw. Anmerkungen oder engl.: „annotations“) zugeordnet ist. Damit lassen sich z.B. bestimmte Gegenstände oder Objekten wie Hindernisse in der Umgebung in der Karte festlegen und damit erkennen und zur Navigation nutzen. Allgemein können damit nicht nur Objekte definiert sein, sondern z.B. auch bestimmte Bereiche der Umgebung, die z.B. vom mobilen Objekt nicht befahren werden dürfen oder die eine bestimmte Bodenbeschaffenheit aufweisen. Dabei muss nicht immer ein physisches Merkmal in der Umgebung vorhanden sind, da z.B. ein Raum von einem Benutzer willkürlich in zwei Bereiche aufgeteilt werden kann. Ebenso können damit bestimmte Ereignisse definiert sein, z.B. der Zusammenstoß des mobilen Geräts mit einem Hindernis. Ebenso kann damit z.B. eine Docking- oder Ladestation definiert sein.
  • Ein SLAM-Graph wird typischerweise immer wieder aktualisiert, z.B. nach einer sog. Loop-Closure. Dabei kann es vorkommen, dass Knoten und/oder Kanten im SLAM-Graph verändert (aktualisiert bzw. angepasst) werden. Allgemein können sich auch die Karten, und damit nicht nur der SLAM-Graph, sondern auch die Informationen bzw. Beschreibung in der Karte verändern, z.B. bei Aktualisierungen. Auch können z.B. mehrere Karten zu einer neuen Karte verschmolzen werden. Hierbei wird auch von dynamischen Karten gesprochen.
  • Im Falle einer solchen Aktualisierung ist es zweckdienlich, Position und/oder Orientierung von Ankerpunkten (bzw. Landmarken) ebenfalls zu aktualisieren. Hierzu wird eine Möglichkeit vorgeschlagen, Ankerpunkte zu einer Karte, die auf einem SLAM-Graphen basiert, hinzufügen, bei der im Falle einer Aktualisierung des SLAM-Graphen die Ankerpunkte automatisch auch aktualisiert werden. Außerdem kann eine Beschreibung für die Ankerpunkte zur Karte hinzugefügt werden, die dann insbesondere mit einem oder mehreren Ankerpunkten verknüpft ist oder wird. Dabei können z.B. in einem ausführenden System zur Datenverarbeitung, z.B. einem Prozessor oder einer Steuereinheit des mobilen Geräts, ein Ankermodul sowie eines oder mehrere Kartenbearbeitungsmodule bereitgestellt werden, wobei die Kartenbearbeitungsmodule über eine Schnittstelle mit dem Ankermodul kommunizieren (zum Datenaustausch). Es kann sich dabei um getrennte Softwaremodule handeln, die auf derselben Steuereinheit ausgeführt werden, ebenso können aber getrennte Systeme zur Datenverarbeitung verwendet werden.
  • Um nun Ankerpunkte zur Karte hinzufügen, wird für den oder jeden von mehreren Ankerpunkten, die zur Karte hinzuzufügen sind, eine Position und/oder Orientierung bereitgestellt, und zwar z.B. für das Ankermodul. Beispielsweise kann von einem Kartenbearbeitungsmodul, das einen Ankerpunkt hinzufügen möchte, eine Anfrage an das Ankermodul gestellt werden, wozu dann die Position und/oder Orientierung bereitgestellt bzw. übermittelt wird. Die Position und/oder Orientierung des Ankerpunktes kann z.B. von extern beliebig vorgegeben werden, oder aber z.B. auch im Rahmen bestimmter Aktivitäten des mobilen Geräts bestimmt werden. So kann z.B. bei Andocken des mobilen Geräts (z.B. Staubsaugerroboter an eine Dockingstation, die vorher noch nicht bekannt war, von einem entsprechenden Kartenbearbeitungsmodul (automatisch) ein Ankerpunkt für die Dockingstation hinzugefügt werde, bei dem die Position und/oder Orientierung anhand der Position und/oder Orientierung des mobilen Geräts beim Andocken bestimmt ist.
  • Der Ankerpunkt wird dann zu einem Knoten in dem SLAM-Graphen zugeordnet, und zwar insbesondere einem zu dem Ankerpunkt nächstgelegenen Knoten. Der nächstgelegene Knoten kann z.B. durch eine Metrik bestimmt werden, z.B. als Knoten mit dem geringsten Abstand bzgl. der Positionen von Ankerpunkt und Knoten. Der Ankerpunkt, d.h. zumindest dessen Position und/oder Orientierung, wird damit also mit einem im SLAM-Graphen vorhandenen Knoten verknüpft; eine entsprechende Information (über die Verknüpfung) kann dann z.B. abgespeichert werden. Vorzugsweise wird auch eine relative Position und/oder Orientierung zwischen der Position und/oder Orientierung des Ankerpunktes und einer Position und/oder Orientierung des Knotens (die im SLAM-Graphen ja vorhanden bzw. hinterlegt ist) bestimmt.
  • Der Ankerpunkt wird dann zu der Karte der Umgebung hinzugefügt, ggf. auch eine Information zur der relativen Position und/oder Orientierung des Ankerpunktes. Ebenso kann, wie erwähnt, eine Beschreibung („annotation“) des Ankerpunktes, insbesondere eine semantische Beschreibung, bereitgestellt werden, die dann zu der Karte der Umgebung hinzugefügt wird. Diese Beschreibung kann an sich aber getrennt von der Position und/oder Orientierung behandelt werden, und z.B. je nach gewünschter Anwendung verwendet werden. Auch kann eine Beschreibung für mehrere Ankerpunkte gemeinsam gelten, z.B., wenn durch mehrere Ankerpunkte ein bestimmter Bereich definiert wird.
  • Auf diese Weise wird also eine Karte mit Ankerpunkten erhalten, bei der eine Aktualisierung des zugrundeliegenden SLAM-Graphen, also z.B. eine Änderung bzw. Anpassung von Position und/oder Orientierung von Knoten im SLAM-Graphen, automatisch zu einer Aktualisierung der Ankerpunkte führt, da die Zuordnung des Ankerpunktes zum Knoten an sich erhalten bleibt. Anhand der relativen Position und/oder Orientierung zwischen dem Ankerpunkt in Bezug auf den Knoten vor Aktualisierung kann dann auch nach Aktualisierung wieder auf die richtige Position und/oder Orientierung des Ankerpunktes geschlossen werden, dann ausgehend von der neuen Position und/oder Orientierung des Knotens. Es sei erwähnt, dass ein Ankerpunkt kein Knoten im SLAM-Graphen ist oder wird, sondern grundsätzlich vom SLAM-Graphen getrennt ist, jedoch durch die Zuordnung zu einem Knoten damit verknüpft ist. Es sei auch angemerkt, dass sich dabei die relative Position und/oder Orientierung zwischen Ankerpunkt und Knoten nicht ändert, sodass zwar ggf. der Ankerpunkt innerhalb der gesamten Karte etwas geändert, z.B. bewegt und/oder verschoben, wird, jedoch lokal gleichbleibt. Dies wird später in Bezug auf die Figurenbeschreibung noch näher erläutert.
  • Vorzugsweise wird auch eine Kennung, insbesondere eine eindeutige Kennung, für den Ankerpunkt bestimmt und dann bereitgestellt. Dies kann z.B. ebenfalls durch das Ankermodul erfolgen. Damit ist jeder Ankerpunkt eindeutig identifizierbar. So können z.B. mehrere verschiedene Karten vorhanden sein, die Ankerpunkte sind aber über die Karten hinweg unterscheidbar. Damit treten z.B. bei einer Verschmelzung der Karten keine Kollisionen der Ankerpunkte auf. Im Fall von mehreren Karten kann dann für einen Ankerpunkt auch eine Information bereitgestellt werden, in welcher Karte er enthalten ist.
  • Denkbar ist auch, dass eine Prüfung durchgeführt wird, ob ein hinzuzufügender Ankerpunkt überhaupt zur Karte hinzugefügt werden kann. Falls z.B. die Position des Ankerpunkts zu weit von einem nächstgelegenen Knoten entfernt ist, kann das Hinzufügen unterbunden werden. Dies könnte nämlich zu Problemen bei der Aktualisierung des SLAM-Graphen führen.
  • Basierend auf dem SLAM-Graphen oder der Karte, die auf dem SLAM-Graphen basiert, werden dann insbesondere auch Navigationsinformationen für das mobile Gerät bereitgestellt. Dies erlaubt es dem mobilen Gerät, in der Umgebung zu navigieren bzw. sich dort zu bewegen.
  • Neben solchen Anfragen zum Hinzufügen von Ankerpunkten können, z.B. von einem oder mehreren der erwähnten Kartenbearbeitungsmodule, auch Anfragen zum Bereitstellen von Informationen zu einem oder mehreren bestimmten Ankerpunkten oder zu allen Ankerpunkten der Karte erfolgen. Es können dann, z.B. vom Ankermodul, die Informationen zu dem einem oder den mehreren bestimmten Ankerpunkten, sofern vorhanden (d.h. wenn es die angefragten Ankerpunkte überhaupt gibt; diese könne z.B. über die erwähnte Kennung identifiziert werden), oder zu allen Ankerpunkten der Karte bereitgestellt werden. Die Informationen zu den Ankerpunkten könne hierbei die Position und/oder Orientierung, ebenso aber auch die erwähnte Kennung und/oder die Beschreibung umfassen. Ebenso können, z.B. von einem oder mehreren der erwähnten Kartenbearbeitungsmodule, auch Anfragen zum Entfernen eines oder mehrerer bestimmter Ankerpunkte aus der Karte erfolgen. Es können dann, z.B. vom Ankermodul, die betreffenden Ankerpunkte entfernt werden, sofern vorhanden (d.h. wenn es die angefragten Ankerpunkte überhaupt gibt; diese könne z.B. über die erwähnte Kennung identifiziert werden).
  • Nachfolgend soll kurz erläutert werden, wie das Hinzufügen eines Ankerpunktes in einem SLAM-Graphen konkret ablaufen kann. Hierzu kann ein SLAM-Graph 6 = (V, E) angenommen werden, mit einem Satz von Knoten V und einem Satz von Kanten E. Jeder Knoten weist eine optimierte Pose (Position und Orientierung) auf, die zweidimensional (2D) oder dreidimensional (3D) sein kann; dies kann z.B. von der Art der Anwendung oder des mobilen Geräts abhängen. Diese Pose kann sich über die Zeit ändern, z.B., wenn neue Informationen hinzukommen (z.B. bei einer Loop-Closure).
  • Wenn nun das Hinzufügen eines Ankerpunktes mit einer bestimmten Pose pmap angefragt bzw. angefordert wird, wird derjenige Knoten v̂ ∈ V gesucht, dessen Position der Position von pmap z.B. am nächsten ist. Hierzu kann z.B. auf die Euklidische Metrik zurückgegriffen werden, sodass gilt: v ^ = argmin v V p m a p p v .
    Figure DE102022207829A1_0001
  • Dann kann die relative Pose prel des Ankerpunktes in Bezug auf v̂ bestimmt bzw. berechnet und z.B. abgespeichert werden: p r e l = p m a p p v ^ .
    Figure DE102022207829A1_0002
  • Wenn die aktuelle Pose pcurrent eines Ankerpunktes angefragt wird, kann diese bestimmt werden, indem die gespeicherte relative Pose prel auf die aktuelle Pose des Knotens v̂ angewendet wird, die sich seit dem Hinzufügen des Ankerpunktes geändert haben könnte (aufgrund von Aktualisierungen): p c u r r e n t = p v ^ p r e l .
    Figure DE102022207829A1_0003
  • Bei SLAM-Graphen gibt es die Möglichkeit, diese auszudünnen, d.h. Knoten und/oder Kanten daraus zu entfernen und so die Datenmenge zu reduzieren. Falls im Rahmen eines solchen Ausdünnens oder aus anderen Gründen einer oder mehrere Knoten aus dem SLAM-Graphen entfernt werden oder werden sollen, könnte es passieren, dass einem oder mehreren zu entfernenden Knoten ein Ankerpunkt zugeordnet ist. Hierbei ist es dann bevorzugt, wenn einem solchen Ankerpunkt ein anderer Knoten (ein Knoten, der im SLAM-Graphen verbleibt) zugeordnet wird. Hier kann dann wieder der nächstgelegene Knoten verwendet werden. Dabei kann ausgehend von der Position und/oder Orientierung des zu entfernenden Knotens und der Position und/oder Orientierung des Ankerpunktes eine neue relative Position und/oder Orientierung zwischen dem Ankerpunkt und dem neuen zugeordneten Knoten bestimmt werden.
  • Ebenso ist es zweckmäßig, wenn das Entfernen von Knoten, denen ein Ankerpunkt zugeordnet ist, unterbunden wird. Damit wird zwar der SLAM-Graph etwas weniger ausgedünnt, dafür bleibt jedoch eine genaue Position für den Ankerpunkt erhalten. Grundsätzlich kann für verschiedene Ankerpunkt auch unterschieden werden, ob ein zugeordneter Knoten entfernt werden darf oder nicht, und dann ggf. ein neuer Knoten zugeordnet werden muss. Dies kann z.B. von einem Kriterium wie der Wichtigkeit des Ankerpunktes abhängig gemacht werden.
  • Ein erfindungsgemäßes System zur Datenverarbeitung, z.B. eine Steuereinheit eines Roboters, einer Drohne, eines Fahrzeugs usw., ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
  • Wenngleich es besonders vorteilhaft ist, die erwähnten Verfahrensschritte in der Rechen- oder Steuereinheit im mobilen Gerät auszuführen, können auch manche oder alle Verfahrensschritte auf einer anderen Recheneinheit oder einem Rechner wie z.B. einem Server (Stichwort: Cloud) durchgeführt werden; hierzu ist entsprechend eine vorzugsweise drahtlose Daten- bzw. Kommunikationsverbindung zwischen den Recheneinheiten nötig. Damit gibt es ein Rechensystem zur Durchführung der Verfahrensschritte.
  • Die Erfindung betrifft ebenfalls ein mobiles Gerät, das in eingerichtet ist, Navigationsinformationen wie vorstehend erwähnt zu erhalten und basierend auf Navigationsinformationen zu navigieren. Es kann sich dabei z.B. um ein Personenbeförderungsfahrzeug oder Güterbeförderungsfahrzeug, einen Roboter, insbesondere Haushaltsroboter, z.B. Saug- und/oder Wischroboter, Boden- oder Straßenreinigungsgerät oder Rasenmähroboter, eine Drohne oder auch Kombinationen davon handeln. Weiterhin kann das mobile Gerät einen oder mehrere Sensoren zur Erfassung von Objekt- und/oder Umgebungsinformationen aufweisen. Außerdem kann das mobile Gerät insbesondere eine Steuer- oder Regeleinheit und eine Antriebseinheit zum Bewegen des mobilen Geräts aufweisen.
  • Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Kurze Beschreibung der Zeichnungen
    • 1 zeigt schematisch ein mobiles Gerät in einer Umgebung zur Erläuterung der Erfindung in einer bevorzugten Ausführungsform.
    • 2 zeigt schematisch einen Aufbau eines Systems zur Erläuterung der Erfindung in einer bevorzugten Ausführungsform.
    • 3 zeigt schematisch einen Ablauf eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform.
    • 4 zeigt schematisch eine Karte mit SLAM-Graph zur Erläuterung der Erfindung in einer bevorzugten Ausführungsform.
    • 5 zeigt schematisch Karten zur Erläuterung der Erfindung in einer weiteren bevorzugten Ausführungsform.
    • 6 zeigt schematisch Karten zur Erläuterung der Erfindung in einer weiteren bevorzugten Ausführungsform.
  • Ausführungsform(en) der Erfindung
  • In 1 ist schematisch und rein beispielhaft ein mobiles Gerät 100 in einer Umgebung 120 zur Erläuterung der Erfindung dargestellt. Bei dem mobilen Gerät 100 kann es sich z.B. um einen Roboter wie einen Staubsauger- oder Rasenmähroboter mit einer Steuer- oder Regeleinheit 102 und einer Antriebseinheit 104 (mit Rädern) zum Bewegen des Roboters 100, z.B. entlang einer Trajektorie 130. Wie erwähnt, kann es sich aber auch um eine andere Art mobiles Gerät handeln, z.B. ein Güterbeförderungsfahrzeug.
  • Weiterhin weist der Roboter 100 beispielhaft einen als Lidar-Sensor ausgebildeten Sensor 106 mit einem Erfassungsfeld (gestrichelt angedeutet) auf. Zur besseren Veranschaulichung ist das Erfassungsfeld hier relativ klein gewählt; in der Praxis kann das Erfassungsfeld aber auch bis zu 360° betragen (z.B. aber mindestens 180° oder mindestens 270°). Mittels des Lidar-Sensors 106 können Objekt- und/oder Umgebungsinformationen wie Abstände von Objekten erfasst werden. Beispielhaft sind zwei Objekte 122 und 124 dargestellt. Außerdem kann der Roboter zusätzlich oder anstelle des Lidar-Sensors z.B. eine Kamera aufweisen.
  • Zudem ist schematisch eine Karte 140 angedeutet, die auf einem SLAM-Graphen basiert und die das mobile Gerät 100 zum Navigieren verwenden kann. Von der Karte 140 sind z.B. die Objekte 122, 124 als Ankerpunkte mit geeigneter Beschreibung umfasst, nachdem sie hinzugefügt worden sind.
  • Weiterhin weist der Roboter 100 ein System 108 zur Datenverarbeitung, z.B. ein Steuergerät, auf, mittels dessen z.B. über eine angedeutete Funkverbindung Daten mit einem übergeordneten System 110 zur Datenverarbeitung ausgetauscht werden können. In dem System 110 (z.B. ein Server, es kann auch für eine sog. Cloud stehen) können z.B. aus der Karte 140 bzw. deren SLAM-Graphen Navigationsinformationen, z.B. umfassend die Trajektorie 130, bestimmt werden, die dann auf das System 108 im Roboter 100 übermittelt werden, basierend worauf dieser dann navigieren soll. Ebenso kann aber vorgesehen sein, dass Navigationsinformationen im System 108 selbst bestimmt werden oder anderweitig dort erhalten werden. Anstelle von Navigationsinformationen kann das System 108 aber z.B. auch Steuerinformationen erhalten, die anhand der Navigationsinformationen bestimmt worden sind, und gemäß welcher die Steuer- oder Regeleinheit 102 über die Antriebseinheit 104 den Roboter 100 bewegen kann, um z.B. der Trajektorie 130 zu folgen.
  • In 2 ist schematisch ein Aufbau eines Systems 108 zur Erläuterung der Erfindung in einer bevorzugten Ausführungsform gezeigt. Bei dem System 108 kann es sich z.B. um das System 108 des Roboters 100 aus 1 handeln, wobei insbesondere nur die auf dem System 108 ausgeführten Funktionen in Form von Modulen (Softwaremodule) dargestellt sind.
  • Hierbei ist zunächst ein SLAM-Modul 210 vorgesehen, das z.B. grundsätzlich alle für SLAM relevanten Funkien wie das Erstellen des SLAM-Graphen und der darauf basierenden Karte 140 ausführt bzw. handhabt. Innerhalb des SLAM-Moduls 210 kann z.B. ein Ankermodul 220 ausgeführt werden, das Ankerpunkte zur Karte 140 hinzufügt und weitere Anfragen handhabt. Weiterhin sind mehrere Kartenbearbeitungsmodule vorgesehen, von denen eines mit 230 bezeichnet ist. Diese Kartenbearbeitungsmodule können über eine Schnittstelle 222 z.B. Anfragen 260 an das Ankermodul stellen, z.B. um eine Ankerpunkt zur Karte hinzufügen oder Informationen 262 zu Ankerpunkten, insbesondere auch Position und/oder Orientierung 264, zu erhalten.
  • Weiterhin ist beispielhaft ein weiteres, nicht näher spezifiziertes Softwaremodul 240 vorgesehen, das Beschreibungen 270 von z.B. Ankerpunkten von einem Kartenbearbeitungsmodul 230 erhalten kann und selbst z.B. Anfragen 272 z.B. zur Bearbeitung von Beschreibungen an ein Kartenbearbeitungsmodul 230 übermitteln kann. Dem Softwaremodul 240 kann außerdem die Karte 140 selbst zur Verfügung gestellt werden.
  • Weiterhin ist ein Sensormodul 250 vorgesehen, das Sensor- bzw. Umgebungsinformationen 252 von z.B. dem Sensor 106 (Vgl. 1) erhält und z.B. an das SLAM-Modul 210, die Kartenbearbeitungsmodule 230 sowie das Softwaremodul 240 bereitstellt.
  • Weiterhin ist ein Benutzer 280 gezeigt, der z.B. ebenfalls (manuell) Anfragen zur Bearbeitung von Beschreibungen an ein Kartenbearbeitungsmodul 230 übermitteln kann.
  • In 3 ist schematisch ein Ablauf eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform dargestellt. Beispielhaft soll hier ein Ankerpunkt zu einer Karte hinzugefügt werden. Hierzu wird in einem Schritt 300 eine Position und/oder Orientierung 302 des Ankerpunktes 304 bereitstellt, z.B. von einem Kartenbearbeitungsmodule 230 an das Ankermodul 220 (vgl. 2).
  • In einem Schritt 310 wird der Ankerpunkt 304 dann zu einem Knoten 312 in einem SLAM-Graph 314 zugeordnet, Ankerpunkt und Knoten werden verknüpft. In einem Schritt 320 kann eine relative Position und/oder Orientierung 322 zwischen der Position und/oder Orientierung 302 des Ankerpunktes 304 und einer Position und/oder Orientierung des Knotens 312 bestimmt. In einem Schritt 330 kann eine eindeutige Kennung (oder ID) 332 für den Ankerpunkt 304 bestimmt werden.
  • In einem Schritt 340 wird dann der Ankerpunkt 304 zu der Karte 140 hinzugefügt. Außerdem können auch die Information zur relativen Position und/oder Orientierung 322 des Ankerpunktes sowie die Kennung 332 bereitgestellt werden. In einem Schritt 350 können zudem Navigationsinformation 352 bestimmt werden, indem z.B. der Ankerpunkt bzw. dessen Informationen, basierend auf der Karte 140, mit einer (z.B. ebenfalls bereitgestellten) Beschreibung (bzw. semantischen Information) 306 kombiniert oder verknüpft wird, um das mobile Gerät ansteuern zu können, d.h. zum Navigieren des mobilen Geräts.
  • In 4 ist schematisch eine Karte 440 mit SLAM-Graph 442 zur Erläuterung der Erfindung in einer bevorzugten Ausführungsform dargestellt. Wie eingangs erläutert, umfasst ein SLAM-Graph typischerweise eine Vielzahl von Knoten und Kanten. Beispielhaft ist ein Knoten mit 444 bezeichnet, eine Kante mit 446. Mit 450 sind beispielhaft Linien und Punkte bezeichnet, die Objekte oder Wände darstellen und z.B. mittels des Sensors des Roboters erfasst werden und auch in der Karte hinterlegt werden können.
  • Durch Ankerpunkte kann, wie erwähnt, z.B. ein bestimmter Bereich vorgegeben werden. Beispielhaft ist in 4 ein Bereich 408 durch vier Ankerpunkte definiert, die als Stern dargestellt sind und wovon einer mit 404 bezeichnet ist. Beispielsweise kann der Bereich 408 dafür vorgesehen sein, dass er von dem Roboter nicht befahren werden darf (eine sog. Verbotszone).
  • Wenn nun die Ankerpunkte zur Karte 440 hinzugefügt werden, so wird für jeden Ankerpunkt jeweils ein nächstgelegener Knoten in dem SLAM-Graph 442 bestimmt, wie dies anhand gestrichelter Pfeile, die von jeweils einem Ankerpunkt (Stern) zu einem Knoten führen, dargestellt ist. Der Ankerpunkt 404 wird z.B. dem Knoten 444 zugeordnet. Die relative Position zwischen Ankerpunkt 404 und Knoten 444 ist in diesem Fall z.B. durch den gestrichelten Pfeil definiert.
  • In 5 sind schematisch Karten zur Erläuterung der Erfindung in einer weiteren bevorzugten Ausführungsform dargestellt. Hierzu soll das Beispiel eines autonomen mobilen Roboters als mobiles Gerät, wie z.B. auch in 1 gezeigt, betrachtet werden. Der Roboter erkundet z.B. regelmäßig neue Teile der Umgebung und könnte an verschiedenen, dem Roboter unbekannten Orten aus- und eingeschaltet werden (dies ist als sog. „Kidnapped Robot Problem“ bekannt).
  • Um dieses Szenario zu unterstützen, kann ein SLAM-System verwendet werden, das sich an mehrere disjunkte Karten aus der Vergangenheit erinnern kann (d.h. diese sind an sich vorhanden), den Roboter in einer der vergangenen Karten neu lokalisieren kann, mehrere Karten zusammenführen kann und den Inhalt der vergangenen Karten anhand der neuen Informationen, die der Roboter während des Betriebs sammelt, verfeinern und erweitern kann.
  • Gleichzeitig ist es für die Kartenbearbeitungsmodule erforderlich, dass die Position spezifischer statischer Objekte und Beschreibungen (und damit Ankerpunkte) immer auf dem neuesten Stand bleibt. Die Verwendung des Ankermoduls ermöglicht dies, ohne dass jedes Kartenbearbeitungsmodul tief in das SLAM-System integriert und angebunden werden muss.
  • Bei einem Kartenbearbeitungsmodul kann es sich z.B. um ein Docking-Modul für das Batteriemanagement handeln. Das System (also der Roboter) muss z.B. automatisch zu seiner Dockingstation zurückkehren können, um sich aufzuladen, bevor die Batterien leer sind.
  • In diesem Beispiel wird eine Dockingstation durch eine einzelne Pose identifiziert, die der Pose des Roboters beim Andocken an dieser Dockingstation entspricht (oder zumindest basierend darauf bestimmt wird). Immer, wenn der Roboter an einer zuvor unbekannten Dockingstation angedockt wird, fordert das Docking-Modul das Ankermodul auf, einen neuen Ankerpunkt mit der aktuellen Roboterpose (die als Pose des Ankerpunktes verwendet wird) zu erstellen. Dies kann z.B. erfolgen, wenn der Roboter zum ersten Mal in einer Dockingstation startet oder nachdem er erfolgreich in einer neuen Dockingstation angedockt hat. Um festzustellen, ob das Andocken erfolgreich war, kann z.B. überprüft werden, ob die Batterie aufgeladen ist.
  • Das Ankermodul gibt dann eine Kennung bzw. ID zurück, um den Ankerpunkt zu identifizieren, der der neu hinzugefügten Dockingstation entspricht. Das Docking-Modul ordnet die ID des Ankerpunks dann z.B. seiner internen Datenstruktur der Dockingstation zu, dies kann z.B. wie folgt aussehen:
    • - Neu hinzugefügte Dockingstation: Dockingstation 4 - Ankerpunkt ID 82
    • - Andere Dockingstationen, bereits registriert sind (also schon in der Karte vorhanden sind):
      • ◯ Dockingstation 1 - Ankerpunkt ID 04
      • ◯ Dockingstation 2 - Ankerpunkt ID 19
      • ◯ Dockingstation 3 - Ankerpunkt ID 72
  • Bei Bedarf kann das Andockmodul die Standorte der einzelnen Dockingstationen in der aktuellen Karte abrufen, indem es entweder explizit Ankerdaten anfordert oder z.B. einen Ausgabekanal des Ankermoduls abhört (falls ein solcher vorgesehen ist).
  • In 5 ist auf der linken Seite in der Karte 540, die auf einem SLAM-Graphen basiert, beispielhaft ein Ankerpunkt 504 vorhanden, der z.B. wie vorstehend erläutert hinzugefügt wurde. Auf der rechten Seite ist die Karte 540 erneut dargestellt, jedoch nachdem der SLAM-Graph aktualisiert wurde, z.B. nach einer Loop-Closure. Hier ist zu sehen, dass der rechte Teil der Karte, der zuvor etwas schief war, nunmehr gerade ausgerichtet ist (in Bezug auf den linken Teil der Karte). Der Ankerpunkt, der sich in diesem rechten Teil der Karte befindet, wird auf diese Weise ebenfalls aktualsiert, da der Knoten des SLAM-Graphen, dem er zugeordnet ist (hier nicht gezeigt) aktualisiert wurde. Die Position der Dockingstation in der Karte bleibt damit konsistent, wenn die Karte korrigiert wird.
  • In 6 sind schematisch Karten zur Erläuterung der Erfindung in einer weiteren bevorzugten Ausführungsform dargestellt. Wie erwähnt, können z.B. bestimmte Bereiche vorgegeben werden, die vom Roboter nicht befahren werden dürfen, z.B., weil es dort Hindernisse gibt, die für den Sensor unsichtbar sind und dem Roboter selbst schaden könnten oder die beim Überfahren beschädigt werden könnten. Dies könnten z.B. ein See oder eine Treppe sein, die nach unten führt, wenn nur ein parallel zum Boden montiertes 2D-Lidar als Sensor verwendet wird.
  • Solche Verbotszonen können als Polygone dargestellt und über Ankerpunkte an den Eckpunkten der Polygone auf der Karte definiert werden. Eine rechteckige Verbotszone wird zum Beispiel durch vier Ankerpunkte (vgl. z.B. 4) dargestellt - einen für jede Ecke. Eine dreieckige Verbotszone kann z.B. durch drei Ankerpunkte dargestellt werden. In 6 auf der linken Seite ist eine Karte 640 mit eine solchen Verbotszone (bzw. allgemein einem Bereich) 608 gezeigt, die durch drei Ankerpunkte (als Sterne dargestellt) definiert ist.
  • Hierbei kann z.B. ein Benutzer eine neue Verbotszone erstellen, indem er bestimmte Stellen auf der Karte des Roboters markiert. Zu diesem Zweck fordert ein entsprechendes Kartenbearbeitungsmodul die Erstellung von drei neuen Ankerpunkten vom Ankermodul an. Das Ankermodul gibt drei IDs (Kennungen) zurück, um jeden der neu erstellten Ankerpunkte zu identifizieren.
  • Das Kartenbearbeitungsmodul ordnet diese IDs der internen Verbotszonen-Datenstruktur zu, z. B:
    • - Neu hinzugefügtes Dreieck:
      • ◯ Verbotszone 3, Ecke 1 - Ankerpunkt ID 41
      • ◯ Verbotszone 3, Ecke 2 - Ankerpunkt ID 42
      • ◯ Verbotszone 3, Ecke 3 - Ankerpunkt ID 47
    • - Andere (dreieckige) Polygone, die bereits registriert sind:
      • ◯ Verbotszone 1, Ecke 1 - Ankerpunkt ID 01
      • ◯ Verbotszone 1, Ecke 2 - Ankerpunkt ID 02
      • ◯ Verbotszone 1, Ecke 3 - Ankerpunkt ID 03
      • ◯ Verbotszone 1, Ecke 4 - Ankerpunkt ID 04
      • ◯ Verbotszone 2, Ecke 1 - Ankerpunkt ID 14
      • ◯ Verbotszone 2, Ecke 2 - Ankerpunkt ID 15
      • ◯ Verbotszone 2, Ecke 3 - Ankerpunkt ID 16
  • Von nun an kann das Kartenbearbeitungsmodul verfolgen, wie sich die Posen dieser Polygone während der Kartenaktualisierung ändern, indem es entweder den Ausgabekanal des Ankermoduls abhört oder explizit die Daten der Ankerpunkte anfragt bzw. anfordert.
  • Wie eine dreieckige Verbotszone (oder ein sonstiger Bereich) bei einer Kartenzusammenführung erhalten bleibt, ist in 6 dargestellt. Wie erwähnt, ist auf der linken Seite eine Karte 640 mit eine solchen Verbotszone 608 gezeigt, die durch drei Ankerpunkte (als Sterne dargestellt) definiert ist. Ein auf der linken oberen Seite der Karte 640 angedeuteter Korridor soll z.B. zunächst durch eine Tür verschlossen sein.
  • Wenn diese Tür dann später z.B. geöffnet wird, kann der Roboter hindurchfahren und den Korridor erkunden. Hierbei kann eine weitere Karte 642 erstellt werden, wie auf der rechten Seite von 6 dargestellt. Beide Karten 640 und 642 können dann auch verschmolzen werden. Dabei bleibt die Verbotszone 608 erhalten, da diese durch die drei Ankerpunkte mit eindeutigen Kennungen (IDs) definiert ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Giorgio Grisetti, Rainer Kümmerle, Cyrill Stachniss, Wolfram Burgard, A Tutorial on Graph-Based SLAM, IEEE Intelligent Transportation Systems Magazine, Vol. 2(4), pp 31-42 [0007]

Claims (15)

  1. Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte (140, 440, 540, 640) einer Umgebung (120), wobei dem einen oder den mehreren Ankerpunkten insbesondere eine Beschreibung zugeordnet ist oder wird, wobei die Karte auf einem SLAM-Graphen (314, 442) basiert, und wobei die Karte insbesondere zum Navigieren eines mobilen Gerätes in der Umgebung dient, umfassend, für den einen oder jeden der mehreren Ankerpunkte: Bereitstellen (300) einer Position und/oder Orientierung (302) des Ankerpunktes (304); Zuordnen (310) des Ankerpunktes (304, 404) zu einem Knoten (312, 444) in dem SLAM-Graphen (314, 442), insbesondere einem zu dem Ankerpunkt nächstgelegenen Knoten, und Erstellen einer Verknüpfung zwischen dem Ankerpunkt (303, 404) und dem Knoten (312, 444); und Hinzufügen (340) des Ankerpunktes zu der Karte (140, 540, 640) der Umgebung.
  2. Verfahren nach Anspruch 1, weiterhin umfassend, für den einen oder jeden der mehreren Ankerpunkte: Bestimmen (320) einer relativen Position und/oder Orientierung (322) zwischen der Position und/oder Orientierung (302) des Ankerpunktes und einer Position und/oder Orientierung des Knotens (312); und Hinzufügen einer Information zur relativen Position und/oder Orientierung des Ankerpunktes zu der Karte (140, 540, 640) der Umgebung.
  3. Verfahren nach Anspruch 1 oder 2, weiterhin umfassend, für den einen oder jeden der mehreren Ankerpunkte: Bestimmen (330) einer Kennung (332), insbesondere einer eindeutigen Kennung, für den Ankerpunkt; und Bereitstellen der Kennung.
  4. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend, für den einen oder jeden der mehreren Ankerpunkte: Bereitstellen einer Information zu einer von mehreren Karten (140, 540, 640, 642), zu der der Ankerpunkt hinzugefügt werden soll; wobei der Ankerpunkt zu der Karte (140, 540, 640) gemäß der Information hinzugefügt wird.
  5. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend: Erhalten einer Anfrage zum Bereitstellen von Informationen zu einem oder mehreren bestimmten Ankerpunkten oder zu allen Ankerpunkten der Karte (140, 540, 640); und Bereitstellen der Informationen zu dem einem oder den mehreren bestimmten Ankerpunkten, sofern vorhanden, oder zu allen Ankerpunkten der Karte (140, 540, 640).
  6. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend: Erhalten einer Anfrage zum Entfernen eines oder mehreren bestimmten Ankerpunkten aus der Karte (140, 540, 640); und Entfernen des einen oder der mehreren bestimmten Ankerpunkte aus der Karte (140, 540, 640), sofern vorhanden.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei ein Ankermodul (220) zum Hinzufügen des einen oder der mehreren Ankerpunkte zu der Karte der Umgebung bereitgestellt wird, wobei wenigstens ein Kartenbearbeitungsmodul (230) bereitgestellt wird, das über eine Schnittstelle (222) mit dem Ankermodul kommuniziert, und wobei Anfragen zum Hinzufügen von Ankerpunkten und/oder andere Anfragen von dem wenigstens einen Kartenbearbeitungsmodul (230) an das Ankermodul (220) gestellt und dort erhalten werden.
  8. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend, für zumindest einen Ankerpunkt in der Karte: Zuordnen des Ankerpunktes, wenn der Knoten, dem der Ankerpunkt zugeordnet ist, aus dem SLAM-Graphen entfernt wird oder werden soll, zu einem anderen Knoten in dem SLAM-Graphen.
  9. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend: Unterbinden, wenn einer oder mehrere Knoten aus dem Graphen entfernt werden oder werden sollen, eines Entfernens von Knoten, denen ein Ankerpunkt zugeordnet ist.
  10. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend: Bestimmen (350) von Navigationsinformation (352) für das mobile Gerät (100), basierend auf der Karte (140, 540, 640) und insbesondere einer Beschreibung (306) für den einen oder die mehreren Ankerpunkte in der Karte (140).
  11. System (108, 110) zur Datenverarbeitung, umfassend Mittel zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche.
  12. Mobiles Gerät (100), das ein System nach Anspruch 11 aufweist, und/oder das eingerichtet ist, Navigationsinformationen (352), die gemäß einem Verfahren nach Anspruch 10 bestimmt worden sind, zu erhalten, und das das eingerichtet ist, basierend auf den Navigationsinformationen (352) zu navigieren, bevorzugt mit einer Steuer- oder Regeleinheit und einer Antriebseinheit zum Bewegen des mobilen Geräts (100) gemäß den Navigationsinformationen.
  13. Mobiles Gerät (100) nach Anspruch 12, das als sich zumindest teilweise automatisiert bewegendes Fahrzeug, insbesondere als Personenbeförderungsfahrzeug oder als Güterbeförderungsfahrzeug, und/oder als Roboter, insbesondere als Haushaltsroboter, z.B. Saug- und/oder Wischroboter, Boden- oder Straßenreinigungsgerät oder Rasenmähroboter, und/oder als Drohne ausgebildet ist.
  14. Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, die Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 10 durchzuführen, wenn es auf dem Computer ausgeführt wird.
  15. Computerlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 14 gespeichert ist.
DE102022207829.2A 2022-07-29 2022-07-29 Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung Pending DE102022207829A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102022207829.2A DE102022207829A1 (de) 2022-07-29 2022-07-29 Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung
US18/354,326 US20240036586A1 (en) 2022-07-29 2023-07-18 Method for adding one or more anchor points to a map of an environment
CN202310944241.0A CN117470213A (zh) 2022-07-29 2023-07-28 用于将一个或多个锚点添加到环境的地图的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022207829.2A DE102022207829A1 (de) 2022-07-29 2022-07-29 Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung

Publications (1)

Publication Number Publication Date
DE102022207829A1 true DE102022207829A1 (de) 2024-02-01

Family

ID=89508703

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022207829.2A Pending DE102022207829A1 (de) 2022-07-29 2022-07-29 Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung

Country Status (3)

Country Link
US (1) US20240036586A1 (de)
CN (1) CN117470213A (de)
DE (1) DE102022207829A1 (de)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180161986A1 (en) 2016-12-12 2018-06-14 The Charles Stark Draper Laboratory, Inc. System and method for semantic simultaneous localization and mapping of static and dynamic objects
WO2020016385A1 (de) 2018-07-20 2020-01-23 Volkswagen Ag Verfahren und system zum bestimmen einer position eines fahrzeugs
DE102019123538A1 (de) 2019-09-03 2021-03-04 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur Ermittlung einer Trajektorie eines Fahrzeugs
DE102021005084A1 (de) 2021-10-12 2022-01-20 Daimler Ag Identifizierung von Objektattributen und Objektbeziehungen
DE102020128391A1 (de) 2020-10-28 2022-04-28 Bayerische Motoren Werke Aktiengesellschaft Vorrichtung und Verfahren zur Ermittlung von Kartendaten anhand von Observationen

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180161986A1 (en) 2016-12-12 2018-06-14 The Charles Stark Draper Laboratory, Inc. System and method for semantic simultaneous localization and mapping of static and dynamic objects
WO2020016385A1 (de) 2018-07-20 2020-01-23 Volkswagen Ag Verfahren und system zum bestimmen einer position eines fahrzeugs
DE102019123538A1 (de) 2019-09-03 2021-03-04 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur Ermittlung einer Trajektorie eines Fahrzeugs
DE102020128391A1 (de) 2020-10-28 2022-04-28 Bayerische Motoren Werke Aktiengesellschaft Vorrichtung und Verfahren zur Ermittlung von Kartendaten anhand von Observationen
DE102021005084A1 (de) 2021-10-12 2022-01-20 Daimler Ag Identifizierung von Objektattributen und Objektbeziehungen

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Giorgio Grisetti, Rainer Kümmerle, Cyrill Stachniss, Wolfram Burgard, A Tutorial on Graph-Based SLAM, IEEE Intelligent Transportation Systems Magazine, Vol. 2(4), pp 31-42

Also Published As

Publication number Publication date
US20240036586A1 (en) 2024-02-01
CN117470213A (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
EP3494446B1 (de) Verfahren und vorrichtung zur steuerung eines autonomen mobilen roboters
DE112019000383T5 (de) Odometriesystem und Verfahren zum Verfolgen von Ampelanlagen
DE102015201951A1 (de) System und Verfahren zum Kartieren, Lokalisieren und Korrigieren einer Raumlage
DE112017002154T5 (de) Mobiler Roboter und Steuerverfahren für einen mobilen Roboter
DE102020113417A1 (de) Systeme und verfahren zur automatisierten multimodalen zustellung
DE112019002080T5 (de) Systeme und verfahren zur stellungsbestimmung
WO2020016385A1 (de) Verfahren und system zum bestimmen einer position eines fahrzeugs
DE102019122760A1 (de) Selbstfahrende mobile roboter, die mensch-roboter-interaktionen verwenden
DE102016114594A1 (de) Verfahren zur Steuerung eines autonomen mobilen Roboters
DE112018005907T5 (de) Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren, programm und beweglicher körper
DE102020102915A1 (de) Hybride metrisch-topologische kamerabasierte positionsbestimmung
DE102020127855A1 (de) Sicherheitssystem, automatisiertes fahrsystem und verfahren dafür
EP3559773B1 (de) Verfahren zur navigation und selbstlokalisierung eines sich autonom fortbewegenden bearbeitungsgerätes
DE112021006111T5 (de) Systeme und Verfahren zur monokularisierten Objekterkennung
DE112022002107T5 (de) Systeme, vorrichtungen und verfahren zur entwicklung autonomer roboter
DE102021101877A1 (de) System für die Luftbilderfassung unter Verwendung einer Drohne, die einem Zielfahrzeug folgt, auf der Grundlage von bestärkendem Lernen
DE102021206075A1 (de) Fahrzeuglokalisierung als Mitfahrgelegenheit und Insassenidentifikation für autonome Fahrzeuge
EP3575912A1 (de) Mähroboter
DE102021114724A1 (de) Verbesserter fahrzeugbetrieb
DE112020002578T5 (de) Verfahren, System und Vorrichtung zur dynamischen Aufgabensequenzierung
DE102022207829A1 (de) Verfahren zum Hinzufügen eines oder mehrerer Ankerpunkte zu einer Karte einer Umgebung
DE102021125871A1 (de) Systeme und verfahren zum planen einer fortbewegungsroute eines multifunktionsroboters
DE102022108842A1 (de) Online-Validierung der LIDAR-LIDAR-Ausrichtung und der LIDAR-Fahrzeug-Ausrichtung
DE102021116072A1 (de) System und Verfahren zur Erzeugung synthetischer Trainingsdaten
DE112017008169T5 (de) Fahrzeugroutensteuerung

Legal Events

Date Code Title Description
R163 Identified publications notified