2019 AgBot Challenge
Східна середня школа
Під час мого навчання в Східній середній школі у Денвері, штат Колорадо (2014-2018), я активно брав участь у позакласних заходах, найбільш впливовим з яких був робототехнічний клуб AngelBotics. Я приєднався до клубу лише у свій другий рік навчання, оскільки спочатку зосередився на футболі. Клуб переважно брав участь у FIRST Robotics Competition (FRC), що дозволило мені дослідити механічну та електричну інженерію, а також програмування. Завдяки AngelBotics я навчився користуватися CAD-інструментами, 3D-принтерами та іншим інженерним обладнанням, отримавши досвід у STEM-концепціях, які зазвичай зарезервовані для студентів коледжів. Спочатку я мріяв стати квантовим фізиком, але мій досвід у AP Physics та робототехніці показав мені, що я не дуже добре розумію фізику, і, в свою чергу, відвернув мене від шляху механічної інженерії.
Натомість я знайшов своє покликання в програмуванні, яке почалося з написання коду на Python для мого першого Raspberry Pi і закріпилося через проекти на Java в AP Computer Science. Незважаючи на труднощі з іспитами, мій вчитель, пан Нагель, заохочував мене займатися розробкою програмного забезпечення, підкреслюючи цінність проектів над оцінками. Це спонукало мене зосередитися на комп’ютерних науках як на моїй спеціальності в коледжі з мрією стати програмістом і зрештою засновником у своїй кар’єрі.
Хоча я не був дуже залучений до AngelBotics через вимогливі навчальні курси та круту криву навчання, це все ж таки запалило в мені пристрасть до робототехніки на все життя. Тож, коли я почав коледж, я був рішуче налаштований приєднатися до коледжного робототехнічного клубу і одного дня створити компанію, яка вирішує реальні проблеми за допомогою робототехніки.
Школа гірничих наук
Після закінчення Східної середньої школи я розпочав навчання на бакалавраті з комп’ютерних наук у Школі гірничих наук Колорадо (2018-2022). Під час мого першого семестру я ознайомився з робототехнічними клубами Mines і виявив нову групу робототехніки під назвою AgBot.
AgBot був новим робототехнічним клубом, створеним з метою побудувати робота для участі в 2019 agBots Weed and Feed Competition. Ця конкуренція мала дві основні задачі:
- Ідентифікація та знищення шкідників і бур’янів
- Створення нових методів збору врожаю за допомогою робототехніки
Наша команда вирішила зосередитися на першій задачі. Це був перший раз, коли Mines брала участь у конкурсі agBot, і це був перший раз, коли клуб робототехніки Mines працював над чимось, пов’язаним з сільським господарством. Це зробило все відчуття новим.
Я відразу ж зацікавився проектом. Моя родина була фермерами в Туреччині протягом поколінь, до покоління мого батька. Тож 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 тощо.
У нас не було великої команди, але кілька імен виділяються:
Tyler був лідером і засновником клубу. Я дуже його поважав тоді і досі поважаю. Zachary був керівником розробки програмного забезпечення клубу і допоміг мені багато чого навчитися про розробку програмного забезпечення та ROS, за що я вдячний до цього дня.
Були й інші учасники, такі як Kevin Barnard та Amit Rotem. Але, на жаль, я не пам’ятаю імен та контактів усіх оригінальних учасників, оскільки минуло більше 5 років з моменту, коли клуб завершив свою роботу.
Більшість розробки робота відбувалася під час вихідних і пізно вночі після того, як більшість наших занять закінчувалися. Працювати над інженерною спеціальністю та AgBot було дуже важко, але ми впоралися.
Подорож і хаос
Одна частина цього всього досвіду, яку я ніколи не забуду, - це сама подорож. Конкурс проходив у Вест-Лафайєті, штат Індіана, неподалік від кампусу Університету Пердью. І весь конкурс відбувся відразу після того, як закінчився тиждень іспитів у Mines, тож у нас не було часу відновитися після цього пекельного тижня.
Ми їхали з Голдена, штат Колорадо, до Індіани на вантажівці Тайлера, щоб також перевезти робота та всі наші інструменти. Смішно те, що ми почали поїздку буквально за день до тижня конкурсу. Ми упакували все, що мали: робота, інструменти, акумулятори, комп’ютери, все, і поїхали з Голдена, штат Колорадо, до Вест-Лафайєта, штат Індіана. Це 18-годинна поїздка на папері. На практиці нам знадобилося близько 20 або 22 годин з урахуванням зупинок на бензин і туалет.
Tyler водив увесь час, живлячись напоями Coffee Monster. Інша учасниця команди, вибачте, я забув її ім’я, але вона є на фотографіях, іноді брала на себе керування. По дорозі почав йти сильний дощ. Нам довелося зупинитися на випадковій закритій автозаправці і взяти тент, щоб захистити робота. Це було незручно, це був хаос, це була коледжна робототехніка. Якось ми дісталися.
Коли ми приїхали, ми встановили наш навіс на полі і розклали всі наші інструменти. Я зосередився на завершенні коду та його запуску. Протягом більшої частини конкурсу ми переважно працювали над налагодженням нашого робота та намагалися, щоб він працював, а також перевіряли інші команди з їхніми класними роботами.
Тож, чи виграли ми?
Ні
Оглядаючись назад, ми були просто купкою дітей, які намагалися побудувати щось, що було значно вище нашого рівня досвіду. Інші команди були на зовсім іншому рівні. Деякі були з стартапів. Деякі були з дослідницьких лабораторій. Деякі мали повну академічну підтримку. Ми були маленькою групою студентів, які не спали ночами, сподіваючись, що Python перетворить дані Lidar на щось корисне.
Наш робот був недосконалим. Він був незручним. І, чесно кажучи, він ледве працював до моменту, коли ми дісталися до конкурсу. Багато людей у команді почали виходити, коли зрозуміли, що ми, можливо, не встигнемо закінчити вчасно. Деякі навіть не з’явилися. Іспити закінчилися, робот не був готовий, і мораль була досить низькою.
Але кілька з нас витримали
Я не здався… Тайлер не здався… І люди на фотографії також не здалися!
Навіть якщо ми не виграли і навіть не мали повністю функціонального робота, я б не поміняв цей досвід ні на що. Я навчився про ROS, налагодження апаратного забезпечення, створення систем під тиском, і я навчився про лояльність. Я зрозумів, як важливо доводити справи до кінця.
Роздуми, станом на 2025 рік
Після сезону 2019 року AgBot закрився. Це сталося переважно через COVID, який почався майже через рік, що призвело до закриття всіх клубів у Mines на 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 Університету Колорадо, Ми
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Наш робот AgBot
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Відео/GIF
![]() |
![]() |
![]() |
![]() |
![]() |
Поля змагань
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Інші команди на змаганнях
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
Інші випадкові зображення
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |




































































