Uluslararası Katılımlı 17. Makina Teorisi Sempozyumu, İzmir, 14-17 Haziran 2015 Vpython Ortaminda Farklı Topolojideki Seri Manipülatörler İçin Kinematik Model Çıkarımı E. Cosgun * İTU İstanbul Özet Bu çalışmada, seri topolojik yapıya sahip manipülatörler uzaysal vektör cebri ile ters kinematik modellemesi yapılmıştır. Ters kinematik algoritmasını test etmek için ise eşzamanlı görüntü ve yazılım çalıştırma avantajına sahip olan Vpython yazılımı kullanılmıştır. Amaç ters kinematik modellemesinin uzaysal vektör cebri ile farklı seri manipülatörler üzerine çalışma mekanizmasını ölçmek olduğundan algoritma eksik, tam ve artık manipülatörler üzerine aynı referans girişleri ve aynı örnekleme (sampling) zamanı ile simülasyon testleri yapılmıştır. Bu testler sırasında 0.01 cm hata teleronsına izin verilmiştir. Grafik çıktıları algoritmanın bu hata teleronsına uygun olduğunu göstermiştir. Anahtar kelimeler: Uzaysal Vektör Cebri, Ters kinematik,vpython Abstract In this study, we aim at obtaining inverse kinematic model of a serial manipulator using Spatial Operator Algebra. For testing the inverse kinematic algorithm, The Vpython software program which has simultaneous view and software working, is used. The aim is to measure the inverse kinematics modeling work on different serial manipulator mechanisms with Spatial Vector Algebra, The algorithm is used with the same reference inputs on the recursive, exact and nonrecursive manipulators. During the tests the permitted error tolerance is 0.01 cm. The graph plots show that the algorithm is fit for the error tolerance. Keywords: Spatial Operator Algebra, Inverse kinematic, Vpython I. Giriş 11 Bu çalışmada, Uzaysal Vektör Cebri kullanılarak seri topolojik yapıya sahip manipülatörlerin ters kinematik *ecosgun@itu.edu.tr Ters kinematik çözüme ilişkin analitik yöntemler, sembolik ya da nümerik olarak çözülebilmektedir. Sembolik çözümün en büyük dezavantajı manipülatör serbestlik derecesi artması durumlarında oluşmaktadır. Özellikle türev alma operasyonunda gittikçe karmaşık hale gelen ifadeler oluşmaktadır. Bu anlamda nümerik yöntemlerin daha avantajlı olduğu bilinmektedir. Kinematik modeli çıkartmak demek pratikte Jakobyen matrisini elde etmekle eş anlamlıdır. Denavit-Hertenberg [1] gibi literatürde bilinen ve yaygın olarak kullanılan yöntemlerle Jakobyen matrisini elde etmek, özellikle serbestlik derecesi yüksek olan manipülatörler için kolay değildir. Uzaysal vektör cebrinde ise Jakobyen matrisini sistematik ve kolay programlanabilir bir yöntemle nümerik olarak elde ederiz. Uzaysal vektör cebrinin literatürde kullanımına bakıldığında ilk olarak 1991 yılında ABD NASA nın bir merkezi olan Jet Propulsion Laboratories (JPL) de Rodriguez ve ekibi [2, 3] tarafından yapılan çalışmalarla literatüre girmiştir. Genel olarak bakıldığında bu yöntemin temeli screw theory [4] olarak bilinmektedir. Bu temelden hareketle Featerstone [5] ve Angeles [6] in çalışmaları da literatürde yerini almıştır. Uzaysal vektör cebri nin çeşitli alanlara uygulaması ağırlıklı olarak JPL de bu alanda çalışan Jain ve ekibi [7, 8, 9, 10] tarafından sürdürülmektedir. Bu teoriyi kullarak Yeşiloğlu [11] çoklu manipülatör yapılarının yardımlaşarak ortak taşıdıkları yük üzerinde çeşitli kontrol yöntemleri kullanılması için uygun dinamik modelleme algoritması geliştirilmiştir. Uzaysal vektör cebri teorisine katkı olarak Yeşiloğlu [12] kinematik yetersiz manipülatörlerin kapalı çevrim topolojide yer almaları durumunda kuvvet dağılımı problemini çözmesi olmuştur. Yazılım kısmında kullanılan Vpython, Scherer ve ekibinin [13] Rossum ve Boer in [14] 1991 de Python adıyla tanıttığı programına üç boyutlu görsel kütüphane eklediği programlama dilidir. Sands [15] çalışmasında Vpython un algoritma yapısınının vektör tabanlı oluşundan bahsedip mekanizma tekniğinde kullanılabileceğini açıklamıştır. Wochal, Cekus ve Warys 1
[16] çalışmasında Czestochowa de bulunan mobil bir robotun görselleştirilmesini yapıp program ile kontrolünü gerçekleştirmişlerdir. Python un pratik olarak literatürde kullanımı ise daha fazladır. Pedrogosa ve ekibi [17] Python kullanarak bir makine öğrenme programı gerçekleştirmiştir. Cock ve ekibi [18] çalışmasında Biopython u tanıtıp Python un hesaplamalı moleküler biyoloji için ayrıca bir modülünün bulunduğunu anlatmışlardır. II. Uzaysal Vektör Cebri Yöntemi ile Kinematik Modelleme Uzaysal vektörler 3 boyutlu açısal 3 boyutluda doğrusal hızları içeren 6 boyutlu vektörlerdir. Modelleme, bu hız vektörlerinin sabit platformdan uç işlevciye dağılımı şeklinde hesaplanır. Manipülatörün uç işlevcisi ve linklerin hız bilgileri denklem 1 de gösterilen kapalı haldeki vektör yapısında tutulur. Buradaki açısal hız bölümünün önce olma sıralığı sabit değildir. Hızın doğrusal hızlık bölümü sıralamada önceye alınırsa denklem yapılarındaki sıralamada buna göre değişmektedir. Denklem 1 de genel hız vektörünü gösteren sembolün üzerinde bulunan çift ok, hızın 6 1 boyutunda olduğunu göstermektedir. Tüm hesaplama boyunca sembol üzeri çift oklar ifadenin bu boyutta olduğunu göstermektedir. Uzaysal vektör cebrinde, link hızları ve uç işlevcinin hız bilgisine ulaşabilmek için bu modellemeyi tanımlayan üç temel matris yapısının elde edilmesi gerekmektedir. Bu matris yapıları ise denklem 2 ile denklem 4 arasında gösterilmiştir. Denklem 2, linklerin birbirlerine göre uzunluk bilgisini barındıran link propogasyon matrisidir., ifadesinin üzerinde bulunan sembol, vektörün eksi (skew) simetrik matrisidir. 0 (1), (2), Denklem 3, linklerin dönme bilgisini barındıran dönme eksen vektörüdür. Burada, ilk 3 1 lik kısım dönel eklem tipi için, son 3 1 lik kısım prizmatik eklem tipi için gerekli bilgiyi barındırmaktadır. Dönme eksen vektörü, dönme veya ötelemeye bağlı olarak güncellenen rotasyon matrisinin ilgili eklemin dönme yönü ile çarpılması ile son durum dönme eksen bilgisini göstermektedir. Denklem 4, eklemlerin açısal veya doğrusal hız bilgilerini içeren eklem hız vektörüdür. Bu denklemde n sembolü manipülatör serbestlik derecesini ifade etmektedir. Linklere ait bilgiler vektör yapılarında yerlerine yerleştirildikten sonra uzaysal vektör cebrinin recursive yapısı ile serbestlik derecesi yüksek manipülatörler için genel olarak propogasyon matris hesabı denklem 5 deki gibi elde edilir. I 0 0 0 0 0 I 0 0 0 0 I 0 0 0 I 0 0.... I 0........ I, (3) (4) 5) Denklem 5 de bulunan, ifadesi denklem 6 daki gibi hesaplanmaktadır.,,, (6) Genel dönme eksen matrisi ise denklem 7 deki gibi elde edilir. 0 0 0 0 0 0.., Eklemlerin hız bilgisini barındıran uzaysal hız vektörü denklem 8 de bulunmaktadır. Buradaki hız vektörü 6, 1 boyutundadır. (7) (8) 2
Uç işlevcinin hız matrisi, eklem hızlarıyla uç işlevcinin uzunluk bilgisini barındıran propogasyon matrisinin çarpımından elde edilir. Uç işlevciye ait propogasyon matrisi denklem 9 da bulunmaktadır. 0 0 0...., (9) Uç işlevciye ait hız matrisi, denklem 10 daki gibi elde edilir. V Hθ (10) Eklem uzayı ile kartezyen uzayı arasında bağlantı sağlayan Jakobyen matris, denklem 10 daki ifadeden görülebileceği üzere bu metod da ayrıca hesaplama işlemine gerek duyulmamaktadır. Jakobyen matris, nümerik ve sistemik bir şekilde elde edilebilmektedir. Bu durumda algoritmanın hesap yükünü azalttığından uzaysal vektör cebri gerçek zamanlı (real-time) çalışmalara uygundur. Jakobyen matris, denklem 11 deki gibi hesaplanır. (11) Çalışmanın temel amacını oluşturan ters kinematik modelleme, denklem 12 deki gibi hesaplanır. #, Jakobyen matrisin sözde tersidir. Jakobyen matrisin bir kare matris olmaması durumuna karşılık Jakobyen matrisin sözde tersi kullanılır. Sözde ters alma işlemleri için çeşitli yöntemler kullanılmaktadır. Kendi çalışmamda 6 serbestlik dereceli bir manipülatör için sözde ters işlemine gerek kalmamışken 4 ve 8 serbestlik dereceli manipülatörlerde Jacobyen matrisin sözde tersi alınmıştır. # (12) Şekil 1. Sırasıyla Eksik, Tam Ve Artık Manipülatör. Şekil 2, Altı serbestlik dereceli manipülatörün [1, 4.5, 4] m referans konumuna ters kinematik algoritmasıyla yaklaşımının göstermektedir. Şekil 3, izlenen bu yörünge sırasında uç işlevcinin konum ve yönelim bilgilerinin grafik çıktılarını göstermektedir. Şekil 2.Altı Serbestlik Dereceli Manipülatörün Referans Değer Takibi. III. Benzetim Sonuçları Ters kinematik algoritmasını test etmek için dört, altı ve sekiz serbestlik dereceli eksik, tam ve artık manipülatörler üzerine benzetim çalışmaları yapılmıştır. Gerçek bir karşılaştırma için bu üç farklı manipülatöre giriş olarak aynı referans değerleri verilmiştir. Giriş referans değeri, kullanıcı tarafından ekranda fare ile tıklanılan konumdur. Programda, referans değerine eksenlerde 0.01 cm hata teloransına izin verilmiştir. Şekil 1 de simüsyon testleri için kullanılan manipülatör modelleri bulunmaktadır. Şekil 3. Altı Serbestlik Dereceli Manipülatörün 10 Ms Örnekleme 3
Şekil 4, Sekiz serbestlik dereceli manipülatörün aynı referans konumuna ters kinematik algoritmasıyla yaklaşımının göstermektedir. Şekil 5, izlenen bu yörünge sırasında uç işlevcinin konum ve yönelim bilgilerinin grafik çıktılarını göstermektedir. Şekil 6. Dört serbestlik dereceli manipülatörün referans değer takibi. Şekil 4. Sekiz Serbestlik Dereceli Manipülatörün Referans Değer Takibi. Şekil 5. Sekiz Serbestlik Dereceli Manipülatörün 10 Ms Örnekleme Şekil 6, Dört serbestlik dereceli manipülatörün aynı referans konumuna ters kinematik algoritmasıyla yaklaşımının göstermektedir. Şekil 7, izlenen bu yörünge sırasında uç işlevcinin konum ve yönelim bilgilerinin grafik çıktılarını göstermektedir. 4 Şekil 7. Dört Serbestlik Dereceli Manipülatörün 10 Ms Örnekleme IV. Sonuçlar Uzaysal vektör cebrinin ters kinematik algoritmasını test etmek için yapılan bu çalışmada algoritma seri topolojideki üç temel manipülatör yapısı üzerine aynı referans değerleri verilerek çeşitli simülasyon testleriyle test edilmiştir. Çeşitli referans değerleri içinde yapılan simulasyon testlerinde algoritmanın eksik, tam ve artık manipülatör çeşitleri içinde robust çalıştığı, kartezyen uzayda verilen referans değerleri robotun çalışma uzayı içerisindeyse buna verilen hata referans değer sınırları içerisinde ulaşabildiği gözlenmiştir.
Kaynakça [1] Hartenberg, S. R. and Denavit, J. Kinematic synthesis of linkages. McGraw Hill, New York, 1964. [2] Gosselin, C. and Angeles, J. Singularity analysis of closed-loop kinematic chains. Robotics and Automation, IEEE, 15, 281 290, doi: 10.1109/70.56660, 1990. [3] Jain, A. Unified formulation of dynamics for serial rigid multibody systems. Journal of Guidance, Control, and Dynamics, Vol. 14, No. 3, pp. 531-542, 1991. [4] Jain, A. And Rodriguez, G. An analysis of the kinematics and dynamics of underactuated manipulators. Robotics and Automation, IEEE, 411 422, 1993. [5] Jain, A. And Rodriguez, G. Diagonalized Lagrangian robot dynamics. Robotics and Automation, IEEE, 571 584, 1995. [6] Rodriguez, G. Jain, A. and Kreutz, K. Spatial operator algebra for multibody system dynamics, The Journal of the Astronautical Sciences, vol. 40, pp. 27-50, 1992. [7] Yeşiloğlu, S. M., Temeltas, A. Dynamic Modelling of Cooperation Underactuated Manipulators for Space Manipulation. Advanced Topics, Vol. 3.No. 3, s. 325-341, ISSN: 0169-1864, 2010. [8] Yeşiloğlu, S. M.. High Performance Dynamical Modelling of Complex Topology Systems. PhD thesis, Istanbul Technical University, Turkey, 2007. [9] Scherer, D. Dubois, P. and Scherwood, B. Vpython: 3D Interactive Scientific Graphics for Students, Computer Science Engineering, 5, 56-62, 2000. [10] van Rossum, G., & de Boer, J. Interactively testing remote servers using the Python programming language. CWI Quarterly, 4 (4), 283303, 1991. [11] Sands, D. First year mechanics taught through modelling in Vpython, New Directions, 6, 47-50, doi: 10.11120, 2010. [12] Wochal, M. Cekus, D. and Warys, P. The application of VPython to visualization and control of robot, 2012. [13] Pedregosa, F. ve diğerleri. Scikit-learn: Machine Learning in Python, The Journal of Machine Learning Research, 12, 28252830, 2011. [14] Cock, P. J. At all. Biopython: Freely available Python tools for computational molecular biology and bioinformatics. Science & Mathematics, Bioinformatics, volume 25, 11, 1422-1423, 2009. [15] Sands, D. First year mechanics taught through modelling in Vpython, New Directions, 6, 47 50, doi: 10.11120, 2010. [16] Wochal, M. Cekus, D. and Warys, P. The application of VPython to visualization and control of robot, 2012. [17] Pedregosa, F. ve diğerleri. Scikit learn: Machine Learning in Python, The Journal of Machine Learning Research, 12, 2825 2830, 2011. [18] Cock, P. J. At all. Biopython: Freely available Python tools for computational molecular biology and bioinformatics. Science & Mathematics, Bioinformatics, volume 25, 11, 1422 1423, 2009. 5