2019 AgBot Herausforderung
East High School
Während meiner Zeit an der East High School in Denver, Colorado (2014-2018), war ich stark in außerschulische Aktivitäten involviert, wobei der einflussreichste der Robotikclub, AngelBotics, war. Erst in meinem zweiten Jahr trat ich bei, da ich zunächst auf Fußball fokussiert war. Der Club nahm hauptsächlich an der FIRST Robotics Competition (FRC) teil, was mir ermöglichte, mechanische und elektrische Ingenieurwissenschaften sowie Programmierung zu erkunden. Durch AngelBotics lernte ich, CAD-Tools, 3D-Drucker und andere Ingenieurausrüstungen zu verwenden und erhielt Einblicke in STEM-Konzepte, die normalerweise Studenten vorbehalten sind. Ursprünglich strebte ich an, Quantenphysiker zu werden, aber meine Erfahrungen in AP Physik und Robotik zeigten mir, dass ich nicht so gut in Physik war, was mich von einem Weg in die Maschinenbauingenieurwissenschaften abbrachte.
Stattdessen fand ich meine Nische in der Programmierung, die mit dem Schreiben von Python-Code für meinen ersten Raspberry Pi begann und durch Java-Projekte in AP Informatik gefestigt wurde. Trotz Schwierigkeiten mit Prüfungen ermutigte mich mein Lehrer, Herr Nagel, Softwareentwicklung zu verfolgen und betonte den Wert von Projekten über Testergebnisse. Dies brachte mich dazu, Informatik als mein Studienfach im College zu wählen, mit dem Traum, Softwareingenieur und schließlich Gründer zu werden.
Obwohl ich aufgrund meines anspruchsvollen Lehrplans und der steilen Lernkurve nicht so stark in AngelBotics involviert war, weckte es dennoch eine lebenslange Leidenschaft für Robotik in mir. Als ich also mit dem College begann, war ich entschlossen, einem Robotikclub an der Hochschule beizutreten und eines Tages ein Unternehmen zu gründen, das reale Probleme mit Robotik löst.
School of Mines
Nach meinem Abschluss an der East High School begann ich mein Bachelorstudium in Informatik an der Colorado School of Mines (2018-2022). Während meines allerersten Semesters schaute ich mir die Robotikclubs an der Mines an und entdeckte eine brandneue Robotikgruppe namens AgBot.
AgBot war ein neuer Robotikclub, der mit dem Ziel gegründet wurde, einen Roboter zu bauen, um an der 2019 agBots Weed and Feed Competition teilzunehmen. Dieser Wettbewerb hatte zwei Hauptherausforderungen:
- Schädling- und Unkrautidentifikation und -beseitigung
- Schaffung neuer Erntemethoden durch Robotik
Unser Team entschied sich, auf die erste Herausforderung zu fokussieren. Es war das erste Mal, dass Mines am agBot-Wettbewerb teilnahm, und es war das erste Mal, dass ein Robotikclub von Mines an etwas Landwirtschaftlichem arbeitete. Das machte das Ganze frisch.
Ich war sofort von dem Projekt angezogen. Meine Familie war seit Generationen in der Landwirtschaft in der Türkei tätig, bis zur Generation meines Vaters. Daher fühlte sich AgBot nah an und verband meine Leidenschaft für Robotik und Programmierung. Die Idee, einen Roboter zu bauen, der Landwirten wie meinen Großeltern helfen könnte, war wirklich aufregend.
Entwicklung
Teil des AgBot-Teams zu sein, ist eine meiner denkwürdigsten College-Erfahrungen. Es war auch eine der härtesten Dinge, an denen ich bis zu diesem Zeitpunkt gearbeitet habe. Dieses Projekt war das erste Mal, dass ich wirklich in Python, Ubuntu und ROS eintauchte. In der FRC war alles in Java, also war das alles Neuland für mich. Ich hatte in der Vergangenheit Python und Ubuntu verwendet, aber ich hatte nie mit ROS gearbeitet. Zu lernen, wie ROS funktionierte, war ein steiler Kampf. Ich wusste damals nicht einmal, was eine Python-Umgebung war.
Ich verbrachte die meiste Zeit damit, einen Lidar dazu zu bringen, verwendbare Daten in einen ROS-Knoten zu senden, den ich schrieb. Meine Aufgabe war es, einen ROS-Knoten namens end_detector zu implementieren, der erkennen konnte, wann der Roboter das Ende einer Pflanzenreihe mit Lidar-Daten erreichte. Es klingt jetzt einfach, aber damals fühlte es sich riesig an.
Es dauerte etwa zwei Wochen Debugging, um den Lidar dazu zu bringen, mit meinem Code zu kommunizieren. Der gesamte Code war entweder in C++ oder Python geschrieben, hauptsächlich in Python. Also war mein Code für diesen Job nur Python. Sobald das funktionierte, begann ich, die Logik mit zufälligen Pflanzenpatches zu testen, die ich auf dem Campus fand. Ich rollte einen Stand, der den Lidar hielt, daran vorbei und schaute, ob der Code erkennen konnte, wann wir das Ende erreicht hatten. Nach vielen Stunden und Debugging bekam ich schließlich alles in meiner Testumgebung zum Laufen. Es war eine andere Geschichte, als wir versuchten, alles zusammenzuführen.
Meine Zeit verbrachte ich hauptsächlich damit, die Hardware und Software miteinander kommunizieren zu lassen. Die eigentliche Logik zur Erkennung von Reihenenden kam an zweiter Stelle. Aber es war eine großartige Lernerfahrung. Ich ging von kaum Verständnis für ROS zu Schreiben und Debuggen von Knoten auf einem Jetson-Board mit Live-Lidar-Daten. Auch während dieser Zeit wechselte ich von hauptsächlich Java als meiner Programmiersprache zu Python. Und bis 2025 habe ich Java für keines meiner Projekte oder arbeitsbezogenen Codebasen wirklich verwendet.
Team und Tech-Stack
Wir betrieben Ubuntu 16.04 mit ROS Kinetic und Python 2.7 auf einem Nvidia Jetson TX2, der mit einem Hokuyo URG 04LX UG01 Lidar verbunden war. Wir hatten Arduino(s) für Sensor-Eingaben wie Ultraschall-Abstandssensoren. Unser Code handhabte Wahrnehmung, Navigation, Steuerung und Sprühen. Sie können das Repository hier sehen: GitHub Repo. Der spezifische Code, den ich schrieb, ist in end_detector.py zu finden. Hier ist die Liste der meisten Komponenten, die den Roboter ausmachten:
- Ubuntu 16.04 Xenial
- ROS Kinetic Kame
- Python 2.7
- Nvidia Jetson TX2
- Hokuyo URG-04LX-UG01 Lidar
- Arduino Uno & Mega
- DC-Motoren, Encoder, Motorsteuerungen, Batterie usw.
Wir hatten kein großes Team, aber einige Namen stechen hervor:
Tyler war der Leiter und Gründer des Clubs. Ich respektierte ihn damals sehr und tue es auch heute noch. Zachary war der Leiter der Softwareentwicklung für den Club und half mir, viel über Softwareentwicklung und ROS zu lernen, wofür ich bis heute dankbar bin.
Es gab auch andere Mitglieder, wie Kevin Barnard und Amit Rotem. Aber ich erinnere mich leider nicht an die Namen und Kontakte aller ursprünglichen Mitglieder, da es über 5 Jahre her ist, seit der Club abgeschlossen wurde.
Die meiste Entwicklung des Roboters fand an den Wochenenden und spät in der Nacht statt, nachdem die meisten unserer Klassen beendet waren. An einem Ingenieurstudium und AgBot zu arbeiten, war sehr anstrengend, aber wir haben es durchgestanden.
Die Reise und das Chaos
Ein Teil dieser ganzen Erfahrung, den ich nie vergessen werde, war die Reise selbst. Der Wettbewerb fand in West Lafayette, Indiana, in der Nähe des Campus der Purdue University statt. Und der gesamte Wettbewerb fand direkt nach der Prüfungswoche an der Mines statt, sodass wir keine Zeit hatten, uns von dieser Höllenwoche zu erholen.
Wir fuhren mit Tylers Truck von Golden, Colorado, nach Indiana, um den Roboter und all unsere Werkzeuge zu transportieren. Das Lustige daran ist, dass wir die Fahrt buchstäblich einen Tag vor der Wettbewerbswoche begannen. Wir packten alles, was wir hatten: den Roboter, die Werkzeuge, die Batterien, die Computer, alles, und fuhren von Golden, Colorado, nach West Lafayette, Indiana. Das ist eine 18-stündige Fahrt auf dem Papier. Es dauerte näher an 20 oder 22 Stunden mit Tank- und Toilettenpausen.
Tyler fuhr die ganze Zeit und lebte von Coffee Monster Getränken. Ein weiteres Teammitglied, entschuldige, ich habe ihren Namen vergessen, aber sie ist auf den Fotos, übernahm manchmal für ihn. Unterwegs begann es zu regnen. Wir mussten an einer zufälligen geschlossenen Tankstelle anhalten und eine Plane holen, um den Roboter zu schützen. Es war chaotisch, es war ein Durcheinander, es war College-Robotik. Irgendwie schafften wir es.
Als wir ankamen, richteten wir unser Zelt auf dem Feld ein und stellten all unsere Werkzeuge auf. Ich konzentrierte mich darauf, den Code fertigzustellen und ihn zum Laufen zu bringen. Während des gesamten Wettbewerbs arbeiteten wir hauptsächlich daran, unseren Roboter zu debuggen und ihn zum Laufen zu bringen, während wir auch die coolen Roboterbauten der anderen Teams betrachteten.
Haben wir gewonnen?
Nein
Rückblickend waren wir nur eine Gruppe von Kindern, die versuchten, etwas zu bauen, das weit über unserem Erfahrungsniveau lag. Die anderen Teams waren auf einem ganz anderen Niveau. Einige kamen von Startups. Einige kamen aus Forschungslabors. Einige hatten volle akademische Unterstützung. Wir waren eine kleine Gruppe von Studenten, die durchmachten, in der Hoffnung, dass Python Lidar-Daten in etwas Nützliches umwandeln würde.
Unser Roboter war fehlerhaft. Er war chaotisch. Und ehrlich gesagt, er funktionierte kaum, als wir zum Wettbewerb kamen. Viele Leute im Team hörten auf, als sie merkten, dass wir möglicherweise nicht rechtzeitig fertig werden würden. Einige erschienen nicht einmal. Die Prüfungen waren vorbei, der Roboter war nicht bereit, und die Moral war ziemlich niedrig.
Aber einige von uns hielten durch.
Ich gab nicht auf… Tyler gab nicht auf… Und die Leute auf dem Foto, sie gaben auch nicht auf!
Auch wenn wir nicht gewonnen haben oder sogar einen voll funktionsfähigen Roboter hatten, würde ich diese Erfahrung gegen nichts eintauschen. Ich lernte über ROS, Hardware-Debugging, Systeme unter Druck zu bauen, und ich lernte über Loyalität. Ich erkannte, wie wichtig es ist, Dinge durchzuziehen.
Reflexion, Stand 2025
Nach der Saison 2019 stellte AgBot den Betrieb ein. Dies war hauptsächlich darauf zurückzuführen, dass COVID fast ein Jahr später einsetzte, was dazu führte, dass alle Clubs an der Mines für 1-2 Jahre geschlossen wurden, und als die Welt begann, wieder “normal” zu werden, hatte ich meinen Abschluss gemacht.
Es ist jetzt 2025, und wenn ich auf AgBot zurückblicke, sehe ich es als den Anfang von allem für mich. Es gab mir meine erste echte Erfahrung mit Robotik und lehrte mich, wie man mit einem technischen Team zusammenarbeitet. Es brachte mich auf einen Weg, der mich zu erstaunlichen Möglichkeiten geführt hat.
Seitdem habe ich als Backend-Entwickler bei eBay gearbeitet und Dienste bereitgestellt, die Millionen von Metriken über Rechenzentren erfassen. Ich gründete mein erstes Startup, das sich auf den Aufbau von KI-automatisierten Cybersecurity-Penetrationstests konzentrierte. Ich startete Notify Cyber, das Zehntausende von Besuchern erreichte. Ich habe Software für Docker, Kubernetes, Postgres und fortschrittliche KI-Infrastruktur geschrieben.
Aber AgBot sticht immer noch als eine der besten Erfahrungen meines Lebens hervor. Es war chaotisch, stressig und fühlte sich manchmal unmöglich an, aber es lehrte mich mehr, als jede Klasse oder jedes Tutorial jemals könnte. Ich lernte, dass man auch ohne den perfekten Plan, ausreichende Finanzierung oder die beste Hardware etwas aufbauen, eine Menge lernen und auf dem Weg unglaubliche Menschen treffen kann.
An alle aus dem AgBot-Team 2019, danke. An diese 2019er Roadtrip, die Plane, die wir an einer geschlossenen Tankstelle griffen, und die schlaflosen Nächte, danke. Ihr habt mir den Mut gegeben, große Projekte mit Zuversicht zu verfolgen, egal wie unmöglich sie erscheinen.
Ressourcen und Links
- Hauptwebsite der Robotics Clubs der Colorado School of Mines
- AgBot 2019 Code Basis
- Purdue AgBot Artikel
- Purdue Visual Recap Artikel
- DTN Progressive Farmer Artikel
- AgBots Twitter/X-Konto
- AgBots offizielle Website
- Zachs GitHub
- Kevins GitHub
- Tylers GitHub
Fotogalerie
Mine’s AgBot Team, Wir
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Unser AgBot-Roboter
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Videos/GIFs
![]() |
![]() |
![]() |
![]() |
![]() |
Wettbewerbsfelder
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Andere Teams bei den Wettbewerben
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
Andere zufällige Bilder
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |




































































