PointCloudTest2
Este repositório contém um projeto desenvolvido na Unreal Engine 5.4.4, que serve como um visualizador em Realidade Virtual para um Veículo Operado Remotamente (ROV).
O sistema lê dados de uma rosbag (nomeada 08), que contém a odometria de um algoritmo SLAM e uma nuvem de pontos. A aplicação estabelece uma conexão em tempo real para atualizar a pose do ROV e renderizar a nuvem de pontos, permitindo a visualização imersiva com o headset Meta Quest 3.
⚙️ Pré-requisitos
Antes de iniciar, garanta que os seguintes softwares estão instalados e configurados:
Epic Games Launcher com Unreal Engine 5.4.4. Importante: Na instalação da Engine, é necessário ter o componente opcional "LiDAR Point Cloud Support" ativado. Visual Studio 2022 com a carga de trabalho "Desenvolvimento de jogos com C++". ROS2 Humble (recomendado via WSL2). Git LFS, para gerenciamento de arquivos grandes do projeto (git lfs install).
🛠️ Configuração do Ambiente (Executar uma vez)
PowerShell (Windows): Para executar scripts de configuração, a política de execução pode precisar ser alterada. Abra o PowerShell como Administrador e execute: PowerShell Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser e então execute o configurarportawsl.ps1
ROS2 Workspace (WSL): Compile o pacote da bridge:
Bash
colcon build --packages-select ros2_unreal_bridge
Unreal Engine (Windows):
Com o editor fechado, clique com o botão direito no arquivo .uproject e selecione "Generate Visual Studio project files". Abra o arquivo .sln gerado e compile a solução do projeto no Visual Studio.
🚀 Executando a Simulação Completa Este é o passo a passo para rodar o projeto.
Passo 1: Encaminhamento de Portas (Windows) O ROS2 roda no WSL, e o Unreal no Windows. Para que eles se comuniquem, precisamos redirecionar as portas da rede.
Execute o script configurarportawsl.ps1 no PowerShell como Administrador. Este script irá encaminhar as portas 8080 (para a pose do ROV) e 8081 (para a nuvem de pontos).
Passo 2: Iniciar as Bridges (WSL) São necessários dois nós rodando em terminais separados para transmitir os dados.
Terminal 1 (WSL): Inicie a bridge da pose.
Bash
ros2 run ros2_unreal_bridge pose_unreal_bridge Terminal 2 (WSL): Inicie a bridge da nuvem de pontos.
Bash
ros2 run ros2_unreal_bridge pointcloud_bridge Passo 3: Reproduzir a Rosbag (WSL) Terminal 3 (WSL): Toque a bag 08 em modo de tempo real (a flag -r 1 é crucial).
Bash
ros2 bag play 08 -r 1 Passo 4: Iniciar a Visualização (Unreal) Conecte seu headset Meta Quest 3 e inicie o Meta Quest Link.
Abra o projeto na Unreal Engine.
Na barra de ferramentas principal, clique no botão "Play" e selecione "Play this level in VR" (VR Preview).
🐞 Resolução de Problemas (Troubleshooting) Erro de Compilação "Exit Code 6": Se a compilação falhar após adicionar um novo arquivo C++ ou alterar configurações, o cache pode estar corrompido. Para resolver:
Feche o editor da Unreal e o Visual Studio.
Na pasta do projeto, delete as pastas
Binaries, Intermediate, Saved, .vs e o arquivo .sln.
Clique com o botão direito no
.uproject e selecione "Generate Visual Studio project files".
Abra o novo
.sln e compile novamente.
"Arquivo não encontrado" (.h de um plugin): Verifique se o módulo do plugin está adicionado no arquivo .Build.cs do projeto e se o plugin está habilitado no .uproject. Se o problema persistir, use a opção "Verify" na sua instalação da Engine no Epic Games Launcher.