Pular para o conteúdo principal

Registro de Alterações de Software & Feedback

Envie problemas e solicitações de recursos por email ou para o Repositório de Feedback do Limelight

Limelight OS 2025.1 (VERSÃO FINAL - 24/02/25 VERSÃO DE TESTE - 18/02/25)

24/02/25 - Correção de problema de conectividade introduzido na versão de teste 2025.1.

Atualizações do IMU do LL4

  • Fusão de sensores IMU melhorada
    • Desempenho significativamente melhor sob vibração e impactos de nível FRC. Grandes mudanças na abordagem de fusão.
Atualizações IMU 2025.1

A imagem acima mostra o resultado de uma sessão de prática bastante violenta de ~5 minutos com um robô FRC. Nesta sessão, medimos as orientações de

  1. Um Limelight 4 executando 2025.0 (llyawOLD)
  2. Um Limelight 4 executando 2025.1 (llyaw)
  3. Um Pigeon 2.0

Os dois LL4s estão montados em orientações idênticas. Note a melhoria massiva na precisão geral do LL4 executando 2025.1

  • Modo IMU 3 - IMU_ASSIST_MT1 - O IMU interno utilizará estimativas de yaw MT1 filtradas para correção contínua de orientação

  • Modo IMU 4 - IMU_ASSIST_EXTERNALIMU - O IMU interno utilizará o IMU externo para correção contínua de orientação

  • Adicionada chave NT imuassistalpha_set (padrão 0.001) - Alpha / força do filtro complementar. Valores mais altos farão o IMU interno convergir para a fonte de assistência mais rapidamente

  • O padrão está definido para um valor baixo 0.001 porque agora confiamos mais no IMU interno do que antes. Os modos de assistência são construídos para "puxar" muito suavemente o IMU interno em direção à fonte de assistência escolhida sem prejudicar a responsividade do IMU interno durante movimentos rápidos.

Atualizações de Desempenho Térmico do LL4

  • Adicionado 'throttle_set'. Processa um frame após cada N frames pulados. Padrões de exemplo:

    • throttle_set=1: [pular, processar, pular, processar]
    • throttle_set=2: [pular, pular, processar, pular, pular, processar]
  • As saídas não são zeradas/resetadas durante frames pulados.

  • Defina isso para um número alto enquanto desabilitado (50-200) para gerenciar a temperatura do seu LL4.

  • Opcionalmente, você pode configurar um pipeline como visor e mudar para este pipeline enquanto desabilitado.

Novas Opções de FPS para LL4 e LL3G

  • Adicionado 1280x800 a 60FPS, 55FPS, 45FPS e 30FPS.
  • Usar taxas de captura mais baixas permitirá aumentar o tempo de exposição para evitar blooming/respiração de imagem devido à iluminação AC.

Atualizações da API REST

  • Adicionada API REST de Modo IMU - 'update-imumode'
  • Adicionada API REST de Throttle - 'update-throttle'
  • Adicionada API REST de IMU ASSIST ALPHA - 'update-imuassistalpha'

Atualizações do FMap

  • Arquivos Json FMap agora podem opcionalmente incorporar um SVG codificado em base64
  • Arquivos Json FMap agora podem opcionalmente incorporar um PNG codificado em base64

Redes Neurais ReefScape Carregadas

  • O Modelo Hailo B2 é nosso modelo de melhor desempenho para FRC2025. Foi treinado em imagens monocromáticas para melhor acomodar o LL4.
Modelo Coral

Atualizações do LL3A

  • 3A totalmente suportado com atualizações de 2025

Correções de Bugs

  • Limelights sem IMUs internos ignoram imumode_set
  • Limelight 3s que foram atualizados para Limelight 3Gs utilizarão corretamente o ventilador integrado
  • Correção de Recorte em pipelines de Detector Neural baseados em Hailo
  • Correção de Recorte em pipelines AprilTag baseados em Hailo

Limelight OS 2025.0 (15/01/24)

Suporte ao LL4

  • Adicionado suporte para detecção de objetos Hailo e AprilTags acelerados por Hailo
  • Adicionado suporte para o IMU interno do LL4.
  • Adicionada chave NT "imumode_set"
    • 0 - Usar IMU externo, não inicializar IMU interno
    • 1 - Usar IMU externo, inicializar IMU interno
    • 2 - Usar IMU interno

Atualizações de Campo 2025

  • Largura e altura do campo agora fazem parte dos arquivos .fmap
  • Atualizado .fmap padrão para corresponder ao campo de 2025
  • Atualizada imagem padrão do campo
  • O construtor de mapas online agora permite configurar largura e altura do campo
  • O link do fmap 2025 na página de downloads foi atualizado.

Correções de Bugs

  • Correção do botão "excluir todos os snapshots"

Limelight OS 2024.10.2 (28/10/24)

Correção do Python Snapscript (CRÉDITO - EQUIPE FTC 23251 TRIPLE FAULT)

  • As saídas Python não congelarão mais ao usar o Control Hub com Limelight3A
  • As saídas Python não congelarão mais ao alternar entre pipelines python

Caso extremo MT2

https://github.com/LimelightVision/limelight-feedback/issues/23

  • Ao testar MT2 sem um robô, é fácil gerar uma impossibilidade geométrica.
  • Este caso extremo não zerava o botpose mt2 - zerava a pose da câmera.
  • O robô agora é colocado em (0,0,0) sempre que este caso extremo é detectado

Endereçamento IP Estático

https://github.com/LimelightVision/limelight-feedback/issues/25

  • Adicionado um aviso ao configurador de endereço IP se o endereço terminar em .1-.10 ou .20-.255, pois esses endereços podem interferir com o FMS ou outros dispositivos
  • Em 2024.10.1, a interface às vezes sugeria que um IP estático estava configurado quando o esquema de endereçamento estava definido como "automático"

STDDevs NetworkTables

https://github.com/LimelightVision/limelight-feedback/issues/24

  • "stddevs" no networktables contém todos os stddevs para mt1 e mt2 (array de double, 12 elementos)

Caso extremo de Upload de Modelo

  • Se um modelo classificador for carregado em um pipeline detector, "check model" será exibido na imagem
  • Se um modelo detector for carregado em um pipeline classificador, "check model" será exibido na imagem

Limelight OS 2024.10.1 (15/09/24)

Atualizações do Limelight 3A

  • Atualizados valores padrão de balanço de cores
  • Atualizada configuração padrão de tamanho AprilTag para 101.6 mm
  • Reduzida taxa de frames padrão do stream de vídeo para 30FPS
  • Aumentada ligeiramente a compressão do stream de vídeo para reduzir a taxa de bits do stream

Aviso de Tamanho AprilTag

  • Adicionado um aviso ao visualizador de espaço de campo se o tamanho AprilTag configurado não corresponder aos tamanhos no mapa de campo carregado.
Banner de exemplo

Correção de Bug CameraPose_RobotSpace

  • Sobrescrever a Pose da Câmera configurada na interface a partir de NetworkTables/LimelightLib/REST funciona corretamente novamente.

Limelight OS 2024.10 (04/09/24)

Suporte ao Limelight 3A para FTC

  • Limelight3A é totalmente suportado
  • 3A é utilizável tanto em FTC quanto em FRC

Atualizações do Mapa AprilTag

  • O editor de mapas agora suporta geração de mapas FTC padrão e diamante
  • A interface web LLOS exibirá automaticamente o tipo de campo correto com base no mapa carregado
  • Todos os visualizadores de campo em ferramentas e interfaces mostram zonas de aliança e grades de tiles FTC.
  • O desempenho do visualizador 3D foi melhorado.

Suporte a Limelight USB no ControlHub e RoboRio.

  • Equipes FTC podem usar um único Limelight com capacidade USB no Control Hub
  • Equipes FRC podem usar até 16 Limelights com capacidade USB no RoboRio. Limelights USB preenchem automaticamente o networktables assim como limelights ethernet.
    • Para usar múltiplos Limelights USB, dê a cada LL um índice USB único e um hostname único.

Melhorias de Conectividade USB

  • MacOS não usa mais a interface Ethernet USB do Limelight para acesso à internet
  • Windows não tenta mais usar a interface Ethernet USB do Limelight para acesso à internet

Atualizações da API REST

  • Correção da requisição POST update-robotorientation.
  • MT2 agora é totalmente acessível sem NetworkTables.
  • Uma vez que a rota update-robotorientation é usada, atualizações de orientação via NetworkTables são desabilitadas até reinicialização.

Limelight OS 2024.9.1 (07/07/24)

  • A Ferramenta de Construção de Mapas agora aceita/converte layouts de apriltag .json do WPILib
  • Adicionado AprilTag3 aos Python Snapscripts (from apriltag import apriltag)
  • Veja exemplo no repositório de exemplos do github
  • Correção de problema de gateway de conectividade USB no Windows.

captura de tela do mosaico:

Limelight OS 2024.9 (05/07/24)

Melhorias do MegaTag

  • Limelight OS fez a transição para NetworkTables 4.0

  • MegaTag2 agora usa getAtomic() do NT4 para recuperar atualizações de IMU com timestamp do roboRIO.

  • Nossos frames de imagem com timestamp são combinados com as duas amostras de IMU mais relevantes antes da interpolação ser realizada.

  • NT4 flush() foi adicionado ao LimelightLib. Adicionar Flush() a versões mais antigas do Limelight OS chegará bem perto do desempenho de 2024.9, mas NT4 garante que a precisão seja sempre alta.

  • O robô visualizador MT2 agora tem para-choques verdes, e o robô visualizador MT1 usa para-choques amarelos.

  • As métricas agora são recolhíveis, e os robôs virtuais podem ser ocultados.

  • O vídeo a seguir demonstra como o MegaTag 2 de 2024.9 (robô verde) com flush() do lado do robô é mais robusto que o MegaTag2 de 2024.5 sem Flush() (robô vermelho)

ID USB e Novos Endereços IP USB

  • Defina o "USB ID" na página de configurações para usar múltiplos Limelights USB em qualquer sistema.
  • A interface USB-Ethernet que aparece no seu sistema utilizará um endereço IP determinado pelo USB ID
  • Sistemas Linux/Android/Mac agora utilizarão a sub-rede 172.29.0.0/24 por padrão
  • Sistemas Windows agora utilizarão a sub-rede 172.28.0.0/24 por padrão.
  • Se o USBID estiver definido, a sub-rede muda para 172.29.(USBID).0/24 para Linux/Android/Mac e 172.28.(USBID).0/24 para Windows.
  • Você pode agora, por exemplo, conectar quatro dispositivos Limelight a um único Hub USB ajustando seus hostnames e USB IDs

Classificadores Neurais CPU

  • Carregue um classificador .tflite de CPU para habilitar classificação neural sem Google Coral. Você pode esperar 15-18 FPS em variantes LL3.
  • 2024.9 vem com um classificador CPU padrão.
  • Defina o runtime do classificador para "CPU" para habilitar este recurso

Detectores Neurais CPU

  • Carregue um detector .tflite de CPU para habilitar detecção neural sem Google Coral. Você pode esperar 10 FPS em variantes LL3.
  • 2024.9 vem com um detector CPU padrão.
  • Defina o runtime do detector para "CPU" para habilitar este recurso

Limelight OS 2024.8 (03/07/24)

  • Adicionado saída python (PythonOut), tx, ty, txnc, tync, ta ao objeto de resultados json
  • Compensação de latência MT2 ainda mais melhorada

Limelight OS 2024.7 (21/05/24)

  • Atualização para Linux 6.6

Correções de Bugs

  • Correção de conversão de pipeline de visão
  • Correção de uploads de calibração, uploads de snapshot e uploads de nn

Limelight OS 2024.6 (08/05/24)

LimelightLib Python

  • pip install limelightlib-python
  • Nossa biblioteca Python permite interagir com Limelights USB e Ethernet em qualquer plataforma.
  • Permite configuração completa do Limelight sem interação com a interface web.
  • Carregue pipelines, redes neurais, mapas de campo, etc
  • Faça alterações em tempo real em qualquer parâmetro de pipeline com uma opção opcional "salvar no disco"
  • Poste dados de entrada python personalizados, defina orientação do robô, etc.

Melhorias do MegaTag2

  • A compensação de latência do giroscópio MegaTag2 foi melhorada. Fique atento para mais melhorias em breve!
  • Adicionado controle deslizante "Ajuste de latência do giroscópio" na interface. Para ajustar manualmente a compensação de latência do MegaTag 2, você pode girar seu robô e ajustar o controle deslizante até que os resultados de localização sejam perfeitos durante a rotação.

Métricas de Desvio Padrão

  • O visualizador de Campo 3D agora inclui desvios padrão MegaTag1 e Megatag2 para x, y e yaw.

Novo Tipo de Pipeline "Focus"

  • Enquanto no modo "focus", você terá acesso a um controle deslizante de qualidade de stream e um controle deslizante de caixa de recorte
  • Gire a lente para maximizar a pontuação de "focus".
  • Se sua câmera estiver em uma localização fixa, isso leva menos de um minuto. Recomendamos focar com um Limelight fixo / montado.

Novo Tipo de Pipeline "Barcodes"

  • Detecção e Decodificação de Múltiplos QR Codes a 50-60FPS em 1280x800
  • Detecção e Decodificação de Múltiplos DataMatrix a 50-60FPS em 1280x800
  • Múltiplos UPC, EAN, Code128 e PDF417 a 30FPS em 1280x800
  • Strings de dados de código de barras são postadas no array nt "rawbarcodes".
  • O pipeline Barcodes preencherá todas as métricas 2D como tx, ty, ta, tcornxy, etc.

API REST Totalmente Nova

  • https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
  • Nossa API REST / HTTP foi reconstruída do zero.
  • A API REST permite configuração completa do Limelight sem interação com a interface web.
  • Carregue pipelines, redes neurais, mapas de campo, etc
  • Faça alterações em tempo real em qualquer parâmetro de pipeline com uma opção opcional "salvar no disco"
  • Poste dados de entrada python, defina orientação do robô, etc.

Remover Configuração de Orientação da Câmera da Interface (MUDANÇA INCOMPATÍVEL)

  • Isso foi substituído pela opção "orientação do stream". Calibração e mira nunca são afetadas por esta opção.
  • A nova opção afeta apenas o stream. De cabeça para baixo, 90 Graus Horário, 90 Graus Anti-horário, Espelho Horizontal e Espelho Vertical
  • As equipes agora precisarão inverter manualmente tx e ty conforme necessário ao usar câmeras rotacionadas.

Remover Suporte GRIP (MUDANÇA INCOMPATÍVEL)

Remover modo "Driver" de processamento zero (MUDANÇA INCOMPATÍVEL)

  • Isso foi substituído pelo tipo de pipeline "Viewfinder"

Adicionar tipo de Pipeline "Viewfinder"

  • O pipeline viewfinder desabilita todo processamento para latência mínima
  • Isso permite que as equipes projetem seus próprios pipelines "Driver" para modos somente visualização

Arquivos de Pipeline agora Usam formato JSON (MUDANÇA INCOMPATÍVEL)

  • Pipelines ainda usam a extensão de arquivo .vpr
  • (Quebrado em alguns casos em 2024.6) A interface converterá automaticamente pipelines para JSON quando você usar o botão "upload".
  • (Totalmente funcional) Você também pode usar https://tools.limelightvision.io/pipeline-upgrade para atualizar seus pipelines

Melhoria de UX de Calibração

  • As configurações de calibração agora são armazenadas em cache. Você não precisa mais inserir suas configurações de calibração toda vez que quiser calibrar.
  • O dicionário de calibração padrão foi atualizado para funcionar com a placa grossa 800x600mm recomendada da Calib.io.

Mosaico de Calibração

  • Anteriormente, era difícil determinar a qualidade das imagens de calibração
  • A aba de calibração agora tem um botão "Baixar Mosaico de Calibração". O mosaico mostrará exatamente o que cada imagem está contribuindo para sua calibração.

captura de tela do mosaico:

Região de mira "Centroid"

  • O modo de mira centroide foi adicionado à aba "Output" para melhorar o rastreamento de objetos com pipelines de cor

Offset 3D Dinâmico (NT: fiducial_offset_set)

  • Agora é possível ajustar o Offset 3D sem mudar de pipelines. Isso é útil para situações em que seu "ponto de mira" precisa mudar com base na distância ou outras propriedades.

Adicionar Suporte Modbus

  • Limelight OS agora tem um servidor modbus sempre ativo para inspeção, logística e aplicações industriais
  • Veja a especificação de registros modbus aqui: https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
  • A porta padrão do servidor modbus pode ser alterada na aba de configurações da interface
  • Através de modbus e pipelines python snapscript, aplicações de visão completamente personalizadas com comunicação bidirecional agora são suportadas.

Servidor NT Personalizado

  • A aba de configurações agora contém uma entrada para um servidor NT personalizado.
  • Isso habilita um novo fluxo de trabalho que inclui um servidor NT glass rodando em um PC, e Limelight 3G comunicando via USB.

Mudanças em Rawfiducial

  • O valor "area" de fiduciais brutos agora é um valor calibrado e normalizado variando de ~0-1

Todas as Mudanças de NetworkTables e JSON

  • Adicionado NT getpipetype - Obtém a string do tipo de pipeline atual (ex: pipe_color, pipe_fiducial)

  • Adicionado NT tcclass - Nome da classe detectada pelo pipeline classificador

  • Adicionado NT tdclass - Nome da classe detectada pelo pipeline detector

  • Adicionado NT t2d para mira 2d atômica garantida - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]

  • Removido NT tlong, tshort, thor, tvert e ts

  • Adicionado array NT 'crosshairs' [cx0,cy0,cx1,cy1]

  • Removido NT cx0, cy0, cx1 e cy1

  • Adicionado NT rawbarcodes - Array de Strings NT de dados de código de barras. Até 32 entradas.

  • Todos os arrays "raw" permitem até 32 alvos (aumentado de 8)

  • Adicionado fiducial_offset_set setter de Offset 3D dinâmico

  • Adicionado "pType" ao objeto de resultado json de nível superior

  • Adicionado "stdev_mt1" e "stdev_mt2" ao resultado json de nível superior (x,y,z,roll,pitch,yaw) (metros, graus)

Mudanças em Outros Formatos de Arquivo e Dumps JSON

  • O formato de arquivo de calibração foi simplificado. Calibrações antigas são auto-convertidas para o novo formato ao fazer upload
  • Uma camada de aninhamento foi removida dos dumps JSON de Resultados e Status

Correções de Bugs

  • Anteriormente, se um Google Coral fosse desconectado enquanto um pipeline Neural estava ativo, o pipeline reverteria permanentemente para o modo "color/retro"
    • Agora, "CHECK CORAL" ou "CHECK MODEL" será impresso na imagem. O tipo de pipeline nunca mudará
  • Anteriormente, tags que passavam com sucesso pelo filtro de ID fiducial às vezes eram desenhadas com contorno vermelho em vez de contorno verde. Este problema de visualização foi corrigido.
  • Pipelines Apriltag preenchem o array NT tcornxy
  • Pipelines Apriltag agora respeitam totalmente o controle deslizante de área min-max. Anteriormente, pipelines AprilTag filtravam resultados 2D com base na Área da Tag, mas não Resultados 3D / de Localização.

Limelight OS 2024.5.0 (9/4/24)

  • Atualização para Linux 6.1

Atualização da Stack de Câmera

  • Toda a stack de câmera foi atualizada para corrigir um travamento do periférico de câmera no Limelight3G.
    • Os sintomas incluem
  • Certifique-se de reajustar as configurações de exposição e ganho após aplicar esta atualização.

Downscaling Dinâmico

  • As equipes agora podem definir "fiducial_downscale_set" para substituir a configuração de downscale do pipeline atual
  • 0:Controle UI, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
  • Use o novo método Helpers com 0.0 (Controle UI), 1.0, 1.5, 2.0, 3.0, 4.0
  • Esta é uma operação sem overhead.
  • Combinando downscale dinâmico e crop dinâmico, as equipes podem maximizar o FPS sem gerenciar múltiplos pipelines

Melhorias no MegaTag2

  • MT2 agora funciona independentemente da orientação do Limelight, incluindo modos "retrato" com rotações de 90 graus e -90 graus

Array nt "rawdetections"

  • [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
  • Os cantos estão em espaço de pixel sem calibração aplicada

Atualização de Erosão/Dilatação

  • Pipelines de cor agora suportam até 10 passos de dilatação e 10 passos de erosão
  • Pipelines de cor agora têm uma opção "morpho reverso" para inverter a ordem dos passos de dilatação e erosão

LimelightLib 1.6 (9/4/24)

  • Adicionado void SetFiducialDownscalingOverride(float downscale)

Defina como 0 para controle do pipeline, ou um dos seguintes para substituir a configuração de downscale do seu pipeline: 1, 1.5, 2, 3, 4

  • Adicionado RawFiducial[] GetRawFiducials()
  • Adicionado RawDetection[] GetRawDetections()

Limelight OS 2024.4.0 (3/4/24)

Obrigado a todas as equipes que contribuíram com ideias para esta atualização.

Megatag 2

Megatag 2 é um localizador livre de ambiguidade. Tem maior precisão e maior exatidão que o Megatag1, e foi construído com os seguintes requisitos:

  • Eliminar o problema de ambiguidade de pose e aumentar a robustez contra ruído de imagem/cantos.
  • Fornecer excelentes estimativas de pose dado uma ou mais tags, independentemente da perspectiva.
  • Aumentar a robustez contra imprecisões no posicionamento físico das AprilTags
  • Reduzir a quantidade de filtragem necessária no lado do robô para bons resultados de estimativa de pose

Note a diferença entre MegaTag2 (robô vermelho) e Megatag (robô azul) neste caso altamente ambíguo de tag única:

Megatag2 requer que você defina a orientação do seu robô com uma nova chamada de método. Aqui está um exemplo completo:

      LimelightHelpers.SetRobotOrientation("limelight", m_poseEstimator.getEstimatedPosition().getRotation().getDegrees(), 0, 0, 0, 0, 0);
LimelightHelpers.PoseEstimate mt2 = LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
if(Math.abs(m_gyro.getRate()) > 720) // se nossa velocidade angular for maior que 720 graus por segundo, ignorar atualizações de visão
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.6,.6,9999999));
m_poseEstimator.addVisionMeasurement(
mt2.pose,
mt2.timestampSeconds);
}

Megatag2 fornece excelentes resultados livres de ambiguidade a qualquer distância com uma única tag. Isso significa que é perfeitamente viável focar apenas em tags que são relevantes e dentro da sua tolerância de posicionamento desejada. Se uma tag não está no local correto ou é irrelevante, filtre-a com o novo recurso de filtro dinâmico.

Filtragem Dinâmica de Apriltag

  • Como o MegaTag2 não precisa desesperadamente acumular o máximo de AprilTags possível, você pode filtrar com segurança por tags bem posicionadas e relevantes:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

Transição para MegaTag2

Megatag2 requer a orientação do seu robô para funcionar corretamente. Uma orientação de 0 graus, 360 graus, 720 graus, etc significa que seu robô está voltado para a parede da aliança vermelha. Esta é a mesma convenção usada no PathPlanner, Chorero, Botpose e Botpose_wpiblue.

Uma vez que você tenha adicionado SetRobotOrientation() ao seu código, verifique o visualizador 3D integrado. A curta distância, Megatag2 e Megatag1 devem corresponder de perto, se não exatamente. A longa distância, Megatag 2 (robô vermelho) deve ser mais preciso e mais estável que Megatag1 (robô azul).

Uma vez que o visualizador integrado esteja mostrando bons resultados, você pode usar com segurança o Megatag2 para guiar seu robô durante o período autônomo.

O único filtro que recomendamos adicionar é um filtro de "velocidade angular máxima". Você pode descobrir que em altas velocidades angulares, suas estimativas de pose se tornam ligeiramente menos confiáveis.

O repositório de exemplos tem um exemplo de Megatag2 com este filtro.

    if(Math.abs(m_gyro.getRate()) > 720) // se nossa velocidade angular for maior que 720 graus por segundo, ignorar atualizações de visão
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (3/4/24)

Adicionado

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (20/3/24)

Obrigado a todas as equipes que contribuíram com ideias para esta atualização.

Solver de Tag Única de Maior Precisão

O solver 3D de tag única do MegaTag foi melhorado. É muito mais estável do que antes a longa distância.

JSON Desabilitado por Padrão (Mudança Incompatível)

  • JSON foi desabilitado por padrão para reduzir o uso de largura de banda em geral para equipes usando dashboards com auto-inscrição como Shuffleboard.
  • Isso também deve reduzir a carga NT do RoboRIO e o uso de CPU.
  • Reabilite json por pipeline na aba de saída.
  • Esta atualização inclui mudanças que devem permitir que ainda mais equipes façam a transição do JSON para estimativa de pose.

Área Não Distorcida (Mudança Incompatível)

Os cantos são não distorcidos antes de calcular a área de qualquer alvo.

Incluir Métricas Por-Fiducial em botpose, botpose_wpiblue e botpose_wpired

[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (metros), averageDistance (metros), averageArea (porcentagem da imagem), (tags) ]

Para cada tag usada pela localização megatag, os arrays acima agora incluem (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)

Ambiguity é uma nova métrica variando de 0-1 que indica a ambiguidade da perspectiva atual da tag. Atualizações de tag única com ambiguidades de tag > .9 provavelmente devem ser rejeitadas.

Arrays nt "rawtargets" e "rawfiducials" (Mudança Incompatível)

  • rawtargets - (txnc,tync,ta) por alvo
  • rawfiducials - (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity) por alvo
  • As entradas NT rawtargets anteriores (tx0,ty0, etc) foram removidas.

Correções de Bugs

  • Zerar todas as informações 3D de tag única se o priorityID não foi encontrado. Anteriormente, apenas Tx, Ta, Ty e Tv eram zerados quando a priorityTag não era encontrada
  • Zerar botpose se a única tag visível foi filtrada pelo recurso "ID Filters" da UI. Anteriormente, botposes resetavam para o centro do campo em vez de (0,0,0) se a única tag visível era uma tag filtrada;
  • 2024.2 postava NANs em certas entradas de networktables em algumas instâncias raras. Isso não acontecerá mais.

LimelightLib 1.4 (21/3/24)

  • Adicionado suporte para Raw Fiducials do 2024.3.4. PoseEstimates agora incluem um array de rawFiducials que contém id, txnc, tync, ta, distanceToCamera, distanceToRobot e ambiguity

Limelight Hardware Manager 1.4 (18/3/24)

Correção de Bug

Limelights USB descobertos são exibidos corretamente como uma única entrada em vez de duas entradas parciais.


Limelight OS 2024.2.2 (17/3/24)

Correção de Bug

TX e TY respeitam corretamente o crosshair nas entradas NT.


Limelight OS 2024.2 (8/3/24)

Mira Zero-Crosshair com Json (tx_nocross, ty_nocross) e NT (txnc, tync)

Se você está usando mira tx/ty com calibração de intrínsecos personalizada, provavelmente ainda está vendo variação de câmera para câmera porque o crosshair do Limelight não está alinhado com o pixel principal da câmera. Equipes que requerem maior precisão tx/ty podem configurar o crosshair para corresponder ao pixel principal, ou usar essas novas métricas.

Mudança potencialmente incompatível em tx/ty

Um bug foi introduzido no início desta temporada que quebrou a calibração personalizada especificamente para tx, ty e tx + ty em json. O Limelight OS estava revertendo para calibrações padrão em vários casos.

Atualizações de Calibração

A calibração agora é quase instantânea, não importa quantas imagens foram capturadas. Também corrigimos um crash causado por ter mais de cerca de 30 imagens em certas circunstâncias.

Estamos consistentemente obtendo um erro de reprojeção de cerca de 1 pixel com 15-20 imagens de alvos de papel, e um erro de .3 pixels com nossos alvos calib.io de alta qualidade.

Correção de UI de Filtros Fiduciais

A caixa de texto de filtro fiducial agora aceita qualquer número de filtros.

Diversos

O Gerador de Apriltag agora tem como padrão "sem borda" para evitar escalonamento com tags de 165.1 mm.


Limelight OS 2024.1.1 (24/2/24)

  • Correção do priorityID

Limelight OS 2024.1 (24/2/24)

Métricas de HW (chave hw em networktables, requisição GET /status)

Melhoria de Calibração

  • Correção de crash que poderia ocorrer se uma imagem de calibração contivesse exatamente uma detecção válida. Melhoria no feedback da web ui.

Melhoria de Localização do Robô (contagem de tags e mais)

  • Todos os arrays botpose de networktables (botpose, botpose_wpiblue e botpose_wpired) agora incluem Contagem de Tags, Span de Tags (metros), Distância Média (metros) e Área Média (porcentagem da imagem)

  • Essas métricas são calculadas com tags que estão incluídas no mapa de campo carregado. AprilTags personalizadas e/ou móveis não afetarão essas métricas.

  • Com calibração de dispositivo e esta atualização do array botpose, não acreditamos que JSON seja necessário para a grande maioria dos casos de uso este ano.

  • O dump JSON agora inclui botpose_avgarea, botpose_avgdist, botpose_span e botpose_tagcount por conveniência.

[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]

Novo Recurso: Priority ID (Chave NT priorityid)

  • Se seu robô usa tanto recursos baseados em odometria quanto recursos baseados em tx/ty, você provavelmente encontrou o seguinte problema de UX:

  • Antes desta atualização, não havia maneira fácil de trocar o ID de tag preferido para mira tx/ty.

  • Embora exista um filtro de ID na UI, ele

    • não é dinâmico
    • remove tags da localização megaTag.
  • Isso significava que as equipes estavam criando vários pipelines: um para localização 3D, e um por tag tx/ty (um pipeline para tiro do lado azul com tag 7, um para amp do lado azul com tag 6, etc.).

  • O novo recurso priority ID (Chave NT priorityid) permite que você diga ao seu Limelight "Após toda detecção de tag, filtragem e ordenação estar completa, foque na tag que corresponde ao priority ID."

  • Isso não afeta a localização de forma alguma, e apenas muda ligeiramente a ordem das tags nos resultados JSON.

  • Se seu priority id não for -1, tx/ty/ta retornará 0 a menos que a tag escolhida esteja visível.

Diversos

  • Correção do "x" na tela ao usar modo dual-target em um pipeline 3D de apriltag
  • API REST expandida com uploads de labels de rede neural (/uploadlabels)
  • Incluir apelido do dispositivo no json /status

LimelightLib 1.3

  • LimelightLib (Java e CPP) foram atualizadas para tornar a localização mais fácil do que nunca.
  LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if(limelightMeasurement.tagCount >= 2)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.7,.7,9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds);
}


Novos recursos para Equipes

Feedback e Rastreador de Issues do Limelight: https://github.com/LimelightVision/limelight-feedback/issues

Repositório de Exemplos: https://github.com/LimelightVision/limelight-examples

Exemplo de Mira e Alcance com Swerve: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging

Exemplo de Localização MegaTag: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation

Obrigado aos contribuidores recentes jasondaming, Gold876, JosephTLockwood, Andrew Gasser e virtuald


Atualizações Limelight 2024 (6/2/24)

Atualização da Documentação Limelight

  • A documentação foi reescrita para simplificar o processo de configuração

Gerador de AprilTag Limelight

  • https://tools.limelightvision.io/ agora apresenta o primeiro gerador de AprilTag online.
  • Selecione o tamanho do papel, tamanho do marcador e IDs das tags para gerar um PDF imprimível.
  • O Safari pode não exibir corretamente as tags no momento.

Construtor de Mapas Limelight

  • https://tools.limelightvision.io/map-builder
  • Agora você pode construir mapas personalizados de AprilTag com uma UI intuitiva.
  • A família padrão e o tamanho da tag foram atualizados para corresponder ao campo de 2024.

Novo Hardware Manager

  • A Ferramenta Finder agora é o Limelight Hardware Manager
  • Foi reescrita do zero. Agora detecta Limelights de forma confiável, fornece informações de diagnóstico mais úteis e não requer reinicializações para funcionar corretamente.
  • Obtenha agora na página de downloads captura de tela do notebook:

Treine suas próprias Redes Neurais

captura de tela do notebook:

Mapa AprilTag 2024 e Detector de Note

  • O mapa e o modelo detector foram adicionados à página de downloads e à imagem mais recente do Limelight OS.

Limelight OS 2024.0 (6/2/24)

Correções de Calibração ChArUco

  • A precisão de subpixel do nosso detector ChArUco foi aumentada. Um erro de reprojeção de 1-2 pixels agora é alcançável com alvos de prancheta e 20 imagens.
  • Usando a mesma câmera e o mesmo alvo, 2023.6 alcançou um RPE de 20 pixels, e 2024.0 alcançou um RPE de 1.14 pixels.
  • Os campos de entrada não aceitam mais letras e caracteres especiais. Isso elimina o potencial de crash.

Melhoria de Precisão Megatag Pronta para Uso

  • Antes desta atualização, o gerador de mapa Megatag interno do Limelight referenciava o slider de tamanho de tag da UI em vez dos tamanhos de tag fornecidos pelo arquivo .fmap.
  • Megatag agora respeita os tamanhos de tag configurados em arquivos fmap e ignora o slider de tamanho.
  • Se seu slider de tamanho não foi definido para 165.1 mm, você notará uma melhoria imediata na precisão de localização

Atualizações de Performance e Correções de Bugs

  • Pipelines AprilTag com FPS mais alto
  • A performance do Visualizador de Espaço de Campo foi significativamente melhorada.

Correções de Bugs

  • Apriltags nos visualizadores 3D às vezes eram desenhadas com imagens de tag incorretas ou corrompidas. As tags agora são sempre exibidas corretamente.
  • "v" / tv / "valid" agora só retornará "1" se houver detecções válidas. Anteriormente, tv era sempre "1"