Come posso convertire i parametri e gli angoli dei collegamenti (in cinematica) in matrici di trasformazione nella logica di programmazione?


10

Sto facendo ricerche di robotica come studente universitario e capisco la matematica concettuale per la maggior parte; tuttavia, quando si tratta di implementare effettivamente il codice per calcolare la cinematica diretta per il mio robot, sono bloccato. Semplicemente non capisco come lo spiegano il libro o i siti Web che ho trovato.

Vorrei calcolare gli angoli XYZ dati i parametri di collegamento (parametri Denavit-Hartenberg), come i seguenti :

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

Non capisco come trasformare questa tabella di valori nelle matrici di trasformazione appropriate necessarie per ottenere 0 T N , la posizione cartesiana e la rotazione dell'ultimo collegamento. Da lì, spero di riuscire a capire gli angoli XYZ dalla lettura del mio libro, ma qualsiasi aiuto sarebbe apprezzato.0TN

Risposte:


6

La sezione DH Matrix della pagina DH su wikipedia ha i dettagli.

Fondamentalmente si desidera utilizzare le informazioni nella tabella per creare un insieme di matrici di trasformazione omogenee. Lo facciamo perché trasformazioni omogenee possono essere moltiplicate per trovare la relazione tra frame separati da uno o più altri. Ad esempio, 0 T 1 rappresenta la trasformazione dal frame 1 al frame 0 mentre 1 T 2 rappresenta la trasformazione dal frame 2 al frame 1. Moltiplicandoli otteniamo la trasformazione dal frame 2 al frame 0, ovvero 0 T 2 = 0 T 1 1 T 2 .0T11T20T2=0T11T2

Un modo semplice per creare ognuna delle trasformazioni è fare una trasformazione omogenea o matrice di rotazione omogenea per ogni colonna della tabella e moltiplicarle insieme. Ad esempio, la trasformazione da 1 a 0 (ad es. I - 1 T i , i = 1 ) èi1Ti,i=1

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

dove

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]

In questo caso

0T1=Rot(θ1)

Una volta che hai tutte le tue trasformazioni, le moltiplichi insieme, ad es

0TN=0T11T2...N1TN

0TNd=[0TN,14,0TN,24,0TN,34]T0TN


Alpha_2 non sarebbe -90 gradi?
Grace,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.