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.