Atividade #1223
Atualizado por Gabriel Borges da Conceição há quase 5 anos
SENDO FEITO NA BRANCH readudp CRIADA A PARTIR DA dev.
Após o final da larc 2019, em conversa com o major Renault, percebemos um problema no jeito que fizemos o while para recebimento de pacotes.
Esse while foi criado pra permitir o recebimento de pacotes independente do resto de processamento da visão (decodificação de pacotes, Kalman, Cluster to Game e escrever na referência) a fim de impedir acúmulo e consequentemente processamento de pacotes defasados.
Da maneira que foi implementado, quando o while da visão pega o vetor de bytes (pacote) da referência, ele pega o último recebido. Mas chega uma câmera em cada pacote, com isso, pode estar acontecendo de o while da visão estar pegando mais vezes umas câmeras que outras já que o while Read UDP tem rodado mais rápido que o while da visão.
Em resumo, na larc de 2019, o while Read UDP rodava com praticamente o dobro de fps que o while da visão, ou seja, metade dos pacotes que chegavam não eram processados (feito kalman e utilizado para o resto do código). Não tem tanto problema se chegar dois pacotes de uma mesma câmera e só processarmos o mais atual deles (isso é o correto); o problema é chegar duas câmeras diferentes e só processarmos uma delas (a última a chegar).
O objetivo dessa tarefa é encontrar uma solução para que consigam ser sempre processados os pacotes mais atuais de cada uma das 4 câmeras.