Pular para o conteúdo principal

Registro de Alterações do Software e Feedback

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

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 irão mais congelar ao usar o Control Hub com Limelight3A
  • As saídas Python não irão mais congelar ao alternar entre pipelines python

Caso específico do MT2

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

  • Durante testes do MT2 sem um robô, é fácil gerar uma impossibilidade geométrica.
  • Este caso específico não zerava a botpose do mt2 - ele zerava a pose da câmera.
  • O robô agora é posicionado em (0,0,0) sempre que este caso específico é 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
  • Na versão 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 doubles, 12 elementos)

Caso específico 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 cor
  • Atualização da configuração padrão do tamanho do AprilTag para 101.6 mm
  • Redução da taxa de quadros padrão do stream de vídeo para 30FPS
  • Leve aumento na compressão do stream de vídeo para reduzir a taxa de bits

Aviso de Tamanho do AprilTag

  • Adição de 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.
Example banner

Correção de Bug do CameraPose_RobotSpace

  • A substituição da Pose da Câmera configurada na interface do usuário a partir do NetworkTables/LimelightLib/REST está funcionando corretamente novamente.

Limelight OS 2024.10 (9/4/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 todas as ferramentas e interfaces mostram zonas de aliança e grades de ladrilhos ftc
  • O desempenho do visualizador 3D foi melhorado

Suporte USB Limelight no ControlHub e RoboRio

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

Melhorias na Conectividade USB

  • MacOS não usa mais a interface USB Ethernet Limelight para acesso à internet
  • Windows não tenta mais usar a interface USB Ethernet 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, as atualizações de orientação do NetworkTables são desativadas até a reinicialização

Limelight OS 2024.9.1 (7/7/24)

  • A Ferramenta Map Builder 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 cronometradas do IMU do roboRIO.

  • Nossos quadros de imagem cronometrados são combinados com as duas amostras 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 te aproximará bastante do desempenho do 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 CPU

  • Faça upload de um classificador .tflite CPU para habilitar classificação neural sem Google Coral. Você pode esperar 15-18 FPS em 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 CPU

  • Faça upload de um detector .tflite CPU para habilitar detecção neural sem Google Coral. Você pode esperar 10 FPS em 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)

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

Limelight OS 2024.7 (21/05/24)

  • Atualização para Linux 6.6

Correções de Bugs

  • Correção na conversão do pipeline de visão
  • Correção nos 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.
  • 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 do pipeline com uma opção opcional de "salvar em disco"
  • Envie 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 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 yaw.

Novo Tipo de Pipeline "Foco"

  • No modo "foco", 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 "Códigos de Barras"

  • 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
  • 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.

Nova API REST

  • 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 do pipeline com uma opção opcional de "salvar em disco"
  • Envie 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 INCOMPATÍVEL)

  • Foi substituída 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 INCOMPATÍVEL)

Remoção do modo "Driver" sem processamento (MUDANÇA INCOMPATÍVEL)

  • 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
  • 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
  • (Com problemas em alguns casos no 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 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 como cada imagem está contribuindo para sua calibração.

screenshot do mosaico:

Região de direcionamento "Centroide"

  • O modo de direcionamento 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 pipelines. Isso é útil em 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 no 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 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 de offset 3d dinâmico 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 verde. Este problema de visualização foi corrigido.
  • Pipelines Apriltag populam o array NT tcornxy
  • Pipelines Apriltag agora respeitam completamente o controle deslizante de área mín-máx. Anteriormente, pipelines AprilTag filtravam resultados 2D baseados 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 da Câmera

  • Toda a pilha da câmera foi atualizada para corrigir um travamento do periférico da 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 corte 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 "rawdetections" nt

  • [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 "morfologia reversa" para inverter a ordem dos passos de dilatação e erosão

LimelightLib 1.6 (4/9/24)

  • Adiciona void SetFiducialDownscalingOverride(float downscale)

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

  • Adiciona RawFiducial[] GetRawFiducials()
  • Adiciona 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 livre de ambiguidade. Possui maior precisão e acurácia 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 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 estiver na localização correta 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 máximo 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, o Megatag 2 (robô vermelho) deve ser mais preciso e mais estável que o 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 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)

Adicionar

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (20/03/24)

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

Solucionador de Tag Única com Maior Precisão

O solucionador 3D de tag única do MegaTag foi aprimorado. Está muito mais estável do que antes em longas distâncias.

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

  • JSON foi desativado por padrão para reduzir o uso de banda e em geral para equipes usando painéis de 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 não distorcidos antes de calcular a área de qualquer alvo.

Inclusão de 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 > 0.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 pelos recursos "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;
  • A versão 2024.2 postava NANs em certas entradas networktables em alguns casos raros. Isso não acontecerá mais.

LimelightLib 1.4 (21/03/24)

  • Adicionado suporte para Fiduciais Raw 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/03/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/03/24)

Correção de Bug

TX e TY respeitam adequadamente a mira nas entradas NT.


Limelight OS 2024.2 (8/3/24)

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

Se você está usando mira tx/ty com calibração personalizada de intrínsecos, provavelmente ainda está observando 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 necessitam de maior precisão tx/ty podem configurar o crosshair para corresponder ao pixel principal ou usar estas novas métricas.

Possível mudança que quebra 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, independentemente de quantas imagens foram 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 Interface dos Filtros de Fiducial

A caixa de texto do filtro de 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/02/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 em 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 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 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 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 UX:

  • 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 estar completa, foque 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á 0, a menos que a tag escolhida esteja visível.

Diversos

  • Corrige o "x" através da 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

Limelight Feedback e Rastreador de Problemas: 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 (6/2/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 das tags para gerar um PDF imprimível.
  • O Safari pode não exibir as tags corretamente no momento.

Limelight Map Builder

  • https://tools.limelightvision.io/map-builder
  • Agora você pode criar mapas personalizados de AprilTags 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 Limelight Hardware Manager
  • Foi reescrito 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.
  • Baixe agora na página de downloads captura de tela do notebook:

Treine suas próprias Redes Neurais

captura de tela do notebook:

2024 Detector de Mapa e Notas AprilTag

  • O modelo de mapa e detector foi adicionado à página de downloads e à mais recente imagem do sistema operacional Limelight.

Limelight OS 2024.0 (2/6/24)

Correções na 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, a versão 2023.6 alcançou um RPE de 20 pixels, e a 2024.0 alcançou um RPE de 1.14 pixels.
  • Campos de entrada não aceitam mais letras e caracteres especiais. Isso elimina o potencial de travamento.

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 da UI 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 estiver definido para 165.1 mm, você notará uma melhoria imediata na precisão da localização

Melhorias 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

  • Apriltags nos visualizadores 3D às vezes eram desenhados 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"