Bagaimana cara mengubah parameter tautan dan sudut (dalam kinematika) menjadi matriks transformasi dalam logika pemrograman?

10

Saya sedang melakukan penelitian robotika sebagai sarjana, dan saya memahami matematika konseptual untuk sebagian besar; Namun, ketika benar-benar menerapkan kode untuk menghitung kinematika maju untuk robot saya, saya terjebak. Saya hanya tidak mengerti cara buku atau situs web yang saya temukan menjelaskannya.

Saya ingin menghitung sudut XYZ mengingat parameter tautan (parameter Denavit-Hartenberg), seperti berikut :

iαi1ai1diθi1000θ129000θ230a2d3θ3490a3d4θ459000θ569000θ6

Saya tidak mengerti bagaimana mengubah tabel nilai ini menjadi matriks transformasi yang tepat yang diperlukan untuk mendapatkan , posisi Cartesian dan rotasi tautan terakhir. Dari sana, saya berharap dapat mengetahui sudut XYZ dari membaca buku saya, tetapi bantuan apa pun akan dihargai.0TN

Rahmat
sumber

Jawaban:

6

Bagian DH Matrix dari halaman DH di wikipedia memiliki perinciannya.

Pada dasarnya Anda ingin menggunakan informasi dalam tabel Anda untuk membuat satu set matriks transformasi yang homogen. Kami melakukannya karena transformasi homogen dapat dikalikan untuk menemukan hubungan antara frame yang dipisahkan oleh satu atau lebih yang lain. Sebagai contoh, mewakili transformasi dari frame 1 ke frame 0 sementara mewakili transformasi dari frame 2 ke frame 1. Dengan mengalikannya kita mendapatkan transformasi dari frame 2 ke frame 0, yaitu .0T11T20T2=0T11T2

Cara mudah untuk membuat setiap transformasi adalah dengan membuat transformasi homogen atau matriks rotasi homogen untuk setiap kolom dalam tabel dan mengalikannya bersama. Misalnya, transformasi dari 1 ke 0 (mis. ) adalahi1Ti,i=1

0T1=Trans(d1)Rot(θ1)Trans(a2)Rot(α2)

dimana

Trans(d1)=[10000100001d1=00001],

Rot(θ1)=[cos(θ1)sin(θ1)00sin(θ1)cos(θ1)0000100001],

Trans(a2)=[100a2=0010000100001],

Rot(α2)=[10000cos(α2=0)sin(α2=0)00sin(α2=0)cos(α2=0)00001] .

Pada kasus ini

0T1=Rot(θ1) .

Setelah Anda memiliki semua transformasi Anda, Anda melipatgandakan mereka ke sana, misalnya

0TN=0T11T2...N1TN .

Akhirnya Anda dapat membaca vektor perpindahan dari transformasi homogen (yaitu ). Demikian pula, Anda dapat membaca matriks rotasi dari untuk menemukan sudut XYZ.0TNd=[0TN,14,0TN,24,0TN,34]T0TN

DaemonMaker
sumber
Bukankah alpha_2 akan -90 derajat?
Grace