Skip to main content

Proposta Inicial da Arquitetura

A proposta inicial da arquitetura visa fornecer uma estrutura básica para o sistema, definindo módulos, a integração entre eles e apresentando um diagrama que ilustre essa arquitetura. A qualidade da proposta será avaliada com base na sua adequação aos requisitos do projeto e na sua capacidade de fornecer uma visão clara e abrangente da arquitetura do sistema.

Descrição dos Módulos​

Os módulos referem-se às partes ou componentes do sistema que desempenham funções específicas e distintas dentro da arquitetura proposta. Cada módulo é responsável por uma parte do processo ou por uma funcionalidade do sistema.

Módulo de Comunicação Controle do TurtleBot​

Este módulo será implementado utilizando o ROS (Robot Operating System), que é uma plataforma de código aberto amplamente utilizada para o desenvolvimento em robótica. Ele enviará comandos ao TurtleBot e receberá feedbacks sobre a localização e o estado da limpeza dos tubos. Para a comunicação com outros módulos, serão utilizados serviços ROS.

Módulo de Visão Computacional​

Este módulo será responsável por processar as imagens capturadas pela câmera acoplada ao TurtleBot. Utilizando bibliotecas como OpenCV em conjunto com Python, será realizado o processamento de imagens para identificar a sujeira nos tubos do reboiler. Este módulo também atuará como o backend do sistema, fornecendo dados sobre a localização da sujeira e coordenadas para o controle do TurtleBot.

Módulo de Interface do Usuário​

Este módulo será responsável por armazenar e gerenciar os dados coletados durante o processo de limpeza, o que será feito por meio do PostgreSQL. Será implementado utilizando um banco de dados, proporcionando uma estrutura flexível e escalável para o armazenamento dos registros históricos de limpeza e dos dados das operações anteriores. Conforme esclarecido no workshop, a empresa já possui uma interface capaz de gerar os dashboards para visualização dos dados coletados. Assim, forneceremos apenas uma API para a comunicação com o Módulo de Visão Computacional e o Módulo de Gerenciamento de Dados, que será desenvolvida em FastAPI.

Módulo de Gerenciamento de Dados​

Este módulo será responsável por armazenar e gerenciar os dados coletados durante o processo de limpeza, isso será feito por meio do PostgreSQL. Será implementado utilizando um banco de dados, proporcionando uma estrutura flexível e escalável para armazenamento dos registros históricos de limpeza e dos dados das operações anteriores. Conforme esclarecido no workshop a empresa já possui uma interface capaz de gerar os dashboards para visualização dos dados coletados. Assim, forneceremos apenas uma API para comunicação com o Módulo de Visão Computacional e o Módulo de Gerenciamento de Dados, que será desenvolvida em FastAPI.

Integração entre os Módulos​

Para integrar os módulos, precisamos estabelecer as conexões e comunicações adequadas entre eles.

1. Comunicação Controle do TurtleBot -> Módulo de Visão Computacional​

  • O módulo de comunicação enviará comandos para o TurtleBot, solicitando a captura de imagens da câmera acoplada.
  • O módulo de visão computacional processará as imagens recebidas utilizando OpenCV para identificar a presença de sujeira nos tubos do reboiler.

2. Módulo de Visão Computacional -> Módulo de Interface do Usuário​

  • Após o processamento das imagens, o módulo de visão computacional enviará os dados sobre a localização da sujeira e coordenadas relevantes para o módulo de interface do usuário.
  • O módulo de interface do usuário exibirá em tempo real a visão da câmera e as informações sobre a sujeira identificada, permitindo aos operadores monitorar o processo de limpeza e enviar comandos de movimento para o TurtleBot, se necessário.

3. Módulo de Interface do Usuário -> Módulo de Gerenciamento de Dados​

  • O módulo de interface do usuário enviará os dados de feedback sobre o progresso e o estado atual do processo de limpeza para o módulo de gerenciamento de dados.
  • O módulo de gerenciamento de dados armazenará esses registros históricos de limpeza e dados das operações anteriores em um banco de dados.

4. Módulo de Visão Computacional -> Módulo de Gerenciamento de Dados​

  • Além disso, o módulo de visão computacional enviará os dados sobre a localização da sujeira e coordenadas relevantes diretamente para o módulo de gerenciamento de dados.
  • Isso garantirá que todas as informações sobre o processo de limpeza sejam registradas e armazenadas de forma eficiente.

5. Integração Geral​

  • A comunicação entre os módulos será facilitada pelo uso de serviços ROS para troca de mensagens entre o módulo de comunicação controle do TurtleBot e o módulo de visão computacional.
  • Para a interface do usuário, o módulo de interface será desenvolvido utilizando React.js, proporcionando uma experiência interativa e responsiva para os operadores.
  • A API para comunicação entre o módulo de visão computacional e o módulo de gerenciamento de dados será implementada em FastAPI, garantindo uma comunicação eficiente e uma estrutura flexível para a gestão dos dados coletados.

Diagrama de Arquitetura​

Fonte: Elaboração Grupo Repipe