AMR-Navigation mit ISAAC ROS VSLAM und Nvblox mit Intel RealSense-Kamera

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.

Block Diagram of Isaac ROS VSLAM and Nvblox
Abbildung 1: Blockdiagramm von Isaac ROS VSLAM und Nvblox

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.

Isaac ROS VSLAM Nvblox and NAV2 pipeline
Abbildung 2: Isaac ROS VSLAM, Nvblox und NAV2-Pipeline

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.

AMR images with generated 3d map
Abbildung 3: Das Bild links zeigt den AMR in der Laborumgebung, das Bild in der Mitte die vom AMR erfasste Umgebung und das Bild rechts die generierte 3D-Karte als Netz.

AMR generated map goal state
Abbildung 4: Die Abbildung links zeigt die generierte Karte mit dem gegebenen Ziel, die zweite Abbildung den geplanten Pfad und die dritte Abbildung rechts verdeutlicht, dass der AMR das Ziel erreicht hat.

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.


Neue Beiträge

Leider ergab Ihre Suche kein Ergebnis

Aktuelles über Elektronikkomponenten­

Wir haben unsere Datenschutzbestimmungen aktualisiert. Bitte nehmen Sie sich einen Moment Zeit, diese Änderungen zu überprüfen. Mit einem Klick auf "Ich stimme zu", stimmen Sie den Datenschutz- und Nutzungsbedingungen von Arrow Electronics zu.

Wir verwenden Cookies, um den Anwendernutzen zu vergrößern und unsere Webseite zu optimieren. Mehr über Cookies und wie man sie abschaltet finden Sie hier. Cookies und tracking Technologien können für Marketingzwecke verwendet werden.
Durch Klicken von „RICHTLINIEN AKZEPTIEREN“ stimmen Sie der Verwendung von Cookies auf Ihrem Endgerät und der Verwendung von tracking Technologien zu. Klicken Sie auf „MEHR INFORMATIONEN“ unten für mehr Informationen und Anleitungen wie man Cookies und tracking Technologien abschaltet. Das Akzeptieren von Cookies und tracking Technologien ist zwar freiwillig, das Blockieren kann aber eine korrekte Ausführung unserer Website verhindern, und bestimmte Werbung könnte für Sie weniger relevant sein.
Ihr Datenschutz ist uns wichtig. Lesen Sie mehr über unsere Datenschutzrichtlinien hier.