Corso di Robotica 1 Cinematica dei robot Prof. Alessandro De Luca Robotica 1 1
Cinematica dei robot manipolatori Studio degli aspetti geometrici e temporali del moto delle strutture robotiche, senza riferimento alle cause che lo provocano Robot visto come catena cinematica (aperta) di corpi rigidi connessi da giunti (prismatici o rotanti) Robotica 1 2
specifiche funzionali Motivazioni determinazione dello spazio di lavoro (workspace) calibrazione specifiche operative modalità di esecuzione (attuazione) del compito definizione del compito e sua valutazione in due spazi diversi connessi da legami cinematici/dinamici pianificazione delle traiettorie programmazione schemi di controllo Robotica 1 3
Cinematica: formulazione e parametrizzazione spazio dei GIUNTI r = f(q) DIRETTA INVERSA spazio CARTESIANO (dell end-effector) q = (q 1,,q n ) q = f -1 (r) r = (r 1,,r m ) scelta della parametrizzazione q caratterizza in modo univoco e minimale la particolare configurazione del robot n = # gradi di libertà (dof) = # giunti (rotatori o traslatori) del robot scelta della parametrizzazione r caratterizza in modo compatto le componenti di posizione e/o orientamento di interesse per il compito (task) m 6, e solitamente m n (ma non è necessario) Robotica 1 4
Catene cinematiche aperte q 2 q n SR E q 1 q 3 q 4 ad es., angolo relativo fra un braccio e il successivo r = (r 1,,r m ) descrivono posizione e/o orientamento del riferimento SR E m = 2 m = 3 puntamento nello spazio posizionamento nel piano orientamento nello spazio posizionamento e orientamento nel piano Robotica 1 5
Classificazione tipi cinematici (primi 3 gradi di libertà) SCARA (RRP) cartesiano o a portale (PPP) cilindrico (RPP) polare o sferico (RRP) articolato o antropomorfo (RRR) P = giunto ad 1 dof prismatico (traslatorio) R = giunto ad 1 dof rotatorio Robotica 1 6
Cinematica diretta La struttura della funzione cinematica diretta dipende dalla scelta di r r = f r (q) Metodi per ricavare f r (q) geometrico/per ispezione sistematico: assegnando SR solidali con i bracci del robot e usando matrici di trasformazione omogenea Robotica 1 7
y Esempio: cinematica diretta 2R l 1 l 2 q 1 q 2 P φ p q = q 1 y p x x r = q 2 p x p y φ p x = l 1 cos q 1 + l 2 cos(q 1 +q 2 ) p y = l 1 sin q 1 + l 2 sin(q 1 +q 2 ) φ = q 1 + q 2 in casi più generali occorre un metodo! n = 2 m = 3 Robotica 1 8
Numerazione bracci/giunti giunto 1 braccio 0 (base) braccio 1 giunto 2 giunto i-1 braccio i-1 giunto i giunto i+1 braccio i giunto n braccio n (end effector) Robotica 1 9
Relazioni tra assi di giunto asse giunto i asse giunto i+1 90 A α i π 90 B normale comune (asse del braccio i) a i = distanza AB (sempre univocamente definita) α i = angolo di twist tra gli assi di giunto [proiettati sul piano π normale all asse di braccio] con segno (pos/neg)! Robotica 1 10
Relazioni tra assi di braccio braccio i-1 asse giunto i braccio i D C asse braccio i-1 θ i σ asse braccio i d i = CD (distanza variabile se giunto i è prismatico) θ i = angolo (variabile se giunto i è rotatorio) tra gli assi dei bracci [proiettati sul piano σ normale all asse di giunto] con segno (pos/neg)! Robotica 1 11
Assegnazione SR secondo Denavit-Hartenberg asse giunto i-1 braccio i-1 asse giunto i braccio i asse giunto i+1 a i z i α i d i z i-1 x i-1 O i x i θ i O i-1 asse intorno al quale il giunto ruota o lungo il quale il giunto trasla normale comune agli assi di giunto i ed i+1 Robotica 1 12
asse giunto i-1 Parametri di Denavit-Hartenberg braccio i-1 asse giunto i D braccio i a i asse giunto i+1 z i α i d i z i-1 x i-1 O i x i θ i O i-1 asse z i lungo l asse di giunto i+1 asse x i lungo la normale comune agli assi di giunto i e i+1 (verso: i i+1) a i = distanza DO i orientata con x i (costante = lunghezza braccio i) d i = distanza O i-1 D orientata con z i-1 (variabile se giunto i PRISMATICO) α i = angolo di twist tra z i-1 e z i intorno a x i (costante) θ i = angolo tra x i-1 e x i intorno a z i-i (variabile se giunto i ROTATORIO) Robotica 1 13
Ambiguità nella definizione dei SR per SR 0 : origine e asse x 0 sono arbitrari per SR n : l asse z n non è determinato (ma x n deve essere incidente e ortogonale a z n-1 ) quando z i-1 e z i sono paralleli, la normale comune non è univocamente determinata (O i può essere scelto arbitrariamente su z i ) quando z i-1 e z i sono incidenti, il verso di x i è arbitrario (spesso però x i = z i-1 z i ) Robotica 1 14
Trasformazione omogenea da SR i-1 a SR i rototraslazione intorno e lungo z i-1 cθ i -sθ i 0 0 1 0 0 0 sθ i cθ i 0 0 0 1 0 0 i-1 A i (q i ) = 0 0 1 0 0 0 1 d = i 0 0 0 1 0 0 0 1 cθ i -sθ i 0 0 sθ i cθ i 0 0 0 0 1 d i 0 0 0 1 giunto rotatorio q i = θ i giunto prismatico q i = d i rototraslazione intorno e lungo x i i A i = 1 0 0 a i 0 cα i -sα i 0 0 sα i cα i 0 0 0 0 1 costante nel tempo Robotica 1 15
Matrice di Denavit-Hartenberg i-1 A i (q i ) = i-1 A i (q i ) i A i = cθ i -cα i sθ i sα i sθ i a i cθ i sθ i cα i cθ i -sα i cθ i a i sθ i 0 sα i cα i d i 0 0 0 1 notazione compatta: c = cos, s = sin Robotica 1 16
Cinematica diretta di manipolatori descrizione interna al robot z 0 tramite: prodotto 0 A 1 (q 1 ) 1 A 2 (q 2 ) n-1 A n (q n ) q=(q 1,,q n ) y E x E z E scorrimento s approccio a normale n SR B y 0 x 0 B T E = B T 0 0 A 1 (q 1 ) 1 A 2 (q 2 ) n-1 A n (q n ) n T E r = f r (q) descrizione esterna tramite r = (r 1,,r m ) B T E = R p = 000 1 n s a p 0 0 0 1 descrizioni alternative della cinematica diretta Robotica 1 17
Esempio: robot SCARA q 3 q 2 q 1 q 4 Robotica 1 18
Passo 1: assi di giunto tutti paralleli (o coincidenti) twists α i = 0 oppure π J1 spalla J2 gomito J3 prismatico J4 rotatorio Robotica 1 19
Passo 2: assi di braccio le quote verticali degli assi dei bracci sono (per ora) arbitrarie a 1 a 2 a 3 = 0 Robotica 1 20
Passo 3: terne z 1 assi y i non riportati (non servono; completano terne destre) z 0 x z 2 = z 3 1 x 2 x 3 x 4 z 4 = asse a (di approccio) x 0 y 0 Robotica 1 21
Passo 4: tabella di DH i α i a i d i θ i z 1 x z 2 = z 3 1 1 0 a 1 d 1 q 1 2 0 a 2 0 q 2 x 4 x 2 x 3 3 0 0 q 3 0 4 π 0 d 4 q 4 z 0 z 4 x 0 y 0 N.B. d 1 e d 4 si potevano scegliere = 0! inoltre qui d 4 < 0!! Robotica 1 22
Passo 5: calcolo trasformazioni 0 A 1 (q 1 )= 1 A 2 (q 2 )= cθ 1 - sθ 1 0 a 1 cθ 1 sθ 1 cθ 1 0 a 1 sθ 1 0 0 1 d 1 0 0 0 1 cθ 2 - sθ 2 0 a 2 cθ 2 sθ 2 cθ 2 0 a 2 sθ 2 0 0 1 0 0 0 0 1 q = (q 1, q 2, q 3, q 4 ) = (θ 1, θ 2, d 3, θ 4 ) 2 A 3 (q 3 )= 3 A 4 (q 4 )= 1 0 0 0 0 1 0 0 0 0 1 d 3 0 0 0 1 cθ 4 sθ 4 0 0 sθ 4 -cθ 4 0 0 0 0-1 0 0 0 d 4 1 Robotica 1 23
Passo 6: cinematica diretta 0 A 3 (q 1,q 2,q 3 )= 3 A 4 (q 4 )= R(q 1,q 2,q 4 )=[ n s a ] 0 A 4 (q 1,q 2,q 3,q 4 )= c 12 -s 12 0 a 1 c 1 + a 2 c 12 s 12 c 12 0 a 1 s 1 + a 2 s 12 0 0 1 0 0 0 d 1 +q 3 1 c 4 s 4 0 0 s 4 -c 4 0 0 0 0-1 0 0 0 d 4 1 c 124 s 124 0 a 1 c 1 + a 2 c 12 s 124 -c 124 0 a 1 s 1 + a 2 s 12 0 0-1 d 1 +q 3 +d 4 0 0 0 1 p = p(q 1,q 2,q 3 ) Robotica 1 24
Esercizio: Stanford manipulator 6 dofs: 2R-1P-3R (polso sferico) offset di spalla è mostrata una possibile assegnazione di terne di D-H determinare tabella dei parametri di D-H matrici di trasformazione omogenea cinematica diretta scrivere un programma per la cinematica diretta numerico (Matlab) simbolico (SM toolbox Matlab, Maple, Mathematica, etc.) Robotica 1 25
Tabella di DH per lo Stanford manipulator 6 dofs: 2R-1P-3R (polso sferico) i i a i d i i 1 -π/2 0 d 1 >0 q 1 =0 2 π/2 0 d 2 >0 q 2 =0 3 0 0 q 3 >0 -π/2 4 -π/2 0 0 q 4 =0 5 π/2 0 0 q 5 =-π/2 6 0 0 d 6 >0 q 6 =0 le variabili di giunto sono in rosso: è il riportato il loro valore corrente nella configurazione mostrata Robotica 1 26
Esercizio: KUKA KR5 Sixx R650 6R (offsets sia di spalla che di gomito, polso sferico) determinare terne e tabella dei parametri di D-H matrici di trasformazione omogenea cinematica diretta disponibile nel Laboratorio di Robotica del DIS Robotica 1 27