2019 AgBot Yarışması

Doğu Lisesi

Denver, Colorado’daki Doğu Lisesinde (2014-2018) geçirdiğim süre boyunca, en etkili olanı robotik kulübü AngelBotics ile birlikte birçok okul sonrası etkinliğe katıldım. İlk başta futbol odaklı olduğum için ikinci sınıfımda katıldım. Kulüp esas olarak FIRST Robotics Competition (FRC) yarışmalarına katılıyordu ve bu bana mekanik ve elektrik mühendisliği ile programlama alanlarını keşfetme fırsatı sundu. AngelBotics aracılığıyla CAD araçları, 3D yazıcılar ve diğer mühendislik ekipmanlarını kullanmayı öğrendim ve genellikle üniversite öğrencilerine ayrılan STEM kavramlarına maruz kaldım. Başlangıçta Kuantum Fizikçisi olmayı hedefliyordum, ancak AP Fizik ve robotik deneyimlerim bana fizik konusunda o kadar iyi olmadığımı gösterdi ve bu da beni mekanik mühendislik yolundan uzaklaştırdı.

Bunun yerine, ilk Raspberry Pi için Python kodu yazmaya başlamamla birlikte programlamada kendime bir niş buldum ve bu, AP Bilgisayar Bilimleri’ndeki Java projeleriyle pekişti. Sınavlarda zorlanmama rağmen, öğretmenim Bay Nagel, test puanlarından ziyade projelerin değerini vurgulayarak yazılım geliştirmeye yönelmemi teşvik etti. Bu, üniversitede bilgisayar bilimi üzerine bir dereceye odaklanmama ve yazılım mühendisi olma hayaliyle kariyerime yön vermeme neden oldu.

Çalışmalarımın yoğunluğu ve dik öğrenme eğrisi nedeniyle AngelBotics’te o kadar da yer alamasam da, bu hala robotik konusundaki ömür boyu sürecek bir tutkuya ilham verdi. Bu yüzden üniversiteye başladığımda, bir üniversite robotik kulübüne katılmaya ve bir gün robotik ile gerçek dünya problemlerini çözen bir şirket kurmaya kararlıydım.

Maden Okulu

Doğu Lisesi’nden mezun olduktan sonra, Colorado Maden Okulunda (2018-2022) Bilgisayar Bilimleri alanında lisans eğitimime başladım. İlk dönemimde, Maden robotik kulüplerini kontrol ettim ve AgBot adında yeni bir robotik grup keşfettim.

AgBot, 2019 agBots Weed and Feed Yarışması için yarışacak bir robot inşa etme amacıyla kurulan yeni bir robotik kulüptü. Bu yarışmanın iki ana zorluğu vardı:

  1. Zararlı ve Yabani Ot Tanımlama ve Yok Etme
  2. Robotik ile Yeni Hasat Yöntemleri Oluşturma

Ekibimiz ilk zorluğa odaklanmayı seçti. Bu, Maden’in agBot yarışmasına katıldığı ilk kezdi ve bir Maden robotik kulübünün tarımla ilgili bir şey üzerinde çalıştığı ilk kezdi. Bu, her şeyi taze hissettirdi.

Projeye hemen ilgi duydum. Ailem, Türkiye’de nesiller boyunca çiftçilik yapmıştı, babamın nesline kadar. Bu yüzden AgBot, robotik ve programlama tutkumla birleşerek evime yakın hissettirdi. Dedelerim gibi çiftçilere yardımcı olabilecek bir robot inşa etme fikri gerçekten heyecan vericiydi.

Geliştirme

AgBot ekibinin bir parçası olmak, üniversite deneyimlerim arasında en unutulmaz olanlardan biridir. Aynı zamanda o zamana kadar üzerinde çalıştığım en zor şeylerden biriydi. Bu proje, Python, Ubuntu ve ROS ile gerçekten derinlemesine girdiğim ilk deneyimdi. FRC’de her şey Java’daydı, bu yüzden bu benim için tamamen yeni bir alandı. Daha önce Python ve Ubuntu kullanmıştım, ancak ROS ile hiç çalışmamıştım. ROS’un nasıl çalıştığını öğrenmek zorlu bir mücadeleydi. O zamanlar bir Python ortamının ne olduğunu bile bilmiyordum.

Çoğu zaman, yazdığım bir ROS düğümüne kullanılabilir veri göndermesi için bir Lidar almaya çalışarak geçirdim. Görevim, Lidar verilerini kullanarak robotun bir mahsul sırasının sonuna ulaştığını tespit edebilen end_detector adlı bir ROS Düğümü uygulamaktı. Şimdi basit görünüyor, ama o zamanlar büyük bir işti.

Lidar’ın kodumla iletişim kurmasını sağlamak için yaklaşık iki hafta süren hata ayıklama yaptım. Tüm kod ya C++ ya da Python’da yazılmıştı, esasen Python’da. Bu yüzden bu iş için kodum sadece Python’du. Bu çalıştığında, kampüste bulduğum rastgele bitki parçalarıyla mantığı test etmeye başladım. Lidar’ı tutan bir standı onların yanından geçirip kodun sonuna ulaşıp ulaşmadığını kontrol ediyordum. Birçok saat ve hata ayıklama sonrasında, en azından test ortamımda her şeyi çalışır hale getirdim. Her şeyi bir araya getirmeye çalıştığımızda ise durum farklıydı.

Zamanımın çoğu donanım ve yazılımın birbirleriyle iletişim kurmasını sağlamakla geçti. Sıra sonlarını tespit etme mantığı ikinci plandaydı. Ama bu harika bir öğrenme deneyimiydi. ROS’u neredeyse hiç anlamaktan, canlı Lidar verileriyle bir Jetson kartında düğümler yazıp hata ayıklamaya geçtim. Bu süre zarfında, programlama dilim olarak Java’dan Python’a geçiş yaptım. Ve 2025 itibarıyla, projelerimde veya iş ile ilgili kod tabanlarımda Java’yı gerçekten kullanmadım.

Ekip ve Teknoloji Yığını

Ubuntu 16.04 ile ROS Kinetic ve Python 2.7’yi Nvidia Jetson TX2 üzerinde çalıştırdık ve bu, Hokuyo URG 04LX UG01 Lidar ile etkileşimde bulundu. Ultrasonik mesafe bulucular gibi sensör girişleri için Arduino’larımız vardı. Kodumuz algılama, navigasyon, kontrol ve spreyleme işlemlerini yönetiyordu. Depoyu burada görebilirsiniz: GitHub Repo. Yazdığım spesifik kodu end_detector.py dosyasında bulabilirsiniz. Robotu oluşturan bileşenlerin çoğunun listesi burada:

  • Ubuntu 16.04 Xenial
  • ROS Kinetic Kame
  • Python 2.7
  • Nvidia Jetson TX2
  • Hokuyo URG-04LX-UG01 Lidar
  • Arduino Uno & Mega
  • DC Motorlar, Encoderlar, Motor Kontrol Cihazları, Pil, vb.

Büyük bir ekibimiz yoktu, ama birkaç isim öne çıkıyor:

Tyler kulübün lideri ve kurucusuydu. O zamanlar ona çok saygı duydum ve bugün de hala duyuyorum. Zachary, kulübün yazılım geliştirme lideriydi ve bana yazılım geliştirme ve ROS hakkında çok şey öğretti, bunun için bugün hala minnettarım.

Kevin Barnard ve Amit Rotem gibi diğer üyeler de vardı. Ama ne yazık ki, kulüp kapandıktan sonra 5 yıl geçtiği için tüm orijinal üyelerin isimlerini ve iletişim bilgilerini hatırlamıyorum.

Robotun geliştirilmesinin çoğu, hafta sonları ve derslerimizin çoğu sona erdikten sonra geç saatlere kadar gerçekleşti. Mühendislik diploması almak ve AgBot üzerinde çalışmak oldukça yorucuydu, ama buna katlandık.

Seyahat ve Kaos

Bu deneyimin bir parçası olarak asla unutmayacağım bir şey, seyahatin kendisiydi. Yarışma, Purdue Üniversitesi kampüsüne yakın olan West Lafayette, Indiana’da yapıldı. Ve tüm yarışma, Maden’deki final haftası sona erdikten hemen sonra gerçekleşti, bu yüzden o cehennem haftasından kurtulmak için hiç zamanımız yoktu.

Robotu ve tüm aletlerimizi taşımak için Tyler’ın kamyonetiyle Colorado Golden’dan Indiana’ya doğru yola çıktık. Ama komik olan, yolculuğa yarışma haftasından bir gün önce başlamış olmamızdı. Sahip olduğumuz her şeyi, robotu, aletleri, pilleri, bilgisayarları, her şeyi topladık ve Colorado Golden’dan West Lafayette, Indiana’ya doğru yola çıktık. Bu, kağıt üzerinde 18 saatlik bir yolculuktu. Ancak benzin ve tuvalet molaları ile birlikte 20 veya 22 saat sürdü.

Tyler tüm yol boyunca sürüş yaptı, Coffee Monster içecekleri ile hayatta kaldı. Diğer bir takım arkadaşı, adını unuttum ama fotoğraflarda var, bazen onun yerini aldı. Yol boyunca, yağmur yağmaya başladı. Robotu korumak için rastgele kapalı bir benzin istasyonuna çekilmek zorunda kaldık ve bir tente aldık. Her şey karmaşık, kaotik ve üniversite robotik dünyasıydı. Bir şekilde, oraya ulaştık.

Varınca, alanda tente kurduk ve tüm aletlerimizi yerleştirdik. Ben kodu bitirmeye ve çalıştırmaya odaklandım. Yarışmanın çoğu boyunca, esasen robotumuzu hata ayıklamak ve iyi çalışmasını sağlamakla uğraştık, ayrıca diğer takımların harika robot inşalarını da inceledik.

Peki Kazandık mı?

Hayır

Geride dönüp baktığımda, sadece deneyim seviyemizin çok üzerinde bir şey inşa etmeye çalışan bir grup çocuktuk. Diğer takımlar tamamen farklı bir seviyedeydi. Bazıları startuplardan, bazıları araştırma laboratuvarlarından geliyordu. Bazıları tam akademik destek alıyordu. Biz, tüm gece uyanık kalan küçük bir lisans öğrencisi grubuyduk, Python’ın Lidar verilerini işe yarar bir şeye dönüştürmesini umuyorduk.

Robotumuz kusurluydu. Karmaşıktı. Ve dürüst olmak gerekirse, yarışmaya geldiğimizde neredeyse hiç çalışmıyordu. Takımda birçok kişi, zamanında bitiremeyeceğimizi fark ettiklerinde projeden ayrılmaya başladı. Bazıları hiç gelmedi. Finaller sona ermişti, robot hazır değildi ve moral oldukça düşüktü.

Ama birkaçımız dayanmayı başardık.

Pes etmedim… Tyler pes etmedi… Ve fotoğraftaki insanlar da pes etmedi!

Kazanmamış olsak veya tam işlevsel bir robotumuz olmasa da, bu deneyimi hiçbir şeye değişmem. ROS, donanım hata ayıklama, baskı altında sistemler inşa etme ve sadakat hakkında çok şey öğrendim. İşleri sonuna kadar götürmenin ne kadar önemli olduğunu fark ettim.

Yansımalar, 2025 İtibarıyla

2019 sezonundan sonra, AgBot kapandı. Bu, esasen COVID’in neredeyse bir yıl sonra devreye girmesi nedeniyle oldu ve bu da Maden’deki tüm kulüplerin 1-2 yıl boyunca kapanmasına neden oldu ve dünya “normal” olmaya başladığında ben mezun oldum.

Şu anda 2025, ve AgBot’a geriye dönüp baktığımda, benim için her şeyin başlangıcı olarak görüyorum. Bana robotik alanında ilk gerçek deneyimimi verdi ve teknik bir ekiple nasıl işbirliği yapacağımı öğretti. Beni harika fırsatlara götüren bir yola soktu.

O zamandan beri, eBay’de bir backend mühendisi olarak çalıştım, veri merkezlerinde milyonlarca metriği işleyen hizmetler dağıttım. AI otomatik siber güvenlik penetrasyon testleri geliştirmeye odaklanan ilk girişimimi kurdum. Notify Cyber adlı bir platform başlattım, bu platform on binlerce ziyaretçiye ulaştı. Docker, Kubernetes, Postgres ve gelişmiş AI altyapısı için yazılım yazdım.

Ama AgBot, hayatımın en iyi deneyimlerinden biri olarak öne çıkıyor. Kaotik, stresli ve bazen imkansız gibi hissettiren bir süreçti, ama bana herhangi bir ders veya eğitimden daha fazla şey öğretti. Mükemmel bir planınız, yeterli finansmanınız veya en iyi donanımınız olmasa bile, yine de bir şeyler inşa edebileceğinizi, çok şey öğrenebileceğinizi ve bu süreçte inanılmaz insanlarla tanışabileceğinizi öğrendim.

2019 AgBot ekibinden herkese teşekkür ederim. O 2019 yolculuğuna, kapalı bir benzin istasyonundan aldığımız tente ve uykusuz gecelere teşekkür ederim. Bana, ne kadar imkansız görünürse görünsün, büyük projeleri güvenle takip etme azmini verdiniz.

Kaynaklar ve Bağlantılar

Fotoğraf Galerisi

Mine’s AgBot Ekibi, Biz

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

Bizim AgBot Robotumuz

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

Videolar/GIF’ler

IMG_6724.gif NEHE1091.gif demo.gif random_demo.gif
rogo_hardware.gif

Yarışma Alanları

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

Yarışmalardaki Diğer Takımlar

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

Diğer Rastgele Görseller

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