Vicente Egea, Jorge Garrido, Roberto Guzmán, Ranko Zotovic Roberto Guzman Bilgisayar Bilimi'nde (Fiziksel Sistemler) üst düzey bir yere sahiptir, Universidad Politecnica de Valencia'daki Sistemler Bölümünde ve Otomasyon Mühendisliği'nde robotikler konusunda profesör ve araştırmacı, ayrıca Almanya'da, Hagen de, Fern Üniversitesinde İşlem Kontrolü ve Düzenlemesi'nde araştırmacıdır. Bu anda TMC-Electronics'te Araştırma ve İnceleme bölümünde çalışmaktadır. Ranko Zotovic bir endüstri mühendisidir. Onun robot benzeri makineleri, kesme ve kalite kontrol yapan makineleri tasarlamak ve oluşturmak konularında uzun yıllar süregelen bir deneyimi vardır. Bu anda Robotikler ve CAD/CAM konularında Universidad Politecnica of Valencia'da Otomasyon Mühendisliği ve Sistemler Bölümünde profesör'dür. Jorge Garrido Serrano Bilgisayar Bilimleri'nde (Fiziksel Sistemler) üst düzey yere sahiptir. Onun başlıca çalışmaları PCBot'lar için yazılım tasarlamak ve düzenlemektir. Endüstriyle Ortaklaçma için Bancaja ödülüne değer bulunmuştur. Bu anda, Almanya'da, Hagen'de, Fern Üniversitesi'nin Avrupa "MobiNet" (Sağlık Koruma Araştırmaları için Gezgin Robotik Teknolojisi, İngilizcesi: Mobile Robotics Technology for Health Care Research) Projesinin bir parçası olmaktadır. Vicente Egea Mañas Bilgisayar Bilimleri'nde
(Fiziksel Sistemler) üst düzey yere sahiptir. PCBot'lar için donanımlar
tasarlamak ve düzenlemek nedeniyle Endüstriyle Ortaklaçmalar için
Bancaja ödülü ile ödüllendirilmiştir. Bu an TGI'de çalışmaktadır.
İçindekiler:
|
Otomasyon ve Sistemler Bölümü'nde, yukarıda sözü edilen uygunsuzlukları
içermeyen bir özùolgösterimli (autoguided) taçıt yapmaya karar verdik. Fiyat,
güç, uyumluluk, ölçeklenebilirlik, ve de donanım ve yazılımın elde
edilebilirliği gibi olağanüstü üstünlükleri nedeniyle, kişisel bilgisayar
tabanlı bir yapı kurmaya karar verdik. Linux kullanımı ve onun gerçek zaman
uygulaması olan RT-Linux bu proje'nin tamamlanmasını oldukça kolaylaştırmıştır.
Özyolgösterimli Taşıt PCBot 1.0 |
Tasarımı iki ayrı bölge yaratmıştı: bütün mekaniksel ve elektriksel
aksamın bulunduğu alt bölge ve tüm kontrol ve iletişimi sağlayan parçaların
bulunduğu üst bölge. Alt bölge alüminyum bir tabaka üzerine kurulmuştur. Biz
bu bölüme tekerlekleri, indirgemeleri, motoru, düzgüleyicileri (encoder)
güç arabirimleri ve güç kaynaklarını yerleştirdik. Üst bölüme ise PC'nin
kartı üzerine yerleştirilen kontrol kartları ve disket sürücüleri koyduk.
Özyolgösterimli Taşıt PCBot'un önden ve yandan görünüşü |
Donanım Mimarisi |
Yukarıda belirtilen bu iki gereksinim bizi bir gerçek zaman işletim sistemini kullanmak zorunda bırakmaktadır. Gerçek zaman işletim sistemleri sadece sistemin hesaplamalarını değil sonuçların geldiği zamanları da kontrol ederek doğrular.
Gerçek zaman uzatımlarını (extension) (sürüm 0.6) kullanarak Linux 2.0.33 çekirdek üzerinde PCBot yazılım mimarisini devreye sokmaya karar verdik.
Linux ve RT Linux ı kullanmaktaki nedenler diğer otomasyon şirketlerinin de kendi yazılımlarını devreye sokmaktaki nedenleriyle aynıdır. Bunlar aşağıda verilmektedir:
Gerçek zaman sistemi RT-Linux |
İletişimde TCP/IP kullanımı robotu konak (host) üzerinde çalışmakta olan işletim sisteminden bağımsız kılar. İstemci kullanıcıdan aldığı buyrukları robota aktarır. Üç çeşit buyruk vardır: hareket, durum ayarı ve durum isteği. İstemci giriş buyruğunun sözdizimini kontrol eder, sunucu için uygun bir ileti oluşturur soketleri kullanaraktan onu sunucuya gönderir.
Sunucu, sürekli olarak, istemciden gelecek iletişim için bekler.
Bir kez bağlantı sağlandığında, sunucu, istemci ve kontrol uygulamalarını
çalıştıran gerçek zaman modülü arasında bir arabulucu haline gelir. Gerçek
zaman modülü robot tarafından kabul edilen buyrukları çalıştırır ve aynı
zamanda Watchdog türü bir periyodik uygulamala üzerinden sistem
bütünleşikliğini yönetir.
Yazılım Mimarisi |
Gerçek zaman modülleri birçok periyodik gerçek zaman uygulaması (hareket etme buyrukları ve watch dog uygulamaları) ve anlık uygulamalardan (sür ve dur) oluşmaktadır.
Bir ikili uzaktanuyarma (semaphore) gerçek zaman uygulamalarının donanıma erişimlerini koruma altına alır. Bu uzaktanuyarmaya birçok nedenden dolayı gereksinim duyarız. Birincisi, kontrol kartları ile iletişimde yerdeğiştirme yazmaçları kullanılır. Eğer bunu kullanan bir uygulama başka bir uygulama tarafından kesilirse (interrupt) o zaman bu yazmaça geçersiz bilgiler yazılır. İkincisi, kesilemeyen yazmaç düzeyli protokollların bulunmasıdır. Ve son olarak da, her iki eksene doğru olan kontrol etkilerinin olabildiğince eşzamanlı olarak gerçekleştirilmelidir.
Üç rt-fifo kuyruğu gerçek zaman modülü ile sunucu arasındaki iletişimi devreye sokar. Sunucu istemcilerden gelen hareket bilgilerini bir kuyruğa yazar. Gerçek zaman modülü daha sonra sunucuya gelen buyruğun geçirilmesi için kalan iki kuyruğu kullanır ve istemciyi herhangi beklenmeyen duruma karşı sunucu üzerinden uyarır.
Tipik bir olaylar dizisi genellikle şu şekildedir: kullanıcı, PCBot ile kullanıcı arasında bir arayüz olacak bir işlemi istemcide başlatır. Her buyruk girişinden sonra istemci bu işlemleri gerçekleştirir ve bunları sunucuya yollar. Sunucu işlenmiş iletileri alır ve bu işlemleri rt-fifo'ya bağlı gerçek zaman modülüne göndermeden önce yeniden işler.
RT-fifo'ya bağlı sürücü işlemi herhangi buyruğu kotarır ve eğer o bir hareket istemi ise ilgili gerçek zaman uygulamasını başlatır ve sunucuya bir doğrulama gönderir. Başlatılan uygulama motorları hareket ettirmek için gerekli etkinlikleri düzene sokar.
Bir hareket komutunun yanında, kullanıcı bir durum istemi ya da durum ataması isteminde bulunmuş olabilir. Bu durumda aynı sürücü gelen istemleri bütüneyaygın durum değişkenlerine okuyarak ya da yazarak yanıtlar.
Bütüneyaygın değişkenler, sürücü ve tüm gerçek zaman uygulamaları
tarafından paylaşılan bir bellek alanında tutulurlar. Bütüneyaygın
değişkenler uygulamalar arasında hızlı ve basit bir iletişime izin
verirler. Watchdog, diğer şeyler arasında, taşıtın durumundaki
değiçikliklerin ve de herhangi bir anormalliğin de, sunucuya bildirerek
üstesinden gelir.
Yazılım Mimarisi - Sistem Uygulamaları |
Linux ve onun gerçek zaman genişletimi olan RT-Linux'un seçimi çok yerinde bir karardı. wpe (Pencere Programlaması Çevresi, İngilizcesi: Windows Programing Environment) veya ek ücret gerektirmeyen GNU C derleyicisi gibi çok güçlü GNU geliştirim elaygıtlarını (development tools) kullandık.
Linux sistemi gürbüzlüğünü, sadece deneyler sırasında kanıtlamakla kalmadı ayrıca makine üzerinde oldukça iyi bir yönetim gösterdi, öyleki 486 bir PC üzerinde yaptığımız denemelerde hiçbir hata veya zamanda bir aksama görmedik (bu sırada birçok kulllanıcı bu makineye bağlı durumdaydı). Gerçekte, sistem kullanılabilirlik incelemelerimiz, en kötü durum senaryolarİnda bile Merkezi İşlem Birimi zamanının %70'i devreye sokulabilmişti.
Bu projede kullanılan yazılımların tümü herkesin erişebildiği yörelerden (public domain) alınmışlardı, bu yüzden kaynaklar her zaman elimizdeydi. Bu bize gerçek zaman çekirdeğinin çalışmalarını daha iyi anlama olanağı verdi, bu da bize geliştirme olanaklarında tecimsel taşıtlarda söz konusu olmayan yeni kapılar (diğer zaman işletmenlerini kullanmak, gerçek zamantarafında sürücüler kullanmak gibi) açtı.
RT-Linux, çekirdeğin düzeltiminden depolamaya kadar çeşitli tekniklerle ve değişkenleri printk sistem çağrısı ile görme yoluyla kolayca debug edilebilir.
Geliştirim sürecinde rt-linux ileti listesindeki üyelerden aldığımız
destek ve oldukça yüklü miktardaki kaynakyazıların bize büyük yardımı
oldu.
LinuxFocus'te RT-Linux hakkındaki diğer yazılar:
Gerçek-Zaman Linux
Gerçek-Zaman Linux II
Bu görsel sanalyörenin bakımını Miguel Angel Sepulveda
yapmaktadır. © Vicente Egea, Jorge Garrido, Roberto Guzmán, Ranko Zotovic 1999 LinuxFocus 1999 |