Ir para o conteúdo principal

Rastreando AprilTrags


As AprilTags são rastreadas usando os valores "tx", "ty" e "ta" no NetworkTables, da mesma forma que os alvos retro-refletivos padrão! Nenhuma alteração de código é necessária para atualizar um robô de rastreamento retro-refletivo para AprilTags. "botpose" e "campose" também podem ser usados para rastreamento 3D no espaço de campo e no espaço do alvo.

Para um uso mais avançado com várias tags, pode-se usar o despejo de resultados em formato JSON.

Não se sinta pressionado a usar os recursos mais avançados nas páginas "Avançado" a menos que saiba que precisa deles. Muitas das melhores equipes na FRC usam as técnicas mais simples disponíveis para maximizar confiabilidade e velocidade. Se você frequenta o Discord, CD e regionais com equipes de elite, pode ter a impressão de que precisa do software mais avançado possível para vencer eventos, mas isso simplesmente não é verdade.

Nossa mensagem para muitas das equipes que ajudamos é "Está tudo bem fazer algo simples."

Início rápido de AprilTags para FRC

  • Guia de Entrada - Altere o Pipeline Type para "Fiducial Markers".

  • Guia Padrão - Certifique-se de que a family esteja configurada como AprilTag Classic 16h5.

  • Guia de Entrada - Defina o Black Level como zero.

  • Guia de Entrada - Defina o Gain como 15.

  • Guia de Entrada - Reduza a exposição para diminuir o desfoque de movimento. Pare de reduzir quando a confiabilidade do rastreamento diminuir.

  • Guia Padrão - Se desejar aumentar a taxa de quadros, aumente a Detector Downscale.

  • Guia de Entrada - Para aumentar o alcance e/ou a precisão, aumente a resolução de captura.

  • Se estiver vendo detecções de tag espúrias, adicione os IDs que deseja rastrear ao controle filter ou aumente o valor do Quality Threshold.

  • Clique no ícone de engrenagem e certifique-se de que o número da sua equipe e um IP estático estejam configurados.

  • Clique em Change Team Number e Change IP Settings se você alterou essas configurações correspondentes. Reinicie seu robô.

  • Você terminou! Use "tx" e "ty" na NetworkTables. Copie o exemplo de código na página "Iniciando".

Dicas

Para um rastreamento ideal, considere o seguinte:

  • Suas tags devem estar o mais planas possível.
  • Seu Limelight deve ser montado acima ou abaixo da altura da tag e inclinado para cima/baixo de forma que o alvo esteja centralizado. Seu alvo deve parecer o mais trapezoidal possível da perspectiva da sua câmera. Não é desejável que sua câmera esteja completamente "de frente" para uma tag se você quiser evitar inversões de tag.

Existe uma interação entre as seguintes variáveis para o rastreamento de AprilTag:

  • Aumentar a resolução de captura sempre aumentará a precisão 3D e a estabilidade 3D. Isso também reduzirá a taxa de inversões de ambiguidade na maioria das perspectivas. Geralmente, aumentará o alcance. No entanto, isso reduzirá a taxa de quadros da linha de processamento.

  • Aumentar a redução do detector sempre aumentará a taxa de quadros da linha de processamento. Isso diminuirá o alcance efetivo, mas, em alguns casos, isso pode ser negligenciável. Não afetará a precisão 3D, a estabilidade 3D ou a precisão na decodificação.

  • Reduzir a exposição sempre melhorará a resistência ao desfoque de movimento. Isso é fácil de observar. Isso pode reduzir o alcance.

  • Reduzir o brilho e contraste da imagem geralmente melhorará a taxa de quadros da linha de processamento e reduzirá o alcance.

  • Aumentar o ganho do sensor permite aumentar o brilho sem aumentar a exposição. Isso pode reduzir a estabilidade 3D e a estabilidade do rastreamento.

Guia de Entrada

A guia de entrada hospeda controles para alterar a imagem bruta da câmera antes que ela passe pelo pipeline de processamento. Consulte a página "Construindo um pipeline retrorefletor/cor" para obter mais detalhes.

Para rastrear AprilTags:

  • Altere o "Tipo de Pipeline" para "Marcadores Fiduciais".
  • Defina o "Nível de Preto" como zero.

Neste ponto, é uma questão de equilibrar o ganho do sensor e o tempo de exposição. Você deseja ser capaz de ver as tags com a menor exposição possível para minimizar o desfoque de movimento. Isso geralmente requer uma configuração de ganho de sensor alta. Para um rastreamento simples em 2D, geralmente é aconselhável maximizar o ganho do sensor e, em seguida, aumentar a exposição a partir de zero até que os alvos sejam rastreados corretamente. Certifique-se de que a família correta esteja selecionada na guia Standard se o rastreamento não estiver funcionando.

Guia Padrão

Family

Selecione o tipo de família fiducial/AprilTags. Para FRC você deve escolher o tipo 36h11.

Marker Size

Defina o tamanho esperado das tags, em mm, que seu robô vai encontrar. Para FRC isso deve ser definido como 165.1 (152.4 para tags de 2023)

Detector Downscale

Aumentar esse número resulta em um grande ganho de performance. Algumas vezes isso vai acarretar em um baixo alcance, mas é mínimo.

ID Filters

Filtros de ID permitem que você especifique exatamente quais tags são relevantes. Para a maioria das equipes da FRC, cada pipeline deve ser configurado para rastrear exatamente um ID de tag. Isso é feito por meio de uma lista separada por vírgulas de números (por exemplo, "0,1"). Essa funcionalidade é importante para eliminar a grande maioria dos falsos positivos.

Cropping

O recorte remove conteúdo da imagem para melhorias significativas de desempenho. Utilize a chave "crop" do NetworkTables para recortar dinamicamente durante as partidas.

Multi-Target Sorting and Grouping

Isso permite a funcionalidade exata de agrupamento vista em pipelines retro-refletivos padrão. Na maioria dos jogos, a única característica a ser modificada é o filtro "Área", que permitirá que você exclua tags pequenas.