Hidromek’de Ürün Tanıma Sistemi

Geçtiğimiz sene iş yoğunluğumuzdan dolayı blog’a çok yazı yazamadık. Bu süre içinde birçok proje ve uygulama yaptık. Önümüzdeki günlerde bu uygulamalarımızdan bahsetmeye çalışacağım.

Örneğin, sektöründe lider olan Hidromek firmasının Ankara’daki fabrikasında ürün tanıma sistemini devreye aldık.

Kepçe ve iş makineleri parçalarının boyahaneye gitmeden önce tanınması doğru parça olduğunun kontrolü sağlanıyor. Eğer boyahaneye yanlış parça giderse, boyama kafaları malzemeye çarpmakta ve hem kafa hem malzeme zarar görmektedir. Bu da ziyan olan zamanlar ve yüksek maliyetler anlamına geliyor. Taşıma konveyör sistemi ile gelen parçalar, tipleri (Alt Şase, Üst Şase, Arm, Bom, Kova) ve tonajları ile (14, 20, 22, 30, 37 ton) kombinasyonlu olarak farklı şekillerde gelebiliyor.

Sistem ise şunu yapıyor:

  1. Yazılım, gelen ürünün bilgisini PLC sisteminden alır.
  2. Operatör kontrol yaptırır ve yazılım kameralardan görüntü alır.
  3. Görüntüler işlenerek doğru parça olup olmadığı kontrol edilir.
  4. Doğru ise OK çıkışı, değil ise RET çıkışı PLC sistemine verilir.
  5. Buna göre PLC sistemi, ya hattı durduruyor ya da devam ettirir.

Bununla birlikte otomatik olarak OK ve RET olanların ayrı ayrı fotoğraflarını da kaydetmektedir ve parçaların takibi, incelenmesi, geçiş zamanları ve sayıları takip edilebilmektedir.

Sistem, birçok sektörde bu tarz ürün tanıma, seçme, yönlendirme işlemlerini yapabilmektedir.

program1-

hidromek-alt hidromek-arm

 

 

 

 

 

hidromek-bom hidromek-ust

Plastik parçalar üzerindeki yüzüklerin kontrolü

Otomotiv sektöründe hizmet veren bir firma için yüzük kontrol sistemini devreye aldık. Sistemde 3 farklı ürün bulunmaktadır. Her bir üründe yüzüğün takılacağı yerler ve renkler farklılık göstermektedir. Bu ürünler modellenerek kontrol edilmesi istenen ürünlerin doğru veya hatalı olarak ayrıştırılması sağlanmıştır.

Operatör tarafından kullanıcı girişi yapılabilen, kontrol edilecek modelin listeden seçilebileceği ve sistemin çalıştırılması veya durdurulması gibi işlemleri içeren bir arayüz tasarlanmıştır.

Sistem, konveyör sistemi üzerinde bölmelere ayrılmış bir bandın ilerlerken mekanik sensör yardımıyla adım adım durdurulması, fotoğraf çekilmesi, bu fotoğrafın bilgisayar üzerindeki yazılım ile işlenerek ürünlerin doğru veya hatalı olarak tespit edilmesi, bu bilgilerin ekranda gösterilmesi ve farklı kovalara atılması işlemlerinden oluşmaktadır.

Kontrol edilecek ürünler farklı pozisyonlarda geleceği için bu ürünlerin ve yüzüklerin aranacağı bölgelerin modellenen ürünlere göre döndürülmesi gerekmektedir. Bu işlemi sağlayan HALCON kodu:

// Kontrol edilecek ürünün fotoğrafının okunması
read_image (Image, 'C:/Projects/M1_175740.bmp')
// Matching(Eşleştirme) için kullanılacak modelin okunması
read_shape_model ('C:/Projects/P1-N.shm', ModelId)
//  Matching(Eşleştirme) işlemi
find_shape_model (Image, ModelId, rad(0), rad(360), 0.5, 1, 0.5,['least_squares','max_deformation 2'], [7,1],0.75,ModelRow, ModelColumn, ModelAngle,ModelScore)
    if (ModelScore > 0.75)
        get_shape_model_contours (ModelContours, ModelId, 1)
        hom_mat2d_identity (HomMat)
        hom_mat2d_rotate (HomMat, ModelAngle, 0, 0, HomMat)
        hom_mat2d_translate (HomMat, ModelRow, ModelColumn, HomMat)
        affine_trans_contour_xld (ModelContours, TransContours, HomMat)
        gen_rectangle1 (ModelRegion, 396.643, 361.944, 816.643, 1134.52)
        area_center (ModelRegion, ModelRegionArea, RectificationRow, RectificationCol)
        hom_mat2d_identity (Rectification)
        hom_mat2d_translate (Rectification, RectificationRow-ModelRow, RectificationCol-ModelColumn, Rectification)
        // Ürünün döndürülmesi
        hom_mat2d_rotate (Rectification, -ModelAngle, RectificationRow, RectificationCol,Rectification)
        affine_trans_image (Image, RectifiedImage, Rectification, 'constant', 'false')
    endif

Doğru ve hatalı olarak tespit edilen ürünlerin ekran görüntüleri :

Jant Tanıma Sistemi

Boyahaneden çıkan jantların, yüzey şekillerine bakılarak tanınması ve ilgili konveyörlere yönlendirilmesi projesini, ülkemizdeki pazar lideri CMS de devreye aldık.

 

Kameranın tam altına gelen jant, sensör yardımıyla algılanır ve konveyör durdurulur. Bu esnada aydınlatma olarak kullanılan power ledler jantın yüzeyini aydınlatır. Fotoğraf çekilir ve çekilen fotoğraf üzerinde “matching” eşleştirme algoritması çalıştırılır.

“Matching” işlemi :

İlk önce jantın konturları (contour) çıkartılır. Konturların düzgün olarak çıkartılabilmesi çok önemlidir. Bunun için konveyör zemini ışığı yansıtmayacak siyah malzeme seçilmiştir. Kırmızı ışık, jantın içe doğru girintilerinde köşe çizgisi oluşturmayacak şekilde kontrast oluşturmalı,  yüzeyi düzgün aydınlatmalı ve tüm yüzeyde homojen olmalıdır. (Beyaz ışık ta kullanılabilir. Jantın yüzeyinin metalik beyaz olması beyaz ışığın patlamasına neden olabilir. Daha soft ve homojen bir beyaz ışık için elektronik balast kullanılmış fluoresan aydınlatma seçilebilir)

Son olarak yapılması gereken, HALCON matching komutları ile çıkartılan konturların daha önceden kaydedilmiş konturlar içinden hangisine en çok benzediğini bulmaktır. (İlgilenenler projede kullanılmış çalışan HALCON kodları için bizimle iletişime geçebilirler – info@mavis.com.tr)

Not : Gerçeklenen projede jantların göbek yüksekliğinin ölçülmesi (yüzeyi tamamen aynı fakat iç göbek yükseklikleri farklı ürünlerin ayırt edilmesi), yüzey yine tamamen aynı bijon delikleri farklı yerlerde olan ürünlerin aynı ürün olarak seçilebilmesi vb. zorluklar vardır. Üretim hızı 5-6 sn. de 1 ürün olacak şekildedir. Toplamda bir kaç yüz civarında ürün tanıtılacaktır. Yeni ürün tanıtma ve öğretme ekranı (kelimenin gerçekten de tam anlamıyla) tek tuşla yapılmaktadır. Tüm işlem sonunda belirlenen jant numarası PLC hattına (konveyöre), mürekkep püskürtmeli kod yazma makinasına (yazıcı) ve veritabanına gönderilmektedir.

Sistem bir merkezi ve ona bağlı 6 bilgisayardan oluşmaktadır. Toplam 7 bilgisayar kendi içinde bir network oluşturmuş ve soket haberleşmesi (Socket) yapmaktadırlar. na bilgisayardaki ekran görüntülerine örnekler :

 

3D Eşleştirme, Robotik

Mavis, Teknodrom firması ile başlattığı robot yönlendirme ve parça bulma yakalama ayıklama çalışmalarına yeni bir boyut ekledi. Robotun yakalayacağı parçaları öğrenebilmesi için son derece pratik bir arayüz geliştirildi.

Sistemin Çalışması

Öncelikle kameranın dış etkenlerden (değişken ışık kaynakları, gün ışığı vb.) etkilenmemesi için düzgün aydınlatılmış bir ortam oluşturulur. Bu ortam robotun çalışmasını engellemeyecek şekilde yapılmalıdır.

1. İşlem olarak, kameraya yakalayacağı parçalar öğretilir. Her parça farklı bir yerinden tutulmak istenebilir. Tutma noktası parçanın belirli köşeleri, uçları gibi daha önceden tahmin edilemeyen bir yer olabilir. Robot operatörü, parçanın ideal tutma noktasını,  kameralı görüntü işleme yazılımında bir değişiklik istemeden (programlamaya ihtiyaç olmadan) kolayca gösterebilmelidir. (Programa  tutma noktası öğretilmelidir) Programda hiç değişiklik yapılmadan son derece kolay bir arabirimde (UI) parçalar sisteme tanıtılabilmelidir. Mavis’in kendi geliştirdiği sistem bu sorunu en kolay şekilde çözmüştür.

Menüden “yeni parça öğretme” işlemi seçildiğinde, kameranın altında bulunan parçanın resmi ekranda belirir. “Öğretme İşlemine Başlamak İstiyor musunuz?” sorusuna Evet dendiğinde, interaktif bir şekilde tutma noktası kullanıcıdan alınır.

Öğretilecek parçanın en ideal parça olmasına özen gösterilir. Buna rağmen ekranda parça sınır çizgileri belirlenir ve kenar iyileştirme algoritmaları ile çapak ve pürüzler ön işlemden geçirilerek temizlenir.

Bu noktada sistem parçanın modellenmiş ve temizlenmiş halini model kodu ile kaydeder. Herhangi bir görüntü işleme programı ile (Paint, Photoshop vb.) bu modellenmiş fotoğraf üzerinde daha da hassas çalışmalar yapılabilir. (Filtreleme, yuvarlatma, kenarları düzleştirme vb.)

Üstelik, tüm bu işlemler gerçek parça resmi yerine parçanın direk CAD çizimi baz alınarak ta yapılabilir.

Program çalışma anında, öğretilen parçayı tanıyacak ve tutma noktasının koordinatlarını ve açılarını robota iletecektir.

Sistem tüm robotlarla haberleşebilecek altyapıya göre tasarlanmıştır. Testler ve uyarlamalar Teknodrom firmasında Motoman Robot kullanılarak yapılmıştır. Haberleşme olarak seri port ve dijital Input/output modülü kullanılmıştır. Ethernet haberleşme için de arayüz geliştirilmiştir. Sistem Fanuc, kuka gibi robotlar ile de çalışabilecek şekildedir. Test ve geliştirmeler; Teknodrom firmasından Emrah Hünerlitürkoğlu, Mavis firmasından Mustafa Sarı ve Hüseyin Çelik tarafından gerçekleştirilmiştir.

10/10/10

Özellikle 3D Vision alanında getirdiği sayısız yeniliklerle birlikte, 10 Ekim 2010 tarihinde HALCON 10 yayımlanmış olacak. İlk edinilen bilgilere göre; HALCON10, daha hızlı, daha az sistem kaynakları tüketen, daha gelişmiş ve daha kullanışlı bir sürüm olacak. MVTec, HALCON 10 sürümünün ilk duyurumunu 8-11 Haziran 2010 tarihinde Münih te düzenlenecek olan AUTOMATICA fuarında yapacağını açıkladı. MVTec, yeni versiyonda en çok dikkate değer geliştirmelerin 3D Vision ve Matching alanında olacağını belirtti.