Die Technologie hinter der Roboternavigation hat sich ständig weiterentwickelt. Es bleiben jedoch signifikante Hürden bis zur wahrhaften Autonomie. Neue Lösungen von NVIDIA lassen die Autonomie aber näher rücken. In diesem Artikel erfahren Sie, wie GPU-beschleunigte ROS- und ROS2-Systeme sowie VSLAM-Algorithmen und Nvblox-Pakete effizientere autonome Roboternavigation (AMR) mit weniger CPU-Leistung ermöglichen.
Einleitung
Autonome Navigation ist für Robotersysteme von besonderer Bedeutung. Eines der wesentlichen Elemente der autonomen Navigation mobiler Roboter (AMR) ist Visual SLAM (Visual Simultaneous Localization and Mapping). Visual SLAM nutzt die von einer Kamera erfassten Bilder, um gleichzeitig die Umgebung zu kartieren und die Position des Roboters zu schätzen. Der Lander Phoenix, der Rover Opportunity und der Helikopter Ingenuity, die zur Erkundung des Mars eingesetzt wurden, nutzten VSLAM-Algorithmen für autonome Navigation und Landung. Weitere Anwendungen sind Staubsauger, Endoskopie sowie unbemannte Luft-, Boden- und Unterwasserroboter, die Arbeiten automatisieren.
Visual SLAM benötigt viel Rechenleistung, um Positionen und Ausrichtungen zu schätzen und eine Karte aus den von einer Kamera erfassten Bildern zu erstellen. Die meisten VSLAM(Visual SLAM)-Algorithmen nutzen CPU-Leistung. Dadurch werden die Schätzung von Position und Ausrichtung in Echtzeit sowie die Kartenerstellung beeinträchtigt. Isaac ROS (Robot Operating System), VSLAM und Nvblox sind GPU-beschleunigte ROS2-Pakete zur Unterstützung der Schätzung von Position und Ausrichtung und zur Erstellung der Umgebungskarte für die autonome Navigation mobiler Roboter. Es werden Experimente durchgeführt, um zu ermitteln, wie gut Isaac ROS VSLAM und Nvblox mit RealSense-Kameras im Bereich der autonomen Navigation von AMRs zusammenarbeiten.
NVIDIA ISAAC ROS Visual SLAM und Nvblox Pipeline
Abbildung 1 zeigt Funktionsweise und Integration der NVIDIA ISAAC ROS Visual SLAM- und Nvblox-Pipeline. Hier schätzt der VSLAM-Algorithmus Positionen und Ausrichtungen und Nvblox rekonstruiert die Umgebungskarte für die autonome Navigation des Roboters.

NVIDIA Isaac ROS VSLAM ist ein ROS2-Paket, das die visuelle Stereolokalisierung und Kartierung gleichzeitig durchführt. Es berechnet die Stereo-VIO (Visual Inertial Odometry) unter Verwendung eines zeitsynchronisierten Paars von Stereobildern und nutzt die Bibliothek GPU-beschleunigter Funktionen von Isaac Elbrus. VIO (Visual Inertial Odometry), Optimierung und Kartierung sind die drei Komponenten des Isaac ROS VSLAM. Visuelle Odometrie (VO) ist eine Technik, die der Schätzung der Position einer Kamera relativ zum Ausgangspunkt dient. Die in Abbildung 1 gezeigte VO-Position und -Ausrichtung wird von VO geschätzt. Das VSLAM(Visual Simultaneous Localization and Mapping)-Verfahren setzt auf VO-Position und -Ausrichtung auf und soll die Qualität von VO-Position und -Ausrichtung mittels Loop-Closure-Erkennung sowie die Schätzung von SLAM-Positionen und -Ausrichtungen anhand zuvor erfasster Bereiche der Umgebung verbessern. Ergänzend zu den visuellen Daten kann Elbrus auch Messungen eines Trägheitsmessers (IMU) nutzen. Wenn VO eine Position und Ausrichtung nicht schätzen kann, weil beispielsweise das Licht schlecht ist oder eine lange Oberfläche vor der Kamera keine Strukturen aufweist, wird auf den IMU umgeschaltet. Abbildung 1 zeigt die von V-SLAM geschätzten SLAM-Positionen und -Ausrichtungen.
NVIDIA Isaac ROS Nvblox ist ein ROS2-Paket für die 3D-Rekonstruktion der Umgebung des AMR aus Kamerabildern in Echtzeit. Die Rekonstruktion kann von den für die Planung des Pfads zuständigen Komponenten genutzt werden, um einen sicheren Pfad zu entwickeln. Nvblox nutzt NVIDIA CUDA, um diesen Prozess zu beschleunigen und einen Betrieb in Echtzeit zu ermöglichen. Dieses Repository enthält die ROS2-Integration für die Nvblox-Kernbibliothek. Der Nvblox-Algorithmus besteht aus drei Schlüsselkomponenten: TSDF (Truncated Signed Distance Function), Netz und ESDF (Euclidean Signed Distance Function). Nvblox verwendet ein RGB-Bild, ein Tiefenbild und eine SLAM-Position und -Ausrichtung als Eingabedaten und gibt Netze zur Visualisierung sowie eine Distanzenkarte für die Planung des Pfads aus. Nvblox generiert aus einem Stream von RGB- und Tiefenbildern und der entsprechenden Position und Ausrichtung im Tiefenbild eine 2D-Distanzenkarte und ein 3D-Netz. Der RGB-Bildstream, der zur Kolorierung der 3D-Rekonstruktion der Umgebung für die Visualisierung genutzt wird, ist optional. Die 2D-Distanzenkarte zeigt die Distanzen zwischen jedem Punkt und dem nächstgelegenen rekonstruierten Hindernis sowie ein 3D-Netz für die RVIZ-Visualisierung. Die 3D-Rekonstruktion der Umgebung zur Visualisierung ist optional. Die 2D-Distanzenkarte zeigt die Entfernung zwischen jedem Punkt und dem nächstgelegenen rekonstruierten Hindernis sowie ein 3D-Netz für die RVIZ-Visualisierung.
Erläuterung von Isaac ROS VSLAM, Nvblox und Nav2-Stack-Pipeline
Die gesamte Pipeline für die autonome AMR-Navigation mit Isaac ROS V-SLAM, Nvblox und Nav2-Stack ist in Abbildung 2 dargestellt. Diese Pipeline besteht aus fünf Knoten: RealSense-Kameraknoten, Isaac ROS V-SLAM-Knoten, Isaac ROS Nvblox-Knoten, Nav2-Knoten und Rviz-Knoten. Im folgenden Absatz werden die einzelnen Blöcke beschrieben.

Der RealSense-Kameraknoten erfasst Bilder der RealSense-Kamera und veröffentlicht RGB-, Tiefen-, Infra-1- und Infra-2-Bilder. Infra-1 und Infra-2 sind Infrarotbilder. Die Infra-1- und Infra-2-Bilder werden vom Isaac ROS V-SLAM-Block abonniert, um Position und Ausrichtung sowie tf zu veröffentlichen. Der Isaac ROS Nvblox-Block generiert eine Distanzenkarte, indem RGB-Bild, Tiefenbild, Ausrichtung und Position sowie if abonniert werden. Für Pfadplanung und Navigation nutzt der Nav2-Knoten eine Distanzenkarte. Der Nav2-Knoten ist das Steuersystem, mit dem ein AMR einen Zielzustand autonom unter Verwendung der aktuellen Position und Ausrichtung, einer Karte und eines Ziels (beispielsweise Zielposition und -ausrichtung) erreichen kann. Der Nav2-Knoten entwirft einen Pfad zum Ziel und sendet Befehle an den AMR, damit dieser dem geplanten Pfad zur Zielposition folgt. Rviz ist ein nützliches Tool zur Visualisierung von Bildern, Odometrie und generierten Karten sowie zur Bereitstellung einer Zielposition und -ausrichtung für den AMR.
Ergebnisse der Experimente
Abbildung 3 zeigt den AMR, das von der auf dem AMR montierten RealSense-Kamera erfasste Bild und die resultierende 3D-Punktwolkenkarte als Netz. Abbildung 4 zeigt die erstellte Karte mit gegebenem Ziel, geplantem Pfad und AMR, der das Ziel sicher erreicht, indem er dem geplanten Pfad folgt.


Fazit
Damit der AMR im Labor autonom navigieren kann, wurde eine Intel RealSense-Kamera in die Isaac ROS VSLAM-, Isaac ROS Nvblox- und Nav2-Stacks integriert. Der AMR bewegte sich zu Kartierungs- und Navigationszwecken in einer Laborumgebung. Isaac ROS VSLAM hat die Odometrie des AMR erfolgreich geschätzt und gleichzeitig eine Karte der Umgebung des AMR erstellt. Dank GPU-Beschleunigung ermöglichen NVIDIA Isaac ROS VSLAM- und Nvblox-Pipelines dies in Echtzeit. Gleichzeitig hat der VSLAM-Algorithmus die Position auf der Karte bestimmt und eine Karte für die sichere Navigation erstellt. Wir hoffen, dass unsere Experimente Robotertechnikern bei der Entwicklung verschiedener kommerzieller Roboterprodukte helfen werden. Weitere Details können bei den Autoren erfragt werden.