Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
111Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it1
CINEMATICA DIRETTA
Paolo Fiorini Dipartimento di Informatica
Università degli Studi di Verona
222Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it2
Introduzione
Manipolatore: catena cinematica (aperta) di corpi rigidi (bracci) e giunti (rotoidali e prismatici)
Per poter manipolare un oggetto nello spazio bisogna conoscere posizione e orientamento dell’organo terminale
La cinematica diretta calcola la posa dell’organo terminale in funzione dei parametri di giunto
333Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it3
Giunti e BracciGiunto: il collegamento tra una coppia di corpi rigidi che permette un moto relativo caratterizzato da due due superfici che slittano l’una sull’altra
Giunto rotoidaleGiunto prismatico
Braccio: è un corpo rigido che definisce le relazioni geometriche che intercorrono tra due giunti adiacenti del manipolatore
444Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it4
Il ProblemaProblema
Dati i parametri geometrici del manipolatore e le variabili di giunto
Calcolare posa e orientazione del manipolatore
SoluzioneApplicare un insieme di sistemi di riferimento al manipolatore e agli oggetti dell’ambiente seguendo la convenzione di Denanvit-Hartenberg
555Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it5
Trasformazione Omogenea Organo Terminale
Consideriamo un manipolatore da n+1 bracci connessi da n giunti.
Posizione ed orientazione finale dell’organo terminale sono funzione solo dei valori assunti dalle variabili di giunto
=
10)()(
00)()(
)(0000
0 qpqaqsqnqT
666Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it6
Trasformazione Omogenea Organo Terminale
=
10)()(
00)()(
)(0000
0 qpqaqsqnqT
Dove:
•q è il vettore (nx1) delle variabili di giunto
•n è il versore normale dell’utensile terminale
•a è il versore di approccio
•s è il versore di scivolamento
777Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it7
Esempio
Manipolatore planare a 2 bracciaN.B.
+−+
=
10000001
00
)( 122111212
122111212
0 sLsLsccLcLcs
qT
)...cos(
)...sin(
...
...
jiji
jiji
c
s
θθ
θθ
++=
++=
888Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it8
Convenzione diDenavit-HartenbergDefinisce una procedura operativa per il calcolo della cinematica diretta sfruttando la natura di catena cinematica aperta del manipolatore
Ogni giunto connette solo due bracci consecutivi
•Consideriamo prima singolarmente il problema della descrizione geometrica dei legami tra due bracci consecutivi
•Successivamente risolviamo ricorsivamente il problema della descrizione dell’intero manipolatore
999Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it9
Convenzione diDenavit-Hartenberg
Definizione della posizione e orientamento relativi di due bracci consecutivi
Individuazione di terne solidali con tali bracci
Calcolo della matrice di trasformazione che lega le due terne
101010Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it10
D-H Definizione ParametriSi identificano gli assi di rotazione dei giunti i-1 ed i
Calcolo della distanza ai-1 tra i due assi di rotazione (normale comune)
Calcolo dell’angolo αi-1 di rotazione (sull’asse ai-1) necessario per portare l’asse del primo giunto sul piano definito dal secondo asse e il segmento ai-1
111111Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it11
D-H Definizione ParametriCalcolo della distanza dilungo l’asse i tra le due normali comuni αi-1 e αi
(se il giunto è prismatico di è variabile)
Si calcola l’angolo di rotazione θi (sull’asse i) necessario per allineare ai-1 con ai
(se il giunto è rotoidale θi è variabile)
121212Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it12
D-H Posizione delle TerneL’origine del sistema {i} èposto sull’intersezione tra ai e l’asse di giunto i
L’asse Zi coincide con l’asse di giunto i
L’asse Xi coincide con la normale comune ai
L’asse Yi è scelto in modo da completare la terna
131313Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it13
D-H Elenco dei Parametri
Se i sistemi di riferimento sono posti in base alla convenzione, si ha:
ai-1 – La distanza tra Zi-1 e Zi misurata lungo l’asse Xi-1
αi-1 – L’angolo tra Zi-1 e Zi misurato rispetto l’asse Xi-1
di – La distanza tra Xi-1 e Xi misurato lungo l’asse Zi
θi – L’angolo tra Xi-1 e Xi misurato rispetto l’asse Zi
Nota: ai-1 ≥ 0, mentre αi-1 di e θi sono quantità con segno
141414Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it14
Esempio
Manipolatore planare a tre bracci e tre giunti rotoidali
151515Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it15
Esempio
Identificazione degli assi di rotazione dei giunti rotoidali
161616Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it16
Esempio
Identificazione delle normali comuni agli assi di rotazione dei giunti
171717Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it17
Esempio
Definizione del verso degli assi Zi dei sistemi di riferimento
181818Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it18
EsempioAssegnamo gli assi Xiallineandoli con le normali comuni e con il verso puntante l’asse del giunto successivo.
X3 è allineato con il centro dell’organo terminale del manipolatore
191919Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it19
Esempio
θ30L203
θ20L102
θ10001
θidiai-1αi-1i
202020Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it20
Il Problema (riassunto)Problema
Determinare la trasformazione R che lega tra loro le terne dei sistemi di riferimento {i} e {i+1}
La trasformazione èfunzione di quattro parametri: ai-1 αi-1 di θi di cui solo uno è variabile:
θi variabile per i giunti rotoidali, di per quelli prismatici
212121Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it21
Composizione di Trasformazioni
Soluzione
Calcoliamo la trasformazione Tcome composizione di 4 trasformazioni elementari
222222Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it22
Quattro Trasformazioni)Si definiscono tre sistemi di riferimento intermedi {P} {Q} {R}
Prima trasformazione omogenea (ruota e trasla){R} differisce da {i-1} solo per la rotazione αi-1•{Q} differisce da {R} solo per la traslazione ai-1
Seconda trasformazione omogenea (ruota e trasla)•{P} differisce da {Q} solo per la rotazione θi•{i} differisce da {P} solo per la traslazione di
232323Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it23
Due Matrici OmogeneePrima trasformazione omogenea
Seconda trasformazione omogenea
−
==−−
−−
−
−−−−
10000000
001
)()(11
11
1
1111
ii
ii
i
iRQi
iR
iQ cs
sca
aTTRαααα
α
−
==
1000100
0000
)()(i
ii
ii
iPii
QP
Qi d
cssc
dTTRθθθθ
θ
242424Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it24
La Trasformazione R FinaleAvendo sempre lavorato in terna corrente, la trasformazione finale risultante, si ottiene moltiplicando da sx a dx le singole componenti:
Dove qi è la variabile di giunto e vale:
se il giunto è rotoidale
se il giunto è prismatico
Qi
iQi
ii RRqR 11 )( −− =
iiq θ=
ii dq =
252525Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it25
La Trasformazione R FinaleIn formule, la matrice di trasformazione finale diventa:
−−
−
=−−−−
−−−−
−
−
1000
0
)(1111
1111
1
1
iiiiiii
iiiiiii
iii
iii cdccsss
sdsccscasc
qRααθαθαααθαθα
θθ
262626Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it26
Esempio (continua)
θ30L203
θ20L102
θ10001
θidiai-1αi-1i
−
=
−
=
−
=
1000010000
0
)(
1000010000
0
)(
100001000000
)(
33
233
323
22
122
212
11
11
10
1
θθθθ
θθθθ
θθθθ
csLsc
qR
csLsc
qR
cssc
qR
272727Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it27
Esempio (fine)La matrice finale esprime la trasformazione dalla terna x0y0z0 alla terna x3y3z3
Le prime tre colonne rappresentano i versori della terna x3y3z3, mentre la quarta è la posizione dell’origine o3 rispetto alla terna base
)()()( 3232
121
01
03 qRqRqRR =
282828Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it28
La Famiglia Puma
292929Master in Informatica Medica , Corso di Robotica, Parte 2ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it29
Puma 560