CS Alan Oturumu

CG_GUI_19

Arka Plan

2020 Yazında, Colorado Maden Okulu’ndaki bilgisayar bilimi lisans programımın bir parçası olarak CSCI370 veya “İleri Yazılım Mühendisliği” dersini aldım. CSCI370, öğrencilerin bir şirket için yazılımla ilgili çözümler tasarlayıp uygulamalarını ve belgelerini hazırlamalarını sağlayan bir derstir. Bu ders, öğrencilerin ders bilgilerini gerçek dünya bilgisayar bilimi problemlerine uygulamalarına olanak tanır. Ders hakkında daha fazla bilgi edinebilirsiniz buradan.

Dersin içinde hangi proje/şirket üzerinde çalışacağınızı seçme şansınız var. Ders, her proje ve şirketi detaylandıran PDF’ler sağladı. Sonunda, Lunar Outpost adlı bir şirketin paylaştığı Gerçek Zamanlı Tekerlek Kayması Tespiti ve Hata Düzeltmeleri ile Geliştirilmiş Ay Navigasyonu adlı projede çalışmaya karar verdim. Adı uzun olduğu için projeye “Tekerlek Kayması Tespiti” takma adını verelim.

Problem

Lunar Outpost, otonom ay rover’ları yaratmaya çalışan bir girişimdir. Ay’da, tekerlek kaymasına neden olduğu bilinen çok fazla ay tozu vardır. Bu ideal değildir çünkü tekerlek kayması, otonom sistemlerin gerçek dünya konumlarını kaybetmesine neden olabilir. Dünya’da, tekerlek kaymasından kaynaklanan herhangi bir kaymayı düzeltmek için GPS verileri kullanılarak bu sorun çözülmektedir. Ancak GPS’in sorunu, yalnızca 30+ navigasyon uydusunun sürekli olarak Dünya’nın etrafında dönerken benzersiz sinyaller iletmeleriyle çalışmasıdır; bu da bilgisayarların konumlarını hesaplamalarına olanak tanır. Ancak Ay’da şu anda GPS benzeri bir şey yoktur. Bunu bildiğimiz için, tekerlek kaymasını tespit etmek için GPS dışında başka bir yöntem kullanılmalıdır. Projenin sorununa dair daha ayrıntılı bir rapor buradan görüntülenebilir.

Takım Arkadaşları

Bu proje basit bir proje değildi, bu yüzden bir ekip içinde yapılması gerekiyordu. Ekip, Colorado Maden Okulu’ndan beş öğrenci içeriyordu:

  • Mehmet Yilmaz
  • Kane Bruce
  • Braedon O’Callaghan
  • Liam Dempsey
  • Kevin Grant

Proje, bize biraz ROS, C++, Python, Linux, Raspberry Pi ve Arduino bilgisi gerektirdi. Çoğumuz bu teknolojilerden bir veya daha fazlasında deneyime sahipti, ancak ben yalnızca ROS deneyimine sahip olan kişiydim çünkü 2020 Bahar döneminde İnsan Merkezli Robotik (CSC470) dersimde ROS kullandım. Bu nedenle, erken aşamalarda, herkesi ROS hakkında bilgilendirmeye ve onun için geliştirme yapmalarına 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 bir robota erişimimizin olmamasıydı. Bu, COVID nedeniyle her şeyin uzaktan yapılması ve Lunar Outpost’un laboratuvarında/binalarında çalışmamızı engellemesindendi. Bu nedenle, simülasyonlar kullanmak zorunda kaldık.

Ayrıca, Lunar Outpost’un kullanım durumu için Tekerlek Kayması sorununu nasıl çözebileceğimize dair bir fikir edinmek için WVU Navigasyon Laboratuvarı tarafından yapılan bazı akademik araştırmalara da göz attık. Bu, bizim için, lisans ikinci ve üçüncü sınıf öğrencileri olarak, beklediğimizden daha zordu.

Karşılaştığımız bir diğer zorluk ise bu projede çalışmak için sahip olduğumuz zaman miktarıydı. CSCI370 bir aylık bir derstir. Ancak sorun kendisi, birçok şirketin ve akademisyenin on yıllardır çözmeye/ mükemmelleştirmeye çalıştığı devasa bir problemdir. Bu nedenle bir ay, bu sorunu çözmek için yeterli bir süre değildir. Ancak, tüm bu zorluklara rağmen, ilerlemeye devam ettik ve teslimat yapmayı sağladık.

Sonuç

Bu yazıda, çözümlerimizin daha ayrıntılı bir açıklamasını vermek isterdim. Ayrıca, ne keşfettiğimizi ve nihai sonuçları açıklayan uygun bir sonuç sunmak isterdim. Ancak ne yazık ki, ben ve takım arkadaşlarım bu projeyle ilgili gizli bilgileri paylaşmamızı engelleyen bir Gizlilik Sözleşmesi (NDA) imzaladık. Yukarıda verdiğim tüm bilgiler kamuya açıktır ve internette erişilebilir.

Bu proje sırasında, ROS’u nasıl kullanacağımızı ve ROS ile Gazebo kullanarak simülasyonlar oluşturmayı gerçekten öğrendik. Ayrıca, tekerlek kayması tespiti araştırma alanında daha iyi bir anlayış kazandık. WVU Navigasyon Laboratuvarı’ndan bazı akademisyenlerle/araştırmacılarla tanışma onuruna da sahip olduk.

Tüm bunları bildiğim için, bu projenin bana ekipte liderlik pozisyonu alma, ROS’u daha iyi anlamaları için arkadaşlarıma yardımcı olma ve ROS, Gazebo ve Python’da daha fazla deneyim kazanma fırsatı sunduğunu söylemeliyim. Ayrıca, bu projede çalışana kadar farkında olmadığım bir sorun olan tekerlek kayması sorunuyla da tanışmamı sağladı. Genel olarak, Lunar Outpost’un yoğun programlarından, özellikle COVID sırasında, bu projede çalışmamı sağlamak için zaman ayırdığı için minnettarım. Ayrıca, bu projede gerçekten çok çalışan harika takım arkadaşlarına sahip olduğum için de teşekkür ederim.