Ters Kinematik için Jacobian matrisini hesaplama


19

Bir Ters Kinematik analitik olarak çözmek için Jacobian matrisini hesaplarken, Jacobian matrisindeki bir eklemin her bir sütununu oluşturmak için bu formülü kullanabileceğim birçok yerden okudum:

Ji=eϕi=[[ai×(eposri)]T[ai]T]

Öyle ki dünya uzayındaki dönme ekseni, dünya uzayındaki dönme noktasıdır ve dünyadaki son efektörün konumudur.arepos

Ancak, eklemlerde birden fazla DOF olduğunda bunun nasıl çalışabileceğini anlamıyorum. Örnek olarak aşağıdakileri ele alalım:

resim açıklamasını buraya girin

dönme DOF olan, nihai etkileyici olan, nihai etki, hedefi , ve P_3 eklemlerdir.θegP1P2P3

İlk olarak, şema için yukarıdaki formüle dayanarak Jacobian matrisini hesaplayacak olsaydım, şöyle bir şey elde edeceğim:

J=[((0,0,1)×e)x((0,0,1)×(eP1))x((0,0,1)×(eP2))x((0,0,1)×e)y((0,0,1)×(eP1))y((0,0,1)×(eP2))y((0,0,1)×e)z((0,0,1)×(eP1))z((0,0,1)×(eP2))z000000111]

Bu, tüm dönme eksenlerinin ve hepsinin sadece bir dönme DOF'a sahip olduğu varsayılmaktadır . Bu nedenle, her sütunun bir DOF için olduğunu düşünüyorum, bu durumda .(0,0,1)θ#

Şimdi, sorun şu: Ya tüm eklemlerde tam 6 DOF varsa? Şimdi diyelim ki, her eklem için, tüm eksenlerde dönme , , ve ve ayrıca tüm eksenlerde, , ve de çeviri .θxθyθztxtytz

Sorumu açıklığa kavuşturmak için, yukarıdaki formülü tüm eklemlerin tüm DOF'larına "zorla" uygularsam, muhtemelen böyle bir Jacobian matrisi alacağım varsayalım:

resim açıklamasını buraya girin

(büyük boy için tıklayınız)

Ancak bu inanılmaz garip çünkü her eklem için DOF'un 6 sütununun hepsi aynı şeyi tekrarlıyor.

Tüm DOF'larla Jacobian matrisini oluşturmak için aynı formülü nasıl kullanabilirim? Jacobian matrisi bu durumda nasıl görünürdü?


Aslında, bu soruyu burada, Matematik'te, GamesDev'de veya Fizik'te göndermem gerekip gerekmediğinden emin değilim. Bu soruyu yanlış yere gönderdiğimi hissediyorum.
xenon

Sanırım hatanız, her DOF için a 'yı değiştirmemeniz, bu yüzden hepsi aynı görünüyor.

Yanıtlar:


11

Bu belirli formülü çok sık görmediğimi itiraf etmeliyim, ama tahminim birden fazla DOF olması durumunda, her sütundaki her eklem için değerlendirirsiniz ve sonra (belki?) Bu sonuçları çoğaltırsınız. her sütun.

Ancak, keyfi olarak birçok DOF bağlamında Jacobianlara daha basit bir yaklaşım önermeme izin verin: Temel olarak, Jacobian, eğer son efektör çerçevesini keyfi olarak seçilmiş bir yönde hareket ettirirseniz, her bir eklemin ne kadar hareket ettiğini söyler. Let ileri kinematik olmak olan eklemler, ileri kinematiği ve konumsal bir parçasıdır dönme kısmı. Daha sonra ortak değişkenlere göre ileri kinematiği ayırt ederek Jacobian'ı elde edebilirsiniz : θ = [ θ 1 , . . . , θ n ] f poz f rot J = ff(θ)θ=[θ1,...,θn]fposfrot

J=fθ=[fposθ1,fposθ2...,fposθnfrotθ1,frotθ2...,frotθn]
, manipülatörünüzün Jacobian'ıdır. Bunu tersine çevirmek size hızlara karşı ters kinematik verecektir . Yine de faydalı olabilir, eğer uç efektörünüzü herhangi bir yönde küçük bir miktar hareket ettirmek istiyorsanız her bir eklemin ne kadar hareket etmesi gerektiğini bilmek istiyorsanız (çünkü pozisyon seviyesinde, bu bir doğrusallaştırma olacaktır) : Δx
Δθ=J1Δx

Umarım bu yardımcı olur.


Cevabınız için teşekkürler! Ama bu değerleri sayısal olarak hesaplamak zorunda kalacağım anlamına mı geliyor? Aslında bu analitik bir örnek gördük graphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdf Slide 19 ve gelen graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt Slide hakkında 78. Slaytlardan, sayısal yöntemlerden geçmem gerekmeyebilir. Farklılaştırılacak gerçek işlevlere sahip olmadığım durumlarda, bu formülü kullanabilirim. Ancak sorun, her eklem için daha fazla DOF'um olduğunda ne olacağıdır.
xenon

Slaytları doğru , bu eklemlerin her biri için vektörleri belirleyerek rastgele birçok (dönme) , burada eklemin pozisyonudur. Yani, 46 ekleminiz varsa, gerçekten 46 sütun ve 6 satırlı bir Jacobian elde edersiniz (veya son efektörün yönünü ihmal ederseniz 3). Uzun lafın kısası: bu formülü herhangi bir sayıda eklem için uygulayabilir ve diğer eklemlerle "birleştirmek" zorunda kalmazsınız. (eben-Pben)Pben
Daniel Eberts

Ancak bir eklemde , , gibi birçok ve , , gibi çeviri varsa ne olur ? Şimdi, her eklemde 6 DOF var. Jacobian matrisinin IK için nasıl çalıştığını anladığımdan, ilk 6 sütun, 6 farklı DOF'ye göre uç efektörün türevleri olacak ve bu ilk 6 sütun ilk eklemi tanımlayacak. Sonraki 6 sütun, 6 DOF ve benzerlerine göre ikinci eklemi tarif edecektir. denklemini kullanmak, her bir eklemin 6 sütununun otomatik olarak bir sütuna paketlendiği anlamına mı geliyor? θxθyθztxtytz(eiPi)
xenon

3
Ah, anlıyorum. Hayır, bu durumda formül işe yaramaz çünkü bir dönüş eksenine sahip dönme mafsalları için tasarlanmıştır. Örneğin küresel eklemleri tedavi etmek istiyorsanız, ya özel eklem tipini tedavi eden farklı bir formüle ihtiyacınız olacak ya da robotun ileri kinematiğinin kapalı bir formuna ihtiyacınız olacaktır. Eğer buna sahipseniz, eklemleri ile ayırt edebilir ve Jacobian'ı elde edebilirsiniz. θ
Daniel Eberts

Teşekkürler! :) Sadece merak ediyorum, slide 58'de graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt formülü, 3 DOF ile rotasyonlu eklemler için kullanılabileceğini ima ediyor mu? Diğer bir deyişle, bir eklemin ötelemesel DOF'ları yoksa ve tamamen 3 rotasyonel DOF'u varsa, yine de mümkündür? Farklı DOF'ları elde etmek için neden çeşitli dönüşlerle çarpmanın olduğundan emin değilim . (1,0,0,0)
xenon

2

6 serbestlik dereceli bir eklem için formülünüz, 6 eklemin tümünün dünya çerçevesindeki eksene sahip olduğunu ve tüm eklemlerin devir olduğunu varsayar . 6 eklem böylece özdeş olduğundan, Jacobian'daki sütunları da aynıdır.(0,0,1)

Üzerinde başlayarak, ortak bir eksene sahip varsayalım bir noktaya geçiyor r . E , uç efektörün pozisyonu olsun . A , r ve e koordinatlarının tümü dünya çerçevesinde verilmiştir ve robot taşınırken güncellenmektedir. Eksen bir uzunluğa sahiptir 1 .arearea1

Eklem revolute ise, ortak için Jacobian'ın sütunu

Jθ(a,r)=[a×(er)a]

Eklem prizmatik ise, sütun

Jp(a)=[a0]

Diyelim ki sadece küresel değil aynı zamanda uzayda da tercüme edebilen 6 serbestlik dereceli bir eklemimiz var . Eklemin eksenlerinin , bir y ve bir z olduğunu ve her bir revolute ve prizmatik eklemin bir ekseni paylaştığını varsayalım , böylece eklem için Jacobian oluraxayaz

J=[Jp(ax)Jp(ay)Jp(az)Jθ(ax,r)Jθ(ay,r)Jθ(az,r)]

Eksenleri , bir y ve bir Z robotun öne kinematik bağlıdır. Let, dönüşümünü göstermek için k Dünya çerçevesindeki eklem inci tarafından verilecekaxayazk

Fk=i=1kLiTi

burada dönüşümler sabitlerdir ve dönüşümler , T i ortak değişkenlere bağlıdır. Let R c ( k ) ve p c ( k ) ile döndürme ve çevirme dönüşümler olmak q ilgili ekseni adı koordinat c (ya da X , Y veya Z ).LiTiRc(q)Pc(q)qcxyz

Let Jacobi yardımıyla hesaplanmış olarak bir yer değiştirme, için i inci ortak. Let Δ T = P x ( Δ s x ) p y ( Δ s y ) p z ( Δ s zΔq=(Δpx,Δpy,Δpz,Δθx,Δθy,Δθz)i ve eklemin yerel dönüşümünü şu şekilde güncelleyin:ΔT=Px(Δpx)Py(Δpy)Pz(Δpz)Rx(Δθx)Ry(Δθy)Rz(Δθz)

TiTiΔT

İleri kinematik Bu formülasyonda, eksenleri , bir y ve bir z eklem i tam dönüş matrisinin sütunlar bulunmaktadır F i . Ayrıca r pozisyonu , F i'nin çeviri vektörüdür .axayaziFirFi


0

6 DOF eklemi için Jacobian matrisini istediğiniz sorusunu anladığım kadarıyla.

Robotun temelleri ile başlayayım. Robotik öğrenmenin farklı başlangıç ​​aşamasındasınız. Her eklemin ya tek bir DOF'u temsil ettiğini ya da ya revolute ya da prizmatik eklem olacağını anlamalısınız.

Küresel mafsal kaygısı söz konusu olduğunda, karşılıklı olarak üç dik eksene sahip 3 döner mafsala dönüştürülebilir. Şimdi, küresel ekleminizi basitleştirdiniz.

Jacobian matrisine doğru ilerliyoruz. 6 sıra içerir. İlk 3 sıra oryantasyonu temsil eder ve son 3 sıra belirli bir koordinat sistemine referansla konumu gösterir. Matristeki her sütun tek bir eklemi gösterir. Yani ortak / DOF sayısı Jacobian matrisinde aynı sayı sütununa sahip.

Sorunuza daha net bir bakış: Tek bir eklem asla birden fazla DOF'u yerine getirmez, çünkü eklemi karmaşıklaştırır ve hassas kontrol asla başaramaz. Varsayımsal olarak birden fazla DOF'a sahip bir eklem olarak düşünsek bile, matematik ve çözümü basitleştirmek için bu eklemi her biri 1 DOF ile çoklu eklemlere dönüştürmeniz gerekir.

İdeal olarak, gerçek sorunlar üzerinde çoğunluk için 6 döner eklemli 6 DOF robotu. Ancak sorunuza göre her biri 18 DOF robotu yapan 3 DOF'a sahip 6 eklem robotu düşündünüz. Bu gereksiz DOF (yani 18-6 = 12 yedek DOF) verecektir. Böylece, robot uç efektörüne herhangi bir yönde herhangi bir yere ulaşmak için sonsuz farklı çözümlere sahip olacaksınız (çözüm her eklemin rotasyonu anlamına gelir). Yani bu tür ters kinematik problemini çözmek için ters kinematik yinelemeli bir metoda ihtiyacınız olacaktır.

Umarım sorunuzu daha net yanıtladım. Temel robotik öğrenmek için John J. Craig'e başvurabilirsiniz - Robotik Mekanik ve Kontrolüne Giriş -Pearson Education, Inc.

Saygılarımızla, Manan Kalasariya

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.