Komputasi matriks Jacobian untuk Invers Kinematics

19

Saat menghitung matriks Jacobian untuk menyelesaikan Inverse Kinematic secara analitis, saya membaca dari banyak tempat bahwa saya bisa menggunakan rumus ini untuk membuat masing-masing kolom dari gabungan dalam matriks Jacobian:

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

Sehingga adalah sumbu rotasi di ruang dunia, adalah titik pivot di ruang dunia, dan adalah posisi efektor akhir di ruang dunia.arepos

Namun, saya tidak mengerti bagaimana ini bisa bekerja ketika sendi memiliki lebih dari satu DOF. Ambil yang berikut ini sebagai contoh:

masukkan deskripsi gambar di sini

The adalah DOF rotasi, yang adalah efektor end, adalah tujuan dari efektor end, , dan adalah sendi.θegP1P2P3

Pertama, jika saya menghitung matriks Jacobian berdasarkan rumus di atas untuk diagram, saya akan mendapatkan sesuatu seperti ini:

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]

Ini diasumsikan bahwa semua sumbu rotasi adalah dan semuanya hanya memiliki satu DOF rotasi. Jadi, saya percaya setiap kolom adalah untuk satu DOF, dalam hal ini, .(0,0,1)θ#

Sekarang, inilah masalahnya: Bagaimana jika semua sendi memiliki 6 DOF penuh? Katakan sekarang, untuk setiap sambungan, saya memiliki DOF rotasi di semua sumbu, , dan , dan juga DOFs translasi di semua sumbu, , , dan .θxθyθztxtytz

Untuk memperjelas pertanyaan saya, anggaplah jika saya "memaksa" menerapkan rumus di atas untuk semua DOFs dari semua sendi, maka saya mungkin akan mendapatkan matriks Jacobian seperti ini:

masukkan deskripsi gambar di sini

(klik untuk ukuran penuh)

Tapi ini sangat aneh karena semua 6 kolom DOF untuk setiap sambungan mengulangi hal yang sama.

Bagaimana saya bisa menggunakan rumus yang sama untuk membangun matriks Jacobian dengan semua DOF? Bagaimana matriks Jacobian akan terlihat dalam kasus ini?

xenon
sumber
Sebenarnya, saya tidak yakin apakah saya seharusnya memposting pertanyaan ini di sini, di Matematika, di GamesDev, atau di Fisika. Saya merasa bahwa saya telah memposting pertanyaan ini di tempat yang salah.
xenon
Saya pikir kesalahan Anda adalah bahwa Anda tidak mengubah 'untuk setiap DOF, itu sebabnya mereka terlihat sama.

Jawaban:

11

Saya harus mengakui bahwa saya belum pernah melihat formula spesifik itu terlalu sering, tetapi dugaan saya adalah bahwa dalam kasus lebih dari satu DOF, Anda akan mengevaluasinya untuk setiap sambungan di setiap kolom dan kemudian (mungkin?) Kalikan hasilnya di setiap kolom.

Tetapi izinkan saya menyarankan pendekatan yang lebih sederhana untuk Jacobians dalam konteks banyak DOF: Pada dasarnya, Jacobian memberi tahu Anda, seberapa jauh masing-masing sendi bergerak, jika Anda memindahkan frame end effector ke arah yang dipilih secara sewenang-wenang. Biarkan menjadi kinematika maju, di mana θ = [ θ 1 , . . . , θ n ] adalah sambungan, f pos adalah bagian posisi kinematika maju dan f rot bagian rotasi. Kemudian Anda dapat memperoleh Jacobian dengan membedakan kinematika maju sehubungan dengan variabel gabungan: f(θ)θ=[θ1,...,θn]fposfrot adalah Jacobian manipulator Anda. Melawannya akan memberi Anda kinematika terbalik dengankecepatanterhadapkecepatan. Masih bisa meskipun berguna, jika Anda ingin tahu seberapa jauh masing-masing bersama harus bergerak jika Anda ingin memindahkan efektor akhir Anda oleh beberapakeciljumlahΔxarah manapun (karena tingkat jabatan, ini akan efektif menjadi linearization a): Δθ=J-1Δx

J=fθ=[fposθ1,fposθ2...,fposθnfrotθ1,frotθ2...,frotθn]
Δx
Δθ=J1Δx

Semoga ini bisa membantu.

Daniel Eberts
sumber
Terima kasih telah membalas! Tetapi ini berarti bahwa saya harus menghitung nilai secara numerik? Sebenarnya, saya melihat contoh analitis ini dari graphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdf dari Slide 19 dan graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt pada Slide 78. Dari slide, sepertinya saya mungkin tidak harus melalui metode numerik. Dalam situasi ketika saya tidak memiliki fungsi aktual untuk dibedakan, saya dapat menggunakan rumus ini. Tetapi masalahnya adalah apa yang terjadi ketika saya memiliki lebih banyak DOF untuk setiap sambungan.
xenon
Jika saya memahami slide dengan benar, Anda akan menangani kasus banyak DOFs (rotasi) sewenang-wenang dengan menentukan vektor untuk masing - masing sendi, di mana P i adalah posisi sendi. Jadi, jika Anda memiliki, katakanlah 46 sambungan, Anda memang akan mendapatkan Jacobian dengan 46 kolom dan 6 baris (atau 3, jika Anda mengabaikan orientasi efektor akhir). Singkat cerita: Anda bisa menerapkan formula itu untuk sejumlah sendi dan tidak harus "menggabungkan" dengan sendi lainnya. (eiPi)Pi
Daniel Eberts
Tetapi apa yang terjadi jika suatu sambungan memiliki banyak DOF seperti , θ y , θ z , dan DOF translasional seperti t x , t y , t z ? Sekarang, setiap sambungan memiliki 6 DOF. Dari pemahaman saya tentang bagaimana matriks Jacobian bekerja untuk IK, 6 kolom pertama akan menjadi turunan dari efektor akhir sehubungan dengan 6 DOF yang berbeda, dan 6 kolom pertama ini untuk menggambarkan sambungan pertama. 6 kolom berikutnya akan menjelaskan sambungan kedua sehubungan dengan 6 DOF dan seterusnya. Menggunakan persamaan ( e i - P i )θxθyθztxtytz(eiPi), apakah itu berarti masing-masing 6 kolom sambungan secara otomatis dikemas ke dalam satu kolom?
xenon
3
Ah, begitu. Tidak, dalam hal itu, rumus tidak akan berfungsi karena dirancang untuk sambungan rotasi dengan satu sumbu rotasi. Jika Anda ingin memperlakukan mis. Sambungan bola, Anda akan memerlukan formula berbeda yang memperlakukan tipe sambungan spesifik tersebut atau Anda memerlukan bentuk tertutup dari kinematika maju robot. Jika Anda memilikinya, Anda dapat membedakannya dengan sendi dan mendapatkan Jacobian. θ
Daniel Eberts
Terima kasih! :) Hanya ingin tahu, apakah Slide 58 di graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt mengisyaratkan bahwa dimungkinkan untuk menggunakan formula untuk sambungan rotasi dengan 3 DOFs? Yang berarti jika gabungan tidak memiliki DOF translasi dan murni 3 DOF rotasi, masih mungkin? Meskipun saya tidak yakin mengapa perlu untuk berkembang biak dengan berbagai rotasi untuk mendapatkan DOF yang berbeda. (1,0,0,0)
xenon
2

Formula Anda untuk sambungan 6 dof mengasumsikan bahwa semua 6 sambungan memiliki sumbu dalam bingkai dunia dan bahwa semua sambungan adalah revolute. Karena 6 sambungannya identik, kolomnya di Jacobian juga identik.(0,0,1)

Mulai lagi dari awal, misalkan sebuah sambungan memiliki sumbu melalui titik r . Biarkan e menjadi posisi efektor akhir. Koordinat a , r , dan e semuanya diberikan dalam bingkai dunia dan diperbarui saat robot sedang dipindahkan. Sumbu a memiliki panjang 1 .arearea1

Jika sambungannya revolute, kolom Jacobian untuk sambungannya adalah

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

Jika sambungannya prismatik, kolomnya adalah

Jp(a)=[a0]

Misalkan kita memiliki sambungan 6 dof yang tidak hanya berbentuk bola tetapi juga dapat diterjemahkan dalam ruang. Misalkan sumbu sendi yang , sebuah y , dan sebuah z dan bahwa setiap revolute dan prismatik saham gabungan sumbu, sehingga Jacobian untuk sendi menjadiaxayaz

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

The sumbu , a y , dan sebuah z bergantung pada kinematika maju robot. Untuk mengilustrasikan, biarkan transformasi sendi ke- k dalam kerangka dunia diberikan olehaxayazk

Fk=i=1kLiTi

LiTiRc(q)Pc(q)qcxyz

Biarkan menjadi perpindahan, dihitung dengan bantuan Jacobian, untuk sambungan ke- i . Biarkan Δ T = P x ( Δ p x ) P y ( Δ p y ) P z ( Δ p zΔq=(Δpx,Δpy,Δpz,Δθx,Δθy,Δθz)iΔT=Px(Δpx)Py(Δpy)Pz(Δpz)Rx(Δθx)Ry(Δθy)Rz(Δθz)

TiTiΔT

axayaziFirFi

antonakos
sumber
0

Sejauh yang saya mengerti pertanyaan Anda bahwa Anda ingin matriks Jacobian untuk 6 DOF bersama.

Mari saya mulai dengan dasar-dasar robotika. Anda berada dalam berbagai fase awal pembelajaran robotika. Anda perlu memahami bahwa masing-masing sendi mewakili DOF tunggal baik itu sendi revolute atau prismatik.

Sejauh menyangkut sambungan bola, dapat diubah menjadi 3 sambungan revolute dengan tiga sumbu yang saling tegak lurus. Jadi, sekarang Anda telah menyederhanakan sambungan bola Anda.

Bergerak maju ke matriks Jacobian. Ini berisi 6 baris. 3 baris pertama mewakili orientasi dan 3 baris terakhir menunjukkan posisi dengan mengacu pada sistem koordinat tertentu. Setiap kolom dalam matriks menunjukkan gabungan tunggal. Jadi jumlah gabungan / DOF Anda memiliki kolom nomor yang sama yang Anda miliki dalam matriks Jacobian.

Berikut ini adalah pandangan yang lebih jelas untuk pertanyaan Anda: Sendi tunggal tidak pernah memenuhi lebih dari satu DOF, karena mempersulit sendi dan kontrol yang tepat tidak akan pernah tercapai. Sekalipun kami secara hipotetis mempertimbangkan sambungan dengan lebih dari satu DOF, Anda perlu mengubah sambungan itu menjadi beberapa sambungan dengan masing-masing 1 DOF untuk menyederhanakan matematika dan solusi.

Idealnya 6 robot DOF dengan 6 sambungan revolute bekerja untuk sebagian besar masalah sebenarnya. Tetapi sesuai pertanyaan Anda, Anda dianggap 6 robot bersama dengan masing-masing bersama memiliki 3 DOF yang membuat 18 robot DOF. Ini akan memberikan DOF redundan (yaitu 18-6 = 12 DOF redundan). Jadi, untuk mencapai robot end-effector ke lokasi mana pun dengan orientasi apa pun Anda akan memiliki solusi berbeda yang tak terbatas (solusi berarti rotasi setiap sendi). Jadi, selesaikan masalah kinematika terbalik ini Anda akan membutuhkan metode iteratif kinematika terbalik.

Semoga, saya telah menjawab pertanyaan Anda dengan lebih jelas. Untuk mempelajari robotika dasar, Anda dapat merujuk John J. Craig - Pengantar Mekanika dan Kontrol Robotika -Pearson Education, Inc.

Salam, Manan Kalasariya

manan kalsariya
sumber