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 (9/4/24)

Suporte ao Limelight 3A para FTC

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

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 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 com capacidade USB no Control Hub
  • Equipes FRC podem usar até 16 Limelights com capacidade USB no RoboRio. Limelights USB preenchem automaticamente as networktables assim como os Limelights ethernet.
    • Para usar múltiplos Limelights USB, dê a cada LL um índice USB único e um nome de host único.

Melhorias na 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 (7/7/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
  • Corrigido o problema de gateway de conectividade USB no Windows.

captura de tela do mosaico:

Limelight OS 2024.9 (7/5/24)

Atualizações do MegaTag

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

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

  • Nossos quadros 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 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

  • 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.
  • 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 de CPU para habilitar a classificação neural sem o Google Coral. Você pode esperar 15-18 FPS em variantes LL3.
  • O 2024.9 vem com um classificador de CPU padrão.
  • Defina o runtime do classificador para "CPU" para habilitar este recurso

Detectores neurais de CPU

  • Faça upload de um detector .tflite de CPU para habilitar a detecção neural sem o Google Coral. Você pode esperar 10 FPS em variantes LL3.
  • O 2024.9 vem com um detector de CPU padrão.
  • Defina 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.
  • Ela permite a 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".
  • Poste dados de entrada personalizados em Python, defina a orientação do robô, etc.

Melhorias no MegaTag2

  • A compensação de latência do giroscópio do MegaTag2 foi aprimorada. 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 deslizante 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 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
  • As strings de dados dos códigos de barras são postadas 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 a 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".
  • Poste dados de entrada Python, defina a orientação do robô, etc.

Remoção da 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". 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" de Processamento Zero (MUDANÇA INCOMPATÍVEL)

  • 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 INCOMPATÍVEL)

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

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 os pipelines. 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 fiducial_offset_set configurador dinâmico de Offset 3D

  • 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 totalmente 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 / de Localização.

Limelight OS 2024.5.0 (9/4/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 da UI, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
  • Use o novo método Helpers com 0.0 (Controle da 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 "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

  • Os pipelines de cor agora suportam até 10 etapas de dilatação e 10 etapas de erosão
  • Os pipelines de cor agora têm uma opção "morfologia reversa" para inverter a ordem das etapas de dilatação e erosão

LimelightLib 1.6 (9/4/24)

  • Adiciona void SetFiducialDownscalingOverride(float downscale)

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

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

Limelight OS 2024.4.0 (3/4/24)

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

Megatag 2

Megatag 2 é um localizador livre de ambiguidades. Ele tem maior precisão e exatidão do 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/canto.
  • Fornecer excelentes estimativas de pose dada 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 do lado do robô para obter bons resultados de estimativa de pose

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

O 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 as 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);
}

O Megatag2 fornece resultados excelentes e livres de ambiguidade a qualquer distância, dada 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 maior número possível de AprilTags, você pode filtrar com segurança as tags bem posicionadas e relevantes:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

Transição para o MegaTag2

O 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, o Megatag2 e o 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 do 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 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, ignore as atualizações de visão
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (3/4/24)

Adiciona

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 de Alta Precisão

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

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

  • O JSON foi desativado por padrão para reduzir o uso de largura de banda e em todos os aspectos para equipes que usam painéis de controle com inscrição automática, 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 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 do megatag, os arrays acima agora incluem (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)

Ambiguidade é 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 > 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 interface do usuário. Anteriormente, as botposes eram 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 de networktables em alguns casos raros. Isso não acontecerá mais.

LimelightLib 1.4 (21/03/24)

  • Adicionado suporte para Fiduciais Brutos 2024.3.4. As 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 cruzeta 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 a cruzeta 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 cruzeta para corresponder ao pixel principal ou usar essas novas métricas.

Possível mudança que quebra compatibilidade 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 da Interface de Filtros de Fiduciais

A caixa de texto do filtro de fiduciais 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, solicitaçã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 o 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 haja 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 atirar do lado azul com a tag 7, um para amplificar do lado azul com a 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, 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ã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 de 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) foi atualizado 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 recentes colaboradores 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 da Limelight

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

Construtor de Mapa 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 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:

2024 Detector de Mapa AprilTag e Notas

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

Limelight OS 2024.0 (6/2/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.
  • Os 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 tag na 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 o seu controle deslizante de tamanho não foi 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

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

2023.6 (18/04/23)

Calibração ChArUco Fácil e Visualizadores de Calibração

  • A calibração ChArUco é considerada melhor que a calibração de tabuleiro de xadrez porque lida com oclusões, detecções ruins de cantos e não requer que todo o tabuleiro esteja visível. Isso torna muito mais fácil capturar cantos do tabuleiro de calibração próximos às bordas e cantos das suas imagens. Isso é crucial para a estimativa do coeficiente de distorção.
  • O processo de calibração do Limelight fornece feedback em cada etapa e garantirá que você faça tudo o necessário para obter bons resultados de calibração. Um grande esforço foi feito para tornar esse processo o mais à prova de falhas possível.
  • Mais importante ainda, você pode visualizar seus resultados de calibração logo ao lado da calibração padrão. Com um simples olhar, você pode entender se o resultado da sua calibração é razoável ou não.
  • Você também pode usar o painel de calibração como uma ferramenta de aprendizado. Você pode modificar arquivos de resultados de calibração baixados e recarregá-los para aprender como a matriz de intrínsecos e os coeficientes de distorção afetam os resultados de mira, campo de visão, etc.
  • Dê uma olhada neste vídeo:

2023.5.1 & 2023.5.2 (22/03/23)

  • Corrigida regressão introduzida na versão 2023.5.0 - Enquanto a versão 2023.5 corrigiu o megatag para todos os layouts não planares, reduziu o desempenho das estimativas de pose de tag única. Isso foi corrigido. As estimativas de pose de tag única usam exatamente o mesmo solucionador usado na versão 2023.4.

  • Interface de snapshot mais ágil. A grade de snapshots agora carrega miniaturas de baixa resolução de 128p.

  • O Yaw do Limelight agora é apresentado corretamente nos visualizadores 3D. É positivo no sentido anti-horário no visualizador e internamente.

  • Indica quais alvos estão sendo rastreados atualmente no visualizador de espaço de campo.


2023.5.0 (21/03/23)

Mudanças Importantes

  • Corrigida regressão - O "Yaw" do Espaço-Robô do Limelight estava invertido nas versões anteriores. O yaw do Limelight na interface web agora é internamente CCW-Positivo.

Atualização da Seleção de Região

  • A seleção de região agora funciona como esperado em pipelines de detecção neural.
  • Adicionadas 5 novas opções de região para selecionar o centro, topo, esquerda, direita, topo ou fundo do retângulo alvo não rotacionado.

API REST "hwreport"

  • :5807/hwreport retornará uma resposta JSON detalhando informações de intrínsecos da câmera e distorção

Correção do MegaTag

  • Certos layouts de apriltags não coplanares estavam quebrados no MegaTag. Isso foi corrigido, e a estimativa de pose agora é estável com todas as tags de campo. Isso permite uma estimativa de pose estável em distâncias ainda maiores do que antes.

Maior precisão de tx e ty

  • TX e TY estão mais precisos do que nunca. Os alvos são totalmente não distorcidos, e o campo de visão é determinado inteiramente pelos intrínsecos da câmera.

2023.4.0 (18/02/23)

Filtro de Classe do Detector Neural

Especifique as classes que você deseja rastrear para facilitar a filtragem de detecções indesejadas.

Suporte expandido do Detector Neural

Suporte para qualquer resolução de entrada, suporte para formas de saída adicionais para suportar outras arquiteturas de detecção de objetos. Modelos baseados em EfficientDet0 agora são suportados.


2023.3.1 (14/02/23)

Melhorias na Precisão do AprilTag

Matriz de intrínsecos aprimorada e, mais importante, coeficientes de distorção melhorados para todos os modelos. Melhorias notáveis na Localização de AprilTag único.

Upload do Detector

Upload do detector corrigido.


2023.3 (13/02/23)

Latência de Captura (Chave NT: "cl", Resultados JSON: "cl")

A nova entrada de latência de captura representa o tempo entre o final da exposição da linha do meio do sensor de imagem do Limelight e o início do pipeline de processamento.

Novo Limiar de Qualidade para AprilTags

AprilTags espúrios agora são mais facilmente filtrados com o novo controle deslizante de Limiar de Qualidade. O valor padrão definido em 2023.3 deve remover a maioria das detecções espúrias.

Substituição da Pose da Câmera no Espaço do Robô (Chaves NT: "camerapose_robotspace_set", "camerapose_robotspace")

A posição do seu Limelight no espaço do robô agora pode ser ajustada em tempo real. Se a chave for definida como uma matriz de zeros, a pose definida na interface web será usada.

Aqui está um exemplo de um Limelight em um elevador: Limelight em Elevador

Aumento da Exposição Máxima

O tempo máximo de exposição agora é de 33ms (aumentado de 12,5 ms). Os modos de captura de alto fps ainda estão limitados a (1/fps) segundos. Pipelines de 90hz, por exemplo, não terão imagens mais brilhantes após 11ms de tempo de exposição.

Atualizações de Botpose

Todas as três matrizes de botpose nas networktables têm uma sétima entrada representando a latência total (latência de captura + latência de direcionamento).

Correções de Bugs

  • Correção dos streams MJPEG do LL3 no shuffleboard
  • Correção do camMode - o modo de motorista agora produz imagens brilhantes e utilizáveis
  • A etiqueta de exposição foi corrigida - cada "tick" representa 0,01ms e não 0,1 ms
  • Correção do upload do detector de rede neural

2023.2 (28/01/23)

Tornando o 3D mais fácil do que nunca.

Botposes compatíveis com WPILib

Botpose agora é ainda mais fácil de usar imediatamente.

Estes correspondem aos sistemas de coordenadas do WPILib. exemplo de botpose megatag:

Todos os botposes são exibidos diretamente no visualizador de espaço de campo na interface web, facilitando a confirmação rápida de que tudo está funcionando corretamente.

Acesso mais fácil aos dados 3D (Mudanças Importantes)

RobotPose no TargetSpace é possivelmente o dado mais útil proveniente do Limelight em relação aos AprilTags. Usando apenas isso, você pode alinhar perfeitamente um trem de força com um AprilTag no campo.

  • Chave NetworkTables "campose" agora é "camerapose_targetspace"
  • Chave NetworkTables "targetpose" agora é "targetpose_cameraspace"
  • Nova chave NetworkTables - "targetpose_robotspace"
  • Nova chave NetworkTables - "botpose_targetspace"

Upload de Rede Neural

Faça upload de modelos do teachable machine para o Pipeline Classificador do Limelight. Certifique-se de que sejam modelos compatíveis com Tensorflow Lite EdgeTPU. Faça o upload dos arquivos .tflite e .txt de rótulos separadamente.


2023.1 (19/01/23)

MegaTag e Melhorias de Desempenho

Corrigindo Um Erro

O parâmetro de tamanho padrão do marcador na interface do usuário foi corrigido para 152,4mm (reduzido de 203,2mm). Esta era a causa da maioria dos problemas de precisão.

Aumento da Estabilidade de Rastreamento

Existem várias maneiras de ajustar a detecção e decodificação do AprilTag. Melhoramos a estabilidade em geral, especialmente em ambientes com pouca luz / baixa exposição.

Conversão para Escala de Cinza Ultra Rápida

A conversão para escala de cinza é 3x-6x mais rápida do que antes. As equipes sempre verão um fluxo de vídeo em tons de cinza ao rastrear AprilTags.

Recorte para Melhor Desempenho

Os pipelines de AprilTag agora têm controles deslizantes de recorte. Recortar sua imagem resultará em taxas de quadros melhoradas em qualquer resolução.

Filtragem Mais Fácil

Agora há um único campo "Filtro de ID" nos pipelines de AprilTag que filtra a saída JSON, tags habilitadas para botpose e tags habilitadas para tx/ty. A configuração de filtro duplo era problemática e confusa.

Mudança Importante

A chave NT "camtran" agora é "campose"

Atualização JSON

"botpose" agora faz parte do dump de resultados json

Atualização do Visualizador de Espaço de Campo

O visualizador de espaço de campo agora mostra o campo FRC 2023. Agora deve ser mais fácil julgar a precisão do botpose rapidamente.

Limelight MegaTag (novo botpose)

Minha prioridade número 1 tem sido reescrever o botpose para maior precisão, redução de ruído e resiliência à ambiguidade. A nova implementação de botpose do Limelight é chamada MegaTag. Em vez de calcular o botpose com uma média simples de várias poses individuais no espaço do campo, o MegaTag essencialmente combina todas as tags em uma única tag 3D gigante com vários pontos-chave. Isso tem enormes benefícios.

O GIF a seguir mostra uma situação projetada para induzir a inversão de tags: Cilindro Verde: Pose do robô individual por tag Cilindro Azul: BotPose 2023.0.1 Cilindro Branco: Novo Botpose MegaTag

Observe como o novo botpose (cilindro branco) é extremamente estável em comparação com o antigo botpose (cilindro azul). Você também pode observar os valores tx e ty.

Aqui está a tela completa, mostrando a ambiguidade da tag:

Aqui estão as vantagens:

O Botpose agora é resistente a ambiguidades (inversão de tags) se mais de uma tag estiver visível (a menos que estejam próximas e coplanares. Idealmente, os pontos-chave não são coplanares). O Botpose agora é mais resistente ao ruído nos cantos das tags se mais de uma tag estiver visível. Quanto mais distantes as tags estiverem umas das outras, melhor. Isso não se restringe a tags planares. Escala para qualquer número de tags em 3D completo e em qualquer orientação. Tags no chão e no teto funcionariam perfeitamente.

Aqui está um diagrama demonstrando um aspecto de como isso funciona com um caso planar simples. Os resultados são na verdade melhores do que o que é representado, pois o MegaTag representado tem um erro significativo aplicado a três pontos em vez de um ponto. À medida que o MegaTag 3D combinado aumenta em tamanho e em número de pontos-chave, sua estabilidade aumenta.

O upload da Rede Neural está sendo adiado para a versão 2023.2!

2023.0.0 e 2023.0.1 (11/01/23)

Introduzindo AprilTags, localização de robôs, Redes Neurais Profundas, uma interface de captura de tela reescrita e muito mais.

Recursos, Mudanças e Correções de Bugs

  • Novo pipeline de captura de sensor e controle de Ganho
    • Nosso novo pipeline de captura permite tempos de exposição 100x mais curtos do que eram em 2022. O novo pipeline também permite o Controle de Ganho. Isso é extremamente importante para o rastreamento de AprilTags e servirá para tornar o direcionamento retroreflexivo mais confiável do que nunca. Antes do Limelight OS 2023, o ganho do sensor do Limelight era não-determinístico (implementamos alguns truques para fazê-lo funcionar mesmo assim).
    • Com o novo controle deslizante "Ganho do Sensor", as equipes podem tornar as imagens mais escuras ou mais claras do que nunca sem tocar no controle deslizante de exposição. Aumentar o ganho aumentará o ruído na imagem.
    • Combinando ganho mais baixo com os novos tempos de exposição mais baixos, agora é possível produzir imagens quase completamente pretas com LEDs de brilho total e alvos retroreflexivos. Isso ajudará a mitigar reflexos de LED e luz solar ao rastrear alvos retroreflexivos.
    • Ao aumentar o Ganho do Sensor e reduzir a exposição, as equipes poderão minimizar os efeitos do desfoque de movimento devido a altos tempos de exposição ao rastrear AprilTags.
    • Conseguimos desenvolver este novo pipeline mantendo todos os recursos - 90fps, zoom por hardware, etc.
  • Mais Opções de Resolução
    • Há duas novas resoluções de captura para LL1, LL2 e LL2+: 640x480x90fps e 1280x960x22fps
  • Interface Web Otimizada
    • A interface gráfica web agora carregará e inicializará até 3x mais rápido em redes de robôs.
  • Interface de Capturas de Tela Reescrita
    • O recurso de capturas de tela foi completamente reescrito para permitir uploads, downloads e exclusão de imagens. Também há novas APIs para capturar snapshots detalhadas na documentação.
  • Melhorias no SolvePnP
    • Nosso recurso de localização de câmera baseado em solvePnP tinha um bug desagradável que estava limitando seriamente sua precisão a cada quatro quadros. Isso foi resolvido, e um novo canvas 3D completo foi construído para visualizações de SolvePNP Retroreflexivo/Cor.
  • Correção de Bug na Interface Web
    • Havia um problema extremamente raro em 2022 que causava a quebra permanente da interface web durante a primeira inicialização após o flash, o que forçava o usuário a refazer o flash. A causa raiz foi encontrada e corrigida definitivamente.
  • Novas APIs
    • O Limelight agora inclui APIs REST e Websocket. As APIs REST, Websocket e NetworkTables suportam o novo recurso de dump JSON, que lista todos os dados para todos os alvos em um formato legível por humanos e fácil de analisar para FRC e todas as outras aplicações.

Visão Baseada em Aprendizado Sem Código e Suporte ao Google Coral

  • O Google Coral agora é suportado por todos os modelos Limelight. O Google Coral é um acelerador de hardware USB de 4TOPs (Trilhões de Operações / segundo) construído especificamente para inferência em redes neurais de 8 bits.
  • Assim como o rastreamento retroreflexivo há alguns anos, a barreira de entrada para visão baseada em aprendizado em robôs FRC tem sido muito alta para a equipe média sequer tentar. Desenvolvemos toda a infraestrutura necessária para tornar a visão baseada em aprendizado tão fácil quanto alvos retroreflexivos com o Limelight.
  • Temos um cluster de GPU na nuvem, scripts de treinamento, uma ferramenta de agregação de conjuntos de dados e uma equipe de rotulagem humana prontos para começar. Estamos empolgados em trazer redes neurais profundas para a comunidade FRC pela primeira vez.
  • Atualmente suportamos dois tipos de modelos: modelos de Detecção de Objetos e modelos de Classificação de Imagens.
    • Modelos de detecção de objetos fornecerão "IDs de classe" e caixas delimitadoras (assim como nossos alvos retroreflexivos) para todos os objetos detectados. Isso é perfeito para rastreamento de peças do jogo em tempo real.
      • Por favor, contribua para o primeiro modelo de detecção de objetos FRC enviando imagens aqui: https://datasets.limelightvision.io/frc2023
      • Use as chaves tx, ty, ta e tclass do networktables ou o dump JSON para usar redes de detecção
    • Modelos de classificação de imagens ingerirão uma imagem e produzirão um único rótulo de classe.
      • Para saber mais e começar a treinar seus próprios modelos para o Limelight, confira o Teachable Machine do Google.
      • https://www.youtube.com/watch?v=T2qQGqZxkD0
      • Os modelos do Teachable Machine são diretamente compatíveis com o Limelight.
      • Classificadores de imagem podem ser usados para classificar o estado interno do robô, o estado dos recursos do campo e muito mais.
      • Use a chave tclass do networktables para usar esses modelos.
  • O Limelight OS 2023.0 não fornece a capacidade de fazer upload de modelos personalizados. Isso será habilitado em breve no 2023.1

Suporte a AprilTag Sem Código

  • AprilTags são tão fáceis quanto alvos retroreflexivos com o Limelight. Como eles têm um filtro rígido natural na forma de um ID, há ainda menos razão para ter seu roboRIO fazendo qualquer filtragem relacionada à visão.
  • Para começar, use tx, ty e ta normalmente. Nenhuma alteração de código é necessária. Classifique por qualquer característica do alvo, utilize grupos de alvos, etc.
  • Como os AprilTags são sempre quadrados e sempre identificáveis de forma única, eles fornecem a plataforma perfeita para cálculos de pose 3D completos.
  • O feedback que recebemos para este recurso em nossos canais de suporte tem sido extremamente positivo. Tornamos os AprilTags o mais fácil possível, desde o rastreamento 2D até uma localização completa do robô em 3D no campo.
  • Confira a Especificação do Mapa de Campo e o Documento do Sistema de Coordenadas para informações mais detalhadas.
  • Existem quatro maneiras de usar AprilTags com o Limelight:
  • AprilTags em 2D
    • Use tx, ty e ta. Configure seus pipelines para buscar um ID de tag específico.
    • <gif>
  • AprilTags 3D de Ponto de Interesse
    • Use as chaves tx e ty, ta e tid do networktables. O deslocamento do ponto de interesse é tudo o que a maioria das equipes precisará para rastrear alvos que não têm AprilTags diretamente anexados a eles.
    • <gif>
  • 3D Completo
    • Rastreie seu LL, seu robô ou tags em 3D completo. Use campose ou json para puxar dados relevantes para seu roboRio.
    • <gif>
  • Localização do Robô no Espaço do Campo
    • Informe ao seu Limelight como ele está montado, faça upload de um mapa de campo, e seu LL fornecerá a pose de campo do seu robô para uso com o Estimador de Pose do WPILib.
    • Nosso sistema de coordenadas de campo coloca (0,0) no centro do campo em vez de um canto.
    • Use a chave botpose do networktables para este recurso.
    • <gif>

2022.3.0 (13/04/22)

Correções de bugs e heartbeat.

Correções de Bugs

  • Correção de problemas de desempenho, estabilidade de stream e atraso de stream relacionados a streams de Câmera USB e múltiplas instâncias de stream.

Recursos e Mudanças

  • Chave "hb" de Heartbeat na NetworkTable
    • O valor "hb" incrementa uma vez por quadro de processamento e reinicia para zero em 2000000000.

2022.2.3 (16/03/22)

Correções de bugs e filtragem de corte controlada pelo código do robô.

Correções de Bugs

  • Correção da chave "stream" do networktables e dos Modos Picture-In-Picture
  • Correção da chave "snapshot" do networktables. Os usuários devem definir a chave "snapshot" como "0" antes de defini-la como "1" para tirar uma captura de tela.
  • Remoção de alertas supérfluos relacionados ao Python da interface web

Recursos e Mudanças

  • Filtragem Manual de Corte
    • Usando o array "crop" do networktables, as equipes agora podem controlar os retângulos de corte a partir do código do robô.
    • Para que a chave "crop" funcione, o pipeline atual deve utilizar o retângulo de corte padrão, totalmente aberto (-1 para minX e minY, +1 para maxX e +1 maxY).
    • Além disso, o array "crop" do networktable deve ter exatamente 4 valores, e pelo menos um desses valores deve ser diferente de zero.

2022.2.2 (23/02/22)

Atualização obrigatória para todas as equipes com base nos testes de confiabilidade da Semana 0 e do FMS.

Correções de Bugs

  • Correção de travamento / perda de conexão / perda de mira relacionados a interfaces web abertas, FMS, configurações semelhantes ao FMS, múltiplos dispositivos de visualização, etc.

Recursos e Mudanças

  • Filtragem de Recorte

    • Ignora todos os pixels fora de um retângulo de recorte especificado
    • Se o seu volante tiver pontos ideais no campo, você pode usar o filtro de recorte para ignorar a grande maioria dos pixels em pipelines específicos. Este recurso deve ajudar as equipes a reduzir a probabilidade de rastrear alvos não desejados.
    • Se você estiver rastreando carga, use este recurso para procurar carga apenas em uma parte específica da imagem. Considere ignorar os para-choques da sua equipe, alvos distantes, etc.
  • Recurso de cantos agora compatível com agrupamento inteligente de alvos

    • Este é para as equipes que desejam fazer visão personalizada mais avançada no RIO
    • Limite de cantos "tcornxy" aumentado para 64 cantos
    • Simplificação de contorno e recursos de força convexa agora funcionam corretamente com agrupamento inteligente de alvos e envio de cantos
  • Filtro IQR máximo aumentado para 3.0

  • Taxa de atualização de alvo ao vivo da interface web reduzida de 30fps para 15fps para reduzir a largura de banda e carga da CPU enquanto a interface web está aberta


2022.1 (25/01/22)

Correções de Bugs

  • Obtivemos informações de um de nossos fornecedores sobre um problema (e uma solução!) que afeta aproximadamente 1/75 das CPUs especificamente usadas no Limelight 2 (pode estar relacionado a um lote específico). Faz sentido, e era uma das únicas diferenças de inicialização restantes entre a imagem de 2022 e a imagem de 2020.
  • Corrigido os botões de upload para entradas GRIP e Modelos SolvePNP

Recursos

  • Arco-íris de Matiz

    • O novo arco-íris de matiz facilita a configuração do limite de matiz.
  • Inversão de Matiz

    • O novo recurso de inversão de matiz é crucial se você deseja rastrear objetos vermelhos, já que o vermelho está tanto no início quanto no final da faixa de matiz:
  • Novas Bibliotecas Python

    • Adicionadas scipy, scikit-image, pywavelets, pillow e pyserial ao nosso sandbox Python.

2022.0 e 2022.0.3 (15/01/22)

Esta é uma grande atualização. Aqui estão as quatro principais mudanças:

Recursos

  • Agrupamento Inteligente de Alvos

    • Agrupa automaticamente alvos que passam por todos os filtros individuais de alvo.
    • Agrupará dinamicamente qualquer número de alvos entre -tamanho mínimo do grupo definido no controle deslizante- e -tamanho máximo do grupo definido no controle deslizante-
  • Rejeição de Outliers

    • Embora este objetivo seja mais desafiador que outros objetivos, ele nos dá mais oportunidades de filtragem. Conceitualmente, este objetivo é mais do que uma "mancha verde". Como sabemos que o objetivo é composto por múltiplos alvos próximos uns dos outros, podemos realmente rejeitar alvos outliers que estão isolados.
    • Você deve confiar quase inteiramente em uma boa filtragem de alvos padrão para o objetivo deste ano, e usar a rejeição de outliers apenas se você ver ou esperar outliers espúrios em seu fluxo de câmera. Se você tiver uma filtragem de alvos padrão ruim, a detecção de outliers pode começar a trabalhar contra você!
  • Atualizações de Imagem do Limelight 2022 Removemos centenas de partes móveis do nosso software. Estes são os resultados:

    • Tamanho da Imagem Comprimida: 1,3 GB em 2020 → 76MB para 2022 (Reduzido por um fator de 17!)
    • Tempo de download: Dezenas de minutos em 2020 → segundos para 2022
    • Tempo de gravação na memória flash: 5+ minutos em 2020 → segundos para 2022
    • Tempo de inicialização: 35+ segundos em 2020 → 14 segundos para 2022 (10 segundos até os LEDs acenderem)
  • Scripting Python Completo

    • O Limelight expôs com sucesso um grande número de estudantes a algumas das capacidades da visão computacional na robótica. Com o scripting em Python, as equipes agora podem dar mais um passo à frente escrevendo seus próprios pipelines de processamento de imagem.
  • Esta atualização é compatível com todo o Hardware Limelight, incluindo o Limelight 1.

  • Problemas conhecidos: Usar zoom de hardware com Python produzirá resultados inesperados.

  • A versão 2022.0.3 restaura o stream GRIP 5802 e resolve problemas de inicialização em algumas unidades LL2, revertendo algumas das otimizações de tempo de inicialização. O tempo de inicialização é aumentado para 16 segundos.

2020.4 (11/03/20)

2020.4 é outra atualização crítica que elimina o travamento intermitente de 2-4 segundos que poderia ocorrer durante uma desconexão abrupta do stream mjpeg. Isso frequentemente acontecia no final da partida e, em alguns casos, poderia acontecer durante as partidas.


2020.3 (25/02/20)

2020.3 é uma atualização crítica que aborda reinicializações intermitentes de software relacionadas à rede e resolve uma falha que ocorria ao desconectar uma câmera USB.


2020.2 (30/01/20)

2020.2 leva o hardware do Limelight ainda mais longe, adicionando a capacidade de panorâmica e zoom para qualquer ponto. Também adiciona um novo modo de vídeo e correções importantes de bugs. Deixe-nos saber quais recursos você gostaria de ver em atualizações futuras!

Recursos

  • Zoom de Hardware 3x a 60 FPS

    • Nossa última atualização adicionou Zoom de Hardware 2x para todos os modelos Limelight sem nenhum custo. Conseguimos levar nosso zoom de hardware ainda mais longe com o Zoom de Hardware 3x. Todos os modelos Limelight agora são capazes de Zoom de Hardware 3x a 60fps. Isso torna o rastreamento de quadra completa ainda mais fácil para todas as equipes.
  • Panorâmica de Hardware

    • Robôs capazes de atirar de longas e curtas distâncias em 2020 teriam achado difícil usar o Zoom de Hardware em seus Limelights sem o uso de um suporte Limelight ajustável e ativo. Incorporamos a Panorâmica de Hardware para resolver este problema.

Correções de Bugs

  • Resolvidos problemas de driver que estavam quebrando os controles deslizantes de balanço de cor
  • Revertidos todos os drivers relacionados à rede para as variantes da temporada 2019 para abordar um pequeno número de relatos de desempenho de rede das equipes

2020.1 (16/01/20)

2020.1 adiciona um dos recursos mais incríveis do Limelight até agora: Zoom de Hardware 2x. Isso não é zoom digital, e agora está habilitado para todas as versões do Limelight.

Recursos

  • Zoom de Hardware 2x

    • Não é zoom digital
    • Ative o zoom de hardware 2x para obter um rastreamento vastamente melhorado a longas distâncias e um rastreamento estável em distâncias de quadra completa.
    • Este recurso não tem absolutamente nenhum custo de latência ou taxa de quadros - o rastreamento continua a ser executado a 90fps sem nenhuma sobrecarga adicional.
  • Miras Manuais

    • Ajuste manualmente as localizações de miras simples e duplas com controles deslizantes na interface web
  • Novos recursos SolvePNP / 3D (Ainda experimentais)

    • Adicionamos a opção "Forçar Convexo" para usar apenas os pontos mais externos de um alvo - isso é necessário em 2020 devido à fita fina usada para o alvo hexagonal.
    • A opção "vincular alvo" foi adicionada. Este recurso vincula "tx" e "ty" ao alvo 3D. Isso é necessário para guiar robôs para pontuar usando alvos 3D.
    • Finalmente, adicione a opção "Deslocamento Z do Objetivo" para deslocar automaticamente a localização desejada do alvo no espaço 3D no eixo Z.
    • No Infinite Recharge, o "Deslocamento Z do Objetivo" seria usado para rastrear o centro do pequeno objetivo circular atrás do objetivo hexagonal.
  • Detecção de cor com "tc"

    • Leia o novo array "tc" nas Network Tables para obter valores de Vermelho, Verde e Azul na localização da mira. Ajuste o "Balanço de Azul" e "Balanço de Vermelho" na aba de entrada para obter uma detecção de cor perfeita.

Correções de Bugs

  • A funcionalidade da câmera USB quebrada em 2020.0 agora está corrigida em 2020.1
  • A funcionalidade SolvePnP quebrada em 2020.0 agora está corrigida em 2020.1
  • SolvePnP agora usa corretamente o centro do modelo como o centro de visualização do eixo

2019.7 (4/5/19)

2019.7 adiciona duas novas funcionalidades.

Funcionalidades

  • Streaming 160x120 a 30fps
    • Streaming mais suave e com menor largura de banda para equipes que usam câmeras USB de grande angular. Nossa largura de banda de stream de câmera de 180 graus caiu de ~3,7mbps para ~1,8 mbps.
    • Altere a resolução do stream na aba de configurações.
    • Alterando a resolução do stream em um Limelight com uma câmera USB de grande angular conectada. Sem Picture-in-Picture e taxa de stream normal.
  • Rejeição Inteligente de Manchas
    • Equipes que montaram suas câmeras alinhadas com o alvo este ano tiveram que lidar com reflexos indesejados de LED.
    • O controle deslizante de área nem sempre resolve este problema, pois as equipes querem rastrear pequenos alvos de visão a grandes distâncias.
    • Esta nova funcionalidade rejeitará automaticamente contornos relativamente pequenos que passaram por todos os outros filtros.
    • À medida que um robô se afasta de um alvo de visão (diminuindo seu tamanho), a RIM se ajustará automaticamente para rejeitar apenas contornos relativamente pequenos.

Mudanças

  • Dicas de ferramentas
    • Dicas de ferramentas agora estão disponíveis em alguns controles do Limelight

2019.6.1 Hotfix (14/03/19)

2019.6.1 corrige os uploads do Grip.


2019.6 (12/03/19)

2019.6 é focado em confiabilidade.

Correções de Bugs

  • Câmeras USB
    • Resolvido problema que poderia fazer algumas câmeras USB falharem na inicialização.
  • FMS
    • Tornar o Limelight mais (se não completamente) resistente a reinicializações do FMS e mudanças de rede no campo / laptop.
    • O Limelight não travará mais após uma mudança repentina na rede do cliente.
  • Classificação de Contorno Bruto (MUDANÇA INCOMPATÍVEL)
    • Filtros de interseção não afetam mais a classificação de contorno bruto.
  • Postagem automática no Smartdashboard
    • O LL posta automaticamente certas informações no SmartDashboard (Endereço IP, URL da interface, etc.). Os nomes desses valores agora contêm o nome do host.

Recursos e Mudanças

  • Aumento significativo na precisão e estabilidade do recurso compute3d. Medições de translação e rotação são estáveis a distâncias maiores.
  • Nível Máximo de Preto aumentado para 40 (de 25) para imagens ainda mais escuras.
  • Novas opções de classificação "Mais Próximo" na aba "Saída" enquanto o modo "Mira Dupla" está ativado.
    • Padrão - Implementação atual de classificação "mais próximo" com modo "Mira Dupla".
    • Padrão V2 - Implementação experimental e inteligente de classificação "mais próximo" com modo "Mira Dupla".
    • Média das Miras - A origem da classificação "mais próximo" com modo "Mira Dupla" é a média das duas miras.
    • Mira A - A origem da classificação "mais próximo" com modo "Mira Dupla" é a mira A.
    • Mira B - A origem da classificação "mais próximo" com modo "Mira Dupla" é a mira B.
  • Novas opções de "Modo LED" no pipeline: "Metade Esquerda", "Metade Direita"
  • Valores de canto brutos em ponto flutuante quando compute3D está ativado.
  • Ocultar decorações de imagem ao usar varinhas mágicas
  • Stream maior na interface web

2019.5 (2/9/19)

Com o 2019.5, estamos introduzindo o novo recurso de localização de câmera compute3D. Apenas algumas equipes já tentaram adicionar esse recurso aos seus sistemas de visão, e agora está disponível para todos os usuários do Limelight 1 e Limelight 2.

Isso não é uma solução milagrosa para o jogo deste ano. Recomendamos fortemente pensar em maneiras criativas de usar o rastreamento padrão de alta velocidade de 90 fps, a menos que este recurso seja absolutamente necessário.

Recursos

  • Modo de Alta Precisão e PnP
    • No gif a seguir, um Limelight 2 foi colocado a 37 polegadas atrás e 14,5 polegadas à direita do alvo.
    • O Limelight foi posteriormente girado manualmente. Observe como as distâncias permanecem praticamente inalteradas.
    • Com o 2019.4, introduzimos o envio de cantos. Isso permitiu que equipes avançadas escrevessem seus próprios algoritmos usando o solvePNP() do OpenCV. Com o 2019.5, tudo isso é feito a bordo.
    • Faça upload de um arquivo csv de texto simples com um modelo do seu alvo. Temos modelos pré-construídos dos alvos de 2019 hospedados em nosso site. Todos os modelos devem ter uma origem centralizada e usar ordenação de pontos no sentido anti-horário com escala em polegadas.
    • Ative o novo modo de alta resolução 960x720 e, em seguida, ative "Solve 3D" para adquirir a posição e rotação do seu Limelight em relação ao seu alvo.
    • Os números dos cantos agora são exibidos na imagem para facilitar a criação de modelos e o ajuste de limites.
    • Leia todas as 6 dimensões da transformação da sua câmera (x,y,z,pitch,yaw,roll) lendo o array de números "camtran" da networktable.
  • Nível de Preto
    • Com o novo controle deslizante de nível de preto, o limiar é ainda mais fácil. Aumente o deslocamento do nível de preto para escurecer ainda mais suas imagens.

Mudanças Importantes

  • O FOV vertical relatado para o LL2 foi corrigido para corresponder ao valor listado de 49,7 graus. Isso mudará seus valores "ty"

Correções de Bugs

  • Corrigido o travamento apenas de stream que poderia ocorrer quando câmeras USB olho de peixe estavam conectadas.
  • Corrigido travamento raro causado por driver relacionado à rede.
  • A aproximação de cantos agora está sempre ativa.

2019.4 (26/01/19)

Acreditamos que todos os relatórios de bugs críticos estão cobertos com esta versão.

Recursos

  • Cantos
    • Envie os cantos do seu alvo como duas matrizes (tcornx, tcorny) *AGORA tcornxy ativando "enviar cantos" na aba "Saída". Isso permitirá que as equipes interessadas em pipelines avançados utilizem métodos como solvePNP().
    • Ajuste a aproximação dos cantos com o controle deslizante "aproximação de cantos" na aba "Saída".

Correções de Bugs

  • Corrigido o travamento + raro crash que ocorria quando dois alvos tinham exatamente a mesma área, coordenada x ou coordenada y.
  • Corrigido o cálculo de área nos modos de dois e três alvos.
  • Otimizada a classificação de contornos para melhor desempenho.

2019.3 (19/01/19)

2019.3 aborda vários bugs e solicitações de recursos.

Recursos

  • Taxa de Transmissão (redução de largura de banda)
    • Defina a taxa de transmissão como "baixa" na página de configurações para um fluxo de vídeo de 15fps com menor largura de banda.
  • Contornos Brutos desativados nas NetworkTables (redução de largura de banda)
    • Os contornos brutos agora estão desativados por padrão. Isso reduzirá ainda mais a largura de banda geral do Limelight.
    • Agora há cerca de 180 entradas a menos nas networktables enviadas por segundo por padrão.
    • Veja a nova opção de pipeline "Contornos Brutos" na aba "Saída" para reativar os contornos brutos.
  • Índice de Pipeline Ativo
    • Leia a chave networktable "getpipe" para obter o verdadeiro índice de pipeline ativo da câmera. Isso é atualizado a 90hz.
    • O índice de pipeline ativo agora é escrito no fluxo de vídeo abaixo da exibição de FPS.
  • Filtros de Interseção Esquerda e Direita
    • As equipes agora podem escolher entre filtros de interseção de contorno duplo "esquerda" e "direita". Os filtros de interseção "acima" e "abaixo" foram adicionados na versão 2019.2.

Correções de Bugs

  • Corrigido o bug de transmissão do Painel LabView introduzido na versão 2019.2
  • A página web não solicita mais fontes de ícones da internet. Todas as fontes são armazenadas localmente. Isso deve acelerar o carregamento da interface.
  • Reduzida a exposição do "modo de piloto".
  • Corrigida a implementação GRIP de "Transformação de Distância"
  • Corrigidos atrasos de comunicação de 20 segundos causados pela alteração do nome do host.

2019.2 (1/7/19)

2019.2 adiciona novos recursos para melhor equipar as equipes para a temporada de 2019.

  • Filtro de Interseção
  • Filtro de Direção

Mudanças e Correções Adicionais

  • O endereço IP é automaticamente postado no SmartDashboard/Shuffleboard para facilitar a solução de problemas em eventos. Tivemos quase nenhum relato de que isso fosse um problema, mas isso serve como mais um recurso de contingência.
  • O nome do pipeline é automaticamente postado no SmartDashboard/Shuffleboard
  • Acesse a largura e altura da caixa delimitadora aproximada em pixels com novas chaves de networktables.
  • Acesse o lado mais longo e o lado mais curto da caixa delimitadora perfeita em pixels com novas chaves de networktables.
  • O "Modo de Classificação" agora se aplica a contornos duplos
  • O "Modo de Classificação" agora está corrigido
  • O stream 5802 é menos exigente para a câmera

2019.1 (18/12/18)

2019.1 corrige todos os principais bugs relatados durante a versão beta

  • O desempenho voltou a um ritmo constante de 90fps. Um problema de driver era a causa raiz dos nossos problemas de desempenho durante a versão beta
  • As configurações de IP e hostname agora são aplicadas e "permanecem"
  • As Varinhas Mágicas foram reordenadas para corresponder às do software Limelight 2018
  • Agora suportamos entradas do Grip como máscaras através da interface web
  • Corrigido o congelamento das NetworkTables

2019.0 (10/12/18)

Com o 2019, estamos introduzindo suporte ao GRIP, uma interface totalmente nova e um procedimento de flashing mais limpo.

  • Suporte ao GRIP

    • Construa pipelines com o GRIP For Limelight e exporte arquivos "LL Script" para carregar em sua câmera.
    • Suporte a máscaras e NetworkTables será adicionado em uma atualização futura
    • Exponha um stream de vídeo puro em http://limelighturl:5802 para testes no GRIP
  • Interface web totalmente nova

    • Controles menores
    • Mais dicas de ferramentas
    • Adição da capacidade de desligar os LEDs a partir da interface
    • Movimentação da caixa de combinação de exibição para baixo do stream para facilitar a troca de exibição
    • Comunicação mais rápida com o Limelight. Nova tecnologia web nos permitiu simplificar outras partes do nosso código.
  • Flashing

    • Migramos para o "Balena Etcher"
    • O Etcher é duas vezes mais rápido e funciona em todas as plataformas
    • Os pop-ups de flash foram corrigidos com a migração.
  • Outros

    • O Modo LED foi modificado para permitir Modos LED específicos por pipeline
    • Tempos de inicialização mais rápidos no modo de atribuição automática de IP
    • Otimizações e correções de bugs menores

2018.5 (28/03/18)

2018.5 corrige um problema crítico que impedia os usuários de ajustar pipelines em snapshots.


2018.4 (19/03/18)

2018.4 adiciona novas opções de classificação de contornos. Estas são bastante importantes para o rastreamento de cubos este ano, já que as equipes não necessariamente querem rastrear o maior cubo à vista. Em muitos casos, as equipes querem rastrear o cubo que está mais próximo de suas entradas. Muitos usuários tiveram que usar o recurso de contornos brutos para implementar sua própria classificação, então queremos tornar isso o mais fácil possível.

Recursos

  • Modo de Classificação de Contornos
    • Selecione entre as opções de classificação "maior", "menor", "mais alto", "mais baixo", "mais à esquerda", "mais à direita" e "mais próximo".
    • Acreditamos que muitas equipes farão uso da opção "mais próximo" para o rastreamento de cubos.

2018.3 (28/02/18)

2018.3 corrige um grande bug de reconexão das networktables que fazia com que as mudanças nas configurações do NetworkTables não se propagassem para o Limelight. Agradecemos a Peter Johnson e à equipe do WPILib por identificar e corrigir o bug subjacente do NT. Este foi (até onde sabemos) o último bug de alta prioridade que afetava o Limelight.

Alterações nas configurações como ledMode, pipeline e camMode devem sempre ser aplicadas ao Limelight. Você não deve mais precisar de soluções alternativas para alterar as configurações do Limelight durante a depuração, após reiniciar o código do robô e após reiniciar o roborio.

Mudanças

  • Correção de um grande problema de sincronização do NT que quebrava as alterações de configurações (ledMode, pipeline e camMode) durante a depuração do LabView e após uma reinicialização/reboot do roborio.
  • Ferramenta conta-gotas:
    • A ferramenta conta-gotas usa a mesma janela de 10 unidades para Matiz, mas agora usa uma janela de 30 unidades para saturação e valor. Isso significa que o thresholding é mais frequentemente uma operação de um clique, em vez de um processo de várias etapas.
  • Snapshots
    • Definir o valor do snapshot para "1" irá tirar apenas um único snapshot e redefinir o valor para 0. O snapshotting é limitado a 2 snapshots por segundo.
    • Limite de snapshots aumentado para 100 imagens.
    • A área do seletor de snapshots agora é rolável para suportar 100 imagens.

2018.2 (10/02/18)

2018.2 corrige todos os bugs de streaming conhecidos com vários painéis de controle FRC. Também torna o Limelight mais fácil de ajustar e mais versátil durante os eventos.

Recursos

  • Ferramentas de limiarização
    • Configure os parâmetros de limiar HSV com apenas alguns cliques
    • A ferramenta "Definir" centraliza os parâmetros HSV em torno do pixel selecionado
    • A ferramenta "Adicionar" ajusta os parâmetros HSV para incluir o pixel selecionado
    • A ferramenta "Subtrair" ajusta os parâmetros HSV para ignorar o pixel selecionado
  • Capturas de tela
    • As capturas de tela permitem que os usuários salvem o que o Limelight está vendo durante as partidas ou calibração de eventos, e ajustem os pipelines quando estiverem longe do campo.
    • Salve uma captura de tela com a interface web ou postando um "1" na chave "snapshot" do NetworkTables
    • Para visualizar as capturas de tela, altere a caixa de combinação "Fonte de Imagem" na aba de entrada. Isso permitirá que você teste seus pipelines em capturas de tela em vez do feed da câmera do Limelight
    • O Limelight armazenará até 32 capturas de tela. Ele excluirá automaticamente as capturas antigas se você exceder esse limite.
  • Novas opções de streaming
    • Introduzimos a chave "stream" no NetworkTables para controlar o modo de streaming do Limelight. Recebemos solicitações para modos PiP (Picture-in-Picture) para acomodar melhor certos painéis de controle.
    • 0 - Padrão - Streams lado a lado se uma webcam estiver conectada ao Limelight
    • 1 - PiP Principal - O stream da câmera secundária é colocado no canto inferior direito do stream da câmera principal.
    • 2 - PiP Secundário - O stream da câmera principal é colocado no canto inferior direito do stream da câmera secundária.
  • Aumento da taxa de quadros de streaming para 22fps
  • Erosão e Dilatação
    • Ative até uma iteração de erosão e dilatação.
    • A erosão irá erodir ligeiramente o resultado de um limiar HSV. Isso é útil se muitos objetos estiverem passando por um limiar HSV ajustado.
    • A dilatação irá inflar ligeiramente o resultado de um limiar HSV. Use isso para preencher buracos nos resultados da limiarização.
  • Botão de Reinicialização
    • Reinicie o rastreamento de visão do Limelight a partir da interface web. Isso é útil apenas para equipes que experimentam problemas intermitentes ao depurar código LabView.

Otimizações

  • Redução do tempo de execução do pipeline em estado estacionário para 3,5-4ms.

Correções de Bugs

  • Correção de problemas de streaming com o Shuffleboard
  • Correção de problemas de streaming com o painel de controle LabView

2018.1 (8/1/18)

  • Controle deslizante de Equilíbrio de Vermelho
  • Controle deslizante de Equilíbrio de Azul
  • Melhores configurações padrão de equilíbrio de cores
  • Aumento da configuração máxima de exposição

2018.0 (1/3/18)

Além de uma grande quantidade de novos estudos de caso, documentação mais detalhada e um programa de exemplo completo para um atirador autônomo STEAMWORKS, o software recebeu uma grande atualização.

Recursos

  • Nova interface de Pipeline de Visão
    • Adicione até 10 pipelines de visão únicas, cada uma com miras personalizadas, opções de limiarização, exposição, opções de filtragem, etc.
    • Nomeie cada pipeline de visão.
    • Marque qualquer pipeline como a pipeline "padrão".
    • Alterne instantaneamente entre pipelines durante uma partida com o novo valor "pipeline" no NetworkTables. Isso é útil para jogos que têm múltiplos alvos de visão (por exemplo, o pino de engrenagem e a caldeira de 2017). Isso também é útil para equipes que precisam usar opções de mira ligeiramente diferentes por robô, campo, aliança, etc.
    • Baixe pipelines de visão do Limelight para fazer backup ou compartilhar com outras equipes.
    • Faça upload de pipelines de visão para qualquer "slot" para usar pipelines baixadas.
  • Opção de "Agrupamento" de Alvo
    • Prefira instantaneamente alvos que consistem em duas formas com o modo de agrupamento "dual". Opções "Single" e "Tri" também estão disponíveis
  • Nova interface de Calibração de Mira
    • Modos de mira "Single" e "Dual".
    • O modo "Single" é o que o Limelight utilizava antes desta atualização. As equipes alinham seus robôs manualmente e "calibram" para re-zerar os valores de mira em relação à mira.
    • O modo "Dual" é um recurso avançado para robôs que precisam de uma mira dinâmica que se ajusta automaticamente conforme a área do alvo / distância ao alvo muda. Usamos esse recurso em alguns de nossos robôs atiradores, já que alguns deles atiravam com uma leve curva. Esse recurso também será útil para robôs com montagens de Limelight descentradas e/ou desalinhadas.
    • Calibração separada para X e Y.
  • Adição da chave de Alvo Válido "tv" ao Network Tables.
  • Adição da chave de Latência de Mira "tl" ao Network Tables. "tl" mede o tempo de execução do pipeline de visão. Adicione pelo menos 11 ms para o tempo de captura.
  • Desenho de retângulo adicional para ajudar a explicar o cálculo da proporção de aspecto.
  • Remoção do recurso de throttling e bloqueio do Limelight a 90fps.
  • Desativação do foco na maioria dos botões da interface web. Corrige problema de fluxo de trabalho relatado por equipes que calibravam suas miras e depois pressionavam "enter" para habilitar seus robôs.
  • Postagem de três contornos "brutos" e ambas as miras no Network Tables.
    • Acesse um contorno bruto com tx0, tx1, ta0, ta1, etc.
    • Acesse ambas as miras brutas com cx0, cy0, cx1, cy1.
    • Todos os valores x/y estão no espaço de tela normalizado (-1.0 a 1.0)
  • Adição da opção de "sufixo" à interface web. Permite que os usuários adicionem um sufixo aos nomes de host e NetworkTables de seus Limelights (por exemplo, limelight-boiler). Este recurso só deve ser utilizado se as equipes pretendem usar múltiplos Limelights em um único robô.
  • Exibição da versão da imagem na interface web

Otimizações

  • Diminuição da latência relacionada à rede para ~0.2 ms de ~10ms (Obrigado Thad House)
  • Movimentação da codificação de stream e compressão jpg para o terceiro núcleo, eliminando o travamento de 10ms (travamento de 25 - 30ms com duas câmeras) visto a cada seis quadros.
  • Redução do tempo de execução do pipeline em estado estacionário para 5ms com otimizações SIMD.

Correções de Bugs

  • Correção de pequena inexatidão no valor da área que impedia o valor de atingir 100% (máximo ~99%).
  • Correção de deslocamento de meio pixel em todos os cálculos de mira
  • Correção das informações de stream da câmera não sendo preenchidas para servidores NT iniciados após a sequência de inicialização do Limelight. Atualização regular das informações de stream da câmera.
  • Correção de bug que causava a "inversão" ocasional da proporção de aspecto.
  • Forçar saída de stream padrão (ao invés de saída limiarizada) no modo de piloto.
  • Correção de bug que impedia os LEDs de piscar após redefinir as informações de Rede

2017.7 (21/11/17)

  • Melhorou a classificação de contornos. Estava favorecendo contornos pequenos em vez de contornos maiores.
  • Novo sistema de coordenadas: O centro é (0,0). ty aumenta à medida que o alvo se move "para cima" no eixo y, e tx aumenta à medida que o alvo se move "para a direita" ao longo do eixo x.
  • Cálculos de ângulo mais precisos (modelo de câmera pinhole).
  • Exibe informações de mira (tx, ty, ta e ts) na página web
  • Os valores padrão de mira são zeros. Isso significa que zeros são retornados se nenhum alvo estiver visível.
  • Novo layout de página web lado a lado. Ainda colapsa para coluna única em dispositivos pequenos.
  • Atualizações contínuas do controle deslizante não prejudicam o desempenho do painel de configuração.
  • Área enviada para NT como porcentagem (0-100)
  • Tamanho da imagem reduzido para 700MB de 2.1GB

2017.6 (13/11/17)

  • Nova ferramenta de Imagem. Testada no Win7, Win8 e Win10.
  • Transmissão da câmera para streams do cameraserver. Funciona com streams de câmera do smart dashboard, mas o shuffleboard tem bugs conhecidos neste aspecto
  • Escala quártica nos controles deslizantes de área, escala quadrática nos controles deslizantes de proporção. Isso torna o ajuste muito mais fácil
  • Organização dos controles em abas de "entrada", "limite", "filtro" e "saída"
  • Atualizações contínuas ao arrastar os controles deslizantes
  • Área enviada para NT como porcentagem (0-100)
  • Tamanho da imagem exibida reduzido para 700MB de 2.1GB

2017.5 (11/9/17)

  • Tamanho da imagem reduzido de 3.9GB para 2.1GB
  • Adicionadas APIs para modo de driver e modo de LED
  • Defina ledMode como 0, 1 ou 2 na tabela limelight.
  • Defina camMode como 0 ou 1 na tabela limelight.
  • Adicionada a capacidade de alternar entre imagem com limiar e imagem bruta via interface web (será aprimorado em versão posterior)
  • Publicação do stream da câmera nas network tables em CameraPublishing/limelight/streams (necessitará de um hotfix)
  • Adicionada inclinação às informações de mira ("ts" na tabela limelight)
  • Adicionada base "CommInterface" em antecipação a mais protocolos

2017.4 (30/10/17)

  • Muitas melhorias na proteção durante a inicialização e o desligamento

2017.3 (25/10/17)

  • Intervalo de matiz é 0-179 em vez de 0-255
  • Diminuição do tamanho máximo do log, limpeza de logs, limpeza do cache apt

2017.2 (23/10/17)

  • Sensibilidade ISO manual
  • Exposição mínima aumentada para 2

2017.1 (21/10/17)

  • Otimizações
  • "Convexidade" alterada para "Preenchimento"
  • Faixa de exposição definida de 0-128 ms em vez de 0-255 ms
  • Suporte para duas câmeras
  • Suporte completo para calibração de ponto único