HomeMapIndexSearchNewsArchivesLinksAbout LF
[Top Bar]
[Bottom Bar]
[Foto del Autor] 
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. 
Yazar ile iletişim:  

İçindekiler 
Giriş 
Aracın Betimlemesi 
Yazılım Mimarisi 
Sonuçlar 

Linux Tabanlı Özyolgösterimli Bir Taşıt

Çeviri: Evren Ergin

Özet: Mobil robotikler alanında son yıllarda büyük gelişmeler olmuştur. Robotiklerin, Mekatroniklerin ve Yapay Zekâların birçok bölümleri çalışmaların bir bölümünü otomatikleştirilmiş araçlar üzerine yönlendirdiler. Bu ana kadar, R & D'deki yüksek ücret onların uzay, ordu ve nükleer enerji üzerinde çalışmalarını kısıtlamaktadır. Buna karşın bu alandaki hızlı gelişim tarım, endüstri, servisler, madencilik, ilaç sanayii gibi alanlarda tanıtımına olanak vermektedir. Bu, büyüme için büyük potansiyeli olan bir alandır.

Tanıtım

Bu anda varolan tecimsel özyolgösterimli taşıtlar onları kullanımını R & D'ye kısıtlayan yapılara sahiptirler. Diğerlerine göre, yüksek fiyatlar, kapalı ve tescilli mimariler, kaynakyazılandırım (dokümantasyon) eksikliği, ölçekleme zorluğu gibi donanım ve yazılım düzeyinde kısıtlamalar söz konusudur.

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 

Aracın Betimlenmesi

Bizim sistemimiz iki güç destekli tekerlek ve iki de destek tekerleğinden oluşan hbir araçtı. Onun kinematiği bir tekerlekli sandalyeninkine veya bir tankınkine eşdeğerdir. Onun merkezinin hızını kontrol etmek için her bir tekerleğin hızını ayrı ayrı kontrol etmek ve düzenlemek gerekiyordu.

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 motora giden gücü, güç kartlarından biri üzerinden kontrol eden bir kontrol kartını taban almaktadır. Eksen kontrolu kontrol kartı veya doğrudan PC tarafından yapılabilmektedir. Bu proje için kontrol kartlarını sistem yazılımlarını isteğe bağlı olarak geliştirdik.
 
 
Donanım Mimarisi 
Taşıt kontrol buyrukları dışarıdaki bir bilgisayar (konak, İngilizcesi: host) tarafından verilmektedir. Kartların bağlı oldugu PC uygun hareket buyruklarını gönderir ve kontrol kartlarını referans alarak değerlendirir. Bunlardan sonuncusu, motorları besleyen güç bölümünde yükseltilen bir voltaj isteminde bulunur. Her eksenin hareketi tek tek bir konum algılayıcısı (düzgüleyici) tarafından kontrol edilir ve kontrol kartlarınca kotarılırlar (handled).

Yazılım Mimarisi

Özyolgösterimli bir taşıtın devreye sokulması öncelikle, kontrol düzenlemelerini sabit bir zaman süresi için garantileyen bir kapalı devre kontrol sistemi gerektirir. İkinci olarak bazı durum değişkenlerinin, sözgelimi taşıtın merkezinin konumunu her an belirlemek için, peryodik güncellenmesini de gerektirir.

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 işletim sistemi olan RT-Linux New Mexico'daki Madencilik ve Teknoloji Enstitüsü'nün Bilgisayar Bilimleri Bölümü'nde Victor Yodaiken ve Michael Barabanov tarafından geliştirilmişti. Aşağıdaki çizem (diyagram) onun mimarisini göstermektedir. Gerçek zaman çekirdeği donanıma en yakın bir düzeyde çalışmaktadır. Bir sabit öncelik düzenleyicisi donanıma tam erişebilen bir dizi gerçek zaman uygulamasını işletir. Linux'un kendisi de en düşük öncelikli olan ve zaman bulundukça çalıştırılan bir diğer gerçek zaman uygulaması olarak görülmektedir.
 
 
Gerçek zaman sistemi RT-Linux 
PCBot için yazılım mimarisi bilinen istemci-sunucu modeline dayandırılmıştır. Sunucu, uzaktaki makinalarda çalışan istemcilerden gelen istemleri kotararak, robot üzerinde çalışır. Sunucu ve istemciler arasındaki iletişim TCP/IP üzerinden sağlanır.

İ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 
Yazılım mimarisini iki ayrı bölüm birbirinden ayırır. Biri Linux işletim sistemi üzerinde çalışmakta ve diğeri ise bazı geçici gereksinimlerinden dolayı gerçek zaman (RT-Linux) üzerinde çalıştırılmaktadır. Sunucu Linux tarafı üzerinde bulunmaktadır ve taşıt üzerine yerleştirilen PC üzerine oturtulmuştur. Kesin zaman gereksinimsiz ikinci bir uygulama olan istemcinin ise, karta yerleşimli (onboard) PC üzerine yerleştirilmesine gerek yoktur.

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ı 

Sonuçlar

PC tabanlı sistem mimarisi, sözgelimi düşük maliyet, donanım ve yazılımda kolay geliştirilebilme, elde edilebilen yazılım çokluğu nedeniyle esneklik ve içlemleri yapabilmedeki sığa anlamında güç gibi birçok üstünlüğe sahiptir. Hepsinden öte donanımın hiçbir zaman modası geçmez çünkü daha yeni bir model ile değiştirilmesi kolay olup eski yazılımlarla uyum sorunu yoktur.

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.

Kaynaklar

http://www.rtlinux.org

LinuxFocus'te RT-Linux hakkındaki diğer yazılar:
Gerçek-Zaman Linux
Gerçek-Zaman Linux II


Yazının dergiye gönderilen aslı İspanyolca'dır
İngilizceye çeviri: Miguel Angel Sepulveda
Jose Quesada tarafından gözden geçirilip düzenlenmiştir.
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