MAVIS’in 2021’de bir tanıtım-reklam videosunun daha çekimi tamamlandı. Buyrun aşağıdan izleyebilirsiniz.
Yazar arşivleri: Kağan Arıcı
Dijital Giriş Çıkış Modülü – 4. Versiyon
MAVIS olarak kendi üretimimiz olan Digital Input / Output modülünün yeni versiyonu üretip kullanmaya başladık.
Bu yeni modülde, eski versiyonlardaki gibi 8 giriş / 8 çıkış değil, içindeki kartın farklı olmasından dolayı 6 giriş / 5 çıkış değeri mevcuttur. Daha fazla sayıda giriş/çıkış gerektiği zaman, birden fazla modül aynı anda bilgisayara takıp kullanılabiliyor. Boyut olarak da eskiye göre daha küçüldü.
Çıkışlar röle çıkışı, kuru kontak denilen şekildedir. Yani 2’li klemensin bir tarafından voltaj verilir. İlgili çıkış verildiği anda röle çekilir ve diğerinden bu verilen voltaj alınabilir, röle çıkışı verilmez ise bu voltaj alınmaz.
- USB ya da Seri Port (9600 bps, 8, N, 1) ile bağlantı sağlanabiliyor.
- 24V beslemesi verilir. USB ile bağlı ise buna gerek yok çünkü gücünü bilgisayardan alır.
- Küçük boyutlar (10cm x 7cm x 3cm)
- Elektriksel parazitlenmeye karşı korumalı donanımı ve yazılımı vardır. Gelen ve giden sinyaller için pattern (sabit ek byte’lar) kullanılıyor.
- Gelen girişlerin doğru olduğuna emin olmak için birden fazla okuma yap (tekrarlı okuma sayısı parametrik). Sizin için kontrol zamanı çok önemli ise bu tekrarlı okuma sayısını azaltabilirsiniz, ya da biraz zamanınız var ve gelen bilginin doğru olması çok önemli ise bu sayıyı arttırabilirsiniz.
Dijital Giriş / Çıkış Modülümüzün Çizimi:
Normalde çevreden elektriksel sinyal kapma olasılığı her zaman pek olmasa da, özellikle sistemin yakınında yüksek akım çeken makinelerin varlığı, motorların veya konveyörlerin çalıştığı, kaynak aletlerinin, pres makinelerinin olduğu durumlarda bazen parazit sinyal kapması sorun olabiliyor. Bu durum özellikle USB bağlantıda daha çok olduğu için Seri modda çalışmasını tavsiye ediyoruz.
Ancak yine de bir şekilde parazit sinyal gelmesi durumunda, bu sefer durumu yazılım ile kontrol altına alıyoruz.
2 şekilde parazit sinyal alınma ihtimali var; Birincisi, modülde giriş kısmına sanki tetik sinyali alınmış gibi gelen parazitler. İkincisi, modül ile bilgisayar arasında kablonun kapmış olduğu parazit sinyaller.
Birinci tipteki problemler için; modülün yazılımında, sistemden gelen sinyalin hala gelip gelmediğine bakarak bunu anlayabiliyoruz. Bunun için modülün içindeki parametreleri değiştirebilme olanağımız var. Parazit sinyal hemen gelip geçici olduğu için gerçek sinyal olmadığı anlaşılacaktır.
İkinci tipteki problemler için ise; Gerçek sinyal geldiğinde modülden gelen data pattern’li oluyor, yani önüne başka sabit ek byte’lar ekleniyor. Modül ile bilgisayar arasında kabloya parazit sinyaller geldiğinde, pattern’siz yani sabit ek byte’lar olmadan data gelecektir, bu datayı dikkate almayarak sistemin şaşırmasını engelleyeceğiz.
Aşağıda USB ve seri modda çalışarak nasıl giriş okunur çıkış verilir kısaca açıklamaya çalıştım. Daha detaylı bilgi için bize ulaşabilirsiniz. Modülümüzü alıp kullanmak isteyenlere zaten detaylı dokümanı gönderiyoruz. İletişim için: info@mavis.com.tr ya da kagan@mavis.com.tr.
USB bağlantıda;
- Çıkış vermek için; 9 byte göndeririz. [0 1 OutputVal 0 0 0 0 0 0] şeklinde olmalıdır. Buradaki 1 değerinde olan 2. byte: yazma işleminin kodudur. OutputVal ise çıkış vermek istediğimiz değerdir.
- Girişleri sorgulama için; [0 4 0 0 0 0 0 0 0] datasını göndeririz. 4 kodu bizim girişleri sorduğumuzun koddur. Bunun sonucunda bize gelen data şu şekilde olacaktır: [250 251 252 id 14 InputVal 0 0 0]. İlk 3 byte pattern’dir, yani gelen sinyal modülden doğru şekilde gelmiştir. id değeri, modüle atadığımız id numarasıdır. 14 değeri, girişleri sormamıza istinaden modülün verdiği cevap olduğunu gösterir. InputVal ise modülde şuanda var olan giriş değerleridir.
Seri bağlantıda;
- Çıkış vermek için; [254 253 252 1 OutputVal 0] şeklinde olmalıdır. Buradaki ilk 3 byte pattern’dir. 1 değeri, yazma işleminin kodudur. OutputVal ise çıkış vermek istediğimiz değerdir.
- Girişleri sorgulama için; [254 253 252 4 0 0] datasını göndeririz. 4 kodu bizim girişleri sorduğumuzun koddur. Bunun sonucunda bize gelen data şu şekilde olacaktır: [250 251 252 id 14 InputVal]. İlk 3 byte pattern’dir, yani gelen sinyal modülden doğru şekilde gelmiştir. id değeri modüle atadığımız id numarasıdır. 14 değeri, girişleri sormamıza istinaden modülün verdiği cevap olduğunu gösterir. InputVal ise modülde şuanda var olan giriş değerleridir.
- Giriş değerleri anlık olarak değiştiğinde görebilmek için; serialPort1_DataReceived event’i tanımlı olması gerekmekte. Bu event tetiklendiğinde, seri porttaki byte’lar okunarak işleme devam edilir. Okuma sonucunda gelen data şu şekilde olacaktır: [250 251 252 id 10 InputVal]. 10 değeri, girişlerde değişkenlik olduğunun kodudur. InputVal ise modülde şuanda var olan giriş değerleridir.
Makine Öğrenimi ile Kavanozda Etiket Kontrolü
HALCON’un Derin Öğrenme (Deep Learning) desteği de vardır. Ancak derin öğrenme çıkmadan önce ise zaten çeşitli öğrenme modülleri (svm, knn, mlp, cnn) ile makine öğrenmesi (machine learning) yapılıyordu ve bunları sıkça kullanıyorduk. Bu yazıda bir projeyi örnek olarak anlatacağım.
Türkiye’nin en büyük kavanoz üreticilerinden birinin, kavanoz üzerilerine yapıştırılan etiketlerinin kontrolü yapılmak istendi. Bu proje aslında tam Derin Öğrenme’nin kullanılacağı bir proje. Ancak üretim koşulları gereği bir üründen zaten 1000 – 10000 civarında yapılıyor ve başka ürüne geçiliyor. Yani üretim sayısı, zaten derin öğrenme için gereken OK ve RET numune sayısı kadar oluyor. Bu durumda daha az sayıda öğretim yapacağız. Derin öğrenme modülünün kullanım maliyetini de düşündüğümüzde, normal makine öğrenmesi yöntemleri ile yapmaya karar verdik.
Zorlukları:
- Etiketler önde ve/veya arkada gözükecek şekilde, 1 ya da 2 adet gelebilir. Dolayısıyla 2 adet kamera gerekiyor.
- Hareket halinde görüntü alınacak.
- Saniyede 4 adete kadar kamera önünden geçebilir. 2 kamera için toplam kontrol süresi maksimum 250 ms olması gerekmekte.
- Kavanozlar silindirik olduğu için aydınlatma çok önemli, kenarlar aydınlanmaz ise görmek zorlaşacaktır. Kavanozun büyüklüğüne ve şekline göre ışığı yansıtması da değişken olmaktadır.
- Kavanozların ebatları değişken, dolayısıyla etiketlerin yerleri de.
- Kavanozlar ve etiketler, düz-bombeli-yamuk şekilli-eğri olabilir.
- Etiketlerin eni boyu yüksekliği de değişken olabilir.
- Etiket ve kavanozun içindeki malzeme her renkte gelebilir.
- Etiket üzerinde yazı, barkod olabilir ya da içindeki malzemenin resimleri olabilir.
- Kavanozların içine karışık turşular (kornişon, lahana, havuç, biber, domates vs.), salça, zeytin, biber, patlıcan konulabiliyor. İçinde böyle karışık gelebilen malzemeler olduğu için, etiketin bulunması zorlaşabiliyor.
Aşağıda örnek bazı fotoğrafları görebilirsiniz.
Bütün bu zorluklara rağmen HALCON ile başarılı bir şekilde makine öğrenmesi sağlanmaktadır.
Kullanıcıdan etiketli olan kavanozları koyup döndürürken birkaç fotoğraf çektirip bunları OK ürün olarak, etiketi olmayan kavanozları koyup bunları da RET ürün olarak kaydediyoruz. Bu öğrenimi SVM (Support Vector Machines) yöntemi ile yaptık.
Gelen ürünlerin görüntülerini alıp, hızlıca işleyip etiketin varlık yokluğuna bakabiliyoruz.
Sonuç olarak; birçok farklı kavanoz ve etiket örneğinde, doğru ve hızlıca çalışan bir proje oldu.
Etiket Eksik Yazı, Hiza ve Açı Kontrolü
Sistemimizi kurduğumuz yerlerden biri de, beyaz eşya sektöründeki ismi bilinen birçok büyük şirketlere etiket (label) sağlayan bir firma.
Arçelik, Beko, Gorenje, Liebherr, Hacep gibi markaların, buzdolabı, çamaşır makinesi, bulaşık makinesi gibi beyaz eşyalarının üzerine konulan etiketleri yapılıyor. Bu etiketlerin yapıştırılırken sorun olmaması için;
- Doğru yönde ve açıda yani x ekseni 0(sıfır) açısında,
- Doğru hizada yani sağdan-soldan-üstten belli bir mesafede,
- Eksik yazısı, karakteri olmadan
üretilmesi ve bu firmalara gönderilmesi gerekmektedir.
Etiketlerin kontrolü eskiden tek tek, el ile ve bir taslak şablonun üzerine konularak, manuel olarak yapılıyordu. Günde binlerce ürün üretilince bunların hepsinin kontrolü yapılmıyor, aralardan örneklemeli olarak ürün seçilip sadece onlara bakılıyordu. Artık 7-24 çalışan ve %100 esasına dayalı olarak bütün ürünlerde hassas şekilde kontrol sağlanıyor.
Bizden önce, bizim sektörde ismi bilinen başka bir görüntü işleme firmasıyla çalışılmış ve maalesef başarısız olmuşlar. Maalesef diyorum çünkü müşteri, bir firmayla başarısız olduğunda ister istemez bir önyargısı oluşuyor. Kontrolün çok zor olduğunu ya da bizim gibi firmaların hepsinin aynı olduğuna ve diğerlerinin de çözemeyeceklerine inanabiliyorlar. Bir yandan da eğer uçuk istekleri varsa (her şeyi görsün, her yerine baksın, aşırı hassas bulsun vb.) bunlardan vazgeçiyorlar (çalıştığımız firmada bu zaten yoktu tabiki, genel olarak yazıyorum), kameralı sistemlerin nasıl çalıştığına dair fikirleri oluşuyor, sisteme pozitif ve negatif etki eden faktörleri daha kolay anlıyorlar ve tecrübe ediniyorlar.
Kolay diye başlanan projelerin aslında ne sorunlar çıkarabileceğini sanırım iyi biliyoruz, bu yüzden genelde bütün projelere temkinli yaklaşırız. Farklı sektörlerde farklı isteklerde projelerim oldukça fazla olduğu için tecrübemiz de fazla. Oluşabilecek problemleri veya daha sonra istenebilecek şeyleri de önceden görüp konuşuruz. İleride gerekecek kısımları önceden programa kolayca ekleriz. Programı her firmaya özel olarak kendimiz geliştirdiğimiz için (tabiki genel işleri yapan çekirdek bir kısmı mevcut) bu tarz esnekliğimiz çok fazla. Arayüz tasarımında, veritabanı, ağ ve haberleşme tarafında, user-login sisteminde, ayarlar kısmında, raporlama isteklerinde karşılıklı konuşup, herkes tarafından kolayca kullanılabilen, müşterinin içine sinen bir program oluşturuyoruz.
Konumuza dönecek olursak; üretilen malzeme, konveyör üzerinden hızlıca geçerken hareket halinde görüntü alınır ve içerideki yazının açısı, tabakanın açısı ile aynı mı, üzerinde eksik karakter var mı, hizalamalar doğru mu diye kontrol edilir. Ürünler şu şekilde:
Burada, şeffaf tabakanın açısı ile yazının açı farkı 0.5 derecenin altında olmalı. Beyaz kağıt üretim aşamasında önemli olmadığı için eksik, yırtık, açısı farklı, sağdan soldan üstten alttan kesildiği yerler farklı, şekli değişik gelebiliyor. Dolayısıyla beyaz kağıdın önündeki yazıyı bulmak da kolaydır diye düşünmeyin. Üstelik ışık yansıtma farklılığı tabakaların kalınlığından dolayı değişkenlik gösterebiliyor, arka plan her zaman düzgün siyah olarak gelmiyor, parazit yaratabilecek tozlar çizikler olabilir. Ayrıca ürünler hızlıca konveyörden geçiyor ve saniyede birkaç ürün geçebilir. Bununla birlikte şeffaf yerleri de olan ürünün kameranın önüne geldiğini şaşmaz şekilde bilmek de gerekiyor.
Yazılım ayrıca ileriki zamanda üretilebilecek markaları da kontrol edecek şekilde, öğretim yöntemleri ile çalışmaktadır. Yani yeni model tanıtıp, istediğiniz toleransları girip, ürünlerinizi kontrol etmeye başlayabiliyor.
Hızlıca kurulumunu yaptığımız bu sistemde, saniyede 2-3 etiket kontrolü yapılmakta.
Bu yazılımımızda da yine raporlama modülümüz mevcuttur. Günlük, saatlik, üretilen modellere göre, ok-ret durumu, her bir kontrolün detayı, toplam sonucu ve sayısı raporlamada alınabiliyor.
Ayrıca bu ana firmalarda, beyaz eşyanın üzerine etiketin doğruca yapıştırıldığının kontrolü de manuel olarak hizalanarak yapılıyor. Operatör tarafından doğru açıda konulduğunu otomasyonel olarak kontrol ettirmek istiyorlar. Bununla ilgili çalışmalarımız da devam ediyor.
Jant Tanıma ve Doğrulama Sistemi
Birçok araç firmasına jant üretimi de yapan FARPLAS, jantların paketlenmesi aşamasında bir karışıklık olmaması için kameralı kontrol sisteminde bizimle çalıştı.
Jantlar üretimden ve boyahaneden çıkıp son kontrolleri kameralı sistem ile yapılıp paketleniyor.
- Jantların altlı-üstlü çift olarak ya da tek olarak geçtiğinde,
- Boyunun ölçüm kontrolleri, (inç olarak)
- Logoların doğru logo olup olmadığı, (Renault-Fiat-Hyundai-Dodge vs.)
- Bijon delik sayılarının doğruluğu, (4-5 ya da hiç)
kontrolleri yapılıyor.
Konveyörden geçerken linescan mod ile alttan ve üstten bakacak şekilde 2 kamerayı paralel çalıştırarak aynı anda jantların görüntülerini çekiyoruz.
Daha sonra yukarıdaki kontrolleri yapıp, sonuçlar doğru ise paketlenmeye gidiyor. Beklenmeyen bir ürün ise, jantı piston ret sistemi ile otomatik olarak ret kabinine taşıyor.
Böylece müşteriye doğru ürünler karışmadan gidiyor.
Aygaz Tüplerinin Seri Numaralarının Okunması
Aygaz tüplerinin üzerinde bulunan Koloret numaralarının (seri no) okunması projesi başarıyla bitirildi.
2 robot ve 6 istasyonda tasların (tüpün üst yarısı) üretimi yapılıyor. Koloret numaraları OCR (Optical Character Recognition) yöntemleriyle okunuyor. Okunan seri numaraları ve istasyon bilgileri eşleştirilip veritabanında arşivleniyor. Hepsi tek bir hat üzerinde ve tek bir PC – kamera sistemi ile çözüldü.
- Sistemde fabrikanın domain sistemi üzerindeki bilgiler ile Login olunabiliyor ve program üzerinde kullanıcının yetkileri, domain üzerindeki yetkisine göre belirleniyor.
- Sonuçlar ağ üzerindeki veritabanında saklanıyor. Yetkili kişiler raporlama yapabiliyor. Hangi robotun hangi seri numaralı tüpleri ürettiği görülüyor. Duruma göre tüpteki ve baskıdaki kaliteyi iyileştirmek adına görüntüler üzerinden analiz yapılıyor.
- Görüntüler yine ortak ağ üzerindeki bir bölgeye kaydediliyor.
Yüzeyin işlenmesi ve yazının basılması her zaman çok kaliteli olmayabiliyor. Yüzey pürüzlü gelebilir, ışık güzelce dümdüz parlatmayabilir, yazılar birbirine yakın ya da yüzeyden taşmış gelebilir. Ek olarak taslar 360 derece dönük de gelebilir.
Karşılaştığımız binlerce örnekle de çalışarak doğru sonucu bulana kadar defalarca kontrol edip, sistemin yüksek hassasiyette okunmasını sağladık.
Tanıtım Videomuz
MAVIS’in tanıtım-reklam videosu çekildi ve artık yayınlandı. Aşağıdan izleyebilirsiniz.
Ürünlerin Tip ve Sayı Eşleştirmesi
TAYSAD’daki FARPLAS fabrikasına parça tanıma sistemimiz devrede. Tek kameralı, bilgisayarlı, sensörlü, dijital i/o modüllü, kabinli bir sistem kuruldu.
Toyota araçlarının bir çok plastik parçalarının boyaması gerçekleşiyor. Bu ürünlerin tip ve sayısını buluyoruz ve Doruk Otomasyon ile haberleşip etiket çıktısı alınıyor. Haberleşme Web Servisi ile çift taraflı yapılıp, ürün bilgisi ve sayısı bilgileri aktarılıyor.
Yaklaşık 30 farklı parçanın tip-sayı eşleştirmesi yapılıyor. Ön-Arka Sağ-Sol kapı iç kısmı, Ön-Arka Sağ-Sol kapı çıtaları, Yakıt deposu kapakları, Orta konsol kısımları, Bagaj çıtaları vb.
Döküm Malzeme Üzerinde Logo ve Baskı Kontrolü
Türkiye’nin En Büyük 500 Sanayi Kuruluşu’nda olan ve döküm malzemelerin üretimini yapan Trakya Döküm firmasına, 2. kameralı kontrol sistemimizi de kurmuş bulunmaktayız. Soyak Grubu’na ait işletmede başka yeni kontrol alanlarını da görüşmeye devam ediyoruz.
Burada genel olarak ürünü tanıma ve yanlış ürünün işlenmemesi, baskıdaki kontrollerin yapılması üzerine çalıştık. PLC sistemleriyle, kendi elektriksel dijital I/O kartımız ile haberleşmede bulunarak mevcut işleme tezgahlarına dahil olduk.
Görüntü işlemeye aşina olanlar yada bu konuda çalışanlar bilir; döküm malzemeler üzerinde çalışmak kolay değildir. Çünkü malzemenin yapısı gereği görüntü üzerinde oldukça parazit vardır, deforme olmuştur, gözle bile zor görünür durumdadır ama sizden sistemin çalışması istenmektedir. Neyse ki HALCON’un da yardımı olarak bunun da üstesinden gelmek kolay oldu.
Döküm Malzeme Üzerinde Baskı Kontrolü, Karakter Okuma, Ürün Tanıma
Şuan kurduğumuz kameralı kontrol yazılımları gayet düzgün ve tutarlı şekilde çalışmaktadır. Ayrıca kurulan sisteme ek olarak devamlı istenilen yeni değişiklik talepleri de sisteme de kolayca entegre edilebilmekte. Bu yüzden yazılımımızı, altyapısı sağlam ve dinamik olacak şekilde geliştirmeye özen gösteriyoruz.
Kurulu olan birinci sistemde;
Birden fazla model için aşağıdaki kontroller yapılmaktadır;
- Ürünün düz takılması
- Basılan logonun doğru olması
- Logodaki baskı kontrolü
- Fikstürün 4 yüzeyini ayrı ayrı kontrol edip, herhangi birisinde hata varsa, fikstürü tezgaha sokamaması
İkinci sistemde;
Birden fazla model için aşağıdaki kontroller yapılmaktadır;
- Ürünlerin varlığı – yokluğu
- Basılan logonun doğru olması
- Logodaki baskı kontrolü
- Herhangi bir üründe hata var ise tezgah sistemini çalıştırmamak.
HALCON 13 Eğitimi
Son zamanlara kameralı görüntü işleme kontrollerini kendi bünyesinde yapmak isteyen birçok firmada HALCON kullanımı arttı ve bizden eğitim almak isteyenler çoğaldı. Son zamanlarda bir çok yere eğitim verdik ve sonuncusu da geçtiğimiz hafta oldu.
Üretimini ülkemizde yaparak Almanya’ya merkezine ihraç eden, binlerce çalışanıyla İzmir’de bulunan Hugo Boss firmasına HALCON 13 eğitimi verildi.
Firmalarında kalite anlamında iyileştirmeler yapmak ve daha fazla bilgisayarlı ve kameralı kontroller yapmayı istemekteler. Bu geliştirmeleri kendi bünyesindeki ekibiyle ve HALCON’u kullanarak yapmaya karar verdiler.
Temel seviye ve İleri seviye olarak ikiye ayrılan eğitimi, ikisi bir arada ve 3 günde almak istediler. Biz de sıkıştırılmış olarak hızlıca ve neredeyse bütün konulara değinecek şekilde elimizden geldiğince anlatmaya çalıştık.
Anlatılan konular ise şöyle;
1. gün:
HDevelop kullanımı
Her türlü kamera veya kaydedilmiş görüntüler olan bir klasör üzerinden HALCON üzerinden görüntü alma
HALCON temel (foundation) komutları
Image’ler üzerinde işlemler; bir çok thresholding yöntemleri, görüntüyü bulanıklaştırma (smooth) ve keskinleştirme yöntemleri, kenar bulma algoritmaları (edge detection), çeşitli filtreleri uygulama, renkli görüntüler üzerinde yapılan işlemler
Region’lar üzerinde işlemler; selection, segmentation, ROI işlemleri, filtre uygulama ve dönüştürme işlemleri
2. gün:
Parallel processing
Procedure kullanma
Barkod – Karekod okuma
OCR (Karakter tanıma, yazı okuma)
Measurement 1D-2D (Ölçüm işlemleri)
3. gün:
Eşleştirme yöntemleri (Shape Matching)
Visual Studio ve C# ile HALCON kullanımının 2 yolu ve baştan sona uygulama yapmak
Ve uygulayacakları projeler üzerinde konuştuk.
Bazı konular kalmış olsa da en önemlilerini görmüş olduk ve başarıyla uygulayabileceklerine eminiz.