Fırat Üniversitesi-Elazığ TANK NAMLU STABİLİZASYON UYGULAMASI Ufuk SUADİYE 1, Sıtkı ÖZTÜRK 2, İsmet KANDİLLİ 3 1 Türk Pirelli Lastik A.Ş., Kocaeli 2 Elektronik ve Hab. Müh. Bölümü 3 Mekatronik Bölümü ufuk_suadiye@yahoo.com Kocaeli Üniversitesi Kocaeli Üniversitesi sozturk@kocaeli.edu.tr kandilli@ kocaeli.edu.tr ÖZET Bir tank namlusuna yerleştirilecek bir kamera, geliştirilen görüntü işleme programı ve elektronik sistem ile hedef takibi ve namlunun stabilizasyonu sağlanmaktır. Bu amaçla tank namlusu ve namlu kulesinin hareket serbestisine sahip mekanik prototip bir sistem tasarlanmıştır. Mekanik sistemde aktüatör olarak AC servo motorlar ve bu motorların kontrolü için servo motor sürücüleri ve PLC kullanılmıştır. Çalışmada, sistemin kararlılığı için görüntü işleme yazılımı üzerinde odaklanılmıştır. Bu amaçla, yazılımda bilgisayarın işlem yükünü azaltacak bir yöntem geliştirilmiştir. Anahtar Kelimeler: Hedef takip sistemi, görüntü işleme, PLC, servo motor, tank namlu stabilizasyonu. 1. GİRİŞ Tarihsel olarak tank silahları basit optik nişangâhlarla nişan alınarak hedefe doğrultulur, rüzgârın etkisi tahmin edilir ve bir retikül (topun nişangâhındaki, bilinen büyüklükteki bir nesneyi -bu durumda bir tankı- çerçeveleyecek şekilde dizilmiş işaretler) den yararlanılarak ateş edilmiştir. Hedefe olan mesafe de retikül yardımıyla tahmin edilmiştir. Sonuç olarak uzun mesafede atış isabeti sınırlıydı ve hareket halindeyken atış büyük oranda imkânsız olduğundan zamanla bu nişangâhlar stereoskopik mesafe ölçerlerle değiştirilmiştir. Sanayileşmiş ülkelerin ordularındaki çoğu modern ana muharebe tankları lazer mesafe ölçerler kullansalar bile eski ve az gelişmiş araçlarda hâlâ optik retiküllü mesafe ölçerler kullanılmaktadır. Modern tankları daha doğru atış yapar hale getiren bir dizi gelişmiş atış kontrol sistemi vardır. Namluyu dengede tutmak için jiroskoplar kullanılmıştır. Bilgisayar uygun yükseklik ve hedef noktasını, rüzgâr hızını, hava sıcaklığını, nemi, namlu sıcaklığını, sapma ve aşınmayı, hedefin hızını (mesafe ölçer ile hedefin en az iki pozisyonunun karşılaştırılmasıyla hesaplanır), ve tankın hareketini ilgili sensörlerden gelen bilgilerle hesaplar. Kızılötesi, gece görüş ya da termik gece görüş ekipmanları da genellikle kullanılır. Lazer hedef bulucular da hedefleri aydınlatmak için kullanılmıştır. Sonuç olarak günümüz tankları hareket halinde iken oldukça isabetli atış yapabilecek kabiliyete getirilmiştir.[1]. Yapılan son çalışmalardan biride, bilgisayarla tank namlusunun kontrol sisteminin modernizasyonudur. Bu çalışmada bilgisayarlı atış kontrol sistemi tank ve M52 obüslerinin namlu açısını dikey (yükseliş) ve yatay (yan) olarak istenen koordinatlarda ayarlanmasını bilgisayar kontrolü ile sağlayan sistemi geliştirilmiştir. Aynı zamanda namlunun dikey (yükseliş) hareketini sağlamak için gerekli düzeltmeleri sağlayacak yapıda donanım ve yazılım geliştirilmiştir. Sistemde kullanılan servo motorun dinamik denklemleri bilinmediğinden dolayı, servo motorun pratik olarak davranışları incelenmiş ve hareket eğrisinin bulunması için donanım ve yazılım hazırlanmıştır. Bunun için servo motorun transfer fonksiyonunu bulmak için BCX51 programı yardımıyla bir assembler programı yazılmıştır. Ayrıca, sisteme ait namlunun istenen koordinatlara gelebilmesini sağlamak amacıyla kontrol programı geliştirilmiştir. Sisteme ait donanımlardan CPU kartı, DC motor sürücü kartı ve enkoder sayıcı kartı tasarımları gerçekleştirilmiştir [2]. Bir diğer çalışmada ise, bilgisayarla görü tabanlı, hareketli cisim yörüngesi izleyen robot kol tasarlanmıştır. Çalışmada, kamera sistemlerinden alınan bilgi doğrultusunda üretilen bir hareket planının robot kolu tarafından gerçeklenmesi problemini içermektedir. Bu problem için üretilen çözümler standart prensiplere uygun olarak ele alınmıştır. Bu nedenle üretilen çözümlerde, tümleşik çözümler içeren yapılardan kaçınılmış, en temel ve yalın bileşenler içermesi amaçlanmıştır. Kamera görüş alanı içerisindeki arka plan küçük parlaklık değişimleri dışında sabit kalması öngörülmüştür. Yörünge tahmininde, cismin temel fizik kanunları ile çözümlenebilen hareketlerin dışında yüksek değişkenli dinamik hareketler ile yol alıyor olması tahmin sonuçlarını doğruluktan uzaklaştırmıştır [3]. Bir başka çalışma da tank namlusunun eksenel hareketinin modeli gerçekleştirilmiştir. Sistem modellenirken karşılaşılan ve modele dahil edilen doğrusal olmayan bileşenler; akış karakteristiği, Coulomb sürtünmesi, mekanik sınırlayıcılar, sistemin kinematik yapısı ve namlunun kütle merkezi kaçıklığı olarak alınmıştır. Servo valfin, tahrik sisteminin ve namlunun modelleri Simulink ortamında yapılmıştır. Servo valf gerçek test bilgileri kullanılarak tanımlanmıştır. Tahrik sistemi modellenirken hidrolik akışkanın sıkıştırılabilirliği dikkate alınmıştır. Sürtünme modeli değişik durumlar için incelenmiştir. Sistemin denetimi temel olarak 2 PID bloğu ile gerçekleştirilmiştir. Biri ile konum diğeri ile hız kontrolu yapılmıştır. [4]. 2. TASARLANAN SİSTEMİN MEKANİK VE ELEKTRONİK YAPISI Çalışmanın amacı, tank namlusuna yerleştirilen kameradan tespit edilen hedefin, yazılan program aracılığı ile takibi doğrultusunda, bilgisayarda üretilen bir hareket planının servo motorların konumlanmasını gerçekleştirerek, namlunun hedefi takip etmesini sağlayabilmektir. Bu sisteme ait blok diyagram, Şekil 1 de ve sistemin çalışma algoritması şekil 9 da 176
Elektrik-Elektronik ve Bilgisayar Sempozyumu 2011 gösterilmiştir. Sistemde tank namlu kulesi ve namlunun sahip olduğu hareket serbestîsine benzer bir mekanik sistem tasarlanmıştır. Şekil 1: Tasarlanan sistemin blok diyagramı. Sistemde hareketi sağlayan aktüatörler olarak AC servo motorlar, stabilizasyonu sağlamak ve hedef takibini yapmak amacıyla kamera, bilgisayar ve görüntü işleme programı kullanılmıştır. Sistemdeki AC servo motorları sürmek amacıyla AC servo motor sürücüleri kullanılmıştır. Görüntü işleme programının oluşturduğu konum bilgilerini servo motor sürücülerine, yorumlayıp aktarmak için PLC kullanılmıştır. 2.1. Mekanik sistem Şekil 2: Tasarlanan sistem Namlu Motoru TİPİ:SER39A4L7SS Tabla Motoru TİPİ:SER39B4L7SS0 Şekil 3: Mekanik Sisteme ait tasarım. Mekanik sistem gerçek bir tankın sahip olduğu namlu hareket serbestîsine sahip bir şekilde tasarlanmıştır. Servo motorla tasarlanan mekanik sistemin gerçekleştirilen montajı Şekil 2 de gösterilmiştir. Namlu dikey eksende 90 dönme serbestîsine sahiptir. Namlu tablası ise 360 döndürülebilecek şekilde tasarlanmıştır. Malzeme olarak, kolay işlenebildiği ve mukavemete dayanıklı olduğu için Deldrin ve demir malzemeler kullanılmıştır. Şekil 3 de gösterildiği gibi sistemde namlu kontrolü ve namlu tablasının dairesel hareketini sağlamak için farklı güçlerde olmak üzere iki adet Berger Lahr marka AC servo motor kullanılmıştır. 2.2. Elektronik sistemin yapısı Mekanik sisteme X ve Y ekseninde hareketi sağlayan AC servo motorları sürmek için iki adet Twin Line marka AC servo motor sürücüsü kullanılmıştır. Sürücüler Şekil 4 de görüldüğü gibi PLC den gelen ±10V analog gerilim değerine bağlı olarak motor hızını ayarlayabilmektedir. Sürücüler, içlerindeki PID kapalı döngü kontrol bloklarına bağlı olarak servo motorları sürmektedirler. Motorların dönüşüne ait konum ve adım bilgisi sürücülerin ESIM Kart modülü vasıtasıyla alınmaktadır. Esim kart portundan alınan sinyallerin frekansı maksimum 550Hz dir. Sürücüden gelen bu tur bilgilerinin, yani konum bilgilerinin PLC girişine uygun gerilime aktarılmasını sağlamak için 5V/24V DC/DC sinyal dönüştürücü kullanılmıştır. Servo motor sürücüsü olarak da TLD13 sürücüsü kullanılmıştır. PLC nin sistemdeki görevleri şunlardır: PC den MPI seri haberleşmesi vasıtasıyla motorların millerinin olması gereken pozisyon bilgilerini almak ve sürücülerden gelen aktüel pozisyon bilgisini okumak ve olması gereken pozisyon bilgisi ile karşılaştırarak motorun yeni konumuna karar vermektir. 3.1. Görüntü işleme yazılımı 3. SİSTEM YAZILIMI Bilgisayarda, kameradan alınan görüntülerin işlenmesi ve yorumlanması için OpenCV (Open Computer Vision) programı [5] kullanılmıştır. Sistemde OpenCV [6] kütüphanelerinin çalıştırılabilmesi ve görüntü işleme programının yazılabilmesi için Visual Studio V5.0 C++ programı kullanılmıştır. Görüntü işleme yazılımına ait algoritmanın işleme mantığı şöyledir. Öncelikle görüntü işleme yazılımı sonuc adında bir pencere açmaktadır. Kameradan alınan görüntü framelerini program, sonuc penceresinde 640x480 boyutunda ve 8 bit derinliğinde RGB formatında olacak şekilde görüntülemektedir. Yörünge takibi ve konum değişikliğini hesaplama ise RGB formatında alınan resim üzerinde değil ekranda görüntülenen resmin arka planda gray integer 8 bit formatına dönüştürülmesi ile oluşan resim üzerinde gerçekleşmektedir. Şekil 5 de RGB formatında bir resim ile Gray formatında bir resim örnek olarak gösterilmiştir. Bu gray formatındaki resim programın ilerleyen adımlarında 640x480 boyutlarındaki B(x,y) matrisine dönüştürülmektedir. Bu matrisin herhangi bir elemanının alabileceği değer 0 ile 255 arasındadır. Bu dönüşüm işlemleri programın kapalı döngüsü sürdükçe devam etmektedir. Bu program döngüsü esnasında bilgisayar kullanıcısı, takip edilecek hedefi seçmek için sonuc penceresinde görüntülenen resim içerisindeki hedef noktanın üzerine fare imlecini getirip sol tuşunu kullanmaktadır. Böylece hedefin x ve y koordinat değerleri belirlenir. 177
Fırat Üniversitesi-Elazığ Hız Kontrolü Analog ±10V AC Servo AC TLD13 Motor Besleme AC (Y Ekseni) Konum SERVO Pozisyon Bilgisi SÜRÜCÜ Bilgisi 5V-24V Optokuplör Dönüştürücü PLC MPI PC SIMATIC MANAGER / OPEN CV Hız Kontrolü Analog ±10V AC Servo AC TLD13 Motor Besleme AC (X Ekseni) Konum SERVO Pozisyon Bilgisi SÜRÜCÜ Bilgisi 5V-24V Optokuplör Dönüştürücü S7 300 CPU 314 IFM KAMERA Şekil 4: Sistemin elektronik yapısı. Bu işlemle birlikte artık program hedef noktayı takip etmek için şu adımları izler. Öncelikle seçilen hedef noktanın resim üzerindeki koordinatları belirlenir. uiy Fare ile görüntü üzerinde belirlenen hedef nokta etrafındaki 6x6 piksel kümesi ugx uix ugy Şekil 5: RGB ve Gray formatlarına ait resimler ve matris olarak gösterimleri. Hedef noktanın etrafında Şekil 6 da görüldüğü gibi B(x,y) matrisinden 6x6 boyutlu yeni matris değerleri K(x,y) matrisine aktarılır. Yapılan bu işlemle, hedef nokta etrafında bulunan 6x6 lık kümenin ortalama piksel değerini Denklem 1 deki gibi hesaplamak amaçlanmıştır. Daha sonraki adımda ise tıklanan cismin sınırlarını tespit etmek için ortalama piksel değerinden her iki eksendeki komşu piksellerin değerleri çıkartılır. Bulunacak sınır piksellerinin tıklanan pikselin koordinatından çıkartılarak denklem (2), (3), (4) ve (5) den uzunluk bilgileri elde edilir. i= x+ 3 j= y+ 3 K i, j i= x 3 j= y 3 x> 2 ve y> 2, x, y Z 36 ort = i= x+ 3 j= y+ 3 K i, j i 3 j 3 x 2 ve y 2, x, y Z = = 36 ugx Frame No = x eksenindeki geri sınır uzunluğu (2) uix Frame No = x eksenindeki ileri sınır uzunluğu (3) ugy Frame No = y eksenindeki geri sınır uzunluğu (4) uiy Frame No = y eksenindeki ileri sınır uzunluğu (5) (1) Şekil 6: Cismin sınırlarını bulma amaçlı resim örneği. Programda yj = j 3 değerinden başlayıp yj < 480 değerine kadar arıtılırken denklem (6) ve (7) ifadeleri kullanılır. B i, yj ort > 20 (6) uiy[ Frame No] = yj j+ 3 (7) (6) koşulunu sağlayan ilk yj değeri ile (7) ifadesindeki işlem gerçekleştirilir. yj değeri yj = j 3 > 10 değerinden başlayıp yj değerine kadar azaltılırken (8) ve (9) ifadeleri işletilir. B yj i, ort > 20 (8) [ Frame No] = yj j + 3 ugy (9) (8) koşulunu sağlayan ilk yj değeri ile (9) ifadesindeki işlem gerçekleştirilir. xi değeri xi = i 3 değerinden başlayıp xi < 640 değerine kadar arıtılırken (10) ve (11) ifadeleri işletilir. B xi, j ort > 20 (10) xi i 3 uix Frame No = + (11) (10) koşulunu sağlayan ilk xi değeri ile (11) ifadesindeki işlem gerçekleştirilir. Programda xi = i 3 değerinden başlayıp xi > 10 değerine kadar azaltılırken denklem (12) ve (13) işletilir. 178
Elektrik-Elektronik ve Bilgisayar Sempozyumu 2011 B xi, j ort > 20 (12) ugx [ Frame No] = xi i + 3 (13) (12) koşulunu sağlayan ilk xi değeri ile (13) ifadesindeki işlem gerçekleştirilir. Oluşan bu fark değerleri cismin sınırlarını bulacak şekilde olmalıdır. Yapılan çeşitli çalışmalar sonucunda bu farkın belirli sınırlar arasında olması gerektiği görülmüştür. Bütün bu işlemler henüz ilk resim çerçevesi üzerinde olmaktadır. Dolayısıyla yukarıdaki mesafe dizilerinde Frame No = 1 dir. Hedefin takibi ise 13 frame den sonra başlamaktadır. Şekil 7 de hedef takibi esnasına ait ekran görüntüleri gösterilmiştir. 13 frame sonra artık her döngüde (14), (15), (16) ve (17) denklemleri işletilir ve koşulların gerçeklenme durumuna bakılarak hedefin yeni koordinatı tespit edilir. [ 10] uix[ 7] [ 10] ugx[ 7] [ 10] uiy[ 7] fix= uix (14) fgx= ugx (15) fiy= uiy (16) fgy ugy[ 10] ugy[7] = (17) (14), (15), (16), (17) denklemlerinde görüldüğü gibi 10. frame (kameradan aktarılan en son görüntüye ait frame) ile 7 nolu frame (en son frame den 3 frame öncesi) ait mesafe değerlerinin farkı alınır. Oluşan fark değerleri (18) ve (19) denklemlerindeki gibi yorumlanır. Dolayısıyla hedefin yeni koordinatları [ i, j] belirlenmiş olur. i + fix, 20< fix< 20 ve -20< fgx< 20 i = (18) i, aksi takdirde j + fiy, 20< fiy< 20 ve 20< fgy< 20 j = (19) j, aksi takdirde Her yeni frame görüntüsü geldiğinde, bu frame ait mesafe bilgileri dizilerin 10. indexinde saklanır. Dizilerde önceden 10. elemanlar, dizilerin 9.elemanlara aktarılır. Bu işlemler 1. frame kadar sürdürülür. Sonuç olarak 1. frame ait veriler silinmiş olur. 3.2. PLC konum kontrol yazılımı Sistemde görüntü işleme yazılımı sadece hedefin aktüel konumlarını tespit eder ve PLC yazılımıyla bu bilgileri paylaşır. PLC yazılımı ise namlunun hedefi takip etmesi için gerekli işlemleri yapar. Bunlar, sürücülere motor dönüş yönü ve hız bilgilerini göndermektedir. Gönderilen bu bilgilere istinaden namlunun olması gereken konum (görüntü işleme programının paylaştığı koordinatlar) ile gerçekleşen konum arasındaki farkı sıfırlamaktır. Motorların saat yönünde 25 dev/dak hız ile sürülmesi için PLC nin analog çıkışından sürücüye uygulanması gereken gerilim 0.5V olup, PLC deki PQW çıkış kanalına yazılması gereken 16 bitlik değer Şekil 8 den faydalanarak 1382 olarak hesaplanmıştır. Motorların saatin tersi yönünde -1382 olarak hesaplanmıştır. Şekil 7: PLC PQW analog çıkışına atanacak sayısal değerlere karşılık gelecek gerilimler. Şekil 6: Hedef takibi esnasına ait ekran görüntüleri. 179
Fırat Üniversitesi-Elazığ BAŞLA Çıkış Tuşuna Basıldı mı? H Kameradan görüntü al E Sonuç penceresinde ki resimleri temizle Programdan çık Frame= Alınan görüntü çerçevesi RGB olan Frame i gray image çevir ve Grayimage ata. Grayimage i B(640,480) matrisine ata Sonuç adında bir pencere aç. Alınan frame çerçevesini çerçevede göster. H Hedef takibi var mı? H Resim üzerinde farenin sol tuşuna tıklandı mı? E E Tıklanan koordinatın x ekseni değerini, y Ekseni değerini bul ve sakla. x ve y koordinatlarının etrafına 6x6 matrislik piksel kümesinin ortalamasını bul. Ortalamaya göre resim şeklinin sınırlarını bul. Bu sınırların ne kadar kaydığını bul ve merkez koordinata ekle Hedefin yeni merkez koordinatlarını PLC ye aktar. Şekil 8: Sistemin çalışma algoritması. 180
Elektrik-Elektronik ve Bilgisayar Sempozyumu 2011 4. SONUÇLAR Bu çalışmada, tank namusunun stabilizasyonun görüntü işleme yazılımı ve tasarlanan elektronik sistemle pratik olarak sağlanması amaçlanmıştır. Yazılım geliştirilirken diğer referans çalışmalar incelenmiş hedef takibi esnasında daha hızlı sonuçlar elde edebilmesi için bilgisayarın işlem yükünü düşürecek daha kısa ve yeni bir yöntem üzerinde çalışılmıştır. Referans çalışmalardaki gibi bazı kısıtlamalara gidilmiştir. Kameranın görü alanı içerisinde arka planda küçük parlaklıklar dışında bazı değişimler göz ardı edilmiştir. Hedef takibi esnasında anlık parlaklık değişimleri ile karşılaşıldığı zaman, bilgisayarın işlem hızını ciddi anlamda düşürmeyecek ve hedefin takibinin sürdürebilirliğini artıracak alt program ve alçak geçiren filtre niteliğinde kodlar üretilebilir. Görüntü işleme yöntemi ile hedef takibi esnasında karşılaşılan başka bir problemde; takip edilen hedefin başka cisimlerin arkasına geçtiği zaman hedef takibini sürdürebilmesidir. Böyle bir problemin çözümü için yörünge tahmini yapan algoritmalar geliştirilebilir. 5. KAYNAKLAR [1] Atış kontrolü [Online], http://tr.wikipedia.org/wiki/tank. [2] Akın, C., Bilgisayarla Tank Namlusunun Kontrolü, Yüksek Lisans Tezi, Anadolu Üniversitesi, Fen Bilimler Enstitüsü, Elektrik ve Elektronik Mühendisliği Anabilim Dalı, Eskişehir, 1998. [3] Koyuncu E. Ceylan O. ve Yeniçeri R., Bilgisayarla Görüş Tabanlı, Hareketli Cisim Yörüngesi İzleyen Robot Kol Tasarımı, İstanbul Teknik Üniversitesi, Kontrol ve Otomasyon A.B.D, İstanbul, 2005. [4] Afacan K., Bir Stabilizasyon Sisteminin Modellenmesi ve Kontrolü, Yüksek Lisans Tezi, ODTÜ Makine Mühendisliği Bölümü, Ankara, 2004. [5] OpenCV Yazılımı [online], http://sourceforge.net/projects/opencvlibrary/files/openc v-win/2.2/ [6] OpenCV ile Visual Studio 5.0 C++ programlarının birlikte kullanımı [online], http://hasanfehmi.wordpress.com/2009/06/11/opencvnedir-visual-c-2005-ve- 2008-express/ [7] Schneider TwinLine Ara Yüz Yazılımı, [online], http://www.modicon.com/nrepository/index.nsf/aa_getd ocs?openagent&prod= twinlinesoft [8] Schneider TwinLine Katalog Bilgileri, [online], http://www.dosenmotor.de/index.php?scriptlet=dokud B/Browser&id=1&catID=1367&language=de 181