Omni Assist
Omni Assist, el ve kol hareketlerinde fiziksel problem yaşayan hastaların giyilebilir donanım ile rehabilitasyon egzersiz oyunları oynayabildiği TÜBİTAK destekli Unity masaüstü uygulamasıdır.
- Kurum / bağlam
- Sigun Bilgi Teknolojileri
- Kategori
- Masaüstü
- Dönem
- 1 Şub 2020 - 1 Kas 2020
Teknolojiler
C# Unity .NET Standard 2.1 Git GitLab Visual Studio SourceTree JSON Serial Port Communication with COM Port RS-232 Postman GIMP REST Services Multithreading Singleton Pattern Abstract Class Interface
Omni Assist, Sigun Bilgi Teknolojileri için geliştirilen, TÜBİTAK destekli, ellerinde ve kollarında fiziksel problem yaşayan hastaların rehabilitasyon sürecinde kullanılan oyunlaştırılmış bir masaüstü uygulamasıdır. Hastalar, doktor görüşleriyle belirlenen egzersiz türlerine uygun oyunları, kollarına taktıkları giyilebilir donanım aracılığıyla oynayabilir. Oyunlardan elde edilen veriler doktorların kullandığı farklı bir sisteme aktarılarak sürecin takibi ve iyileşme durumu kontrol edilebilir.
Proje Bilgisi
- Kurum / bağlam: Sigun Bilgi Teknolojileri
- Platform: Masaüstü
- Dönem: Şubat 2020 - Kasım 2020
Proje Türü
- Proje, Unity oyun motoru kullanılarak geliştirilen bir masaüstü uygulamadır.
- El ve kol hareketlerinde fiziksel problem yaşayan hastalar için egzersizleri oyunlaştırılmış bir rehabilitasyon deneyimine dönüştürür.
- Proje TÜBİTAK tarafından desteklenmiştir.
Mimari Yapı / Sistem Tasarımı
- Proje mimarisi masaüstü uygulama ve giyilebilir donanım olmak üzere iki ana katmandan oluşur.
- Masaüstü uygulama katmanı, hastaların egzersiz oyunlarını oynadığı Unity uygulamasıdır.
- Giyilebilir donanım katmanı, hastaların kollarına taktığı ve basınç ile hareket verisi üreten cihazı ifade eder.
- Donanım farklı bir firma tarafından geliştirilmişti ve byte array formatında veri üretiyordu.
- Üretilen basınç ve hareket verileri, kablolu bağlantı üzerinden RS-232 veri haberleşme standardı ile uygulamaya aktarılıyordu.
- Uygulama bu verileri anlamlı hale getirerek oyunlarda parametrik değer olarak kullanıyordu.
- Uygulamada paylaşılan durum ve nesne erişimi için Singleton Pattern kullanıldı.
- Bağımlılığı azaltmak, tekrarı önlemek ve genişletilebilirliği artırmak için abstract class ve interface yapılarından yararlanıldı.
Kullanılan Teknolojiler
- Masaüstü geliştirme: C#, Unity, .NET Standard 2.1, Visual Studio
- Donanım haberleşmesi: Serial Port Communication with COM Port, RS-232
- Veri ve entegrasyon: JSON, REST Services, Postman
- Mimari ve performans: Singleton Pattern, Abstract Class, Interface, Multithreading
- Versiyon kontrolü ve görsel hazırlık: Git, GitLab, SourceTree, GIMP
Öne Çıkan Teknik Detaylar ve Modüller
- Farklı egzersiz tipleri için onlarca oyun geliştirildi.
- Uygulama REST servisler ile entegre çalışacak şekilde hazırlandı.
- Çoklu dil desteği eklendi.
- Oyun akışını bloklamaması gereken işlemler için multithreading desteği sağlandı.
- Geliştirilen oyun modülleri giyilebilir donanımdan gelen veri akışıyla entegre edildi.
Katılım Durumu ve Süre
- Projeyi tek başıma geliştirdim.
- Sürecin başından sonuna kadar tüm aşamalarda kendim yer aldım.
- Projede Şubat 2020 ile Kasım 2020 tarihleri arasında Yazılım Mühendisi olarak görev aldım.
Proje Yönetimi / Takım Yapısı
- Projede ayrı bir proje yönetim aracı kullanılmadı.
- Proje Git ile versiyonlandı ve şirketin GitLab sunucusunda tutuldu.
- Geliştirme sürecini doktorların ve şirketin kurucu ortağının görüşleri doğrultusunda yürüttüm.
Kişisel Katkılar ve Sorumluluklar
- Projede yer alan TÜBİTAK hakemi ve doktorların görüşleri alınarak hastaların ihtiyaçlarının analiz edilmesine katkı sağladım.
- Hasta analizleri doğrultusunda yapılması gereken egzersiz türlerinin ortaya çıkarılmasına destek verdim.
- Egzersiz türlerini baz alarak Unity oyun motoru ile masaüstü oyunlar geliştirdim.
- Geliştirilen oyun modüllerinin giyilebilir donanım ile entegrasyonunu sağladım.
Yayın / Deployment Bilgisi
- Proje masaüstü bir uygulama olduğu için herkese açık bir yayın adresi bulunmamaktadır.
- Çalıştığım süre boyunca proje TÜBİTAK hakemlerinden başarılı puanlar almıştı.
- Şirketten ayrıldıktan sonra projeye devam edilip edilmediğini bilmiyorum.