$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
1. Configuração do ambiente de software
Uma estação de trabalho baseada em Linux rodando Ubuntu 20.04 e o Sistema Operacional de Robôs (ROS) Noetic foi usada como principal plataforma de desenvolvimento para implementar sistemas de autolocalizaçãosubaquática 17. O sistema foi inicializado criando um espaço de trabalho catkin com mkdir -p ~/catkin_ws/src e depois inicializando-o com catkin_init_workspace. Os pacotes uuv_simulator e aruco_ros foram clonados no diretório de origem e compilados usando o comando catkin_make para suportar modelagem de intervenção subaquática.
A conectividade entre o middleware ROS e o simulador Gazebo 9 foi verificada lançando um mundo subaquático padrão e confirmando a comunicação ativa pelo comando rostopic list. Os nós de processamento de imagem e estimativa de pose foram implementados usando Python 3.8 e bibliotecas integradas ArUco para calcular a pose relativa usando OpenCV. O ambiente ROS foi configurado para gerenciar dependências e permitir a comunicação de dados em tempo real, possibilitando que o robô se localizasse em relação a múltiplos marcadoresartificiais 18. Essa configuração também permitiu a avaliação do desempenho da detecção de marcadores sob condições variadas. A Figura 1 ilustra a comunicação entre os nós de simulação, percepção e visualização no ambiente ROS–Gazebo.
2. Modelo UUV e parametrização hidrodinâmica
O modelo do veículo RexRov2 foi obtido a partir do pacote uuv_descriptions e lançado no Gazebo usandoseu arquivo 5 no Formato Unificado de Descrição de Robôs (URDF). O modelo do veículo consistia em elans e juntas, com massa seca de 1.863 kg e deslocamento volumétrico de 1,838m³, correspondendo a uma flutuabilidade quase neutra em águas com densidade de 1.000 kg/m³.
Os efeitos hidrodinâmicos foram modelados usando o uuv_underwater_object_plugin, incluindo forças de amortecimento lineares e quadráticas. O coeficiente de surto de massa adicionado foi definido para 779,79, e os parâmetros de amortecimento foram calibrados com base nas características relatadas do RexRov2 para simular o movimento realistado veículo 19. A Figura 2 mostra a arquitetura geral da simulação.

Figura 2: Arquitetura geral do ambiente de simulação. A figura mostra a integração do modelo UUV, entradas de sensores, pipeline de percepção e módulos de controle usados para estimativa de poses e navegação. Por favor, clique aqui para ver uma versão ampliada desta figura.
3. Configuração de câmera, marcador e ambiente
Uma câmera monocular era acoplada à estrutura rexrov2/camera_link. Os parâmetros da câmera foram definidos para 1280 × 720 pixels e 30 Hz. Parâmetros intrínsecos foram definidos no arquivo de configuração da câmera com distância focal de 554,25 pixels e ponto principal em (640,5, 360,5).
Um marcador vertical fixo de ArUco com comprimento lateral de 0,5 m, selecionado do dicionário 6×6_250 (ID: 582), foi posicionado nas coordenadas (20,0, 0,0, -10,0). O ambiente simulado foi configurado com uma profundidade de água de 10 m e uma velocidade constante de corrente de 0,1 m/s na direção X, usando o serviço ROS /uuv_simulation_app/set_current_velocity. Uma intensidade luminosa de 0,8 foi usada para garantir visibilidade demarcadores 9. A Figura 3 mostra o ambiente subaquático simulado.

Figura 3: Ambiente subaquático simulado no Gazebo 9. O ambiente inclui o UUV RexRov2, marcadores virtuais ArUco e condições ambientais controladas, como profundidade da água, iluminação e corrente. Por favor, clique aqui para ver uma versão ampliada desta figura.
4. Estimativa de postura e controle de navegação
O pipeline de detecção de marcadores foi iniciado usando o nó ROS ArUco, que assinava o tópico /rexrov2/forward_camera/image_raw. A pose do veículo foi estimada usando o método de Perspectiva-n-Ponto (PnP) para calcular a matriz de rotação (R) e o vetor de translação (t) em relação à geometria conhecida do marcador 3D.
A pose estimada foi transformada do quadro da câmera para o quadro de referência global usando um editor de transformada estática. Um controlador PID era usado para regular o movimento do veículo enviando comandos de velocidade para o tópico /rexrov2/thruster_manager/entrada. Os ganhos proporcionais (Kp) para os eixos de pico e levantamento foram definidos para 1500 e 2000, respectivamente, para garantir um desempenho estável deacompanhamento 20.
5. Avaliação e comparação de verdade de base
O acordo entre as estimativas de pose baseadas em visão e a trajetória simulada foi avaliado usando o tópico /rexrov2/pose_gt fornecido pelo plugin uuv_gazebo_ros_p3d. A postura estimada do pipeline baseado em ArUco foi comparada com dados de odometria de base para avaliar a estabilidade e consistência do sistema.
A avaliação foi realizada por meio de comparação de trajetórias e visualização em tempo real, onde a posição (X, Y, Z) e a orientação (rolamento, arfagem, guinada) foram monitoradas usando Rviz e rqt_plot. Isso permitiu a observação de desvios tanto sob condições nominais quanto sob condições induzidas por distúrbios.
O estudo foca em avaliação qualitativa e comparativa. A avaliação quantitativa usando o Erro Quadrático Médio Raiz (RMSE) é identificada como trabalho futuro, onde múltiplas simulações serão usadas para avaliar o erro de posição e orientação.
6. Geração e visualização de resultados
O Rviz foi usado como uma ferramenta de visualização 3D para monitorar a trajetória e atitude do UUV. Os referenciais de coordenadas /rexrov2/camera_link e /aruco_marker_frame foram visualizados para avaliar a relação espacial entre o veículo e o marcador2.
A ferramenta rqt_plot era usada para gerar gráficos em tempo real da atitude do veículo (rolagem, arfagem, guinada) usando os tópicos /rexrov2/pose_gt e /aruco_pose. O comando rosbag record era usado para capturar dados de simulação, incluindo fluxos de vídeo e entradas de controle, para análise qualitativa.
A simulação foi realizada em condições visuais ideais, assumindo boa iluminação e baixa turbidez. Presumia-se que o marcador ArUco permanecesse sem obstruções. Os efeitos de amortecimento hidrodinâmico foram modelados usando coeficientes simplificados, e o ruído do sensor não foi incluído.