Hatanın gidecek bir yeri olmalı
Bir sistemde konum hatası varsa o hatanın gidecek bir yeri olmak zorunda. Ya parça hareket edip kendini düzeltecek, ya da bir şeyler esneyecek. Üçüncü bir seçenek yok — ve eğer hiçbir şey esneyemiyorsa, esneyen şey genelde kırılan şey oluyor.
Bunu bir montaj probleminde, hiçbir teoriden haberim yokken öğrendim.
Bastırdıkça kötüleşen bir problem
Bir robot hücresinde parçanın son işi iki pime oturmaktı. Parçanın üzerinde iki delik vardı, istasyonda iki pim; delikler pimlere geçerse parça doğru oturmuş sayılıyordu. Robot parçayı vakumla tutuyordu, vakum başlıklarında da bir miktar yay payı vardı.
Sistem çoğu zaman çalışıyordu, arada bir çalışmıyordu.
İlk refleksim robotu biraz daha aşağı indirmek oldu. Parça pimin ucuna değiyor ama geçmiyorsa, biraz bastırırsam geçer diye düşündüm.
Kısmen işe yaradı. Hafif kaçık gelen parçaları oturttu. Ama kaçıklık büyüdüğünde bastırmak yardım etmedi, üstelik kuvvet plastiğe binince parçaya zarar vermeye başladım.
Elimde tuhaf bir durum vardı: çözüm küçük hatada işe yarıyor, büyük hatada zarar veriyordu. O gün bunun neden böyle olduğunu bilmiyordum.
Deneyecek bir şey kalmayınca
Bir noktada aklıma şu geldi: madem bastırınca olmuyor, hiç bastırmasam ne olur?
Robotu, parçanın deliği pimin ucuna bir santim kala duracak şekilde ayarladım ve vakumu orada kestim. Yani parçayı yerleştirmek yerine bıraktım.
Beklentim yüksek değildi. Sonuç beklediğimden çok daha iyi oldu; oturma oranı gözle görülür biçimde arttı ve sistem hattın sonuna kadar öyle kaldı. Ekipteki insanlar biraz şaşırdı ama kimse itiraz etmedi, çünkü çalışıyordu.
Neden çalıştığını ise çok sonra öğrendim.
Sürtünme kazanınca parça kilitleniyor
Pimlerin ucu koni şeklindeydi. Delik pime tam ortadan gelmese bile koninin eğimli yüzeyi parçayı yana doğru itmeye çalışır — hizalama işini yapan şey bu eğim.
Ama aynı temas noktasında bir de sürtünme var ve sürtünme, yüzeye uygulanan kuvvetle birlikte büyüyor.
İki etki birbiriyle yarışıyor: koni parçayı kaydırmak istiyor, sürtünme kaymayı engelliyor. Bastırdıkça ikisi de büyüyor ama sürtünme daha hızlı büyüyor. Bir noktadan sonra parça kaymayı bırakıp olduğu yerde sıkışıyor.
Montaj literatüründe bu durumun adı varmış: jamming. Parçanın iki noktadan sıkışıp tamamen kilitlendiği hâline ise wedging deniyor.
Bu, benim gözlemimi birebir açıklıyor. Küçük kaçıklıkta koni baskın çıkabiliyordu; büyük kaçıklıkta sürtünme kazanıyor ve uyguladığım kuvvetin gideceği tek yer plastiğin kendisi kalıyordu.
Bıraktığımda ise temas kuvveti parçanın kendi ağırlığından ibaret. Sürtünme küçük kalıyor, koni yüzeyi kazanabiliyor, parça kayıp yerine oturuyor. Yani ihtiyacım olan şey daha fazla kuvvet değil, daha azıymış.
Robot, parçayı tutarken serbestliğini de tutuyor
İkinci bir sebep daha var.
Robot parçayı tuttuğu sürece parçanın nasıl duracağını da belirliyor ve robot, koninin eğimli yüzeyinden kıyaslanamayacak kadar sert. Dolayısıyla bir uyuşmazlık çıktığında bu uyuşmazlık parçanın yerini düzeltmeye değil, bir yerlerin esnemesine gidiyor. Esneyen taraf da genelde en zayıf halka oluyor — bu durumda plastik parça.
Vakumu kestiğin anda parçaya serbestliğini geri veriyorsun. Artık dönebiliyor, kayabiliyor, kendini bulabiliyor.
Buradan bakınca vakum yayının beni neden kurtarmadığı da anlaşılıyor. O yay dikey yönde esneklik veriyordu, benim ihtiyacım olan esneklik ise yanal ve açısal yöndeydi. Sistemde esneklik vardı, sadece yanlış eksende.
Bunun bir adı varmış
Sonradan öğrendiğim şey şu: bir sistemin konum hatasını mekanik olarak yutabilmesine compliance deniyor.
Hatta tam bu problem için üretilmiş bir bileşen bile var — RCC, yani Remote Center Compliance. Robot ile parça arasına takılıyor ve tam olarak ihtiyaç duyulan yönlerde, yanal ve açısal, esneklik sağlıyor. Fikir 1970’lere, Draper Laboratory’deki delik-pim montajı çalışmalarına dayanıyor. Yani benim çaresizlikten bulduğum şeyin yarım asırlık bir literatürü varmış.
Aynı fikrin başka kılıkları
Asıl ilginç olan kısım şu: adını öğrendikten sonra bu fikri her yerde görmeye başladım. Birkaç örnek:
Şamfren. Elindeki her cıvatanın ucu koniktir. Her delikte, her konnektörde giriş ağzı hafif genişletilmiştir. USB kablosunu prize sokarken hissettiğin o hafif kılavuzlanma da aynı şey. Bu, montajdaki en yaygın compliance biçimi ve o kadar sıradan ki kimse üzerinde durmuyor.
Elmas pim. Bir parçayı iki pimle konumlandırırken pimlerden birini yuvarlak, diğerini elmas biçiminde yaparlar. Yuvarlak olan konumu belirler, elmas olan dönmeyi engeller ama parçadaki delik mesafesi biraz sapsa bile sıkışmaya izin vermez. Yani ikinci pim bilerek “eksik” tutulur. Aynı mantık, üretim fikstürlerindeki 3-2-1 konumlandırma ilkesinin de temeli: parçayı gereğinden fazla kısıtlamamak.
Kinematik bağlama. Optikte bir aynayı üç noktadan, tam altı serbestlik derecesini kısıtlayacak şekilde bağlarlar. Dört noktadan bağlarsan daha sağlam olacağını düşünürsün ama olmaz — fazla kısıt, sıcaklık değişince aynayı büker.
Tren tekerleği. Tekerlek yüzeyi düz değil, hafif koniktir. Tren raya göre biraz kayarsa koniklik onu kendiliğinden ortalar. Hiçbir sensör, hiçbir kontrol döngüsü yok; sadece geometri.
Titreşimli besleyiciler. Parçaları doğru yöne çevirmek için kamera ve robot kullanmak yerine, hazneye yanlış duran parçayı eleyip geri düşüren basit metal engeller koyarlar. Ölçmek yerine, yanlış olanı fiziksel olarak imkânsız kılmak.
Kuvvet kontrollü arama. Modern robotlarda kuvvet-tork sensörü varsa, parçayı deliğe sokarken küçük bir spiral hareket yaptırıp temas kuvvetini izlerler. Kuvvet düştüğü anda delik bulunmuş demektir. Bu, compliance’ın yazılımla yapılan hâli.
Listeye bakınca ortak bir örüntü çıkıyor: bu çözümlerin hiçbiri hatayı ölçmüyor. Hepsi hatanın var olduğunu kabul edip, sistemin onu soğurmasını sağlıyor.
Fazla kısıt, sanıldığı kadar iyi bir şey değil
Buradan çıkan genel fikir sanırım şu: bir sistemi ne kadar sıkı kısıtlarsan, hata çıktığında o hatanın gidecek yeri o kadar azalıyor.
Sert bir sistemde küçük bir konum hatası gerilime dönüşüyor. Esnek bir sistemde ise harekete dönüşüyor — yani kendini düzeltiyor.
Bir montaj probleminde hata bütçesi ölçüm ile mekanik arasında paylaşılıyor. Ölçümden kazanamadığın toleransı mekanikten kazanabiliyorsun ve bazen mekanik taraf kıyaslanamayacak kadar ucuza geliyor.
Peki neden aklıma gelmedi
Geriye dönüp baktığımda bir santimlik bir yükseklik ayarı çok basit görünüyor. Ama o sırada basit görünmüyordu, çünkü problem tek başına durmuyordu.
Devreye alma sırasında aynı anda kamera, kalibrasyon, robot pozisyonları, ışık, parça varyasyonu ve çevrim süresi ile uğraşıyorsun; her biri şüpheli. Ben de günlerimi ölçüm tarafını iyileştirmeye harcamıştım — kamerayı düzeltmek, kalibrasyonu yenilemek, hata haritası çıkarmak.
Sonuca en çok katkı yapan değişiklik ise ölçümle hiç ilgili olmayan bir şey oldu.
Bunun sebebi galiba biraz da mesleki alışkanlık. Yazılım tarafında çalışıyorsan problemi yazılımla çözmeye çalışıyorsun; ölçüm hatası görüyorsan ölçümü düzeltmeye uğraşıyorsun. Mekaniğe dokunmak ya aklına gelmiyor ya da “o benim alanım değil” diye kenara konuyor.
Her yerde işe yaramıyor
Bunu genel bir reçete gibi anlatmak istemem.
Parçayı bırakabilmen için parçanın kendi ağırlığının hizalanmayı sağlamaya yetmesi gerekiyor; hafif parçalarda çalışmaz. Yapışkan ya da sürtünmesi yüksek yüzeylerde de zorlanır.
Bırakma yüksekliğinin de bir sınırı var. Bir santim işe yaradı, beş santim olsaydı parça büyük ihtimalle sekerdi. “Bırak” demek “yüksekten at” demek değil.
Sıkı geçmeli, hassas oturması gereken bağlantılarda ise bu yaklaşım tamamen geçersiz. Orada gerçekten konum hassasiyeti gerekiyor.
Kendime not
Bu, dört yıllık çalışma hayatımın ikinci yılında yaşadığım bir şeydi ve bende bir soru bıraktı. Artık bir montaj problemine bakarken şunu da soruyorum: bu hatayı ölçerek mi çözmem gerekiyor, yoksa sistemin hatayı yutmasını mı sağlamalıyım?
Cevap her zaman ikincisi değil. Ama soruyu hiç sormamak, benim yaptığım gibi, insanı uzun yollara sokabiliyor.