2019 AgBot Challenge

East High School

Tijdens mijn tijd op East High School in Denver, Colorado (2014-2018), was ik intensief betrokken bij naschoolse activiteiten, waarvan de meest impactvolle de robotica-club AngelBotics was. Het was pas in mijn tweede jaar dat ik me aansloot, doordat mijn eerste focus op voetbal lag. De club deed voornamelijk mee aan de FIRST Robotics Competition (FRC), waardoor ik mechanische en elektrotechniek kon verkennen, evenals programmeren. Via AngelBotics leerde ik CAD-tools, 3D-printers en andere technische apparatuur gebruiken, en kreeg ik blootstelling aan STEM-concepten die doorgaans zijn voorbehouden aan universiteitsstudenten. Aanvankelijk had ik de ambitie om Quantumfysicus te worden, maar mijn ervaringen in AP Physics en robotica lieten me zien dat ik niet zo goed was in natuurkunde en stuurden me op mijn beurt weg van een traject in de werktuigbouwkunde.

In plaats daarvan vond ik mijn niche in programmeren, wat begon met het schrijven van Python-code voor mijn eerste Raspberry Pi en werd verankerd via Java-projecten in AP Computer Science. Ondanks dat ik moeite had met examens, moedigde mijn docent, meneer Nagel, me aan om softwareontwikkeling te volgen, waarbij hij de waarde van projecten boven testscores benadrukte. Dit zette me ertoe aan om me op computerwetenschappen te richten als mijn studie in de universiteit, met de droom om software-ingenieur te worden en uiteindelijk oprichter te worden in mijn carrière.

Hoewel ik niet zo betrokken was bij AngelBotics vanwege mijn veeleisende studiebelasting en de steile leercurve, wekte het alsnog een levenslange passie voor robotica. Dus toen ik aan de universiteit begon, was ik vastbesloten om lid te worden van een universiteitsrobotica-club en op een dag een bedrijf op te bouwen dat echte problemen oplost met robotica.

School of Mines

Na mijn afstuderen aan East High School begon ik aan mijn bachelor in Computer Science aan de Colorado School of Mines (2018-2022). Tijdens mijn allereerste semester bekeek ik de robotica-clubs van Mines en ontdekte ik een gloednieuwe robotica-groep genaamd AgBot.

AgBot was een nieuwe robotica-club die was opgericht met als doel een robot te bouwen om mee te doen aan de 2019 agBots Weed and Feed Competition. Deze competitie had twee hoofdopdrachten:

  1. Identificatie en bestrijding van plagen en onkruid
  2. Het creëren van nieuwe oogstmethoden via robotica

Ons team koos ervoor zich op de eerste uitdaging te richten. Het was de eerste keer dat Mines deelnam aan de agBot-competitie, en het was de eerste keer dat een robotica-club van Mines aan iets landbouwgerelateerds werkte. Dat maakte het hele gebeuren fris.

Het project trok me meteen aan. Mijn familie waren generaties lang boeren in Turkije, tot aan de generatie van mijn vader. Dus AgBot voelde vertrouwd aan en sloot goed aan bij mijn passie voor robotica en programmeren. Het idee om een robot te bouwen die boeren zoals mijn grootouders zou kunnen helpen, was echt spannend.

Ontwikkeling

Deel uitmaken van het AgBot-team is een van mijn meest memorabele ervaringen van mijn studententijd. Het was ook een van de moeilijkste dingen waaraan ik tot dat punt had gewerkt. Dit project was de eerste keer dat ik me echt verdiepte in Python, Ubuntu en ROS. In FRC was alles in Java, dus dit was voor mij allemaal nieuw terrein. Ik had Python en Ubuntu in het verleden gebruikt, maar ik had ROS nog nooit aangeraakt. Leren hoe ROS werkte was een zware strijd. Ik wist toen niet eens wat een Python-omgeving was.

Ik bracht het grootste deel van mijn tijd door met proberen een Lidar bruikbare gegevens te laten sturen naar een ROS-node waaraan ik werkte. Mijn taak was het implementeren van een ROS-node genaamd end_detector die kon detecteren wanneer de robot het einde van een gewasrij bereikte op basis van Lidar-gegevens. Nu klinkt het eenvoudig, maar toen voelde het enorm.

Het kostte me ongeveer twee weken debuggen om de Lidar met mijn code te laten communiceren. De hele code was geschreven in C++ of Python, voornamelijk Python. Dus mijn code was voor deze taak gewoon Python. Zodra dat werkte, begon ik de logica te testen met willekeurige stukken planten die ik op de campus vond. Ik reed de standaard met de Lidar erlangs en keek of de code kon aangeven wanneer we het einde bereikten. Na vele uren en debugging kreeg ik uiteindelijk alles aan het werk, in elk geval in mijn testomgeving. Toen we alles probeerden samen te voegen, lag dat verhaal anders.

Ik was vooral bezig met het hardware en software met elkaar laten communiceren. De daadwerkelijke logica voor het detecteren van rijeinden kwam op de tweede plaats. Maar het was een geweldige leerervaring. Ik ging van nauwelijks begrip van ROS naar het schrijven en debuggen van nodes op een Jetson-bord met live Lidar-gegevens. Het was ook in deze periode dat ik verschoof van vooral standaard Java als mijn programmeertaal naar in plaats daarvan standaard Python. En in 2025 heb ik Java nog altijd nauwelijks gebruikt voor een van mijn projecten of werkgerelateerde codebases.

Team en techstack

We draaiden Ubuntu 16.04 met ROS Kinetic en Python 2.7 op een Nvidia Jetson TX2 die verbonden was met een Hokuyo URG 04LX UG01 Lidar. We hadden Arduino(’s) voor sensorinvoer zoals ultrasone afstandsmeters. Onze code verzorgde waarneming, navigatie, besturing en besproeiing. Je kunt de repository hier bekijken: GitHub Repo. De specifieke code die ik schreef, is te vinden in end_detector.py. Hier is de lijst van de meeste componenten waaruit de robot bestond:

  • Ubuntu 16.04 Xenial
  • ROS Kinetic Kame
  • Python 2.7
  • Nvidia Jetson TX2
  • Hokuyo URG-04LX-UG01 Lidar
  • Arduino Uno & Mega
  • DC-motoren, encoders, motorcontrollers, batterij, enz.

We hadden geen enorm team, maar een paar namen springen eruit:

Tyler was de leider en oprichter van de club. Ik respecteerde hem toen heel erg en doe dat vandaag nog steeds. Zachary was de leiding van de softwareontwikkeling voor de club en hielp me veel over softwareontwikkeling en ROS te leren, waarvoor ik tot op de dag van vandaag dankbaar ben.

Er waren ook andere leden, zoals Kevin Barnard en Amit Rotem. Maar helaas herinner ik me de namen en contactgegevens van niet alle oorspronkelijke leden, aangezien het alweer meer dan 5 jaar geleden is dat de club werd beëindigd.

Het grootste deel van de ontwikkeling van de robot vond plaats in het weekend en tot diep in de nacht, nadat de meeste van onze lessen waren afgelopen. Werken aan een ingenieursopleiding en AgBot was erg zwaar, maar we hebben het volgehouden.

De reis en de chaos

Een onderdeel van deze hele ervaring dat ik nooit zal vergeten, was de reis zelf. De competitie werd gehouden in West Lafayette, Indiana, dicht bij de campus van Purdue University. En de hele competitie vond plaats direct nadat de tentamenweek bij Mines was afgelopen, dus we hadden geen tijd om te herstellen van die helse week.

We reden van Golden, Colorado naar Indiana met Tyler’s truck om ook de robot en al onze gereedschappen te vervoeren. Het grappige is echter dat we letterlijk één dag voor de competitieweek aan de rit begonnen. We pakten alles in wat we hadden, de robot, het gereedschap, de batterijen, de computers, alles, en reden van Golden, Colorado naar West Lafayette, Indiana. Dat is op papier een rit van 18 uur. Uiteindelijk duurde het voor ons dichter bij de 20 of 22 uur, inclusief tank- en toiletpauzes.

Tyler reed de hele tijd en leefde op Coffee Monster-drankjes. Een andere teamgenoot, sorry, ik ben haar naam vergeten maar ze staat op de foto’s, nam het soms van hem over. Onderweg begon het enorm te regenen. We moesten stoppen bij een willekeurig gesloten benzinestation en een zeil pakken om de robot te beschermen. Het was prutswerk, het was chaos, het was robotica op de universiteit. Op de een of andere manier hebben we het gehaald.

Toen we aankwamen, zetten we onze tent op het veld op en zetten we al onze gereedschappen klaar. Ik concentreerde me op het afmaken van de code en ervoor zorgen dat die draaide. Tijdens het grootste deel van de competitie werkten we vooral aan het debuggen van onze robot en ervoor zorgen dat hij goed werkte, terwijl we ook de coole robotbouwsels van de andere teams bekeken.

Dus hebben we gewonnen?

Nee

Als ik erop terugkijk, waren we gewoon een stel studenten die iets probeerden te bouwen dat ver boven ons ervaringsniveau lag. De andere teams zaten op een heel ander niveau. Sommige waren afkomstig van startups. Sommige van onderzoekslabs. Sommige hadden volledige academische ondersteuning. Wij waren een kleine groep bachelorstudenten die nachten doorhaalden, hopend dat Python Lidar-gegevens in iets bruikbaars zou veranderen.

Onze robot had gebreken. Hij was prutswerk. En eerlijk gezegd werkte hij nauwelijks tegen de tijd dat we bij de competitie aankwamen. Veel mensen in het team begonnen af te haken toen ze beseften dat we het misschien niet op tijd zouden afmaken. Sommigen kwamen zelfs helemaal niet opdagen. De tentamens waren voorbij, de robot was nog niet klaar, en het moreel was behoorlijk laag.

Maar een paar van ons hielden vol

Ik gaf niet op… Tyler gaf niet op… En de mensen op de foto gaven ook niet op!

Hoewel we niet gewonnen hebben en zelfs geen volledig functionele robot hadden, zou ik die ervaring voor niets willen ruilen. Ik leerde over ROS, hardware-debugging, systemen bouwen onder druk, en ik leerde over loyaliteit. Ik besefte hoe belangrijk het is om dingen af te maken.

Reflectie, anno 2025

Na het seizoen van 2019 sloot AgBot de deuren. Dit kwam voornamelijk doordat COVID bijna een jaar later toesloeg, waardoor alle clubs bij Mines 1-2 jaar moesten sluiten en tegen de tijd dat de wereld weer begon terug te keren naar “normal” was ik afgestudeerd.

Het is nu 2025, en als ik terugkijk op AgBot, zie ik het als het begin van alles voor mij. Het gaf me mijn eerste echte ervaring met robotica en leerde me hoe ik met een technisch team moest samenwerken. Het zette me op een pad dat heeft geleid tot geweldige kansen.

Sindsdien heb ik gewerkt als backend engineer bij eBay, waar ik services heb uitgerold die miljoenen metrics over datacenters heen verwerken. Ik richtte mijn eerste startup op, die zich richtte op het bouwen van AI-geautomatiseerde penetratietests voor cyberbeveiliging. Ik lanceerde Notify Cyber, dat tienduizenden bezoekers bereikte. Ik heb software geschreven voor Docker, Kubernetes, Postgres en geavanceerde AI-infrastructuur.

Maar AgBot springt nog steeds eruit als een van de beste ervaringen van mijn leven. Het was chaotisch, stressvol en voelde soms onmogelijk, maar het leerde me meer dan welke les of tutorial dan ook ooit had kunnen doen. Ik leerde dat zelfs als je niet het perfecte plan hebt, of genoeg financiering, of de beste hardware, je nog steeds iets kunt bouwen, enorm veel kunt leren en onderweg ongelooflijke mensen kunt ontmoeten.

Aan iedereen van het AgBot-team van 2019, bedankt. Voor die roadtrip in 2019, de zeil die we bij een gesloten tankstation hebben gepakt, en de slapeloze nachten, bedankt. Jullie gaven me de doorzettingsvermogen om grote projecten met vertrouwen na te streven, hoe onmogelijk ze ook lijken.

Fotogalerij

Mijn AgBot-team, wij

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

Onze AgBot-robot

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

Video’s/GIF’s

Competitieterreinen

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

Andere teams op de competities

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

Andere willekeurige afbeeldingen

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