Bileşen Tabanlı Robotik Mühendisliği

Temel bir robot sisteminde; güç beslemesi, motor, tekerlekler, entegre, birkaç sensor vs. vardır. Robotik araştırmalarda, robotik işlevlerin, tek başına donanımla değil; donanımlar üzerinde bilgi işleyen yazılımlarla ilerleyebileceği gayet açıktır. Örneğin; ışık takip eden bir robot üzerinde bulunan optik bir sensorün, donanımsal yeti olarak sadece ışığı takip etmesi değil de, belki yazılımsal yetenekler de eklenerek, ışık kaynağının işaretleyici bir lazer mi(nesne takibi sağlayan sistem) yoksa normal bir ışık kaynağı mı olduğunu anlaması sağlanabilir.

            Türkiye, ne çizgi takip eden ne de ışık takip eden robotçuklarla oyalanarak, robot teknolojisinde bir yerlere gelemez. Peki ne işe yarar çizgi takip eden oyuncaklar? Nerede kullanabiliriz? Biz neredeyiz? Dünya bu alanda neler yapıyor?

Sıfırdan bir robot geliştirmek, (çizgi izleyen dahi olsa) bir insan ömrünün yetmeyeceği pahalı bir süreçtir. Bundan dolayı bilgi birikimi ve paylaşımı önem kazanıyor. Elde edilenlerle yetinilmemeli, yeni robot trendleri takip edilmeli, hedefler büyük tutulmalıdır. Üretilmiş çözümler incelenmeli, varolanların üzerine daha etkin bileşenler geliştirilmeli ve ulusal bilgi birikimi oluşturulmalıdır.

Temel bir robot sisteminde; güç beslemesi, motor, tekerlekler, entegre, birkaç sensor vs. vardır. Robotik araştırmalarda, robotik işlevlerin, tek başına donanımla değil; donanımlar üzerinde bilgi işleyen yazılımlarla ilerleyebileceği gayet açıktır. Örneğin; ışık takip eden bir robot üzerinde bulunan optik bir sensorün, donanımsal yeti olarak sadece ışığı takip etmesi değil de, belki yazılımsal yetenekler de eklenerek, ışık kaynağının işaretleyici bir lazer mi(nesne takibi sağlayan sistem) yoksa normal bir ışık kaynağı mı olduğunu anlaması sağlanabilir.

Bütün donanımların genelde Çin’de üretildiği göz önünde bulundurulursa  kullanımının ise sadece donanımla ilgili veri sayfalarını okumaktan ibaret olduğu düşünülürse, donanımla çok karmaşık işlerin yapılamayacağı kolaylıkla anlaşılabilir. Örneğin, fotoğraf makinelerine; kırmızı göz yok etme, gülen yüz algılaması, titreşimden kaynaklanan kaymaların azaltılması gibi özellikler kazandırılamaz. Dolayısıyla yazılımda, tek sınırımız hayal gücümüzdür ve karmaşık robot sistemleri ancak ve ancak güçlü yazılım sistemleri ile oluşturulabilir. Robotik alanında, Türkiye’nin geri kalmışlığının en büyük sebebi; yazılıma gereken önemi vermeyip, temel donanım seviyesinde kalınmasıdır.

Donanım alanında, Çin’in hâkimiyeti bütün dünya tarafından kabul edilmiş durumdadır. Yazılımın gerek yeşil teknoloji olmasından, gerekse Türkiye’deki genç nüfusun yoğunluğunun avantajı açısından, Türkiye yazılım sayesinde üreten ülke haline gelebilir. Robotik yazılımlarında ilk adım, hali hazırda geliştirilmiş olan açık kaynaklı yazılımları en ince ayrıntısına kadar incelenmek, işlevlerin nasıl gerçekleştiği üzerine kafa yormaktır. Açık kaynaklı robotik işlevlerin projelere entegre edilebilmesi için yeniden kullanılabilir parçalar çok önemlidir.

Bu yazımız ise, yazılım mühendisliği kavramlarını, robotik bileşenler tasarlanmasında nasıl kullanabiliriz sorusu üzerine olacaktır.

Çoğu robotik işlevleri gerçekleştiren bileşenler yeniden kullanılabilir şekilde tasarlanmalıdır. Geliştiriciyi, sıfırdan bileşen geliştirme zahmetinden kurtarır ve geliştiricinin farklı sistemlere adaptasyonunu kolaylaştırır. Bundan dolayı, robotik sistemlerde yeniden kullanılabilir bileşenler çok önemlidir.

Yeniden kullanılabilirlik iki şekilde gerçekleştirilebilir. Yöntemlerden biri olan opportunistic yöntemde, bileşenler içinden var olan probleme uyan alınıp, kullanılır. Bir diğer yöntem olan sistematik yöntemde ise, yeniden kullanılabilir bileşenler daha etkin hale getirilip kullanılır.

Yazılımda yeniden kullanılabilirlik kavramını incelemek gerekirse, 50 yıl önce COBOL derleyicisi kütüphane kavramını derlenmiş fonksiyonlardan oluşan kütüphane sistemi olarak oluşturmaya çalıştı. Derlenmiş işlevler, programa eklenerek yeniden kullanılabilirlik sağlanılmaya çalışılmıştı. Fakat, bu sadece sayısal analiz (karekök, matrix işlemleri) yapacak fonksiyonlarda sağlanabilmişti. Fortran ve C’nin gelişmesinden sonra, veri ve kod sarmalanamadığı için(çok biçimlilik[polymorphism] ve parametrelerin farklı olması), çoğu diğer alanlarda(GUI gibi) yeniden kullanılabilirlik sağlanamadı. Bu problemleri ortadan kaldırmak için sınıf yapısı ortaya çıktı. Bu yöntemin dezavantajı ise ata sınıf bilinmeden, çocuk sınıfların anlaşılamamasıydı. Bundan sonra, yazılım mühendisliğinde olduğu gibi bileşen tabanlı(Component Based) tasarımlara önem verilmeye başlandı. Yazılım sistemleri karmaşıklaştıkça, sistemlerin daha iyi anlaşılması için yazı ve grafiklerden oluşan OMG(Object Management Group) ve UML(Unified Modeling Language) gibi gösterim dilleri oluşmuştur. Bu diller yardımıyla da bileşen tanımları programlama dillerinden bağımsız(pseudo kodlardan bağımsız) olarak temsil edildi.

Şekil 1 : Claraty Mimarisi

B Okumaya devam et “Bileşen Tabanlı Robotik Mühendisliği”