Article image
Natan Vaz
Natan Vaz26/04/2025 15:42
Compartilhe

Como utilizar Unreal Engine 5 e robótica juntos?

  • #Linux
  • #C++
  • #Unreal Engine

Introdução

A integração entre o Unreal Engine 5 e o ROS2 abre novas possibilidades para o desenvolvimento de sistemas robóticos, especialmente para a criação de gêmeos digitais e simulações realistas. Atualmente, estou me aprofundando nesse tema no meu Trabalho de Conclusão de Curso, no qual estou desenvolvendo um Digital Twin do carro autônomo da minha universidade, utilizando a integração entre essas duas ferramentas. Neste artigo, você encontrará um exemplo prático de como criar um "Olá, Mundo" dentro do Unreal Engine conectado ao sistema distribuído do ROS2. Escrevo este conteúdo porque ainda há pouco material disponível sobre o assunto, e acredito que ele pode ajudar quem também está começando ou deseja explorar esse tipo de integração.

Para aqueles que não conhecem os termos, um Gêmeo Digital (Digital Twin) é uma cópia virtual altamente realista de um sistema ou processo do mundo real. A Unreal Engine é um motor gráfico amplamente utilizado para a criação de ambientes 3D realistas e criação de jogos, enquanto o ROS2 é um sistema distribuído baseado em um grafo de nós e tópicos, permitindo a troca de informações entre diferentes componentes de um sistema robótico.

O que será necessário?

Para reproduzir a integração, é necessário:

  • Unreal Engine 5.3 compilado para Linux;
  • ROS2 Foxy instalado e configurado;
  • Plugin rclUE (para comunicação entre Unreal e ROS2);
  • Ubuntu 20.04.

Como funciona a integração?

Para o projeto, você precisa criar um ator que herda uma classe C++, com o nome MyActor, este ator ele atua como um subscriber das mensagens publicadas pelo ROS2, ou seja, ele será responsável por ficar escutando o que o robô está dizendo, no meu caso, o carro autônomo me forneceu informações de aceleração angular, coordenadas de gps e informações do giroscópio, você pode aumentar a confiabilidade colocando um banco de dados e fazer uma análise dos valores passados para a unreal.

Neste projeto, acabei utilizando o ROS2 Foxy, e para ligar ele, utiliza-se o comando:

source /opt/ros/foxy/setup.bash

Após criar o ator e herdar de sua classe C++, você deve adicionar o ator ao cenário criado, e em outro terminal, utilize o seguinte comando para publicar vários "Hello World":

ros2 topic pub /teste_unreal std_msgs/msg/String "{data: 'Hello Unreal'}"

Para validar a sua implementação, utilize o código do ator disponibilizado em: repositório

image

Conclusão

A integração entre Unreal Engine 5 e ROS2 constitui uma poderosa plataforma para pesquisa e desenvolvimento em robótica, especialmente na criação de ambientes simulados seguros, capazes de mitigar riscos e reduzir custos. Embora a área ainda seja relativamente nova, ela já demonstra grande potencial para substituir testes perigosos no mundo real e otimizar processos, em uma empresa ou universidade, por meio de simulações baseadas em Digital Twin. No cenário brasileiro, o número de artigos e materiais disponíveis sobre essa integração ainda é bastante limitado, com a maioria das referências em outros idiomas. Espero que este exemplo de "Hello World" entre Unreal Engine 5 e ROS2 sirva de apoio para o surgimento de novos projetos, incentivando a inovação e a aplicação prática dessas tecnologias em universidades, pesquisas acadêmicas e soluções dentro de empresas para mitigar acidentes.

Compartilhe
Comentários (1)
DIO Community
DIO Community - 30/04/2025 09:39

Muito interessante o seu artigo, Natan! A integração entre Unreal Engine 5 e o ROS2 abre um leque de possibilidades incríveis. Seu exemplo prático de como criar um "Olá, Mundo" entre essas duas tecnologias é uma excelente maneira de facilitar o entendimento e aplicação dessa poderosa combinação. Seu projeto de Digital Twin do carro autônomo na universidade é um excelente exemplo de como a teoria pode se transformar em inovação aplicada.

A DIO acredita no poder da tecnologia para transformar a maneira como aprendemos e trabalhamos, e o uso de ferramentas como o Unreal Engine 5, junto ao ROS2, se alinha completamente com a nossa missão de democratizar o conhecimento e fomentar a inovação. Quais outras possibilidades você acredita que a integração entre Unreal Engine e ROS2 pode abrir para o futuro da robótica, especialmente no contexto de universidades e empresas brasileiras?