$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
1. Configuration de l’environnement logiciel
Une station de travail basée sur Linux fonctionnant sous Ubuntu 20.04 et le système d’exploitation Robot (ROS) Noetic a été utilisée comme plateforme principale de développement pour la mise en œuvre de systèmes d’auto-localisationsous-marins 17. Le système a été initialisé en créant un espace de travail catin avec mkdir -p ~/catkin_ws/src, puis en l’initialisant avec catkin_init_workspace. Les paquets uuv_simulator et aruco_ros ont été clonés dans le répertoire source et compilés à l’aide de la commande catkin_make pour soutenir la modélisation d’intervention sous-marine.
La connectivité entre le middleware ROS et le simulateur Gazebo 9 a été vérifiée en lançant un monde sous-marin par défaut et en confirmant la communication active via la commande rostopic list. Les nœuds de traitement d’image et d’estimation de la pose ont été implémentés en Python 3.8 et en bibliothèques intégrées ArUco pour calculer la pose relative via OpenCV. L’environnement ROS a été configuré pour gérer les dépendances et permettre la communication de données en temps réel, permettant au robot de se localiser par rapport à plusieurs marqueursartificiels 18. Cette configuration permettait également d’évaluer la performance de détection des marqueurs dans des conditions variables. La figure 1 illustre la communication entre les nœuds de simulation, de perception et de visualisation dans l’environnement ROS–Gazebo.
2. Modèle UUV et paramétrisation hydrodynamique
Le modèle de véhicule RexRov2 a été obtenu à partir du paquet uuv_descriptions et lancé en Gazebo à l’aide de son fichier5 Unified Robot Description Format (URDF). Le modèle du véhicule était composé de maillons et de joints, avec une masse sèche de 1 863 kg et un déplacement volumique de 1,838m3, correspondant à une flottabilité quasi neutre dans une eau à densité de 1 000 kg/m3.
Les effets hydrodynamiques ont été modélisés à l’aide du uuv_underwater_object_plugin, incluant les forces d’amortissement linéaires et quadratiques. Le coefficient de surtension de masse ajouté a été fixé à 779,79, et les paramètres d’amortissement ont été calibrés en fonction des caractéristiques rapportées du RexRov2 pour simuler un mouvement réaliste duvéhicule 19. La figure 2 montre l’architecture globale de la simulation.

Figure 2 : Architecture globale de l’environnement de simulation. La figure montre l’intégration du modèle UUV, des entrées des capteurs, du pipeline de perception et des modules de contrôle utilisés pour l’estimation de la pose et la navigation. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
3. Installation caméra, marqueur et environnement
Un appareil photo monoculaire était fixé au cadre rexrov2/camera_link. Les paramètres de l’appareil étaient réglés à 1280 × 720 pixels et 30 Hz. Les paramètres intrinsèques étaient définis dans le fichier de configuration de l’appareil avec une focale de 554,25 pixels et un point principal à (640,5, 360,5).
Un marqueur vertical fixe d’ArUco d’une longueur latérale de 0,5 m, sélectionné à partir du dictionnaire 6×6_250 (ID : 582), était positionné aux coordonnées (20,0, 0,0, -10,0). L’environnement simulé était configuré avec une profondeur d’eau de 10 m et une vitesse de courant constante de 0,1 m/s dans la direction X à l’aide du service ROS /uuv_simulation_app/set_current_velocity. Une intensité lumineuse de 0,8 a été utilisée pour assurer la visibilitédes marqueurs 9. La figure 3 montre l’environnement sous-marin simulé.

Figure 3 : Environnement sous-marin simulé dans le kiosque 9. L’environnement comprend le UUV RexRov2, des marqueurs virtuels ArUco, ainsi que des conditions environnementales contrôlées telles que la profondeur de l’eau, l’éclairage et le courant. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
4. Estimation de la pose et contrôle de la navigation
Le pipeline de détection des marqueurs a été lancé via le nœud ROS ArUco, qui s’abonnait au sujet /rexrov2/forward_camera/image_raw. La pose du véhicule a été estimée en utilisant la méthode Perspective-n-Point (PnP) pour calculer la matrice de rotation (R) et le vecteur de translation (t) par rapport à la géométrie connue du marqueur 3D.
La pose estimée a été transformée de l’image de la caméra à l’image de référence globale à l’aide d’un éditeur de transformées statiques. Un contrôleur PID était utilisé pour réguler le mouvement du véhicule en envoyant des commandes de vitesse au sujet /rexrov2/thruster_manager/input. Les gains proportionnels (Kp) pour les axes de surtension et de soulèvement ont été fixés à 1500 et 2000, respectivement, afin d’assurer une performance de suivistable de 20.
5. Évaluation et comparaison de la réalité de terrain
L’accord entre les estimations de la pose basées sur la vision et la trajectoire simulée a été évalué à l’aide du sujet /rexrov2/pose_gt fourni par le plugin uuv_gazebo_ros_p3d. La pose estimée du pipeline basé sur ArUco a été comparée aux données d’odométrie fiables pour évaluer la stabilité et la cohérence du système.
L’évaluation a été réalisée par comparaison de trajectoire et visualisation en temps réel, où la position (X, Y, Z) et l’orientation (roulis, tangage, lacet) ont été surveillées à l’aide de Rviz et rqt_plot. Cela permettait d’observer des écarts dans des conditions nominales et induites par la perturbation.
L’étude se concentre sur l’évaluation qualitative et comparative. L’évaluation quantitative utilisant l’erreur quadratique moyenne de la racine (RMSE) est identifiée comme un travail futur, où plusieurs simulations seront utilisées pour évaluer l’erreur de position et d’orientation.
6. Génération et visualisation des résultats
Rviz a été utilisé comme outil de visualisation 3D pour surveiller la trajectoire et l’attitude de l’UUV. Les référentiels de coordonnées /rexrov2/camera_link et /aruco_marker_frame ont été visualisés pour évaluer la relation spatiale entre le véhicule et le marqueur2.
L’outil rqt_plot était utilisé pour générer des graphiques en temps réel de l’attitude du véhicule (roulis, tangage, lacet) en utilisant les sujets /rexrov2/pose_gt et /aruco_pose. La commande rosbag record était utilisée pour capturer les données de simulation, y compris les flux vidéo et les entrées de contrôle, pour une analyse qualitative.
La simulation a été réalisée dans des conditions visuelles idéales, en supposant un bon éclairage et une faible turbidité. On supposait que le marqueur ArUco restait sans obstruction. Les effets d’amortissement hydrodynamique ont été modélisés à l’aide de coefficients simplifiés, et le bruit des capteurs n’a pas été inclus.