Ir para o conteúdo principal

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.
  • 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() 
    {
        // Certifique-se de configurar o encaminhamento de porta apenas uma vez no código do robô.
        // Não coloque essas chamadas de funções em funções periodicas
        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() 
    {
        // Certifique-se de configurar o encaminhamento de porta apenas uma vez no código do robô.
        // Não coloque essas chamadas de funções em funções periodicas
        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.