La technologie utilisée dans la navigation robotique est en constante évolution, mais il reste quelques obstacles majeurs à franchir pour que la navigation soit véritablement autonome. Les nouvelles solutions de NVIDIA font de cette prochaine étape une réalité. Dans cet article, découvrez comment les systèmes ROS et ROS2 accélérés par GPU, ainsi que les algorithmes VSLAM et les packages Nvblox offrent une navigation robotique autonome (AMR) plus efficace en utilisant moins de puissance CPU.
Introduction
La navigation autonome est une étape vitale pour les systèmes robotiques. L'un des aspects essentiels de la navigation des robots mobiles autonomes (AMR) est le « SLAM visuel », ou la localisation et la cartographie visuelles simultanées. Visual SLAM est une technique qui utilise des images capturées par une caméra pour cartographier simultanément l'environnement et estimer la position du robot. L'atterrisseur Phoenix, le rover Opportunity et l'hélicoptère Ingenuity utilisés pour l'exploration de mars utilisent des algorithmes visuels SLAM pour la navigation et l'atterrissage autonomes. Il existe aussi des applications pour les robots aspirateurs, pour l'endoscopie et pour les robots aériens, terrestres et sous-marins sans pilote, où les machines automatisent les tâches.
Visual SLAM nécessite une grande puissance de calcul pour estimer les poses et générer une carte à partir des images acquises par une caméra. La plupart des algorithmes Visual SLAM (VSLAM) utilisent la puissance du processeur, ce qui limite l'estimation des poses en temps réel et la création de cartes. Isaac ROS (Robot Operating System), VSLAM et Nvblox sont des packages ROS2 accélérés par GPU qui aident à estimer les poses et à créer la carte de l'environnement pour la navigation des robots mobiles autonomes en temps réel. Des expérimentations sont menées pour voir dans quelle mesure les Isaac ROS VSLAM et Nvblox fonctionnent avec les caméras Realsense pour la navigation autonome des AMR.
Pipeline NVIDIA ISAAC ROS Visual SLAM et Nvblox
La Figure 1 montre le fonctionnement et l'intégration du pipeline NVIDIA ISAAC ROS Visual SLAM et Nvblox. Ici, le VSLAM estime les poses et Nvblox reconstruit la carte du milieu environnant pour la navigation autonome du robot.

NVIDIA Isaac ROS VSLAM est un package ROS2 qui effectue simultanément la localisation et le mappage visuel stéréo. Il calcule l'odométrie inertielle visuelle stéréo à l'aide d'une paire d'images stéréo synchronisées dans le temps et utilise la bibliothèque accélérée par GPU Isaac Elbrus. L'odométrie inertielle visuelle, l'optimisation et la cartographie sont les trois composants d'Isaac ROS VSLAM. L'odométrie visuelle (VO) est une technique permettant d'estimer la position de la caméra par rapport à son point de départ. La pose VO montrée dans la Figure 1 est estimé par VO. La méthode de localisation et de cartographie visuelles simultanées (VSLAM) est construite par-dessus la pose VO et vise à améliorer la qualité des poses VO en détectant la fermeture de boucle et en estimant les poses SLAM à l'aide de parties de l'environnement vues précédemment. En plus des données visuelles, Elbrus peut utiliser les mesures d'une unité de mesure inertielle (IMU). Lorsque VO est incapable d'estimer une pose, par exemple en cas de mauvais éclairage ou d'une longue surface sans relief devant la caméra, il passe en IMU. La Figure 1 montre les poses SLAM estimées par V-SLAM.
NVIDIA Isaac ROS Nvblox est un package ROS2 utilisé pour la reconstruction 3D en temps réel de l'environnement autour de l'AMR à partir d'images de caméra. La reconstruction est destinée à être utilisée par les planificateurs de chemins pour générer un chemin de navigation sûr. Nvblox utilise NVIDIA CUDA pour accélérer ce processus et permettre un fonctionnement en temps réel. Ce référentiel contient l'intégration ROS2 pour la bibliothèque principale Nvblox. L'algorithme Nvblox est composé de trois composants clés : la fonction de distance signée tronquée (TSDF), le maillage et la fonction de distance signée euclidienne (ESDF). Nvblox utilise une image RVB, une image de profondeur et une pose SLAM comme maillages d'entrée et de sortie pour la visualisation, ainsi qu'une carte de tranches de distance pour la planification du chemin. Nvblox génère une tranche de carte de distance 2D et un maillage 3D à partir d'un flux d'images RVB et de profondeur et de la pose correspondante de l'image de profondeur. Le flux d’images RVB, utilisé pour colorer la reconstruction 3D de l’environnement environnant à des fins de visualisation, est facultatif. La tranche de carte de distance 2D montre la distance entre chaque point et l'obstacle reconstruit le plus proche et un maillage 3D pour la visualisation RVIZ. La reconstruction 3D du milieu environnant pour la visualisation est facultative. La tranche de carte de distance 2D affiche la distance entre chaque point et l'obstacle reconstruit le plus proche, ainsi qu'un maillage 3D pour la visualisation RVIZ.
Explication du pipeline de pile Isaac ROS VSLAM, Nvblox et Nav2
L'ensemble du pipeline pour la navigation autonome AMR utilisant Isaac ROS V-SLAM, Nvblox et la pile Nav2 est représenté dans la Figure 2. Ce pipeline est composé de cinq nœuds : le nœud de caméra Realsense, le nœud Isaac ROS V-SLAM, le nœud Isaac ROS Nvblox, le nœud Nav2 et le nœud Rviz. Le paragraphe suivant explique chaque bloc.

Le nœud de caméra Realsense capture des images de la caméra Realsense et publie des images RVB, de profondeur, infra-1 et infra-2. Infra-1 et Infra-2 sont des images infrarouges. Les images infra-1 et infra-2 sont souscrites par le bloc Isaac ROS V-SLAM, qui publie la pose et le tf. Le bloc Isaac ROS Nvblox génère une carte de tranche de distance en s'abonnant à l'image RVB, à l'image de profondeur, à la pose et au tf. Pour la planification du chemin et la navigation, le nœud Nav2 utilise une carte de tranches de distance. Le nœud Nav2 est le système de contrôle qui permet à un AMR d'atteindre un état d'objectif de manière autonome en utilisant une pose actuelle, une carte et un objectif, tel qu'une pose de destination. Le nœud Nav2 trace un chemin vers l'état de l'objectif et envoie des commandes à l'AMR pour suivre le chemin prévu vers la position de l'objectif. Rviz est un outil utile pour visualiser des images, des odométries et des cartes générées, et pour fournir une pose d'objectif à l'AMR.
Résultats expérimentaux
La Figure 3 montre l'AMR, ce qu'il voit à travers la caméra RealSense montée dessus, et la carte de nuage de points 3D résultante sous forme de maillage. La Figure 4 affiche la carte créée avec l'état de l'objectif donné, le chemin prévu et l'AMR arrivant en toute sécurité à l'état objectif en suivant le chemin planifié.


Conclusion
Pour naviguer de manière autonome dans l'AMR dans le laboratoire, une caméra Intel RealSense a été intégrée aux piles Isaac ROS VSLAM, Isaac ROS Nvblox et Nav2. L'AMR s'est déplacé dans un environnement de laboratoire à des fins de cartographie et de navigation. Isaac ROS VSLAM a réussi à estimer l'odométrie de l'AMR tout en créant une carte de l'environnement autour de l'AMR. Grâce à l'accélération GPU, les pipelines NVIDIA Isaac ROS VSLAM et Nvblox offrent des performances en temps réel. Simultanément, l'algorithme VSLAM a localisé sa position sur la carte et a créé une carte pour une navigation sûre. Nous espérons que la démonstration de nos expériences aidera les ingénieurs en robotique à développer des produits robotiques commerciaux. Pour plus de détails, vous pouvez contacter les auteurs.