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:

  1. Identificação e Erradicação de Pragas e Ervas Daninhas
  2. 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.

Galeria de Fotos

Equipe AgBot da Mine, Nós

GetStoredImage-1.jpeg GetStoredImage.jpeg IMG_9005.jpeg IMG_9006.jpeg
IMG_9663.jpeg IMG_9684.jpeg IMG_9685.jpeg IMG_9686.jpeg
IMG_9687.jpeg IMG_9688.jpeg IMG_9691.jpeg

Nosso Robô AgBot

IMG_8854.jpeg IMG_8855.jpeg IMG_8856.jpeg IMG_8867.jpeg
IMG_8976.jpeg IMG_8977.jpeg IMG_9007.jpeg IMG_9008.jpeg
IMG_9037.jpeg IMG_9038.jpeg IMG_9039.jpeg IMG_9040.jpeg
IMG_9695.jpeg r1.jpeg r3.jpeg r5.jpeg
r6.jpeg r7.jpeg r9.jpeg

Vídeos/GIFs

IMG_6724.gif NEHE1091.gif demo.gif random_demo.gif
rogo_hardware.gif

Campos da Competição

IMG_8848.jpeg IMG_8849.jpeg IMG_8850.jpeg IMG_8851.jpeg
IMG_9042.jpeg IMG_9666.jpeg IMG_9668.png land.jpeg

Outras Equipes nas Competições

IMG_8827.jpeg IMG_8828.jpeg IMG_8857.jpeg IMG_8858.jpeg
IMG_8880.jpeg IMG_9651.jpeg IMG_9669.jpeg IMG_9671.jpeg
IMG_9672.jpeg IMG_9673.jpeg IMG_9674.jpeg IMG_9675.jpeg
IMG_9677.jpeg IMG_9678.jpeg IMG_9679.jpeg IMG_9696.jpeg
IMG_9697.jpeg gpage_2019.jpeg robot.jpeg

FRC 1339 (2014-2017)

IMG_9629.jpeg IMG_9630.jpeg

Outras Imagens Aleatórias

IMG_8825.jpeg IMG_8826.jpeg IMG_8852.jpeg IMG_8853.jpeg
IMG_8980.jpeg IMG_8981.jpeg IMG_9002.jpeg IMG_9003.jpeg
IMG_9043.jpeg mines_logo.png