Melhores práticas
Lista de Verificação de Preparação para o Evento
- Baixe e faça backup de todas as pipelines para o seu laptop de programação.
 - Faça o download de uma cópia da imagem mais recente do Limelight para o seu laptop de programação.
 - Registre uma lista das suas pipelines e seus índices. 1 - Dual Target Low 2 - Dual Target High Cargo
 - Adicione alívios de tensão a todos os cabos de energia e Ethernet que vão para o seu Limelight.
 - Considere aplicar cola quente a todas as conexões.
 - Certifique-se de estar usando um painel de controle (Smartdashboard, Shuffleboard) e não um navegador da web para visualizar o stream durante treinos e eventos. Os controles web padrão não têm a capacidade de reconectar automaticamente a streams após desconexões acidentais, mas o SmartDashboard e o Shuffleboard têm reconexão automática incorporada por padrão.
 - Adicione um switch de rede ao seu robô para habilitar a conexão Ethernet enquanto estiver em um evento e evitar a segunda porta de rádio. Recomendamos o Brainboxes SW-005 5 port Switch.
 - Use cabos Cat6 torcidos com fios flexíveis. Não use cabos Ethernet planos.
 - Não use a segunda porta de rádio. Encaminhe todos os dispositivos por meio do seu switch de rede, se possível.
 - Configure o encaminhamento de porta (Port Forwarding) para permitir a comunicação do Limelight ao ser conectado ao seu robô via USB.
- Encaminhe as portas 5800, 5801, 5802, 5803, 5804, 5805, 5806 e 5807.
 
 
Java
    import edu.wpi.first.wpiutil.net.PortForwarder;
    @Override
    public void robotInit() 
    {
        // Make sure you only configure port forwarding once in your robot code.
        // Do not place these function calls in any periodic functions
        for (int port = 5800; port <= 5807; port++) {
            PortForwarder.add(port, "limelight.local", port);
        }
    }
C++
    import edu.wpi.first.wpiutil.net.PortForwarder;
    @Override
    public void robotInit() 
    {
        // Make sure you only configure port forwarding once in your robot code.
        // Do not place these function calls in any periodic functions
        for (int port = 5800; port <= 5807; port++) {
            PortForwarder.add(port, "limelight.local", port);
        }
    }
Calibração durante o evento
- Role seu robô até cada alvo no campo.
- Certifique-se de que a segmentação está funcionando corretamente. Mude para a visualização "threshold" durante este processo (localizada abaixo do fluxo de imagem).
 - Role seu robô próximo ao alvo e longe do alvo. Garanta que as miras estejam calibradas corretamente.
 - Enquanto estiver longe do alvo, gire seu robô para a esquerda e para a direita ~ 30 graus para garantir que outros alvos não sejam rastreados erroneamente.
 - Consulte a seção de ajuste abaixo para mais dicas de ajuste.
 - Certifique-se de que nenhum outro elemento do campo/arena esteja sendo rastreado acidentalmente. Verifique seus filtros de área e proporção se estiver captando as luzes da arena.
 - Tire capturas de tela de todos os alvos e rastreamentos incorretos. Você pode usá-los para ajustar suas pipelines nos boxes.
 
 
Melhorando o pipeline
- Utilize a exposição mais baixa possível e aumente o deslocamento do nível de preto até que as luzes do campo e reflexos de LEDs sejam removidos da imagem.
 - Teste sua segmentação enquanto estiver longe e inclinado para longe do seu alvo.
 - Use o recurso "Smart Speckle Rejection" da versão 2019.7 para filtrar reflexos indesejados de LEDs.
 
Antes de conectar ao campo
- Configure seu laptop com uma configuração de IP estático.
- IP: 10.TE.AM.5
 - Máscara de Sub-rede: 255.0.0.0
 - Gateway: 10.TE.AM.1
 
 - Configure seu RIO com uma configuração de IP estático.
- IP: "10.TE.AM.2"
 - Máscara de Sub-rede: 255.255.255.0 <- ATENÇÃO PARA A DIFERENÇA AQUI
 - Gateway: 10.TE.AM.1
 
 - Dê nomes de host exclusivos para seus Limelights (se estiver usando vários).
 - Forneça configurações de IP estático únicas para seus Limelights.
- Comece sempre com endereços terminados em ".11" e vá aumentando. (10.9.87.11, etc.)
 - O uso de outros endereços pode fazer com que suas unidades apresentem mau funcionamento quando conectadas ao FMS.
 - IP: "10.TE.AM.11"
 - Máscara de sub-rede: 255.255.255.0
 - Gateway: "10.TE.AM.1" Nota: As equipes com zeros precisam prestar atenção especial:
 
 
- _Team 916 uses 10.9.16.xx,_
- _Team 9106 uses 10.91.6.xx_
- _Team 9016 uses 10.90.16.xx_
Informação adicional: https://docs.wpilib.org/en/stable/docs/networking/networking-introduction/ip-configurations.html
Lista de checagem Pré-Partida
- Verifique todos os cabos de energia e Ethernet que vão para seus Limelights.
 - Verifique todas as conexões elétricas quanto a folgas e fios desgastados.
 - Verifique todos os parafusos de fixação / abraçadeiras / fita adesiva.
 - Observe precauções contra descarga eletrostática (ESD) o tempo todo.
 
Largura de banda
- 
Algumas equipes utilizam dois Limelights com duas câmeras USB, mantendo-se bem abaixo do limite de largura de banda. Siga as etapas abaixo para reduzir a largura de banda.
 - 
Em vez de usar o modo de condução, crie uma pipeline "driver". Reduza a exposição para diminuir a largura de banda do stream.
 - 
Está usando uma câmera USB? Utilize a chave NT "stream" para ativar o modo picture-in-picture. Isso reduzirá drasticamente a largura de banda do stream.
 - 
Configure a taxa de stream para "baixa" na página de configurações se o streaming não for crítico para a condução.
 - 
Utilize a opção de stream 160x120 introduzida na versão 2019.7.
 
Solução de erros
- Tente acessar o stream em IP:5800 com um navegador da web. Isso deve ajudar a determinar a origem dos seus problemas.
 - Reinicie o seu painel de controle.
 - Reinicie o seu computador.
 - Reinicie o seu robô se o campo tiver sido redefinido.
 - Cabos Ethernet danificados podem ser a causa de problemas intermitentes de rede.
 - Sempre use configurações de IP estático no campo.