Upload
phammien
View
241
Download
0
Embed Size (px)
Citation preview
111Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it1
CINEMATICA DIFFERENZIALE
Paolo Fiorini Dipartimento di Informatica
Università degli Studi di Verona
222Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it2
IntroduzioneCinematica DifferenzialeEsprime il legame che intercorre tra le velocità ai giunti e le corrispondenti velocità lineare ed angolare dell’organo terminaleper la posa data
I legami sono espressi da una matrice di trasformazione
333Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it3
JacobianoJacobiano GeometricoMatrice dipendente dalla configurazione (geometria) corrente del manipolatore
Jacobiano AnaliticoSfrutta operazioni di differenziazione in caso in cui la configurazione sia espressa con rappresentazioni minime
444Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it4
Proprietà dello Jacobiano
Strumento di analisi delle caratteristiche del manipolatore:• Identifica le singolarità• Analisi della ridondanza• Calcolo dell’inversione cinematica• Evidenzia il legame tra forze al polso e coppie ai giunti
555Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it5
Jacobiano Geometrico
Consideriamo l’equazione cinematica diretta nella forma classica
In cui
è il vettore delle variabili di giunto
( ) ( ) ( )
=
10TqpqR
qT
[ ]Tnqqq K1=
666Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it6
Jacobiano GeometricoSi vuole esprimere la velocità lineare e la velocitàangolare ω del tool in funzione delle velocità ai giuntiQuindi:
Dove JP è la matrice (3xn) del contributo della velocitàlineare, mentre JO è la matrice (3xn per la velocitàangolare)
( )( )qqJqqJp
O
P
&
&&
==
ω
p&q&
( )qqJpv
JJ
JO
P &&
=
=
=
ω
777Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it7
Altre Proprietà della Matrice RDato che R rappresenta posizione e orientazionedell’organo terminale in funzione dei parametri di giunto, l’analisi della velocità porta allo studio della derivata rispetto al tempo della matrice R
Sia R funzione del tempo:
( )tRR =
888Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it8
Altre Proprietà della Matrice RValgono i seguenti passaggi:
( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( )
( )( ) ( ) ( )tRtStR
tR
tStS
tRtRtS
tRtRtRtR
ItRtR
T
T
TT
T
=
=+
=
=+
=&
&
&&
per ndomoltiplica
0proprietà la valecuiper
posto0
derivando
Questo permette di esprimere la derivata temporale in funzione della matrice stessa
999Master in Informatica Medica , Corso di Robotica, Parte 8
ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it9
Interpretazione dell’operatore di trasformazione S(t)Consideriamo quanto segue:
( ) ( )
( ) ( )
( ) ( ) ( )( )( ) ( ) ( ) '
angolare velocitàla detta' di edefinizion laper
'derivando
'
ptRtωtptω
ptRtStp(t)R
ptRtp
ptRtp
×=
=
=
=
&
&
&
&&
L’operatore S(t) ammette la seguente interpretazione fisica:è l’operatore che descrive il prodotto vettoriale tra il vettore ω e il vettore R(t)p’
101010Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it10
Interpretazione dell’operatore di trasformazione S(t)Se si considera il vettore di velocità angolare
La matrice equivalente che descrive il prodotto è data dalla seguente
( ) [ ]zyx ωωωtω =
−−
−=
00
0
xy
xz
yz
ωωωωωω
S
111111Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it11
Consideriamo la matrice di rotazione elementare attorno all’asse Z con α funzione del tempo
Calcoliamo la derivatain funzione di t
Esempio
( )( )
−=
10000
αααα
α cssc
tRz
( )( )
−−−
=00000
αααααααα
α sccs
tRz &&
&&
&
121212Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it12
Applicando la defiizione dell’operatore S(t) si ha
e quindi
Esempio
( ) ( ) ( )
−
−−−
==10000
00000
αααα
αααααααα
cssc
sccs
tRtRtS T &&
&&
&
−−
−⇒⇒
−=
00
0
0000000
xy
xz
yz
ωωωωωω
αα
&
&
[ ]Tαω &00=
131313Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it13
Si consideri la trasformazione omogenea (non compatta)
La derivata rispettoal tempo diventa
Uso dell’operatore S(t)
BAB
AOrigB
A pRpp += _
BAB
BAB
AOrigB
A pRpRpp &&&& ++= _
141414Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it14
Applicando ancora la definizione della derivata della matrice di rotazione si ottiene
Indicando con il vettore
Uso dell’operatore S(t)
BAB
AB
BAB
AOrigB
A
BAB
BAB
AOrigB
A
pRSpRpp
pRpRpp
)(_
_
ω++=
++=
&&&
&&&&
ABr BA
B pR
AB
AB
BAB
AOrigB
A rpRpp ×++= ω&&& _
151515Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it15
Consideriamo il generico braccio i della catena cinematica del manipolatore
•Il braccio i connette i giunti i e i+1•La terna i è solidale al braccio•Pi-1 e Pi sono i vettoridi posizione delleorigini dei sistemi
Consideriamo
Velocità di un Braccio
1,111
−−−− += iiiiii rRpp
161616Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it16
Per quanto già visto si può calcolare la derivata rispetto al tempo ottenendo
E quindi
Che esprime la velocità lineare del braccio i in funzione delle velocità lineare ed angolare del braccio i-1
Velocità di un Braccio
1,111
1,111
1,111
−−−−
−−−−
−−−−
×++=⇓+=
iiiii
iiiiii
iiiiii
rRrRpp
rRpp
ω&&&
iiiiiii rvpp ,11,11 −−−− ×++= ω&&
171717Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it17
In considerazione del fatto che vale la relazione
La formula generale
Può essere “particolarizzata” a seconda che si tratti di un giunto di tipo prismatico o rotoidale
Velocità di un Braccio
iiiiiii rvpp ,11,11 −−−− ×++= ω&&
iiii ,11 −− += ωωω
181818Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it18
L’orientamento della terna non varia
La velocità lineare risulta definita come
Di conseguenza le velocità angolari e lineari diventano
Velocità - Giunto Prismatico
1,1 −− = iiii zdv &
0,1 =− iiω
iiiiiii
ii
rzdpp ,111
1
−−−
−
×++==
ωωω
&&&
191919Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it19
In questo caso abbiamo
La velocità lineare risulta definita come
Di conseguenza le velocità angolari e lineari diventano
Velocità - Giunto Rotoidale
iiiiii rv ,1,1,1 −−− ×=ω
1,1 −− = iiii zθ&ω
iiiii
iiii
rppz
,11
11
−−
−−
×+=+=ωθωω
&&
&
202020Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it20
Consideriamo l’operatore Jacobiano partizionato secondo vettori colonna (3x1)
E indichiamo con
Calcolo dello Jacobiano
=
n
n
jOjO
jPjPJ
1
1
L
angolare velocitàalla contributo il lineare velocitàalla contributo il
ii
ii
jOqjPq
&
&
212121Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it21
Per quanto visto prima si puo’ scrivere
Giunto prismatico
Giunto rotoidale
Calcolo dello Jacobiano
0011
=⇒==⇒= −−
iii
iiiiii
jOjOqzjPzdjPq
&
&&
( ) ( )11
1111,1,1
−−
−−−−−−
=⇒=−×=⇒−×=×=
iiiiii
iiiiiiniiiii
zjOzjOqppzjPppzrjPq
θθω&&
&&
222222Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it22
In definitiva
Dove:•Zi-1 è dato dalla terza colonna della matrice•P è dato dai primi tre elementi della quarta colonna di•Pi-1 dai primi tre elementi della quarta colonna di
Calcolo dello Jacobiano
( )
−×
=
−
−−
−
rotoidale giuntoun per
prismatico giuntoun per 0
1
11
1
i
ii
i
i
i
zppz
z
jOjP
01−iR
0nT0
1−iR
232323Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it23
Torniamo a considerare il manipolatore planare a tre bracci
Applicando le regole di costruzione dello Jacobiano
Esempio
( ) ( ) ( ) ( )
−×−×−×=
210
221100
zzzppzppzppz
qJ
242424Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it24
I vettori di posizione dei vari bracci si ottengono dalla composizione delle matrici di trasformazione
Mentre i versori degli assi sono dati da
Esempio
++++
=
++
=
=
=
000000
123312211
123312211
312211
12211
211
11
10 sasasacacaca
psasacaca
psaca
pp
===
100
210 zzz
252525Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it25
Svolgendo i calcoli, la matrice del Jacobiano risulta essere data dalla seguente
Esempio
−
+−−
++−−−
=
100
100
100
0001233
1233
1233122
1233122
123312211
123312211
casa
cacasasa
cacacasasasa
J
262626Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it26
Nota:Solo tre righe non sono nulle (rango 3 della matrice)
•Le prime due righe caratterizzano le componenti di velocità lineare lungo gli assi X0 e Y0
•L’ultima riga rappresenta invece la componente angolare rispetto all’asse Z0
Avendo solo 3 DOF si possono specificare solo 3 componenti di velocità
Esempio
272727Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it27
E’ calcolabile se posizione e orientamento sono espressi tramite rappresentazioni minime (angoli di Eulero ZYZ)
In questo caso è possibile ricavare lo Jacobianodirettamente dalla derivazione della funzione k della cinematica diretta
Jacobiano Analitico
( )qkx =
282828Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it28
Velocità di traslazione della terna utensile =
Derivata rispetto al tempo del vettore di posizione del tool
Jacobiano AnaliticoRotazione e Traslazione
( )qqJqqpp P &&& =∂∂
=
292929Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it29
Velocità di rotazione della terna utensile =
Derivata rispetto al tempo della rappresentazione minima (ZYZ) dell’orientazione del tool
Nota: Solitamente non coincide con la controparte dello Jacobiano geometrico
Jacobiano AnaliticoRotazione e Traslazione
( )qqJqq
&&&φ
φφ =∂∂
=
303030Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it30
Per quanto visto possiamo rappresentare in modo compatto lo Jacobiano analitico
E quindi
Jacobiano Analitico
( )( ) ( )qqJqqJqJp
x AP
&&&
&& =
=
=
φφ
( ) ( )qqkqJA ∂
∂=
313131Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it31
Velocità di rotazione in terna corrente di Eulero ZYZ
Jacobiano Analitico
Composizione delle velocità di rotazione in terna di Eulero ZYZ
323232Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it32
Se si considerano le velocità riportate in figura per la terna ZYZ si hanno le seguenti
•Per effetto di
•Per effetto di
•Per effetto di
Relazione Tra ω e φ
[ ] [ ][ ] [ ][ ] [ ]TT
zyx
TTzyx
TTzyx
csssc
cs
ϑϑϕϑϕψωωωψ
ϕϕϑωωωϑ
ϕωωωϕ
&&
&&
&&
=
−=
=
:
0 :
100 :
333333Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it33
La relazione che lega le velocità angolari nelle due rappresentazioni è la seguente
Relazione Tra ω e φ
( )φφφϑϑϕϕϑϕϕ
ω && Tcsscscs
=
−=
0100
343434Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it34
Una volta definita la trasformazione T(φ) si può scrivere
e quindi
Relazione Tra i Due Jacobiani
( ) ( )xTxT
Iv A && φ
φ=
=
00
( ) AA JTJ φ=
353535Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it35
Lo Jacobiano definisce una trasformazione tra il vettore delle velocità ai giunti e il vettore delle velocità dell’organo ternimale
Lo Jacobiano è funzione della configurazione qassunta nello spazio dei giunti
I valori di q per cui lo Jacobiano J diminuisce di rango identificano delle singolarità cinematiche
Singolarità Cinematiche
( )qqJv &=
363636Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it36
Importanza delle singolarità cinematiche:
• Rappresentano configurazioni per cui si ha perdita di mobilità della struttura• Per la data configurazione si possono presentare infinite soluzioni per il calcolo della cinematica inversa• Nell’intorno di una singolarità, velocità minime nello spazio operativo possono portare a velocitàelevate nello spazio dei giunti
Singolarità Cinematiche
373737Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it37
Classificazione dell singolarità cinematiche:• Ai confini dello spazio di lavoroSi presentano nelle configurazioni in cui il manipolatore è completamente esteso o completamente ripiegato su se stessoNon rappresentano un grosso inconveniente• All’interno dello spazio di lavoroCausate solitamente dall’allineamento di qualche asse di giuntoSono un problema perchè possono interessare traiettorie di lavoro del manipolatore
Singolarità Cinematiche
383838Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it38
Manipolatore planare a due bracci
Il determinante della matrice risulta essere
Esempio
+
−−−=
12212211
12212211
cacacasasasa
J
( ) 221det saaJ =
393939Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it39
Nell’ipotesi in cui i bracci del manipolatore non abbiano lunghezza nulla
Il determinante si annulla per
Sono le due configurazioni di singolarità
Esempio
0, 21 ≠aa
πϑϑ
==
2
2 0
404040Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it40
Per strutture complesse l’analisi in base al comportamento del determinante non è banale
Come per l’inversione cinematica si tende a dividere il problema distinguendo tra:
•Singolarità della struttura portante
•Singolarità del polso
Disaccoppiamento delle Singolarità
414141Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it41
Consideriamo il caso del manipolatore antropomorfo con polso sferico
Lo Jacobiano risulta una matrice (6x6)•3 colonne per la struttura•3 colonne per il polso
Disaccoppiamento delle Singolarità
424242Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it42
Partizioniamo la matrice dello Jacobiano
Dove
Le singolarità non dipendono dalle scelte fatte per descrivere la cinematica ma dalla meccanica del manipolatore
Disaccoppiamento delle Singolarità
=
2221
1211
JJJJ
J
[ ][ ]54322
55443312 )()()(zzzJ
ppzppzppzJ=
−×−×−×=
434343Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it43
Imponiamo che il sistema di riferimento dell’organo teriminale abbia origine sul punto di intersezione degli assi del polsoIn tal caso si ottiene
E quindi il calcolo deldeterminante diventa
Disaccoppiamento delle Singolarità
[ ]00012 =J
( ) ( ) ( )2211 detdetdet JJJ =
444444Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it44
In definitiva il determinante dello Jacobiano si annulla se uno dei due “sotto-determinanti” è nullo
• La condizione
Conduce alle singolarità della struttura portante
• La condizione
Conduce alle singolarità di polso
Disaccoppiamento delle Singolarità
( ) ( ) ( )2211 detdetdet JJJ =
( ) 0det 11 =J
( ) 0det 22 =J
454545Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it45
Le singolarità di polso solo legate quindi all’annullamento del determinante del blocco J22
Che per costruzione sappiamo essere
I versori Z devono quindi essere linearmente dipendentiData la struttura questo accade solo quando Z3 e Z5sono allineati
Singolarità di Polso
( ) 0det 22 =J
[ ]54322 zzzJ =
464646Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it46
La singolarità di polso è data quindi per
In particolare, per un angolo pari a π la perdita di mobilità ha due conseguenze:
• Rotazioni uguali e opposte su θ4 e θ6 non hanno effetto
• Nessuna rotazione è possibile sull’asse ortogonale a Z4 e Z6
Singolarità di Polso
πθθ == 55 0
474747Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it47
Consideriamo ora il determinante del blocco J11 per il manipolatore antropomorfo
L’annullamento del determinante si ha in due casi
Singolarità della Struttura Portante
( ) )(det 2332233211 cacasaaJ +−=
00 233223 =+= cacas
484848Master in Informatica Medica , Corso di Robotica, Parte 8ALTAIR -- Computer Science Department – University of Verona
http://metropolis.sci.univr.it48
Caso 1:Il manipolatore è tuttosteso o tutto ritratto
Caso 2:Il polso si trova sull’assegi rotazione del primogiunto (∞ soluzioni)
Singolarità della Struttura Portante
03 =s
023322 =+ cacaπθθ == 33 0
0== yx pp