HCR Lab Robotik Araştırması

Table of Contents

Bu gönderi, robotik yolculuğumu anlatıyor; 2015’te lise döneminde FRC aracılığıyla robotik tutkumun keşfedilmesiyle başlayıp, Colorado School of Mines’in İnsan Merkezli Robotik (HCR) Laboratuvarı Şubat 2021’den Eylül 2021’e kadar araştırma asistanı olarak çalıştığım zamana kadar uzanıyor. 2022’nin sonlarından itibaren, HCR Lab‘in Colorado School of Mines’ten Massachusetts Üniversitesi Amherst‘a taşındığını ve sitesinin hcr.mines.edu adresinden hcr.cs.umass.edu adresine değiştiğini unutmayın.

Arka Plan

Colorado School of Mines’te 2018 sonbahar döneminde lisans eğitimime başladım. Bölümüm Robotik ve Akıllı Sistemler odaklı Bilgisayar Bilimleri idi. Ve 2022 baharında mezun oldum.

Hayatımın erken döneminde tutkumı bulma şansına sahip oldum. Lise yıllarında neyi sevdiğimi ve neye iyi olabileceğimi belirlemek için çok zaman harcadım. Birkaç deneme‑yanılma sonrasında tutkumun bilgisayar bilimi olduğunu fark ettim. Ancak aynı zamanda kod aracılığıyla bir şeyler inşa etme konusundaki büyük sevgimi de keşfettim.

Mines’te, Dr. Hao Zhang altında Mines’in İnsan Merkezli Robotik (HCR) Laboratuvarı’nda çalışma fırsatı buldum. Dr. Zhang ile ilk kez 2020 baharında “Human Centered Robotics” (CSCI473) dersinde tanıştım ve COVID kaosu ve ders yükünün ardından 2021 baharının başında laboratuvarında çalışmaya başladım.

İnsan Merkezli Robotik (CSCI473) Dersi

Mines’in İnsan Merkezli Robotik (CSCI473) dersi, üniversite deneyimimden sadece birkaç ders arasında yer alıyordu ve benim üzerimde derin bir etki bıraktı. Ders, Dr. Hao Zhang tarafından verildi. Dersin not ortalaması sadece üç projeden oluşuyordu; her biri robotik temel kavramlarını tanıtan zorlu bir problem sunuyordu. Bu projeler şunlardı:

  1. Robot İşletim Sistemi (ROS) Öğrenme
  2. Robot Duvar Takibi için Pekiştirmeli Öğrenme
  3. İskelet‑Tabanlı Temsiller Kullanarak İnsan Davranışlarının Robot Tarafından Anlaşılması

🧩 Robot İşletim Sistemi (ROS) Öğrenme

Bu, bize verilen ilk projeydi. Proje üç görevden oluşuyordu:

  1. Geliştirme Ortamını Kurma
  2. Gazebo Simülatörünü Anlama
  3. Bir ROS “Hello World” Yazma

Görev 1 ve 2 için sadece geliştirme ortamımızı kurmamız ve Gazebo’ya giriş öğreticisini takip etmemiz yeterliydi. Bu şunları içeriyordu:

Görev 3 ise gerçek bir zorluktu. Görev, turtlesim kullanarak kaplumbağanın Mines’in “M” logosunu çizmeye zorlamaktı:

Bu görev, basit gibi görünse de göründüğünden çok daha zordu. Bu proje sonunda Açık‑Döngü ve Kapalı‑Döngü sistemleri kavramlarıyla tanıştım. Bu proje ve çözümüm hakkında daha fazla bilgiye ROS Move Turtle proje sayfasından ulaşabilirsiniz.

🧩 Robot Duvar Takibi için Pekiştirmeli Öğrenme

Bu, bize verilen ikinci projeydi ve üniversitede çalıştığım en zor projelerden biriydi. Proje açıklaması şu şekildedir:

Bu projede, öğrenciler bir otonom mobil robotu duvarı takip etmeye ve engellere çarpmaktan kaçınmaya öğretmek için pekiştirmeli öğrenme algoritmaları tasarlayıp uygulayacaklar. Öğrenciler, ROS Melodic’te Gazebo simülasyonunu kullanarak Triton adlı çok yönlü bir mobil robotu simüle edecek ve size sağlanan bir ortam haritasını kullanacaklar. Öğrenciler, robot üzerindeki lazer tarayıcıyı algı ve öğrenme için kullanacak; robot, yönlendirme ve hız komutlarıyla kontrol edilecek. Öğrenciler, bu projeyi Ubuntu 18.04 LTS üzerinde ROS Melodic çalıştıran C++ veya Python ile programlamak zorundalar (yani Proje 1’de kullanılan aynı geliştirme ortamı). Ayrıca, öğrenciler standart IEEE robotik konferans formatına uygun bir rapor hazırlamalı ve LATEX kullanmalıdır.

Pekiştirmeli öğrenme algoritması için Q‑Learning kullanmamız istendi. Ayrıca sınıf tarafından sağlanan Stingray Gazebo simülasyon ortamını kullandık. Stingray, Triton modelini ve fizik mantığını içeriyordu. Robotun takip etmesi için bir labirent de sağlandı. Ortam genel olarak şöyle görünüyordu:

Tam proje açıklaması için csci473-p2.pdf dosyasına bakın. Çözümümü GitHub ya da web üzerinde 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 bozucu. Bununla birlikte, sınıfa sunduğum bir demo videosu var; çözümümü burada izleyebilirsiniz:

🧩 İskelet‑Tabanlı Temsiller Kullanarak İnsan Davranışlarının Robot Tarafından Anlaşılması

Üçüncü projenin açıklaması şu şekildedir:

Bu projede, öğrenciler birkaç iskelet‑tabanlı temsil (Teslimat 1) uygulayacak ve Kinect V1 sensöründen toplanan bir kamu etkinlik veri seti kullanarak insan davranışlarını sınıflandırmak için Destek Vektör Makineleri (SVM’ler) (Teslimat 2) kullanacaklar. Ayrıca, öğrenciler standart IEEE robotik konferans formatına uygun bir rapor (Teslimat 3) hazırlamalıdır.

Bu proje zorluydu ancak ikinci proje kadar zor değildi. Ana hedef, Kinect V1 sensör verilerini, MSR Daily Activity 3D Dataset veri setiyle birlikte kullanarak belirli insan eylemlerini/ davranışlarını sınıflandırmaktı. Bu proje ve çözümüm hakkında daha fazla bilgiye Predict Human Actions Using LIBSVM proje sayfasından ulaşabilirsiniz.

CSCI473 Sonuç

CSCI473, Mines’de lisans eğitimim sırasında aldığım en iyi derslerden biri (belki de en iyisi) olarak öne çıkıyor. Tüm bu projeler bana çok şey öğretti ve özgeçmişimde referans gösterebileceğim harika bir proje kataloğu oluşturdu. Ayrıca, testlerde hiç iyi olmasam da projeleri tamamlama konusunda başarılı olduğum için kendimi en çok içinde hissettiğim sınıftı. Bu sınıf sayesinde Dr. Hao Zhang ile tanıştım; kendisi daha sonra Mines’in İnsan‑Merkezli Robotik (HCR) Laboratuvarı’nda araştırma asistanı pozisyonu elde etmemde bana yardımcı oldu.

CS Alanı Oturumu (Yaz 2020)

CG_GUI_19

2020 yazında, CSCI473’ü tamamlayıp HCR Laboratuvarı’na katılmadan önce, Colorado School of Mines’teki bilgisayar bilimi 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ım‑odaklı çözümler tasarlayıp, uygulayıp ve belgelemesini sağlayan bir derstir. Öğrencilerin ders bilgilerini gerçek dünya bilgisayar bilimi problemlerine uygulamalarına olanak tanır. Ders hakkında daha fazla bilgiye buradan ulaşabilirsiniz.

Derste, hangi proje/şirket üzerinde çalışacağınızı siz belirliyorsunuz. Ders, her proje ve şirketi detaylandıran PDF’ler sağladı. Sonunda, Lunar Outpost adlı bir şirketin “Gerçek Zamanlı Tekerlek Kayma Algılama ve Hata Düzeltmeleri ile Gelişmiş Ay Navigasyonu” adlı projesi üzerinde çalışmaya karar verdim. İsim uzun olduğu için projeye “Tekerlek Kayma Algılama” takma adı verelim.

Sorun

Lunar Outpost, otonom ay roverları yaratmaya çalışan bir girişim. Ay’da, tekerlek kaymasına çok sebep olan çok miktarda ay tozu bulunur. Bu ideal değildir çünkü tekerlek kayması, otonom sistemlerin gerçek dünya konumlarını kaybetmesine yol açabilir. Dünya’da bu, GPS verileri kullanılarak kayma kaynaklı sapmalar düzeltilerek çözülür. Ancak GPS, 30+ navigasyon uydusunun sürekli Dünya etrafında dönerek benzersiz sinyaller göndermesine dayanır; ay’da ise şu anda bir GPS yoktur. Bunu bildiğimizde, GPS dışındaki bir yöntemle tekerlek kaymasını tespit etmek gerekir. Projenin sorununun daha detaylı raporu burada incelenebilir.

Takım

Bu proje basit bir proje değildi, bu yüzden bir ekip içinde yapılması gerekiyordu. Takım, beş Colorado School of Mines öğrencisinden oluşuyordu:

Bu proje basit bir proje değildi, bu yüzden bir ekip içinde yapılması gerekiyordu. Bu ekip Mehmet Yılmaz (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ı gerektirdi. Çoğumuz bu teknolojilerden bir veya birkaçına aşina olduğumuz halde, ROS konusunda deneyimli tek kişi bendim; çünkü ROS’u Bahar 2020 dönemindeki İnsan Merkezli Robotik (CSCI473) dersimde kullanmıştım. Bu yüzden, erken aşamalarda herkesi ROS ve geliştirme süreci hakkında bilgilendirmeye yardımcı oldum.

Zorluklar

In this project there were a lot of challenges. But the biggest challenge we faced was not having access to a real world robot for testing. This was due to COVID making everything remote and preventing us from working in the Lunar Outpost’s lab/buildings. Due to this, we had to use simulations.

Also, we went through some academic research from the WVU Navigation Lab to get an idea of how the Wheel Slippage problem could get solved for Lunar Outpost’s use case. Which, for us, as undergraduate sophomores and juniors, was more difficult than we expected.

Another challenge we faced was the amount of time we had to work on this project. CSCI370 is a one month class. But the problem itself is a massive problem that many companies and academics have been trying to solve/perfect for decades. So one month is far from enough time to solve this issue. But, despite all these challenges we pushed through and made sure to deliver.

Sonuç

After working through all the research and development, we determined that it is almost impossible to simulate proper moon physics digitally, so really trying this algorithm in a simulation is no good and not going to yield any meaningful research in wheel slippage detection in space and on the moon. We concluded that setting up a proper test environment using something like sand and real hardware, like a Husky robot, is far more important for this type of research. We did update the wheel slippage detection code to work as a ROS node and it functioned properly and could easily be imported into real hardware for testing. This project allowed me to take a leadership role, educate my peers on ROS development, and gain experience with Python, ROS, and Gazebo while tackling a complex problem I had never encountered before. Most importantly, this experience further solidified my passion for robotics and reinforced my desire to pursue research in the field, setting the stage for what would come next in my robotics journey.

HCR Laboratuvarında Başlamak

After completing CSCI473, my CS Field Session in the summer of 2020, and my Fall 2020 semester, I decided to pursue research in robotics. I had such great experiences with both CSCI473 and the CS Field Session that I decided I wanted to do research for the HCR Lab. Since I had met Dr. Zhang the year prior, I decided to email him and ask about any opportunities the lab might have in January 2021. Within about 2 weeks, Dr. Zhang expressed interest, presented me with research options, and offered me a role in the lab. I then started working for the lab in February 2021.

Tanıtım Videosu

Here’s my introduction video that I recorded a few months into my time in the HCR Lab. It was recorded in May 2021 and covers the research I would focus on in the HCR Lab during the summer of 2021:

Projem

Throughout my time in the HCR Lab, I mainly focused on the Triton project. The Triton project is a mobile robot developed by the Human Centered Robotics Lab at the Colorado School of Mines. It’s a triangular omni-wheel ground robot powered by NVIDIA’s Jetson Nano.

The Triton, in a simple overview, consisted of the following parts:

  • NVIDIA Jetson Nano
  • NVIDIA’nın Seed Studio A205 Taşıyıcı Kartı
  • Arduino Mega
  • 64 GB Micro SD Kart
  • Özel 3D baskılı gövde
  • 3 mecanum tekerleği
  • 1 AR Pil
  • Optimize edilmiş güç dağıtımı ve kablolama için özel devreler
  • Intel’in Realsense D435 Kamerası
  • Bazı LED’ler

It was designed, built, and manufactured around 2018-2020 as a robot for educational purposes. By the time I joined, the Triton was pretty established, and the lab was considering making a new version of it. However, the main issue with the Triton was its software. The Triton could move, charge, and function in a basic sense but did not really do anything intelligent. It even lacked the ability to make more advanced movements.

Batarya şarj cihazı kurulumu Test alanı düzeni
Erken test aşamasındaki Tritonlar Raflarda Tritonlar

To start addressing this, the lab set up an area where we could keep track of the Triton. To do this, they created a 2-meter by 2-meter area with 8 Optitrack Flex (Infrared Red) Cameras in a square-like shape about 6-7 feet above the floor.

Alan I1 Alan I2

Along with having this area built, each Triton had three gray sphere balls attached at the top of their bodies.

With this setup, we had effectively built our own small-scale GPS system that allowed us to get the exact coordinates in meters of a Triton in our area of interest. By using the Optitrack infrared cameras and the Optitrack gray spheres in a triangular shape, we could pinpoint the exact coordinates of a Triton in our area. This allowed us to apply a closed-loop system for better accuracy in movement.

The Optitrack system provided position and orientation data at about 120Hz with sub-millimeter accuracy when properly calibrated. Each Triton’s three reflective markers formed a unique triangular pattern that the system could track as a rigid body. The coordinate system was calibrated so that (0,0) was at the center of the tracking area, with X and Y axes aligned to the room’s geometry. But despite this precise positioning data, the Triton still struggled with movement.

With this setup, one core feature we wanted to provide the Triton was the ability to move to a specific coordinate. The user, or their software, could provide a (x, y) coordinate within their area of interest. Then the robot would move to that coordinate as fast, accurately, and seamlessly as possible. When I joined, this feature existed but it wasn’t working very well. Here is a simple animation showing how the original moving logic worked:

I did not record the original solution in action, so I created this simple animation showing you the old moving logic in action. Knowing this, what are the issues with this method?

  1. Gerçekten yavaş
  2. Robotun belirli bir noktaya gitmek için çok fazla alan kaplamasını sağlıyor. Bu, birden fazla Triton hareket ederken bu çözümü kullanmamızı zorlaştırdı.

So why was this behavior happening? The issue was that the Triton first turned, changing its alpha, until it pointed toward the target point within a specific margin of error. Then it would sprint forward, and after its theta was off from the target by a specific amount, it would stop and start turning again until the alpha was within that acceptable range for the target goal. Then it sprints again and keeps doing this until it gets to the point. Also, as it got closer and closer to the goal point, the turning and sprinting speed would get much slower to make sure it didn’t overshoot. This resulted in the Triton having unnatural movement, taking forever to get to a target point, and requiring so much area just to get to a specific target point. So with all of these issues, and given how essential this feature was for the development of the Triton project, when I started working at the HCR Lab, my first task was to develop more effective solutions that would allow the Triton to better navigate to a goal point.

Knowing this, I spent a lot of time doing research on the best possible way of addressing this problem. Ironically, I was taking a class called Introduction to Feedback Control Systems (EENG307) at Mines. Early in that class, we learned about the concept of Open-loop controllers and Closed-loop controllers. Knowing this, and after some discussion I had with the professor of that class and my smart roommate, it became clear that this goal of getting the Triton to a goal point was a closed-loop system problem.

Beyaz tahta kontrol sistemi diyagramı

Now, after extensive testing and research, I developed two distinct controller approaches for the Tritons:

Yöntem 1: Mesafe-Theta Kontrolcüsü

This approach used two separate proportional controllers running simultaneously:

  • Distance Controller: Hedefe olan Öklid mesafesini hesapladı ve ileri/geri hızını belirlemek için bir orantısal kazanç uyguladı
  • Theta Controller: Robotun mevcut yönü ile hedefe olan istenen yön arasındaki açısal hatayı hesapladı ve döndürme hızı için ayrı bir orantısal kazanç uyguladı

The algorithm continuously calculated the Euclidean distance to the target and the angular error between the robot’s current heading and the desired direction. Two separate proportional gains were applied to generate linear and angular velocities respectively.

This resulted in the Triton naturally turning toward the goal while simultaneously moving forward, creating smooth curved paths. The key advantage was that the robot always kept its front face oriented toward the destination, which was crucial for camera-based applications.

Yöntem 2: X-Y Koordinat Kontrolcüsü

Bu yaklaşım, robotu bağımsız X ve Y hareket kontrolü olan bir 2D çizici gibi ele aldı:

  • X Kontrolörü: X-koordinat hatasına dayalı olarak doğu-batı hareketini doğrudan kontrol eder
  • Y Kontrolörü: Y-koordinat hatasına dayalı olarak kuzey-güney hareketini doğrudan kontrol eder

Uygulama, X ve Y koordinat hatalarını bağımsız olarak hesapladı, ayrı orantısal kazançlar uyguladı ve ardından bu küresel hız bileşenlerini dönüşüm matrisleri kullanarak robotun yerel koordinat çerçevesine dönüştürdü. Bu dönüşüm, robotun omni-tekerlek tahrik sisteminin hızları kendi referans çerçevesinde, küresel koordinatlarda değil, gerektirdiği için gerekliydi. Bu yöntem, hedeflere en doğrudan yolları üretti ve önemli ölçüde daha hızlıydı, ancak robotun yönü, açık bir yön kontrolü olmadığı için kayıyordu.

Yöntem #1 için, bu yöntem hakkında tam detayları Move Turtle (TurtleSim) blog içinde verdim. PID kontrolörlerinin genel olarak nasıl çalıştığı ve yöntem #1’in nasıl işlediği hakkında tüm detayları öğrenmeniz için bu blogu okumanızı şiddetle tavsiye ederim. Yöntem #1’i ROS’un TurtleSim 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 aynı derecede etkili bir yaklaşım kullandı. Robotun yönü ve hedefe olan mesafesi üzerine düşünmek yerine, bu yöntem hareketi bir koordinat düzlemi problemi gibi ele alır. Kontrolör, X ve Y yönlerindeki hatayı ayrı ayrı sürekli olarak hesaplar. Örneğin, robotun (0,0) konumundan (2,3) konumuna hareket etmesi gerekiyorsa, bunu X’te 2 metre ve Y’de 3 metre hatayı düzeltmek olarak görür. İki orantısal 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, hedefe daha doğrudan bir yol oluşturdu, bir 3D yazıcı kafasının hareketine benzer ve düzgün diyagonal hareketlere izin verdi. Robotun hedefine bakmak için açıkça dönmesine gerek kalmadı, bu da yöntemi dar alanlarda veya hassas konumlandırmanın gerektiği durumlarda özellikle etkili kıldı.

Her iki yöntem de orijinal yaklaşıma göre önemli ölçüde daha hızlı ve daha güvenilir olduğunu kanıtladı. Bu yeni yöntemlerin aksiyonunu görmek için, yeni yöntemlerle tüm Tritonların çalışmasını gösteren Tritons in Action Playlist listesini inceleyin.

Bir zamanlar basit bir nokta-nokta hareketi için 30-45 saniye süren şey, şimdi yaklaşık 8-12 saniye sürüyor. Daha da önemlisi, Triton artık dar alanlarda daha verimli bir şekilde gezinebiliyor, bu da çoklu robot senaryolarımız için faydalı oldu.

Geliştirme Zorlukları ve Hata Ayıklama

Bu kontrolörleri uygulamak basit 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 yapmaktı. Optitrack sistemi verileri kendi koordinat çerçevesinde sağlarken, robotun kendi yerel koordinat çerçevesi vardı ve aralarında doğru bir şekilde dönüşüm yapmam gerekiyordu. Erken uygulamalarda robotlar yanlış yönlerde hareket ediyordu çünkü dönüşüm matrisi hesaplamalarını karıştırmıştım.

Gerçek Dünya vs. İdeal Davranış: En büyük zorluk, ders kitabı kontrol teorisinde ortaya çıkmayan gerçek dünya faktörlerini hesaba katmaktı. Robotun tekerlekleri farklı sürtünme özelliklerine sahipti, motorlar aynı şekilde yanıt vermiyordu ve Optitrack’ten kontrol yazılımına, ardından robotun Arduino’suna kadar iletişim zincirinde her zaman bir gecikme oluyordu. Bu fiziksel gerçekleri hesaba katmak için haftalarca orantısal kazançları ayarladım ve ölü bölge filtreleri ekledim.

Osilasyon ve Stabilite Sorunları: İlk uygulamalarım, robotların hedeflerini aşırı geçip ileri geri sallandığı osilasyon problemleri yaşadı. Bu, PID kontrolörlerinde türev terimlerinin önemini ve doğru kazanç ayarlamanın gerekliliğini öğretti. Sonunda, sistemin doğal sönümlemesi çoğu uygulama için yeterli olduğundan, tam PID yerine dikkatlice ayarlanmış kazançlarla ağırlıklı olarak orantısal kontrol kullanmaya karar verdim.

Çoklu Robot Müdahalesi: Birden fazla robot aynı anda çalıştığında beklenmedik müdahale desenleri keşfettim. Robotlar bazen aynı alan için “kavga” eder ya da birbirlerini süresiz olarak engelleyen kilitlenme durumları yaratırdı. Bu, koordinasyon mekanizmaları ve çarpışma önleme algoritmaları uygulamama yol açtı.

Çoklu Triton Kontrol Sistemi

Tek bir Triton hareket 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ı oldu.

Orijinal sistem aynı anda yalnızca bir Triton 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, trafik akışını optimize etmek ve daha iyi SLAM (Eşzamanlı Konumlandırma ve Haritalama) haritaları oluşturmak için birbirleriyle iletişim kuran otonom arabalar gibi.

Bunu çözmek için Python’un multiprocessing kütüphanesini kullanarak çoklu işlem yaklaşımı uyguladım. Her Triton, bağımsız olarak çalışabilen ancak hâlâ merkezi bir kontrol sistemi tarafından koordine edilen kendi özel sürecine sahip oldu. Bu, birden fazla Tritonun aynı anda hareket etmesini, birbirlerinin kontrol döngülerine müdahale etmeden sağladı.

Çoklu Robot Mimari Tasarımı

Geliştirdiğim sistem mimarisi birkaç ana bileşenden oluşuyordu:

Ana Kontrolör Süreci: Bu, kullanıcı arayüzü etkileşimlerini, yol planlamasını ve robotlar arasındaki yüksek seviyeli koordinasyonu yöneten merkezi koordinatör olarak hizmet verdi. Küresel durumu korudu ve bireysel robot süreçlerine komutlar dağıttı.

Bireysel Robot Süreçleri: Her Triton, aşağıdakileri yöneten kendi özel Python sürecine sahipti:

  • ~50Hz’de gerçek zamanlı PID kontrol hesaplamaları
  • Robotun donanımıyla (Arduino/Jetson) iletişim
  • Yerel yol yürütme ve engel kaçınma
  • Ana kontrolöre durum raporlaması

Paylaşımlı 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 izin verdi.

Eşzamanlama Mekanizmaları: Birden fazla robotun koordine olması gerektiğinde (çarpışmaları önlemek gibi) çatışmaları önlemek için robotların çalışma alanının belirli bölgelerine münhasır erişim talep etmelerini sağlayan semaforlar ve kilitler uyguladım.

Zorluk, tüm robotların kontrol döngülerini bağımsız olarak çalıştırırken hâlâ küresel koordinasyonu sürdürmelerini sağlamaktı. 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 yüksek seviyeli koordinasyonu yönetti.

Çoklu Triton kavşak testi Erken çoklu Triton kurulumu

Gelecek çok ajan çalışması için dronlarla Triton

Çoklu Triton sistemi tamamen yeni araştırma olanakları açtı. Artık şu senaryoları simüle edebiliyorduk:

  • Araçtan araca iletişim senaryoları
  • Engel kaçınmalı koordine yol planlaması
  • Sürü robotik davranışlar
  • Çok ajanlı SLAM haritalama
  • Formasyon kontrolü ve takip davranışları

İşte laboratuvar kurulumunun birden fazla Tritonun aynı anda çalıştığı hali:

Yeşil ızgarada robotlar Robot ızgara kurulumu

Ayrıca araştırmacıların her Triton için görsel olarak yollar tanımlamasına izin veren kullanıcı dostu bir arayüz geliştirdim. Her robotun takip etmesini istediğiniz yolu kelimenin tam anlamıyla çizebilir ve bu yolları mükemmel koordinasyonla yürütürlerdi. Bu, her hareketi manuel olarak kodlamadan karmaşık deneyler kurmak için son derece faydalıydı.

Sistem aynı anda 5 Tritona kadar çalışabilir, her biri kendi PID kontrolörlerini çalıştırırken merkezi kontrol sistemi aracılığıyla koordine edildi. Performans etkileyiciydi; tüm robotlar bireysel doğruluklarını korurken bir ekip olarak birlikte çalıştı.

İşte tek robot kontrolünden çoklu robot koordinasyonuna kadar Tritonların aksiyonunu gösteren bir çalma listesi: Tritons in Action Playlist

Derinlik Sensörü Entegrasyonu ve Koordinat Düzeltmesi

Üzerinde çalıştığım bir diğer büyük ilerleme, her Triton üzerine monte edilmiş Intel RealSense D435 derinlik kameralarını kullanmayı içeriyordu. Optitrack sistemi bize son derece hassas konumlandırma verileri sağlarken, robotların yerleşik sensörlerini kullanarak mekânsal farkındalıklarını artırmalarını ve koordinat hatalarını düzeltmelerini keşfetmek istedim.

Fikir, Tritonların derinlik sensörlerini kullanarak yakın çevrelerindeki diğer Tritonları tespit etmeleri ve konumlarını çapraz referanslamalarıydı. Bu, birden fazla amaca hizmet ederdi:

  1. Hata Düzeltmesi: Optitrack sisteminde herhangi bir kalibrasyon kayması veya geçici bir örtülme olursa, robotlar birbirlerinin konumlarını görsel olarak doğrulayarak doğru koordinat sistemlerini koruyabilir.

  2. Geliştirilmiş SLAM: Derinlik sensörlerine sahip birden fazla robotun birlikte çalışmasıyla, ortamın çok daha zengin haritalarını, yinelenen veri noktalarıyla oluşturabilirdik.

  3. Çarpışma Önleme: Gerçek zamanlı derinlik algılaması, robotların birbirlerini algılamasını ve kaçınmasını sağlayabilir, hatta merkezi kontrol sistemi iletişim gecikmelerine sahip olsa bile.

Tritonların şunları yapmasını sağlayacak algoritmalar üzerinde denemeler yapmaya başladım:

  • Diğer Tritonları ayırt edici üçgen şekilleri ve yansıtıcı küre işaretçileri kullanarak tespit edin
  • Derinlik verilerini kullanarak göreceli konumları ve yönelimleri hesaplayın
  • Bu ölçümleri Optitrack verileriyle karşılaştırarak tutarsızlıkları belirleyin
  • Doğruluğu korumak için koordinat sistemlerini gerçek zamanlı olarak potansiyel olarak ayarlayın

Bilgisayar Görüşü Deneyleri

Bu aşamalı çalışan bir bilgisayar görüşü hattı üzerinde denemeler yaparak çok zaman harcadım:

Bilgisayar görüşü testleri için birbirine bakan iki Triton Triton kamerasının yakın çekimi
Test için yüz yüze iki Triton
Birbirine bakan iki robot Yarışa hazırlanmış iki Triton

Derin Veri İşleme: Intel RealSense D435, hem RGB hem de derinlik veri akışları sağladı. Öncelikli olarak derinlik verileriyle çalıştım; bu veriler 30Hz’de 640x480 ölçüm dizisi olarak geliyordu. İlk zorluk, bu gürültülü derinlik verilerini filtreleyerek anlamlı geometrik bilgiler çıkarmaktı.

Nesne Tespiti Denemeleri: Çok aşamalı tespit algoritmalarıyla denemeler yaptım. Derinlik görüntüsünü bölerek yer seviyesindeki nesneleri (duvarları, tavanı vb. filtreleyerek) tanımlamada bir miktar başarı elde ettim ve yaklaşık 0.3x0.3 metre ayak izi olan doğru boyut özelliklerine sahip nesneleri aradım. Kenar tespiti ve geometrik analiz kullanarak ayırt edici Triton profilini tanımlamaya çalıştım, 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ünde üç parlak noktanın karakteristik üçgen desenini tanımlamak için blob tespit algoritmalarıyla denemeler yaptım. Kontrollü aydınlatma koşullarında bazı umut verici sonuçlar elde ettim, ancak tutarlı bir şekilde güvenilir değildi.

Koordinat Füzyon Araştırması: Görüş tabanlı konum tahminlerini Optitrack verileriyle birleştirme yaklaşımlarını araştırdım, temel Kalman filtresi uygulamaları dahil. Konsept, Optitrack verileri mevcut olduğunda daha fazla ağırlık vermek, gerektiğinde ise görüşe geri dönmekti; ancak laboratuvardaki sürem bitmeden bunu tamamen çalışır hâle getiremedim.

Performans Zorlukları: Tüm bu işleme, robotun kontrol döngüleriyle birlikte gerçek zamanlı çalıştırmak zorlayıcı oldu. Algoritmaları Jetson Nano’nun işlem kapasitesini aşmadan yaklaşık 10-15Hz’de çalıştırmak için optimizasyon yaklaşımları denedim.

Ne yazık ki, bu bilgisayar görüşü çalışmasını tam olarak tamamlamadan laboratuvardan ayrılmak zorunda kaldım. Erken aşamalarda bazı umut verici sonuçlar elde ettim ve derinlik sensörü işleme hakkında çok şey öğrendim, ancak sistemi tamamen güvenilir bir duruma getiremedim. Bu, başkalarının potansiyel olarak üzerine inşa edebileceği ilginç bir araştırma yönü olarak kaldı.

İşte bilgisayar görüşü algoritmalarını test ettiğim bir video:

Deneylerim sırasında derinlik sensörü görünümünün nasıl olduğunu şu şekilde gösteriyorum:

While I didn’t complete the depth sensor integration work, the concept showed promise for applications like simulating self-driving car scenarios, where vehicles need to be aware of each other without relying solely on external infrastructure. The research direction I started exploring could potentially contribute to future work in the lab.

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ğılmıştı. Kritik bilgiler şu şekilde dağılmıştı:

  • Mezun olmuş farklı öğrencilerin ç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 yorumlayabildiği el yazısı notlar

Bu parçalanmış dokümantasyon büyük bir sorundu. Yeni öğrenciler, nasıl başlayacaklarını anlamak için haftalar harcarken, değerli bilgiler mezun olduklarında veya laboratuvardan ayrıldıklarında sürekli kayboluyordu.

Bu sorunu sistematik bir şekilde çözmeye karar verdim. Triton projesiyle ilgili her dokümantasyon, kod, video ve notu bulmak için sayısız saat harcadım. Ardından her şeyi net ve mantıklı bir yapıya sahip bir merkezileştirilmiş GitLab deposuna düzenledim.

Masa üzerindeki Triton Masa üzerindeki birden fazla Triton (toplam 8, 5'i inşa ediliyor)

Raf üzerindeki Tritonlar hoş bir açıyla

Merkezileştirilmiş dokümantasyon şunları içeriyordu:

  • Derleme 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 problemler ve çözümleri
  • Video Eğitimleri: YouTube’a öğretici videolar oluşturdum ve yükledim, detaylı Optitrack kalibrasyon eğitimleri dahil:

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 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 oluşturdum. Bunlar arasında yeni laboratuvar üyeleri için detaylı kurulum talimatları, kapsamlı sorun giderme kılavuzları ve karmaşık prosedürlerin video yürütmeleri yer alıyordu.

Etkisi anında ve kalıcıydı. Yeni öğrenciler haftalar yerine günler içinde hızla ilerleyebildi. Oluşturduğum dokümantasyon deposu, ayrıldıktan yıllar sonra bile laboratuvar tarafından hâlâ kullanılmaktadır. Triton projesi için tek gerçek kaynağı haline geldi ve gelecekteki araştırmacılar için sayısız saat/gün tasarrufu sağladı.

Mentorluk ve Bilgi Transferi

HCR Laboratuvarındaki zamanımın 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 sistemlerinde daha deneyimli oldukça, yeni ekip üyelerini eğitme sorumluluğu giderek arttı.

Laboratuvar Haleflerine Mentorluk

Laboratuvardan sonunda ayrılıp derecemi tamamlamaya ve eBay’deki çalışmalarıma odaklanmaya hazırlanırken, ayrıldıktan sonra 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östermek değildi; aynı zamanda temel prensipleri gerçekten anlamalarını sağlayarak yenilik yapmaya devam edebilmelerini temin etmekti.

  • PID kontrol sistemlerinin matematiksel temelleri
  • Birden fazla robotu koordine eden çoklu işlem mimarisi
  • Derinlik sensörü entegrasyonu ve bilgisayar görüşü algoritmaları
  • Dokümantasyon sistemi ve nasıl sürdürüleceği
  • Hata ayıklama teknikleri ve yaygın hata modları

Bilgi transferi son derece kapsamlıydı. Gerçek hata ayıklama oturumlarından birlikte geçtik, mevcut kodu değiştirmelerini ve genişletmelerini sağladım ve yeni Tritonları sıfırdan bağımsız olarak kurabilmelerini temin ettim.

Lise Mentorluk Programı

Belki de daha da ödüllendirici olan, laboratuvarın outreach programı aracılığıyla bir lise öğrencisine mentorluk yapma deneyimimdi. Bu, birini robotik, bilgisayar bilimi ve araştırmaya eğitim aşamasında tanıtmak için harika bir fırsattı.

Kapsamlı bir müfredat tasarladım ve şunları kapsadı:

Bilgisayar Bilimi Temelleri:

  • Ana dil olarak Python kullanılan programlama kavramları
  • Nesne yönelimli programlamaya giriş
  • Algoritmalar ve veri yapılarını anlama

Robotik Kavramları:

  • Sensörlerin nasıl çalıştığı ve onlarla nasıl arayüz kurulacağı
  • Aktüatör kontrolü ve motor sistemleri
  • Otonom sistemlerin temelleri ve geri besleme kontrolü

ROS (Robot Operating System):

  • Yayın/abone mesajlaşma sistemini anlama
  • Düğümler ve servisler oluşturma
  • Launch dosyaları ve parametre sunucularıyla çalışma

Uygulamalı Proje Çalışması:

  • Triton’un kafasındaki LED sistemini kontrol eden bir ROS servisi oluşturmak için iş birliği yaptık
  • Mevcut sistemlerimizle bütünleşen temiz, belgelenmiş kod yazmayı öğrendi
  • Oluşturduğu LED kontrol servisi, Triton kod tabanının kalıcı bir parçası haline geldi

Bu mentorluk özellikle ö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 ilerlemesini izlemekti. “Değişken nedir?” sorusundan bağımsız olarak ROS iletişim sorunlarını hata ayıklamaya ve kendi servis implementasyonlarını yazmaya kadar ilerledi.

Geliştirdiği LED kontrol sistemi, araştırmacıların basit ROS komutlarıyla Triton’un kafa LED’lerinin renk ve desenlerini kolayca değiştirmesini 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. Katkısı hâlâ laboratuvarda kullanılmaktadır.

Mentorluk benim için olduğu kadar onun için de öğreticiydi. Beni karmaşık kavramları sindirilebilir parçalara ayırmaya ve gerçekten ne yaptığımızın temellerini düşünmeye zorladı. Birine öğretmek beni daha iyi bir mühendis ve araştırmacı yaptı.

Doktora Araştırmasıyla İşbirliği

Laboratuvardaki zamanımın en profesyonel açıdan ödüllendirici yönlerinden biri, kendini sürücüsüz 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ı, sürücüsüz araba senaryolarını simüle etmek için hassas, güvenilir çok-robot koordinasyonu gerektiriyordu. Hareket kontrolü ve çok-robot sistemlerine yaptığım iyileştirmelerden önce, bu deneyler çok daha zor yürütülüyordu. Robotlar daha yavaştı, daha az doğruydu ve etkili bir şekilde birlikte çalışamıyordu.

Katkılarım Peng’in araştırmasına birkaç alanda yardımcı oldu:

Kesişme Yönetimi Çalışmaları: Geliştirilmiş PID kontrolörleri ve çok-robot koordinasyonu sayesinde, Peng birden fazla “araç” (Triton) hareketlerini koordine etmesi gereken kesişme senaryolarını simüle edebildi. Daha iyi zamanlama ve konumlandırma bu çalışmaları daha uygulanabilir kıldı.

Araçtan-Araca İletişim: Geliştirdiğim çoklu işlem çerçevesi, Peng’in simüle edilmiş araçlar arasında iletişim protokollerini uygulamasına ve test etmesine olanak sağladı. Her Triton, diğerleriyle koordine olurken kararlar alabiliyordu, bu da sürücüsüz arabaların nasıl çalışması gerektiğine 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 veri sağladı. Koordine edilmiş algılama yeteneklerine sahip birden fazla robotun bulunması, daha kapsamlı haritalama deneylerine olanak tanıdı.

Ortaklığımızı özellikle değerli kılan şey, sadece 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 bildirimi ve gereksinimleri, sistemleri daha sağlam ve yetenekli hâle getirmemi sağladı.

Laboratuvarda birlikte 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ş oldu ve onunla çalışmak akademik araştırmanın nasıl işlediği konusunda bana çok şey öğretti.

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. Bu, sağlam mühendislik ve araştırmanın birlikte nasıl faydalı sonuçlar üretebileceği konusundaki ilgimi pekiştirdi.

Laboratuvardan ayrıldıktan sonra bile Peng ve ben iletişimde kaldık. Çalışmalarımın ayrıldıktan sonra da önemli araştırmalara katkıda bulunmaya devam ettiğini bilmek son derece ödüllendiriciydi.

Perspektif: LLM Öncesi Geliştirme Dönemi

Bu çalışmanın tamamının LLM öncesi yazılım geliştirme döneminde gerçekleştirildiğini belirtmek gerekir. 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 olmadan.

Her 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, yazdırma ifadeleri, hata ayıklayıcılar ve metodik testler gibi geleneksel yöntemleri içeriyordu. Koordinat dönüşümü ya da PID ayarı sorununda takıldığımda, bir AI asistanına konsepti açıklamasını ya da sorunu hata ayıklamasını isteyemezdim.

Bu, geliştirme sürecini önemli ölçüde daha zorlaştırdı ancak aynı zamanda daha öğretici yaptı. Şunları yapmak zorundaydım:

Her Şeyi Manuel Olarak Araştır: PID kontrol teorisini anlamak, ders kitapları ve akademik makaleler okumak anlamına geliyordu. Koordinat dönüşümlerini çözmek, matematiği elle çalışmayı gerektiriyordu. Her kavram, uygulanmadan önce tam olarak anlaşılmalıydı.

AI Yardımı Olmadan Hata Ayıkla: Robotlar beklenmedik yönlere hareket ettiğinde ya da hedeflerin etrafında salındığında, mantığı metodik olarak izlemeli, hata ayıklama çıktıları eklemeli ve hipotezleri tek tek test etmeliydim. Potansiyel sorunları önermek ya da hata desenlerini yorumlamak için bir AI yoktu.

İlk Prensiplerden Öğren: “Python’da robotik için çoklu işlem nasıl uygulanır?” gibi soruyu hızlıca sorabilme yeteneği olmadan, temel kavramları derinlemesine anlamak zorundaydım. Bu, eşzamanlı programlama, kontrol sistemleri ve bilgisayarlı görüde sağlam bir temel oluşturmamı zorladı.

Dokümantasyon Kritikti: Kodları daha sonra AI’ye açıklatamayacağım için son derece net dokümantasyon ve yorumlar yazmak zorundaydım. Bu disiplin, bilgiyi başkalarına aktarırken paha biçilmez oldu.

Geriye baktığımda, modern AI araçları geliştirme sürecinin birçok yönünü hızlandırmış olsaydı da, onlarsız çalışmak beni daha derin problem çözme becerileri geliştirmeye ve temel sistemlerin daha kapsamlı bir anlayışına zorladı. Bugünün geliştirme araçları mevcut olsaydı bu projenin ne kadar farklı olabileceğini düşünmek büyüleyici.

Ayrılma Kararının Zorluğu

HCR Laboratuvarında çalışmayı ne kadar çok 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ı bir yazılım mühendisi olarak çalışıyor, Mines’te bilgisayar bilimi derecemi 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 bir endüstri deneyimi sağladı ve bana sağlam bir gelir getirdi. Ancak tam zamanlı işi sürdürmek, derecemi tamamlamak ve araştırmaya anlamlı bir şekilde katkıda bulunmak sürdürülemezdi. Bir şeyin feda edilmesi gerekiyordu.

Dr. Zhang’a laboratuvar çalışmalarına daha fazla odaklanmak için ders yükümü azaltma ihtimalini sorduğumda, bunu şiddetle tavsiye etmedi. Gerekçesi mantıklıydı: derecemi tamamlamak öncelik olmalı ve eBay’deki endüstri deneyimi kariyer gelişimim için değerli olacaktı. Dersleri bırakıp araştırmaya odaklanmanın cazip olmasına rağmen, uzun vadede en iyi karar olmayabileceğini düşündü.

Bu yüzden Eylül 2021’de, laboratuvarda yaklaşık 8 ay yoğun çalışma sonrası, araştırma asistanı görevimden geri çekilerek derecemi tamamlamaya ve eBay’deki işime odaklanma kararı aldım. O zamanlar vermem gereken en zor profesyonel kararlardan biriydi.

Laboratuvardan resmi olarak ayrıldıktan sonra bile, oluşturduğum sistemlerle ilgili yardıma ihtiyaç duyan herkese destek vermeye devam ettim. Gerektiğinde dokümantasyonu güncelledim, hata ayıklama sorularını yanıtladım ve uzaktan sorunları çözmeye yardımcı oldum. Projenin başarısına yaptığım bağlantılar ve yatırım, artık resmi olarak ekibin bir parçası olmadığım için ortadan kaybolmadı.

Düşünceler ve Geri Bakış

Şimdi, 2025’te, dört yıl sonra, o zamanları 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 ödüllendirici oldu ve büyüme ve etki için muazzam fırsatlar sundu.

Masa üzerindeki Tritonların üstten görünümü

Yine de içinde “ya olsa” diye merak eden bir yanım var. Robotik, ve dürüst olmak gerekirse hâlâ, gerçek tutkumdu. Fiziksel sistemlerle çalışmak, kodunuzun gerçek dünyadaki hareket ve davranışa dönüşmesini görmek, web geliştirme ve hatta AI çalışmasının tam olarak taklit edemediği bir şey.

Bazen farklı bir yol seçseydim ne olabileceğini merak ederim. Robotik araştırmalarında kalmanın bir yolunu bulmuş olsaydım ne olurdu? Lisans eğitimimi bitirdikten hemen sonra lisansüstü okula gitseydim ne olurdu? Endüstri deneyimi yerine laboratuvar çalışmalarını önceliklendirmiş olsaydım ne olurdu?

Ama aynı zamanda her yolun kendi ödünleşimleri 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ünler inşa etmenin pratik zorlukları hakkında bana bir şeyler öğretti. Bu deneyimler beni genel olarak 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 besleme döngüleri tasarlamamda ortaya çıkıyor. Geliştirdiğim dokümantasyon ve bilgi koruma becerileri, o zamandan beri her rolde paha biçilmez 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, deneyim bana gerçek dünya etkisi olan zorlu teknik problemler üzerinde çalışırken en iyi performans gösterdiğimi öğ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 ve zor problemleri çözmekten geliyor.

Kalıcı Etki

HCR Laboratuvarı deneyimine geri baktığımda, nispeten kısa bir sürede ne kadar çok şey başardığıma hayret ediyorum. Oluşturduğum sistemler Triton platformunun çalışmasını temelden değiştirdi ve bu iyileştirmelerin birçoğu hâlâ bugün 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ı.

Ancak belki de en önemlisi, deneyim bana gerçekten tutkulu olduğum problemler üzerinde çalışırken neler yapabileceğimi gösterdi. O sekiz ay içinde, ben:

  • Platformu sınırlayan robot hareket kontrol sistemini geliştirdim
  • Sıfırdan çoklu robot koordinasyon sistemi oluşturdum
  • Bilgisayarlı görme ve sensör füzyon yeteneklerini entegre ettim
  • Kapsamlı bir dokümantasyon ve bilgi yönetim sistemi yarattım
  • Birkaç kişiye mentorluk yaptım ve bilgi transferine yardımcı oldum
  • Otonom araçlarda doktora seviyesinde araştırmaları destekledim

Bu sadece teknik başarılardan ibaret değildi, ancak bunlar benim için anlamlıydı. Süreklilik ve sistematik düşünme ile bir lisans öğrencisi olarak bile faydalı katkılar yapabileceğinizi öğrenmekti.

Gelecek ve Robotik

Kariyerim başka yönlere yönelmiş olsa da, robotik tutkum azalmadı. Alanındaki gelişmeleri hâlâ takip ediyorum, robot öğrenimi ve otonom sistemlerdeki ilerlemeler beni heyecanlandırıyor ve zaman zaman boş zamanlarımda kişisel robotik projeleri üzerinde çalışıyorum.

Kim bilir gelecekte ne var? AI ve makine öğreniminde geliştirdiğim beceriler robotik için giderek daha ilgili hale geliyor. Edindiğim endüstri deneyimi, sağlam ve ölçeklenebilir sistemler inşa etmeyi öğretti. Belki de bu farklı deneyim ipliklerinin beklenmedik şekillerde bir araya geldiği bir gelecek vardır.

Şimdilik, HCR Laboratuvarı’nda geçirdiğim zaman ve bana sağladığı deneyimler için minnettarım. Bu, hem teknik becerilerimi hem de en tatmin edici bulduğum iş türlerini anlama şeklimi şekillendiren bir dönüm noktasıydı. Bazen özlesem de, öğrendiğim derslerin ve geliştirdiğim yaklaşımların yaptığım her şeyi etkilemeye devam ettiğini biliyorum.

Robotlar hâlâ orada, hâlâ araştırmacılara hizmet veriyor, hâlâ önemli çalışmaları mümkün kılıyor. Ve bu oldukça harika.