Redundant Robots - Prof. Dr. E. Şahin Çonkur
Transkript
Redundant Robots - Prof. Dr. E. Şahin Çonkur
11. ULUSAL MAKİNA TEORİSİ SEMPOZYUMU Gazi Üniversitesi, Mühendislik-Mimarlık Fakültesi, 4-6 Eylül 2003 GEREĞİNDEN ÇOK SERBESTLİK DERECELİ ROBOT KOLLARININ YÖRÜNGE PLANLAMASI İÇİN GELİŞTİRİLMİŞ BİR YAZILIM Erdinç Şahin ÇONKUR Pamukkale Üniversitesi, Mühendislik Fakültesi, Makine Mühendisliği Bölümü, Çamlık 20017, DENİZLİ, sconkur@pamukkale.edu.tr ÖZET Gereğinden çok serbestlik dereceli robot kolları (redundant manipulators) değişkenlerine sonsuz sayıda çözüm üretebilen robot kolları olarak tanımlanır. Bu tip robot kollarının kinematik kontrolü için gerekli hareket planlama algoritmaları yoğun bir araştırma konusudur. Amaç robotun bir hedef noktaya ulaşması olarak verildiğinde, uzuvlar için uygun yörüngeleri hesaplamak yörünge planlaması (path planning) olarak isimlendirilir. Bu bildiride, potansiyel alan metodunu kullanarak yörünge planlaması yapan C++’da Windows ortamı için geliştirilmiş bir yazılım tanıtılacaktır. Bu yazılımın en önemli özellikleri, engellerin ve robotların ekrana çizilmesi, potansiyel alanın iki ve üç boyutlu görüntülerinin elde edilmesi ve robotların hedefe varmasının gözlemlenmesidir. Anahtar Kelimeler: Gereğinden çok serbestlik dereceli robot kolları, yörünge planlaması, potansiyel alan metodu A PIECE OF SOFTWARE DEVELOPED FOR PATH PLANNING OF REDUNDANT ROBOTS ABSTRACT Redundant manipulators are defined as having an infinite number of solutions to their joint variables. Motion planning algorithms for the kinematic control of this kind of robotic arms are the subject of extensive research. When the task is given as a point that the robot is to reach, computing a feasible joint path sequence is called path planning. In this presentation, a piece of software developed in C++ for Windows platforms is introduced, which performs the path planning of redundant robots using the potential field method. The most important features of the software are to draw obstacles and robots on the screen, to obtain two and three dimensional images of the potential field and to observe robots reaching the goal. Keywords: Redundant robots, path planning, potential field method (redundancy resolution) denir. Amaç bir hedef noktaya ulaşmak olarak verildiğinde, uzuvlar için uygun yörüngeleri hesaplamak yörünge planlaması (path planning) olarak isimlendirilir [2]. 1. GİRİŞ Standart sanayi robotlarının en fazla sahip olabileceği serbestlik derecesi altıdır. Sınırlı sayıdaki serbestlik derecesinin sebep olduğu çok sayıda problem vardır. Bunlardan biri, robotun çalışma alanının bir kısmının tekillikler yüzünden kullanılamamasıdır. Bir diğeri ise ters kinematiği için sınırlı sayıda çözüm olmasından dolayı, robotun her zaman çalışma alanında engellerden kaçınacak şekilde kendini ayarlayamamasıdır. Gereğinden çok serbestlik dereceli robot kolları ise engellerden kaçınacak tarzda kollarını istediği gibi ayarlayabilir. Böylece her türlü karışık ortama uyum sağlayabilmesi ve girilmesi zor bölgelere rahatlıkla girmesi mümkündür [1]. Potansiyel alan metodu yörünge planlaması için kullanılan önemli metotlardan biridir [3]. Bu metottaki temel prensip çalışma alanının suni potansiyel kuvvetler etkisinde olduğunun düşünülmesidir. Bu alandaki engeller itme etkisi verirken, hedef noktası çekme etkisi oluşturur. Çalışma alanında herhangi bir engelden dolayı oluşan herhangi bir noktadaki kuvvet, bu iki etkinin toplamı olarak bulunur. Daha sonra bu kuvvet robot kontrolü için kullanılır. Buradaki en önemli problem potansiyel alan metodunun yerel minimumlara sahip olmasıdır. Yani robot hedefe varmadan, hedefe varmış gibi bu yerel minimumlardan birinde takılıp kalır. Bu soruna bulunan çözümlerden biri, belki de en etkilisi, yerel minimumu olmayan potansiyel alanlar oluşturmaktır [4]. Gereğinden çok serbestlik dereceli robot kolları için gerekli kinematik hareket planlama algoritmaları iki ana bölümde incelenir. Robot işlem elemanın uç noktasının hareket edeceği yörünge çalışma alanında verilmişse, buna uyan eklem değişkenlerinin hesabına gereğinden çok eklemli çözümleme 1 Çonkur robot boyunun hedefe ulaşamayacak kadar kısa olduğu anlamına gelir. Bu bildiride, yörünge planlaması için C++’da Windows ortamı için geliştirilmiş bir yazılım tanıtılacaktır. Yazılımda, yörünge planlaması metodu olarak potansiyel alan metodu kullanılmıştır. Kullanımı çok kolay olan bu yazılımda, engeller ve robotlar ekrana çizilir ve robotun hedefe varması gözlemlenir. Ayrıca potansiyel alanın iki ve üç boyutlu görüntüleri bir fare tıklamasıyla elde edilebilir. Potansiyel Alan Değerleri Kontrol Noktası 1 Uzuv 2 2. TEORİ Dirichlet sınır şartları artında Laplace denklemiyle tanımlanan bir skaler potansiyel alan aşağıdaki denklemle verilir [5]. ∇2Φ = 0 A Şekil 1. Robotun bir uzvu üzerindeki kontrol noktası Bir nokta robot için herhangi bir alan çizgisi, herhangi bir noktadan engellere çarpmadan hedef noktasına varmayı garantiler. Rijit uzuvlardan oluşan seri robot kolları için ise bu garanti yoktur. Özellikle keskin manevra gerektiren hallerde robot uzuvları engellerle çarpışabilir. Bu çarpışmanın engellenmesi önemli bir araştırma konusudur. (1) Bu denklem kapalı ve sürekli bir Ω bölgesinde geçerlidir. Ω bölgesinin sınırları olan δΩ, engellerin tamamından ve hedef noktasından oluşur. Çalışma alanı üzerine iki boyutta eşit olarak dağıtılmış kapalı ve birleşik bir ızgara yerleştirilir. (1) denklemi bu ızgarada aşağıdaki kısmi diferansiyel denklem ile temsil edilebilir. Φ (i, j) = 1 4 ( Φ ( i + 1, j ) + Φ ( i −1, j ) + Φ ( i , j + 1 ) + Φ ( i , j −1 ) ) 3. YÖRÜNGE PLANLAMA YAZILIMI Önceden de bahsedildiği gibi bu yazılımın amacı gereğinden çok serbestlik dereceli robot kollarını yörünge planlamasını Windows ortamında yapmaktır. Çok az bir tecrübe ile kullanılabilen bu yazılım ile, engeller ve robot ekrana kolaylıkla çizilebilir ve hemen çalıştırılabilir. (2) Burada i, ızgarada x doğrultusundaki, j, ızgarada y doğrultusundaki pozisyonu göstermektedir. Programda bulunan bütün komutlar menülere yerleştirilmiştir. Bu menülerin tanıtımı bir sonraki bölümde yapılacaktır. Hedef noktasına bilgisayarın alabileceği en küçük değer, engel sınırlarına da sıfır değeri verilerek tekrarlı işlemle ızgara üzerindeki her noktanın değeri hesaplanır. Böylece alan içinde bütün ızgara noktalarındaki alan değerleri elde edilir. Izgara noktaları arasında kalan herhangi bir noktadaki alan değeri lineer interpolasyon ile bulunur. Oluşturulan potansiyel alan kullanılarak robotun hareket planlaması aşağıdaki gibi yapılır. 4. MENÜLERİN TANITIMI Bu menülerden File ve Edit menüleri Save ve Print gibi standart komutları içerir. Robot ve engeller daha sonraki kullanımlar için kaydedilebilir, çalışma alanının yazıcıdan çıktısı alınabilir. Settings menüsünde Şekil 2’de görüldüğü gibi çalışma düzeni, robot, hedef ve alan ile ilgili ayarlar yer alır. İstenildiğinde bu ayarlar değiştirilerek farklı çalışma şartları oluşturmak mümkündür. Robot uzuvları üzerinde kontrol noktaları tespit edilir. Bir uzuvdaki kontrol noktalarının iki tarafındaki alan değerlerinin farkı, o uzvun hangi yönde döneceğini belirler [4]. Örneğin Şekil 1’de bir robot kolunun üzerinde tek bir kontrol noktası olan ilk uzvu görülmektedir. Bu kontrol noktasının iki tarafındaki 1 ve 2 nolu noktalardaki alan değerlerinin farkının negatif olduğunu kabul edelim. Bu durumda bu uzuv A noktası etrafında saat yönünde dönecektir. Robot, bu fark işaret değiştirinceye kadar, sabit bir açı değeriyle hareket ettirilir. İşaret değiştirmek demek o uzvun yerleştiği, yani engeller arasında hedefe yöneldiği anlamına gelir. Daha sonra bir sonraki uzuv yukarıdaki gibi hareket ettirilir. Tabii, bir sonraki uzuv her hareket ettiğinde, ilk uzuv da hareket edeceğinden onu tekrar yerleşik hale getirmek gerekir. Bu şekilde bütün uzuvlar her bir hareket sonrasında kontrol edilir. Hedefe varıldığında robot durur. Robotun bütün uzuvları hedefe ulaşmadan yerleşik hale gelirse, bu, Şekil 2. Settings Menüsü 2 Gereğinden Çok Serbestlik Dereceli Robot Kollarının Yörünge Planlaması İçin Geliştirilmiş Bir Yazılım Draw menüsünde, kullanıcı tarafından ekrana çizilebilen geometrik şekil seçenekleri vardır (Şekil 3). Basit geometrik şekillerle ifade edilebilen engeller, bu menüde yer alan Line, Rect, Round Rectangle ve Ellipse komutlarıyla çizilir. Daha karışık sınırları olan engeller için ise Polygon seçeneği kullanılabilir. Bu menünün en alt sırasında, robotu ekranda çizmeye yarayan Arm Robot komutu vardır. Şekil 4. Simulate Menüsü View menüsünde bulunan en önemli komutlar, ekrandaki alanın büyük veya küçük olarak görüntülenmesini sağlayan Shrink View komutu ve ızgara çizgilerinin çizilip çizememesini belirleyen Grid Lines komutudur (Şekil 5). Şekil 3. Draw Menüsü Şekillerde gösterilmeyen Object menüsünde iki komut vardır. Bu komutlarla, engellerin sınır çizgi ve dolgu renkleri ayrı ayrı belirlenebilir. Ekrana engeller ve robot çizildikten sonra sıra robotun çalıştırılması ile ilgili komutları içeren Simulate menüsüne gelir (Şekil 4). Önce Find Obstacles ile ekrana çizilen geometrik şekiller alan hesaplanmasında kullanılmak üzere engel haline çevrilir. Iterate komutu ile potansiyel alan hesaplanır. Draw field ile potansiyel alan ekrana çizilir. Eğer alan hızlı fakat daha az hassas olarak çizilmek istenirse Draw Fast kullanılır. Plot 3D komutuyla potansiyel alanın üç boyutlu görüntüsü elde edilir. Field Ready komutu yukarıda bahsedilen Find Obstacles ve Iterate komutlarını arka arkaya çalıştırmaya yarar. Şekil 5. View Menüsü Menülerde çok kullanılan komutlar Şekil 6’de görülen araç çubuklarına yerleştirilmiştir. Herhangi bir ikonun üzerine fareyle gelindiğinde, ikonun çalıştıracağı komutun menülerde olan ismi ortaya çıkar. Böylece hangi ikonun ne işe yaradığı kolayca anlaşılır. Start komutu robotun hareketini başlatır. Bu komutta, art arda olan işlemler bir zamanlayıcı kullanılarak yapılır. Zamanlayıcının değeri 1 ms gibi çok küçük bir değere ayarlansa bile robot hareketi çok yavaş kalmaktadır. Bunun bir sebebi bilgisayarın bu kadar kısa bir zaman aralığını sağlayacak donanıma sahip olmamasıdır. Bu problem, hareketle ilgili işlemler için zamanlayıcı yerine bir for döngüsü kullanarak çözülebilir. Start Fast komutu işte bu işi yapar, yani daha hızlı robot hareketleri üretir. Draw Araç Çubuğu Restart komutu, robotun ilk durumuna getirilmesini sağlayarak, hedefe ulaşma işleminin tekrar tekrar yapılabilmesine olanak verir. Son olarak, Path komutu ise kollu robotun temelinden hedef noktasına mobil robotlar için yol bulmak ve bu yolu ekrana çizmek için kullanılır. Simulate Araç Çubuğu Settings Araç Çubuğu Şekil 6. Araç Çubukları 3 Çonkur Şekil 7b, robotlar Start Fast komutuyla harekete başladıktan bir süre sonraki bir anda çalışma alanını, Şekil 7c ise çalışma alanındaki son durumu göstermektedir. Şekillerden de görüldüğü gibi, sol taraftaki iki robot engellere hedefe ulaşmıştır. Sağ üst köşedeki robot ise en uzun halini aldığı halde boyu yetmediği için hedefe varamamıştır. 5. ÖRNEK Şekil 7a’da görülen çalışma alanı içine Draw araç çubuğunu kullanarak değişik geometrik şekillere sahip engeller çizilmiştir. Çalışma alanının değişik yerlerinde görülen üç adet robot Arm Robot komutu kullanılarak çizilmiştir. Sol alt köşedeki küçük daire ise hedef noktasını göstermektedir. Şekil 7a. Çalışma alanı, hedef, engeller ve robotlar Şekil 7b. Robotlar hareket ettikten sonraki bir an 4 Gereğinden Çok Serbestlik Dereceli Robot Kollarının Yörünge Planlaması İçin Geliştirilmiş Bir Yazılım Şekil 7c. Robotlar son konumları yükselti eğrilerine benzer. Bir farkla ki, burada hedef noktası en düşük değere sahiptir. Hedef noktasının etrafındaki ilk halka bir üst değer grubunu, sonraki halka bu halkadan sonraki bir üst değer grubunu gösterir. Bu şekilde birkaç kademe gidilir. Draw field komutunu kullanarak, bu örnek için oluşturulan potansiyel alanın hedef etrafındaki kısmını çizmek mümkündür (Şekil 8). Bu şekilde, belli aralıklardaki potansiyel alan değerleri, belli renklerle gösterilir. Potansiyel alanı gösteren eğriler, haritalarda yükseklikleri gösteren eş- Şekil 8. Hedef etrafında oluşturulan potansiyel alan potansiyel alan değerleri kullanarak o şekilde oluşturulmaktadır ki, hedef dışındaki herhangi bir noktadan örneğin bir futbol topu serbest bırakılsa, bu top yuvarlanarak daima hedef noktasının içine düşer. Fakat Şekil 8’deki iki boyutlu görüntüyü zihinde canlandırmaya gerek yoktur. Çünkü, Şekil 9’da görülen Plot 3D komutu ile, aynı alanın üç boyutlu görüntüsü elde edilebilir. Bu görüntü, 5 Çonkur Şekil 9. Potansiyel alanın 3 boyutlu görüntüsü Robot harekete başlamadan hemen önce, iterasyon için harcanan zaman, çalışma alanının hemen sağındaki boş bölgede gösterilir. Buradaki örnekte iterasyon zamanı 1 s’den az olduğu için 00 sec ile gösterilmiştir (Şekil 10). 7. KAYNAKLAR 1. Zghal, H., Dubey R. V. ve Euler J. A., “Collision avoidance of a multiple degree of redundancy manipulators operating through a window”, Journal of Dynamic Systems, Measurement and Control, Sayı:114, 1992, pp. 717-721. Bilgi ekranında ayrıca robotların hedefe ulaşıp ulaşmadığı ve ulaşanların ne kadar zaman harcadığı Şekil 10’da görüldüğü gibi iterasyon zamanının hemen altında sırayla raporlanır. 2. Seereera, S. ve Wen J. T., “A global approach to path planning for redundant manipulators”, IEEE Transactions on Robotics and Automation, Cilt: 11, Sayı: 1, 1995, pp. 152159. 3. Khatib, O., “Real-time obstacle avoidance for manipulators and mobile robots”. The International Journal of Robotics Research, Cilt: 5, Sayı: 1, 1986, pp. 90-98. 4. Graham A. ve Buckingham R., “Real time collision avoidance of manipulators with multiple redundancy”, Mechatronics, Cilt: 3, Sayı: 1, 1993, pp. 89-106. Şekil 10. İterasyon ve robotların durumlarıyla ilgili bilgi ekranı 5. Connolly C. I., Grupen R. A., “The applications of harmonic functions to robotics”, Journal of Robotic Systems, Cilt: 10, Sayı: 7, 1993, pp. 931-946. 6. SONUÇ Bu bildiride, potansiyel alan metodu kullanarak gereğinden çok serbestlik dereceli robot kolları için yörünge planlaması yapan C++’da Windows ortamı için geliştirilmiş bir yazılım tanıtılmıştır. Verilen örnekte de görüldüğü gibi, kullanımı oldukça kolay olan bu yazılım ile çok kısa bir zaman içinde istenilen bir yörünge planlaması senaryosu uygulamaya konulabilir. Engelleri ve robotları ekrana çizmek ve robotları çalıştırmak birkaç fare hareketiyle yapılabilmekte, potansiyel alanın iki ve üç boyutlu görüntüleri gibi bir çok ek bilgi de yine kolaylıkla elde edilebilmektedir. 6