Simulador 3D do Pátio de Granéis
Primeiro o teste, depois a instalação. O simulador faz o papel das antenas e do gateway de uma máquina de pátio: o software de posicionamento conecta nele como no campo, e cada escrita que ele devolve é conferida, palavra por palavra, contra o modelo.
- Papel
- Autor, com agentes de IA
- Período
- set–out/2026
- Situação
- concluído
- Automação industrial
- Node.js
- TCP
- NMEA 0183
- Modbus TCP
- WebGL
- Blender
- VM Linux
- Claude Code
Compreensão simples
O problema
Num pátio de granéis, máquinas enormes andam sobre trilhos e giram lanças longas. Dentro de cada uma, um programa calcula onde ela está, a partir de antenas de satélite, e passa essa posição para o sistema que controla o pátio.
Para saber se uma versão nova desse programa funciona, o jeito direto é instalá-la e testar em campo, com a máquina, as antenas e alguém olhando a tela. Cada teste depende de máquina e de gente no pátio, e olhar a tela não diz se cada número que o programa publica está certo.
O que faz
- Faz o papel das antenas
O simulador manda ao programa as posições que as antenas mandariam, 10 vezes por segundo. Para ligar, basta trocar seis campos da configuração: o programa testado é o mesmo que vai para a máquina.
- Confere cada resposta
O programa calcula e devolve 16 números a cada meio segundo. O simulador refaz a conta e confere, número por número, se ele publicou o que deveria.
- Provoca falhas de propósito
Antena muda, posição congelada, conexão cortada: as falhas entram quando se pede, e, quando a rede cai, o simulador mede quanto o programa leva para voltar.
- Mostra o pátio em 3D
Cinco máquinas andam ao mesmo tempo num pátio em 3D, e o mesmo movimento pode ser repetido igual quantas vezes for preciso.
Na tela
Quadros do comercial do simulador, numa cópia preparada para o vídeo, com nomes de máquina genéricos.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.
O que muda
628 de 628
Cada versão nova do programa pode ser testada no computador, quantas vezes for preciso, antes de chegar à máquina, e a ida ao pátio vira a confirmação, não o primeiro teste.
O teste diz certo ou errado, número por número, em vez de alguém olhar a tela e achar que parece certo. Na versão atual, foram 1.202 respostas iguais às do modelo, com o programa real.
E o mesmo jeito serve a outros equipamentos cujo programa lê sensores e conversa com o controle da planta, como um carregador de navios ou uma ponte rolante: testar contra uma planta simulada antes de ir para o campo.
Compreensão técnica
Problema, otimização e resultado
- Problema
- O software de posicionamento de cada máquina de pátio, empilhadeiras e recuperadoras sobre trilhos, lê a frase GGA das antenas do eixo e da lança, e o rumo na lança com dupla antena, e escreve 16 palavras Modbus num gateway para o sistema de controle. Validar uma versão nova pedia instalá-la e testar em campo, com máquina, antenas e alguém olhando a tela, sem prova de que cada palavra publicada estava certa.
- Otimização
- Um simulador em Node.js, sem dependências, faz o papel das antenas e do gateway: manda GGA por TCP 10 vezes por segundo, responde ao Modbus TCP como o gateway real e refaz o cálculo com o mesmo modelo, exigindo diferença zero nas 12 palavras comparadas, mais CRC e STATUS. O software conecta trocando seis campos da configuração, numa VM Linux ou no PC, por rede fechada. Em volta, falhas sob comando com o tempo de volta medido nas de rede, um roteiro de aceite de 16 fases com veredito por critério e cinco máquinas em 3D (WebGL, modelos do Blender), repetíveis por semente.
- Resultado
- Em 01/10/2026, com o software numa VM Linux por 5,3 minutos, 628 de 628 escritas iguais ao modelo e CRC certo em todas; com 0,1 m mudado num parâmetro, o acerto caiu para 1 de 628. Na versão atual, com o software real no PC, 1.202 escritas iguais em 4 rodadas, sem nenhum STATUS diferente (07/10). Também: 12 rodadas de aceite sem falha, em 4 máquinas e 4 versões do software; atraso mediano da frase de posição à escrita de 90 ms na VM e 82 ms no PC; cerca de 145 quadros por segundo com as cinco máquinas numa placa de vídeo integrada; 87 testes automáticos do simulador.
Evidências
628 de 628 escritas iguais ao modelo, com o software numa VM Linux
Em 01/10/2026, rodei o software numa VM Linux, ligado ao simulador por uma rede privada do próprio PC, durante 5,3 minutos, com uma máquina e a versão anterior do simulador: diferença zero nas 12 palavras comparadas e CRC certo em todas. Para provar que o teste discrimina, mudei 0,1 m num parâmetro, e o acerto caiu para 1 de 628.
Medido.
1.202 escritas iguais ao modelo na versão atual
Em 07/10/2026, testei a versão atual com o software real no PC: 4 rodadas, nenhum STATUS diferente. O modo com as cinco máquinas foi conferido com um cliente de teste que imita o software.
Medido.
12 rodadas de aceite automático sem falha
Na versão anterior, com o software real no PC: 16 fases em cerca de 8,5 minutos por rodada e veredito por critério, em 4 máquinas e 4 versões do software.
Medido.
87 testes automáticos passando
73 do conjunto antigo e 14 do modo demonstração, em 08/10/2026. Eles conferem o próprio simulador.
Medido.
O problema
Para saber se uma versão nova do software de posicionamento funciona, o jeito direto é instalá-la e testar em campo, com a máquina, as antenas e alguém olhando a tela. O simulador traz o teste para a bancada. O software conecta nele como se estivesse no campo, recebe as posições, calcula e escreve a resposta, e o simulador diz, escrita por escrita, se o que ele publicou é o que deveria ter publicado.
Como se usa
A página mostra o pátio de cima ou em perspectiva, com abas para dirigir a máquina, ver a posição, injetar falhas, ler as palavras, ver as ligações e o registro. Um veredito no topo diz se o software está publicando igual ao modelo.
- O que volta. STATUS, a posição do eixo e da lança em X, Y e Z, rumo, inclinação, distância, os satélites de cada antena, a baliza, o CRC e duas reservas. X, Z, rumo, inclinação e distância vão multiplicados por 100; Y e baliza, por 10.
- Régua e baliza. A posição de cada máquina ao longo do trilho é uma régua em metros. A baliza é a posição, na régua, do centro da ponta da lança: no giro de trabalho, fica de 0,0 a 0,3 m dele; na medição de 02/10, numa recuperadora, deu de −0,26 m a +0,23 m conforme o ângulo da lança.
- Atraso. Da frase de posição da antena da lança até a escrita do software, mediana de 90 ms na VM e de 82 ms no PC, na mesma rodada de 5 minutos; na VM foi pior porque o PC estava ocupado.
- Fluidez. Com as cinco máquinas em 3D, cerca de 145 quadros por segundo numa placa de vídeo integrada, medidos sem limite de quadros para achar o teto.
Na tela

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.

Toque fora da imagem para fechar.
Como funciona
O simulador faz o papel do mundo lá fora: a posição desce para o software, as palavras calculadas sobem, e o simulador confere as duas pontas.
- Movimento
A máquina anda, gira e eleva pela página, vai para uma posição ou reproduz um cenário.
Node.js - Posição
Cada antena manda a frase GGA por TCP; na lança com dupla antena, também o rumo.
NMEA 018310 por segundo - Cálculo
O software de posicionamento, numa VM Linux ou no próprio PC, calcula a posição do eixo e da lança.
VM Linux - Escrita
Ele escreve 16 palavras no gateway simulado, que responde como o gateway de verdade.
Modbusa cada 500 ms - Conferência
O simulador refaz o cálculo com o mesmo modelo e exige diferença zero nas 12 palavras comparadas, mais CRC e STATUS.
diferença 0 - Falhas
Sob comando, frase com checksum errado, antena muda, posição congelada, conexão derrubada ou meio aberta e reinício do receptor.
O simulador termina nas 16 palavras: nada nele decide o que o sistema de controle faz com elas. Ele confere se o software calcula e publica o que deveria, dada a geometria simulada; a acurácia em campo e o desempenho no computador da máquina se confirmam na instalação.
Mudar 0,1 m num parâmetro derruba o acerto de 628 para 1. É assim que se sabe que o teste discrimina.
Decisões
Em vez de: Olhar se a tela do software parece certa.
Custo aceito: O simulador precisa reproduzir o cálculo do software, e cada versão nova pede o modelo dela.
Em vez de: Só mandar posições erradas.
Custo aceito: Mais casos para manter, com o tempo de volta do software medido em cada um.
Em vez de: Uma versão especial do software só para teste.
Custo aceito: O gerador de configuração confere, campo a campo, que nada mais mudou.
Em vez de: Escutar em qualquer rede do computador.
Custo aceito: Só o próprio computador ou a rede privada com a VM; as outras redes são recusadas, com teste automático.
Em vez de: Movimentos diferentes a cada execução.
Custo aceito: É demonstração, não operação; em algumas máquinas, a velocidade e o limite de giro são estimados, e trocá-los por medidas está nos próximos passos.
Em vez de: Bibliotecas prontas para TCP e Modbus.
Custo aceito: Mais código próprio para as portas, as frases NMEA e as respostas do gateway.
Como foi construído
- set/2026A bancada
Simuladores de antena e de Modbus e um kit para levar o software à VM.
- 01/10O simulador ao vivo
O simulador no PC e o software na VM, lado a lado, com 628 de 628 escritas iguais.
- 02/10O aceite automático
Entrada por coordenada, abas, o roteiro de aceite com 12 rodadas sem falha e um tutorial de um minuto com a VM.
- 07/10A versão 4
O receptor de dupla antena emulado e 4 rodadas com o software real, com 1.202 escritas iguais.
- 08/10As cinco máquinas
O modo demonstração, as máquinas articuladas feitas no Blender, uma revisão adversarial e a correção.
Este simulador é todo feito por mim usando agente de IA e comunicação com uma máquina virtual. Concebi e dirigi; a implementação foi feita em sessões do Claude Code, e os testes com o software, eu mesmo rodei.
Limites
- O simulador termina nas 16 palavras e confere o cálculo e a publicação dada a geometria simulada; a acurácia em campo e o desempenho no computador da máquina se confirmam na instalação.
- O próximo passo é repetir na VM Linux, com a versão 4, a rodada de 628 escritas feita com a versão anterior, e ligar o software real ao modo com as cinco máquinas, que hoje roda com um cliente de teste.
- Depois, medir por versão do software quanto tempo de campo o teste em bancada evita e trocar por medidas as velocidades e os limites de giro que ainda são estimados.
Hoje e a seguir
Hoje
A versão 4 roda no meu computador, com as cinco máquinas e o receptor de dupla antena emulado, e foi conferida com o software real no PC. Cada versão nova do software pode passar pelo mesmo teste antes de ir para a máquina.
A seguir
- Testar a versão 4 com o software na VM Linux, como foi feito com a anterior.
- Medir quanto tempo de campo o teste em bancada evita, por versão do software.
- Trocar por medidas as velocidades e os limites de giro que ainda são estimados.
As imagens são quadros do comercial do projeto, gravados numa cópia do simulador preparada para o vídeo, com nomes de máquina e endereços de rede genéricos. O pátio é um cenário feito para o vídeo: as pilhas, as correias, o entorno e a luz foram criados; os trilhos, as máquinas e os movimentos vêm do simulador.
O mapa, a sequência de mensagens e o placar são ilustrativos: mostram o tipo de dado e a ordem da conversa, não uma rodada gravada. Nas telas da página, quem está conectado é um cliente de teste que imita o software.