Melhores Práticas FRC
Lista de Verificação para Preparação de Eventos
- Baixe e faça backup de todos os pipelines para seu laptop de programação.
- Baixe uma cópia da imagem mais recente do Limelight para seu laptop de programação.
- Registre uma lista de 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 conectados ao seu LL.
- Considere usar cola quente em 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 SmartDashboard e Shuffleboard têm reconexão automática integrada por padrão.
- Adicione um switch de rede ao seu robô para permitir conexão ethernet durante um evento e evitar a segunda porta do rádio. Recomendamos o Brainboxes SW-005 5 port Switch
- 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 Port Forwarding para permitir comunicação com o 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 porta apenas uma vez no código do 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. Note o "+10" no primeiro argumento 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. Note o "+10" no primeiro argumento 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 porta 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 seu thresholding está funcionando corretamente. Mude para a visualização "threshold" durante este processo (localizada abaixo do stream de imagem).
- Mova seu robô próximo ao alvo e longe do alvo. Certifique-se de que as miras estão calibradas corretamente.
- Enquanto estiver longe do alvo, gire seu robô para esquerda e direita ~ 30 graus para garantir que outros alvos não serão rastreados erroneamente.
- Veja a seção de ajuste abaixo para mais dicas de ajuste.
- Certifique-se de que nenhum outro elemento do campo/arena está sendo rastreado acidentalmente. Verifique seus filtros de área e proporção se você estiver detectando luzes da arena.
- Tire snapshots de todos os alvos e alvos 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 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
- Configure um IP estático para seu laptop.
- IP: 10.TE.AM.5
- Máscara de Sub-rede: 255.0.0.0
- Gateway: 10.TE.AM.1
- Configure um IP estático para seu RIO.
- 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ê nomes de host únicos aos seus Limelights (se usar m últiplos).
- Configure IPs estáticos únicos para seus Limelights.
- Sempre comece com endereços ".11" e suba. (10.9.87.11, etc.)
- O uso de outros endereços pode causar mau funcionamento das unidades 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:
- Equipe 916 usa 10.9.16.xx,
- Equipe 9106 usa 10.91.6.xx
- 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 conectados aos seus Limelights.
- Verifique todas as conexões elétricas quanto a folgas e fios desencapados.
- 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 mantendo-se bem abaixo do limite de largura de banda. Siga os passos abaixo para reduzir a largura de banda.
- Em vez de usar o modo 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 "low" na página de configurações se o streaming não for crítico para a direção.
- Use a opção de stream 160x120 introduzida no 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 intermitentes de rede.
- Sempre use configurações de IP estático no campo.