API do NetworkTables
O Limelight OS possui um Cliente NetworkTables 4. Ele se conecta automaticamente ao Servidor NetworkTables 4 executando em Robôs FRC com base no Número / ID da Equipe configurado na Interface de Configurações.
Todos os dados são publicados em uma tabela que corresponde ao nome do dispositivo (por exemplo, "limelight"). Se um hostname / apelido for atribuído à sua câmera, o nome da tabela corresponderá ao nome completo do limelight (por exemplo, "limelight-top").
LimelightLib WPIJava e LimelightLib WPICPP interagem com dispositivos Limelight através do NetworkTables.
Dados Básicos de Mira
Use o seguinte código:
- Java
- LabView
- C++
- Python
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDouble(0);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumber("<variablename>",0.0);
NetworkTables.getTable("limelight").getNumber('<variablename>');
para recuperar estes dados:
chave | tipo | descrição |
---|---|---|
tv | int | 1 se existe um alvo válido. 0 se não existem alvos válidos |
tx | double | Deslocamento Horizontal da Mira ao Alvo (LL1: -27 graus a 27 graus / LL2: -29.8 a 29.8 graus) |
ty | double | Deslocamento Vertical da Mira ao Alvo (LL1: -20.5 graus a 20.5 graus / LL2: -24.85 a 24.85 graus) |
txnc | double | Deslocamento Horizontal do Pixel Principal ao Alvo (graus) |
tync | double | Deslocamento Vertical do Pixel Principal ao Alvo (graus) |
ta | double | Área do Alvo (0% da imagem a 100% da imagem) |
tl | double | Contribuição de latência do pipeline (ms). Adicione a "cl" para obter a latência total. |
cl | double | Latência de captura do pipeline (ms). Tempo entre o fim da exposição da linha do meio do sensor até o início do pipeline de rastreamento. |
t2d | double | Array contendo vários valores para estatísticas de timestamp correspondente: [alvoVálido, contagemAlvos, latênciaAlvo, latênciaCaptura, tx, ty, txnc, tync, ta, tid, índiceClasseAlvoDetector, índiceClasseAlvoClassificador, pixelsLadoLongoAlvo, pixelsLadoCurtoAlvo, pixelsExtensãoHorizontalAlvo, pixelsExtensãoVerticalAlvo, grausInclinaçãoAlvo] |
getpipe | int | Índice verdadeiro do pipeline ativo da câmera (0 .. 9) |
getpipetype | string | Tipo de Pipeline ex: "pipe_color" |
json | string | Dump JSON completo dos resultados de mira. Deve ser habilitado por pipeline na aba 'output' |
tclass | string | Nome da classe do resultado principal do detector neural ou resultado do classificador neural |
tc | doubleArray | Obtém a cor HSV média sob a região da mira (região de 3x3 pixels) como um NumberArray |
hb | double | valor de heartbeat. Aumenta uma vez por frame, reinicia em 2 bilhões |
hw | doubleArray | Métricas de HW [fps, temperatura cpu, uso de ram, temp] |
crosshairs | doubleArray | Miras 2D [cx0, cy0, cx1, cy1] |
tcclass | string | Nome da classe computada pelo pipeline classificador |
tdclass | string | Nome da detecção principal do pipeline detector |
AprilTag e Dados 3D
Use o seguinte código:
- Java
- C++
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDoubleArray(new double[6]);