Pular para o conteúdo principal

Registro de Alterações de Software & Feedback

Envie problemas e solicitações de recursos por e-mail 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 do problema de conectividade introduzido na versão de teste 2025.1.

Atualizações da IMU do LL4

  • Fusão de sensores IMU aprimorada
    • 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. Observe a enorme melhoria na precisão geral do LL4 executando 2025.1

  • Modo IMU 3 - IMU_ASSIST_MT1 - A IMU interna utilizará estimativas de guinada MT1 filtradas para correção contínua de orientação

  • Modo IMU 4 - IMU_ASSIST_EXTERNALIMU - A IMU interna utilizará a IMU externa para correção contínua de orientação

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

  • O valor padrão é definido como um valor baixo 0.001 porque agora confiamos mais na IMU interna do que antes. Os modos de assistência são construídos para "puxar" suavemente a IMU interna em direção à fonte de assistência escolhida sem prejudicar a capacidade de resposta da IMU interna durante movimentos rápidos.

Atualizações de Desempenho Térmico do LL4

  • Adicionado 'throttle_set'. Processa um quadro após cada N quadros ignorados. Exemplos de padrões:

    • throttle_set=1: [ignora, processa, ignora, processa]
    • throttle_set=2: [ignora, ignora, processa, ignora, ignora, processa]
  • As saídas não são zeradas/redefinidas durante os quadros ignorados.

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

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

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 florescimento/respiração da imagem devido à iluminação AC.

Atualizações da API REST

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

Atualizações do FMap

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

Redes Neurais ReefScape Carregadas

  • O Modelo B2 Hailo é 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 internas 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 de 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 IMU interna do LL4.
  • Adicionada chave NT "imumode_set"
    • 0 - Usar IMU externa, não inicializar IMU interna
    • 1 - Usar IMU externa, inicializar IMU interna
    • 2 - Usar IMU interna

Atualizações do Campo 2025

  • Largura e altura do campo agora fazem parte dos arquivos .fmap
  • Atualização do .fmap padrão para corresponder ao campo de 2025
  • Atualização da imagem de campo padrão
  • O construtor de mapas online agora permite configurar a 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 Snapscript Python (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 de borda MT2

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

  • Ao testar MT2 sem um robô, é fácil gerar uma impossibilidade geométrica.
  • Este caso de borda não zerava o botpose mt2 - zerava a pose da câmera.
  • O robô agora é colocado em (0,0,0) sempre que este caso de borda é 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 no FMS ou em outros dispositivos
  • No 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" em networktables contém todos os stddevs para mt1 e mt2 (array de double, 12 elementos)

Caso de borda de Upload de Modelo

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

Limelight OS 2024.10.1 (15/09/24)

Atualizações do Limelight 3A

  • Atualização dos valores padrão de balanço de cores
  • Atualização da configuração padrão de tamanho do AprilTag para 101,6 mm
  • Redução da taxa de quadros padrão do stream de vídeo para 30FPS
  • Aumento leve da compressão do stream de vídeo para reduzir a taxa de bits do stream

Aviso de Tamanho do AprilTag

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

Correção de Bug CameraPose_RobotSpace

  • A substituição da 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 de 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 ladrilhos ftc.
  • O desempenho do visualizador 3D foi melhorado.

Suporte ao 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 networktables assim como os Limelights ethernet.
    • Para usar vários Limelights USB, dê a cada LL um índice USB único e um nome de host ú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 solicitação POST update-robotorientation.
  • MT2 agora é totalmente acessível sem NetworkTables.
  • Uma vez que a rota update-robotorientation é usada, as atualizações de orientação do NetworkTables são desativadas até a 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 Snapscripts Python (from apriltag import apriltag)
  • Veja o exemplo no repositório github de exemplos
  • Correção do problema de gateway de conectividade USB no Windows.

captura de tela do mosaico:

Limelight OS 2024.9 (7/5/24)

Melhorias no MegaTag

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

  • O MegaTag2 agora usa o 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.

  • O flush() do NT4 foi adicionado ao LimelightLib. Adicionar Flush() a versões mais antigas do Limelight OS proporcionará um desempenho próximo ao 2024.9, mas o NT4 garante que a precisão seja sempre alta.

  • O robô visualizador do MT2 agora tem para-choques verdes, e o robô visualizador do 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 do 2024.9 (robô verde) com flush() do lado do robô é mais robusto que o MegaTag2 do 2024.5 sem Flush() (robô vermelho)

ID USB e Novos Endereços IP USB

  • Configure 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 configurado, a sub-rede muda para 172.29.(USBID).0/24 para Linux/Android/Mac e 172.28.(USBID).0/24 para Windows.
  • Agora você pode, por exemplo, conectar quatro dispositivos Limelight a um único Hub USB ajustando seus hostnames e USB IDs

Classificadores neurais de CPU

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

Detectores neurais de CPU

  • Faça upload de um detector .tflite para CPU para habilitar a detecção neural sem o Google Coral. Você pode esperar 10 FPS nas variantes LL3.
  • O 2024.9 vem com um detector CPU padrão.
  • Configure o runtime do detector para "CPU" para habilitar este recurso

Limelight OS 2024.8 (7/3/24)

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

Limelight OS 2024.7 (5/21/24)

  • Atualização para Linux 6.6

Correções de bugs

  • Corrigido a conversão de pipeline de visão
  • Corrigido uploads de calibração, uploads de snapshots e uploads de redes neurais

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

  • pip install limelightlib-python
  • Nossa biblioteca Python permite que você interaja com Limelights USB e Ethernet em qualquer plataforma.
  • Ela permite configuração completa do Limelight sem interação com a interface web.
  • Faça upload de 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 de "salvar no disco"
  • Publique dados de entrada Python personalizados, defina orientação do robô, etc.

Melhorias no MegaTag2

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

Métricas de Desvio Padrão

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

Novo Tipo de Pipeline "Focus"

  • 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 "foco".
  • Se sua câmera estiver em um local fixo, 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 códigos QR a 50-60FPS em 1280x800
  • Detecção e decodificação de múltiplos DataMatrix a 50-60FPS em 1280x800
  • UPC, EAN, Code128 e PDF417 múltiplos a 30FPS em 1280x800
  • Strings de dados de código de barras são publicadas no array nt "rawbarcodes".
  • O pipeline de códigos de barras 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.
  • Faça upload de 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 de "salvar no disco"
  • Publique dados de entrada Python, defina orientação do robô, etc.

Remoção da Configuração de Orientação da Câmera da Interface (MUDANÇA SIGNIFICATIVA)

  • Isso foi substituído pela opção "orientação do stream". A calibração e o direcionamento nunca são afetados por esta opção.
  • A nova opção afeta apenas o stream. De cabeça para baixo, 90 graus no sentido horário, 90 graus no sentido 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.

Remoção do Suporte GRIP (MUDANÇA SIGNIFICATIVA)

Remoção do modo "Driver" sem processamento (MUDANÇA SIGNIFICATIVA)

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

Adição do tipo de Pipeline "Viewfinder"

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

Arquivos de Pipeline agora usam formato JSON (MUDANÇA SIGNIFICATIVA)

  • Os pipelines ainda usam a extensão de arquivo .vpr
  • (Quebrado em alguns casos no 2024.6) A interface converterá automaticamente os 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 na 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 o tabuleiro grosso recomendado de 800x600mm 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 "Download Calibration Mosaic". O mosaico mostrará exatamente o que cada imagem está contribuindo para sua calibração.

captura de tela do mosaico:

Região de direcionamento "Centroid"

  • O modo de direcionamento Centroid 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 pipeline. Isso é útil para situações em que seu "ponto de mira" precisa mudar com base na distância ou outras propriedades.

Adição de Suporte Modbus

  • O Limelight OS agora tem um servidor modbus sempre ativo para inspeção, logística e aplicações industriais
  • Veja a especificação do registro 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 do 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 permite um novo fluxo de trabalho que inclui um servidor NT glass rodando em um PC, e o Limelight 3G se comunicando via USB.

Mudanças no Rawfiducial

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

Todas as Mudanças em NetworkTables e JSON

  • Adicionado NT getpipetype - Obter 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 direcionamento 2d atômico garantido - [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 configurador dinâmico de Offset 3D fiducial_offset_set

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

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

Mudanças em Outros Formatos de Arquivo e Dumps JSON

  • O formato do arquivo de calibração foi simplificado. Calibrações antigas são automaticamente 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 um contorno vermelho em vez de um contorno verde. Este problema de visualização foi corrigido.
  • Pipelines Apriltag populam o array NT tcornxy
  • Pipelines Apriltag agora respeitam totalmente o controle deslizante de área mín-máx. Anteriormente, pipelines AprilTag filtravam resultados 2D com base na Área da Tag, mas não Resultados 3D / Localização.

Limelight OS 2024.5.0 (4/9/24)

  • Atualização para Linux 6.1

Atualização da Pilha de Câmera

  • Toda a pilha de câmera foi atualizada para corrigir um travamento de 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 sobrecarga.
  • Combinando downscale dinâmico e recorte 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 no espaço de pixels 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 "reverse morpho" para inverter a ordem dos passos de dilatação e erosão

LimelightLib 1.6 (4/9/24)

  • Adicionado void SetFiducialDownscalingOverride(float downscale)

Defina como 0 para controle de 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 (4/3/24)

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

Megatag 2

Megatag 2 é um localizador sem ambiguidade. Ele 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 com uma ou mais tags, independentemente da perspectiva.
  • Aumentar a robustez contra imprecisões na colocação física do AprilTag
  • Reduzir a quantidade de filtragem necessária no lado do robô para bons resultados de estimativa de pose

Observe 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, ignore 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 resultados excelentes e sem 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 estiver no local correto ou for irrelevante, filtre-a com o novo recurso de filtro dinâmico.

Filtragem Dinâmica de Apriltag

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

Transição para o 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.

Depois de adicionar 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).

Quando o visualizador integrado estiver 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 um pouco 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, ignore atualizações de visão
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (4/3/24)

Adiciona

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (3/20/24)

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

Solucionador de Tag Única de Alta Precisão

O solucionador 3D de tag única do MegaTag foi melhorado. É muito mais estável do que antes a longas distâncias.

JSON Desativado por Padrão (Mudança Significativa)

  • JSON foi desativado por padrão para reduzir o uso de largura de banda e em geral para equipes que usam painéis de controle com auto-inscrição como o Shuffleboard.
  • Isso também deve reduzir a carga NT e o uso de CPU do RoboRIO.
  • Reative o 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 Significativa)

Os cantos são corrigidos da distorção 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)

Ambiguidade é uma nova métrica que varia de 0-1 e 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 Significativa)

  • 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 for 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, as botposes seriam redefinidas para o centro do campo em vez de (0,0,0) se a única tag visível fosse uma tag filtrada;
  • 2024.2 postava NANs em certas entradas de networktables em alguns casos raros. Isso não acontecerá mais.

LimelightLib 1.4 (3/21/24)

  • Adiciona 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 (3/18/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 (3/17/24)

Correção de Bug

TX e TY respeitam corretamente a mira nas entradas NT.


Limelight OS 2024.2 (3/8/24)

Mira zero com Json (tx_nocross, ty_nocross) e NT (txnc, tync)

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

Possível mudança significativa 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.

Melhorias na Calibração

A calibração agora é quase instantânea, não importa quantas imagens tenham sido capturadas. Também corrigimos uma falha causada 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 0,3 pixels com nossos alvos calib.io de alta qualidade.

Correção na UI de Filtros Fiduciais

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

Diversos

O Gerador de Apriltag agora tem como padrão "sem borda" para evitar escala com tags de 165,1 mm.


Limelight OS 2024.1.1 (2/24/24)

  • Correção do priorityID

Limelight OS 2024.1 (24/02/24)

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

Melhoria na Calibração

  • Corrige falha que poderia ocorrer se uma imagem de calibração contivesse exatamente uma detecção válida. Melhora o feedback da interface web.

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

  • Todos os arrays botpose nas networktables (botpose, botpose_wpiblue e botpose_wpired) agora incluem Contagem de Tags, Extensão 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. Tags AprilTag personalizadas e/ou móveis não afetarão essas métricas.

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

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

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

Novo Recurso: ID Prioritário (Chave NT priorityid)

  • Se seu robô usa recursos baseados em odometria e recursos baseados em tx/ty, você provavelmente encontrou o seguinte problema de experiência do usuário:

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

  • Embora exista um filtro de ID na interface do usuário, 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 disparo do lado azul com tag 7, um para amplificação do lado azul com tag 6, etc.).

  • O novo recurso de ID prioritário (Chave NT priorityid) permite que você diga ao seu Limelight "Após toda detecção, filtragem e classificação de tags ser concluída, concentre-se na tag que corresponde ao ID prioritário."

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

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

Diversos

  • Corrige o "x" na tela ao usar o modo de alvo duplo em um pipeline apriltag 3D
  • API REST expandida com uploads de rótulos de rede neural (/uploadlabels)
  • Inclui apelido do dispositivo no JSON /status

LimelightLib 1.3

  • LimelightLib (Java e CPP) foram atualizados 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 Problemas 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

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


Atualizações do Limelight 2024 (06/02/24)

Atualização da Documentação do Limelight

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

Gerador de AprilTag do Limelight

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

Construtor de Mapas do Limelight

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

Novo Gerenciador de Hardware

  • A Ferramenta Finder agora é o Gerenciador de Hardware do Limelight
  • 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-o agora na página de downloads captura de tela do notebook:

Treine suas próprias Redes Neurais

captura de tela do notebook:

Mapa de AprilTag 2024 e Detector de Notas

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

Limelight OS 2024.0 (06/02/24)

Correções de Calibração ChArUco

  • A precisão 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 falha.

Melhoria na Precisão do Megatag Pronto para Uso

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

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

  • Pipelines AprilTag com FPS mais alto
  • O desempenho do Visualizador de Espaço de Campo foi significativamente melhorado.

Correções de Bugs

  • As 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"