Robotik Araştırma Bölgem
Table of Contents
Bu yazı, lise yıllarımda 2015 yılında FRC kapsamında robotik tutkumun keşfedilmesiyle başlayan ve Şubat 2021 ile Eylül 2021 arasında Colorado School of Mines’s İnsan Merkezli Robotik (HCR) Laboratuvarında araştırma asistanı olarak geçirdiğim döneme kadar uzanan robotik yolculuğumu anlatıyor. Şunu belirtmek gerekir ki, 2022’nin sonlarından itibaren HCR Laboratuvarı, Colorado School of Mines’dan Massachusetts Amherst Üniversitesine taşınmış ve sitesi de hcr.mines.edu adresinden hcr.cs.umass.edu adresine geçmiştir.
Arka Plan
Lisans eğitimime Colorado School of Mines’da 2018 Güz döneminde başladım. Bölümüm, Robotik ve Akıllı Sistemler odaklı Bilgisayar Bilimleri idi. Ve 2022 Baharında mezun oldum.
Hayatta tutkumu erken bulduğum için şanslıydım. Lise boyunca, neyi sevdiğimi ve ne konuda iyi olabileceğimi anlamak için epey zaman harcadım. Biraz deneme yanılmadan sonra, tutkumun bilgisayar bilimi olduğunu anladım. Ama aynı zamanda bu dönemde kod aracılığıyla bir şeyler inşa etmeye karşı ezici bir sevgi duyduğumu keşfettim.
Mines’da, Dr. Hao Zhang altında Mines’ın İnsan Merkezli Robotik (HCR) Laboratuvarı’nda çalışma fırsatı buldum. Dr. Zhang ile ilk kez 2020 Baharında onun “İnsan Merkezli Robotik” (CSCI473) dersinde tanıştım ve COVID ile ders işlerinin kaosundan sonra, 2021 Baharının başlarında laboratuvarında çalışmaya başladım.
İnsan Merkezli Robotik (CSCI473) Dersi
Mines’ın İnsan Merkezli Robotik (CSCI473) dersi, üniversite deneyimimde üzerimde derin bir etki bırakan az sayıdaki dersten biriydi. Ders, Dr. Hao Zhang tarafından veriliyordu. Ders için tüm notumuz yalnızca üç projeden oluşuyordu ve bunların her biri robotiğin temel kavramlarını tanıtan zorlayıcı bir problem sunuyordu. Bu projeler şunlardan oluşuyordu:
- Robot İşletim Sistemini (ROS) Öğrenmek
- Robot Duvar Takibi için Pekiştirmeli Öğrenme
- İskelet Tabanlı Temsiller Kullanarak İnsan Davranışlarının Robot Tarafından Anlaşılması
Robot İşletim Sistemini (ROS) Öğrenmek
Bu bize verilen ilk projeydi. Proje üç görevden oluşuyordu:
- Geliştirme Ortamını Kurmak
- Gazebo Simülatörünü Anlamak
- Bir ROS “Hello World” Yazmak
1 ve 2. görevler için sadece geliştirme ortamımızı kurmamız ve Gazebo’ya giriş eğitimini takip etmemiz gerekiyordu. Buna şunlar dahildi:
- ROS Melodic’i kurmak; bunu 2011 model HP dizüstü bilgisayarımda yaptım ve bu yeterince iyiydi
- ROS ve Gazebo’yu yüklemek ve yapılandırmak
- gazebosim’in eğitimi ve e-manual’ın eğitiminden geçmek.
Öte yandan 3. görev gerçek bir meydan okumaydı. Görev, turtlesim kullanmak ve kaplumbağaya Mines’ın “M” logosunu çizdirmekti:
![]() |
![]() |
Bu görev, kulağa basit gelse de, göründüğünden daha zordu. Bu proje sonunda bana Açık Döngü ve Kapalı Döngü sistemleri kavramını tanıttı. Tam proje açıklaması için csci473-p1.pdf dosyasına göz atabilirsiniz; ayrıca bu proje ve çözümüm hakkında ROS Move Turtle proje sayfasında daha fazla bilgi edinebilirsiniz.
Robot Duvar Takibi için Pekiştirmeli Öğrenme
Bu bize verilen ikinci projeydi ve üniversitede üzerinde çalıştığım en zor projelerden biriydi. Proje açıklaması şu şekildeydi:
Bu projede öğrenciler, otonom bir mobil robota duvarı takip etmeyi ve engellere çarpmaktan kaçınmayı öğretmek için pekiştirmeli öğrenme algoritmaları tasarlayacak ve uygulayacaklardır. Öğrenciler, Triton adlı omnidirectional bir mobil robotu simüle etmek ve size sağlanan bir ortam haritasını kullanmak için ROS Melodic içinde Gazebo simülasyonunu kullanacaklardır. Öğrenciler, algılama ve öğrenme gerçekleştirmek için robottaki bir lazer menzil tarayıcısını kullanacaklar; robot ise direksiyon ve hız komutlarıyla kontrol edilecektir. Öğrencilerin bu projeyi Ubuntu 18.04 LTS üzerinde çalışan ROS Melodic’te C++ veya Python kullanarak programlaması gerekmektedir (yani, Proje 1’de kullanılan aynı geliştirme ortamı). Ayrıca öğrencilerin LATEX kullanarak standart IEEE robotik konferanslarının biçimini takip eden bir rapor yazmaları gerekmektedir.
Pekiştirmeli öğrenme algoritması için Q-Öğrenme kullanmamız istendi. Ayrıca sınıfın sağladığı Stingray Gazebo simülasyon ortamını da kullandık. Stingray, Triton modelinden ve fizik mantığından oluşuyordu. Ayrıca robotun takip edeceği bir labirent de bize sağlanmıştı. Tüm bunlar bir araya geldiğinde ortam şöyle görünüyordu:
Çözümümü GitHub’a ya da web’e hiç yüklemedim çünkü pek iyi değildi ve ciddi biçimde kusurluydu. Ayrıca kodu doğru ortamda çalıştırmak oldukça zor ve can sıkıcıdır. Ancak derse teslim ettiğim ve çözümümü gösteren bir tanıtım videom var. Buradan izleyebilirsiniz:
Tam proje açıklaması için csci473-p2.pdf dosyasına göz atabilirsiniz
İskelet Tabanlı Temsiller Kullanarak İnsan Davranışlarının Robot Tarafından Anlaşılması
Üçüncü proje için, proje açıklaması şu şekildeydi:
Bu projede öğrenciler, birkaç iskelet tabanlı temsil (Teslim Edilecek 1) uygulayacak ve Kinect V1 sensöründen toplanmış herkese açık bir etkinlik veri kümesini kullanarak insan davranışlarını sınıflandırmak için Destek Vektör Makineleri (SVM’ler) (Teslim Edilecek 2) kullanacaktır. Ek olarak, öğrencilerin Teslim Edilecek 3’te LATEX kullanarak standart IEEE robotik konferanslarının biçimini takip eden bir rapor yazmaları gerekmektedir.
Bu proje zorluydu ama ikinci proje kadar zor değildi. Ana hedef, MSR Günlük Aktivite 3D Veri Kümesinden alınan Kinect V1 sensör verilerini ve Destek Vektör Makinelerini kullanarak belirli insan eylemlerini/davranışlarını sınıflandırmaktı. Tam proje açıklaması için csci473-p3.pdf dosyasına göz atabilirsiniz; ayrıca bu proje ve çözümüm hakkında LIBSVM Kullanarak İnsan Eylemlerini Tahmin Etme blog yazısında daha fazla bilgi edinebilirsiniz.
CSCI473 Sonuç
CSCI473, Mines da lisans eğitimim sırasında aldığım en iyi derslerden biri, hatta belki de en iyisiydi. Bu projelerin hepsi bana çok şey öğretti ve özgeçmişimde üzerinde düşünebileceğim ve referans verebileceğim harika bir proje kataloğuna sahip olmamı sağladı. Aynı zamanda, testlerde hiç iyi olmama rağmen projeleri tamamlamada başarılı olduğum için, kendimi ilk kez gerçekten kendi alanımda hissettiğim ders oldu. Ayrıca bu ders sayesinde Dr. Hao Zhang ile tanıştım; o da sonunda bana Mines’ın İnsan-Merkezli Robotik (HCR) Laboratuvarı’nda araştırma asistanı olarak bir pozisyon bulmamda yardımcı oldu.
CS Alan Oturumu (Yaz 2020)
2020 Yazında, CSCI473’ü tamamlayıp HCR Laboratuvarı’na katılmadan önce, Colorado School of Mines’daki CS lisans programımın bir parçası olarak CSCI370 ya da “İleri Yazılım Mühendisliği” dersini aldım. CSCI370, öğrencilerin bir şirket için yazılımla ilgili çözümler tasarlamasını, uygulamasını ve belgelemesini sağlayan bir derstir. Öğrencilerin ders kapsamındaki bilgi birikimlerini gerçek dünya bilgisayar bilimi problemlerine uygulamalarına olanak tanır. Ders hakkında daha fazla bilgiyi buradan öğrenebilirsiniz.
Derste hangi proje/şirket üzerinde çalışacağınızı siz seçersiniz. Ders, her proje ve şirketi ayrıntılı olarak açıklayan PDF’ler sağlıyordu. Sonunda Lunar Outpost adlı bir şirketin “Geliştirilmiş Ay Navigasyonu için Gerçek Zamanlı Tekerlek Kayması Tespiti ve Hata Düzeltmeleri” adlı projesi üzerinde çalışmaya karar verdim. Adı uzun olduğu için, projeye “Tekerlek Kayması Tespiti” şeklinde bir takma ad verelim.
Sorun
Lunar Outpost, otonom ay gezginleri oluşturmayı amaçlayan bir girişimdir. Ayda, tekerlek kaymasına çok neden olduğu bilinen çok fazla ay tozu vardır. Bu ideal değildir çünkü tekerlek kayması, otonom sistemlerin gerçek dünyadaki konumlarını takip edememesine yol açabilir. Dünya’da bu sorun, tekerlek kaymasının neden olduğu herhangi bir sapmayı düzeltmek için GPS verileri kullanılarak çözülür. Ancak GPS ile ilgili sorun, onun ancak Dünya etrafında yörüngede sürekli dönen 30+ navigasyon uydusunun benzersiz sinyaller iletmesi sayesinde çalışmasıdır; bu sinyaller bilgisayarların konumlarını hesaplamasına olanak tanır. Fakat Ay’da şu anda GPS diye bir şey yoktur. Bunu bildiğimiz için, tekerlek kaymasını tespit etmek amacıyla GPS dışında başka bir yöntem kullanılmalıdır. Projenin sorununa ilişkin daha ayrıntılı bir rapor buradan görüntülenebilir.
Ekip
Bu proje basit bir proje değildi, bu yüzden bir ekip halinde yapılması gerekiyordu. Ekip, beş Colorado School of Mines öğrencisinden oluşuyordu:
Bu proje basit bir proje değildi, bu yüzden bir ekip halinde yapılması gerekiyordu. Bu ekip Mehmet Yilmaz (ben), Kane Bruce, Braedon O’Callaghan, Liam Williams ve Kevin Grant’ten oluşuyordu.
Proje bizden biraz ROS, C++, Python, Linux, Raspberry Pi ve Arduino bilgisi gerektiriyordu. Çoğumuz bu teknolojilerden bir veya daha fazlasında deneyime sahipti ancak ROS konusunda deneyimi olan tek kişi bendim çünkü ROS’u 2020 Bahar döneminde İnsan Merkezli Robotik (CSCI473) dersimde kullanmıştım. Bu nedenle, ilk başlarda herkesi ROS ve onun için nasıl geliştirme yapılacağı konusunda hızla bilgilendirmeye yardımcı oldum.
Zorluklar
Bu projede birçok zorluk vardı. Ancak karşılaştığımız en büyük zorluk, test için gerçek dünyada bir robota erişimimizin olmamasıydı. Bunun nedeni, COVID‘in her şeyi uzaktan hale getirmesi ve Lunar Outpost’un laboratuvarında/binalarında çalışmamızı engellemesiydi. Bu nedenle simülasyonlar kullanmak zorunda kaldık.
Ayrıca, Lunar Outpost’un kullanım senaryosu için Tekerlek Kayması probleminin nasıl çözülebileceğine dair bir fikir edinmek amacıyla WVU Navigation Lab‘dan bazı akademik araştırmalardan geçtik; bu, bizim için, lisans ikinci ve üçüncü sınıf öğrencileri olarak, beklediğimizden daha zordu.
Karşılaştığımız bir başka zorluk da bu proje üzerinde çalışmak için sahip olduğumuz zamandı. CSCI370 bir aylık bir ders. Ancak problemin kendisi, birçok şirketin ve akademisyenin onlarca yıldır çözmeye/mükemmelleştirmeye çalıştığı devasa bir problem. Dolayısıyla bir ay bu sorunu çözmek için kesinlikle yetersiz bir zaman. Ama tüm bu zorluklara rağmen pes etmedik ve teslimatı yaptığımızdan emin olduk.
Sonuç
Tüm araştırma ve geliştirme çalışmalarının ardından, uygun ay fiziklerini dijital olarak simüle etmenin neredeyse imkânsız olduğunu belirledik; bu nedenle bu algoritmayı bir simülasyonda gerçekten denemek iyi değildi ve uzayda ve ayda tekerlek kayması tespiti konusunda anlamlı herhangi bir araştırma sonucuna yol açmayacaktı. Bu tür bir araştırma için, kum ve Husky robotu gibi gerçek donanım kullanarak uygun bir test ortamı kurmanın çok daha önemli olduğu sonucuna vardık. Tekerlek kayması algılama kodunu bir ROS düğümü olarak çalışacak şekilde güncelledik ve düzgün çalıştı; ayrıca test için gerçek donanıma kolayca aktarılabilecek durumdaydı. Bu proje, liderlik rolü üstlenmeme, akranlarımı ROS geliştirme konusunda eğitmeme ve daha önce hiç karşılaşmadığım karmaşık bir problemi ele alırken Python, ROS ve Gazebo ile deneyim kazanmama olanak sağladı. En önemlisi, bu deneyim robotik tutkumuzu daha da pekiştirdi ve bu alanda araştırma yapma isteğimi güçlendirdi; böylece robotik yolculuğumda sırada ne olacağına zemin hazırladı.
HCR Laboratuvarında Başlangıç
2020 yazındaki CSCI473, CS Field Session ve 2020 Güz dönemimi tamamladıktan sonra, robotik alanında araştırma yapmaya karar verdim. Hem CSCI473 hem de CS Field Session ile ilgili çok güzel deneyimlerim olmuştu; bu yüzden HCR Laboratuvarı için araştırma yapmak istediğime karar verdim. Dr. Zhang ile bir yıl önce tanışmış olduğum için ona e-posta atıp Ocak 2021’de laboratuvarda herhangi bir fırsat olup olmadığını sordum. Yaklaşık 2 hafta içinde Dr. Zhang ilgi gösterdi, bana araştırma seçenekleri sundu ve laboratuvarda bana bir rol teklif etti. Daha sonra Şubat 2021’de laboratuvar için çalışmaya başladım.
Tanıtım Videosu
HCR Laboratuvarındaki zamanımdan birkaç ay sonra kaydettiğim tanıtım videom burada. Video Mayıs 2021’de kaydedildi ve yaz 2021 boyunca HCR Laboratuvarında odaklanacağım araştırmayı kapsıyor:
Benim Projem
HCR Laboratuvarındaki zamanım boyunca ağırlıklı olarak Triton projesine odaklandım. Triton projesi, Colorado School of Mines’daki Human Centered Robotics Lab tarafından geliştirilen bir mobil robottur. NVIDIA’nın Jetson Nano’su ile çalışan üçgen şekilli omni-tekerlekli bir yer 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 baskı gövde
- 3 mecanum tekerlek
- 1 AR Bataryası
- Optimize edilmiş güç dağıtımı ve kablolama için özel devreler
- Intel’in Realsense D435 Kamerası
- Bazı LED’ler
Yaklaşık 2018-2020 yılları arasında eğitim amaçlı bir robot olarak tasarlandı, inşa edildi ve üretildi. Ben katıldığımda Triton oldukça yerleşik bir projeydi ve laboratuvar onun yeni bir sürümünü yapmayı düşünüyordu. Ancak Triton’un temel sorunu yazılımıydı. Triton hareket edebiliyor, şarj olabiliyor ve temel anlamda işlev görebiliyordu ama gerçekten akıllı hiçbir şey yapmıyordu. Hatta daha gelişmiş hareketler yapma yeteneğinden bile yoksundu.
![]() |
![]() |
![]() |
![]() |
Bunu ele almaya başlamak için laboratuvar, Triton’u takip edebileceğimiz bir alan kurdu. Bunu yapmak için, zeminden yaklaşık 6-7 fit yükseklikte kare benzeri bir biçimde 8 Optitrack Flex (Kızılötesi) Kamera ile 2 metreye 2 metrelik bir alan oluşturdular.
![]() |
![]() |
Bu alanın kurulmasının yanı sıra, her Triton’un gövdesinin üst kısmına üç gri küre top yerleştirildi.
Bu düzenle birlikte, ilgi alanımızdaki bir Triton’un metre cinsinden tam koordinatlarını almamızı sağlayan kendi küçük ölçekli GPS sistemimizi etkili bir şekilde kurmuş olduk. Optitrack kızılötesi kameraları ve üçgen bir şekil oluşturan Optitrack gri küreleri kullanarak, bir Triton’un alanımızdaki tam koordinatlarını hassas şekilde belirleyebiliyorduk. Bu da hareket doğruluğunu artırmak için kapalı çevrim bir sistem uygulamamıza olanak sağladı.
Optitrack sistemi, doğru şekilde kalibre edildiğinde yaklaşık 120Hz’de, milimetrenin altında doğrulukla konum ve yönelim verisi sağlıyordu. Her Triton’un üç yansıtıcı işareti, sistemin rijit bir gövde olarak takip edebileceği benzersiz bir üçgen desen oluşturuyordu. Koordinat sistemi, (0,0)’ın izleme alanının merkezinde olacak şekilde ve X ile Y eksenleri odanın geometrisine hizalı biçimde kalibre edilmişti. Ancak bu hassas konumlandırma verisine rağmen Triton hâlâ hareket konusunda zorlanıyordu.
Bu kurulumla Triton için sağlamayı istediğimiz temel özelliklerden biri, belirli bir koordinata hareket edebilme yeteneğiydi. Kullanıcı ya da yazılımı, ilgi alanı içinde bir (x, y) koordinatı sağlayabilecekti. Ardından robot, o koordinata mümkün olduğunca hızlı, doğru ve sorunsuz şekilde hareket edecekti. 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ü çalışırken kaydetmedim, bu yüzden eski hareket mantığının nasıl çalıştığını gösteren bu basit animasyonu oluşturdum. Bunu bildiğimize göre, bu yöntemin sorunları nelerdir?
- Gerçekten yavaş
- Robotun belirli bir noktaya gitmek için çok fazla alan kaplamasına neden oluyor. Bu da birden fazla Triton etrafta hareket ederken bu çözümü kullanmamızı zorlaştırdı.
Peki bu davranış neden oluyordu? Sorun, Triton’un önce dönmesi, alpha’sını değiştirerek, hedef noktaya belirli bir hata payı içinde bakana kadar dönmesiydi. Sonra ileri doğru koşuyordu ve theta’sı hedefe göre belirli bir miktar saptığında durup alpha hedef için kabul edilebilir aralığa gelene kadar tekrar dönmeye başlıyordu. Sonra yine koşuyor ve noktaya ulaşana kadar bunu sürdürüyordu. Ayrıca, hedef noktaya giderek yaklaştıkça, aşmamasını sağlamak için dönme ve sprint hızı çok daha yavaş hale geliyordu. Bunun sonucu olarak Triton doğal olmayan bir hareket sergiliyor, hedef noktaya ulaşması sonsuza dek sürüyor ve yalnızca belirli bir hedef noktaya gitmek için bile çok fazla alan gerektiriyordu. Tüm bu sorunlar nedeniyle ve bu özelliğin Triton projesinin geliştirilmesi için ne kadar temel olduğunun farkında olarak, HCR Laboratuvarında çalışmaya başladığımda ilk görevim Triton’un bir hedef noktaya daha iyi yönlenmesini sağlayacak daha etkili çözümler geliştirmekti.
Bunu bilerek, bu sorunu ele almanın en iyi yolu hakkında çok zaman harcayıp araştırma yaptım. İronik olarak, Mines’da Geri Beslemeli Kontrol Sistemlerine Giriş (EENG307) adlı bir ders alıyordum. Bu dersin başlarında Açık çevrim denetleyiciler ve Kapalı çevrim denetleyiciler kavramını öğrendik. Bunu bildikten sonra ve bu dersin profesörüyle ve zeki oda arkadaşımla yaptığım bazı görüşmelerden sonra, Triton’u bir hedef noktaya götürme amacının bir kapalı çevrim sistem problemi olduğu netleşti.
Şimdi, kapsamlı testler ve araştırmalardan sonra, Tritonlar için iki ayrı denetleyici yaklaşımı geliştirdim:
Yöntem 1: Mesafe-Theta Denetleyicisi
Bu yaklaşım, aynı anda çalışan iki ayrı oransal denetleyici kullanıyordu:
- Mesafe Denetleyicisi: Hedefe olan Öklid mesafesini hesapladı ve ileri/geri hızı belirlemek için oransal bir kazanç uyguladı
- Theta Denetleyicisi: Robotun mevcut yönelimi ile hedefe olan istenen yönelim arasındaki açısal hatayı hesapladı ve dönme hızı için ayrı bir oransal kazanç uyguladı
Algoritma, sürekli olarak hedefe olan Öklid mesafesini ve robotun mevcut yönelimi ile istenen yön arasındaki açısal hatayı hesapladı. Sırasıyla doğrusal ve açısal hızlar üretmek için iki ayrı oransal kazanç uygulandı.
Bu, Triton’un doğal bir şekilde hedefe dönerken aynı anda ileri hareket etmesini sağladı ve yumuşak kavisli yollar oluşturdu. Temel avantajı, robotun ön yüzünü her zaman varış noktasına dönük tutmasıydı; bu da kamera tabanlı uygulamalar için kritik öneme sahipti.
Yöntem 2: X-Y Koordinat Denetleyicisi
Bu yaklaşım, robotu X ve Y hareketlerinin bağımsız olarak kontrol edildiği 2B bir çizici gibi ele aldı:
- X Denetleyicisi: X-koordinat hatasına göre doğu-batı hareketini doğrudan kontrol etti
- Y Denetleyicisi: Y-koordinat hatasına göre kuzey-güney hareketini doğrudan kontrol etti
Uygulama, X ve Y koordinat hatalarını bağımsız olarak hesapladı, ayrı oransal kazançlar uyguladı ve ardından bu küresel hız bileşenlerini dönme matrislerini kullanarak robotun yerel koordinat çerçevesine dönüştürdü. Bu dönüşüm gerekliydi çünkü robotun omni-tekerlekli tahrik sistemi, küresel koordinatlar değil, kendi referans çerçevesindeki hızları gerektiriyordu. Bu yöntem hedeflere en doğrudan yolları üretti ve belirgin şekilde daha hızlıydı, ancak açık bir yönelim kontrolü olmadığı için robotun baş yönü sürükleniyordu.
-
yöntem için, bu yöntemi Move Turtle (TurtleSim) blogumda tam ayrıntılarıyla anlattım. PID denetleyicilerinin genel olarak nasıl çalıştığına ve 1. yöntemin nasıl işlediğine dair tüm ayrıntıları öğrenmek için bu blogu okumanızı şiddetle tavsiye ederim. 1. yöntemi ROS’un TurtleSim kullanarak geliştirdim, ardından o kodu Triton’a aktardım ve daha gerçekçi bir ortama uyacak şekilde güncelledim.
-
yöntem, oldukça farklı ama eşit derecede etkili bir yaklaşım kullandı. Robotun yönelimi ve hedefe uzaklığı yerine, bu yöntem hareketi bir koordinat düzlemi problemi gibi ele alır. Denetleyici, hem X hem de Y yönlerindeki hatayı sürekli olarak ayrı ayrı hesaplar. Örneğin, robotun (0,0)’dan (2,3)’e hareket etmesi gerekiyorsa, bunu X’te 2 metrelik ve Y’de 3 metrelik bir hatayı düzeltmek olarak görür. İki oransal denetleyici eşzamanlı olarak çalıştı: biri X-hatasına göre robotun X yönündeki hızını ayarlarken, diğeri Y-hatasına göre Y yönündeki hareketi ele aldı. Bu, 3D yazıcı kafasının hareketine benzer şekilde hedefe daha doğrudan bir yol oluşturdu ve akıcı çapraz hareketlere olanak sağladı. Robotun hedefe bakmak için açıkça dönmesine gerek kalmadı; bu da yöntemi özellikle dar alanlarda veya hassas konumlandırmanın gerektiği durumlarda etkili kıldı.
Her iki yöntem de orijinal yaklaşıma kıyasla belirgin şekilde daha hızlı ve daha güvenilir olduğunu kanıtladı. Bu yeni yöntemlerin çalışırken nasıl göründüğünü görmek için, yeni yöntemlerle tüm Tritonların çalıştığını gösteren Tritons in Action Oynatma Listesi’ne göz atın.
Basit bir nokta-nokta hareket için eskiden 30-45 saniye süren işlem, artık yaklaşık 8-12 saniye sürüyordu. Daha da önemlisi, Triton artık dar alanlarda daha verimli biçimde gezinebiliyordu; bu da çoklu robot senaryolarımız için yararlı hale geldi.
Geliştirme Zorlukları ve Hata Ayıklama
Bu denetleyicileri uygulamak basit değildi ve birkaç önemli hata ayıklama zorluğunu içeriyordu:
Koordinat Sistemi Dönüşümleri: En zorlayıcı yönlerden biri koordinat dönüşümlerini doğru yapmaktı. Optitrack sistemi verileri kendi koordinat çerçevesinde sağlıyordu, robotun kendi yerel koordinat çerçevesi vardı ve benim bunlar arasında doğru biçimde dönüşüm yapmam gerekiyordu. İlk uygulamalarda robotlar yanlış yönlere gidiyordu çünkü dönme matrisi hesaplarını karıştırmıştım.
Gerçek Dünya ve İdeal Davranış: En büyük zorluk, ders kitabı kontrol teorisinde görünmeyen gerçek dünya etmenlerini hesaba katmaktı. Robotun tekerlekleri farklı sürtünme özelliklerine sahipti, motorlar aynı şekilde tepki vermiyordu ve Optitrack’ten kontrol yazılımına, oradan robotun Arduino’suna uzanan iletişim zincirinde her zaman bir miktar gecikme vardı. Bu fiziksel gerçekleri hesaba katmak için haftalarca oransal kazançları ayarladım ve ölü bant filtreleri ekledim.
Salınım ve Kararlılık Sorunları: İlk uygulamalarımda robotların hedeflerini aşıp ileri geri sallanmasına neden olan salınım sorunları yaşadım. Bu bana PID denetleyicilerindeki türev terimlerin önemini ve uygun kazanç ayarlamasına duyulan ihtiyacı öğretti. Sonunda, sistemin doğal sönümlemesinin çoğu uygulama için yeterli olması nedeniyle, tam PID yerine dikkatle ayarlanmış kazançlarla ağırlıklı olarak oransal denetime karar verdim.
Çoklu Robot Girişimi: Birden fazla robot aynı anda çalıştığında, beklenmedik girişim desenleri keşfettim. Robotlar bazen aynı alan için “kavga ediyor” ya da birbirlerini süresiz olarak bloke ettikleri kilitlenme durumları oluşturuyordu. Bu durum beni koordinasyon mekanizmaları ve çarpışma önleme algoritmaları uygulamaya yöneltti.
Çoklu Triton Denetim Sistemi
Tek Triton hareketi sorununu çözdükten sonra, laboratuvarın bir sonraki zorluğu birden fazla Tritonun aynı anda birlikte çalışmasını sağlamaktı. Bu, ana odak alanlarımdan biri haline geldi ve projenin önemli bir katkısı olarak sonuçlandı.
Başlangıçtaki sistem aynı anda yalnızca bir Triton’u kontrol edebiliyordu; bu da araştırma olanaklarını ciddi biçimde sınırlıyordu. Laboratuvar, birden fazla otonom aracın trafik akışını optimize etmek ve daha iyi SLAM (Eşzamanlı Konum Belirleme ve Haritalama) haritaları oluşturmak için birbirleriyle iletişim kuran sürücüsüz arabalar gibi, hareketlerini koordine etmesi gereken senaryoları simüle etmek istiyordu.
Bunu çözmek için Python’un multiprocessing kütüphanesini kullanarak çoklu işlem yaklaşımı uyguladım. Her Triton, merkezi bir denetim sistemi tarafından koordine edilirken bağımsız çalışabilen kendi özel sürecini aldı. Bu, birden fazla Triton’un birbirlerinin kontrol döngülerine müdahale etmeden aynı anda hareket etmesini sağladı.
Çoklu Robot Mimarisi Tasarımı
Geliştirdiğim sistem mimarisi birkaç temel bileşenden oluşuyordu:
Ana Denetleyici Süreci: Bu, kullanıcı arayüzü etkileşimlerini, yol planlamasını ve robotlar arasındaki üst düzey koordinasyonu yöneten merkezi koordinatör olarak hizmet verdi. Küresel durumu koruyor ve komutları tek tek robot süreçlerine dağıtıyordu.
Bireysel Robot Süreçleri: Her Triton’un şu görevleri yerine getiren kendi özel Python süreci vardı:
- Gerçek zamanlı PID kontrol hesaplamaları ~50Hz’de
- Robotun donanımıyla iletişim (Arduino/Jetson)
- Yerel yol yürütme ve engelden kaçınma
- Durum bilgisini ana denetleyiciye geri bildirme
Paylaşımlı Bellek İletişimi: Süreçler arasında verimli iletişim sağlamak için Python’un multiprocessing.shared_memory ve Queue nesnelerini kullandım. Bu, ağ iletişiminin ek yükü olmadan gerçek zamanlı koordinasyona olanak sağladı.
Eşzamanlama Mekanizmaları: Birden fazla robotun koordinasyon sağlaması gerektiğinde (çarpışmadan kaçınma gibi) çatışmaları önlemek için, robotların çalışma alanının belirli bölgelerine özel erişim talep etmelerine izin veren semaforlar ve kilitler uyguladım.
Zorluk, tüm robotların küresel koordinasyonu korurken kontrol döngülerini bağımsız olarak çalıştırabilmesini sağlamaktı. Her robot süreci kendi PID hesaplamalarını yürütüyor ve motor komutlarını doğrudan donanıma gönderiyor, ana süreç ise çarpışmadan kaçınma ve yol planlama gibi daha üst düzey koordinasyonu yönetiyordu.
![]() |
![]() |
Çoklu Triton sistemi tamamen yeni araştırma olanakları açtı. Artık şunları simüle edebiliyorduk:
- Araçtan araca iletişim senaryoları
- Engelden kaçınmalı koordineli yol planlama
- Sürü robotik davranışları
- Çoklu ajan SLAM haritalama
- Formasyon kontrolü ve takip davranışları
İşte birden fazla Triton aynı anda çalışırken laboratuvar düzeninin nasıl göründüğü:
![]() |
![]() |
Ayrıca, araştırmacıların her Triton için görsel olarak yollar tanımlamasına olanak tanıyan kullanıcı dostu bir arayüz geliştirdim. Her robotun izlemesini istediğiniz yolu gerçekten çizebiliyordunuz ve onlar bu yolları kusursuz koordinasyonla uyguluyordu. Bu, her hareketi elle kodlamaya gerek kalmadan karmaşık deneyler kurmak için son derece kullanışlıydı.
Sistem aynı anda 5 Triton’a kadar destekleyebiliyordu; her biri merkezi denetim sistemi aracılığıyla koordine edilirken kendi PID denetleyicilerini çalıştırıyordu. Performans etkileyiciydi; tüm robotlar takım olarak birlikte çalışırken bireysel doğruluklarını koruyordu.
İşte tek robot kontrolünden çoklu robot koordinasyonuna kadar Tritonların çalışmasını gösteren bir oynatma listesi: Tritons in Action Oynatma Listesi
Derinlik Sensörü Entegrasyonu ve Koordinat Düzeltme
Üzerinde çalıştığım bir diğer büyük ilerleme, her Triton’a monte edilen Intel RealSense D435 derinlik kameralarının kullanılmasıyla ilgiliydi. Optitrack sistemi bize son derece hassas konumlandırma verileri sağlasa da, robotların üzerlerindeki sensörleri uzamsal farkındalıklarını iyileştirmek ve koordinat hatalarını düzeltmek için nasıl kullanabileceklerini araştırmak istedim.
Fikir, Tritonların derinlik sensörlerini kullanarak çevrelerindeki diğer Tritonları tespit etmeleri ve konumlarını çapraz referanslamalarıydı. Bu, birden fazla amaca hizmet edecekti:
-
Hata Düzeltme: Eğer Optitrack sisteminde herhangi bir kalibrasyon sürüklenmesi veya geçici örtülme olursa, robotlar birbirlerinin konumlarını görsel olarak doğrulayarak doğru koordinat sistemlerini koruyabilirdi.
-
Geliştirilmiş SLAM: Derinlik sensörlerine sahip birden fazla robotun birlikte çalışmasıyla, yedekli veri noktaları içeren çok daha zengin çevre haritaları oluşturabilirdik.
-
Çarpışmadan Kaçınma: Gerçek zamanlı derinlik algılama, merkezi kontrol sisteminde iletişim gecikmeleri olsa bile robotların birbirlerini tespit edip birbirlerinden kaçınmalarına olanak tanır.
Tritonların şunları yapmasına izin verecek algoritmalar üzerinde deney yapmaya başladım:
- Ayırt edici üçgen şekilleri ve yansıtıcı küre işaretleyicileri kullanarak diğer Tritonları tespit etmek
- Derinlik verisini kullanarak göreli konumları ve yönelimleri hesaplamak
- Bu ölçümleri Optitrack verileriyle karşılaştırarak tutarsızlıkları belirlemek
- Doğruluğu korumak için koordinat sistemlerini gerçek zamanlı olarak potansiyel olarak ayarlamak
Bilgisayarlı Görü Deneyleri
Birkaç aşamada çalışan bir bilgisayarlı görü boru hattı üzerinde deney yaparak önemli miktarda zaman harcadım:
![]() |
![]() |
![]() |
![]() |
![]() |
Derinlik Verisi İşleme: Intel RealSense D435, hem RGB hem de derinlik veri akışları sağladı. Öncelikle, 30Hz’deki 640x480 boyutlarında mesafe ölçümlerinden oluşan derinlik verisiyle çalıştım. İlk zorluk, anlamlı geometrik bilgi çıkarmak için bu gürültülü derinlik verisini filtrelemekti.
Nesne Tespiti Denemeleri: Çok aşamalı tespit algoritmalarıyla deney yaptım. Zemin seviyesindeki nesneleri belirlemek için derinlik görüntüsünü bölütlemede ve doğru boyut özelliklerine, yaklaşık 0,3x0,3 metre taban alanına sahip nesneleri aramada bir miktar başarı elde ettim (duvarlar, tavan vb. filtrelenerek). Ayırt edici Triton profilini tanımlamak için kenar tespiti ve geometrik analiz kullanmayı denedim; sonuçlar karışıktı.
İş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ıyla deney yaptım. Kontrollü ışık koşullarında umut verici sonuçlar elde ettim, ancak bu yöntem tutarlı bir şekilde güvenilir değildi.
Koordinat Birleştirme Araştırması: Optik tabanlı konum tahminlerini Optitrack verileriyle birleştirmeye yönelik yaklaşımları, temel Kalman filtresi uygulamaları da dahil olmak üzere araştırdım. Amaç, mevcut olduğunda Optitrack verilerine daha fazla ağırlık vermek, ihtiyaç duyulduğunda ise görsel veriye geri dönmekti; ancak laboratuvardaki sürem bitmeden bunu tam olarak çalışır hale getiremedim.
Performans Zorlukları: Tüm bu işlemenin robotun kontrol döngüleriyle birlikte gerçek zamanlı çalışmasını sağlamak zorlu oldu. Jetson Nano’nun işlem kapasitesini aşırı yüklemeden algoritmaları yaklaşık 10-15Hz’de çalıştırmak için optimizasyon yaklaşımları denedim.
Ne yazık ki, bu bilgisayarlı görü çalışmasını tamamen tamamlayamadan laboratuvardan ayrılmak zorunda kaldım. Başlangıçta bazı umut verici sonuçlar elde etmiş ve derinlik sensörü işlemesi hakkında çok şey öğrenmiş olsam da sistemi tam anlamıyla güvenilir bir duruma getiremedim. Bu, başkalarının üzerine inşa edebileceği ilginç bir araştırma yönü olarak kaldı.
Bilgisayarlı görü algoritmalarını test ederken çektiğim bir video burada:
Deneylerim sırasında derinlik sensörü görünümünün nasıl olduğuna dair bir örnek:
Derinlik sensörü entegrasyon çalışmasını tamamlamamış olsam da, bu kavram, araçların yalnızca dış altyapıya güvenmeden birbirlerinin farkında olması gereken sürücüsüz araç senaryolarını simüle etmek gibi uygulamalar açısından umut vericiydi. Keşfetmeye başladığım araştırma yönü, laboratuvardaki gelecekteki çalışmalara potansiyel olarak katkıda bulunabilirdi.
Dokümantasyon ve Bilginin Korunması
HCR Lab’e yaptığım en önemli katkılardan biri, belki de en gurur duyduğum katkı, tüm proje dokümantasyonunu düzenlemek ve korumaktı. Laboratuvara katıldığımda, Triton projesine ait bilgi birden fazla platform ve format arasında dağılmış durumdaydı. Kritik bilgiler şuralara yayılmıştı:
- Mezun olmuş farklı öğrencilere ait çeşitli Google Drive hesapları
- Gelen kutularında gömülü eski e-postalar
- Rastgele Dropbox klasörleri
- Birden fazla GitHub deposu
- Tutarsız biçimde organize edilmiş GitLab depoları
- Yalnızca belirli kişilerin anlayabildiği el yazısı notlar
Bu parçalanmış dokümantasyon büyük bir sorundu. Yeni öğrenciler sadece nasıl başlayacaklarını anlamaya çalışırken haftalar harcıyorlardı ve insanlar mezun olduğunda ya da laboratuvardan ayrıldığında değerli bilgi sürekli kayboluyordu.
Bu sorunu sistematik olarak çözmeyi kendime görev edindim. Triton projesiyle ilgili her bir dokümanı, kodu, videoyu ve notu bulmak için sayısız saat harcadım. Ardından her şeyi açık ve mantıklı bir yapıya sahip merkezi bir GitLab deposunda düzenledim.
![]() |
![]() |
Merkezi dokümantasyon şunları içeriyordu:
- Kurulum 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 eksiksiz kılavuzlar
- Kod Dokümantasyonu: Açık açıklamalarla iyi yorumlanmış kod
- Donanım Özellikleri: Ayrıntılı parça listeleri, kablolama şemaları ve PCB tasarımları
- Sorun Giderme Kılavuzları: Yaygın sorunlar ve çözümleri
- Video Eğitimleri: Ayrıntılı Optitrack kalibrasyon eğitimleri de dahil olmak üzere YouTube’a öğretici videolar oluşturdum ve yükledim:
Ayrıca, gelecekteki katkıların düzenli ve erişilebilir kalmasını sağlamak için dokümantasyon standartları belirledim. Oluşturduğum depo yapısı, laboratuvardaki sonraki tüm çalışmaların temeli haline geldi.
Mevcut dokümantasyonu düzenlemenin ötesinde, bilgi tabanındaki kritik boşlukları dolduran birkaç özgün kılavuz ve eğitim de hazırladım. Bunlar arasında yeni laboratuvar üyeleri için ayrıntılı kurulum talimatları, kapsamlı sorun giderme kılavuzları ve karmaşık prosedürlerin video anlatımları yer alıyordu.
Etkisi anında ve kalıcı oldu. Yeni öğrenciler haftalar yerine günler içinde işe koyulabildi. Oluşturduğum dokümantasyon deposu, ben ayrıldıktan yıllar sonra bile bugün laboratuvar tarafından kullanılmaya devam ediyor. Triton projesi için tek doğru bilgi kaynağı haline geldi ve gelecekteki araştırmacılar için sayısız saat/gün tasarruf sağladı.
Mentorluk ve Bilgi Aktarımı
HCR Lab’de geçirdiğim sürenin en ödüllendirici yönlerinden biri, başkalarına mentorluk yapma ve edindiğim bilgiyi 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 giderek daha fazla sorumluluk üstlendim.
Laboratuvarın Devralacak Kişilerini Yetiştirmek
Sonunda derecemi tamamlamaya ve eBay’deki işlerime odaklanmak için laboratuvardan ayrılmaya hazırlanırken, ayrılışımdan sonra Triton projesini devralacak iki kişiyi kapsamlı biçimde eğittiğimden emin oldum. Bu sadece onlara işlerin nasıl yürüdüğünü göstermekle ilgili değildi; aynı zamanda yenilik yapmaya devam edebilmeleri için altta yatan ilkeleri gerçekten anlamalarını sağlamakla ilgiliydi.
Onlarla yakın çalışarak haftalar geçirdim ve şunları ele aldık:
- PID kontrol sistemlerinin matematiksel temelleri
- Birden fazla robotu koordine etmek için çoklu işlem mimarisi
- Derinlik sensörü entegrasyonu ve bilgisayarlı görü algoritmaları
- Dokümantasyon sistemi ve bunun nasıl sürdürüleceği
- Hata ayıklama teknikleri ve yaygın arıza türleri
Bilgi aktarımı inanılmaz derecede kapsamlıydı. Birlikte gerçek hata ayıklama oturumları yaptık, mevcut kodu değiştirmelerini ve genişletmelerini sağladım ve yeni Tritonları sıfırdan bağımsız olarak kurabildiklerinden emin oldum.
Lise Mentorluk Programı
Belki de daha da ödüllendirici olan, laboratuvarın topluma erişim programı kapsamında bir lise öğrencisine mentorluk yapma deneyimimdi. Bu, birine eğitim hayatının biçimlendirici bir aşamasında robotik, bilgisayar bilimi ve araştırma ile tanıştırmak için harika bir fırsattı.
Kapsamlı bir müfredat hazırladım ve bu müfredat şunları içeriyordu:
Bilgisayar Bilimi Temelleri:
- Birincil dil olarak Python kullanarak programlama kavramları
- Nesne yönelimli programlamaya giriş
- Algoritmalar ve veri yapılarının anlaşılması
Robotik Kavramları:
- Sensörlerin nasıl çalıştığı ve onlarla nasıl arayüz kurulacağı
- Aktüatör kontrolü ve motor sistemleri
- Otonom sistemlerin ve geri beslemeli kontrolün temelleri
ROS (Robot İşletim Sistemi):
- Yayınla/abone ol mesajlaşma sistemini anlamak
- Düğümler ve servisler oluşturmak
- Başlatma dosyaları ve parametre sunucuları ile çalışmak
Uygulamalı Proje Çalışması:
- Triton’un başındaki LED sistemini kontrol eden bir ROS servisi oluşturmak üzere birlikte çalıştık
- Mevcut sistemlerimizle entegre olan temiz, dokümante edilmiş kod yazmayı öğrendi
- Oluşturduğu LED kontrol servisi, Triton kod tabanının kalıcı bir parçası haline geldi
Bu mentorluğu özellikle özel kılan şey, onun programlama hakkında neredeyse hiçbir şey bilmemekten aktif bir araştırma projesine anlamlı kod katkıda bulunmaya doğru ilerleyişini izlemekti. “Değişken nedir?” diye sormaktan, bağımsız olarak ROS iletişim sorunlarını ayıklamaya ve kendi servis uygulamalarını yazmaya kadar geldi.
Geliştirdiği LED kontrol sistemi, araştırmacıların basit ROS komutlarıyla Triton’un baş LED’lerinin renklerini ve desenlerini kolayca değiştirmesine olanak tanıdı. Bu basit görünebilir, ancak ROS mimarisini, donanım arayüzlemeyi ve doğru yazılım tasarım kalıplarını anlamayı gerektiriyordu. Katkısı bugün hâlâ laboratuvarda kullanılmaktadır.
Mentorluk, onun için olduğu kadar benim için de eğiticiydi. Bu, beni karmaşık kavramları sindirilebilir parçalara ayırmaya ve yaptığımız şeyin temelleri üzerine gerçekten düşünmeye zorladı. Bir başkasına öğretmek beni daha iyi bir mühendis ve araştırmacı yaptı.
Doktora Araştırmasıyla İş Birliği
Laboratuvardaki zamanımın profesyonel açıdan en tatmin edici yönlerinden biri, araştırması kendi kendine giden araba algoritmalarına odaklanan bir doktora öğrencisi olan 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ı, kendi kendine giden araba senaryolarını simüle etmek için hassas, güvenilir çoklu robot koordinasyonu gerektiriyordu. Hareket kontrolü ve çoklu robot sistemlerine yaptığım iyileştirmelerden önce bu deneyleri yürütmek çok daha zordu. Robotlar daha yavaş, daha az isabetliydi ve birlikte o kadar etkili çalışamıyorlardı.
Katkılarım Peng’in araştırmasına birkaç alanda yardımcı oldu:
Kavşak Yönetimi Çalışmaları: İyileştirilmiş PID denetleyicileri ve çoklu robot koordinasyonu ile Peng, birden fazla “araç"ın (Tritonların) hareketlerini koordine etmesi gereken kavşak senaryolarını simüle edebiliyordu. Daha iyi zamanlama ve konumlandırma, bu çalışmaları daha uygulanabilir hâle getirdi.
Araçtan Araca İ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 sağladı. Her bir Triton, diğerleriyle koordinasyon hâlindeyken kararlar verebiliyordu; bu, kendi kendine giden arabaların çalışması gerekebileceği duruma benziyordu.
SLAM ve Haritalama Araştırması: Derinlik sensörü entegrasyonu çalışması, Peng’e eşzamanlı konumlandırma ve haritalama araştırması için ek veriler sağladı. Koordine algılama yeteneklerine sahip birden fazla robotun bulunması, daha kapsamlı haritalama deneylerine olanak tanıdı.
İş birliğimizi özellikle değerli kılan şey, bunun sadece benim onun araştırmasına yardımcı olmam olmamasıydı; gerçek bir ortaklıktı. Peng’in otonom araçların teorik yönlerine dair anlayışı, benim pratik uygulamalarımı şekillendirmeye yardımcı oldu. Geri bildirimi ve gereksinimleri, sistemleri daha sağlam ve daha yetenekli hâle getirmem için beni zorladı.
Laboratuvarda birlikte birçok saat geçirdik; senaryoları hata ayıklayarak, farklı kontrol stratejilerini tartışarak ve Triton platformunun neler başarabileceğini keşfederek. Peng hem bir meslektaş hem de bir arkadaş oldu ve onunla çalışmak bana akademik araştırmanın gerçekte nasıl işlediği hakkında çok şey öğretti.
Kurduğum sistemler, Peng’in tez çalışmasının faydalı bir parçası hâline 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ühendisliğin ve araştırmanın faydalı sonuçlar yaratmak için nasıl birlikte çalışabileceğine dair ilgimi pekiştirdi.
Laboratuvardan ayrıldıktan sonra bile Peng ve ben iletişimde kalmaya devam ettik. Ayrılışımdan sonra bile çalışmamın önemli araştırmalara katkıda bulunmaya devam ettiğini bilmek son derece ödüllendiriciydi.
Perspektif: LLM Öncesi Geliştirme Dönemi
Bu çalışmaların tamamının LLM öncesi yazılım geliştirme döneminde gerçekleştirildiğini belirtmek gerekir. Bütün bunlar 2020 ile 2021 arasında, çoğunlukla 2021’de, ChatGPT, Claude, Perplexity veya Cursor IDE gibi yapay zekâ destekli geliştirme araçları ortaya çıkmadan önce gerçekleşti.
Kodun her satırı sıfırdan yazıldı, her algoritma akademik makaleler ve ders kitapları üzerinden araştırıldı ve her hata ayıklama oturumu print ifadeleri, hata ayıklayıcılar ve metodik testler gibi geleneksel yöntemleri içeriyordu. Bir koordinat dönüşümü ya da PID ayarlama sorununda takıldığımda, bir yapay zekâ yardımcısına kavramı açıklamasını ya da sorunun hatasını ayıklamama yardım etmesini isteyemezdim.
Bu, geliştirme sürecini önemli ölçüde daha zorlu ama aynı zamanda daha eğitici hâle getirdi. Şunları yapmak zorundaydım:
Her Şeyi Elle Araştırmak: PID kontrol teorisini anlamak, ders kitaplarını ve akademik makaleleri okumak anlamına geliyordu. Koordinat dönüşümlerini çözmek, matematiği elle adım adım çalışmayı gerektiriyordu. Uygulamadan önce her kavramın tamamen anlaşılması gerekiyordu.
Yapay Zekâ Desteği Olmadan Hata Ayıklamak: Robotlar beklenmedik yönlere hareket ettiğinde veya hedeflerin etrafında salındığında, mantığı metodik olarak izlemek, hata ayıklama çıktıları eklemek ve hipotezleri tek tek test etmek zorundaydım. Olası sorunları önermek ya da hata kalıplarını yorumlamaya yardımcı olmak için bir yapay zekâ yoktu.
İlk Prensiplerden Öğrenmek: “Robotik için Python’da çoklu işlemeyi nasıl uygularım?” diye hızlıca sorabilme imkânı olmadan, alttaki kavramları derinlemesine anlamam gerekiyordu. Bu da beni eşzamanlı programlama, kontrol sistemleri ve bilgisayarlı görü alanlarında sağlam bir temel oluşturmaya zorladı.
Dokümantasyon Kritikti: Daha sonra kodu açıklamak için yapay zekâya güvenemeyeceğim için, son derece açık dokümantasyon ve yorumlar yazmam gerekiyordu. Bu disiplin, bilgiyi başkalarına aktarma sırasında son derece değerli olduğunu kanıtladı.
Geriye dönüp baktığımda, modern yapay zekâ araçları geliştirmenin birçok yönünü hızlandıracak olsa da, onlarsız çalışmak beni daha derin problem çözme becerileri ve temel sistemlere dair daha kapsamlı bir anlayış geliştirmeye zorladı. Bugünün geliştirme araçları mevcut olsaydı bu projenin ne kadar farklı olabileceğini düşünmek büyüleyici.
Ayrılma Konusunda Zor Karar
HCR Laboratuvarı’nda çalışmayı ne kadar sevsem de, 2021’in sonlarına doğru birçok öğrencinin karşılaştığı zor bir kararla yüzleştim: birden fazla fırsat ve sorumluluğu dengelemek. Aynı anda eBay’de tam zamanlı yazılım mühendisi olarak çalışıyor, Mines’daki bilgisayar bilimi derecemi tamamlıyor ve HCR Laboratuvarı’ndaki araştırmaya katkıda bulunuyordum.
eBay fırsatı önemliydi; bu benim ilk büyük yazılım mühendisliği rolümdü, paha biçilmez sektör deneyimi sağlıyordu ve bana sağlam bir gelir sunuyordu. Ancak tam zamanlı çalışmayı sürdürmeye, derecemi tamamlamaya ve araştırmaya anlamlı biçimde katkıda bulunmaya çalışmak sürdürülebilir değildi. Bir şeyden vazgeçmek gerekiyordu.
Ders yükümü azaltıp laboratuvar çalışmalarına daha fazla odaklanma ihtimaliyle Dr. Zhang’a gittiğimde, bunu yapmaktan güçlü şekilde vazgeçirmeye çalıştı. Gerekçesi sağlamdı: derecemi tamamlamak öncelikli olmalıydı ve eBay’deki sektör deneyimi kariyer gelişimim için değerli olacaktı. Araştırmaya odaklanmak için dersleri bırakmanın cezbedici olsa da, uzun vadede en iyi karar olmayabileceğini düşünüyordu.
Bu nedenle, laboratuvarda yaklaşık 8 aylık yoğun çalışmanın ardından, Eylül 2021’de araştırma asistanı rolümden geri çekilerek derecemi tamamlamaya ve eBay’deki işime odaklanma yönünde zor bir karar verdim. O zamanlar vermek zorunda kaldığım en zor profesyonel kararlardan biriydi.
Laboratuvardan resmen ayrıldıktan sonra bile, kurduğum sistemlerle yardıma ihtiyaç duyulduğunda destek sağlamaya devam ettim. Gerektiğinde dokümantasyonu güncelledim, hata ayıklama hakkında soruları yanıtladım ve uzaktan sorun gidermeye yardımcı oldum. Kurduğum bağlantılar ve projenin başarısına yaptığım yatırım, artık resmen ekibin bir parçası olmamam nedeniyle kaybolup gitmedi.
Yansımalar ve Geriye Bakış
Şimdi, 2025’te, dört yıl sonra, o zamanı karmaşık duygularla hatırlıyorum. Kariyer yolum beni web geliştirme ve yapay zekâ/makine öğrenimi mühendisliğine derinlemesine götürdü; bunlar son derece ödüllendirici oldu ve büyüme ile etki için muazzam fırsatlar sundu.
Yine de içimde “ya olsaydı” diye merak eden bir yan var. Robotik, açıkçası hâlâ, benim gerçek tutkumdu ve öyledir. Fiziksel sistemlerle çalışmak, kodunuzun gerçek dünyadaki harekete ve davranışa dönüştüğünü görmek konusunda, web geliştirme ve hatta yapay zekâ çalışmalarının tam olarak taklit edemediği bir şey var.
Bazen farklı bir yol seçmiş olsaydım neler olabileceğini düşünüyorum. Robotik araştırmada kalmanın bir yolunu bulsaydım ne olurdu? Lisans derecemi bitirdikten hemen sonra lisansüstü eğitime devam etseydim ne olurdu? Laboratuvar çalışmasını sektör deneyimine göre önceliklendirmeyi seçseydim ne olurdu?
Ama aynı zamanda her yolun kendi ödünleri olduğunu da biliyorum. Web geliştirme ve yapay zekâ alanında geliştirdiğim beceriler son derece değerli oldu. Sektör deneyimi bana büyük ölçekte yazılım mühendisliğini, kullanıcı deneyimi tasarımını ve milyonlarca insanın kullandığı ürünler inşa etmenin pratik zorluklarını öğretti. Bu deneyimler beni genel olarak daha iyi bir mühendis yaptı.
HCR Laboratuvarı’nda yaptığım çalışmalar, bugün sorunlara nasıl yaklaştığımı etkilemeye devam ediyor. PID kontrol sistemleri için gereken sistematik düşünme, yazılım sistemlerinde geri besleme döngülerini nasıl tasarladığımda da ortaya çıkıyor. Geliştirdiğim dokümantasyon ve bilgi koruma becerileri, o zamandan beri üstlendiğim her rolde paha biçilmez oldu. Mentorluk etme ve öğretme deneyimi, genç geliştiricilerle nasıl çalıştığımı ve ekip içi bilgi paylaşımına nasıl katkıda bulunduğumu şekillendirdi.
En önemlisi, bu deneyim bana gerçek dünyada etkisi olan zorlu teknik problemler üzerinde çalışırken geliştiğimi öğretti. İster robot hareket algoritmalarını optimize etmek ister kullanıcıların hedeflerine ulaşmasına yardımcı olan yapay zekâ sistemleri kurmak olsun, tatmin duygusu önemli olan zor problemleri çözmekten geliyor.
Kalıcı Etki
HCR Laboratuvarı deneyimine geriye baktığımda, nispeten kısa bir sürede ne kadar çok şey başardığıma şaşırıyorum. Kurduğum sistemler Triton platformunun çalışma biçimini temelden değiştirdi ve bu iyileştirmelerin çoğu bugün hâlâ kullanılıyor. Oluşturduğum dokümantasyon deposu, projenin tamamı için bir bilgi tabanı hâline geldi. Oluşturduğ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 tutkuyla bağlı olduğum sorunlar üzerinde çalışırken neler yapabileceğimi gösterdi. O sekiz ay içinde, ben:
- Platformı sınırlamakta olan robot hareket kontrol sistemini geliştirdim
- Sıfırdan çoklu robot koordinasyon sistemi kurdum
- Bilgisayarlı görme ve sensör füzyonu yeteneklerini entegre ettim
- Kapsamlı bir dokümantasyon ve bilgi yönetim sistemi oluşturdum
- Birkaç kişiye mentorluk yaptım ve bilgi aktarımına yardımcı oldum
- Otonom araçlar üzerine doktora düzeyindeki araştırmaları destekledim
Yine de bu yalnızca teknik başarılarla ilgili değildi, her ne kadar bunlar benim için anlamlı olsa da. Bu, sebat ve sistematik düşünme ile, lisans öğrencisi olsanız bile yararlı katkılar yapabileceğinizi öğrenmekle ilgiliydi.
Gelecek ve Robotik
Kariyerim beni başka yönlere götürmüş olsa da, robotik tutkum azalmadı. Hâlâ alandaki gelişmeleri takip ediyorum, robot öğrenmesi ve otonom sistemlerdeki ilerlemeler beni heyecanlandırıyor ve boş zamanlarımda ara sıra kişisel robotik projeleri üzerinde çalışıyorum.
Gelecek ne getirir, kim bilir? Yapay zekâ ve makine öğrenimi alanında geliştirdiğim beceriler robotik için giderek daha da önemli hâle geliyor. Kazandığım sektör deneyimi, bana sağlam ve ölçeklenebilir sistemler kurmayı öğretti. Belki de, deneyimlerimin bu farklı ipliklerinin beklenmedik şekillerde bir araya geldiği bir gelecek vardır.
Şimdilik, HCR Laboratuvarı’nda geçirdiğim zaman ve bana sunduğu deneyimler için minnettarım. Bu, teknik becerilerimi ve ne tür işlerden en fazla tatmin duyduğumu anlamamı şekillendiren biçimlendirici bir dönemdi. Bazen özlesem de, öğrendiğim derslerin ve geliştirdiğim yaklaşımların yaptığım her şeye etki etmeye devam ettiğini biliyorum.
Triton robotları hâlâ orada, hâlâ araştırmacılara hizmet ediyor, hâlâ önemli çalışmaları mümkün kılıyor. Ve bu gerçekten harika.

















