Coşkunöz’de Sac Yırtık Kontrolü

Bursa Coşkunöz A.Ş. de, kalıptan çıkan sac parçalarda meydana gelen yırtıkları kamera ile kontrol eden uygulamamızı devreye aldık.

Robot, kalıp açılınca kesilen parçayı alıp, konveyör üzerine yüklemektedir. Konveyörde ilerleyen sac parça, kameranın altına geldiğinde, kesiklik oluşmuş ise algılanır ve hatalı olarak ayıklanır. Aşağıdaki resimde, sağlam ve yırtılmış sac örnekleri görülmektedir.

Silindirik İç yüzeyde Çapak, Kof, Çizik Tespiti

Mercedes ve Chrysler için yan sanayi üretimi yapan Mita Kalıp‘ta, silindirik iç yüzey barındıran parçaların, kamera ile çizik, kof, çapak ve fatura varlık kontrolleri yapan sistemi devreye aldık. Otomasyon sistemi Prestij Endüstri tarafından yapılan test ve montaj masasında, parça montajı, kameralı kontroller ve basınçlı hava ile mikron boyutunda hassas ölçüm  yapılmaktadır.

Kontrol edilecek olan parça, yukarıdaki gibidir. Prestij Otomasyon montaj masasında, parça monte edilerek kameranın altına getirilir. Özel bir açıyla yerleştirilmiş ayna sistemi, silindirik iç yüzeyin tam merkezine getirilir. Konik yüzeye sahip olan ayna, silindirik görüntüyü küresel geometriye çevirir. (Aynadan yansıyan görüntülerin kameradaki görünümü aşağıdaki gibidir)

Yukarıdaki şekilde, hatalı ve sağlam parça görünümleri verilmiştir. Bu görüntülerde Çapak, Kof, Çizik gibi hataları ayırmak için yapılacak görüntü işleme yazılımında, ilk iş, dairesel formda olan görüntüyü, düzlemsel forma dönüştürmektir. Dairesel formda olan görüntü ile çalışmak ta mümkün olmakla birlikte, yapılan testler, düzlemsel geometride çok daha sağlıklı sonuçlar alındığını göstermiştir.

 

Yukarıdaki resimde, orijinal resim ve polar transform edilmiş hali görülmektedir. bu görüntüden de kolayca anlaşılabileceği gibi, Polar olarak transform edilmiş hali, çok daha kolay işlenebilir ve çok daha kesin sonuçlar üretir.

Projenin HALCON kodu ve kullanılan gerçek kamera görüntüleri (resimler) ilgililere mail ile ulaştırılabilir. (info@mavis.com.tr)

Tüm proje hakkında bilgi almak için, Mavis’e (www.mavis.com.tr) veya Prestij Endüstri’den Hakan Bey’e ulaşabilirsiniz.

 

//–>

Kameralı Halı Kesme Otomasyonu

Halı makinaları imalatı yapan Gaziantepte kurulu Anmak A.Ş. için geliştirdiğimiz Kameralı Halı Kesme Otomasyonu Projesini devreye aldık.

Sistemin Amacı :

Üretim aşamasında yanyana halılardan bir bütün şeklinde, sürekli ve tekparça şeklinde dokunan halıyı olması gerektirdiği yerden kesmek üzere kameralı kontrol otomasyonu kurmaktır. İşlem halihazırda manual olarak yapılmaktadır.

Yanyana 8 adet kamera ve aydınlatma ünitesinden oluşan sistem, tüm makina genişliği boyunca görüntü almaktadır. Her bir sistem, kendi ilgi alanına (görüntü kapsamı) giren görüntüde, olması gereken rotayı, hassas şekilde merkezi bilgisayara (ya da otomasyon sistemine) bildirir. Merkezi sistem, her bir bıçağı, kameralardan gelen komutları değerlendirerek, sağa-sola ötelemek suretiyle, hassas ve düzgün bir kesim yapar.

Bu projede, Anmak makina teknik ekibi ve  yine Gaziantep Yazılım Otomasyon firmalarından İremsoft ile birlikte çalışılmıştır. İremsoft tarafından halihazırda geliştirilmiş olan otomasyon sistemine, kamera verileri gönderilmiş ve kamera verileri var olan otomasyon sistemi tarafından yorumlanmıştır.

Otomasyon sistemi ile Mavis Kameralı Kontrol Uygulaması (VYP) arasında soket haberleşmesi yapılmıştır. Soket haberleşmesi ile her iki sistemde hem Sunucu hem İstemci modda çalışmaktadır. Her iki sistemde belirli bir protokol etrafında sürekli olarak haberleşmektedir.

Proje hakkında daha detaylı bilgi için, bize (www.mavis.com.tr) , Anmak makinaya ya da İremSoft tan Erdinç Beye ulaşabilirsiniz.

VYP içinden Direk HALCON kodu Çalıştırma (HDevEngine)

HALCON HDevelop ile yazılan uygulamaları dağıtmak için ya HDevelop içinden export edilen kod yazılım geliştirme ortamı (Visual Studio, C++, Delphi, VB ..) içinden COM ya da .NET ortamında kullanılır (en yaygın yöntem budur) ya da bu geliştirme ortamlarından direk HALCON kodu (hdev uzantılı) çağırılır.

VYP Programında, mevcut görev tanımları yapısına “HDevelop Routine” isminde yeni bir görev eklendi. Bu göreve çalıştırılacak olan HDevelop programı, program adı olarak verilir. Program içinden belirli bir procedure çağırılacaksa bu da belirtilir. (Çoğu kez tüm bir program değilde belirli bir altprogramın çalıştırılması istenir)

VYP, görüntü alma, kamera ayarları vb. işlemleri kendisi yaptığından, HDevelop programının görüntü kaynağından (kamera, dosya vb.) görüntü almasına gerek kalmaz. VYP, tüm giriş parametrelerini çağıracağı programa gönderir. Benzer şekilde tüm çıkış verileri (HTuple) ve nesneleri (HRegion, HObject) VYP tarafından algılanır.

Sonuçta yeniden derleme (compile) etme işlemine gerek kalmaksızın hdev kodunu değiştirerek programın düzgün çalışması sağlanmış olur.

Yapılan ilk testlerde, export edilmiş kodu kullanmak yerine hdev uzantılı HALCON dosyalarını interpreter (yorumlayarak) çalıştıran bu teknik, %1 – %5 arası daha uzun sürmektedir. Yine de getirdiği esneklik düşünüldüğünde, son derece mantıklı bir yaklaşımdır.

Yeni Digital Input Output Arabirimi : IO Master-2

 

Yeni çoklu digital giriş çıkış modülümüz test edildi ve kullanıma hazır hale getirildi. Son derece gelişmiş özelliklere sahip olan yeni modülde hem yazılım (sürücü) hem de donanım olarak yeni geliştirmeler yapıldı.

Donanımsal Yenilikler

  • 8 Optik İzolasyonlu (5-25V. digital) Giriş
  • 8 Optik İzolasyonlu Röleli (Kuru Kontak) Çıkış
  • 8 Tranzistör (NPN) Çıkışı
  • USB 2.0 girişi
  • Seri Giriş (Yüksek hızlarda çalışabilen)
  • Bağımsız 12 – 24 V. Çıkış Beslemesi
  • İzolasyonlu Metalik Kasa
  • 20 MHz iç çalışma frekansı
  • Çakışma, sinyal gönderememe, usb kopması gibi durumları otomatik algılayan ve led ile uyaran akıllı mekanizma

Yazılımsal Yenilikler

  • Daha sade ve gelişmiş USB sürücü modeli (filestream modelinden memorystream modeline geçiş)
  • Thread desteği (çok yüksek hızda anlık okuma / yazma)
  • Hem USB hem Seri port ile aynı anda çalışabilme
  • giriş işaretini 1/4 ms. gibi çok yüksek hızda algılayabilme
  • Tüm giriş çıkış bilgilerini ve sistem mesajlarını loglayabilme
  • USB kopması veya yeniden takılması gibi durumlarda, kendini toparlayan akıllı sürücü modeli (OnDeviceRemoved, OnDeviceConnected, OnDeviceChanged Yöntemleri)

Sonuç olarak, gerek 5-24 V digital işaretin algılanması, gerek dış ortama sinyal verilebilmesi için, gereken tüm fonksiyonaliteyi tek bir üründe sunduğumuz yeni IO modülümüz IO Master, başarılı geçen oldukça yoğun test işlemlerinin sonunda kullanıma alındı. Gürültü kirliliği olan ortamlarda, çok yüksek hızda erişim yapılması gereken projelerde alternatiflerine göre avantaj sağlayacaktır.

Cihazın donanım ve yazılımı Mavis bünyesinde yapıldığından, her türlü fonksiyon ilavesi veya değişiklikler tarafımızdan kolaylıkla yapılabilmektedir. Şimdilik 3.1 versiyonuna ulaşmış olan modülümüz, piyasa ihtiyaçları doğrultusunda geliştirilebilir özelliktedir.

Modülü Delphi, C#, Visual Basic  programlama dillerinden kullanmak mümkündür. Gerekli kütüphane opensource (açık kaynak kodlu) olarak verildiğinden, herhangi bir dll, activex, vb. araya sokmadan en hızlı erişim yapılması sağlanmıştır.

Eski kullanıcılarımız, ya da modüle sahip olmak isteyen yeni kullanıcılar için, örnek modül ve kütüphane (yazılım) desteği için bize ulaşabilirsiniz. (info@mavis.com.tr)

Çoklu Karekod Okumada Gelişmiş Yöntemler – 1

Geliştirdiğimiz çoklu karekod okuma cihazı, gerçek zamanlı üretim ortamında (5 farklı ürün, 2 farklı hatta) test edilmiş ve %100 okuma başarısı sağlamıştır. Çoklu karekod okuma işlemi, kamera önündeki tüm karekodları okumayı gerektirdiğinden, gelişmiş okuma teknikleri kullanmak gerekmektedir. Üretim anında her bir karekod yazıldıktan sonra doğrulamasaı (verification) yapılmasına rağmen, shrink, koli, bandaj vb. yöntemlerle birleştirildiğinde, ışık açısı, kutunun dönmesi vb. sebeplerle bazı karekodlar okunamayacak ya da zor okunacak şekle gelebilir. Bu gibi durumlarda, “ileri” teknikler kullanarak, çoklu okuma işlemini %100 başarılı hale getirmek mümkündür.

Bu yazı  dizisinde, zaman buldukça Gelişmiş Yöntemler olarak adlandırdığım bu tekniklere ana başlıklar altında değinmeyi düşünüyorum. Özellikle ilaç üretimi yapılan yerlerde, okuma kalitesi kadar okuma hızı da çok önemlidir. (Karekod okuyacam diye üretimi durdurmanız/bekletmeniz düşünülemez) Dolayısıyla burada hem okuma kalitesini iyileştirecek hem de çok yüksek hızlarda okuma yapabilecek teknikler ele alınacaktır.

Mavis olarak, geliştirdiğimiz çoklu karekod okuma cihazı (konveyör, kameralar, sensörler, aydınlatma ekipmanı ve karekod basma makinasından meydana gelen cihaz) ile yaptığımız testlerde, 25 lik shrinkler için her bir shrink içindeki karekodları (her birinde 25 karekod olduğu durumda) okuma işlemi maksimum 1.5 sn. kadar sürmektedir. Okuma işlemi esnasında konveyör bu 1.5 sn. boyunca sabit olarak durdurulmakta, okuma işlemi bitince yeniden hareket ettirilmektedir. Konveyör çıkışında, okunan karekodlara ilişkin tek bir koli karekodu (master kod) üretilmekte ve kolinin / shrinkin üzerine basılmaktadır. Shrinkin konveyöre baştan girmesi ve en sondan çıkması arasındaki süre 4 sn. dir. (1.5 sn okuma, 2.5 sn. baştan sona yürüme)

Gelişmiş Yöntem – 1 : Okunamayan Karekodların tespiti ve sadece bu karekodları içerecek yeni bir resim alınarak yeniden denenmesi.

Karekodları içeren resim alındıktan sonra bazı durumlarda beklenen tüm karekodların okunamayabilir. Işık yansımaları, perspektif bozulmalar gibi etkenler, görüntünün tam orta noktasındaki karekod ile köşelerdeki karekodların farklı görünmelerine yol açabilir. Bu durumda, hemen pes etmeden önce çeşitli filtreler uygulayarak yeniden denemek gerekir. (Daha önceki bu makalede bahsedildiği gibi) Uygulanan filtrelere rağmen, hala bir ya da birkaç karekod okunamamış ise, şimdi yapılması gereken;

  1. Okunamayan Karekodların Yerlerinin Tespiti
  2. Tespit edilen yerlere göre AOI (Area of Interest) belirterek yeniden resim alınması
  3. Alınan resmin yeniden değerlendirilmesi

Burada püf noktası AOI belirtilmesidir. AOI, donanımsal olarak kameraya belirli koordinatların resmini al demektir. 10 Megapixel bir kamera ile çalışıldığını varsayalım. Tüm resmi almak 500 ms. kadar sürecekse, tek bir karekodun bulunduğu bölgenin resmini almak (değişebilir) 30-50 ms. kadar sürecektir. Böylece çok hızlı bir süre içinde sistem 2. 3. 4. denemelerini de yapar, gerçekten okunamayan bir kod var ise o zaman “NOK” olarak işaretler.

 

 

Yukarıdaki resimde sarı ile çerçevelenmiş tüm karekodların okunduğunu, kırmızı çerçeveli karekodun okunamadığını varsayalım. Okunamayan karekodun yeri HALCON find_barcode_2d fonksiyonu ile verilmekle birlikte, foundation fonksiyonları ile de belirlenebilir (Ben daha hızlı olması açısından, daha akıllı bir yapı kurarak, grid içinde okunamayan yerleri tespit eden bir yapı kurdum mesela) Şimdi yapılması gereken, bu karekodu içeren bir AOI kameraya bildirip yeniden fotoğraf almaktır.

AOI Bildirimi

open_framegrabber ('uEye', 1, 1, 0, 0, 0, 0, 'default', 8, 'default', -1, 'false', 'default', '1', 0, -1, AcqHandle)
count_seconds(T1)
grab_image(Image, AcqHandle)
count_seconds(T2)
set_framegrabber_param (AcqHandle, 'roi', [80,80,240,240])
count_seconds(T3)
grab_image(Image, AcqHandle)
count_seconds(T4)
FullGrabTime := (T2-T1)*1000
AOISetTime := (T3-T2)*1000
AOIGrabTime := (T4-T3) * 1000
close_framegrabber (AcqHandle)

Burada da kolayca görülebileceği gibi asıl işlem
set_framegrabber_param (AcqHandle, ‘roi’, [80,80,240,240]) fonksiyonu tarafından yapılmaktadır. Kendi makinamda bu kodu çalıştırdığımda; 1.3 MP kamera ile Full Grab (AOI verilmeden alınan resim) süresi : 118 ms.
set_frame_grabber için harcanan süre : 30 ms.
80-80-240-240 koordinatlarından resim almak için geçen süre : 20 ms.

olarak ölçüldü. Eğer 5 ya da 10 MP kamera kullanacak olsaydım, çok daha radikal zaman kazancım olacaktı.

Eş zamanlı olarak, her bir denemeden önce, kamera pozlama süresi bir miktar değiştirilebilir. Böylece ardışıl alınan her iki resmin birbirinden farklı olması sağlanır, varsa ışık parlamalarının önüne geçilmiş olunur.

Eğer işin içine bir miktar da bulanık mantık katılmak istenirse, pozlama miktarının değişimi sabit bir sayı ile değil, rastgele bir değer ile yapılabilir. Hala yeterli vaktimiz varsa, okuma metodolojisi “enhanced_recognition” ile zorlanır, pattern tolerance olarak “low” değeri denenir ve kod içinde yumuşatma fonksiyonu varsa mean_image yerine mean_curvature_flow ile değiştirilir. Threshold parametreleri yine bir miktar rastlantısal değerler ile ötelenir. İşlem tekrar denenir. (Bu şekilde sistem tarafından parametrelerin belirsiz bir şekilde zorlanarak tekrar denenmesi ve sonuçta başarıya ulaşılması, çoğu kez beni de heyecanlandıran bir durumdur. Mekanik bir sistem gibi OK/NOK vermek yerine, yapay zeka algoritması gibi çalışması, NOK durumunun üstüne gidilmesi ve beklenen süre içinde kalmak kaydıyla belirsiz zamanlarda OK diyebilmesi, test ya da demo esnasında gerçekten heyecanlı durumlara yol açabilmektedir.) Tam da bu arada, karekod okumaişlemi için timeout belirtmeyi de unutmamak gerekir. Yoksa HALCON hiç olmaması gerektiği kadar uzun oyalanabilir. Ben tüm proses için de timeout kullanıyorum. Şu alt programcığı 300 ms. içinde sonlandır gibi. (Birşeyler belirsiz olsun ama yine de sınırlar içinde kalsın)

Vakit buldukça burada karekod üzerine gelişmiş algoritmalardan bahsetmeye devam edeceğim. Bugünlük bu kadar. İletişime geçmek isteyenler için, info@mavis.com.tr mail adresini yeniden hatırlatayım…

Vida Varlık Testi

Mavis Yapay Görme olarak, Kombi brülörlerinde kullanılan metal döküm parçalar üzerinde vida varlık kontrolü projesini devreye aldık.

sistem önce vidaların varlığını test ediyor. tüm vidalar yerinde ise, sızdırmazlık testine start veriliyor. Parça basınçlı hava ile gerçekleştirilen sızdırmazlık testinden geçer ise, işaretleyici kalem ile vidalardan birinin üzeri kırmızı renge boyanıyor. Bu durumda kameralı kontrol sistemimiz yeniden devreye girerek, bu kez boyalı vidanın varlığına bakıyor. Eğer her şey OK ise, sistemden parçanın alınabilmesine izin veriyor. Eğer hatalı parça ise, parça kenetli kalıyor.

Ekran görüntüsü

 

Bu projede kullanılan HALCON modülleri : Foundation

Kullanılan komutlar : emphasize, mean_curvature_flow, bin_threshold, closing_circle, opening_circle, select_shape

 

sızdırmazlık otomasyonu, Ecom Mühendislikten Necati Bey tarafından gerçekleştirilmiştir.

Renault VIN (Şase No) Okuma Sistemi

Bursa’da üretilen Renault modelleri için kameralı şase no (VIN no) okuma sistemi için kuruluma başlandı. Daha önce Ford için geliştirdiğimiz, kameralı şase no okuma sisteminin benzeri Renault için kurulacak.

Kurulacak sistem, Fluence, Megane, Clio ve bu modellerin tüm varyasyonlarını içerecek.

Ford Connect ve Transit Hattında Kameralı Logo Yazı ve Parça Kontrolleri

Ford Otosan Gölcük tesislerinde üretilmekte olan tüm Ford Transit ve Connect modelleri için, araçların arkasında yer alan logoların, yazıların, parçaların ve araç içinde yer alan soket gibi nesnelerin kamera ile %100 kontrolüne dayalı proje çalışmaları devam etmektedir.

Sistemin Çalışması

Merkezi PVS sisteminden alınan verilere göre, hattan geçecek olan araca ait tüm bilgiler öğrenilir. Program, aracın neresinde hangi parçanın bulunacağını önceden bilir. Hat durdurulmadan (araç hat üzerinde yürür halde hareket halindeyken) Ethernet kameralardan alınan görüntüler, aracın içini ve arka yüzeyini fotoğraflar. Bilgisayar yazılımı, tüm bu görüntüleri işleyerek, tüm yerleştirilen parçaların ve takılan logoların / yazıların doğru ve uygun pozisyonda olup olmadığını kontrol eder.

Aşağıdaki resimde, tek bir model için yapılması gereken kameralı kontrol bilgileri yer almaktadır

Üretim hattına 32″ TV ler koyularak izlenebilirlik sağlanacaktır. Yazılım, sonuçların ve alınan görüntülerin kaydedilmesi, raporlanması, istatistik sunulması gibi özelliklere sahiptir.

Motoman Robot Haberleşme Arabirimi

Motoman robotları ile yaptığımız kameralı görsel kalite kontrol, besleme, yerleştirme, hata bulma, ayıklama gibi projelerimizde, kamera/PC ile robot arasında tüm bilgi alışverişini sağlayan “Haberleşme Arabirimi” yazılımımız hazırlandı.

Programın amacı, Motoman robot ile kamera/pc arasında Ethernet ya da seri port üzerinden iletişim kurup, tüm robot kontrol ve kumanda işlevlerini yerine getirebilmektir. Klasikleşmiş sistemlerde robot ile PC/Kamera arası alışveriş, Dijital input output modülleri ya da ModBus/ProfiBus gibi bus sistemleri ile yapılmaktadır.

Mavis tarafından geliştirilen bu yazılım ile, tüm haberleşme Fast Ethernet / Gigabit ethernet protokolü üzerinden yapılmaktadır. (Halihazırda seri port ta desteklenmektedir)

Bu haberleşme protokolüne göre, sadece pozisyon veya elektriksel bilgi (Başarılı / Hatalı) bilgisi değil, tüm robot komutları kullanılabilmektedir.

Haberleşme programının kullandığı komut listesinden örnekler

  • RALARM (Robotun hata alarm kodunu okur)
  • RPOSJ (Robotun anlık pozisyon bilgisini joint koordinat eksen sistemine göre okur)
  • RPOSC (Pozisyon bilgisini belirtilen eksen sistemine göre okur)
  • RSTATS (Durum bilgisini alır – mod, operasyon, alarm durumu, servonun durumu vb..)
  • RJSEQ (halihazırdaki job adı, satır numarası ve adım numarasını alır)
  • RJDIR (Tüm job ların listesini alır)
  • RUFRAME (Belirtilen koordinat sistemini alır)
  • SAVEV (Değişken -variable- datasını okur)
  • HOLD (Hold ON / OFF işlemini yapar)
  • RESET (manipülatörün alarm durumunu resetler)
  • CANCEL (oluşan hatayı iptal eder)
  • MODE (Teach Mode, Play Mode seçimini yapar)
  • CYCLE (Cyle seçimini yapar – Step, 1 cyle, auto)
  • SVON (Servo motor güç durumunu ON yapar)
  • MDSP (Programlama aygıtının ekranında mesaj gösterir)
  • START (Bir job başlatır)
  • LOADV (Bilgisayardan aldığı değeri değişken/variable içine koyar)

Benzer şekilde, 100 den fazla komut, tam olarak desteklenmiştir. Özetle, Motoman robot ile Mavis kameralı kontrol uygulamaları %100 aynı dili konuşarak ve sürekli on-line olarak çalışmaktadırlar.

Programı tedarik etmek için, bizimle iletişime geçebilirsiniz.

Not : Motoman robotları Türkiye distribütörü Teknodrom firmasıdır. Mavis, Teknodrom firmasının yapay görme çözüm ortağıdır. Teknodrom, Motoman robotlar hakkında haberleşme sistemleri, ve uygulamalar hakkında her türlü teknik, teorik ve pratik bilgiye sahiptir. Motoman robotlar hakkında bilgi ve çözüm ihtiyacınız için Teknodrom firması ile iletişime geçebilirsiniz. Mavis ve Teknodrom olarak, Motoman robotlar ile çok sayıda yapay görme (kameralı kontrol) uygulaması gerçekleştirilmiştir. Bunla ana başlıklar altına

  • Robotlu Besleme
  • Parça Bulma
  • Yerleştirme
  • 2D şekil tanıma bulma pozisyonlama
  • 3D şekil tanıma bulma pozisyonlama
  • Makina besleme
  • Çapak bulma ayıklama
  • Robotlu Ölçüm ve kalite kontrol

gibi konulardır.

Bu konulardaki çalışan uygulamalar hakkında bilgi almak için

http://www.mavis.com.tr/blog/?p=684

http://www.mavis.com.tr/blog/?p=525

http://www.mavis.com.tr/blog/?p=422

http://www.mavis.com.tr/blog/?p=352

http://www.mavis.com.tr/blog/?p=1

linklerine tıklayabilirsiniz.