Ters kinematik - Inverse kinematics

İleri ve Ters Kinematik

Olarak bilgisayar animasyonu ve robotik , ters kinematik bir ucunu yerleştirmek için gereken değişken ortak parametrelerin hesaplanması matematiksel bir süreçtir kinematik zincirin bir robot kollarının ya da, animasyon karakterin iskelet başlangıcına göre belirli bir konumda ve yönlenişte, zincir. Verilen eklem parametreleri, zincirin ucunun konumu ve oryantasyonu, örneğin karakterin veya robotun eli, tipik olarak, ileri kinematik olarak bilinen bir süreç olan trigonometrik formüllerin çoklu uygulamaları kullanılarak doğrudan hesaplanabilir . Ancak, ters işlem genel olarak çok daha zordur.

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

robotik

Robotikte, ters kinematik , robotun uç efektörlerinin her biri için istenen konfigürasyonu (konum ve dönüş) sağlayan eklem parametrelerini belirlemek için kinematik denklemlerini kullanır . Bir robotun hareketini, son efektörlerinin bir ilk konfigürasyondan istenen bir konfigürasyona hareket etmesi için belirleme, hareket planlama olarak bilinir . Ters kinematik, hareket planını robot için ortak aktüatör yörüngelerine dönüştürür . Benzer formüller , bir filmde belirli bir şekilde hareket edecek olan canlandırılmış bir karakterin veya bir film sahnesini çeken kamerayı içeren bir araba veya tekne gibi bir aracın iskeletinin konumlarını belirler . 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 nesnelerin kendileri araç kaynaklı olarak hareket etmiyor gibi görünürken perspektifleri değişir. kamera onları geçiyor.

İster robot ister hareketli bir karakter olsun , bir kinematik zincirin hareketi, zincirin kinematik denklemleri ile modellenir. Bu denklemler, zincirin konfigürasyonunu eklem parametreleri açısından tanımlar. İleri kinematik , zincirin konfigürasyonunu hesaplamak için eklem parametrelerini kullanır ve ters kinematik, istenen konfigürasyonu sağlayan eklem parametrelerini belirlemek için bu hesaplamayı tersine çevirir.

Kinematik analiz

Kinematik 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 sonraki dinamik analiz için gereklidir.

Ters kinematik, katı cisimlerin veya kinematik zincirin kısıtlı bir sisteminin kinematik analizine bir örnektir . Kinematik denklemler bir robot karmaşık eklemli sisteminin ilmek denklemleri 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 , sistemin serbestlik dereceleri olarak bilinir .

Çok çeşitli kinematik zincirler için ters kinematik problemine analitik çözümler mevcut olsa da, bilgisayar modelleme ve animasyon araçları , doğrusal olmayan kinematik denklemleri çözmek için genellikle Newton'un yöntemini kullanır.

Ters kinematik algoritmaların diğer uygulamaları arasında etkileşimli manipülasyon , animasyon kontrolü ve çarpışmadan kaçınma yer alır .

Ters kinematik ve 3D animasyon

Ters kinematik, oyun karakterlerini fiziksel olarak dünyaya bağlamak için kullanıldığı oyun programlama ve 3D animasyon için önemlidir , örneğin, arazinin üzerine sıkıca inen ayaklar gibi ( Bilgisayar Grafiklerinde kullanılan Ters Kinematik yöntemleri hakkında kapsamlı bir araştırma için bakınız ).

Hareketli bir figür, kinematik zincir adı verilen eklemlerle bağlantılı katı segmentlerden oluşan bir iskeletle modellenmiştir . Şeklin kinematik denklemleri, şeklin eklem açıları ile pozu veya konfigürasyonu arasındaki ilişkiyi tanımlar. İleri kinematik animasyon problemi eklem açıları verilen poz belirlemek için kinematik denklemleri kullanır. Ters kinematik problemi figürü istenen poz için ortak açıları hesaplar.

Bilgisayar tabanlı tasarımcılar, sanatçılar ve animatörler için, eklem açılarını doğrudan manipüle etmek yerine, parçaları veya kolları ve bacakları hareket ettirerek bir montajın veya figürün uzamsal konfigürasyonunu tanımlamaları genellikle daha kolaydır. Bu nedenle, ters kinematik, bilgisayar destekli tasarım sistemlerinde montajları canlandırmak için ve 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 bağlanan rijit bağlantılar olarak modellenir. Bir elemanın hareketi, bağlantı kısıtlamalarını korumak için diğer elemanlar için bağlantı açılarının hesaplanmasını gerektirir . Örneğin, ters kinematik, bir sanatçının bir 3D insan modelinin elini istenen konuma ve oryantasyona hareket ettirmesine ve bir algoritmanın bilek, dirsek ve omuz eklemlerinin uygun açılarını seçmesine olanak tanır. Bilgisayar animasyonunun başarılı bir şekilde uygulanması genellikle figürün makul antropomorfik sınırlar içinde hareket etmesini de gerektirir .

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

Ters kinematiğe analitik çözümler

Tüm durumlarda olmasa da bazılarında, ters kinematik problemlerin analitik çözümleri vardır. Böyle bir örnek, 3B uzayda hareket eden (3 pozisyon serbestlik derecesi ve 3 dönüş serbestlik derecesi ile) 6-DoF'lu bir robot (örneğin, 6 döner mafsal) içindir. Robotun serbestlik dereceleri, örneğin 7 döner mafsallı 7 DoF'luk bir robotla, son efektörün serbestlik derecelerini aşarsa, 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 belki de sayısal yöntemlerle daha iyi bir çözüm sunulur (sonraki bölüm), bunun yerine ek tercihler verilen bir çözümü optimize edebilir (bir optimizasyon problemindeki maliyetler). ).

Ters kinematik problemine analitik bir çözüm, son efektör pozunu girdi olarak alan ve çıktı olarak ortak 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 belirli bir son efektör pozu için birden fazla çözüm, ancak yalnızca sınırlı sayıda çözüm sağlayabilir.

IKFast açık kaynak programı en yaygın manipülatörlerin tam analitik çözmek ve onlar için C ++ kodu üretir. Oluşturulan çözücüler çoğu dejenere durumları kapsar ve son bilgisayarlarda mikrosaniyeler içinde tamamlanabilir. 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 kinematikte yinelemeli çözümler olduğunda kararsızlığa neden olabilir. IK'nin yüksek hızlı bir kontrol döngüsü içinde çözülmesi gibi.


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

Ters kinematik problemlerini modellemenin ve çözmenin birçok yöntemi vardır. Bu yöntemlerin en esnek olanı , ileri kinematik denklemi tersine çevirmenin zorluğu ve boş bir çözüm alanı olasılığı nedeniyle, yaklaşık bir çözüm aramak için tipik olarak yinelemeli optimizasyona dayanır . Bu yöntemlerin birçoğunun arkasındaki ana fikir , ters çevrilmesi ve çözülmesi orijinal sistemden daha basit olabilen bir Taylor serisi açılımı kullanarak ileri kinematik denklemi modellemektir .

Jacobian ters tekniği

Jakobyan ters tekniği ters kinematik uygulanması basit ama etkili bir yoldur. İleri kinematik denklemi yöneten değişkenler olsun , yani konum fonksiyonu. Bu değişkenler eklem açıları, uzunluklar veya diğer keyfi gerçek değerler olabilir. IK sistemi 3 boyutlu bir uzayda yaşıyorsa, konum işlevi bir haritalama olarak görüntülenebilir . Sistemin ilk konumunu verelim ve

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

Küçük vektörler için, konum fonksiyonunun seri açılımı,

,

konum fonksiyonunun (3 × m) Jacobian matrisi nerede .

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

,

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

Alarak Moore-Penrose pseudoinverse Jacobi (a kullanarak hesaplanabilir tekil değer ayrışımı terimler sonuçları ve yeniden düzenlenmesi)

,

nerede .

Ters Jacobian yöntemini bir kez uygulamak, istenen vektörün çok kaba bir tahminiyle sonuçlanacaktır. Bunu kabul edilebilir bir değere ölçeklendirmek için bir satır araması kullanılmalıdır . Tahmini aşağıdaki algoritma ile geliştirilebilir ( Newton-Raphson yöntemi olarak bilinir ):

Bir -vector hatanın sıfıra yakın düşmesine neden olduğunda, algoritma sonlandırılmalıdır. Sistemin Hessian matrisine dayalı mevcut yöntemlerin , bazı durumlarda daha fazla hesaplama kaynağı olsa da, daha az yineleme kullanarak istenen değerlere yakınsadığı rapor edilmiştir .

sezgisel yöntemler

Ters Kinematik problemi, buluşsal yöntemler kullanılarak da tahmin edilebilir. Bu yöntemler, yavaş yavaş çözüme yaklaşmak için basit, yinelemeli işlemler gerçekleştirir. Sezgisel algoritmalar düşük hesaplama maliyetine sahiptir (son pozu çok hızlı bir şekilde döndürür) ve genellikle ortak kısıtlamaları destekler. En popüler buluşsal algoritmalar şunlardır: Döngüsel Koordinat İniş (CCD) ve İleri ve Geriye Ulaşan Ters Kinematik (FABRIK).

Ayrıca bakınız

Referanslar

Dış bağlantılar