Ftc First Tech Challenge - FIRST Tech Challenge (FTC) — GeorgiaFIRST Robotics
FIRST Tech Challenge (FTC) — GeorgiaFIRST Robotics

O que é e como funciona

O FTC (FIRST Tech Challenge) é uma competição de robótica voltada para estudantes do ensino médio, organizada pela organização FIRST. A programação usa a linguagem Java ou Kotlin em cima do SDK oficial, que roda no Android Studio. O robô se comunica com o controle via Wi-Fi, e você escreve código que define como os motores, sensores e atuadores se comportam durante uma temporada específica. Cada ano tem um novo desafio com regras diferentes, então a base do que você constrói precisa ser flexível. A estrutura do código que a maioria dos times usa segue um padrão com duas operações principais: uma roda em loop constante enquanto o robô está ativo, e outra dispara quando os módulos de telemetria precisam enviar dados ao driver station. Dentro desses loops, você lê sensores, toma decisões e comanda os atuadores. Parece simples até você tentar sincronizar movimentos de tração com uma esteira que precisa disparar num momento exato.

Eu já vi times perderem partidas porque ignoraram a latência da rede Wi-Fi. O robô não responde instantaneamente aos comandos do controle. A cada envio de comando pelo driver, há um atraso de cerca de 10 a 30 milissegundos, dependendo da qualidade da conexão. Se o seu código confia cegamente em comandos externos sem considerar esse delay, o robô vai se comportar de forma imprevisível. A solução que funcionou no meu time foi usar lógica autônoma com timer integrado. Em vez de esperar o driver enviar comandos em sequência, programamos um script local que executa movimentos temporizados. Isso reduziu drasticamente a dependência do Wi-Fi durante as corridas autônomas.

👉 Clique no botão abaixo para saber mais sobre o assunto!

ftc first tech challenge

O ambiente oficial de desenvolvimento é o FTC Robot Controller para o robô em si e o FTC Robot Driver para o controle. Ambos estão disponíveis gratuitamente no repositório oficial do GitHub da FIRST Tech Challenge. Você pode baixar direto do link github.com/FIRST-Tech-Challenge/FtcRobotController. Não há custo para usar o SDK, mas é preciso ter uma conta na FIRST para registrar a equipe e acessar a competição oficial. A instalação não é trivial. O projeto usa Gradle como sistema de build, então você vai precisar do Android Studio com o plugin do Gradle configurado corretamente. A primeira vez que abrimos o projeto, demorou quase duas horas só para resolver dependências e compilar. O problema era uma versão desatualizada do Android SDK Tools instalada na máquina. Atualizamos tudo pelo SDK Manager do Android Studio e o build funcionou. Se você tiver problemas semelhantes, verifique a versão do build-tools antes de tentar qualquer coisa.

Uma coisa que muitos iniciantes não entendem é a diferença entre a classe OpMode e o sistema de telemetria. A classe OpMode define o comportamento do robô, mas ela não roda automaticamente. Você precisa ativar o modo operacional pelo driver station, e isso pode causar confusão na primeira vez. Um erro comum é escrever um loop dentro do método run() e esquecer de adicionar um wait statement ou usleep. Sem isso, o loop roda tão rápido que o processador consome toda a CPU disponível e o robô fica instável. Colocar uma pausa de 20 milissegundos ao final de cada iteração resolve esse problema e deixa o sistema mais responsivo. Outro ponto que causa problemas reais é a calibração dos sensores. Sensores de cor, ultrassom e giroscópio precisam ser calibrados individualmente antes de cada partida. No meu time, perdemos três qualificações seguidas porque o sensor de cor estava retornado valores errados devido à iluminação do local. A solução foi implementar uma rotina de calibração automática no início de cada rodapé, lendo cores conhecidas e ajustando os thresholds dinamicamente. Isso pegou tempo extra nos primeiros ensaios, mas depois economizou horas de debugging durante a competição.

Se você está começando agora, o caminho mais direto é instalar o Android Studio, clonar o repositório oficial, importar o projeto e rodar o exemplo básico de motor. Esse exemplo mostra como conectar um módulo de controle, configurar os canais de motor e testar movimento simples. A partir daí, você vai entendendo a estrutura e podendo adicionar sensores e lógica personalizada. O FTC tem uma comunidade ativa com fóruns, vídeos no YouTube e documentações atualizadas a cada temporada. Mas o mais importante é prática. Código bonito não ganha partidas. Robôs que funcionam de forma consistente sim. Reserve tempo para testar cada componente separadamente antes de juntar tudo no robô final. Separação de módulos facilita identificar onde está o erro quando algo dá errado, e isso acontece sempre.