Skip to main content

Sugestão de gráficos para Atvos

A documentação a seguir apresenta uma análise detalhada e visual dos dados coletados ao longo do projeto feito para a empresa Atvos. Com o objetivo de proporcionar uma visão abrangente e precisa do progresso e dos resultados obtidos, foram gerados diversos gráficos que ilustram os principais indicadores de desempenho.

Nesta etapa do projeto, há muitos dados a serem analisados, os quais requerem uma visualização adequada para serem plenamente compreendidos.

Essas sugestões de gráficos fornecem ferramentas com as quais a empresa Atvos pode obter insights valiosos, facilitando uma tomada de decisão mais informada e estratégica. A visualização dos dados facilita a identificação de padrões, tendências e possíveis áreas de melhoria, contribuindo para a otimização dos processos e a maximização dos resultados.

Além disso, os gráficos aqui apresentados podem ser integrados a um sistema de Business Intelligence (BI), oferecendo uma visão dinâmica de como as iniciativas implementadas estão evoluindo. Com isso, a Atvos poderá monitorar o desempenho em tempo real, ajustando suas estratégias conforme necessário e assegurando que os objetivos do projeto sejam alcançados de maneira eficiente e eficaz.

Portanto, esta documentação não apenas serve como um registro detalhado das atividades e resultados, mas também como uma base para a construção de um BI, fundamental para o sucesso contínuo da Atvos.

Nota: os scripts para a geração dos gráficos foram criados manualmente como base e ainda não estão integrados diretamente à solução atual. O objetivo é apresentar sugestões e possíveis aplicações, que poderiam ser integradas em etapas futuras.

Explicação da API da câmera no projeto​

Introdução​

Uma câmera será utilizada para visualizar os canos do reboiler, possibilitando a identificação de sujeiras e obstruções. No contexto deste projeto, a capacidade de capturar imagens é essencial para a detecção das impurezas e manutenção preventiva eficiente. A implementação desta tecnologia é crucial para assegurar a integridade operacional dos reboilers, reduzindo o risco de falhas e otimizando os processos de limpeza e manutenção.

Funcionamento da câmera no projeto​

Para entendermos melhor a transmissão de dados de imagem para a nossa página web, a câmera está conectada com essa a página via websocket (é uma tecnologia que permite a comunicação bidirecional por canais full-duplex sobre um único soquete Transmission Control Protocol). A imagem é capturada pela câmera e enviada para o servidor web, que a armazena em um arquivo temporário. Com isso, podemos gerar um gráfico partindo das imagens que foram armazenadas no banco de dados.

Mapa de calor partindo das imagens da câmera​

Com base nas imagens analisadas pela câmera, idealizou-se que um gráfico de calor seria uma boa forma de representar os pontos de sujeira. O objetivo dessas imagens é poder demonstrar a situação dos canos em relação a sujeira, as manchas vermelhas são os pontos que contém mais sujeira, já os pontos em verde são as partes que estão, de certa forma, limpas.

Visão computacional

Fonte: Elaboração Grupo Repipe

OBS: Esse funcionamento de visão computacional mostrando o mapa de calor detectando as sujeiras é uma funcionalidade que ainda será trabalhada para poder implementar no projeto. Essa é uma imagem meramente ilustrativa

Conclusão​

A implementação da câmera no projeto de inspeção dos canos do reboiler desempenha um papel crucial na identificação e monitoramento de sujeiras e obstruções, facilitando a manutenção preventiva e assegurando a eficiência operacional. A integração da câmera com a página web via websocket permite uma transmissão de dados de imagem eficiente, possibilitando o armazenamento e análise das imagens capturadas. A utilização de mapas de calor, embora ainda em fase de desenvolvimento, promete aprimorar significativamente a visualização e a identificação das áreas mais críticas em termos de sujeira. Assim, o uso dessa tecnologia representa um avanço importante na manutenção dos reboilers, potencialmente prolongando a vida útil dos equipamentos e reduzindo o risco de falhas operacionais.

Explicação sobre a Bateria no projeto​

Introdução​

Aqui temos como objetivo explicar a função da bateria e como as pessoas que estão operando o robô podem interfirir na vida útil da mesma. Lembrando sempre que estamos usando uma bateria de lítio então o mal uso pode ocorrer uma explosão (em pequena escala, claro, por conta do robô e a bateria serem pequenos). A seguir vamos falar mais sobre a bateria que estamos usando e o que devemos fazer para prolongar o período de vida útil dela tambem colocaremos um gráfico informativo sobre a vida útil dela, tomando e não tomando os devidos cuidados.

Expecificações da bateria​

  • Modelo: LB-12
  • Li-po 11.1V (pode ser carregada até 12.6V)
  • 1800 mAh
  • 3 células com 3,7V cada
  • Peso: 106g
  • Tamano: 88mm x 35mm x 26mm

Bateria LB-12 (cuidando adequadamente)​

Para prolongar a vida útil da bateria do modelo LB-12, é importante entender que esta bateria possui 3 células de 3,7 volts cada. Para carregá-la corretamente, utilizamos um carregador específico, o "Lipro Balance Charger" modelo "iMAX B6", que permite carregar as células de maneira uniforme.

Além disso, é crucial monitorar o nível de carga da bateria. O TurtleBot possui um mecanismo de segurança que emite um som de alerta quando a voltagem da bateria atinge 11V.

Abaixo, apresentamos um gráfico que representa a vida útil da bateria ao longo do tempo, considerando todos os cuidados necessários. Este gráfico mostra a voltagem da bateria em função do tempo, ajudando a monitorar e manter a saúde da bateria a longo prazo:

Gráficos_1

Fonte: Elaboração Grupo Repipe

Bateria LB-12 (Não cuidando adequadamente)​

Ao não seguir as práticas recomendadas para o cuidado da bateria LB-12, diversos problemas podem surgir, comprometendo tanto a eficiência quanto a vida útil da bateria. A LB-12 é composta por 3 células de 3,7 volts cada, e o uso inadequado pode causar desequilíbrios entre essas células.

Além disso, ignorar o monitoramento do nível de carga da bateria pode ser prejudicial. O TurtleBot possui um alerta sonoro de segurança que avisa quando a voltagem da bateria cai para 11V. Ignorar esses avisos e permitir que a voltagem caia ainda mais pode danificar permanentemente as células da bateria, reduzindo sua capacidade e eficiência.

Abaixo, apresentamos um gráfico que ilustra a vida útil da bateria ao longo do tempo sem os cuidados adequados. Este gráfico mostra a degradação acelerada da voltagem da bateria devido à falta de manutenção apropriada, destacando a importância de seguir as práticas recomendadas para garantir a longevidade da bateria:

Gráficos_2

Fonte: Elaboração Grupo Repipe

OBS: Vale lembrar que se a voltagem da bateria ficar abaixo de 10V ela não funciona mais, ela incha por ser de lítio e para de funcinar e inchando é possível que exploda

Script para a obtenção dos gráficos​

Para conseguir plotar os mesmos gráficos que estão acima, usa-se esse código em python:

import pandas as pd
import matplotlib.pyplot as plt

# Dados da primeira tabela atualizada
data1 = {
"Tempo": ["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"],
"Voltagem da bateria": [12.6, 12.6, 12.59, 12.58, 12.58, 12.57, 12.56, 12.55, 12.54, 12.54, 12.53, 12.51]
}

# Dados da segunda tabela atualizada
data2 = {
"Tempo": ["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"],
"Voltagem da bateria": [12.6, 12.55, 12.4, 12.35, 12.25, 12.10, 12, 11.95, 11.85, 11.75, 11.6, 11.5]
}

# Criar dataframes
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Plotando o primeiro gráfico com a voltagem em volts
plt.figure(figsize=(10, 5))
plt.plot(df1["Tempo"], df1["Voltagem da bateria"], marker='o', linestyle='-', color='b', label='Bateria 1')
plt.xlabel('Tempo')
plt.ylabel('Voltagem da bateria (V)')
plt.title('Desgaste da bateria ao longo do tempo (Bateria 1)')
plt.legend()
plt.grid(True)
plt.show()

# Plotando o segundo gráfico com a voltagem em volts
plt.figure(figsize=(10, 5))
plt.plot(df2["Tempo"], df2["Voltagem da bateria"], marker='o', linestyle='-', color='r', label='Bateria 2')
plt.xlabel('Tempo')
plt.ylabel('Voltagem da bateria (V)')
plt.title('Desgaste da bateria ao longo do tempo (Bateria 2)')
plt.legend()
plt.grid(True)
plt.show()
Fonte: Elaboração Grupo Repipe

Conclusão​

Cuidar adequadamente da bateria LB-12 é crucial para garantir a segurança e a eficiência do TurtleBot. Utilizar um carregador balanceador adequado e monitorar o nível de carga regularmente prolonga a vida útil da bateria e evita riscos, como explosões. Negligenciar esses cuidados resulta em degradação acelerada, perda de capacidade e possíveis danos irreparáveis. Seguir as práticas recomendadas é essencial para manter o robô funcionando de maneira eficiente e segura.

Explicação da Latência no Projeto​

Introdução​

Neste ponto temos como objetivo explicar a função de latência implementada no projeto de publicação de frames de vídeo usando ROS 2 (Robot Operating System). No contexto deste projeto, a latência refere-se ao tempo de atraso entre a captura de um frame pela câmera e a publicação deste frame como uma mensagem no tópico ROS. Entender e monitorar essa latência é crucial para aplicações em que o tempo real é um fator importante, como robótica, vigilância e sistemas de controle.

Funcionamento da latência no projeto​

A latência é um fator crítico em sistemas de visão computacional e robótica, onde decisões baseadas em vídeo precisam ser tomadas rapidamente. Monitorar a latência ajuda a:

Avaliar o Desempenho: Identificar gargalos no sistema que podem atrasar o processamento de vídeo.

Melhorar a Qualidade do Serviço: Ajustar parâmetros do sistema para reduzir a latência e melhorar a resposta em tempo real.

Diagnosticar Problemas: Detectar problemas com a câmera ou o sistema de captura que possam estar introduzindo atrasos inesperados.

Dados e possiveis gráficos para a visualização da Latência (em tempo real):​

Este gráfico com valores estáticos serve para medir a distância e a latência entre o computador e o robô, garantindo a execução perfeita dos comandos. Quanto maior a distância, maior a latência. Portanto, é essencial monitorar esses fatores para manter a comunicação eficiente e a câmera, juntamente com o robô, funcionando corretamente:

Latência_1

Fonte: Elaboração Grupo Repipe

OBS: Vale lembrar que, quanto menor a latência, melhor a comunicação para o controle do robô. E que esses valores estão sendo colocados a prova ainda pois estamos fazendo testes para medir com maior precisão a maior ditância que podemos controlar o robô e qual é a latência dessa comunicação

Script para a obtenção do gráfico de latencia X distância:​

Para conseguir plotar o mesmo gráfico que esta acima, usa-se esse código em python:

import matplotlib.pyplot as plt

# Dados fornecidos
distancias = ['1 - 5', '5 - 10', '10 - 20', '20 - 30', '30 - 50']
latencias = [20, 25, 32, 40, 48]

# Criação do gráfico de barras
plt.figure(figsize=(10, 6))
plt.bar(distancias, latencias, color='b')
plt.title('Latência em função da Distância')
plt.xlabel('Distância (M)')
plt.ylabel('Latência (ms)')
plt.grid(axis='y')
plt.show()
Fonte: Elaboração Grupo Repipe

Dados e possiveis gráficos para a visualização da Latência (em tempo real):​

Ja com esse gráfico, podemos perceber o perído de resposta (Latência) em uma comunicação entre o robô e o computador que durou 50 segundos antes de encerrar, podemos ver alguns picos que tiveram que retratam muito bem a requisição de serviços de frames dos vídeos:

Latência_1

Fonte: Elaboração Grupo Repipe

Script para a obtenção do gráfico de latencia em tempo real:​

Para conseguir plotar o mesmo gráfico que esta acima, usa-se esse código em python:

import matplotlib.pyplot as plt

# Dados fornecidos
duracao_comunicacao = list(range(1, 51))
latencia = [20, 21, 20, 25, 24, 23, 20, 27, 25, 28, 26, 24, 22, 20, 20, 21, 22, 21, 20, 21,
20, 20, 28, 27, 26, 24, 23, 28, 27, 25, 23, 22, 20, 21, 22, 21, 20, 25, 24, 22,
20, 21, 28, 27, 25, 23, 21, 20, 21, 20]

# Plot do gráfico de linhas
plt.figure(figsize=(12, 6))
plt.plot(duracao_comunicacao, latencia, marker='o', linestyle='-', color='b')
plt.title('Latência durante a comunicação de 50 segundos')
plt.xlabel('Duração da Comunicação (segundos)')
plt.ylabel('Latência (ms)')
plt.grid(True)
plt.xticks(duracao_comunicacao, rotation=90)
plt.tight_layout()

# Exibindo o gráfico
plt.show()
Fonte: Elaboração Grupo Repipe

Conclusão​

A função latencia implementada neste projeto é essencial para monitorar e otimizar a latência na captura e publicação de frames de vídeo. A medição contínua e a exibição da latência permitem identificar e corrigir problemas rapidamente, garantindo que o sistema funcione de maneira eficiente e responsiva.