Desafio AgBot 2019
East High School
Durante o meu tempo na East High School em Denver, Colorado (2014-2018), estive fortemente envolvido em atividades extracurriculares, sendo a mais impactante o clube de robótica, AngelBotics. Só no meu segundo ano do ensino médio eu me juntei, devido a um foco inicial no futebol. O clube participava principalmente da Competição de Robótica FIRST (FRC), permitindo-me explorar engenharia mecânica e elétrica, bem como programação. Através da AngelBotics, aprendi a usar ferramentas CAD, impressoras 3D e outros equipamentos de engenharia, ganhando exposição a conceitos de STEM geralmente reservados para estudantes universitários. Inicialmente aspirando a ser um Físico Quântico, minhas experiências em AP Physics e robótica mostraram que eu não era tão bom em física e, por isso, me afastaram de um caminho em engenharia mecânica.
Em vez disso, encontrei meu nicho na programação, que começou com eu escrevendo código Python para o meu primeiro Raspberry Pi e foi solidificado através de projetos Java em AP Computer Science. Apesar de ter dificuldades nas provas, meu professor, Sr. Nagel, me incentivou a seguir desenvolvimento de software, enfatizando o valor dos projetos sobre as notas de teste. Isso me levou a focar em ciência da computação como meu curso na faculdade, com o sonho de me tornar engenheiro de software e, eventualmente, fundador da minha carreira.
Embora eu não estivesse tão envolvido na AngelBotics devido ao meu curso exigente e à curva de aprendizado íngreme, ainda assim despertou uma paixão vitalícia por robótica. Então, quando comecei a faculdade, estava determinado a entrar em um clube de robótica universitário e, um dia, criar uma empresa que resolva problemas do mundo real com robótica.
School of Mines
Depois de me formar na East High School, comecei meu bacharelado em Ciência da Computação na Colorado School of Mines (2018-2022). Durante o meu primeiro semestre, explorei os clubes de robótica da Mines e descobri um novo grupo de robótica chamado AgBot.
AgBot foi um novo clube de robótica formado com o objetivo de construir um robô para competir na Competição AgBots Weed and Feed 2019. Essa competição tinha dois desafios principais:
- Identificação e Erradicação de Pragas e Ervas Daninhas
- Criação de Novos Métodos de Colheita por Meio da Robótica
Nosso time escolheu focar no primeiro desafio. Foi a primeira vez da Mines participando da competição AgBot, e a primeira vez que um clube de robótica da Mines trabalhou em algo relacionado à agricultura. Isso fez tudo parecer novo.
Fui imediatamente atraído pelo projeto. Minha família foi de agricultores na Turquia por gerações, até a geração do meu pai. Então o AgBot parecia próximo de casa, ligando minha paixão por robótica e programação. A ideia de construir um robô que pudesse ajudar agricultores como meus avós era realmente empolgante.
Development
Fazer parte da equipe AgBot é uma das minhas experiências universitárias mais memoráveis. Também foi uma das coisas mais difíceis que eu já fiz até então. Este projeto foi a primeira vez que mergulhei de verdade em Python, Ubuntu e ROS. Na FRC, tudo era em Java, então isso era um território totalmente novo para mim. Eu já tinha usado Python e Ubuntu antes, mas nunca havia tocado em ROS. Aprender como o ROS funcionava foi uma batalha íngreme. Eu nem sabia o que era um ambiente Python na época.
Passei a maior parte do tempo tentando fazer um Lidar enviar dados utilizáveis para um nó ROS que eu estava escrevendo. Minha tarefa era implementar um Nó ROS chamado end_detector
que pudesse detectar quando o robô chegasse ao final de uma fileira de cultivo usando dados do Lidar. Parece simples agora, mas na época parecia enorme.
Levei cerca de duas semanas de depuração para fazer o Lidar conversar com o meu código. Todo o código foi escrito em C++ ou Python, principalmente Python. Então, meu código era apenas Python para esse trabalho. Quando isso funcionou, comecei a testar a lógica usando manchas aleatórias de plantas que encontrei no campus. Eu rolava um suporte segurando o Lidar sobre elas e via se o código conseguia dizer quando chegávamos ao fim. Depois de muitas horas e depurações, finalmente consegui tudo funcionando pelo menos no meu ambiente de teste. Foi outra história quando tentamos combinar tudo junto.
Meu tempo foi gasto principalmente fazendo o hardware e o software conversarem entre si. A lógica real para detectar o fim das fileiras veio em segundo plano. Mas foi uma ótima experiência de aprendizado. Passei de quase não entender ROS a escrever e depurar nós em uma placa Jetson com dados de Lidar ao vivo. Foi também nesse período que deixei de usar principalmente Java como minha linguagem de programação e passei a usar Python por padrão. E, a partir de 2025, ainda não usei Java em nenhum dos meus projetos ou bases de código relacionadas ao trabalho.
Team and Tech Stack
Rodávamos Ubuntu 16.04 com ROS Kinetic e Python 2.7 em um Nvidia Jetson TX2 que se comunicava com um Hokuyo URG 04LX UG01 Lidar. Tínhamos Arduino(s) para entradas de sensores como sensores ultrassônicos de distância. Nosso código cuidava de percepção, navegação, controle e pulverização. Você pode ver o repositório aqui: GitHub Repo. O código específico que escrevi pode ser encontrado em end_detector.py. Aqui está a lista da maioria dos componentes que compunham o robô:
- Ubuntu 16.04 Xenial
- ROS Kinetic Kame
- Python 2.7
- Nvidia Jetson TX2
- Hokuyo URG-04LX-UG01 Lidar
- Arduino Uno & Mega
- Motores DC, Codificadores, Controladores de Motor, Bateria, etc.
Não tínhamos uma equipe enorme, mas alguns nomes se destacam:
Tyler era o líder e fundador do clube. Eu o respeitava muito na época e ainda o respeito hoje. Zachary era o responsável pelo desenvolvimento de software do clube e me ajudou a aprender muito sobre desenvolvimento de software e ROS, pelo que sou grato até hoje.
Havia outros membros também, como Kevin Barnard e Amit Rotem. Mas infelizmente não lembro os nomes e contatos de todos os membros originais, já que se passaram mais de 5 anos desde que o clube foi encerrado.
A maior parte do desenvolvimento do robô aconteceu nos fins de semana e tarde da noite, depois que a maioria das nossas aulas terminava. Trabalhar em um curso de engenharia e no AgBot era muito cansativo, mas conseguimos seguir em frente.
The Trip and the Chaos
Uma parte de toda essa experiência que nunca esquecerei foi a própria viagem. A competição foi realizada em West Lafayette, Indiana, perto do campus da Universidade Purdue. E toda a competição aconteceu logo após a semana de provas da Mines, então não tivemos tempo para nos recuperar daquela semana infernal.
Dirigimos de Golden, Colorado, até Indiana usando o caminhão do Tyler para também transportar o robô e todas as nossas ferramentas. O engraçado é que começamos a viagem literalmente um dia antes da semana da competição. Empacotamos tudo que tínhamos, o robô, as ferramentas, as baterias, os computadores, tudo, e dirigimos de Golden, Colorado, até West Lafayette, Indiana. Isso seria uma viagem de 18 horas no papel. Levou quase 20 ou 22 horas com paradas para gasolina e banheiros.
Tyler dirigiu o tempo todo, vivendo de bebidas Coffee Monster. Outra colega de equipe, desculpe, esqueci o nome dela, mas está nas fotos, assumiu o volante às vezes. No caminho, começou a chover forte. Tivemos que parar em um posto de gasolina fechado aleatório e pegar uma lona para proteger o robô. Foi improvisado, foi caos, foi robótica universitária. De alguma forma, conseguimos.
Quando chegamos, montamos nossa tenda no campo e organizamos todas as nossas ferramentas. Eu me concentrei em terminar o código e fazê‑lo rodar. Durante a maior parte da competição, trabalhamos principalmente em depurar nosso robô e fazê‑lo funcionar bem, além de conferir as construções de robôs dos outros times.
So Did We Win?
No
Olhando para trás, éramos apenas um bando de jovens tentando construir algo que estava muito além do nosso nível de experiência. Os outros times estavam em um nível totalmente diferente. Alguns eram de startups. Alguns eram de laboratórios de pesquisa. Alguns tinham apoio acadêmico completo. Éramos um pequeno grupo de graduandos fazendo maratonas, esperando que Python transformasse os dados do Lidar em algo útil.
Nosso robô era falho. Era improvisado. E, honestamente, mal funcionava quando chegamos à competição. Muitas pessoas da equipe começaram a desistir quando perceberam que talvez não terminássemos a tempo. Alguns nem apareceram. As provas tinham acabado, o robô não estava pronto e o moral estava bem baixo.
Mas alguns de nós persistiram
Eu não desisti… Tyler não desistiu… E as pessoas na foto, também não desistiram!
Mesmo que não tenhamos vencido ou sequer tido um robô totalmente funcional, eu não trocaria essa experiência por nada. Aprendi sobre ROS, depuração de hardware, construção de sistemas sob pressão e aprendi sobre lealdade. Percebi o quão importante é ver as coisas até o fim.
Reflection, As Of 2025
Depois da temporada de 2019, o AgBot encerrou suas atividades. Isso ocorreu principalmente devido ao COVID, que começou quase um ano depois, fazendo com que todos os clubes da Mines fechassem por 1‑2 anos e, quando o mundo começou a voltar ao “normal”, eu já havia me formado.
It is now 2025, and looking back at AgBot, I see it as the beginning of everything for me. It gave me my first real experience with robotics and taught me how to collaborate with a technical team. It set me on a path that has led me to amazing opportunities.
Since then, I have worked as a backend engineer at eBay, deploying services that ingest millions of metrics across data centers. Founded my first startup that focused on building AI automated cybersecurity penetration testing. Launched Notify Cyber, which reached tens of thousands of visitors. I have written software for Docker, Kubernetes, Postgres, and advanced AI infrastructure.
But AgBot still stands out as one of the best experiences of my life. It was chaotic, stressful, and sometimes felt impossible, but it taught me more than any class or tutorial ever could. I learned that even if you do not have the perfect plan or enough funding or the best hardware, you can still build something, learn a ton, and meet incredible people along the way.
To everyone from the 2019 AgBot team, thank you. To that 2019 road trip, the tarp we grabbed at a closed gas station, and the sleepless nights, thank you. You gave me the grit to pursue big projects with confidence, no matter how impossible they seem.
Recursos e Links
- Site Principal dos Clubes de Robótica da Colorado School of Mines
- Base de Código AgBot 2019
- Artigo AgBot da Purdue
- Artigo de Recapitulação Visual da Purdue
- Artigo da DTN Progressive Farmer
- Conta do Twitter/X do AgBot
- Site Oficial do AgBot
- GitHub do Zach
- GitHub do Kevin
- GitHub do Tyler
Galeria de Fotos
Equipe AgBot da Mine, Nós
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Nosso Robô AgBot
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Vídeos/GIFs
![]() |
![]() |
![]() |
![]() |
![]() |
Campos da Competição
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Outras Equipes nas Competições
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
Outras Imagens Aleatórias
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |