Sfida AgBot 2019
Scuola Superiore East
Durante il mio periodo alla Scuola Superiore East a Denver, Colorado (2014-2018), sono stato molto coinvolto nelle attività extrascolastiche, con il più significativo rappresentato dal club di robotica, AngelBotics. Non mi unii fino al mio secondo anno, a causa di un iniziale focus sul calcio. Il club partecipava principalmente alla FIRST Robotics Competition (FRC), permettendomi di esplorare l’ingegneria meccanica ed elettrica, oltre alla programmazione. Attraverso AngelBotics, ho imparato a usare strumenti CAD, stampanti 3D e altre attrezzature di ingegneria, entrando in contatto con concetti STEM generalmente riservati agli studenti universitari. Inizialmente aspiravo a diventare un fisico quantistico; le mie esperienze in AP Physics e nel club di robotica mi hanno però mostrato che non ero così bravo in fisica e, di conseguenza, mi hanno allontanato dalla strada dell’ingegneria meccanica.
Invece, ho trovato la mia nicchia nella programmazione, che iniziò con me che scrivevo codice Python per il mio primo Raspberry Pi e si consolidò attraverso progetti in Java in AP Computer Science. Nonostante avessi difficoltà con gli esami, il mio insegnante, il Sig. Nagel, mi incoraggiò a perseguire lo sviluppo software, sottolineando il valore dei progetti rispetto ai punteggi dei test. Questo mi spinse a concentrarmi sull’informatica come laurea all’università, con il sogno di diventare un ingegnere del software e, infine, un fondatore nella mia carriera.
Anche se non ero così coinvolto in AngelBotics a causa del mio carico di lavoro e della ripida curva di apprendimento, il club ha comunque acceso una passione perenne per la robotica. Così, quando ho iniziato l’università, ero determinato a unirmi a un club di robotica universitario e un giorno a costruire un’azienda che risolvesse problemi del mondo reale con la robotica.
Scuola delle Miniere
Dopo il diploma alla Scuola Superiore East, ho iniziato la mia Laurea in Informatica alla Colorado School of Mines (2018-2022). Durante il mio primo semestre, ho dato un’occhiata ai club di robotica delle Mines e ho scoperto un nuovissimo gruppo di robotica chiamato AgBot.
AgBot era un nuovo club di robotica formato con l’obiettivo di costruire un robot per competere nella 2019 agBots Weed and Feed Competition. Questa competizione aveva due sfide principali:
- Identificazione ed eradicazione di parassiti e infestanti
- Creare nuovi metodi di raccolta tramite la robotica
Il nostro team scelse di concentrarsi sulla prima sfida. Era la prima volta che le Mines partecipavano alla competizione agBot, ed era la prima volta che un club di robotica delle Mines lavorava su qualcosa relativo all’agricoltura. Questo rese l’intera esperienza particolarmente nuova ed entusiasmante.
Sono stato immediatamente attratto dal progetto. La mia famiglia era stata contadina in Turchia per generazioni, fino alla generazione di mio padre. Quindi AgBot mi è sembrato vicino a casa, legando la mia passione per la robotica e la programmazione. L’idea di costruire un robot che potesse aiutare agricoltori come i miei nonni era davvero entusiasmante.
Sviluppo
Far parte del team AgBot è stata una delle esperienze universitarie più memorabili. È stato anche una delle cose più difficili su cui avessi lavorato fino a quel momento. Questo progetto fu la prima volta in cui mi immersi davvero in Python, Ubuntu e ROS. In FRC, tutto era in Java, quindi tutto questo era un territorio nuovo per me. Avevo usato Python e Ubuntu in passato, ma non avevo mai toccato ROS. Imparare come funzionava ROS è stata una salita ripida. All’epoca non sapevo nemmeno cosa fosse un ambiente Python.
Passai la maggior parte del tempo cercando di far sì che un Lidar inviassi dati utilizzabili a un nodo ROS che stavo scrivendo. Il mio compito era implementare un ROS Node chiamato end_detector che potesse rilevare quando il robot raggiungeva la fine di una fila di colture usando i dati del Lidar. Ora sembra semplice, ma allora sembrava enorme.
Ci vollero circa due settimane di debug per far comunicare il Lidar con il mio codice. L’intero codice era scritto in C++ o Python, principalmente Python. Quindi il mio lavoro era tutto in Python. Una volta che quello funzionò, iniziai a testare la logica usando pezzi casuali di piante che trovavo nel campus. Spostavo un supporto con il Lidar davanti a loro per vedere se il codice riuscisse a capire quando arrivavamo alla fine. Dopo molte ore e debugging, alla fine riuscii a far funzionare tutto almeno nel mio ambiente di test. Quando cercammo di combinare tutto insieme, fu un’altra storia.
Il mio tempo fu principalmente speso per far comunicare l’hardware e il software. La logica effettiva per rilevare la fine delle file venne dopo. Ma è stata una grande esperienza di apprendimento. Sono passato dal comprendere a malapena ROS allo scrivere e fare debug di nodi su una scheda Jetson con dati Lidar in tempo reale. È stato anche durante questo periodo che passai dal prediligere Java come linguaggio di programmazione al prediligere Python. E, al 2025, non ho ancora realmente utilizzato Java per nessuno dei miei progetti o basi di codice legate al lavoro.
Team e Stack Tecnologico
Abbiamo eseguito Ubuntu 16.04 con ROS Kinetic e Python 2.7 su una Nvidia Jetson TX2 che si interfacciava con un Hokuyo URG 04LX UG01 Lidar. Avevamo Arduino per ingressi da sensori come sonar a ultrasuoni. Il nostro codice gestiva percezione, navigazione, controllo e spruzzatura. Puoi vedere il repository qui: Repository GitHub. Il codice specifico che ho scritto si trova in end_detector.py. Ecco la lista della maggior parte dei componenti che componevano il robot:
- Ubuntu 16.04 Xenial
- ROS Kinetic Kame
- Python 2.7
- Nvidia Jetson TX2
- Hokuyo URG-04LX-UG01 Lidar
- Arduino Uno & Mega
- Motori DC, Encoder, Controller dei motori, Batteria, ecc.
Non avevamo un team enorme, ma alcuni nomi si distinguono:
Tyler era il leader e il fondatore del club. Lo rispettavo molto allora e lo rispetto ancora oggi. Zachary era il responsabile dello sviluppo software per il club e mi ha aiutato molto ad imparare lo sviluppo software e ROS, cosa di cui gli sono grato ancora oggi.
C’erano anche altri membri, come Kevin Barnard e Amit Rotem. Ma purtroppo non ricordo i nomi e i contatti di tutti i membri originali dato che sono passati oltre 5 anni da quando il club si è concluso.
La maggior parte dello sviluppo del robot avvenne durante i fine settimana e fino a tarda notte dopo che la maggior parte delle lezioni era terminata. Lavorare su una laurea in ingegneria e su AgBot era molto impegnativo, ma ce l’abbiamo fatta.
Il Viaggio e il Caos
Una parte di tutta questa esperienza che non dimenticherò mai è stato il viaggio in sé. La competizione si tenne a West Lafayette, Indiana, vicino al campus della Purdue University. E l’intera competizione avvenne subito dopo la settimana degli esami finali alle Mines, quindi non avevamo tempo per riprenderci da quella settimana infernale.
Guidammo da Golden, Colorado, fino all’Indiana usando il camion di Tyler per trasportare anche il robot e tutti i nostri attrezzi. La cosa divertente è che iniziammo il viaggio letteralmente un giorno prima della settimana della competizione. Impacchettammo tutto quello che avevamo, il robot, gli attrezzi, le batterie, i computer, tutto, e guidammo da Golden, Colorado, a West Lafayette, Indiana. Sulla carta sono 18 ore di viaggio. Ci vollero invece circa 20 o 22 ore con le pause per il carburante e il bagno.
Tyler guidò tutto il tempo, vivendo a base di bevande Monster Coffee. Un’altra compagna del team, mi scuso ma ho dimenticato il suo nome ma è nelle foto, prese il suo posto a volte. Lungo la strada, cominciò a piovere a dirotto. Dovemmo fermarci in una stazione di servizio chiusa a caso e prendere un telo per proteggere il robot. Era improvvisato, era caos, era robotica universitaria. In qualche modo, ce la facemmo.
Quando arrivammo, montammo il nostro gazebo sul campo e sistemammo tutti gli attrezzi. Io mi concentrai sul finire il codice e farlo girare. Per la maggior parte della competizione, lavorammo principalmente al debug del nostro robot e a farlo funzionare bene, controllando anche le costruzioni interessanti degli altri team.
Quindi abbiamo vinto?
No
Guardando indietro, eravamo solo un gruppo di ragazzi che cercava di costruire qualcosa ben oltre il nostro livello di esperienza. Gli altri team erano su un altro livello. Alcuni provenivano da startup. Alcuni da laboratori di ricerca. Alcuni avevano pieno supporto accademico. Eravamo un piccolo gruppo di studenti universitari che facevano nottate, sperando che Python trasformasse i dati del Lidar in qualcosa di utile.
Il nostro robot aveva dei difetti. Era arrangiato. E onestamente, funzionava a malapena quando arrivammo alla competizione. Molte persone del team cominciarono a mollare quando si resero conto che forse non avremmo finito in tempo. Alcuni non si presentarono nemmeno. Gli esami erano finiti, il robot non era pronto e il morale era piuttosto basso.
Ma alcuni di noi resistettero
Io non mi arresi… Tyler non si arrese… E le persone nella foto, non si arresero neanche loro!
Anche se non vincemmo né avemmo un robot completamente funzionante, non scambierei quell’esperienza con nulla. Ho imparato ROS, il debug dell’hardware, a costruire sistemi sotto pressione, e ho imparato cosa significhi la lealtà. Ho capito quanto sia importante portare le cose a termine.
Riflessione, al 2025
Dopo la stagione 2019, AgBot chiuse. Questo è stato principalmente dovuto all’arrivo del COVID quasi un anno dopo, che fece chiudere tutti i club alle Mines per 1-2 anni e, quando il mondo cominciò a tornare alla “normalità”, mi ero già laureato.
Ora è il 2025 e, guardando indietro ad AgBot, lo vedo come l’inizio di tutto per me. Mi ha dato la mia prima vera esperienza con la robotica e mi ha insegnato come collaborare con un team tecnico. Mi ha messo su un percorso che mi ha portato a opportunità straordinarie.
Da allora, ho lavorato come ingegnere backend presso eBay, distribuendo servizi che ingeriscono milioni di metriche attraverso data center. Ho fondato la mia prima startup, che si concentrava sulla costruzione di test di penetrazione per la cybersecurity automatizzati con AI. Ho lanciato Notify Cyber, che ha raggiunto decine di migliaia di visitatori. Ho scritto software per Docker, Kubernetes, Postgres e infrastrutture AI avanzate.
Ma AgBot rimane ancora una delle migliori esperienze della mia vita. È stato caotico, stressante e a volte sembrava impossibile, ma mi ha insegnato più di qualsiasi corso o tutorial. Ho imparato che anche se non hai il piano perfetto o finanziamenti sufficienti o l’hardware migliore, puoi comunque costruire qualcosa, imparare tantissimo e incontrare persone incredibili lungo la strada.
A tutti i membri del team AgBot 2019, grazie. A quel viaggio in auto del 2019, al telo che abbiamo preso in una stazione di servizio chiusa e alle notti insonni, grazie. Mi avete dato la determinazione per affrontare grandi progetti con fiducia, non importa quanto possano sembrare impossibili.
Risorse e Link
- Sito principale dei club di robotica della Colorado School of Mines
- Base di codice AgBot 2019
- Articolo Purdue AgBot
- Articolo riepilogativo visivo di Purdue
- Articolo DTN Progressive Farmer
- Account Twitter/X di AgBot
- Sito ufficiale di AgBot
- GitHub di Zach
- GitHub di Kevin
- GitHub di Tyler
Galleria Fotografica
Team AgBot delle Mines, noi
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Il nostro robot AgBot
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Video/GIF
![]() |
![]() |
![]() |
![]() |
![]() |
Campi della competizione
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Altre squadre alle competizioni
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
Altre immagini varie
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |




































































