Methodenartikel

Verbessertes visuelles SLAM und Bahnplanung für die autonome Navigation von mobilen Robotern auf Rädern

DOI:

10.3791/68794

3. Oktober 2025

In diesem Artikel

Zusammenfassung

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Diese Studie stellt einen Ansatz zur Verbesserung der autonomen WMR-Indoor-Navigation vor, indem visuelle SLAM- und Pfadplanungsalgorithmen optimiert werden. Es integriert die Multi-Sensor-Fusion, verbessert die Merkmalsextraktion und wendet Trajektorienoptimierungstechniken für eine bessere Lokalisierung, Hindernisvermeidung und glattere Pfade an, wodurch eine überlegene Leistung in realen und simulierten Umgebungen demonstriert wird.

Zusammenfassung

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Diese Forschung konzentriert sich auf wichtige Technologien, die in der autonomen Navigation mobiler Roboter auf Rädern eingesetzt werden, wie z. B. die Optimierung der Bahnplanung, die Systemintegration und Fortschritte bei der visuellen simultanen Lokalisierung und Kartierung (SLAM). Es wird ein verbesserter Ansatz vorgeschlagen, um Lokalisierungsprobleme in der traditionellen visuellen Odometrie zu überwinden, die durch doppelte oder ungleichmäßig verteilte Merkmalspunkte verursacht werden. Dieser Ansatz kombiniert EPNP-Feature-Matching (Efficient Perspective-n-Point), iterative ICP-Posenoptimierung (Closest Point) und Quadtree-basiertes Feature-Management. Nach experimentellen Erkenntnissen erhöht die vorgeschlagene Methode die Lokalisierungsgenauigkeit und -stabilität erheblich. Eine auf RGB-D-Daten basierende Technik zur Rekonstruktion dichter Punktwolken wird entwickelt, um die Vollständigkeit und Detailgenauigkeit der Umgebungsdarstellung zu verbessern und gleichzeitig die Seltenheit zu verringern, die häufig in Punktwolkenkarten auftritt, die von herkömmlichen SLAM-Systemen erstellt werden. Um die Pfadqualität und die Recheneffizienz zu verbessern, wird eine verbesserte RRT-Methode (Rapid-Exploring Random Tree) vorgestellt, die adaptives Schrittgrößenmanagement, Zielverzerrung und B-Spline-basierte Pfadglättung umfasst. Darüber hinaus wird die lokale Hindernisvermeidung in Echtzeit in dynamischen Situationen durch die Integration des Timed Elastic Band (TEB)-Algorithmus ermöglicht. Umfangreiche Praxistests haben die Nützlichkeit der vorgeschlagenen Lösungen in Bezug auf Effizienz, Robustheit und praktische Anwendbarkeit bestätigt, nachdem sie auf einer experimentellen Plattform auf Basis des Robot Operating System (ROS) implementiert wurden.

Einleitung

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Das Potenzial und die Anwendungsmuster der Robotik befinden sich in einer Phase des rasanten Wandels, der durch die Fortschritte bei Technologien der künstlichen Intelligenz vorangetrieben wird. In den letzten Jahren hat Visual Simultaneous Localization and Mapping (Visual SLAM) und seine Erweiterung auf visuell-inertiale Navigationssysteme (VINS) erhebliche Fortschritte in Bezug auf Robustheit und Lokalisierungsgenauigkeitgemacht 1. Um die Zuverlässigkeit der Initialisierung unter schwierigen Bedingungen wie geringer Textur und schlechter Beleuchtung zu verbessern, schlugen Campos et al. ORB-SLAM3 vor, das ein Multi-Map-System und eine verbesserte Initialisierung für visuelle und visuell-inertiale Systemeeinführt 2. Für einen verbesserten Merkmalsabgleich in schwierigen Szenarien entwickelten DeTone et al. SuperPoint, eine selbstüberwachte Methode zur Erkennung und Beschreibung von Interessenpunkten3, während Sarlin et al. SuperGlue entwickelten, einen auf neuronalen Netzwerken basierenden Merkmalsabgleicher, der schwierige visuelle Bedingungen bewältigt4. Für die dichte 3D-Rekonstruktion schlugen Dai et al. BundleFusion vor, ein weltweit konsistentes Echtzeit-3D-Rekonstruktionssystem, das die spontane Oberflächenreintegration nutzt, um großflächige Umgebungen und Schleifenverschlüsse zu bewältigen5.

Im Bereich der Bahnplanung werden Rapidly-exploring Random Trees (RRT) und ihre Varianten nach wie vor häufig für die robotergestützte Bewegungsplanung eingesetzt. Der grundlegende RRT-Algorithmus wurde erstmals von LaValle als neues Werkzeug für die Bahnplanung eingeführt und bietet eine effiziente Sampling-basierte Methode zur Lösung komplexer hochdimensionaler Probleme6. Dies wurde von Karaman und Frazzoli maßgeblich vorangetrieben, die den RRT*-Algorithmus entwickelten, der asymptotische Optimalitätsgarantien in der Bewegungsplanung bietet7. Aufbauend auf diesen Kernalgorithmen hat sich die moderne Forschung auf hybride Ansätze konzentriert, die Sampling-basierte Methoden mit anderen Techniken kombinieren. So haben Rösmann et al. beispielsweise die Timed Elastic Band (TEB)-Methode entwickelt, die eine lokal optimale Trajektoriengenerierung ermöglicht und in globale Planer weitgehend integriert wurde8. In ähnlicher Weise bietet der von Fox et al. vorgestellte Dynamic Window Approach (DWA) eine effektive Methode zur lokalen Hindernisvermeidung in dynamischen Umgebungen9.

Auf der Ebene der lokalen Planung und semantischen Wahrnehmung schlugen Chen et al. eine semantische informative Pfadplanungsstrategie für Mikro-Luftfahrzeuge (MAVs) vor, die sowohl die Sucheffizienz als auch die Sicherheit bei der Zielerkundung verbessert10. Kabiri et al. integrierten 5G-ToA-Messungen (Time-of-Arrival) in ein VINS-Framework, um eine global-lokale SLAM-Fusion zu ermöglichen und die Lokalisierungsgenauigkeit in Umgebungen mit begrenzter GNSS-Abdeckung effektiv zu verbessern11. Um hochfrequente Echtzeit-Kartierungen zu ermöglichen, entwickelten Xu et al. FAST-LIO2, eine eng gekoppelte LiDAR-IMU-Odometriemethode, die in der Lage ist, genaue und dichte 3D-Karten zu erstellen12. Für die Pfadplanung in komplexen Umgebungen führten Gammell et al. eine informierte RRT*-Methode ein, die bidirektionales Baumwachstum und adaptives Sampling umfasst, wodurch die Pfadqualität und die Sucheffizienz in dynamischen Umgebungen erheblich verbessertwerden 13. Darüber hinaus stellten Coleman et al. für Szenarien mit engem Durchgang eine auf Stichproben basierende Bewegungsplanungsmethode mit variabler Wahrscheinlichkeit vor, die die Planungserfolgsraten und die Recheneffizienz verbessert14.

Die vorliegende Studie befasst sich mit grundlegenden Herausforderungen in der autonomen Indoor-Navigation für mobile Roboter auf Rädern (WMRs), indem sie sowohl die Bahnplanungsstrategie als auch das SLAM-Frontend verbessert. Konkret ist das vorgeschlagene System für typische strukturierte Innenräume wie Labore und Korridore konzipiert, die unter Bedingungen mit mäßiger Beleuchtung und minimalem GNSS-Zugang betrieben werden. Das Navigationssystem verwendet hauptsächlich eine Stereo-RGB-D-Kamera, eine Inertial Measurement Unit (IMU) und Rad-Encoder, wobei alle Sensoren so konfiguriert sind, dass sie mit nicht weniger als 20 Hz abtasten. Um eine zuverlässige Systemleistung zu gewährleisten, ist die maximale Geschwindigkeit des Roboters auf unter 1,5 m/s begrenzt. Im Folgenden sind die wichtigsten Beiträge aufgeführt:

Es wurde eine autonome Multisensor-Fusionsnavigationsplattform für mobile Roboter auf Rädern (WMRs) entwickelt, bei der eine Tiefenkamera als primärer Sensor verwendet wird. Um eine genaue Lokalisierung und effiziente Hindernisvermeidung in typischen Innenräumen zu erreichen, integriert das System Radodometrie und eine Inertialmesseinheit (IMU). Die Synergie zwischen diesen Komponenten spielt eine entscheidende Rolle bei der Verbesserung der Gesamtleistung der Navigation.

Die Kombination von EPnP- und ICP-Algorithmen mit einer Quadtree-basierten Merkmalsextraktionstechnik hat dazu beigetragen, das Tracking-Modul in ORB-SLAM2 zu verbessern. Aus diesen Entwicklungen ergeben sich eine bessere Tracking-Genauigkeit und Robustheit.

Es wird eine neue Methode zur Bahnplanung vorgeschlagen, die den Schwerpunkt auf die Trajektorienoptimierung legt. Es basiert auf einer verbesserten RRT-Technik mit Torverzerrung und einstellbaren Schrittweiten und verwendet B-Spline-Kurven zur Trajektorienglättung. Der TEB-Algorithmus ist ebenfalls enthalten, um die Hindernisvermeidung in dynamischen Umgebungen zu verwalten.

Die Leistungsfähigkeit des Systems wird durch reale Tests und Simulationen bestätigt. Typische Innenumgebungen ermöglichen quantitative und qualitative Analysen, um die Kartengenauigkeit, die Pfadqualität und die Navigationsleistung zu bewerten. In Bezug auf Robustheit, Echtzeitverarbeitung und Trajektorienglätte übertrifft der vorgeschlagene Ansatz aktuelle Lösungen.

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Protokoll

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

1. Hardware-Plattform

  1. Bereiten Sie die zweirädrige mobile Roboterplattform mit Differentialantrieb vor, die für die Indoor-Navigation geeignet ist (siehe Abbildung 1). Diese Plattform verwendet zwei unabhängig voneinander angetriebene Räder, die in der Mitte des Chassis ausgerichtet sind, und passive Lenkräder vorne und hinten, um die mechanische Balance und Manövrierfähigkeit zu gewährleisten.
  2. Montieren Sie die Differentialantriebsräder entlang der mittleren Längsachse des Chassis. Verwenden Sie einen Sechskantschraubendreher, um die Radwellen auszurichten und in den Motornaben zu befestigen. Stellen Sie sicher, dass die Räder fest befestigt sind, sich aber frei drehen, ohne axial zu wackeln. Stellen Sie sicher, dass beide Räder genau ausgerichtet sind, um eine geradlinige Bewegung und eine genaue Odometrie zu gewährleisten.
  3. Installieren Sie die vorderen und hinteren Lenkrollen an beiden Enden des Fahrgestells zur mechanischen Unterstützung bei Kurven. Eine schlechte Ausrichtung kann bei Richtungsänderungen mit hoher Geschwindigkeit zu Instabilität oder Kippen führen.
  4. Montieren Sie eine Tiefenkamera mit strukturiertem Licht an der oberen Frontplatte des Gehäuses. Verwenden Sie eine verstellbare Halterung oder Klebehalterung, um die Kamera sicher zu befestigen. Richten Sie ihn so aus, dass das Sichtfeld ca. 0,3 m bis 3,0 m vor dem Roboter liegt.
  5. Schließen Sie den IR-Projektor und die Empfängermodule an das Kameragehäuse an und stellen Sie sicher, dass alle optischen Zentren richtig ausgerichtet sind. Passen Sie den Neigungswinkel der Kamera an, um die Tiefenwahrnehmung zu optimieren.
  6. Neigen Sie die Kamera mit der verstellbaren Halterung um 15°-30° nach unten. Stellen Sie sicher, dass kein Teil des Gehäuses das projizierte IR-Muster behindert. Dieser Winkel hilft bei der Erfassung von Nahfeld-Geländemerkmalen und der Vermeidung von toten Winkeln.
  7. Überprüfen Sie die Echtzeit-Tiefenausgabe der Kamera mit einer Visualisierungssoftware wie RViz (Version 1.14.1). Starten Sie den Kameraknoten und beobachten Sie den Tiefenbildstrom. Verbinden Sie die Tiefenkamera mit der Mikrocontroller-Einheit (MCU), die in der Mitte des Gehäuses montiert ist.
    HINWEIS: Stellen Sie sicher, dass die Stromversorgung während aller Verbindungen ausgeschaltet ist. Halten Sie die Kabel organisiert und von beweglichen Teilen fern, um ein Verheddern während der Bewegung zu verhindern.

2. Optimierung von ORB-SLAM2 für die Indoor-Kartierung

  1. Bereiten Sie die ORB-SLAM2-Umgebung vor. Kalibrieren Sie die Kamera (RGB-D) mit Standard-ROS-Kalibrierungswerkzeugen. Konfigurieren Sie die Startdatei, um Kamerathemen, Auflösung (z. B. 640 x 480) und Bildrate (z. B. 30 fps) anzugeben. Starten Sie das SLAM-System mit: xtark@tarkbot: $ roslaunch robot_platform slam map.launch slam _methods:=gmapping. Überprüfen Sie den Live-Kamera-Feed und die SLAM-Initialisierungsmeldungen im Terminal. Keyframes sollten nach dem Start der Bewegung angezeigt werden.
  2. Ändern Sie ORB-SLAM2, um die Zuordnung von Dichten zu unterstützen. Erweitern Sie das Standard-Mapping-Modul um einen dichten Rekonstruktionsthread, der Tiefendaten aus Keyframes verarbeitet.
  3. Für jeden ausgewählten Keyframe: Extrahieren Sie synchronisierte RGB- und Tiefenbilder, konvertieren Sie Tiefenpixel mithilfe von Kamerafunktionen in 3D-Punkte und fusionieren Sie akkumulierte Punktwolken über Keyframes hinweg mithilfe von Poseninformationen. Unterteilen Sie rekursiv jeden Bereich mit mehr als einem Schlüsselpunkt in vier Quadranten. Fahren Sie fort, bis jeder Blattknoten höchstens einen dominanten Schlüsselpunkt enthält oder die Bereichsgröße unter 10 x 10 Pixel liegt.
  4. Verbessern Sie die Feature-Verteilung mit einem Quadtree (siehe Abbildung 2). Ändern Sie das ORB-Feature-Extraktionsmodul so, dass es eine Quadtree-basierte räumliche Partitionierungsstrategie enthält. Unterteilen Sie das Bild in hierarchische Rasterbereiche, wenden Sie die FAST-Eckenerkennung in jedem Bereich an, und behalten Sie nur das auffälligste Merkmal pro Region bei, um eine gleichmäßige räumliche Abdeckung zu gewährleisten.
  5. Wählen Sie aus jeder gültigen Region den Kandidaten mit der höchsten Salienzantwort als repräsentatives Merkmal aus.
  6. Verbessern Sie die Posenschätzung mit EPnP. Ersetzen Sie die standardmäßige Posenschätzung (z. B. iterative Methoden) durch den Efficient Perspective-n-Point (EPnP)-Algorithmus unter Verwendung von OpenCVs solvePnP. Verwenden Sie 2D-Bildmerkmale und die entsprechenden 3D-Kartenpunkte, um die Kamerapose zu lösen.
  7. Setzen, visualisieren und steuern Sie den Roboter. Weisen Sie dem Onboard-System des Roboters eine statische IP-Adresse zu, um eine stabile Kommunikation zu gewährleisten (z. B. ROBOT IP: 172.20.10.13). Öffnen Sie auf dem Host-PC RViz (v1.14.1) und laden Sie die Konfiguration, um die Flugbahn des Roboters, spärliche und dichte Punktwolkenkarten, Keyframes und erkannte Merkmale zu visualisieren.
  8. Steuern Sie den Roboter manuell mit den Pfeiltasten der Tastatur, um durch den Bereich für die Kartierung zu navigieren. Stellen Sie sicher, dass die Trajektorienlinie in RViz angezeigt wird und die Posenbilder der Kamera in Echtzeit aktualisiert werden.
    HINWEIS: Abbildung 3 zeigt das Tastaturlayout für die manuelle Robotersteuerung während des Mappings.

3. Verarbeitung von Feature-Punkten mit dem Quadtree-Algorithmus

  1. Führen Sie die ORB-Feature-Extraktion wie unten beschrieben durch.
    1. Laden Sie das Eingabebild aus einem ROS-Bildthema oder einem lokalen Datensatz mit OpenCV (Version 4.5.3).
    2. Erstellen Sie eine Gaußsche Pyramide mit vier Ebenen, unterteilen Sie das Bild in gleichmäßige Gitterzellen (8 x 8 Zellen pro Ebene). Wenden Sie in jeder Zelle den FAST-Detektor mit einem Schwellenwert von 20 an, um lokale Schlüsselpunkte zu identifizieren.
  2. Konstruieren Sie eine Quadtree-basierte Feature-Verfeinerung wie unten beschrieben.
    1. Erstellen Sie für jeden Satz von Schlüsselpunkten auf einer bestimmten Pyramidenebene eine Quadtree-Struktur: Beginnen Sie mit dem vollständigen Bild als Wurzelknoten. Unterteilen Sie rekursiv jeden Bereich mit mehr als einem Schlüsselpunkt in vier Quadranten. Fahren Sie fort, bis jeder Blattknoten höchstens einen dominanten Schlüsselpunkt enthält oder die Bereichsgröße weniger als 10 x 10 Pixel beträgt.
  3. Wenden Sie die Merkmalsauffälligkeitsbewertung wie unten beschrieben an.
    1. Bewerten Sie die Salienz jedes Kandidatenschlüsselpunkts innerhalb eines Knotens mithilfe der Gleichung:
      figure-protocol-1(1)
      wobei ip der Intensitätswert des mittleren Pixels in einer lokalen Nachbarschaft und ii die Intensitätswerte der 16 benachbarten Pixel darstellt. Der absolute Unterschied |Ip - Ii| Misst den lokalen Kontrast zwischen dem mittleren Pixel und den Nachbarn. Die Summe über alle 16 Nachbarn liefert ein Maß für den gesamten lokalen Kontrast oder die Texturstärke um das mittlere Pixel.
    2. Ordnen Sie alle Kandidaten mithilfe einer dynamischen Prioritätswarteschlange ein, die nach dem Saliency-Score sortiert ist. Wählen Sie aus jeder gültigen Region den Kandidaten mit der höchsten Salienzantwort als repräsentatives Merkmal aus.
  4. Optimieren und validieren Sie die Merkmalsauswahl
    1. Kombinieren Sie alle ausgewählten Features auf Pyramidenebene. Stellen Sie eine gleichmäßige räumliche Abdeckung im gesamten Bild sicher. Speichern Sie die endgültigen Feature-Punkte und ihre Deskriptoren mit dem ORB-Deskriptor-Extraktor, dessen Version auf OpenCV abgestimmt ist.
    2. Stellen Sie sicher, dass Features nicht in einigen Bildbereichen gruppiert sind. Feature-Punkte sollten eine gleichmäßige räumliche Verteilung aufweisen, um eine robuste Verfolgung zu unterstützen. Vermeiden Sie es, die Bildverarbeitung in einem physischen Robotersystem auszuführen, während es sich in Bewegung befindet. Stellen Sie sicher, dass der Kamerastream stabil ist und der Arbeitsbereich geräumt ist.

4. Posenschätzung mit EPnP

  1. Erstellen Sie 2D-3D-Korrespondenzen, indem Sie mindestens vier übereinstimmende Paare von 3D-Kartenpunkten (in Weltkoordinaten) und die entsprechenden 2D-Bildschlüsselpunkte auswählen. Stellen Sie sicher, dass diese Entsprechungen aus gültigen ORB-Feature-Übereinstimmungen extrahiert werden, die im Tracking-Thread abgerufen wurden.
  2. Löse die Ausgangspose mit EPnP. Fahren Sie fort, bis jeder Blattknoten höchstens einen dominanten Schlüsselpunkt enthält oder die Bereichsgröße weniger als 10 x 10 Pixel beträgt. Verwenden Sie die solvePnP-Funktion von OpenCV mit dem Flag cv::SOLVEPNP_EPNP, um die Kamerapose zu schätzen.

5. Feine Pose-Verfeinerung mit ICP

  1. Führen Sie Punktwolken-Sampling wie unten beschrieben durch.
    1. Führen Sie ein Downsampling der Quellpunktwolke durch, um die Rechenlast zu reduzieren und redundante Daten zu entfernen.
    2. Verwenden Sie eine gleichmäßige Probenahme, um sicherzustellen, dass strukturelle Merkmale in allen Richtungen gleichmäßig beibehalten werden. Wenden Sie bei Bedarf eine Voxelgitterfilterung oder eine Zufallsauswahl basierend auf der Dichte und den Rauscheigenschaften der Eingabepunktwolke an. Stellen Sie sicher, dass die gefilterte Wolke die Objektkonturen beibehält und gleichzeitig die Gesamtpunktzahl um mindestens 50 % reduziert wird.
  2. Gleichen Sie entsprechende Punkte ab, indem Sie einen KD-Baum aus der Zielpunktwolke erstellen, um eine effiziente Suche nach dem nächsten Nachbarn zu ermöglichen. Für jeden Punkt in der heruntergerechneten Quellpunktwolke wird mit Hilfe des KD-Baums der nächstgelegene Punkt in der Zielwolke ermittelt. Stellen Sie die Genauigkeit des Punktabgleichs sicher, da sich dieser Schritt entscheidend auf die Registrierungsleistung auswirkt.
  3. Schätzen Sie die optimale Transformation wie unten beschrieben.
    1. Verwenden Sie die übereinstimmenden Punktpaare, um eine Starrkörper-Transformationsmatrix zu berechnen, die sowohl Drehung als auch Translation umfasst.
    2. Berechnen Sie die optimale starre Transformation zwischen den übereinstimmenden Punktpaaren, indem Sie den mittleren quadratischen Fehler () durch Singulärwertzerlegung (SVD) der Kreuzkovarianzmatrix minimieren, die die Rotationsmatrix direkt ergibt, gefolgt von der Berechnung des Translationsvektors basierend auf den gedrehten Schwerpunkten.
  4. Wenden Sie die berechnete Transformation auf die Quellpunktwolke an, und aktualisieren Sie alle Punktkoordinaten. Wiederholen Sie den Prozess der Punktabgleichs- und Transformationsschätzung iterativ. Fahren Sie mit der Iteration fort, bis entweder der Registrierungsfehler unter einen vordefinierten Schwellenwert fällt oder die maximale Anzahl von Iterationen erreicht ist.

6. Erstellung von Karten mit dichten Punktwolken

  1. Erstellen Sie eine dichte 3D-Punktwolkenkarte, um eine genaue und detaillierte Darstellung der Innenraumumgebungen zu erhalten. Führen Sie die unten beschriebenen Schritte (siehe Abbildung 4) aus.
  2. Extrahieren Sie RGB- und Tiefendaten aus Keyframes. Wählen Sie Keyframes basierend auf visueller Vielfalt und räumlicher Abdeckung aus. Extrahieren Sie aus jedem ausgewählten Keyframe sowohl das RGB-Bild als auch die entsprechende ausgerichtete Tiefenkarte vom RGB-D-Sensor.
  3. Konvertieren Sie Bildpixel in 3D-Kamerakoordinaten. Projizieren Sie für jedes gültige Tiefenpixel das 2D-Pixel mithilfe der systeminternen Kameraparameter in den 3D-Raum. Dabei werden 3D-Koordinaten im Koordinatensystem der Kamera generiert.
  4. Transformieren Sie Kamerakoordinaten in Weltkoordinaten. Rufen Sie die optimierte Kamerapose von ORB-SLAM2 für jedes Schlüsselbild ab. Verwenden Sie die Kamerapose, um die 3D-Kamerakoordinaten in das Weltkoordinatensystem zu transformieren und alle Punktwolken in einer gemeinsamen globalen Referenz auszurichten.
  5. Generieren Sie kolorierte 3D-Punkte. Weisen Sie jedem transformierten 3D-Punkt den entsprechenden RGB-Wert aus dem Originalbild zu. Das Ergebnis ist eine farbige Punktwolke, die sowohl die Geometrie als auch das Aussehen erfasst.
  6. Führen Sie Punktwolken aus allen Keyframes zusammen. Akkumulieren Sie alle transformierten und kolorierten Punktwolken in einer einheitlichen globalen Punktwolkenkarte. Stellen Sie sicher, dass die Ausrichtung korrekt ist, indem Sie die Kameraposen verwenden, die jedem Keyframe zugeordnet sind.
  7. Registrieren und verfeinern Sie die endgültige Karte mit PCL. Verwenden Sie die Punktwolkenbibliothek (Point Cloud Library, PCL), um die endgültige Karte zu verfeinern. Wenden Sie Filter an, um Rauschen zu entfernen, und Downsampling, um die Effizienz zu verbessern. Führen Sie eine globale Registrierung durch (z. B. mit ICP), um die Ausrichtung zwischen Punktwolken bei Bedarf zu optimieren (siehe Abbildung 5).
    HINWEIS: Wie in Abbildung 6 gezeigt, kann die anfängliche Ausrichtung der Punktwolke während der Initialisierungsphase der dichten Kartierung aufgrund begrenzter Beobachtungsdaten eine vorübergehende Fehlausrichtung aufweisen, die schnell konvergiert, wenn zusätzliche Standpunkte einbezogen werden. Durch die Steuerung des Roboters, der die Umgebung durchquert, kann ein vollständiges dreidimensionales Modell erhalten werden.

7. Generieren einer Belegungsrasterkarte aus VSLAM-abgeleiteten Punktwolken

  1. Führen Sie ein Downsampling der globalen Punktwolke mit hoher Dichte durch. Wenden Sie die Voxelgitterfilterung mit einer Voxelauflösung von 0,05 m an, um Redundanzen zu reduzieren und die räumliche Auflösung für die Netzkonstruktion zu definieren.
  2. Projizieren Sie 3D-Punkte in ein 2D-Belegungsraster. Projizieren Sie alle 3D-Punkte auf die horizontale Ebene (x-y). Diskretisieren Sie den Raum in einheitliche Gitterzellen, die jeweils ein Quadrat von 0,05 m x 0,05 m in der realen Welt darstellen.
  3. Schätzen Sie die Belegungswahrscheinlichkeiten. Verwenden Sie ein inverses Sensormodell, um die Belegungswahrscheinlichkeit jeder Zelle basierend auf der Punktdichte und der simulierten Raytracing zu berechnen.
    1. Legen Sie den Schwellenwert für die Belegungswahrscheinlichkeit auf 0,65 fest. Legen Sie den Schwellenwert für die freie Wahrscheinlichkeit auf 0,35 fest. Klassifizieren Sie Rasterzellen mit Zwischenwerten als unbekannt.
  4. Wenden Sie das Aufblasen von Hindernissen an. Blasen Sie die besetzten Bereiche auf, indem Sie einen kreisförmigen Kern mit einem Radius von 0,2 m anwenden, um den Roboterabstand und die Sicherheitsabstände zu berücksichtigen.
  5. Exportieren Sie die Belegungskarte. Speichern Sie die generierte Belegungsrasterkarte im Portable GrayMap-Format, zusammen mit einer entsprechenden m.yaml-Metadatendatei, um die Kompatibilität mit ROS-basierten Navigationssystemen sicherzustellen.

8. Verbesserte globale Pfadplanungsstrategie (basierend auf dem RRT-Algorithmus)

  1. Initialisieren Sie die Pfadstruktur. Legen Sie die Startposition des Roboters als Wurzelknoten des Baums fest. Stichprobenartiges Abtasten von Punkten im Konfigurationsraum (Zustandsraum), um neue Bereiche zu erkunden.
  2. Identifizieren Sie den nächstgelegenen vorhandenen Knoten. Berechnen Sie für jeden neu entnommenen Zufallspunkt den euklidischen Abstand zu allen vorhandenen Knoten. Wählen Sie den Knoten mit der geringsten Entfernung als nächstgelegenen Knoten aus, der als Erweiterungsbasis dienen soll.
  3. Generieren Sie einen neuen Knoten für die Zufallsstichprobe. Erstellen Sie einen Richtungsvektor vom nächstgelegenen Knoten in Richtung des aufgenommenen Punktes. Verschieben Sie einen festen Schritt (zunächst) in diese Richtung, um einen neuen Knoten zu bilden und ihn mit der Struktur zu verbinden.
  4. Ersetzen Sie die feste Schrittweite durch einen adaptiven Mechanismus. Anstatt eine konstante Schrittweite zu verwenden, passen Sie die Schrittlänge dynamisch basierend auf der lokalen Hindernisdichte an. Verwenden Sie größere Schritte in offenen Umgebungen, um die Baumerweiterung zu beschleunigen. Reduzieren Sie in unübersichtlichen oder engen Bereichen die Schrittgröße, um die Kontrolle und Hindernisvermeidung zu verbessern.
  5. Berechnen Sie die adaptive Schrittweite in Echtzeit, wie unten beschrieben.
    1. Verwenden Sie Sensordaten (z. B. LiDAR oder Tiefenkamera), um die Dichte von Hindernissen um den aktuellen Bereich herum zu schätzen.
    2. Wenn die Anzahl der erkannten Hindernisse gering ist, erhöhen Sie die Schrittweite leicht. Wenn die Hindernisse dicht sind, reduzieren Sie die Schrittweite proportional, um mehr Zwischenknoten für eine sichere Überquerung einzufügen.
  6. Iterieren Sie den Erweiterungsprozess. Fahren Sie mit der Stichprobe, der Suche nach dem nächstgelegenen Knoten und der Generierung neuer Knoten mit der adaptiven Schrittweite fort.
  7. Wenden Sie B-Spline-Kurven zum Glätten an. Ersetzen Sie die Polyliniensegmente im RRT-Pfad durch eine durchgehende B-Spline-Kurve, um die Glättung zu verbessern. Wählen Sie Kontrollpunkte entlang des ursprünglichen RRT-Pfads aus, in der Regel an Wendepunkten oder wichtigen Wegpunkten. Erstellen Sie ein Kontrollpolygon, indem Sie diese Passpunkte nacheinander verbinden.
  8. Generieren Sie die B-Spline-Kurve. Verwenden Sie die Standard-B-Spline-Formel15:
    figure-protocol-2(2)
    Diese Formel wird in B-Spline-Kurven verwendet, bei denen die endgültige Kurve C(u) eine gewichtete Kombination der Kontrollpunkte ist. Die Gewichtungen werden durch die B-Spline-Basisfunktionen Ni,k (u) bestimmt, die dafür sorgen, dass die Kurve glatt ist und der allgemeinen Form folgt, die durch die Kontrollpunkte definiert wird.
  9. Stellen Sie den Kurvengrad auf 3 (kubisch) ein, um die Kontinuität zu gewährleisten (glatte erste und zweite Ableitungen). Verwenden Sie das in PyCharm 2024.3 geschriebene Pfadplanungsmodul.

9. Lokale Trajektorienoptimierung mit modifiziertem TEB

  1. Führen Sie die Beschränkung für die kürzeste Entfernung ein, wie unten beschrieben.
    1. Um diese Nachteile zu mildern, integrieren Sie eine Einschränkung für die kürzeste Entfernung in das TEB-Framework.
    2. Definieren Sie die Randbedingung als den euklidischen Abstand zwischen der aktuellen Position St des Roboters und einer zukünftigen Pose Si+n entlang der Bahn:
      figure-protocol-3(3)
      Diese Einschränkung bestraft ineffiziente Abweichungen, indem sie dazu führt, dass der Pfad nahe am Rand des globalen Pfadkorridors bleibt, was die Planungsqualität und -sicherheit verbessert.
  2. Integrieren Sie die Abhängigkeit in die TEB-Kostenfunktion, indem Sie das ursprüngliche TEB-Optimierungsdiagramm so ändern, dass die Entfernungsbeschränkung als zusätzliche Kante eingeschlossen wird. Passen Sie die Gesamtkostenfunktion so an, dass sie einen gewichteten Term für fos enthält, um Glätte, Machbarkeit und Energieeffizienz auszugleichen.
  3. Integrieren Sie die Einschränkung in die TEB-Kostenfunktion. Lösen Sie während der Optimierung nach Trajektorienpunkten, die die Gesamtkosten minimieren, einschließlich Geschwindigkeit, Beschleunigung, Hindernisfreiheit und dem zusätzlichen Zeitraum für die kürzeste Entfernung. Verwenden Sie den zugrunde liegenden Solver von TEB, um die Trajektorie über N Zeitintervalle iterativ zu optimieren. Optimieren Sie den Pfad unter Berücksichtigung der Randbedingung (siehe Abbildung 7).

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Ergebnisse

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Evaluierung von verbessertem ORB-SLAM2
Experiment zur Merkmalsextraktion
Um die Wirksamkeit einer RGB-D-Tiefenkamera in der Praxis zu evaluieren, wurde ein Experiment zur Extraktion von Merkmalspunkten durchgeführt. Der Test wurde mit zwei unterschiedlichen Hintergrundumgebungen entwickelt, die sich jeweils in Objektfarbe und -helligkeit unterscheiden, um die reale visuelle Komplexität zu simulieren.

Sowohl die vorgeschlagene verbesserte Extraktionsmeth...

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Diskussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Die beiden Schlüsseltechnologien für autonome Innenraumnavigationssysteme für mobile Roboter auf Rädern, die im Mittelpunkt dieser Studie stehen, sind Visual Simultaneous Localization and Mapping (SLAM)16,17 und Pfadplanung18. Das SLAM-Modul schlägt eine Quadtree-basierte hierarchische Auswahlmethode vor, um die ungleichmäßige Merkmalspunktverteilung von ORB-SLAM2 zu korrigieren. Um die Genauigkeit der gen...

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Offenlegungen

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Die Autoren erklären, dass keine Interessenkonflikte bestehen.

Danksagungen

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Wir möchten Associate Professor Kok Hwa Yu von der Universiti Sains Malaysia unseren aufrichtigen Dank für seine unschätzbare Unterstützung während dieser Studie aussprechen. Wir schätzen auch die Unterstützung unseres Kommilitonen Jingtao Jia von der Kunming University of Science and Technology, dessen Unterstützung wesentlich zum Erfolg dieser Arbeit beigetragen hat.

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Materialien

Liste der in diesem Artikel verwendeten Materialien
NameUnternehmenKatalognummerKommentare
Astra Pro Plus 3D-KameraCRBBECNichts3D-Kamera
TARKBOT-R20-TWDNichtsNichtsROS Roboter

Referenzen

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Qin, T., Li, P., Shen, S. VINS-Mono: a robust and versatile monocular visual-inertial state estimator. IEEE T Robot. 34 (4), 1004-1020 (2018).
  2. Campos, C., Elvira, R., Rodríguez, J. J. G., Montiel, J. M. M., Tardós, J. D. ORB-SLAM3: an accurate open-source library for visual, visual-inertial and multi-map SLAM. IEEE T Robot. 37 (6), 1874-1890 (2021).
  3. SuperPoint: self-supervised interest point detection and description. DeTone, D., Malisiewicz, T., Rabinovich, A. Proc IEEE Conf Comp Vision Pattern Recognit Workshops, , 224-236 (2018).
  4. SuperGlue: learning feature matching with graph neural networks. Sarlin, P. E., DeTone, D., Malisiewicz, T., Rabinovich, A. Proc IEEE/CVF Conf Comp Vision Pattern Recognit, , 4938-4947 (2020).
  5. Dai, A., Nießner, M., Zollhöfer, M., Izadi, S., Theobalt, C. BundleFusion: real-time globally consistent 3D reconstruction using on-the-fly surface reintegration. ACM T Graphic. 36 (4), 1(2017).
  6. LaValle, S. M. Technical Report No. 98-11. Rapidly-exploring random trees: a new tool for path planning. , Iowa State University. (1998).
  7. Karaman, S., Frazzoli, E. Sampling-based algorithms for optimal motion planning. Int J Robot Res. 30 (7), 846-894 (2011).
  8. Rösmann, C., Hoffmann, F., Bertram, T. Integrated online trajectory planning and optimization in distinctive topologies. Robot Auton Syst. 88, 142-153 (2017).
  9. Fox, D., Burgard, W., Thrun, S. The dynamic window approach to collision avoidance. IEEE Robot Autom Mag. 4 (1), 23-33 (1997).
  10. Chen, Y., Zhong, L., Liu, S. Semantic-aware informative path planning for autonomous exploration with micro aerial vehicles. IEEE T Robot. 38 (5), 3122-3138 (2022).
  11. Kabiri, M., Vos, H., Atia, M. M. 5G-enhanced visual-inertial SLAM for robust localization in GNSS-denied environments. IEEE T Intell Transp Syst. 24 (6), 6421-6435 (2023).
  12. Xu, W., Zhang, F. FAST-LIO2: fast direct LiDAR-inertial odometry. IEEE T Robot. 37 (4), 1150-1166 (2021).
  13. Gammell, J. D., Barfoot, T. D. Informed sampling for motion planning in dynamic environments. Int J Robot Res. 41 (5), 517-540 (2022).
  14. Coleman, D., Srinivasa, S. S. Variable probability sampling for motion planning in narrow passages. IEEE Robot Autom Lett. 8 (2), 1024-1031 (2023).
  15. The NURBS Book. Piegl, L., Tiller, W. , 2nd ed, Springer-Verlag. (1997).
  16. Durrant-Whyte, H., Bailey, T. Simultaneous localization and mapping: part I. IEEE Robot Autom Mag. 13 (2), 99-110 (2006).
  17. Bailey, T., Durrant-Whyte, H. Simultaneous localization and mapping: part II. IEEE Robot Autom Mag. 13 (3), 108-117 (2006).
  18. Zhang, L., Wang, X., Yang, J. Hybrid motion planning for mobile robots using enhanced RRT and dynamic window approach. IEEE T Robot. 39 (2), 1123-1137 (2023).
  19. RRT-connect: an efficient approach to single-query path planning. Kuffner, J. J., LaValle, S. M. Proc IEEE Int Conf Robotics Automat, 2, 995-1001 (2000).

Zugriff eingeschränkt. Bitte melden Sie sich an oder starten Sie eine Testversion, um diesen Inhalt anzuzeigen.

Nachdrucke und Genehmigungen

Genehmigung beantragen, um den Text oder die Abbildungen dieses JoVE-Artikels zu verwenden

Genehmigung beantragen

Schlagwörter

MerkmalszuordnungPunktwolkenrekonstruktionRapidly Exploring Random TreeTimed Elastic BandPosenoptimierungRobot Operating System

Verwandte Artikel