Atividade #1223
Atualizado por Gabriel Borges da Conceição há quase 5 anos
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. visão, pois não há nenhuma cadência, ou seja, o while da visão apenas pega a última câmera que chegou depois de ter terminado seu último processamento. 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. 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.