2019 AgBot Mücadelesi
East Lisesi
Colorado, Denver’daki East Lisesi’nde geçirdiğim süre boyunca (2014-2018), okul sonrası etkinliklere yoğun şekilde katıldım ve bunların en etkili olanı robotik kulübü AngelBotics idi. Kulübe katılmam, başlangıçta futbola odaklanmam nedeniyle ancak ikinci yılımda mümkün oldu. Kulüp ağırlıklı olarak FIRST Robotics Competition (FRC) yarışmasına katılıyordu; bu da bana mekanik ve elektrik mühendisliğinin yanı sıra programlamayı da keşfetme fırsatı verdi. AngelBotics sayesinde CAD araçlarını, 3D yazıcıları ve diğer mühendislik ekipmanlarını kullanmayı öğrendim; böylece genellikle üniversite öğrencilerine ayrılan STEM kavramlarıyla tanıştım. Başlangıçta Kuantum Fizikçisi olmayı hedefliyordum, ancak AP Fizik ve robotik deneyimlerim fizik konusunda o kadar da iyi olmadığımı gösterdi ve sonuçta beni makine mühendisliği yolundan uzaklaştırdı.
Bunun yerine, kendi alanımı programlamada buldum; bu da ilk Raspberry Pi cihazım için Python kodu yazmamla başladı ve AP Bilgisayar Bilimleri dersindeki Java projeleriyle iyice pekişti. Sınavlarda zorlanmama rağmen öğretmenim Bay Nagel, proje yapmanın test puanlarından daha değerli olduğunu vurgulayarak beni yazılım geliştirmeye yönelmem konusunda cesaretlendirdi. Bu da beni üniversitede bilgisayar bilimleri okumaya, kariyerimde bir yazılım mühendisi ve sonunda bir kurucu olma hayaliyle odaklanmaya itti.
Yoğun derslerim ve dik öğrenme eğrisi nedeniyle AngelBotics’te çok aktif olmasam da, bu kulüp yine de robotik tutkusunu hayat boyu sürecek şekilde ateşledi. Bu yüzden üniversiteye başladığımda, bir üniversite robotik kulübüne katılmaya ve bir gün robotik kullanarak gerçek dünya sorunlarını çözen bir şirket kurmaya kararlıydım.
Madenler Okulu
East Lisesi’nden mezun olduktan sonra, Colorado School of Mines’de (2018-2022) Bilgisayar Bilimleri lisans eğitimime başladım. İlk dönemimde, Mines robotik kulüplerine göz attım ve AgBot adlı yepyeni bir robotik topluluk keşfettim.
AgBot, 2019 agBots Weed and Feed Competition’da yarışmak üzere bir robot inşa etme amacıyla kurulmuş yeni bir robotik kulüptü. Bu yarışmanın iki ana zorluğu vardı:
- Zararlı ve yabani otların tespiti ve yok edilmesi
- Robotik Yoluyla Yeni Hasat Yöntemleri Oluşturmak
Ekibimiz ilk zorluğa odaklanmayı seçti. Bu, Mines’ın agBot yarışmasına ilk kez katılmasıydı ve bir Mines robotik kulübünün tarımla ilgili herhangi bir şey üzerinde ilk kez çalışmasıydı. Bu da her şeyi taze hissettiriyordu.
Projeye hemen ilgi duydum. Ailem, babamın kuşağına kadar, nesiller boyunca Türkiye’de çiftçilik yapmıştı. Bu yüzden AgBot bana memleket hissi veriyordu ve robotik ile programlama tutkumu da bir araya getiriyordu. Büyükbabam ve büyükanne 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 yıllarımın en unutulmaz deneyimlerinden biridir. Aynı zamanda o noktaya kadar çalıştığım en zor şeylerden biriydi. Bu proje, Python, Ubuntu ve ROS dünyasına gerçekten dalış yaptığım ilk projeydi. FRC’de her şey Java’daydı, bu yüzden bunların hepsi benim için yeni bir alandı. Geçmişte Python ve Ubuntu kullanmıştım, ama ROS’a hiç dokunmamıştım. ROS’un nasıl çalıştığını öğrenmek tırmanılması gereken bir dağ gibiydi. O zamanlar bir Python ortamının ne olduğunu bile bilmiyordum.
Zamanımın çoğunu, yazdığım bir ROS düğümüne kullanılabilir veri göndermesi için bir Lidar ayarlamaya çalışarak geçirdim. Görevim, robotun Lidar verilerini kullanarak bir tarla sırasının sonuna ulaştığını algılayabilecek end_detector adlı bir ROS Düğümü uygulamaktı. Şimdi kulağa basit geliyor, ama o zamanlar çok büyük geliyordu.
Lidar’ın kodumla iletişim kurmasını sağlamam yaklaşık iki haftalık hata ayıklama aldı. Tüm kod C++ ya da Python ile yazılmıştı, ağırlıklı olarak Python. Dolayısıyla bu iş için benim kodum sadece Python’dı. Bu çalıştıktan sonra, kampüste bulduğum rastgele bitki parçalarını kullanarak mantığı test etmeye başladım. Lidar’ı taşıyan sehpayı onların yanından geçirir ve kodun son noktaya ulaştığımızı anlayıp anlamadığını kontrol ederdim. Saatler süren çalışmalar ve hata ayıklamadan sonra, en azından test ortamımda her şeyi çalıştırmayı başardım. Her şeyi bir araya getirmeye çalıştığımızda ise işin rengi değişti.
Zamanımın çoğu, donanım ve yazılımın birbirleriyle konuşmasını sağlamaya harcandı. Sıra sonlarını algılamaya yönelik asıl mantık ikinci plandaydı. Ama bu harika bir öğrenme deneyimiydi. ROS’u zar zor anlayan bir yerden, canlı Lidar verisiyle Jetson kartı üzerinde düğümler yazıp hata ayıklayan birine dönüştüm. Bu dönemde ayrıca, programlama dili olarak çoğunlukla Java’yı varsayılan olarak kullanmaktan çıkıp Python’u varsayılanım haline getirdim. Ve 2025 itibarıyla, projelerimde ya da iş ile ilgili kod tabanlarımda Java’yı gerçekten kullandığım pek olmadı.
Ekip ve Teknoloji Yığını
Bir Nvidia Jetson TX2 üzerinde Ubuntu 16.04, ROS Kinetic ve Python 2.7 çalıştırıyorduk; bu sistem bir Hokuyo URG 04LX UG01 Lidar ile iletişim kuruyordu. Ultrasonik mesafe sensörleri gibi sensör girdileri için Arduino(lar) kullanıyorduk. Kodumuz algılama, gezinme, kontrol ve püskürtme işlevlerini yürütüyordu. Depoyu burada görebilirsiniz: GitHub Deposu. Yazdığım belirli kod end_detector.py dosyasında bulunabilir. Robotu oluşturan bileşenlerin çoğunun listesi aşağıdadır:
- Ubuntu 16.04 Xenial
- ROS Kinetic Kame
- Python 2.7
- Nvidia Jetson TX2
- Hokuyo URG-04LX-UG01 Lidar
- Arduino Uno & Mega
- DC Motorlar, Kodlayıcılar, Motor Kontrolcüler, Batarya, 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ı duyuyordum, bugün de duymaya devam ediyorum. Zachary kulübün yazılım geliştirme lideriydi ve bana yazılım geliştirme ile ROS hakkında çok şey öğretti; bunun için bugün hâlâ minnettarım.
Kevin Barnard ve Amit Rotem gibi başka üyeler de vardı. Ama ne yazık ki ilk üyelerin hepsinin adlarını ve iletişim bilgilerini hatırlamıyorum; çünkü kulüp kapanalı 5 yıldan fazla oldu.
Robotun geliştirilmesinin çoğu hafta sonlarında ve derslerimizin çoğu bittikten sonra gecenin ilerleyen saatlerinde gerçekleşti. Bir mühendislik derecesi ve AgBot ile uğraşmak çok yorucuydu, ama yine de bunun üstesinden geldik.
Yolculuk ve Kaos
Bu deneyimin asla unutmayacağım bir yönü de yolculuğun kendisiydi. Yarışma, Purdue Üniversitesi kampüsüne yakın, Indiana eyaletinin West Lafayette kentinde yapıldı. Ve tüm yarışma, Mines’taki final haftası biter bitmez gerçekleşti; yani o cehennem gibi haftadan toparlanmak için hiç zamanımız yoktu.
Tyler’ın kamyonunu kullanarak robotu ve tüm aletlerimizi de taşımak üzere Golden, Colorado’dan Indiana’ya sürdük. Komik olan şu ki, yola yarışma haftasından tam bir gün önce çıktık. Elimizde ne varsa topladık; robotu, aletleri, pilleri, bilgisayarları, her şeyi ve Golden, Colorado’dan West Lafayette, Indiana’ya sürdük. Kağıt üzerinde bu 18 saatlik bir yolculuk. Benzin ve tuvalet molalarıyla bize daha çok 20 ya da 22 saat sürdü.
Tyler tüm yol boyunca sürdü ve Coffee Monster içecekleriyle idare etti. Bir başka takım arkadaşı, adını unutmuş olmam üzücü ama fotoğraflarda görünüyor, zaman zaman direksiyona geçti. Yol boyunca yağmur bardaktan boşanırcasına yağmaya başladı. Rastgele, kapalı bir benzin istasyonunda durmak ve robotu korumak için bir branda almak zorunda kaldık. Dağınıktı, kaostu, üniversite robotik işiydi. Bir şekilde başardık.
Varınca, gölgeliğimizi alana kurduk ve tüm aletlerimizi yerleştirdik. Ben kodu bitirmeye ve çalıştırmaya odaklandım. Yarışmanın büyük kısmında, robotumuzu hata ayıklamak ve düzgün çalışmasını sağlamak için uğraştık; ayrıca diğer takımların havalı robot tasarımlarına da göz attık.
Peki Kazandık mı?
Hayır
Geriye dönüp baktığımda, biz sadece deneyim seviyesi çok üstümüzde bir şey inşa etmeye çalışan bir grup çocuktuk. Diğer takımlar bambaşka bir seviyedeydi. Bazıları girişimlerden geliyordu. Bazıları araştırma laboratuvarlarından. Bazılarının tam akademik desteği vardı. Biz ise Python’un Lidar verisini faydalı bir şeye dönüştürmesini uman, geceleri uyumayan küçük bir lisans öğrencileri grubuyduk.
Robotumuz kusurluydu. Dağınıktı. Ve dürüst olmak gerekirse, yarışmaya ulaştığımızda ancak çalışır durumdaydı. Takımdaki birçok kişi, yetiştiremeyebileceğimizi fark ettiklerinde çekilmeye başladı. Hatta bazıları hiç gelmedi bile. Finaller bitmişti, robot hazır değildi ve moral oldukça düşüktü.
Ama birkaçımız sonuna kadar direndik
Ben pes etmedim… Tyler pes etmedi… Ve fotoğraftaki insanlar da pes etmedi!
Kazanmamış olmamıza ya da tamamen işlevsel bir robotumuz olmamasına rağmen, bu deneyimi hiçbir şeye değişmem. ROS hakkında, baskı altında sistem kurmayı, donanım hata ayıklamayı öğrendim ve sadakat hakkında da çok şey öğrendim. İşleri sonuna kadar götürmenin ne kadar önemli olduğunu fark ettim.
Yansıtma, 2025 İtibarıyla
2019 sezonundan sonra AgBot faaliyetlerini durdurdu. Bunun başlıca nedeni, COVID’in neredeyse 1 yıl sonra ortaya çıkmasıydı; bu da Mines’taki tüm kulüplerin 1-2 yıl boyunca kapanmasına yol açtı ve dünya yeniden “normal”e dönmeye başladığında ben mezun olmuştum.
Şimdi 2025 yılı ve AgBot’a geriye dönüp baktığımda, benim için her şeyin başlangıcı olarak görüyorum. Bana robotik alanındaki ilk gerçek deneyimimi verdi ve teknik bir ekiple nasıl iş birliği yapılacağını öğretti. Beni, inanılmaz fırsatlara uzanan bir yola soktu.
O zamandan beri, eBay’de bir backend mühendisi olarak çalıştım; veri merkezleri genelinde milyonlarca metriği işleyen hizmetler dağıttım. Yapay zekâ destekli otomatik siber güvenlik sızma testi oluşturmayı odaklayan ilk girişimimi kurdum. On binlerce ziyaretçiye ulaşan Notify Cyber’ı yayına aldım. Docker, Kubernetes, Postgres ve gelişmiş yapay zekâ altyapısı için yazılım yazdım.
Ama AgBot, hayatımın en iyi deneyimlerinden biri olarak hâlâ öne çıkıyor. Kaotik, stresli ve bazen imkânsız gibi hissettiriyordu, ama bana herhangi bir dersin ya da öğreticinin verebileceğinden daha fazlasını öğretti. Mükemmel bir planınız, yeterli finansmanınız ya da en iyi donanımınız olmasa bile yine de bir şeyler inşa edebileceğinizi, çok şey öğrenebileceğinizi ve yol boyunca 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 brandaya ve uykusuz gecelere teşekkür ederim. Bana, ne kadar imkânsız görünürse görünsün, büyük projelerin peşinden güvenle gitme azmini verdiniz.
Kaynaklar ve Bağlantılar
- Colorado School of Mines Robotik Kulüpleri Ana Web Sitesi
- AgBot 2019 Kod Tabanı
- Purdue AgBot Makalesi
- Purdue Görsel Özet Makalesi
- DTN Progressive Farmer Makalesi
- AgBot’un Twitter/X Hesabı
- AgBot’un Resmî Web Sitesi
- Zach’in GitHub’ı
- Kevin’in GitHub’ı
- Tyler’ın GitHub’ı
Fotoğraf Galerisi
Mine’in AgBot Ekibi, Biz
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
AgBot Robotumuz
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Videolar/GIF’ler
Yarışmanın Sahneleri
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Yarışmalardaki Diğer Takımlar
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
Diğer Rastgele Görseller
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |































































