Registro de Alterações do Software 2021 - 2023
2023.6 (18/04/23)
Calibração ChArUco Fácil & Visualizadores de Calibração
- A calibração ChArUco é considerada melhor que a calibração de tabuleiro de xadrez porque lida com oclusões, detecções ruins de cantos e não requer que todo o tabuleiro esteja visível. Isso torna muito mais fácil capturar cantos do tabuleiro de calibração próximos às bordas e cantos das suas imagens. Isso é crucial para a estimativa do coeficiente de distorção.
- O processo de calibração do Limelight fornece feedback em cada etapa e garantirá que você faça tudo o que é necessário para obter bons resultados de calibração. Um grande esforço foi feito para tornar este processo o mais à prova de falhas possível.
- Mais importante ainda, você pode visualizar seus resultados de calibração ao lado da calibração padrão. Com um simples olhar, você pode entender se seu resultado de calibração é razoável ou não.
- Você também pode usar o painel de calibração como uma ferramenta de aprendizado. Você pode modificar arquivos de resultados de calibração baixados e recarregá-los para aprender como a matriz de parâmetros intrínsecos e os coeficientes de distorção afetam os resultados de mira, campo de visão, etc.
- Dê uma olhada neste vídeo:
2023.5.1 & 2023.5.2 (22/03/23)
-
Corrigida regressão introduzida na versão 2023.5.0 - Enquanto a versão 2023.5 corrigiu megatag para todos os layouts não planares, reduziu o desempenho das estimativas de pose de tag única. Isso foi corrigido. Estimativas de pose de tag única usam exatamente o mesmo solucionador usado na versão 2023.4.
-
Interface de snapshot mais ágil. A grade de snapshots agora carrega miniaturas de baixa resolução de 128p.
-
O Yaw do Limelight agora é apresentado corretamente nos visualizadores 3D. É positivo no sentido anti-horário no visualizador e internamente
-
Indica quais alvos estão sendo rastreados atualmente no visualizador de espaço de campo
2023.5.0 (21/03/23)
Mudanças Críticas
- Corrigida regressão - O "Yaw" do Limelight em Espaço-Robô estava invertido nas versões anteriores. O yaw do Limelight na interface web agora é internamente CCW-Positivo.
Atualização da Seleção de Região
- A seleção de região agora funciona como esperado em pipelines de detecção neural.
- Adicionadas 5 novas opções de região para selecionar o centro, topo, esquerda, direita, topo ou base do retângulo do alvo não rotacionado.
API REST "hwreport"
- :5807/hwreport retornará uma resposta JSON detalhando as informações de intrínsecos da câmera e distorção
Correção do MegaTag
- Certos layouts de apriltags não coplanares estavam quebrados no MegaTag. Isso foi corrigido, e a estimativa de pose agora está estável com todas as tags do campo. Isso permite uma estimativa de pose estável mesmo a distâncias ainda maiores que antes.
Maior precisão em tx e ty
- TX e TY estão mais precisos do que nunca. Os alvos são totalmente não distorcidos, e o FOV é determinado inteiramente pelos intrínsecos da câmera.
2023.4.0 (18/02/23)
Filtro de Classe do Detector Neural
Especifique as classes que você deseja rastrear para facilitar a filtragem de detecções indesejadas.
Suporte expandido do Detector Neural
Suporte para qualquer resolução de entrada, suporte para formatos de saída adicionais para suportar outras arquiteturas de detecção de objetos. Modelos baseados em EfficientDet0 agora são suportados.
2023.3.1 (14/02/23)
Melhorias na Precisão do AprilTag
Matriz de parâmetros intrínsecos aprimorada e, mais importante, coeficientes de distorção melhorados para todos os modelos. Melhorias notáveis na Localização de AprilTag único.
Upload do Detector
Upload do detector corrigido.
2023.3 (13/02/23)
Latência de Captura (Chave NT: "cl", Resultados JSON: "cl")
A nova entrada de latência de captura representa o tempo entre o fim da exposição da linha do meio do sensor de imagem do Limelight e o início do pipeline de processamento.
Novo Limite de Qualidade para AprilTags
AprilTags espúrios agora são mais facilmente filtrados com o novo controle deslizante de Limite de Qualidade. O valor padrão definido em 2023.3 deve remover a maioria das detecções espúrias.
Substituição da Pose da Câmera no Espaço do Robô (Chaves NT: "camerapose_robotspace_set", "camerapose_robotspace")
A posição do seu Limelight no espaço do robô agora pode ser ajustada em tempo real. Se a chave for definida como uma matriz de zeros, a pose definida na interface web será usada.
Aqui está um exemplo de um Limelight em um elevador:
Exposição Máxima Aumentada
O tempo máximo de exposição agora é 33ms (aumentado de 12,5 ms). Os modos de captura de alto fps ainda são limitados a (1/fps) segundos. Pipelines de 90hz, por exemplo, não terão imagens mais brilhantes após 11ms de tempo de exposição.
Atualizações do Botpose
As três matrizes de botpose em networktables têm uma sétima entrada representando a latência total (latência de captura + latência de direcionamento).
Correções de Bugs
- Correção dos streams MJPEG do LL3 no shuffleboard
- Correção do camMode - modo de piloto agora produz imagens brilhantes e utilizáveis
- Correção da etiqueta de exposição - cada "tick" representa 0,01ms e não 0,1 ms
- Correção do upload do detector de rede neural
2023.2 (28/01/23)
Tornando o 3D mais fácil do que nunca.
Botposes compatíveis com WPILib
Botpose agora é ainda mais fácil de usar logo de cara.
Estes correspondem aos sistemas de coordenadas do WPILib.
Todos os botposes são exibidos diretamente no visualizador de espaço de campo na interface web, tornando fácil confirmar rapidamente que tudo está funcionando corretamente.
Acesso mais fácil aos dados 3D (Mudanças Importantes)
RobotPose no TargetSpace é possivelmente o dado mais útil que sai do Limelight em relação aos AprilTags. Usando apenas isso, você pode alinhar perfeitamente um trem de força com um AprilTag no campo.
- Chave NetworkTables "campose" agora é "camerapose_targetspace"
- Chave NetworkTables "targetpose" agora é "targetpose_cameraspace"
- Nova Chave NetworkTables - "targetpose_robotspace"
- Nova Chave NetworkTables - "botpose_targetspace"
Upload de Rede Neural
Faça upload de modelos do teachable machine para o Pipeline Classificador do Limelight. Certifique-se de que sejam modelos compatíveis com Tensorflow Lite EdgeTPU. Faça o upload dos arquivos .tflite e .txt de rótulos separadamente.
2023.1 (19/01/23)
MegaTag e Melhorias de Performance
Corrigindo um Erro
O parâmetro de tamanho padrão do marcador na interface foi corrigido para 152.4mm (reduzido de 203.2mm). Esta era a causa da maioria dos problemas de precisão.
Maior Estabilidade de Rastreamento
Existem várias maneiras de ajustar a detecção e decodificação do AprilTag. Melhoramos a estabilidade em geral, especialmente em ambientes com pouca luz/baixa exposição.
Conversão para Escala de Cinza Ultra Rápida
A conversão para escala de cinza está 3x-6x mais rápida que antes. As equipes sempre verão um fluxo de vídeo em cinza durante o rastreamento de AprilTags.
Recorte para Melhor Performance
Os pipelines de AprilTag agora têm controles deslizantes de recorte. Recortar sua imagem resultará em melhores taxas de quadros em qualquer resolução.
Filtragem Mais Fácil
Agora existe um único campo "filtro de ID" nos pipelines AprilTag que filtra a saída JSON, tags habilitadas para botpose e tags habilitadas para tx/ty. A configuração de filtro duplo era problemática e confusa.
Mudança Importante
A chave NT "camtran" agora é "campose"
Atualização JSON
"botpose" agora faz parte do dump de resultados json
Atualização do Visualizador de Espaço de Campo
O visualizador de espaço de campo agora mostra o campo FRC 2023. Agora deve ser mais fácil avaliar a precisão do botpose rapidamente.
Limelight MegaTag (novo botpose)
Minha prioridade #1 tem sido reescrever o botpose para maior precisão, redução de ruído e resiliência à ambiguidade. A nova implementação do botpose do Limelight é chamada MegaTag. Em vez de calcular o botpose com uma média simples de várias poses individuais no espaço do campo, o MegaTag essencialmente combina todas as tags em uma única tag 3D gigante com vários pontos-chave. Isso traz enormes benefícios.
O GIF a seguir mostra uma situação projetada para induzir a inversão de tags: Cilindro Verde: Pose do robô por tag individual Cilindro Azul: BotPose 2023.0.1 Cilindro Branco: Novo Botpose MegaTag
Observe como o novo botpose (cilindro branco) é extremamente estável em comparação com o botpose antigo (cilindro azul). Você pode observar também os valores tx e ty.
Aqui está a tela completa, mostrando a ambiguidade da tag:
Aqui estão as vantagens:
O Botpose agora é resiliente a ambiguidades (inversão de tags) se mais de uma tag estiver visível (a menos que estejam próximas e coplanares. Idealmente os pontos-chave não são coplanares). O Botpose agora é mais resiliente ao ruído nos cantos das tags se mais de uma tag estiver visível. Quanto mais distantes as tags estiverem umas das outras, melhor. Isso não se restringe a tags planares. Escala para qualquer número de tags em 3D completo e em qualquer orientação. Tags no chão e no teto funcionariam perfeitamente.
Aqui está um diagrama demonstrando um aspecto de como isso funciona com um caso planar simples. Os resultados são na verdade melhores do que o mostrado, pois o MegaTag representado tem um erro significativo aplicado a três pontos em vez de um ponto. À medida que o MegaTag 3D combinado aumenta em tamanho e em número de pontos-chave, sua estabilidade aumenta.
O upload da Rede Neural está sendo adiado para 2023.2!
2023.0.0 e 2023.0.1 (11/01/23)
Apresentando AprilTags, localização do Robô, Redes Neurais Profundas, uma interface de captura de tela reescrita e mais.
Recursos, Mudanças e Correções de Bugs
- Novo pipeline de captura de sensor e controle de Ganho
- Nosso novo pipeline de captura permite tempos de exposição 100x mais curtos do que eram em 2022. O novo pipeline também permite Controle de Ganho. Isso é extremamente importante para o rastreamento de AprilTags e servirá para tornar o direcionamento retroreflexivo mais confiável do que nunca. Antes do Limelight OS 2023, o ganho do sensor do Limelight era não-determinístico (implementamos alguns truques para fazê-lo funcionar mesmo assim).
- Com o novo controle deslizante "Ganho do Sensor", as equipes podem deixar as imagens mais escuras ou mais claras do que nunca sem tocar no controle de exposição. Aumentar o ganho aumentará o ruído na imagem.
- Combinando ganho mais baixo com os novos tempos de exposição mais baixos, agora é possível produzir imagens quase completamente pretas com LEDs de brilho total e alvos retroreflexivos. Isso ajudará a mitigar reflexos de LED e luz solar ao rastrear alvos retroreflexivos.
- Ao aumentar o Ganho do Sensor e reduzir a exposição, as equipes poderão minimizar os efeitos do desfoque de movimento devido a altos tempos de exposição ao rastrear AprilTags.
- Conseguimos desenvolver este novo pipeline mantendo todos os recursos - 90fps, zoom por hardware, etc.
- Mais Opções de Resolução
- Existem duas novas resoluções de captura para LL1, LL2 e LL2+: 640x480x90fps e 1280x960x22fps
- Interface Web Otimizada
- A interface web agora carregará e inicializará até 3x mais rápido em redes de robôs.
- Interface de Capturas Reescrita
- O recurso de capturas foi completamente reescrito para permitir upload, download e exclusão de imagens. Também há novas APIs para captura de imagens detalhadas na documentação.
- Melhorias no SolvePnP
- Nosso recurso de localização de câmera baseado em solvePnP tinha um bug desagradável que estava limitando seriamente sua precisão a cada quatro quadros. Isso foi resolvido, e um novo canvas 3D completo foi construído para visualizações Retroreflexivas/Color SolvePNP.
- Correção da Interface Web
- Havia um problema extremamente raro em 2022 que causava a quebra permanente da interface web durante a primeira inicialização após o flash, o que forçava o usuário a refazer o flash. A causa raiz foi encontrada e corrigida definitivamente.
- Novas APIs
- O Limelight agora inclui APIs REST e Websocket. As APIs REST, Websocket e NetworkTables suportam o novo recurso de dump JSON, que lista todos os dados para todos os alvos em um formato legível por humanos e fácil de analisar para FRC e todas as outras aplicações.
Visão Baseada em Aprendizado Sem Código e Suporte ao Google Coral
- O Google Coral agora é suportado por todos os modelos Limelight. O Google Coral é um acelerador de hardware USB de 4TOPs (Trilhões de Operações/segundo) construído especificamente para inferência em redes neurais de 8 bits.
- Assim como o rastreamento retroreflexivo há alguns anos, a barreira de entrada para visão baseada em aprendizado em robôs FRC tem sido muito alta para a equipe média sequer tentar. Desenvolvemos toda a infraestrutura necessária para tornar a visão baseada em aprendizado tão fácil quanto alvos retroreflexivos com o Limelight.
- Temos um cluster de GPU na nuvem, scripts de treinamento, uma ferramenta de agregação de datasets e uma equipe de rotulação humana prontos para começar. Estamos empolgados em trazer redes neurais profundas para a comunidade FRC pela primeira vez.
- Atualmente suportamos dois tipos de modelos: modelos de Detecção de Objetos e modelos de Classificação de Imagens.
- Modelos de detecção de objetos fornecerão "IDs de classe" e caixas delimitadoras (assim como nossos alvos retroreflexivos) para todos os objetos detectados. Isso é perfeito para rastreamento de peças do jogo em tempo real.
- Por favor, contribua para o primeiro modelo de detecção de objetos FRC enviando imagens aqui: https://datasets.limelightvision.io/frc2023
- Use as chaves tx, ty, ta e tclass do networktables ou o dump JSON para usar redes de detecção
- Modelos de classificação de imagem receberão uma imagem e produzirão um único rótulo de classe.
- Para saber mais e começar a treinar seus próprios modelos para o Limelight, confira o Teachable Machine do Google.
- https://www.youtube.com/watch?v=T2qQGqZxkD0
- Modelos do Teachable Machine são diretamente compatíveis com o Limelight.
- Classificadores de imagem podem ser usados para classificar estado interno do robô, estado de características do campo e muito mais.
- Use a chave tclass do networktables para usar estes modelos.
- Modelos de detecção de objetos fornecerão "IDs de classe" e caixas delimitadoras (assim como nossos alvos retroreflexivos) para todos os objetos detectados. Isso é perfeito para rastreamento de peças do jogo em tempo real.
- O Limelight OS 2023.0 não fornece a capacidade de fazer upload de modelos personalizados. Isso será habilitado em breve no 2023.1
Suporte a AprilTag Sem Código
- AprilTags são tão fáceis quanto alvos retroreflexivos com o Limelight. Como eles têm um filtro natural na forma de um ID, há ainda menos razão para ter seu roboRIO fazer qualquer filtragem relacionada à visão.
- Para começar, use tx, ty e ta normalmente. Nenhuma alteração de código é necessária. Classifique por qualquer característica do alvo, utilize grupos de alvos, etc.
- Como os AprilTags são sempre quadrados e sempre identificáveis de forma única, eles fornecem a plataforma perfeita para cálculos completos de pose 3D.
- O feedback que recebemos para este recurso em nossos canais de suporte tem sido extremamente positivo. Tornamos os AprilTags o mais fácil possível, desde o rastreamento 2D até a localização completa do robô em 3D no campo
- Confira a Especificação do Mapa de Campo e o Doc do Sistema de Coordenadas para informações mais detalhadas.
- Existem quatro maneiras de usar AprilTags com o Limelight:
- AprilTags em 2D
- Use tx, ty e ta. Configure seus pipelines para procurar um ID de tag específico.
<gif>
- Ponto de Interesse AprilTags 3D
- Use as chaves tx e ty, ta e tid do networktables. O deslocamento do ponto de interesse é tudo que a maioria das equipes precisará para rastrear alvos que não têm AprilTags diretamente anexados a eles.
<gif>
- 3D Completo
- Rastreie seu LL, seu robô ou tags em 3D completo. Use campose ou json para puxar dados relevantes para seu roboRio.
<gif>
- Localização do Robô no Espaço do Campo
- Diga ao seu Limelight como ele está montado, faça upload de um mapa do campo, e seu LL fornecerá a pose do campo do seu robô para uso com o WPILib Pose Estimator.
- Nosso sistema de coordenadas do campo coloca (0,0) no centro do campo em vez de um canto.
- Use a chave botpose do networktables para este recurso.
<gif>
2022.3.0 (13/04/22)
Correções de bugs e heartbeat.
Correções de Bugs
- Correção de problemas de desempenho, estabilidade do stream e atraso do stream relacionados aos streams de Câmera USB e múltiplas instâncias de stream.
Recursos e Mudanças
- Chave "hb" de Heartbeat na NetworkTable
- O valor "hb" incrementa uma vez por frame de processamento e reinicia para zero em 2000000000.
2022.2.3 (16/03/22)
Correções de bugs e filtragem de corte via código do robô.
Correções de Bugs
- Correção da chave "stream" do networktables e Modos Picture-In-Picture
- Correção da chave "snapshot" do networktables. Usuários devem definir a chave "snapshot" como "0" antes de defini-la como "1" para tirar uma captura de tela.
- Remoção de alertas supérfluos relacionados ao Python da interface web
Recursos e Mudanças
- Filtragem Manual de Corte
- Usando o array "crop" do networktables, as equipes agora podem controlar retângulos de corte através do código do robô.
- Para que a chave "crop" funcione, o pipeline atual deve utilizar o retângulo de corte padrão, totalmente aberto (-1 para minX e minY, +1 para maxX e +1 maxY).
- Além disso, o array "crop" do networktable deve ter exatamente 4 valores, e pelo menos um desses valores deve ser diferente de zero.
2022.2.2 (23/02/22)
Atualização obrigatória para todas as equipes com base na Semana 0 e testes de confiabilidade do FMS.
Correções de Bugs
- Correção de travamento / perda de conexão / perda de rastreamento relacionados a interfaces web abertas, FMS, configurações similares ao FMS, múltiplos dispositivos de visualização etc.
Recursos e Mudanças
-
Filtragem de Recorte
- Ignora todos os pixels fora de um retângulo de recorte especificado
- Se seu volante tem pontos específicos no campo, você pode usar o filtro de recorte para ignorar a maioria dos pixels em pipelines específicos. Este recurso deve ajudar as equipes a reduzir a probabilidade de rastrear alvos indesejados.
- Se você está rastreando carga, use este recurso para procurar carga apenas em uma parte específica da imagem. Considere ignorar os para-choques da sua equipe, alvos distantes, etc.
-
Recurso de cantos agora compatível com agrupamento inteligente de alvos
- Este é para as equipes que desejam fazer visão personalizada mais avançada no RIO
- Limite de cantos "tcornxy" aumentado para 64 cantos
- Simplificação de contorno e recursos de força convexa agora funcionam adequadamente com agrupamento inteligente de alvos e envio de cantos
-
Filtro IQR máximo aumentado para 3.0
-
Taxa de atualização de alvos ao vivo da interface web reduzida de 30fps para 15fps para reduzir a largura de banda e carga da CPU enquanto a interface web está aberta
2022.1 (25/01/22)
Correções de Bugs
- Recebemos informações de um de nossos fornecedores sobre um problema (e uma solução!) que afeta aproximadamente 1/75 das CPUs especificamente usadas no Limelight 2 (pode estar relacionado a um lote específico). Faz sentido, e era uma das únicas diferenças de inicialização restantes entre a imagem de 2022 e a imagem de 2020.
- Correção dos botões de upload para entradas GRIP e Modelos SolvePNP
Recursos
-
Arco-íris de Matiz
- O novo arco-íris de matiz facilita a configuração do limite de matiz.
-
Inversão de Matiz
- O novo recurso de inversão de matiz é um recurso crítico se você deseja rastrear objetos vermelhos, já que o vermelho está tanto no início quanto no final da faixa de matiz:
-
Novas Bibliotecas Python
- Adicionadas scipy, scikit-image, pywavelets, pillow e pyserial ao nosso sandbox Python.
2022.0 e 2022.0.3 (15/01/22)
Esta é uma grande atualização. Aqui estão as quatro principais mudanças:
Recursos
-
Agrupamento Inteligente de Alvos
- Agrupa automaticamente alvos que passam por todos os filtros individuais de alvo.
- Irá agrupar dinamicamente qualquer número de alvos entre -mínimo do controle deslizante de tamanho do grupo- e -máximo do controle deslizante de tamanho do grupo-
-
Rejeição de Outliers
- Embora este objetivo seja mais desafiador que outros objetivos, ele nos dá mais oportunidades de filtragem. Conceitualmente, este objetivo é mais do que uma "mancha verde". Como sabemos que o objetivo é composto por múltiplos alvos próximos uns dos outros, podemos rejeitar alvos outliers que estão isolados.
- Você deve confiar quase inteiramente em uma boa filtragem de alvos para o objetivo deste ano, e só usar a rejeição de outliers se você ver ou esperar outliers espúrios em seu stream de câmera. Se você tiver uma filtragem padrão de alvos ruim, a detecção de outliers pode começar a trabalhar contra você!
-
Atualizações de Imagem do Limelight 2022 Removemos centenas de partes móveis do nosso software. Estes são os resultados:
- Tamanho da Imagem Comprimida: 1.3 GB em 2020 → 76MB para 2022 (Reduzido por um fator de 17!)
- Tempo de download: dezenas de minutos em 2020 → segundos para 2022
- Tempo de gravação: 5+ minutos em 2020 → segundos para 2022
- Tempo de inicialização: 35+ segundos em 2020 → 14 segundos para 2022 (10 segundos até os LEDs acenderem)
-
Programação Python Completa
- O Limelight expôs com sucesso um grande número de estudantes a algumas das capacidades de visão computacional em robótica. Com a programação em python, as equipes agora podem dar mais um passo à frente escrevendo seus próprios pipelines de processamento de imagem.
-
Esta atualização é compatível com todo Hardware Limelight, incluindo Limelight 1.
-
Problemas conhecidos: Usar zoom por hardware com python produzirá resultados inesperados.
-
2022.0.3 restaura o stream GRIP 5802 e resolve problemas de inicialização em algumas unidades LL2 revertendo algumas das otimizações de tempo de inicialização. O tempo de inicialização aumentou para 16 segundos.