2019 AgBot Challenge
Восточная Средняя Школа
Во время моего обучения в Восточной Средней Школе в Денвере, штат Колорадо (2014-2018), я активно участвовал в внеклассных мероприятиях, наиболее значимым из которых был клуб робототехники AngelBotics. Я присоединился к клубу только на втором курсе, изначально сосредоточившись на футболе. Клуб в основном участвовал в Соревнованиях по робототехнике FIRST (FRC), что дало мне возможность изучить механическую и электрическую инженерию, а также программирование. Через AngelBotics я научился использовать инструменты CAD, 3D-принтеры и другое инженерное оборудование, получив представление о концепциях STEM, которые обычно зарезервированы для студентов колледжа. Изначально стремясь стать квантовым физиком, мой опыт в AP Physics и робототехнике показал мне, что я не так хорош в физике, и в итоге отвел меня от пути механической инженерии.
Вместо этого я нашел свою нишу в программировании, которое началось с написания кода на Python для моего первого Raspberry Pi и было закреплено через проекты на Java в AP Computer Science. Несмотря на трудности с экзаменами, мой учитель, мистер Нагель, поощрял меня заниматься разработкой программного обеспечения, подчеркивая ценность проектов выше оценок. Это побудило меня сосредоточиться на компьютерных науках как на моей специальности в колледже с мечтой стать инженером-программистом и в конечном итоге основателем в своей карьере.
Хотя я не так активно участвовал в AngelBotics из-за сложной учебной нагрузки и крутой кривой обучения, это все равно разожгло во мне страсть к робототехнике на всю жизнь. Поэтому, когда я начал колледж, я был полон решимости присоединиться к клубу робототехники колледжа и однажды создать компанию, которая решает реальные проблемы с помощью робототехники.
Школа Минес
После окончания Восточной Средней Школы я начал обучение на бакалавриате по компьютерным наукам в Школе Минес (2018-2022). В течение моего первого семестра я ознакомился с клубами робототехники Минес и обнаружил совершенно новую группу робототехники под названием AgBot.
AgBot был новым клубом робототехники, созданным с целью построить робота для участия в Соревновании по борьбе с сорняками и удобрениями AgBots 2019. Это соревнование имело две основные задачи:
- Идентификация и уничтожение вредителей и сорняков
- Создание новых методов сбора урожая с помощью робототехники
Наша команда решила сосредоточиться на первой задаче. Это был первый раз, когда Минес участвовал в соревновании agBot, и это был первый раз, когда клуб робототехники Минес работал над чем-то, связанным с сельским хозяйством. Это сделало все это свежим.
Я был немедленно привлечен к проекту. Моя семья была фермерами в Турции на протяжении поколений, вплоть до поколения моего отца. Поэтому AgBot казался близким к дому, связывая мою страсть к робототехнике и программированию. Идея построить робота, который мог бы помочь фермерам, как мои бабушка и дедушка, была действительно захватывающей.
Разработка
Быть частью команды AgBot — один из самых запоминающихся моментов моего колледжа. Это также было одно из самых сложных дел, над которыми я работал до этого момента. Этот проект был первым разом, когда я действительно погрузился в Python, Ubuntu и ROS. В FRC все было на Java, так что это была совершенно новая территория для меня. Я использовал Python и Ubuntu в прошлом, но никогда не касался ROS. Изучение того, как работает ROS, было настоящей битвой. Я даже не знал, что такое окружение Python в то время.
Я провел большую часть своего времени, пытаясь заставить Lidar отправлять полезные данные в узел ROS, который я писал. Моя задача заключалась в реализации ROS Node под названием end_detector, который мог бы обнаруживать, когда робот достигал конца ряда культур, используя данные Lidar. Это сейчас звучит просто, но тогда это казалось огромным.
Мне потребовалось около двух недель отладки, чтобы заставить Lidar взаимодействовать с моим кодом. Весь код был написан либо на C++, либо на Python, в основном на Python. Так что мой код был просто Python для этой задачи. Как только это сработало, я начал тестировать логику, используя случайные участки растений, которые я нашел на кампусе. Я катил стойку с Lidar мимо них и смотрел, может ли код определить, когда мы достигли конца. После многих часов и отладки я в конечном итоге заставил все работать, по крайней мере, в моей тестовой среде. Это была другая история, когда мы пытались объединить все вместе.
Мое время в основном уходило на то, чтобы заставить аппаратное и программное обеспечение взаимодействовать друг с другом. Фактическая логика для обнаружения концов рядов шла второй. Но это был отличный опыт обучения. Я прошел путь от едва понимающего ROS до написания и отладки узлов на плате Jetson с живыми данными Lidar. Также в это время я переключился с преимущественного использования Java как моего языка программирования на предпочтительное использование Python. И, по состоянию на 2025 год, я еще не использовал Java для каких-либо своих проектов или рабочих кодовых баз.
Команда и Технологический Стек
Мы использовали Ubuntu 16.04 с ROS Kinetic и Python 2.7 на Nvidia Jetson TX2, который взаимодействовал с Hokuyo URG 04LX UG01 Lidar. У нас были Arduino для ввода данных с датчиков, таких как ультразвуковые дальномеры. Наш код обрабатывал восприятие, навигацию, управление и распыление. Вы можете увидеть репозиторий здесь: GitHub Repo. Конкретный код, который я написал, можно найти в end_detector.py. Вот список большинства компонентов, которые составили робота:
- Ubuntu 16.04 Xenial
- ROS Kinetic Kame
- Python 2.7
- Nvidia Jetson TX2
- Hokuyo URG-04LX-UG01 Lidar
- Arduino Uno & Mega
- DC Motors, Encoders, Motor Controllers, Battery и т.д.
У нас не было большой команды, но несколько имен выделяются:
Тайлер был лидером и основателем клуба. Я очень уважал его тогда и уважаю до сих пор. Закари был руководителем разработки программного обеспечения клуба и помог мне многому научиться в области разработки программного обеспечения и ROS, за что я благодарен до сих пор.
Были и другие участники, такие как Kevin Barnard и Амит Ротем. Но, к сожалению, я не помню имена и контакты всех первоначальных участников, так как прошло более 5 лет с тех пор, как клуб завершил свою работу.
Большая часть разработки робота происходила в выходные и поздно ночью после того, как большинство наших занятий заканчивались. Работа над инженерной степенью и AgBot была очень утомительной, но мы справились с этим.
Поездка и Хаос
Одна часть этого всего опыта, которую я никогда не забуду, — это сама поездка. Соревнование проходило в Уэст-Лафайете, штат Индиана, недалеко от кампуса Университета Пердью. И все соревнование проходило сразу после того, как закончилась неделя финальных экзаменов в Минес, так что у нас не было времени восстановиться после этой адской недели.
Мы ехали из Голдена, штат Колорадо, в Индиану на грузовике Тайлера, чтобы перевезти робота и все наши инструменты. Забавное дело, что мы начали поездку буквально за день до недели соревнований. Мы упаковали все, что у нас было: робота, инструменты, батареи, компьютеры, все, и поехали из Голдена, штат Колорадо, в Уэст-Лафайет, штат Индиана. Это 18-часовая поездка на бумаге. На самом деле нам потребовалось около 20 или 22 часов с учетом остановок на бензин и туалет.
Тайлер вел всю дорогу, питаясь напитками Coffee Monster. Другой участник команды, извините, я забыл ее имя, но она на фотографиях, иногда подменяла его. По пути начался сильный дождь. Нам пришлось остановиться на случайной закрытой автозаправке и взять брезент, чтобы защитить робота. Это было неуклюже, это был хаос, это была студенческая робототехника. Тем не менее, мы справились.
Когда мы прибыли, мы установили наш навес на поле и разложили все наши инструменты. Я сосредоточился на завершении кода и его запуске. В течение большей части соревнования мы в основном работали над отладкой нашего робота и его хорошей работой, а также проверяли крутые сборки роботов других команд.
Так Мы Выиграли?
Нет
Оглядываясь назад, мы были просто кучкой детей, пытающихся построить что-то, что было далеко за пределами нашего уровня опыта. Другие команды были на совершенно другом уровне. Некоторые были из стартапов. Некоторые были из исследовательских лабораторий. Некоторые имели полную академическую поддержку. Мы были небольшой группой студентов, которые не спали ночами, надеясь, что Python превратит данные Lidar во что-то полезное.
Наш робот был несовершенен. Он был неуклюжим. И, честно говоря, он едва работал к моменту, когда мы прибыли на соревнование. Многие участники команды начали выходить, когда поняли, что мы, возможно, не успеем закончить вовремя. Некоторые даже не пришли. Финальные экзамены закончились, робот не был готов, и мораль была довольно низкой.
Но несколько из нас остались
Я не сдался… Тайлер не сдался… И люди на фотографии тоже не сдались!
Несмотря на то, что мы не выиграли и даже не имели полностью функционального робота, я бы не променял этот опыт ни на что. Я узнал о ROS, отладке аппаратного обеспечения, создании систем под давлением, и я узнал о преданности. Я осознал, как важно доводить дела до конца.
Рефлексия, на 2025 год
После сезона 2019 года AgBot закрылся. Это было в основном связано с тем, что COVID начался почти через год, что привело к закрытию всех клубов в Минес на 1-2 года, и к тому времени, когда мир начал возвращаться к “нормальной” жизни, я закончил учебу.
Сейчас 2025 год, и, оглядываясь на AgBot, я вижу в этом начало всего для меня. Он дал мне мой первый настоящий опыт в робототехнике и научил меня сотрудничать с технической командой. Он поставил меня на путь, который привел к удивительным возможностям.
С тех пор я работал в качестве бэкенд-инженера в eBay, развертывая сервисы, которые обрабатывают миллионы метрик в дата-центрах. Основал свой первый стартап, который сосредоточился на создании автоматизированного тестирования на проникновение в кибербезопасности с использованием ИИ. Запустил Notify Cyber, который привлек десятки тысяч посетителей. Я написал программное обеспечение для Docker, Kubernetes, Postgres и продвинутой инфраструктуры ИИ.
Но AgBot все еще выделяется как один из лучших опытов в моей жизни. Это было хаотично, стрессово и иногда казалось невозможным, но он научил меня больше, чем любой класс или учебник когда-либо мог бы. Я узнал, что даже если у вас нет идеального плана или достаточного финансирования или лучшего оборудования, вы все равно можете создать что-то, многому научиться и встретить невероятных людей на этом пути.
Всем из команды AgBot 2019 года, спасибо. За ту поездку в 2019 году, за брезент, который мы взяли на закрытой автозаправке, и за бессонные ночи, спасибо. Вы дали мне стойкость, чтобы с уверенностью заниматься большими проектами, независимо от того, насколько невозможными они кажутся.
Ресурсы и ссылки
- Основной сайт клубов робототехники Школы горного дела Колорадо
- Кодовая база AgBot 2019
- Статья Purdue AgBot
- Статья визуального резюме Purdue
- Статья DTN Progressive Farmer
- Twitter/X аккаунт AgBot
- Официальный сайт AgBot
- GitHub Зака
- GitHub Кевина
- GitHub Тайлера
Фотогалерея
Команда AgBot из Mines, Мы
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Наш робот AgBot
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Видео/GIF
![]() |
![]() |
![]() |
![]() |
![]() |
Поля соревнований
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Другие команды на соревнованиях
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
Другие случайные изображения
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |




































































