Robotik Araştırma Bölümüm
Table of Contents
Bu yazı, 2015 yılında FRC ile robotik tutkumun keşfiyle başlayan robotik yolculuğumu anlatıyor. Lise dönemimde, 2021 Şubat’tan 2021 Eylül’e kadar Colorado School of Mines İnsan Merkezli Robotik (HCR) Laboratuvarında araştırma asistanı olarak geçirdiğim zamana kadar. 2022 sonlarından itibaren, HCR Laboratuvarı, Colorado School of Mines’dan University of Massachusetts Amherste taşındı ve sitesi hcr.mines.edu adresinden hcr.cs.umass.edu adresine geçti.
Arka Plan
Üniversite lisans eğitimime Colorado School of Mines’da 2018 Güz döneminde başladım. Ana dalım Robotik ve Akıllı Sistemler üzerine odaklanmış Bilgisayar Bilimleri idi. 2022 Baharında mezun oldum.
Hayatımın erken dönemlerinde tutkumun ne olduğunu bulduğum için şanslıydım. Lise dönemimde, neyi sevdiğimi ve neye yetenekli olabileceğimi anlamak için iyi bir zaman harcadım. Birkaç deneme yanılmadan sonra, tutkumun bilgisayar bilimi olduğunu keşfettim. Ancak bu dönemde, kod yazarak inşa etme konusunda büyük bir sevgiye sahip olduğumu da keşfettim.
Mines’de, Dr. Hao Zhang ile İnsan Merkezli Robotik (HCR) Laboratuvarında çalışma fırsatı buldum. Dr. Zhang ile ilk olarak 2020 Baharında “İnsan Merkezli Robotik” (CSCI473) dersi aracılığıyla tanıştım ve COVID kaosunun ardından, 2021 Baharının başlarında laboratuvarında çalışmaya başladım.
İnsan Merkezli Robotik (CSCI473) Dersi
Mines’in İnsan Merkezli Robotik (CSCI473) dersi, üniversite deneyimimde bende derin bir etki bırakan birkaç dersten biriydi. Dersi Dr. Hao Zhang vermekteydi. Sınıfın notu, her biri robotik temel kavramlarını tanıtan zorlu bir problemi içeren sadece üç projeden oluşuyordu. Bu projeler şunlardı:
- Robot İşletim Sistemi (ROS) Öğrenme
- Robot Duvar Takibi için Pekiştirmeli Öğrenme
- İskelet Tabanlı Temsiller Kullanarak Robotun İnsan Davranışlarını Anlaması
Robot İşletim Sistemi (ROS) Öğrenme
Bu, bize atanan ilk projeydi. Proje üç görevden oluşuyordu:
- Geliştirme Ortamını Kurma
- Gazebo Simülatörünü Anlama
- ROS “Merhaba Dünya” Yazma
Görev 1 ve 2 için, sadece geliştirme ortamımızı kurmamız ve Gazebo’ya giriş eğitimi takip etmemiz gerekiyordu. Bu, şunları içeriyordu:
- 2011 model HP dizüstü bilgisayarımda ROS Melodic kurmak
- ROS ve Gazebo’yu yükleyip yapılandırmak
- gazebosim’in eğitimini ve e-kılavuzun eğitimini takip etmek.
Görev 3 ise gerçek bir zorluktu. Görev, turtlesim kullanarak kaplumbağanın Mines’in “M” logosunu çizmesini sağlamaktı:
![]() |
![]() |
Bu görev, basit gibi görünse de, göründüğünden daha zordu. Bu proje, bana Açık Döngü ve Kapalı Döngü sistemleri kavramını tanıttı. Projenin tam açıklaması için csci473-p1.pdf dosyasına göz atabilir veya bu proje ve çözümüm hakkında daha fazla bilgi için ROS Move Turtle proje sayfasını ziyaret edebilirsiniz.
Robot Duvar Takibi için Pekiştirmeli Öğrenme
Bu, bize atanan ikinci projeydi ve üniversitedeki en zor projelerden biriydi. Proje açıklaması şu şekildeydi:
Bu projede, öğrenciler otonom bir mobil robotu bir duvarı takip etmeyi ve engellerden kaçınmayı öğretmek için pekiştirmeli öğrenme algoritmaları tasarlayıp uygulayacaklardır. Öğrenciler, Gazebo simülasyonunu kullanarak, kendilerine sağlanan bir çevre haritası ile Triton adında bir omni-yönlü mobil robotu simüle edeceklerdir. Öğrenciler, robotu yönlendirme ve hız komutları kullanarak kontrol edeceklerdir. Öğrencilerin bu projeyi C++ veya Python kullanarak, Ubuntu 18.04 LTS üzerinde çalışan ROS Melodic ile programlamaları gerekmektedir (yani, Proje 1’de kullanılan aynı geliştirme ortamı). Ayrıca, öğrencilerin standart IEEE robotik konferanslarının formatına uygun bir rapor yazmaları gerekmektedir.
Pekiştirmeli öğrenme algoritması için Q-Learning kullanmamız talimatı verildi. Ayrıca, ders tarafından sağlanan Stingray Gazebo simülasyon ortamını da kullandık. Stingray, Triton modelini ve fizik mantığını içeriyordu. Robotun takip etmesi için bir labirent de sağlandı. Genel olarak, ortam şöyle görünüyordu:
Çözümümü GitHub veya internette yayınlamadım çünkü çok iyi değildi ve ciddi hatalar içeriyordu. Ayrıca, kodu doğru ortamda çalıştırmak oldukça zor ve sinir bozucuydu. Ancak, sınıfa sunduğum çözümümü gösteren bir demo videosuna sahibim. Buradan izleyebilirsiniz:
Projenin tam açıklaması için csci473-p2.pdf dosyasına göz atabilirsiniz.
İskelet Tabanlı Temsiller Kullanarak Robotun İnsan Davranışlarını Anlaması
Üçüncü proje için proje açıklaması şu şekildeydi:
Bu projede, öğrenciler birkaç iskelet tabanlı temsil (Teslimat 1) uygulayacak ve bir Kinect V1 sensöründen toplanan kamuya açık bir aktivite veri setini kullanarak insan davranışlarını sınıflandırmak için Destek Vektör Makineleri (SVM) (Teslimat 2) kullanacaklardır. Ayrıca, öğrencilerin Teslimat 3’te standart IEEE robotik konferanslarının formatına uygun bir rapor yazmaları gerekmektedir.
Bu proje zorluydu ama ikinci projeden daha zor değildi. Ana hedef, Kinect V1 sensör verilerini, MSR Günlük Aktivite 3D Veri Seti ve Destek Vektör Makineleri kullanarak belirli insan eylemlerini/davranışlarını sınıflandırmaktı. Projenin tam açıklaması için csci473-p3.pdf dosyasına göz atabilir veya bu proje ve çözümüm hakkında daha fazla bilgi için LIBSVM Kullanarak İnsan Eylemlerini Tahmin Etme blog yazısını ziyaret edebilirsiniz.
CSCI473 Sonuç
CSCI473, Mines üniversitesindeki lisans eğitimim sırasında aldığım en iyi derslerden biriydi. Tüm bu projeler bana çok şey öğretti ve özgeçmişimde yansıtmak ve başvurmak için harika bir proje kataloğuna sahip olmamı sağladı. Ayrıca, kendimi en iyi hissettiğim ilk dersti, çünkü ben iyi bir sınav öğrencisi değildim ama projeleri tamamlama konusunda başarılıydım. Bu ders aracılığıyla, sonunda Mines’in İnsan Merkezli Robotik (HCR) Laboratuvarında araştırma asistanı olarak bir pozisyon elde etmeme yardımcı olan Dr. Hao Zhang ile tanıştım.
CS Alanı Oturumu (Yaz 2020)
2020 Yazında, CSCI473 dersini tamamladıktan ve HCR Laboratuvarına katılmadan önce, Colorado School of Mines’daki bilgisayar bilimi lisans programımın bir parçası olarak CSCI370 veya “İleri Yazılım Mühendisliği” dersini aldım. CSCI370, öğrencilerin bir şirket için yazılımla ilgili çözümler tasarlayıp uygulamalarını sağlayan bir derstir. Öğrencilerin ders bilgilerini gerçek dünya bilgisayar bilimi problemlerine uygulamalarına olanak tanır. Dersi hakkında daha fazla bilgi alabilirsiniz buradan.
Dersin içeriğinde, hangi proje/şirket üzerinde çalışacağınızı seçme şansınız var. Ders, her proje ve şirketi detaylandıran PDF’ler sağladı. Sonunda, Lunar Outpost adlı bir şirketin “Gelişmiş Ay Navigasyonu için Gerçek Zamanlı Tekerlek Kayma Tespiti ve Hata Düzeltmeleri” adlı projesinde çalışmaya karar verdim. Adı uzun olduğu için projeye “Tekerlek Kayma Tespiti” takma adını verelim.
Problem
Lunar Outpost, otonom ay roverları yaratmaya çalışan bir girişimdir. Ayda, tekerlek kaymasına neden olan çok fazla ay tozu vardır. Bu ideal değildir çünkü tekerlek kayması, otonom sistemlerin gerçek dünya konumlarını kaybetmesine neden olabilir. Dünya’da, tekerlek kaymasının neden olduğu herhangi bir kaymayı düzeltmek için GPS verileri kullanılarak bu sorun çözülmektedir. Ancak GPS’in sorunu, yalnızca 30+ navigasyon uydusunun sürekli olarak Dünya etrafında dönerken benzersiz sinyaller ile bilgisayarların konumlarını hesaplamasına olanak tanımasıdır. Ancak Ay’da şu anda GPS yoktur. Bunu bilerek, tekerlek kaymasını tespit etmek için GPS dışında başka bir yöntem kullanılmalıdır. Projenin problemi hakkında daha ayrıntılı bir rapor buradan görüntülenebilir.
Ekip
Bu proje basit bir proje değildi, bu yüzden bir ekip içinde yapılması gerekiyordu. Ekip, Colorado School of Mines’dan beş arkadaşımın bulunduğu bir gruptan oluşuyordu:
Bu proje basit bir proje değildi, bu yüzden bir ekip içinde yapılması gerekiyordu. Bu ekip, Mehmet Yilmaz (ben), Kane Bruce, Braedon O’Callaghan, Liam Williams ve Kevin Grant’tan oluşuyordu.
Proje, ROS, C++, Python, Linux, Raspberry Pi ve Arduino hakkında bilgi sahibi olmamızı gerektiriyordu. Çoğumuz bu teknolojilerden bir veya daha fazlasında deneyime sahipti, ancak ben, 2020 Bahar döneminde İnsan Merkezli Robotik (CSCI473) dersimde ROS kullandığım için ROS konusunda deneyimi olan tek kişiydim. Bu nedenle, erken aşamalarda, herkesi ROS hakkında bilgilendirmeye yardımcı oldum.
Zorluklar
Bu projede birçok zorlukla karşılaştık. Ancak karşılaştığımız en büyük zorluk, test için gerçek bir dünya robotuna erişimimizin olmamasıydı. Bunun nedeni, COVID nedeniyle her şeyin uzaktan yapılması ve bizi Lunar Outpost’un laboratuvarında/binalarında çalışmaktan alıkoymasıydı. Bu nedenle simülasyonlar kullanmak zorunda kaldık.
Ayrıca, Lunar Outpost’un kullanım durumu için Tekerlek Kayması sorununu nasıl çözebileceğimiz hakkında bir fikir edinmek amacıyla WVU Navigation Lab tarafından yapılan bazı akademik araştırmalara göz attık. Bu, bizim için, lisans ikinci ve üçüncü sınıf öğrencileri olarak, beklediğimizden daha zordu.
Karşılaştığımız bir diğer zorluk ise bu projede çalışmak için sahip olduğumuz zaman miktarıydı. CSCI370 bir aylık bir derstir. Ancak sorun kendisi, birçok şirketin ve akademisyenin on yıllardır çözmeye/ mükemmelleştirmeye çalıştığı devasa bir problemdir. Bu nedenle bir ay, bu sorunu çözmek için kesinlikle yeterli bir süre değildir. Ancak, tüm bu zorluklara rağmen, üstesinden geldik ve teslimat yapmayı sağladık.
Sonuç
Tüm araştırma ve geliştirme sürecinden sonra, dijital olarak doğru ay fiziklerini simüle etmenin neredeyse imkansız olduğunu belirledik. Bu nedenle, bu algoritmayı bir simülasyonda denemek pek faydalı olmayacak ve uzayda ve ayda tekerlek kayması tespiti konusunda anlamlı bir araştırma sağlamayacaktı. Doğru bir test ortamı kurmanın, kum gibi bir şey ve gerçek donanım, örneğin bir Husky robotu kullanmanın, bu tür bir araştırma için çok daha önemli olduğunu sonucuna vardık. Tekerlek kayması tespit kodunu bir ROS düğümü olarak çalışacak şekilde güncelledik ve düzgün çalıştı, gerçek donanımda test için kolayca içe aktarılabiliyordu. Bu proje, bana liderlik rolü alma, arkadaşlarımı ROS geliştirme konusunda eğitme ve Python, ROS ve Gazebo ile daha önce karşılaşmadığım karmaşık bir problemi çözme deneyimi kazandırdı. En önemlisi, bu deneyim robotik konusundaki tutkumun daha da pekişmesini sağladı ve bu alanda araştırma yapma arzumun güçlenmesine katkıda bulundu, robotik yolculuğumda bir sonraki aşamanın zeminini hazırladı.
HCR Laboratuvarında Başlamak
2020 yazında CSCI473’ü tamamladıktan ve 2020 Güz dönemimi geçirdikten sonra, robotik alanında araştırma yapmaya karar verdim. Hem CSCI473 hem de CS Alan Seansı ile harika deneyimler yaşadım, bu nedenle HCR Laboratuvarı için araştırma yapmak istediğime karar verdim. Önceki yıl Dr. Zhang ile tanıştığım için, ona e-posta gönderip 2021 Ocak ayında laboratuvarın herhangi bir fırsatı olup olmadığını sormaya karar verdim. Yaklaşık 2 hafta içinde Dr. Zhang ilgi gösterdi, bana araştırma seçenekleri sundu ve laboratuvarında bir rol teklif etti. Şubat 2021’de laboratuvar için çalışmaya başladım.
Tanıtım Videosu
İşte HCR Laboratuvarındaki zamanımın birkaç ayı içinde kaydettiğim tanıtım videom. Mayıs 2021’de kaydedildi ve 2021 yazında HCR Laboratuvarında odaklanacağım araştırmayı kapsıyor:
Projem
HCR Laboratuvarındaki zamanım boyunca, esas olarak Triton projesine odaklandım. Triton projesi, Colorado Maden Okulu’ndaki İnsan Merkezli Robotik Laboratuvarı tarafından geliştirilen bir mobil robottur. NVIDIA’nın Jetson Nano’su ile güçlendirilmiş üçgen omni-tekerlekli bir zemin robotudur.
Triton, basit bir genel bakışla, aşağıdaki parçalardan oluşuyordu:
- NVIDIA Jetson Nano
- NVIDIA’nın Seed Studio A205 Taşıyıcı Kartı
- Arduino Mega
- 64 GB Micro SD Kart
- Özel 3D yazıcıdan üretilmiş gövde
- 3 mekanum tekerlek
- 1 AR Batarya
- Optimize edilmiş güç dağıtımı ve kablolama için özel devreler
- Intel’in Realsense D435 Kamerası
- Bazı LED’ler
Eğitim amaçlı bir robot olarak 2018-2020 yılları arasında tasarlandı, inşa edildi ve üretildi. Ben katıldığımda, Triton oldukça yerleşik bir hale gelmişti ve laboratuvar yeni bir versiyonunu yapmayı düşünüyordu. Ancak, Triton’un ana sorunu yazılımıydı. Triton hareket edebiliyor, şarj olabiliyor ve temel bir anlamda işlev görebiliyordu ama gerçekten akıllı bir şey yapmıyordu. Hatta daha gelişmiş hareketler yapma yeteneğinden bile yoksundu.
![]() |
![]() |
![]() |
![]() |
Bunu ele almak için laboratuvar, Triton’u takip edebileceğimiz bir alan kurdu. Bunu yapmak için, zemin seviyesinin yaklaşık 6-7 feet yukarısında kare şeklinde 8 Optitrack Flex (Kızılötesi Kırmızı) Kamerayla 2 metreye 2 metre boyutunda bir alan oluşturdu.
![]() |
![]() |
Bu alanın kurulmasının yanı sıra, her Triton’un gövdesinin üst kısmına üç gri küre topu takıldı.
Bu kurulumla, ilgi alanımızdaki bir Triton’un tam koordinatlarını metre cinsinden elde etmemizi sağlayan kendi küçük ölçekli GPS sistemimizi etkili bir şekilde inşa ettik. Optitrack kızılötesi kameralarını ve üçgen şeklindeki Optitrack gri kürelerini kullanarak, ilgi alanımızdaki bir Triton’un tam koordinatlarını belirleyebildik. Bu, hareketin daha iyi doğruluğu için kapalı döngü sistemi uygulamamıza olanak tanıdı.
Optitrack sistemi, düzgün bir şekilde kalibre edildiğinde yaklaşık 120Hz’de milimetre altı hassasiyetle konum ve yön verisi sağladı. Her Triton’un üç yansıtıcı işareti, sistemin bir katı cisim olarak takip edebileceği benzersiz bir üçgen desen oluşturdu. Koordinat sistemi, (0,0) izleme alanının merkezinde olacak şekilde kalibre edildi ve X ve Y eksenleri odanın geometrisiyle hizalandı. Ancak bu hassas konum verilerine rağmen, Triton hala hareket etmekte zorlanıyordu.
Bu kurulumla, Triton’a sağlamak istediğimiz temel özelliklerden biri belirli bir koordinata hareket etme yeteneğiydi. Kullanıcı veya yazılımı, ilgi alanlarında bir (x, y) koordinatı sağlayabilirdi. Ardından robot, mümkün olan en hızlı, en doğru ve en sorunsuz şekilde o koordinata hareket ederdi. Ben katıldığımda, bu özellik vardı ama pek iyi çalışmıyordu. İşte orijinal hareket mantığının nasıl çalıştığını gösteren basit bir animasyon:
Orijinal çözümü eylemde kaydetmedim, bu nedenle eski hareket mantığını eylemde gösteren bu basit animasyonu oluşturdum. Bunu bilerek, bu yöntemle ilgili sorunlar nelerdir?
- Gerçekten yavaş
- Robotun belirli bir noktaya gitmesi için çok fazla alan kaplamasına neden oluyor. Bu, birden fazla Triton’un hareket ettiği durumlarda bu çözümü kullanmamızı zorlaştırdı.
Peki bu davranış neden oluyordu? Sorun, Triton’un önce döndüğü, alfa açısını değiştirerek hedef noktaya belirli bir hata payı içinde yöneldiği için oluyordu. Ardından ileriye doğru koşuyor ve theta açısı hedeften belirli bir miktar uzaklaştığında duruyor ve tekrar dönmeye başlıyordu, ta ki alfa hedef için kabul edilebilir aralık içinde olana kadar. Sonra tekrar koşuyor ve bu noktaya ulaşana kadar bunu yapmaya devam ediyordu. Ayrıca, hedef noktaya yaklaştıkça, dönüş ve sprint hızı çok daha yavaş oluyordu, böylece aşırıya kaçmıyordu. Bu, Triton’un doğal olmayan bir hareket sergilemesine, hedef noktaya ulaşmak için sonsuza kadar sürmesine ve belirli bir hedef noktaya ulaşmak için çok fazla alana ihtiyaç duymasına neden oldu. Tüm bu sorunlarla birlikte, bu özelliğin Triton projesinin geliştirilmesi için ne kadar hayati olduğu göz önüne alındığında, HCR Laboratuvarında çalışmaya başladığımda, ilk görevim Triton’un bir hedef noktaya daha iyi yönelmesini sağlayacak daha etkili çözümler geliştirmek oldu.
Bunu bilerek, bu sorunu ele almanın en iyi yolunu araştırmak için çok zaman harcadım. Ironik bir şekilde, Mines’te Geri Besleme Kontrol Sistemlerine Giriş (EENG307) adlı bir ders alıyordum. O derste, Açık döngü kontrolörleri ve Kapalı döngü kontrolörleri kavramlarını öğrendik. Bunu bilerek ve o dersin profesörüyle ve akıllı oda arkadaşım ile yaptığım bazı tartışmalardan sonra, Triton’u bir hedef noktaya ulaştırma hedefinin kapalı döngü sistemi problemi olduğu netleşti.
Şimdi, kapsamlı testler ve araştırmalar sonrasında, Tritonlar için iki ayrı kontrolör yaklaşımı geliştirdim:
Yöntem 1: Mesafe-Theta Kontrolörü
Bu yaklaşım, aynı anda çalışan iki ayrı orantılı kontrolör kullandı:
- Mesafe Kontrolörü: Hedefe olan Öklid mesafesini hesapladı ve ileri/geri hızı belirlemek için orantılı bir kazanç uyguladı
- Theta Kontrolörü: Robotun mevcut yönü ile hedefe olan istenen yön arasındaki açısal hatayı hesapladı ve döner hız için ayrı bir orantılı kazanç uyguladı
Algoritma sürekli olarak hedefe olan Öklid mesafesini ve robotun mevcut yönü ile istenen yön arasındaki açısal hatayı hesapladı. Doğrusal ve açısal hızları oluşturmak için iki ayrı orantılı kazanç uygulandı.
Bu, Triton’un doğal olarak hedefe doğru dönerken aynı anda ileriye doğru hareket etmesini sağladı ve düzgün eğrili yollar oluşturdu. Ana avantaj, robotun her zaman ön yüzünü varış noktasına doğru yönlendirmesi oldu ki bu, kamera tabanlı uygulamalar için kritik öneme sahipti.
Yöntem 2: X-Y Koordinat Kontrolörü
Bu yaklaşım robotu bağımsız X ve Y hareket kontrolü ile 2D bir plotter gibi ele aldı:
- X Kontrolörü: X-koordinat hatasına dayalı olarak doğu-batı hareketini doğrudan kontrol etti
- Y Kontrolörü: Y-koordinat hatasına dayalı olarak kuzey-güney hareketini doğrudan kontrol etti
Uygulama, X ve Y koordinat hatalarını bağımsız olarak hesapladı, ayrı orantılı kazançlar uyguladı ve ardından bu küresel hız bileşenlerini robotun yerel koordinat çerçevesine döndürmek için döndürme matrislerini kullandı. Bu dönüşüm, robotun omni-tekerlek tahrik sisteminin kendi referans çerçevesinde hızlara ihtiyaç duyması nedeniyle gerekliydi, küresel koordinatlarda değil. Bu yöntem, hedeflere en doğrudan yolları üretti ve önemli ölçüde daha hızlıydı, ancak robotun yönü drift yapıyordu çünkü açık bir yön kontrolü yoktu.
Yöntem #1 için, bu yöntemi Move Turtle (TurtleSim) blogumda ayrıntılı olarak ele aldım. PID kontrolörlerinin genel olarak nasıl çalıştığı ve yöntem #1’in nasıl işlediği hakkında tüm detayları öğrenmek için bu blogu okumanızı şiddetle tavsiye ederim. Yöntem #1’i ROS’un TurtleSim’ini kullanarak geliştirdim, ardından bu kodu Triton’a aktardım ve daha gerçek dünya ortamını hesaba katacak şekilde güncelledim.
Yöntem #2, oldukça farklı ama eşit derecede etkili bir yaklaşım kullandı. Robotun yönü ve hedefe olan mesafesini düşünmek yerine, bu yöntem hareketi bir koordinat düzlemi problemi olarak ele alır. Kontrolör, X ve Y yönlerindeki hatayı sürekli olarak ayrı ayrı hesaplar. Örneğin, robotun (0,0) noktasından (2,3) noktasına hareket etmesi gerekiyorsa, bunu X’te 2 metre ve Y’de 3 metre hata düzeltmesi gerektiği olarak görür. İki orantılı kontrolör aynı anda çalıştı: biri X-hatasına dayalı olarak robotun X yönündeki hızını ayarlarken, diğeri Y-hatasına dayalı olarak Y yönündeki hareketi yönetti. Bu, 3D yazıcı kafasının hareketine benzer şekilde hedefe daha doğrudan bir yol oluşturdu ve pürüzsüz çapraz hareketlere izin verdi. Robotun hedefe bakmak için açıkça dönmesine gerek yoktu, bu da bu yöntemi dar alanlarda veya hassas konumlandırma gerektiğinde özellikle etkili hale getirdi.
Her iki yöntem de orijinal yaklaşımdan önemli ölçüde daha hızlı ve daha güvenilir olduğunu kanıtladı. Bu yeni yöntemleri eylemde görmek için Tritonlar Eylemde Oynatma Listesi’ni kontrol edin, bu liste tüm Tritonların yeni yöntemlerle eylemde olduğunu gösteriyor.
Bir zamanlar basit bir nokta-nokta hareketi için 30-45 saniye süren işlem şimdi yaklaşık 8-12 saniye sürdü. Daha da önemlisi, Triton artık dar alanlarda daha verimli bir şekilde gezinme yeteneğine sahipti, bu da çoklu robot senaryolarımız için faydalı hale geldi.
Geliştirme Zorlukları ve Hata Ayıklama
Bu kontrolörleri uygulamak kolay değildi ve birkaç önemli hata ayıklama zorluğu içeriyordu:
Koordinat Sistemi Dönüşümleri: En zorlayıcı yönlerden biri koordinat dönüşümlerini doğru bir şekilde yapmaktı. Optitrack sistemi kendi koordinat çerçevesinde veri sağlıyordu, robotun kendi yerel koordinat çerçevesi vardı ve bunlar arasında doğru bir şekilde dönüşüm yapmam gerekiyordu. İlk uygulamalarda robotlar yanlış yönlere hareket ediyordu çünkü döndürme matrisleri hesaplamalarını karıştırmıştım.
Gerçek Dünya vs. İdeal Davranış: En büyük zorluk, ders kitabı kontrol teorisinde görünmeyen gerçek dünya faktörlerini hesaba katmaktı. Robotun tekerlekleri farklı sürtünme özelliklerine sahipti, motorlar aynı şekilde tepki vermiyordu ve Optitrack’ten kontrol yazılımına, oradan da robotun Arduino’suna giden iletişim zincirinde her zaman bir gecikme oluyordu. Bu fiziksel gerçekleri hesaba katmak için orantılı kazançları ayarlamak ve deadband filtreleri eklemek için haftalar harcadım.
Salınım ve Stabilite Sorunları: İlk uygulamalarım, robotların hedeflerini aşarak ileri geri sallandığı salınım sorunlarıyla karşılaştı. Bu, PID kontrolörlerinde türev terimlerinin önemini ve uygun kazanç ayarlamanın gerekliliğini anlamamı sağladı. Sonunda, sistemin içsel sönümlemesi çoğu uygulama için yeterli olduğundan, tam PID yerine dikkatlice ayarlanmış kazançlarla ağırlıklı olarak orantılı kontrol üzerinde karar kıldım.
Çoklu Robot Müdahalesi: Birden fazla robot aynı anda çalıştığında, beklenmedik müdahale desenleri keşfettim. Robotlar bazen aynı alan üzerinde “mücadele” ediyor veya birbirlerini sonsuza dek engelleyen deadlock durumları yaratıyordu. Bu, koordinasyon mekanizmaları ve çarpışma önleme algoritmaları uygulamamı sağladı.
Çoklu-Triton Kontrol Sistemi
Tek Triton hareket sorununu çözdükten sonra, laboratuvarın bir sonraki zorluğu birden fazla Triton’un aynı anda birlikte çalışmasını sağlamaktı. Bu, ana odak alanlarımdan biri haline geldi ve projeye önemli bir katkı sağladı.
Orijinal sistem yalnızca bir Triton’u kontrol edebiliyordu, bu da araştırma olanaklarını ciddi şekilde sınırlıyordu. Laboratuvar, birden fazla otonom aracın hareketlerini koordine etmesi gereken senaryoları simüle etmek istiyordu; örneğin, kendi aralarında iletişim kurarak trafik akışını optimize eden ve daha iyi SLAM (Eşzamanlı Konumlandırma ve Haritalama) haritaları oluşturan otonom araçlar.
Bunu çözmek için, Python’un çoklu işleme kütüphanesini kullanarak çoklu işleme yaklaşımını uyguladım. Her Triton, bağımsız olarak çalışabilen kendi özel sürecini aldı, ancak yine de merkezi bir kontrol sistemi tarafından koordine edildi. Bu, birden fazla Triton’un birbirlerinin kontrol döngülerine müdahale etmeden aynı anda hareket etmesine olanak tanıdı.
Çoklu-Robot Mimari Tasarımı
Geliştirdiğim sistem mimarisi birkaç ana bileşenden oluşuyordu:
Ana Kontrol Süreci: Bu, kullanıcı arayüzü etkileşimlerini, yol planlamayı ve robotlar arasındaki yüksek düzeyde koordinasyonu yöneten merkezi koordinatör olarak hizmet etti. Küresel durumu korudu ve bireysel robot süreçlerine komutlar dağıttı.
Bireysel Robot Süreçleri: Her Triton’un, şunları yöneten kendi özel Python süreci vardı:
- ~50Hz’de gerçek zamanlı PID kontrol hesaplamaları
- Robotun donanımıyla (Arduino/Jetson) iletişim
- Yerel yol yürütme ve engel önleme
- Ana kontrolöre geri durum raporlama
Paylaşılan Bellek İletişimi: Süreçler arasında verimli iletişimi sağlamak için Python’un multiprocessing.shared_memory ve Queue nesnelerini kullandım. Bu, ağ iletişimi yükü olmadan gerçek zamanlı koordinasyona olanak tanıdı.
Senkronizasyon Mekanizmaları: Birden fazla robotun koordinasyon gerektirdiği durumlarda (çarpışmalardan kaçınmak gibi) çatışmaları önlemek için, robotların çalışma alanının belirli alanlarına özel erişim talep etmelerine izin veren semaforlar ve kilitler uyguladım.
Zorluk, tüm robotların kontrol döngülerini bağımsız olarak çalıştırabilmesini sağlarken, aynı zamanda küresel koordinasyonu sürdürmekti. Her robot süreci kendi PID hesaplamalarını yürüttü ve motor komutlarını doğrudan donanıma gönderdi, ana süreç ise çarpışma önleme ve yol planlama gibi daha yüksek düzeyde koordinasyonu yönetti.
![]() |
![]() |
Çoklu-Triton sistemi tamamen yeni araştırma olanakları açtı. Artık şunları simüle edebiliyorduk:
- Araçtan araca iletişim senaryoları
- Engel önleme ile koordine yol planlaması
- Sürü robotik davranışları
- Çoklu ajan SLAM haritalama
- Formasyon kontrolü ve takip davranışları
İşte laboratuvar kurulumunun birden fazla Triton’un aynı anda çalıştığı görünümü:
![]() |
![]() |
Ayrıca, araştırmacıların her Triton için yolları görsel olarak tanımlamalarına olanak tanıyan kullanıcı dostu bir arayüz geliştirdim. Gerçekten de her robotun takip etmesini istediğiniz yolu çizebilirdiniz ve bu yolları mükemmel bir koordinasyonla yürütürlerdi. Bu, her hareketi manuel olarak kodlamadan karmaşık deneyler kurmak için son derece faydalıydı.
Sistem, merkezi kontrol sistemi aracılığıyla koordine edilirken, her biri kendi PID kontrolörlerini çalıştıran 5 Triton’a kadar aynı anda çalışabilirdi. Performans etkileyiciydi, tüm robotlar bireysel doğruluklarını korurken bir ekip olarak birlikte çalışıyordu.
İşte tek robot kontrolünden çoklu robot koordinasyonuna kadar Tritonları eylemde gösteren bir oynatma listesi: Tritonlar Eylemde Oynatma Listesi
Derinlik Sensörü Entegrasyonu ve Koordinat Düzeltmesi
Üzerinde çalıştığım bir diğer önemli gelişme, her Triton’a monte edilmiş Intel RealSense D435 derinlik kameralarını kullanmaktı. Optitrack sistemi bize son derece hassas konum verileri sağlarken, robotların kendi yerleşik sensörlerini kullanarak mekansal farkındalıklarını artırmalarını ve koordinat hatalarını düzeltmelerini nasıl sağlayabileceğimi keşfetmek istedim.
Fikir, Tritonların derinlik sensörlerini kullanarak çevrelerindeki diğer Tritonları tespit etmeleri ve konumlarını çapraz referansla doğrulamalarıydı. Bu, birden fazla amaca hizmet edecekti:
-
Hata Düzeltme: Eğer Optitrack sisteminde herhangi bir kalibrasyon kayması veya geçici bir engelleme varsa, robotlar birbirlerinin konumlarının görsel onayını kullanarak doğru koordinat sistemlerini koruyabilirlerdi.
-
Gelişmiş SLAM: Birden fazla derinlik sensörüne sahip robotun birlikte çalışmasıyla, çevrenin daha zengin haritalarını oluşturabiliriz.
-
Çarpışma Önleme: Gerçek zamanlı derinlik algılama, robotların merkezi kontrol sisteminin iletişim gecikmeleri olsa bile birbirlerini tespit edip kaçınmalarını sağlar.
Tritonların:
- Kendilerine özgü üçgen şekilleri ve yansıtıcı küre işaretçileri kullanarak diğer Tritonları tespit etmelerini
- Derinlik verilerini kullanarak göreceli konumları ve yönleri hesaplamalarını
- Bu ölçümleri Optitrack verileriyle karşılaştırarak tutarsızlıkları tanımlamalarını
- Doğruluğu korumak için gerçek zamanlı olarak koordinat sistemlerini ayarlamalarını sağlamak amacıyla algoritmalarla denemelere başladım.
Bilgisayarla Görme Deneyleri
Birden fazla aşamada çalışan bir bilgisayarla görme hattı üzerinde denemeler yapmak için önemli bir zaman harcadım:
![]() |
![]() |
![]() |
![]() |
![]() |
Derinlik Verisi İşleme: Intel RealSense D435, hem RGB hem de derinlik veri akışları sağladı. Ben esas olarak 30Hz’de 640x480 mesafe ölçümleri olarak gelen derinlik verisiyle çalıştım. İlk zorluk, bu gürültülü derinlik verisini anlamlı geometrik bilgileri çıkarmak için filtrelemekti.
Nesne Tespiti Denemeleri: Çok aşamalı tespit algoritmaları ile denemeler yaptım. Derinlik görüntüsünü segmentleyerek zemin seviyesindeki nesneleri tanımlamada (duvarlar, tavan vb. hariç tutarak) bazı başarılar elde ettim ve yaklaşık 0.3x0.3 metre ayak izine sahip nesneleri aradım. Kenar tespiti ve geometrik analiz kullanarak belirgin Triton profilini tanımlamaya çalıştım, karışık sonuçlar aldım.
İşaretçi Tanıma Deneyleri: Her Triton üzerindeki üç yansıtıcı küre, en umut verici tespit özelliği gibi görünüyordu. Derinlik görüntüsündeki üç parlak noktanın karakteristik üçgen desenini tanımlamak için blob tespit algoritmaları ile denemeler yaptım. Kontrol edilen aydınlatma koşullarında bazı umut verici sonuçlar aldım, ancak bu sürekli güvenilir değildi.
Koordinat Birleştirme Araştırması: Görme tabanlı konum tahminlerini Optitrack verileriyle birleştirme yaklaşımlarını araştırdım, temel Kalman filtre uygulamaları dahil. Amaç, Optitrack verileri mevcut olduğunda daha fazla ağırlık vermek, ancak gerektiğinde görmeye geri dönmekti, ancak laboratuvardaki zamanım sona ermeden bunu tam olarak çalıştırmayı başaramadım.
Performans Zorlukları: Tüm bu işlemleri robotun kontrol döngüleriyle gerçek zamanlı olarak çalıştırmak zorlayıcı oldu. Jetson Nano’nun işlem kapasitesini aşmadan algoritmaları yaklaşık 10-15Hz’de çalıştırmak için optimizasyon yaklaşımları ile denemeler yaptım.
Ne yazık ki, bu bilgisayarla görme çalışmalarını tam olarak tamamlamadan laboratuvardan ayrılmak zorunda kaldım. Bazı umut verici erken sonuçlar aldım ve derinlik sensörü işleme hakkında çok şey öğrendim, ancak sistemi tamamen güvenilir bir duruma getiremedim. Diğerlerinin potansiyel olarak üzerine inşa edebileceği ilginç bir araştırma yönü olarak kaldı.
Bilgisayarla görme algoritmalarını test ettiğim bir video:
Deneylerim sırasında derinlik sensörü görünümünün nasıl göründüğü:
Derinlik sensörü entegrasyon işini tamamlayamasam da, bu kavram, araçların yalnızca dış altyapıya güvenmeden birbirlerinin farkında olması gereken otonom araç senaryolarını simüle etme gibi uygulamalar için umut verici görünüyordu. Başladığım araştırma yönü, laboratuvardaki gelecekteki çalışmalara katkıda bulunabilir.
Dokümantasyon ve Bilgi Koruma
HCR Laboratuvarı’na yaptığım en önemli katkılardan biri ve belki de en gurur duyduğum şey, tüm proje dokümantasyonunu düzenlemek ve korumaktı. Laboratuvara katıldığımda, Triton projesinin bilgisi birden fazla platform ve formatta dağınık haldeydi. Kritik bilgiler şunlar arasında dağılmıştı:
- Mezun olan farklı öğrencilerin sahip olduğu çeşitli Google Drive hesapları
- Gelen kutularında gömülü eski e-postalar
- Rastgele Dropbox klasörleri
- Birden fazla GitHub deposu
- Tutarsız organizasyona sahip GitLab depoları
- Sadece belirli kişilerin yorumlayabileceği el yazısı notlar
Bu parçalı dokümantasyon büyük bir sorundu. Yeni öğrenciler, nasıl başlayacaklarını anlamak için haftalar harcıyordu ve değerli bilgiler, insanlar mezun olduğunda veya laboratuvardan ayrıldığında sürekli kayboluyordu.
Bu sorunu sistematik bir şekilde çözmeyi kendime görev edindim. Triton projesiyle ilgili her bir dokümantasyon, kod, video ve not parçasını bulmak için sayısız saat harcadım. Ardından her şeyi net, mantıklı bir yapı ile merkezi bir GitLab deposuna düzenledim.
![]() |
![]() |
Merkezi dokümantasyon şunları içeriyordu:
- İnşa Kılavuzları: Tritonları sıfırdan birleştirmek için adım adım talimatlar
- Yazılım Kurulumu: Geliştirme ortamını kurmak için tam kılavuzlar
- Kod Dokümantasyonu: Açıklamaları net olan iyi yorumlanmış kod
- Donanım Spesifikasyonları: Detaylı parça listeleri, kablolama şemaları ve PCB tasarımları
- Sorun Giderme Kılavuzları: Yaygın problemler ve çözümleri
- Video Eğitimleri: Optitrack kalibrasyon eğitimleri de dahil olmak üzere YouTube’a yüklediğim öğretici videolar:
Ayrıca, gelecekteki katkıların düzenli ve erişilebilir olmasını sağlamak için dokümantasyon standartları belirledim. Oluşturduğum depo yapısı, laboratuvardaki tüm sonraki çalışmaların temeli haline geldi.
Mevcut dokümantasyonu düzenlemenin ötesinde, bilgi tabanındaki kritik boşlukları dolduran birkaç orijinal kılavuz ve eğitim de oluşturdum. Bunlar, yeni laboratuvar üyeleri için detaylı kurulum talimatları, kapsamlı sorun giderme kılavuzları ve karmaşık prosedürlerin video anlatımları içeriyordu.
Etkisi hemen ve kalıcı oldu. Yeni öğrenciler, haftalar yerine günler içinde hızla adapte olabiliyordu. Oluşturduğum dokümantasyon deposu, laboratuvar tarafından bugün bile kullanılmaktadır, ayrıldıktan yıllar sonra bile. Triton projesi için tek bir gerçeklik kaynağı haline geldi ve gelecekteki araştırmacılar için sayısız saat/gün kazandırdı.
Mentorluk ve Bilgi Aktarımı
HCR Laboratuvarı’ndaki zamanımın en ödüllendirici yönlerinden biri, başkalarına mentorluk yapma ve edindiğim bilgileri paylaşma fırsatıydı. Çalışmalarım ilerledikçe ve Triton sistemleri konusunda daha deneyimli hale geldikçe, yeni ekip üyelerini eğitme konusunda artan sorumluluklar üstlendim.
Laboratuvar Haleflerine Mentorluk
Laboratuvardan ayrılıp lisansımı tamamlama ve eBay’deki işime odaklanma hazırlığı yaparken, ayrılışımın ardından Triton projesini devralacak iki kişiyi kapsamlı bir şekilde eğitmeye özen gösterdim. Bu sadece onlara işlerin nasıl çalıştığını göstermekle ilgili değildi, aynı zamanda yenilik yapabilmeleri için temel ilkeleri gerçekten anlamalarını sağlamaktı.
Onlarla birlikte haftalarca çalıştım, şunları gözden geçirerek:
- PID kontrol sistemlerinin matematiksel temelleri
- Birden fazla robotu koordine etmek için çoklu işlem mimarisi
- Derinlik sensörü entegrasyonu ve bilgisayarla görme algoritmaları
- Dokümantasyon sistemi ve nasıl sürdürüleceği
- Hata ayıklama teknikleri ve yaygın arıza modları
Bilgi aktarımı son derece kapsamlıydı. Gerçek hata ayıklama oturumları gerçekleştirdik, mevcut kodu değiştirmelerini ve genişletmelerini sağladım ve yeni Tritonları sıfırdan bağımsız bir şekilde kurabileceklerinden emin oldum.
Lise Mentorluk Programı
Belki de daha da ödüllendirici olan, laboratuvarın topluluk programı aracılığıyla bir lise öğrencisine mentorluk yapma deneyimimdi. Bu, birine robotik, bilgisayar bilimi ve araştırmayı eğitimlerinin şekillendirilme aşamasında tanıtmak için harika bir fırsattı.
Aşağıdaki konuları kapsayan kapsamlı bir müfredat tasarladım:
Bilgisayar Bilimi Temelleri:
- Python’u ana dil olarak kullanarak programlama kavramları
- Nesne yönelimli programlamaya giriş
- Algoritmalar ve veri yapıları anlayışı
Robotik Kavramları:
- Sensörlerin nasıl çalıştığı ve onlarla nasıl arayüz oluşturulacağı
- Aktüatör kontrolü ve motor sistemleri
- Otonom sistemlerin ve geri bildirim kontrolünün temelleri
ROS (Robot İşletim Sistemi):
- Yayınla/abone ol mesajlaşma sisteminin anlaşılması
- Düğümler ve hizmetler oluşturma
- Başlatma dosyaları ve parametre sunucuları ile çalışma
Uygulamalı Proje Çalışması:
- Triton’un başındaki LED sistemini kontrol eden bir ROS hizmeti oluşturmak için işbirliği yaptık
- Mevcut sistemlerimizle entegre olan temiz, belgelenmiş kod yazmayı öğrendi
- Oluşturduğu LED kontrol hizmeti, Triton kod tabanının kalıcı bir parçası haline geldi
Bu mentorluk deneyimini özel kılan, onun programlama hakkında neredeyse hiçbir şey bilmemesinden aktif bir araştırma projesine anlamlı kod katkısı yapmasına kadar olan ilerlemesini izlemekti. “Değişken nedir?” diye sormaktan, bağımsız olarak ROS iletişim sorunlarını hata ayıklamaya ve kendi hizmet uygulamalarını yazmaya kadar ilerledi.
Geliştirdiği LED kontrol sistemi, araştırmacıların Triton’un başındaki LED’lerin renklerini ve desenlerini basit ROS komutlarıyla kolayca değiştirmelerini sağladı. Bu basit gibi görünebilir, ancak ROS mimarisini, donanım arayüzünü ve uygun yazılım tasarım kalıplarını anlamayı gerektiriyordu. Onun katkısı, bugün laboratuvar tarafından hala kullanılmaktadır.
Mentorluk, benim için olduğu kadar onun için de eğitici oldu. Karmaşık kavramları sindirilebilir parçalara ayırmamı sağladı ve yaptığımız şeylerin temelleri hakkında gerçekten düşünmemi sağladı. Başka birine öğretmek, beni daha iyi bir mühendis ve araştırmacı yaptı.
Doktora Araştırması ile İşbirliği
Laboratuvarımda geçirdiğim zamanın en profesyonel olarak tatmin edici yönlerinden biri, otonom araç algoritmalarına odaklanan doktora öğrencisi Peng ile yakın çalışmaktı. Triton sistemine yaptığım yazılım iyileştirmeleri, onun doktora araştırmasını desteklemeye yardımcı oldu.
Peng’in araştırması, otonom araç senaryolarını simüle etmek için hassas, güvenilir çoklu robot koordinasyonu gerektiriyordu. Hareket kontrolü ve çoklu robot sistemlerindeki iyileştirmelerimden önce, bu deneyler çok daha zor gerçekleştiriliyordu. Robotlar daha yavaş, daha az doğruydu ve birlikte daha etkili çalışamıyordu.
Katkılarım, Peng’in araştırmasına birkaç alanda yardımcı oldu:
Kavşak Yönetimi Çalışmaları: Geliştirilmiş PID kontrolörleri ve çoklu robot koordinasyonu ile Peng, birden fazla “araç” (Tritonlar) hareketlerini koordine etmesi gereken kavşak senaryolarını simüle edebildi. Daha iyi zamanlama ve konumlandırma, bu çalışmaları daha uygulanabilir hale getirdi.
Araçlar Arası İletişim: Geliştirdiğim çoklu işleme çerçevesi, Peng’in simüle edilmiş araçlar arasında iletişim protokollerini uygulamasına ve test etmesine olanak tanıdı. Her Triton, diğerleriyle koordine olurken kararlar alabiliyordu, bu da otonom araçların nasıl çalışması gerektiğine benziyordu.
SLAM ve Haritalama Araştırması: Derinlik sensörü entegrasyon çalışması, Peng’e eşzamanlı konumlandırma ve haritalama araştırması için ek veriler sağladı. Koordine edilmiş algılama yeteneklerine sahip birden fazla robotun olması, daha kapsamlı haritalama deneyleri yapılmasına olanak tanıdı.
İşbirliğimizi özellikle değerli kılan şey, sadece benim onun araştırmasına yardımcı olmam değil, gerçek bir ortaklık olmasıydı. Peng’in otonom araçların teorik yönlerini anlaması, benim pratik uygulamalarımı bilgilendirmeye yardımcı oldu. Onun geri bildirimleri ve gereksinimleri, sistemleri daha sağlam ve yetenekli hale getirmem için beni zorladı.
Laboratuvarın içinde birçok saat geçirdik, senaryoları hata ayıkladık, farklı kontrol stratejilerini tartıştık ve Triton platformunun neler başarabileceğini keşfettik. Peng, hem bir meslektaş hem de bir arkadaş haline geldi ve onunla çalışmak, akademik araştırmanın nasıl işlediği hakkında çok şey öğrenmeme yardımcı oldu.
Yaptığım sistemler, Peng’in tez çalışmasının faydalı bir parçası haline geldi. Pratik mühendislik katkılarımın otonom araç teknolojisi araştırmasını desteklediğini görmek gerçekten tatmin ediciydi. Sağlam mühendislik ve araştırmanın nasıl birlikte çalışarak faydalı sonuçlar yaratabileceğine olan ilgimi pekiştirdi.
Laboratuvardan ayrıldıktan sonra bile, Peng ile iletişimde kaldık. Çalışmamın ayrıldıktan sonra bile önemli araştırmalara katkıda bulunmaya devam ettiğini bilmek son derece tatmin ediciydi.
Perspektif: Ön-LLM Geliştirme Dönemi
Tüm bu çalışmaların, yazılım geliştirme öncesi LLM döneminde gerçekleştirildiğini belirtmek önemlidir. Tüm bunlar 2020 ile 2021 (özellikle 2021) arasında gerçekleşti, ChatGPT, Claude, Perplexity veya Cursor IDE gibi AI destekli geliştirme araçları mevcut değildi.
Her bir kod satırı sıfırdan yazıldı, her algoritma akademik makaleler ve ders kitapları aracılığıyla araştırıldı ve her hata ayıklama oturumu geleneksel yöntemler olan print ifadeleri, hata ayıklayıcılar ve metodik testler içeriyordu. Bir koordinat dönüşümü veya PID ayarlama problemiyle karşılaştığımda, bir AI asistanına kavramı açıklamasını veya sorunu çözmesine yardımcı olmasını isteyemezdim.
Bu, geliştirme sürecini önemli ölçüde daha zor hale getirdi ama aynı zamanda daha eğitici oldu. Şunları yapmak zorundaydım:
Her Şeyi Manuel Olarak Araştırmak: PID kontrol teorisini anlamak, ders kitapları ve akademik makaleleri okumayı gerektiriyordu. Koordinat dönüşümlerini anlamak, matematiği elle çözmeyi gerektiriyordu. Her kavram, uygulanmadan önce tamamen anlaşılmalıydı.
AI Yardımı Olmadan Hata Ayıklamak: Robotlar beklenmedik yönlere hareket ettiğinde veya hedefler etrafında salındığında, mantığı metodik olarak izlemek, hata ayıklama çıktıları eklemek ve hipotezleri birer birer test etmek zorundaydım. Potansiyel sorunları önermek veya hata desenlerini yorumlamak için AI yoktu.
İlk Prensiplerden Öğrenmek: “Robotik için Python’da çoklu işleme nasıl uygulanır?” sorusunu hızlıca sorma yeteneğim olmadan, temel kavramları derinlemesine anlamak zorundaydım. Bu, beni eşzamanlı programlama, kontrol sistemleri ve bilgisayarla görme konularında sağlam bir temel oluşturmaya zorladı.
Dokümantasyon Kritikti: Daha sonra kodu açıklamak için AI’ya güvenemediğim için, son derece net dokümantasyon ve yorumlar yazmak zorundaydım. Bu disiplin, bilgiyi başkalarına aktarırken son derece değerli oldu.
Geriye dönüp baktığımda, modern AI araçlarının birçok geliştirme yönünü hızlandıracağına inanıyorum, ancak bunlarsız çalışmak, daha derin problem çözme becerileri geliştirmemi ve temel sistemlerin daha kapsamlı bir anlayışını kazanmamı sağladı. Bugünün geliştirme araçlarıyla bu projenin ne kadar farklı olabileceğini düşünmek ilginç.
Ayrılma Kararının Zorluğu
HCR Laboratuvarında çalışmayı çok sevsem de, 2021’in sonlarına doğru birçok öğrencinin karşılaştığı zor bir karar ile karşılaştım: birden fazla fırsat ve sorumluluğu dengelemek. Aynı anda eBay’de tam zamanlı yazılım mühendisi olarak çalışıyor, Mines’ta bilgisayar bilimi diplomasını tamamlıyor ve HCR Laboratuvarında araştırmaya katkıda bulunuyordum.
eBay fırsatı önemliydi; bu benim ilk büyük yazılım mühendisliği rolüm, paha biçilmez endüstri deneyimi sağladı ve bana sağlam bir gelir sağladı. Ancak, tam zamanlı çalışmayı sürdürmeye, diplomamı tamamlamaya ve araştırmaya anlamlı bir şekilde katkıda bulunmaya çalışmak basitçe sürdürülemezdi. Bir şeyin değişmesi gerekiyordu.
Laboratuvar çalışmasına daha fazla odaklanmak için ders yükümü azaltma olasılığını Dr. Zhang’a sorduğumda, buna kesinlikle karşı çıktı. Gerekçesi mantıklıydı: diplomamı tamamlamak öncelik olmalıydı ve eBay’deki endüstri deneyimi kariyer gelişimim için değerli olacaktı. Araştırmaya odaklanmak için dersleri bırakmanın, cazip olsa da, en iyi uzun vadeli karar olmayabileceğini düşündü.
Bu nedenle, Eylül 2021’de, laboratuvardaki yaklaşık 8 aylık yoğun çalışmanın ardından, araştırma asistanı rolümden geri adım atma ve diplomamı tamamlama ile eBay’deki işime odaklanma kararı aldım. O dönemde vermem gereken en zor profesyonel kararlardan biriydi.
Laboratuvardan resmi olarak ayrıldıktan sonra bile, yaptığım sistemlerle ilgili yardım isteyen herkese destek vermeye devam ettim. Gerekli olduğunda dokümantasyonu güncelledim, hata ayıklama ile ilgili soruları yanıtladım ve uzaktan sorunları çözmeye yardımcı oldum. Kurduğum bağlantılar ve projenin başarısına yaptığım yatırım, artık resmi olarak ekibin bir parçası olmasam bile kaybolmadı.
Düşünceler ve Geriye Bakış
Şimdi, 2025’te, dört yıl sonra, o dönemi karmaşık duygularla düşünüyorum. Kariyer yolum beni web geliştirme ve AI/ML mühendisliğine derinlemesine götürdü; bu alanlar son derece tatmin edici oldu ve büyüme ve etki için muazzam fırsatlar sağladı.
Yine de, “ya ne olursa” diye merak ettiğim bir yanım var. Robotik, benim gerçek tutkumdu ve hala öyle. Fiziksel sistemlerle çalışmanın, kodunuzun gerçek dünya hareketine ve davranışına dönüşmesini görmenin, web geliştirme ve hatta AI çalışmalarının tam olarak taklit edemediği bir şey var.
Farklı bir yol seçseydim neler olabileceğini bazen merak ediyorum. Robotik araştırmada kalmanın bir yolunu bulsaydım ne olurdu? Lisans diplomasını bitirdikten hemen sonra yüksek lisans okuluna gitseydim ne olurdu? Endüstri deneyimini önceliklendirmek yerine laboratuvar çalışmasına odaklanmayı seçseydim ne olurdu?
Ama her yolun kendi ticaretleri olduğunu da kabul ediyorum. Web geliştirme ve AI’da geliştirdiğim beceriler son derece değerli oldu. Endüstri deneyimi, ölçekli yazılım mühendisliği, kullanıcı deneyimi tasarımı ve milyonlarca insanın kullandığı ürünleri oluşturmanın pratik zorlukları hakkında bana bilgi verdi. Bu deneyimler, genel olarak beni daha iyi bir mühendis yaptı.
HCR Laboratuvarında yaptığım çalışmalar, bugün sorunlara yaklaşımımı etkilemeye devam ediyor. PID kontrol sistemleri için gereken sistematik düşünme, yazılım sistemlerinde geri bildirim döngüleri tasarlarken kendini gösteriyor. Geliştirdiğim dokümantasyon ve bilgi koruma becerileri, o zamandan beri her rolde son derece değerli oldu. Mentorluk ve öğretim deneyimi, genç geliştiricilerle nasıl çalıştığımı ve ekip bilgi paylaşımına nasıl katkıda bulunduğumu şekillendirdi.
En önemlisi, bu deneyim bana gerçek dünya etkisi olan zorlu teknik problemler üzerinde çalışırken başarılı olduğumu öğretti. İster robot hareket algoritmalarını optimize etmek, ister kullanıcıların hedeflerine ulaşmalarına yardımcı olan AI sistemleri inşa etmek olsun, tatmin, önemli olan zorlu problemleri çözmekten geliyor.
Kalıcı Etki
HCR Laboratuvarı deneyimime geri dönüp baktığımda, nispeten kısa bir sürede ne kadar çok şey başardığıma hayret ediyorum. Yaptığım sistemler, Triton platformunun çalışma şeklini köklü bir şekilde değiştirdi ve bu iyileştirmelerin birçoğu hala kullanılmakta. Oluşturduğum dokümantasyon deposu, tüm projenin bilgi tabanı haline geldi. Kurduğum mentorluk ilişkileri, birlikte çalıştığım insanlar üzerinde kalıcı bir etki bıraktı.
Ama belki de en önemlisi, bu deneyim bana gerçekten tutkulu olduğum problemler üzerinde çalışırken neler yapabileceğimi gösterdi. O sekiz ayda, ben:
- Platformu sınırlayan robot hareket kontrol sistemini geliştirdim
- Sıfırdan çoklu robot koordinasyon sistemi inşa ettim
- Bilgisayarla görme ve sensör füzyon yeteneklerini entegre ettim
- Kapsamlı bir dokümantasyon ve bilgi yönetim sistemi oluşturdum
- Birkaç kişiyi mentorluk yaptım ve bilgi transferine yardımcı oldum
- Otonom araçlar üzerine doktora düzeyinde araştırmaları destekledim
Bu sadece teknik başarılarla ilgili değildi, bunlar benim için anlamlıydı. Azim ve sistematik düşünme ile, bir lisans öğrencisi olarak bile faydalı katkılarda bulunabileceğimi öğrenmekle ilgiliydi.
Gelecek ve Robotik
Kariyerim beni başka yönlere götürmüş olsa da, robotlara olan tutkum azalmadı. Alanındaki gelişmeleri takip etmeye devam ediyorum, robot öğrenimi ve otonom sistemlerdeki ilerlemeler beni heyecanlandırıyor ve boş zamanlarımda kişisel robot projeleri üzerinde çalışıyorum.
Gelecekte neler olacağını kim bilir? AI ve makine öğrenimi alanında geliştirdiğim beceriler, robotik ile giderek daha fazla ilgili hale geliyor. Kazandığım endüstri deneyimi, sağlam ve ölçeklenebilir sistemler inşa etmeyi öğretti. Belki de bu farklı deneyim alanlarımın beklenmedik şekillerde bir araya geldiği bir gelecek vardır.
Şimdilik, HCR Laboratuvarında geçirdiğim zaman ve sağladığı deneyimler için minnettarım. Hem teknik becerilerimi hem de en tatmin edici bulduğum iş türlerini anlamamı şekillendiren bir dönemdi. Bazen özlesem de, öğrendiğim derslerin ve geliştirdiğim yaklaşımların yaptığım her şeyi etkilemeye devam ettiğini biliyorum.
Triton robotları hala orada, hala araştırmacılara hizmet ediyor, hala önemli çalışmaları mümkün kılıyor. Ve bu oldukça harika.

















