Melhores Práticas FRC
Lista de Verificação para Preparação de Eventos
- Faça o download e backup de todos os 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 dos seus pipelines e seus índices.
- 1 - Alvo Duplo Baixo
- 2 - Alvo Duplo Alto Carga
- Adicione alívios de tensão a todos os cabos de energia e ethernet que vão para o seu LL.
- Considere colar com cola quente todas as conexões.
- Certifique-se de usar um painel (Smartdashboard, Shuffleboard) e não um navegador web para visualizar o stream durante os treinos e eventos. Os controles web padrão não têm a capacidade de reconectar automaticamente aos streams após desconexões espúrias, mas o SmartDashboard e o Shuffleboard têm reconexão automática integrada por padrão.
- Adicione um switch de rede ao seu robô para permitir a conexão ethernet durante um evento e evitar a segunda porta do rádio. Recomendamos o Switch Brainboxes SW-005 de 5 portas
- Use cabos Cat6 trançados com fios flexíveis. Não use cabos ethernet planos.
- Não use a segunda porta do rádio. Roteie todos os dispositivos através do seu switch de rede, se possível.
- Configure o Encaminhamento de Portas para permitir a comunicação do Limelight enquanto conectado ao seu robô via USB.
- Encaminhe as portas 5800, 5801, 5802, 5803, 5804, 5805, 5806 e 5807
- Java
- C++
import edu.wpi.first.wpiutil.net.PortForwarder;
@Override
public void robotInit()
{
// Certifique-se de configurar o encaminhamento de portas apenas uma vez no código do seu robô.
// Não coloque essas chamadas de função em nenhuma função periódica
for (int port = 5800; port <= 5809; port++) {
PortForwarder.add(port, "limelight.local", port);
}
}
http://roborio-(teamnum)-FRC.local:5801 agora encaminhará para limelight.local:5801
Para adicionar um segundo limelight, use um conjunto diferente de portas locais. Observe o "+10" no primeiro argumento de PortForwarder.add():
for (int port = 5800; port <= 5809; port++) {
PortForwarder.add(port+10, "limelight-left.local", port);
}
http://roborio-(teamnum)-FRC.local:5811 agora encaminhará para limelight-left.local:5801
#include <wpi/PortForwarder.h>
void Robot::RobotInit
{
for (int port = 5800; port <= 5809; port++)
{
wpi::PortForwarder::GetInstance().Add(port, "limelight-left.local", port);
}
}
http://roborio-(teamnum)-FRC.local:5801 agora encaminhará para limelight.local:5801
Para adicionar um segundo limelight, use um conjunto diferente de portas locais. Observe o "+10" no primeiro argumento de PortForwarder::add():
for (int port = 5800; port <= 5809; port++)
{
wpi::PortForwarder::GetInstance().Add(port+10, "limelight.local", port);
}
http://roborio-(teamnum)-FRC.local:5811 agora encaminhará para limelight-left.local:5801
Após o encaminhamento de portas ser ativado, você pode acessar a página de configuração do seu Limelight em http://roborio-(teamnum)-FRC.local:5801. Por exemplo, a equipe 2928 usaria http://roborio-2928-FRC.local:5801
Calibração Durante o Evento
- Mova seu robô para cada alvo no campo.
- Certifique-se de que o thresholding está funcionando corretamente. Mude para a visualização "threshold" durante este processo (localizada abaixo do stream de imagem).
- Mova seu robô para perto do alvo e longe do alvo. Garanta que as miras estejam calibradas corretamente.
- Enquanto estiver longe do alvo, gire seu robô para a esquerda e direita ~ 30 graus para garantir que outros alvos não sejam rastreados erroneamente.
- Veja 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 você estiver captando luzes da arena.
- Tire snapshots de todos os alvos e rastreamentos errôneos. Você pode usar estes para ajustar seus pipelines nos pits.
Ajuste de Pipeline
- Use a menor exposição possível e aumente o offset do nível de preto até que as luzes do campo e reflexos de LED sejam removidos da imagem.
- Teste seu thresholding enquanto estiver longe e em ângulo em relação ao seu alvo.
- Use o "Smart Speckle Rejection" do 2019.7 para filtrar reflexos de LED indesejados
Antes de Conectar ao Campo
- Dê ao seu laptop 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
- Dê ao seu RIO uma configuração de IP estático.
- IP: "10.TE.AM.2"
- Máscara de Sub-rede: 255.255.255.0 ** - NOTE A DIFERENÇA AQUI**
- Gateway: 10.TE.AM.1
- Dê aos seus Limelights nomes de host únicos (se estiver usando múltiplos).
- Dê aos seus Limelights configurações de IP estático únicas.
- Sempre comece com endereços ".11" e vá para cima. (10.9.87.11, etc.)
- O uso de outros endereços pode fazer com que suas unidades funcionem mal quando conectadas ao FMS.
- IP: "10.TE.AM.11"
- Máscara de sub-rede: 255.255.255.0
- Gateway: "10.TE.AM.1"
Nota: Equipes com zeros precisam prestar atenção especial:
- A equipe 916 usa 10.9.16.xx,
- A equipe 9106 usa 10.91.6.xx
- A equipe 9016 usa 10.90.16.xx
Informações adicionais: https://docs.wpilib.org/en/stable/docs/networking/networking-introduction/ip-configurations.html
Lista de Verificação 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 frouxidão e fios desfiados.
- Verifique todos os parafusos de montagem / abraçadeiras / fita.
- Observe as precauções ESD em todos os momentos.
Largura de Banda
- Algumas equipes executam dois Limelights com duas câmeras USB enquanto permanecem bem abaixo do limite de largura de banda. Siga os passos abaixo para reduzir a largura de banda.
- Em vez de usar o modo de driver, crie um pipeline "driver". Diminua a exposição para reduzir a largura de banda do stream.
- Usando uma câmera USB? Use a chave NT "stream" para habilitar o modo picture-in-picture. Isso reduzirá drasticamente a largura de banda do stream.
- Coloque a taxa de stream em "baixa" na página de configurações se o streaming não for crítico para a condução.
- Use a opção de stream 160x120 introduzida em 2019.7.
Solução de Problemas
- Tente acessar o stream em IP:5800 com um navegador web. Isso deve ajudar você a determinar a raiz dos seus problemas.
- Reinicie seu painel
- Reinicie seu computador
- Reinicie seu robô se o campo tiver sido resetado
- Cabos Ethernet quebrados podem ser a causa de problemas de rede intermitentes.
- Sempre use configurações de IP estático no campo.