Ters kinematik - Inverse kinematics

İleri ve Ters Kinematik

İçinde bilgisayar animasyonu ve robotik, ters kinematik değişken eklem parametrelerini hesaplamanın matematiksel işlemidir. kinematik zincir, örneğin bir robot manipülatörü veya animasyon karakterinin iskeleti zincirin başlangıcına göre belirli bir pozisyon ve oryantasyonda. Verilen ortak parametreler, zincirin sonunun konumu ve yönü, ör. Karakterin veya robotun eli, tipik olarak, trigonometrik formüllerin birden fazla uygulaması kullanılarak doğrudan hesaplanabilir. ileri kinematik. Bununla birlikte, tersi işlem genel olarak çok daha zordur.[1]

Ters kinematik, dünyadaki bir nesnenin hareketlerini diğer bazı verilerden kurtarmak için de kullanılır, örneğin bu hareketlerin bir filmi veya bu hareketleri kendisi yapan bir kamera tarafından görülen dünyanın bir filmi. Bu, örneğin, bir insan aktörün filme alınan hareketlerinin animasyonlu bir karakterle çoğaltılmış.

Robotik

Robotikte ters kinematik, kinematik robotun her biri için istenen konfigürasyonu (konum ve dönüş) sağlayan eklem parametrelerini belirlemek için denklemler son efektörler.[2] Bir robotun hareketinin belirlenmesi, böylece uç efektörlerinin bir başlangıç ​​konfigürasyonundan istenen konfigürasyona geçmesi olarak bilinir. hareket planlama. Ters kinematik, hareket planını ekleme dönüştürür aktüatör robot için yörüngeler. Benzer formüller, bir iskeletin iskeletinin konumlarını belirler. animasyonlu karakter yani bir filmde veya bir film sahnesini çeken kameranın bulunduğu araba veya tekne gibi bir araçta belirli bir şekilde hareket etmektir. Bir aracın hareketleri bilindikten sonra, binalar gibi peyzajdaki nesnelerin bilgisayar tarafından oluşturulan görüntüleri için sürekli değişen bakış açısını belirlemek için kullanılabilirler, böylece bu nesneler değişir. perspektif Araçtan taşınan kamera yanlarından geçerken hareket etmiyormuş gibi görünürken.

Bir hareket kinematik zincir ister robot ister animasyonlu bir karakter olsun, zincirin kinematik denklemleri ile modellenir. Bu denklemler, zincirin konfigürasyonunu ortak parametreleri açısından tanımlar. İleri kinematik zincirin konfigürasyonunu hesaplamak için ortak parametreleri kullanır ve ters kinematik, istenen konfigürasyonu sağlayan eklem parametrelerini belirlemek için bu hesaplamayı tersine çevirir.[3][4][5]

Kinematik analiz

Kinematik bir zincir olarak insan iskeletinin bir modeli, ters kinematik kullanarak konumlandırmaya izin verir.

Kinematik analiz, çoğu endüstriyel robotun tasarımındaki ilk adımlardan biridir. Kinematik analiz, tasarımcının mekanik sistem içindeki her bir bileşenin konumu hakkında bilgi edinmesini sağlar. Bu bilgi, kontrol yolları ile birlikte müteakip dinamik analiz için gereklidir.

Ters kinematik, katı cisimlerden oluşan kısıtlı bir sistemin kinematik analizinin bir örneğidir veya kinematik zincir. kinematik denklemler Bir robotun, karmaşık bir eklemli sistemin döngü denklemlerini tanımlamak için kullanılabilir. Bu döngü denklemleri, sistemin konfigürasyon parametreleri üzerindeki doğrusal olmayan kısıtlamalardır. Bu denklemlerdeki bağımsız parametreler olarak bilinir özgürlük derecesi sistemin.

Ters kinematik problemine yönelik analitik çözümler çok çeşitli kinematik zincirler için mevcutken, bilgisayar modelleme ve animasyon araçları genellikle Newton yöntemi doğrusal olmayan kinematik denklemlerini çözmek.

Ters kinematik algoritmaların diğer uygulamaları şunları içerir: etkileşimli manipülasyon, animasyon kontrolü ve çarpışmadan kaçınma.

Ters kinematik ve 3B animasyon

Ters kinematik, oyun programlama ve 3D animasyon bağlanmak için kullanıldığı yer oyun karakterleri toprağın üstüne sıkıca inen ayaklar gibi fiziksel olarak dünyaya (bkz. [6] kapsamlı bir anket için Bilgisayar Grafiklerinde kullanılan ters Kinematik yöntemleri ).

Animasyonlu bir figür, eklemlere bağlı sert parçalardan oluşan bir iskelet ile modellenmiştir. kinematik zincir. Şeklin kinematik denklemleri, şeklin eklem açıları ile pozu veya konfigürasyonu arasındaki ilişkiyi tanımlar. ileri kinematik animasyon problem, eklem açıları verilen pozu belirlemek için kinematik denklemlerini kullanır. ters kinematik problemi figürün istenen bir pozu için eklem açılarını hesaplar.

Bilgisayar tabanlı tasarımcılar, sanatçılar ve animatörler için eklem açılarını doğrudan manipüle etmek yerine, bir montajın veya şeklin uzamsal konfigürasyonunu hareketli parçalarla veya kollar ve bacaklarla tanımlamaları genellikle daha kolaydır. Bu nedenle, bilgisayar destekli tasarım sistemlerinde montajları canlandırmak için ters kinematik, bilgisayar tabanlı sanatçılar ve animatörler tarafından figürleri ve karakterleri konumlandırmak için kullanılır.

Montaj, montaj ilişkileri veya geometrik kısıtlamalar olarak tanımlanan eklemlerle birbirine bağlanan sert bağlantılar olarak modellenir. Bir elemanın hareketi, diğer elemanlar için eklem açılarının hesaplanmasını gerektirir. ortak kısıtlamalar. Örneğin, ters kinematik, bir sanatçının bir 3D insan modelinin elini istenen bir konuma ve yöne hareket ettirmesine ve bilek, dirsek ve omuz eklemlerinin uygun açılarını seçen bir algoritmaya sahip olmasına izin verir. Başarılı bir bilgisayar uygulaması animasyon genellikle rakamın makul ölçülerde hareket etmesini gerektirir antropomorfik sınırları.

Bir karakterin canlandırılması için hem ileri hem de ters kinematiği karşılaştırmanın bir yöntemi, her birine özgü avantajlarla tanımlanabilir. Örneğin, büyük hareket yaylarının kullanıldığı engelleme animasyonu genellikle ileri kinematikte daha avantajlıdır. Bununla birlikte, hedef son efektörün diğer modellere göre daha hassas animasyonu ve konumlandırılması, ters kinematik kullanılarak daha kolay olabilir. Modern dijital oluşturma paketleri (DCC), modellere hem ileri hem de ters kinematik uygulama yöntemleri sunar.

Ters kinematiğe analitik çözümler

Hepsinde olmasa da bazı durumlarda ters kinematik problemlere analitik çözümler vardır. Böyle bir örnek, 3 boyutlu uzayda hareket eden (3 konum serbestlik derecesi ve 3 dönme serbestlik derecesi ile) 6-DoF robotu (örneğin, 6 döner eklem) içindir. Robotun serbestlik derecesi, son efektörün serbestlik derecesini aşarsa, örneğin 7 döner mafsallı 7 DoF robotu ile, o zaman IK problemine sonsuz sayıda çözüm vardır ve analitik bir çözüm mevcut değildir. Bu örneği daha da genişleterek, bir eklemi sabitlemek ve diğer eklemler için analitik olarak çözmek mümkündür, ancak sayısal yöntemlerle (sonraki bölüm) belki de daha iyi bir çözüm sunulur ve bunun yerine ek tercihler (optimizasyon problemindeki maliyetler) verilen bir çözümü optimize edebilir ).

Ters kinematik problemine analitik bir çözüm, son efektör pozunu girdi olarak alan ve çıktı olarak eklem pozisyonları veren kapalı formlu bir ifadedir. . Analitik ters kinematik çözücüler, sayısal çözücülerden önemli ölçüde daha hızlı olabilir ve birden fazla çözüm sağlayabilir, ancak belirli bir son efektör pozu için yalnızca sınırlı sayıda çözüm sağlayabilir.

IKFast açık kaynaklı program, en yaygın robot manipülatörlerinin eksiksiz analitik çözümlerini çözebilir ve bunlar için C ++ kodu oluşturabilir. Oluşturulan çözücüler, dejenere durumların çoğunu kapsar ve son bilgisayarlarda mikrosaniyeler içinde tamamlanabilir.[tanıtım dili ]. Bu çözücülerle ilgili bir sorun, iki bitişik konfigürasyon arasında yerel olarak düzgün çözümler vermediklerinin bilinmesidir; bu, ters kinematik için yinelemeli çözümler gerekirse, örneğin IK yüksek hızlı bir kontrol döngüsü içinde çözülürse, kararsızlığa neden olabilir. .

IK sorunlarına sayısal çözümler

Ters kinematik problemlerini modellemenin ve çözmenin birçok yöntemi vardır. Bu yöntemlerden en esnek olanı, genellikle yinelemeli optimizasyon İleri kinematik denklemini tersine çevirmenin zorluğu ve boş bir olasılık nedeniyle yaklaşık bir çözüm aramak çözüm alanı. Bu yöntemlerden birkaçının arkasındaki temel fikir, ileri kinematik denklemini bir Taylor serisi tersine çevirmek ve çözmek orijinal sistemden daha basit olabilen genişleme.

Jacobian ters tekniği

Jacobian ters teknik, ters kinematiği uygulamanın basit ama etkili bir yoludur. Orada olsun ileri kinematik denklemini yöneten değişkenler, yani konum fonksiyonu. Bu değişkenler ortak açılar, uzunluklar veya diğer keyfi gerçek değerler olabilir. IK sistemi 3 boyutlu bir alanda yaşıyorsa, konum işlevi bir eşleme olarak görüntülenebilir . İzin Vermek sistemin başlangıç ​​konumunu verin ve

sistemin hedef konumu olun. Jacobian ters tekniği yinelemeli olarak bir tahmini hesaplar tarafından verilen hatayı en aza indiren .

Küçük için -vektörler, pozisyon fonksiyonunun seri genişlemesi verir

,

nerede (3 × m) Jacobian matrisi pozisyon fonksiyonunun .

Jacobian matrisinin (i, k) -th girişinin sayısal olarak yaklaşık olarak tahmin edilebileceğine dikkat edin.

,

nerede konum fonksiyonunun i-inci bileşenini verir, basitçe k'inci bileşenine küçük bir delta eklenmiş ve oldukça küçük bir pozitif değerdir.

Almak Moore-Penrose sözde ters Jacobian'ın (bir tekil değer ayrışımı ) ve terimlerin yeniden düzenlenmesi,

,

nerede .

Ters Jacobian yöntemini bir kez uygulamak, istenen değerin çok kaba bir tahminiyle sonuçlanacaktır. -vektör. Bir satır arama bunu ölçeklendirmek için kullanılmalı kabul edilebilir bir değere. İçin tahmin aşağıdaki algoritma ile geliştirilebilir ( Newton-Raphson yöntem):

Bir kez -vector, hatanın sıfıra yakın düşmesine neden oldu, algoritma sonlanmalıdır. Temel alınan mevcut yöntemler Hessen matrisi sistemin istenen seviyeye yakınsadığı bildirildi daha az yineleme kullanan değerler olsa da, bazı durumlarda daha fazla hesaplama kaynağı.

Sezgisel Yöntemler

Ters Kinematik problemi, sezgisel yöntemler kullanılarak da tahmin edilebilir. Bu yöntemler basit, yinelemeli işlemler gerçekleştirerek kademeli olarak çözüme yaklaştırır. Sezgisel algoritmaların hesaplama maliyeti düşüktür (son pozu çok hızlı bir şekilde döndürür) ve genellikle eklem kısıtlamalarını destekler. En popüler sezgisel algoritmalar şunlardır: Döngüsel Koordinat İnişi (CCD),[7] ve İleri ve Geri Ters Kinematiğe Ulaşma (FABRIK).[8]

Ayrıca bakınız

Referanslar

  1. ^ Donald L.Pieper, Bilgisayar kontrolü altında manipülatörlerin kinematiği. Doktora tezi, Stanford Üniversitesi, Makine Mühendisliği Bölümü, 24 Ekim 1968.
  2. ^ Paul Richard (1981). Robot manipülatörleri: matematik, programlama ve kontrol: robot manipülatörlerinin bilgisayarla kontrolü. MIT Press, Cambridge, MA. ISBN  978-0-262-16082-7.
  3. ^ J.M. McCarthy, 1990, Teorik Kinematiğe Giriş, MIT Press, Cambridge, MA.
  4. ^ J. J. Uicker, G.R. Pennock ve J. E. Shigley, 2003, Makine ve Mekanizma Teorisi, Oxford University Press, New York.
  5. ^ J.M. McCarthy ve G. S. Soh, 2010, Bağlantıların Geometrik Tasarımı, Springer, New York.
  6. ^ A. Aristidou, J. Lasenby, Y. Chrysanthou, A. Shamir. Bilgisayar Grafiklerinde Ters Kinematik Teknikleri: Bir Araştırma. Bilgisayar Grafikleri Forumu, 37 (6): 35-58, 2018.
  7. ^ D. G. Luenberger. 1989. Doğrusal ve Doğrusal Olmayan Programlama. Addison Wesley.
  8. ^ A. Aristidou ve J. Lasenby. 2011. FABRIK: Ters kinematik problemi için hızlı, yinelemeli bir çözücü. Grafik. Model 73, 5, 243–260.

Dış bağlantılar