Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Slides PDF
Slides PDF
Bruno SICILIANO
ROBOTICA
Radici culturali
? mitologia
? automa
? robot (robota = lavoro esecutivo)
? letteratura fantascientifica
Robotica avanzata
? spiccate caratteristiche di autonomia
? applicazioni in ambiente ostile (spaziale, sottomarino, nu-
cleare, militare, ...)
? missioni di servizio (applicazioni domestiche, assistenza
medica, assistenza ai disabili, agricoltura, ...).
? ancora in età infantile
Robotica industriale
? progettazione, governo e applicazioni dei robot in ambito
industriale
? tecnologia matura
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Robot industriale
? macchina con elevate caratteristiche di versatilit à e flessibi-
lità
? un robot è una struttura meccanica multifunzionale e ripro-
grammabile progettato per spostare materiali, parti, utensili
o dispositivi specializzati secondo movimenti variabili pro-
grammati per l’esecuzione di una variet à di compiti diversi
(Robot Institute of America, 1980)
? componente tipico di sistemi di automazione programma-
bile
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ROBOT INDUSTRIALE
Componenti:
? una struttura meccanica o manipolatore che consiste in un
insieme di corpi rigidi (bracci) interconnessi tra di loro per
mezzo di articolazioni (giunti); nel manipolatore si indivi-
duano una struttura portante, che ne assicura mobilit à, un
polso, che conferisce destrezza, e un organo terminale che
esegue il compito per cui il robot è utilizzato
? attuatori che imprimono il movimento al manipolatore at-
traverso l’azionamento dei giunti; si impiegano usualmente
motori elettrici, idraulici e talvolta pneumatici
? sensori che misurano lo stato del manipolatore (sensori pro-
priocettivi) ed eventualmente lo stato dell’ambiente (sensori
eterocettivi)
? una unità di governo (calcolatore) con funzioni di controllo
e supervisione dei movimenti del manipolatore
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
CAPACITÀ DI IMPIEGO
trasporto
? palettizzazione (disposizione di oggetti in maniera preordi-
nata su un opportuno supporto raccoglitore)
? carico e scarico di magazzini
? carico e scarico di macchine operatrici e macchine utensili
? selezione e smistamento di parti
? confezionamento di merci
manipolazione (lavorazione/assemblaggio)
? saldatura ad arco e a punti
? verniciatura a spruzzo
? fresatura e trapanatura
? incollaggio
? taglio laser e a getto d’acqua
? finitura
? assemblaggio di gruppi meccanici ed elettrici
? montaggio di schede elettroniche
? avvitatura
? cablaggio
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
misura
? collaudo dimensionale
? rilevamento di profili
? individuazione di difetti di fabbricazione
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore cartesiano
Manipolatore a portale
Manipolatore cilindrico
Manipolatore sferico
operazioni di lavorazione
azionamenti elettrici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore SCARA
azionamenti elettrici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore antropomorfo
applicazioni molteplici
azionamenti elettrici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Polso sferico
giunti rotoidali
? determinano l’orientamento dell’organo terminale
Organo terminale
Robot AdeptOne XL
MODELLISTICA E CONTROLLO DI
MANIPOLATORI
Modellistica
? struttura meccanica (cinematica + cinematica differenziale
+ statica + dinamica)
? attuatori
? sensori
Controllo
? pianificazione del moto
? controllo nello spazio libero
? controllo nello spazio vincolato
? unità di governo
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Cinematica
Cinematica differenziale
Statica
Dinamica
Pianificazione di traiettorie
Controllo dell’interazione
Attuatori e sensori
Unità di governo
CINEMATICA
Matrice di rotazione
Rappresentazioni dell’orientamento
Trasformazioni omogenee
Cinematica diretta
Calibrazione cinematica
POSIZIONE E ORIENTAMENTO DI UN
CORPO RIGIDO
Posizione
2 o0x 3
o0 = 4 o0y 5
o0z
Orientamento
MATRICE DI ROTAZIONE
RT R = I
RT = R; 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Rotazioni elementari
rotazione di intorno a z
2 cos ;sin 0
3
Rz () = 4 sin cos 05
0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
rotazione di intorno a y
2 cos 0 sin 3
Ry ( ) = 4 0 1 0 5
;sin 0 cos
rotazione di
intorno a x
21 0 0
3
Rx(
) = 4 0 cos
;sin
5
0 sin
cos
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Rappresentazione di un vettore
2 px 3 2 p0x 3
p = 4 py 5 p0 = 4 p0y 5
pz p0z
2 3
p = 4 x0 y0 z0 5 p0
= Rp0
p0 = R T p
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
Rotazione di un vettore
p = Rp0
pT p = p0T RT Rp0
Esempio
Matrice di rotazione
? fornisce l’orientamento di una terna di coordinate rispetto
ad un’altra: i vettori colonna sono i coseni direttori degli
assi della terna ruotata rispetto alla terna di partenza
? rappresenta una trasformazione di coordinate che mette in
relazione le coordinate di uno stesso punto in due terne
differenti (di origine comune)
? è l’operatore che consente di ruotare un vettore in una stessa
terna di coordinate
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
COMPOSIZIONE DI MATRICI DI
ROTAZIONE
p =R p
1 1
2
2
p =R p
0 0
1
1
p =R p
0 0
2
2
R =R R
0
2
0
1
1
2
R =R R
0
2
1
2
0
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ANGOLI DI EULERO
matrice di rotazione
? 9 parametri con 6 vincoli
Angoli ZYZ
2 c c c ; s s ;c c s ; s c c s 3
' # ' ' # ' ' #
= 4 s' c# c + c' s ;s' c# s + c' c s' s# 5
;s# c s# s c#
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Problema inverso
? Assegnata 2r 3
r12 13 r
R = 4r r 5
11
21 r22 23
r31 r32 r33
Angoli di RPY
Problema inverso
? Assegnata 2r 3
r12 13r
R = 4r r 5
11
21 r22 23
r31 r32 r33
= Atan2(r32 ; r33 )
= Atan2(;r32; ;r33 )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ASSE/ANGOLO
sin = q ry cos = q rx
rx2 + ry2 rx2 + ry2
q
sin = rx2 + ry2 cos = rz
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 r (1 ; c ) + c r r (1 ; c ) ; r s
x
2
# # x y # z #
6
R(#; r) = 4 rxry (1 ; c# ) + rz s# ry (1 ; c#) + c#
2
rx rz (1 ; c# ) ; ry s# ry rz (1 ; c# ) + rx s#
rx rz (1 ; c# ) + ry s#
3
ry rz (1 ; c# ) ; rx s# 5
rz2 (1 ; c# ) + c#
Problema inverso
? Assegnata 2r 3
r12 13 r
R = 4r r 5
11
21 r22 23
r31 r32 r33
r + r + r ; 1
# = cos ;
1 11
2
22 33
2r ;r 3
r = 1 4r ;r 5
32 23
2 sin # r13 31
21 ; r12
con
rx2 + ry2 + rz2 = 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
QUATERNIONE UNITARIO
= cos #2
= sin #2 r
Problema inverso
? Assegnata 2r 3
r12 13
r
R = 4r r 5
11
21 r22 23
r31 r32 r33
il quaternione è ( 0)
p
= 12 r11 + r22 + r33 + 1
2 sgn (r32 ; r23)pr11 ; r22 ; r33 + 1 3
= 12 64 sgn (r13 ; r31)ppr22 ; r33 ; r11 + 1 75
sgn (r21 ; r12 ) r33 ; r11 ; r22 + 1
quaternione estratto da R ; = RT
1
Q1 Q2 = f1 2 ; T1 2 ; 1 2 + 2 1 + 1 2 g
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
TRASFORMAZIONI OMOGENEE
p =o +R p
0 0
1
0
1
1
Trasformazione inversa
p = ;R o + R p
1 1
0
0
1
1
0
0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Rappresentazione omogenea
2 3
p~ = 64 p 75
1
2 3
A = 64 R o 75
0 0
0 1 1
1
0T 1
Trasformazione di coordinate
p~ = A p~
0 0
1
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Trasformazione inversa
p~ = A p~ = ;A ; p~
1 1
0
0 0
1
1 0
ove 2 3
A = 64 R ;R o 75
1 1 0
1 0 0 1
0
0T 1
A; 6= AT 1
Successione di trasformazioni
p~ = A A : : : Ann; p~n
0 0
1
1
2
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
CINEMATICA DIRETTA
Manipolatore
? insieme di bracci connessi tramite giunti
Grado di mobilità
? tipicamente associato a una articolazione = variabile di
giunto
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 3
6 n
T e (q ) = 4 e e
b b sb abe pbe 75
0 0 0 1
20 s 12 c12 a1 c1 + a2 c12 3
= 64 01 ;c012 s12 a1 s1 + a2 s12 75
0 0
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Catena aperta
Convenzione di Denavit-Hartenberg
Parametri di Denavit-Hartenberg
ai distanza di Oi da Oi0 ;
di coordinata su zi;1 di Oi0 ;
i angolo intorno all’asse x i tra l’asse zi;1 e l’asse zi valutato
positivo in senso antiorario;
#i angolo intorno all’asse z i;1 tra l’asse xi;1 e l’asse xi valutato
positivo in senso antiorario.
Trasformazione di coordinate
2 c# ;s# 0 0 3
Aii; = 64 s0# c0# 01 d0i 75
i i
1 i i
0
0 0 0 1
2 1 0 0 ai 3
Aii = 64 00 sc ;cs 00 75
0
i
i i
i
0 0 0 1
2 c# ;s# c s# s aic# 3
Aii; (qi) = Aii; Aii = 64 s0# c#sc ;cc# s aidsi# 75
i i i i i i
0
1 1 i i i i i i
0
i i
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Procedura operativa
1. Individuare e numerare consecutivamente gli assi dei giunti;
assegnare, rispettivamente, le direzioni agli assi z 0 , : : : , zn;1
2. Fissare la terna base posizionandone l’origine sull’asse z 0 ; gli
assi x0 e y0 sono scelti in maniera tale da ottenere una terna
levogira
Eseguire i passi da 3 a 5 per i = 1; : : : ; n ; 1:
3. Individuare l’origine O i all’intersezione di zi con la normale
comune agli assi zi;1 e zi . Se gli assi zi;1 e zi sono paralleli e
il giunto i è rotoidale, posizionare O i in modo da annullare d i ;
se il giunto i è prismatico, scegliere O i in corrispondenza di
una posizione di riferimento per la corsa del giunto (ad esempio
un fine-corsa)
4. Fissare l’asse xi diretto lungo la normale comune agli assi z i;1
e zi con verso positivo dal giunto i al giunto i + 1
5. Fissare l’asse yi in modo da ottenere una terna levogira
Per completare:
6. Fissare la terna n, allineando z n lungo la direzione di zn;1 se il
giunto n è rotoidale, ovvero scegliendo z n in maniera arbitraria
se il giunto n è prismatico; fissare l’asse x n in accordo al punto 4
7. Costruire per i = 1; : : : ; n la tabella dei parametri a i ; di ; i ; #i
8. Calcolare sulla base dei parametri di cui al punto 7 le matrici
A
di trasformazione omogenea ii;1 (qi ) per i = 1; : : : ; n
9. Calcolare Tn (q ) = A : : : Ann;
0 0
1
1
che fornisce posizione e
orientamento della terna n rispetto alla terna 0
10. Assegnate T b e T n , calcolare la funzione cinematica diretta
e
Te (q) = T Tn Te che fornisce posizione e orientamento della
0
b b n 0
0
terna utensile rispetto alla terna base
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Catena chiusa
Vincoli
? giunto j + 1 rotoidale
(
Rij (q0) ;pij (q0) ; pik (q00) = [ 0 0 djk ]T
zji (q0) = zki (q00)
? giunto j + 1 prismatico
8 xiT (q0) ; 0
>
> j pi (q0 ) ; pi (q00 ) =
< yj (q ) j
iT 0 k 0
>
> z i (q0 ) = z i (q00 )
j
: xiT (q0)xi (kq00) = cos #jk
j k
? risolti in termini di q : : :
Tn (q) = Ai Aij Ajn
0 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Procedura operativa
1. Selezionare un giunto non attuato della catena chiusa. Ipotizzare
di aprire tale giunto in modo da ottenere una catena aperta con
struttura ad albero
2. Calcolare le trasformazioni omogenee secondo la convenzione
di Denavit-Hartenberg
3. Trovare i vincoli di uguaglianza per le due terne connesse dal
giunto di taglio
4. Risolvere i vincoli in termini di un numero ridotto di variabili
di giunto
5. Esprimere le trasformazioni omogenee in funzione di tali va-
riabili di giunto e calcolare la funzione cinematica diretta per
composizione della varie trasformazioni dalla terna base alla
terna utensile
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio ai i di #i
1 a1 0 0 #1
2 a2 0 0 #2
3 a3 0 0 #3
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 ci ;si 0 aici 3
Aii; = 64 s0i c0i 01 ai0si 75
1
i = 1; 2; 3
0 0 0 1
T =A A A
0
3
0
1
1
2
2
3
Manipolatore a parallelogramma
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio ai i di #i
10 a1 0 0 0 #10
20 a2 0 0 0 #20
30 a3 0 0 0 #30
100 a1 00 0 0 #100
4 a4 0 0 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
A (q0) = A A A
0 0 10 20
30
2c 10
;s
10 20 30
20 30
10 20 30 0 a1 c1 + a2 c1 2 + a3 c1 2 3
0 0 0 0 0 0 0 0 0
3
= 64 s 0 c
10 20 30
0
10 20 30 0 a1 s1 + a2 s1 2 + a3 s1 2 3
1
0 0
0
0 0 0 0 0 0 0 75
0 0 0 1
2 c ;s 100 0 a1 c1
100 00 00
3
A (q00 ) = 64 s0 c0
0
100
100 1 0 a1 s1
00
1 0
00 00 75
0 0 0 1
21 0 0 a4 3
A = 64 00 10 01
30
4
0 75
0
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Risoluzione vincoli
? orientamento (OK)
? posizione
203
R (q0) ;p (q0) ; p (q00) = 4 0 5
30
0
0
30
0
100
0
+
a1 (c1 + c1 2 3 ) + a1 (c1 2 ; c1 ) = 0
0 0 0 0 0 00 0 0 00
a1 (s1 + s1 2 3 ) + a1 (s1 2 ; s1 ) = 0
0 0 0 0 0 00 0 0 00
#2 = #1 ; #1 0 00 0
#3 = ; #2 = ; #1 + #1
0 0 00 0
Cinematica diretta
2 ;c s 0 a c ; a c 3 10 10 100 100 4 10
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore sferico
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio ai i di #i
1 0 ;=2 0 #1
2 0 =2 d2 #2
3 0 0 d3 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 c 0 ;s 0 3
1 1
2c 0 s 0 3
2 2
A = 64 s0 ;01 c0 00 75
0
1
1 1
A = 64 s0 01 ;0c d0 75
1
2
2 2
2
0 0 0 1 0 0 0 1
21 0 0 0 3
A = 64 00 10 01 d0 75
2
3
3
0 0 0 1
T =A A A
0
3
0
1
1
2
2
3
2 c c ;s c s c s d ; s d 3
1 2 1 1 2 1 2 3 1 2
= 64 s;sc c0 scs s s dc d+ c d 75
1 2 1 1 2 1 2 3 1 2
2 2 2 3
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore antropomorfo
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio ai i di #i
1 0 =2 0 #1
2 a2 0 0 #2
3 a3 0 0 #3
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2c 0 s 03
1 1
A = 64 s0 01 ;0c 00 75
0
1
1 1
0 0 0 1
2 ci ;si 0 ai ci 3
Aii; = 64 s0i
1 ci
0
0
1
aisi 75 i = 2; 3
0
0 0 0 1
T =A A A
0
3
0
1
1
2
2
3
2 c c ;c s
1 23 1 23 s1 c1 (a2 c2 + a3 c23 ) 3
= 64 ssc ;sc s
1 23 1 23 ;c1 s1 (a2 c2 + a3 c23 ) 75
0 a2 s2 + a3 s23
23 23
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Polso sferico
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio ai i di #i
4 0 ;=2 0 #4
5 0 =2 0 #5
6 0 0 d6 #6
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 c 0 ;s 0 3
4 4
2c 0 s 03
5 5
A = 64 s0 ;01 c0 00 75
3
4
4 4
A = 64 s0 01 ;0c 00 75
4
5
5 5
0 0 0 1 0 0 0 1
2 c ;s 0 0 3
6 6
A = 64 s0 c0 01 d0 75
5
6
6 6
6
0 0 0 1
T =A A A
3
6
3
4
4
5
5
6
2 c c c ; s s ;c c s ; s c c s c s d 3
4 5 6 4 6 4 5 6 4 6 4 5 4 5 6
= 64 s c ;c s +c c s ;s c ss s+ c c scs scsdd 75
4 5 6 4 6 4 5 6 4 6 4 5 4 5 6
5 6 5 6 5 5 6
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore di Stanford
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 3
T = T T = 64 n s a p 75
0 0 0 0
0 0 3
6 3 6
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2c s d ;s d ;
+ ;c (c c s + s c ) ; s s s d
3
p = 4s s d +c d + s (c c s + s c ) + c s s d 5
1 2 3 1 2 1 2 4 5 2 5 1 4 5 6
0
1 2 3 1 2 1 2 4 5 2 5 1 4 5 6
c2 d3 + (;s2 c4 s5 + c2 c5 )d6
2 c ;c (c c c ; s s ) ; s s c ; s (s c c + c s ) 3
0 4 ; 1 2 4 5 6
n = s c (c c c ; s s ) ; s s c + c (s c c + c s ) 5
4 6 2 5 6 1 4 5 6 4 6
1 2 4 5 6 4 6 2 5 6 1 4 5 6 4 6
;s (c c c ; s s ) ; c s c
2 4 5 6 4 6 2 5 6
2 c ;;c (c c s + s c ) + s s s ; s (;s c s + c c ) 3
s = 4 s ;;c (c c s + s c ) + s s s + c (;s c s + c c ) 5
1 2 4 5 6 4 6 2 5 6 1 4 5 6 4 6
0
1 2 4 5 6 4 6 2 5 6 1 4 5 6 4 6
s (c c s + s c ) + c s s
2 4 5 6 4 6 2 5 6
2 c (c c s + s c ) ; s s s 3
a = 4 s (c c s + s c ) + c s s 5
1 2 4 5 2 5 1 4 5
0
1 2 4 5 2 5 1 4 5
;s2 c4 s5 + c2 c5
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio ai i di #i
1 0 =2 0 #1
2 a2 0 0 #2
3 0 =2 0 #3
4 0 ;=2 d4 #4
5 0 =2 0 #5
6 0 0 d6 #6
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2c 0 s 033 3
2 c 0 ;s 0 34 4
A = 64 s0 01 ;0c 00 75
2
3
3 3
A = 64 s0 ;01 c0 d0 75
3
4
4 4
4
0 0 0 1 0 0 0 1
2 a c c + d c s + d ;c (c c s + s c ) + s s s 3
04
2 1 2
;
p = a s c + d s s + d s (c c s + s c ) ; c s s 5
4 1 23
6 1 23 4 5 23 5 1 4 5
2 1 2 4 1 23 6 1 23 4 5 23 5 1 4 5
a2 s2 ; d4 c23 + d6 (s23 c4 s5 ; c23 c5 )
2 c ;c (c c c ; s s ) ; s s c + s (s c c + c s ) 3
n = 4 s ;c (c c c ; s s ) ; s s c ; c (s c c + c s ) 5
1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6
0
1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6
s (c c c ; s s ) + c s c
23 4 5 6 4 6 23 5 6
2 c ;;c (c c s + s c ) + s s s + s (;s c s + c c ) 3
s = 4 s ;;c (c c s + s c ) + s s s ; c (;s c s + c c ) 5
1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6
0
1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6
;s (c c s + s c ) ; c s s 23 4 5 6 4 6 23 5 6
2 c (c c s + s c ) + s s s 3
a = 4 s (c c s + s c ) ; c s s 5
1 23 4 5 23 5 1 4 5
0
1 23 4 5 23 5 1 4 5
s23 c4 s5 ; c23 c5
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
q = 4 ... 5
qn
? qi = #i (giunto rotoidale)
? qi = di (giunto prismatico)
Spazio operativo
p
x=
? p (posizione)
? (orientamento)
Equazione cinematica diretta
x = k(q)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
2p 3 2a c +a c +a c 3
x
x = 4 py 5 = k(q) = 4 a s + a s + a s 5
1 1 2 12 3 123
1 1 2 12 3 123
#1 + #2 + #3
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Spazio di lavoro
Esempio
? configurazioni ammissibili
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? spazio di lavoro
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Accuratezza
? scostamento tra posizione conseguita con la postura asse-
gnata e posizione calcolata tramite la cinematica diretta
? valori tipici: (0:2; 1) mm
Ripetibilità
? capacità del manipolatore di tornare in una posizione pre-
cedentemente raggiunta
? valori tipici: (0:02; 0:2) mm
Ridondanza cinematica
? m < n (intrinseca)
? r < m = n (funzionale)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
CALIBRAZIONE CINEMATICA
x = k(a; ; d; #)
xm locazione misurata
x = @@ ak a + @@k + @@ kd d + @@#k #
= (n )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
0 = n +
: : : finché converge
Inizializzazione
Cinematica diretta
? q =) T
? q =) x
Cinematica inversa
? T =) q
? x =) q
Complessità
? soluzione analitica (in forma chiusa) ?
? soluzioni multiple
? infinite soluzioni
? non esistono soluzioni ammissibili
Intuizione
? algebrica
? geometrica
Tecniche numeriche
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Soluzione algebrica
= #1 + #2 + #3
pWx = px ; a3 c = a1 c1 + a2 c12
pWy = py ; a3 s = a1 s1 + a2 s12
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
#3 = ; #1 ; #2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Soluzione geometrica
#2 = cos ;1 (c2 )
= Atan2(pWy ; pWx )
q
c p2Wx + p2Wy = a1 + a2 c2
0 1
@ pWx + pWy + a ; a A
2 2 2 2
= cos ; 1
q 1 2
#1 =
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
pW = p ; d a 6
Soluzione disaccoppiata
? p
calcolare la posizione del polso W (q1 ; q2 ; q3 )
? risolvere la cinematica inversa per (q 1 ; q2 ; q3 )
? calcolare R (q ; q ; q )
0
3 1 2 3
? calcolare R (# ; # ; # ) = R T R
3
6 4 5 6
0
3
1 ; t2
c1 = 1 + t2 s1 = 1 +2tt2
q
#1 = 2Atan2 ;pWx pWx + pWy ; d ; d2 + pWy
2 2 2
2
pWx c1 + pWy s1 = d3 s2
;pWz ;d3 c2
#2 = Atan2(pWx c1 + pWy s1 ; pWz )
q
d3 = (pWx c1 + pWy s1 )2 + p2Wz
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
pWx 6= 0 pWy 6= 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 nx sx ax 3
3 3 3
R = 4 ny sy ay 5
3
6
3 3 3
#4 = Atan2(a3y ; a3x )
q 3 2 3 2 3
#5 = Atan2 (ax ) + (ay ) ; az
#6 = Atan2(s3z ; ;n3z )
#4 = Atan2(;a3y ; ;a3x)
q 3 2 3 2 3
#5 = Atan2 ; (ax ) + (ay ) ; az
#6 = Atan2(;s3z ; n3z )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
CINEMATICA DIFFERENZIALE
Jacobiano geometrico
Jacobiano analitico
Singolarità cinematiche
STATICA
JACOBIANO GEOMETRICO
2 3
T (q) = 64 R(q) p(q) 75
0T 1
Obiettivo
p_ = JP (q)q_
! = JO (q)q_
p_
v = ! = J (q)q_
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
R(t)RT (t) = I
R_ (t)RT (t) + R(t)R_ T (t) = O
Esempio
2 cos ;sin 0
3
Rz () = 4 sin cos 05
0 0 1
p =o +R p
0 0
1
0
1
1
p_ = o_ + R p_ + R_ p
0 0
1
0
1
1 0
1
1
= o_ + R p_ + S (! )R p
0
1
0
1
1 0
1
0
1
1
= o_ + R p_ + ! r
0
1
0
1
1 0
1
0
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Velocità di un braccio
Velocità lineare
Velocità angolare
Ri = Ri; Rii;
1
1
= !i; + !i; ;i
1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
!i = !i; + !i; ;i
1 1
Giunto prismatico
!i; ;i = 0
1
vi; ;i = d_izi;
1 1
!i = !i; 1
p_ i = p_ i; + d_izi; + !i ri; ;i
1 1 1
Giunto rotoidale
!i; ;i = #_ izi;
1 1
!i = !i; + #_ izi;
1 1
p_ i = p_ i; + !i ri; ;i
1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2| | 3
P Pn
J= 4 :::
1
5
|O |On
1
Velocità angolare
? giunto i prismatico
? giunto i rotoidale
Velocità lineare
? giunto i prismatico
? giunto i rotoidale
8 zi;
| >< 1
per un giunto prismatico
Pi = 0
|Oi >: zi; z(p ; pi; )
1 1
per un giunto rotoidale
i; 1
p_ t Rt
Ot p_
!t = O R !
= OR t Ot J q_
R
Rt Ot J
Jt = O R
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
z (p ; p ) z (p ; p ) z (p ; p )
J (q) = 0
z 0 z
0 1
z 1
1 2
2
2
203 2a c 3 2a c +a c 3
p = 405 p = 4a s 5 p = 4a s + a s 5
1 1 1 1 2 12
0 1 1 1 2 1 1 2 12
0 0 0
2a c +a c +a c 3
p = 4a s +a s +a s 5
1 1 2 12 3 123
1 1 2 12 3 123
0
203
z = z = z = 405
0 1 2
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 ;a s ; a s ; a s
1 1 2 12 3 123 ;a2 s12 ; a3 s123 ;a3 s123 3
66 a c + a c + a c
1 1 2 12 3 123 a2 c12 + a3 c123 a3 c123 77
J = 666 0
0
0
0
0
0
77
75
4 0 0 0
1 1 1
Manipolatore antropomorfo
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
z (p ; p ) z (p ; p ) z (p ; p )
J= z
0
z
0
0
z
1
1
1 2
2
2
203 2a c c 3
p = p = 405 p = 4a s c 5
2 1 2
0 1 2 2 1 2
0 as
2 c (a c + a c ) 3
2 2
p = 4 s (a c + a c ) 5
1 2 2 3 23
1 2 2 3 23
a2 s2 + a3 s23
203 2s 3
z = 4 0 5 z = z = 4 ;c 5
1
0 1 2 1
1 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 ;s (a c + a c ) ;c (a s + a s ) ;a c s
1 2 2 3 23 1 2 2 3 23 3 1 23
3
66 c (a c + a c ) ;s (a s + a s ) ;a s s
1 2 2 3 23 1 2 2 3 23 3 1 23 77
J = 666 0
0
a c +a c
s
ac
2 2
s
3 23 3 23 77
75
4 0 ;c ;c
1
1
1
1
1 0 0
2 ;s (a c + a c ) ;c (a s + a s ) ;a c s 3
JP = 4 c (a c + a c ) ;s (a s + a s ) ;a s s 5
1 2 2 3 23 1 2 2 3 23 3 1 23
1 2 2 3 23 1 2 2 3 23 3 1 23
0 a2 c2 + a3 c23 a3 c23
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore di Stanford
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
z (p ; p ) z (p ; p ) z
J= z
0
z 0 0
0 1
1
1 2
z (p ; p ) z (p ; p ) z (p ; p )
z z z
3 3 4 4 5 5
3 4 5
203 2c s d ; s d 3
p = p = 405 p = p = p = 4s s d + c d 5
1 2 3 1 2
0 1 3 4 5 1 2 3 1 2
0 c2 d3
2 c s d ; s d + d (c c c s + c c s ; s s s ) 3
p = 4 s s d + c d + d (c s s + c c s s + c s s ) 5
1 2 3 1 2 6 1 2 4 5 1 5 2 1 4 5
1 2 3 1 2 6 1 4 5 2 4 1 5 5 1 2
c2 d3 + d6 (c2 c5 ; c4 s2 s5 )
203 2 ;s 3 2c s 3
z = 405 z = 4 c 5 z = z = 4s s 5
1 1 2
0 1 1 2 3 1 2
1 0 c2
2 ;c c s ; s c 3 2c c c s ;s s s +c s c 3
z = 4 ;s c s + c c 5 z = 4 s c c s + c s s + s s c 5
1 2 4 1 4 1 2 4 5 1 4 5 1 2 5
4 1 2 4 1 4 5 1 2 4 5 1 4 5 1 2 5
s2 s4 ;s2 c4 s5 + c2 c5
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
JACOBIANO ANALITICO
p = p(q)
= (q)
p_ = @@pq q_ = JP (q)q_
_ = @@q q_ = J(q)q_
p_ JP (q)
x_ = _ = J(q) q_
= JA (q)q_
JA(q) = @ k@(qq)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 0 ;s c s 3
' ' #
! = 4 0 c' s' s# 5 _ = T ()_
1 0 c#
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Significato fisico di !
! = [ =2 0 0 ]T 0 t 1 ! = [ 0 =2 0 ]T 0 t 1
! = [ 0 =2 0 ]T 1 < t 2 ! = [ =2 0 0 ]T 1 < t 2
Z 2
!dt = [ =2 =2 0 ]T
0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
I O
v = O T () x_ = TA ()x_
J = TA ()JA
Jacobiano geometrico
? grandezze di significato fisico
Jacobiano analitico
? grandezze differenziali di variabili nello spazio operativo
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
SINGOLARITÀ CINEMATICHE
v = J (q)q_
se J diminuisce di rango =) singolarit à cinematiche
(a) perdita di mobilità
(b) infinite soluzioni al problema cinematico inverso
(c) velocità elevate nello spazio dei giunti (nell’intorno di una
singolarità)
Classificazione
? Singolarità ai confini dello spazio di lavoro raggiungibile
? Singolarità all’interno dello spazio di lavoro raggiungibile
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Disaccoppiamento di singolarità
J J
J= J 11
21 J
12
22
J = z (p ; p ) z (p ; p ) z (p ; p )
12 3 3 4 4 5 5
J = z z z 22 3 4 5
p = pW =) pW ; pi paralleli a zi, i = 3; 4; 5
J = 0 0 0
12
det(J11 ) = 0 det(J22 ) = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Singolarità di polso
z3 parallelo a z5
#5 = 0 #5 =
Manipolatore antropomorfo
s3 = 0 a2 c2 + a3 c23 = 0
? Singolarità di gomito
#3 = 0 #3 =
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? Singolarità di spalla
px = py = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Cinematica differenziale
v = J (q)q_
? se %( J) = r
;
dim R(J ) = r
;
dim N (J ) = n ; r
? in generale
; ;
dim R(J ) + dim N (J ) = n
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Se N ( J ) 6= ;
q_ = q_ + P q_ a
ove
R(P ) N (J )
? verifica:
J q_ = J q_ + JP q_ a = J q_ = v
Zt
q(t) = q_ (& )d& + q(0)
0
Manipolatori ridondanti
q
Per una data configurazione , trovare le soluzioni q_ che sod-
disfino
v = J q_
e che minimizzino
g(q_ ) = 12 q_ T W q_
g(q_ ; ) = 21 q_ T W q_ + T (v ; J q_ )
@g T @g T
@ q_ = 0 @ = 0
? soluzione ottima
q_ = W ; J T (JW ; J T ); v
1 1 1
? W =I
q_ = J yv
se
J y = J T (JJ T );
ove
1
è la pseudo-inversa destra di J
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? come sopra : : :
? soluzione ottima
q_ = J yv + (I ; J yJ )q_ a
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
@w(q) T
q_ a = ka @ q
? misura di manipolabilit à
q ;
w(q) = det J (q)J T (q)
1 Xn
qi ; qi
2
w(q) = ; 2n
i=1 qiM ; qim
? distanza da un ostacolo
w(q) = min
p;o
kp(q) ; ok
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Singolarità cinematiche
J ? = J T (JJ T + k I );2 1
ove q_ minimizza
g00 (q_ ) = kv ; J q_ k2 + k2 kq_ k2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Inversione cinematica
Soluzione algoritmica
? errore nello spazio operativo
e = xd ; x
e_ = x_ d ; x_
= x_ d ; JA (q)q_
? trovare q_ = q_ (e): e ! 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
+
e_ + Ke = 0
V (e) = 12 eT Ke
ove
V (e) > 0 8e 6= 0 V (0) = 0
V_ (e) = eT K x_ d ; eT K x_
= eT K x_ d ; eT KJA (q)q_
? la scelta
q_ = JAT (q)Ke
comporta che
x 6= 0
Se _ d
? e(t) limitato (conviene aumentare la norma di K )
? e(1) ! 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
2 0 0 0
3
JPT = 4 ;c (a s + a s ) ;s (a s + a s )
1 2 2 3 23 1 2 2 3 23 0 5
;a3 c1 s23 ;a3 s1 s23 a3 c23
? J
nullo di PT
y = ; 1 z = 0
x tan #1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Errore di orientamento
Errore di posizione
eP = pd ; p(q)
e_ P = p_ d ; p_
Angoli di Eulero
eO = d ; (q)
e_ O = _ d ; _
p_ + K e
q_ = JA; (q) _ dd + KPO ePO
1
Asse/angolo
R(#; r) = Rd RT
? errore di orientamento
eO = r sin #
= 12 (n nd + s sd + a ad )
e_ O = LT !d ; L!
ove
1 ;
L = ; 2 S (nd)S (n) + S (sd)S (s) + S (ad)S (a)
e_ p_ ; J (q)q_
e_ = e_ OP = LT !dd ; LJ
P
O (q)q_
p_ I O
= LT d! ; O L J q_
d
p_ + K e
q_ = J ; (q) L; ;LdT !d +P KPO eO
1
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Quaternione unitario
Q = Qd Q;1
? errore di orientamento
!d ; ! + KO eO = 0
? propagazione del quaternione
_ = ; 12 T !
_ = 12 (I ; S ()) !
x = k(q)
2p 3 2a c +a c +a c 3
x
4 py 5 = 4 a s + a s + a s 5
1 1
1 1
2 12
2 12
3 123
3 123
#1 + #2 + #3
? a1 = a2 = a3 = 0:5 m
? traiettoria desiderata
0:25(1 ; cos t)
pd(t) = 0:25(2 + sin t) 0t4
t
d (t) = sin 24 0t4
e t = 1 ms
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
q_ = JA;1 (q)x_
−3
x 10 norma errore pos −5
x 10 errore orien
2 0
−0.2
1.5
−0.4
[rad]
[m]
1
−0.6
0.5
−0.8
0 −1
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1
5 1
2
[rad/s]
[rad]
0 0
3
−5 3
2
−5 −10
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
−5
x 10 norma errore pos −8
x 10 errore orien
1 0
0.8 −1
0.6 −2
[rad]
[m]
0.4 −3
0.2 −4
0 −5
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
libero (r = 2, n = 3)
q_ = J y (p_ d + KP eP )
P KP = diagf500; 500g
x 10
−6 norma errore pos orien
5 0.5
4
0
3
[rad]
[m]
2
−0.5
1
0 −1
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
0.008
0
0.006
[rad]
[m]
0.004
−0.5
0.002
0 −1
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
@w(q) T
? q_ a = ka @ q ka = 50
0 3 0
2
2 3
−5 −5
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
x 10
−6 norma errore pos manip
5 1
4
0.95
3
[rad]
[m]
2
0.9
1
0 0.85
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1 X3 qi ; qi 2
w (q ) = ; 6
i=1 qiM ; qim
6 6
4 4
2 2
[rad]
[rad]
0 0
−2 −2
−4 −4
−6 −6
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
pos giunto 3 −4
x 10 norma errore pos
5 2
1.5
[rad]
[m]
0 1
0.5
−5 0
0 1 2 3 4 5 0 1 2 3 4 5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
STATICA
Relazione tra forze e momenti (forze) all’organo terminale
e forze e/o coppie (coppie) ai giunti con il manipolatore in
configurazione di equilibrio
? lavoro elementare compiuto dalle coppie
dW = T dq
dW
= f T dp + T !dt
= f T JP (q)dq + T JO (q)dq
=
T J (q)dq
W = T q
W
=
T J (q)q
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
W = W
8q
+
= J T (q)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Dualità cineto-statica
p_ I ;S (r ) p_
! = O I !
2 12 1
2 1
r =R r
12
1
1 12
p_ = R p_
1 1
1
1 p_ = R p_ = R R p_
2 2
2
2 1
1
2
2
2
! =R !
1 1
1
1 ! =R ! =R R !
2 2
2
2 1
1
2
2
2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
p_ R ;R S (r ) p_
2 2 2 1 1
! = O
2 1 1 12 1
2
2 R ! 2
1
1
1
v =J v
2
2
2 1
1 1
= J T
1
1
2
1
2
2
f R
1
O f 1 2
= S (r )R R
1 2 2
1 1 1 1 2
1 12 2 2 2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Catena chiusa
a = T o
Manipolatore a parallelogramma
# #
qa = # 10
100
qu = # 200
300
21 03
= 64 ;01 11 75
1 ;1
; + 0
a = 11 + 22 ; 33
0
00
0
0
0
0
u = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ELLISSOIDI DI MANIPOLABILITÀ
q_ T q_ = 1
? manipolatore ridondante
q_ = J y(q)v
+
;
v J (q)J (q) ;1v = 1
T T
Assi
? u JJ T =) direzioni
autovettori i di
?
p
valori singolari = (JJ T ) =)
i i dimensioni
Volume
? proporzionale a
q ;
w(q) = det J (q)J (q)
T
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Misura di manipolabilità
w = jdet(J )j = a1 a2 js2 j
0.5
[m]
−0.5
−1
0 0.5 1 1.5 2
[m]
Valori singolari
2.5
max
2
1.5
[m]
1
min
0.5
0
0 0.5 1 1.5 2
[m]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
T = 1
+
;
J (q)J (q)
= 1
T T
Dualità cineto-statica
? una direzione lungo la quale si ha elevata manipolabilit à in
velocità è una direzione lungo la quale si ha scarsa manipo-
labilità in forza, e viceversa
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
0.5
[m]
−0.5
−1
0 0.5 1 1.5 2
[m]
0.5
[m]
−0.5
−1
0 0.5 1 1.5 2
[m]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
; = 1 2
(q) = uT J (q)J T (q)u
; ;
; = 1 2
(q) = uT J (q)J T (q) u 1
vel
piano di scrittura
forza
forza
vel
direzione di lancio
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
DINAMICA
Formulazione di Lagrange
Formulazione di Newton-Eulero
FORMULAZIONE DI LAGRANGE
L=T ;U
Equazioni di Lagrange
d @L ; @L = i = 1; : : : ; n
dt @ _ i @i i
? coordinate generalizzate
2 3
1
4 ... 5 = q
n
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
? energia cinetica
T = 12 I #_ 2 + 21 Im kr2#_ 2
? energia potenziale
U = mg`(1 ; cos #)
? lagrangiana
Energia cinetica
X
n
T= (T`i + Tmi )
i=1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio i
1 Z
T`i = 2 p_ i T p_ i dV
V`i
? baricentro
1 Z
p`i = m` pi dV
i V`i
? velocità lineare della particella elementare
p_ i = p_ ` + !i ri = p_ ` + S (!i)ri
i i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Traslazionale
1 Z p_ T p_ dV = 1 m p_ T p_
2 V`i `i `i 2 `i `i `i
Mutuo
!
2 2 1Z p_ T`i S (!i)ridV =
V`i
Z !
2 12 p_ T`i S (!i ) (pi ; p`i )dV = 0
V`i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Rotazionale
!
1Z riT S T (!i)S (!i)ridV = 12 !iT
Z
S T (ri)S (ri)dV !i
2 V`i V`i
= 12 !iT I`i !i
? tensore di inerzia
2 I ;I ;I 3
` xx ` xy ` xz
6
=4 I` yy ;I` yz 75
i
i
i i
I`i zz
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? velocità lineare
zj;
|Pj` = zj; (p` ; pj; )
( i) 1
1 i 1
per un giunto prismatico
per un giunto rotoidale
? velocità angolare
0
|Oj` = zj; per
( i) un giunto prismatico
per un giunto rotoidale
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? trasmissione rigida
!m = !i; + kriq_izm
i 1 i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Tm = 12 mm p_ Tm p_ m + 12 !mT Im !m
i i i i i i i
? velocità lineare
zj;
|Pjm
( i)
= zj; (pm ; pj; )
1
1 i 1
per un giunto prismatico
per un giunto rotoidale
? velocità angolare
(
|Ojmi) =
( |Oj`
( i)
j = 1; : : : ; i ; 1
kri zm i j=i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1 Xn X n
T =2 bij (q)q_i q_j = 12 q_ T B (q)q_
i=1 j =1
Matrice di inerzia
n
X
B(q) = m`i JP(`i )T JP(`i ) + JO(`i )T RiI`ii RiT JO(`i )
i=1
+mmi JPmi )T JP(mi ) + JO(mi )T Rmi Immii Rm
( T J (mi )
i O
? simmetrica
? definita positiva
? dipendente dalla configurazione (in generale)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Energia potenziale
X
n
U= (U`i + Umi )
i=1
Braccio i
Z
U` = ;i gT pi dV = ;m` gT p`
0 i 0 i
V`i
Rotore i
Um = ;mm g0T pm
i i i
X
n
U =; (m`i g0T p`i + mmi g0T pmi )
i=1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Equazioni di Lagrange
d @L = d @T = X
n X
n db (q)
dt @ q_i bij (q)qj +
dt @ q_i
ij q_
j
j =1 j =1 dt
X n X n X n @b (q)
= bij (q)qj + ij q_ q_
@q k j
j =1 j =1 k=1 k
@T = 1 X
n X n @b (q)
jk q_ q_
@qi 2 j=1 k=1 @qi k j
@U = ; X
T @ p`j + mm gT @ pmj
n
@qi m ` g
j 0
@q i j 0
@qi
j =1
n
X
(`j ) (mj )
=; m`j g0 |Pi (q) + mmj g0 |Pi (q)
T T
j =1
= gi (q)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
X
n X
n X
n
bij (q)qj + hijk (q)q_k q_j + gi (q) = i i = 1; : : : ; n
j =1 j =1 k=1
ove
hijk = @b ij ; 1 @bjk
@q 2 @q
k i
? termini in accelerazione:
il coefficiente bii rappresenta il momento di inerzia visto
all’asse del giunto i, nella configurazione corrente del ma-
nipolatore, quando gli altri giunti sono bloccati
il coefficiente bij tiene conto dell’effetto dell’accelerazione
del giunto j sul giunto i
X
n X
n X
n
cij q_j = hijk q_k q_j
j =1 j =1 k=1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
X
n X
n X
n X n @b
n X 1 @b
cij q_j = hijk q_k q_j = ij ; jk q_k q_j
j =1 j =1 k=1 j =1 k=1 @qk 2 @qi
1X n X n @b 1 Xn Xn @b @b
=2 ij q_ q_ + ik ; @qjk q_k q_j
@qk k j 2 j=1 k=1 @qj
j =1 k=1 i
Elementi di C X
n
cij = cijk q_k
k=1
? simboli di Christoffel del primo tipo
cijk = 12 @bij + @bik ; @bjk
@qk @qj @qi
Proprietà notevole
Elementi di C
1X
n @b 1 X n
@bik ; @bjk q_
cij = 2 ij q
_ +
@qk k 2k @qj @qi k
k=1
n @b
=1
= 21 b_ ij + 21X ik @b jk
k=1 @qj ; @qi q_k
Elementi di N
n @b
X @b
nij = b_ ij ; 2cij = jk ; ik q_ = ;n
k
@qi ji
@qj
k=1
+
wT N (q; q_ )w = 0 8w
? se w = q_ :
q_ T N (q; q_ )q_ = 0 8C
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Ti = T` + Tm +1 i i
T` = 21 m`i p_ T` p_ ` + 12 !iT I` !i
i i i i
Tm +1 = 12 mm +1 p_ Tm +1 p_ m +1 + 21 !mT +1 Im +1 !m +1
i i i i i i i
p_ ` = p_ C + !i rC ;`
i i i i
p_ m +1 = p_ C + !i rC ;m +1
i i i i
rC ;` = p` ; pC
i i i i
rC ;m +1 = pm +1 ; pC
i i i i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Braccio
T` = 12 m`i p_ TC p_ C + p_ TC S (!i)m` rC ;`
i i i i i i i
Rotore
Energia cinetica
+ 12 kr;i
2
+1 q_i+1 zmi+1 Imi+1 zmi+1
2 T
+ 21 kr;i
2
+1 q_i+1 Imi+1
2
= 12 mip_ iT
i ip
_ i + p_ iT S (!i )mi ri + 1 !iT I^ i !i
i i i;Ci 2 i i i
+ kr;i+1 q_i+1 Imi+1 zmiTi+1 !ii + 12 kr;i
2
+1 q_i+1 Imi+1
2
i i
mi`Ci z
? tensore di inerzia
2 I + m (` + ` ) ;I ; m ` `
ixx i Cy Cz2
ixy 2
i Cx Cy
I^ii = 64
i i i i
Iiyy + mi(`C z + `C x ) 2
i
2
i
3
;Iixz ; mi `C x `C z
;Iiyz ; mi `C y `C z 75
i i
i i
Iizz + mi (`2Ci x + `C y ) 2
i
Energia potenziale
Ui = ;mig0iT piCi
lineare rispetto a:
? massa mi
? momento primo di inerzia
2m ` 3
i Cx
miri;C = 4 mi `C y 5
i i
i i
mi`Ci z
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Lagrangiana
X
n
L= (TT i ; UT i )i
i=1
? vettore (11 1) di parametri dinamici
X
n
i = yijT j
j =1
ove
T j + @ U j
yij = dtd @@q_Ti j ; @@q i @qi
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Proprietà notevole
2 3 2 yT yT : : : yTn 3 2 3 1
77 = 66 0T yT : : : yTn 77 66 77
1 11 12 1
66
5 64 ... ... . . . ... 75 64 ... 75
2 22 2 2
4 ..
.
n 0T 0T : : : ynn
T n
? in forma compatta:
= Y (q; q_ ; q)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Motori
? masse mmi
? momenti di inerzia Imi
? pmi = pi;1 zmi = zi;1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? Jacobiani
20 0
3 20 1
3
JP`1( )
= 40 05 JP`2
( )
= 40 05
1 0 1 0
20 0
3 20 0
3
JPm1 = 4 0
( )
05 JPm2
( )
= 40 05
0 0 1 0
20 0
3 20 kr2
3
JOm1 = 4 0
( )
05 JOm2
( )
= 40 0 5
kr1 0 0 0
Matrice di inerzia
m +m + k I +m 0
B = `1 m2 r m1 `2
2
1
0 m`2 + kr22 Im2
Forze gravitazionali
Motori
? masse mmi
? momenti di inerzia Imi
? pmi = pi;1 zmi = zi;1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? Jacobiani
2 ;` s 0 3 2 ;a s ; ` s 3
;`2s12
JP`1) = 4 ` c 05 JP`2) =4 a c +` c `c 5
1 1 1 1 2 12
( (
1 1 1 1 2 12 2 12
0 0 0 0
20 03 20 03
JO`1
( )
= 40 05 JO`2
( )
= 40 05
1 0 1 1
20 0
3 2 ;a s 0 3
JPm1) = 40 05 JPm2) = 4 a c 05
1 1
( (
1 1
0 0 0 0
2 0 03 20 0 3
JO(m1) = 4 0 0 5 JO(m2) = 4 0 0 5
kr1 0 1 kr2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Matrice di inerzia
b (# ) b (# )
B(q) = 11 2
b21 (#2 )
12
b22
2
b11 = I`1 + m`1 `21 + kr21 Im1 + I`2 + m`2 (a21 + `22 + 2a1`2 c2 )
+ Im2 + mm2 a21
b12 = b21 = I`2 + m`2 (`22 + a1 `2 c2 ) + kr2 Im2
b22 = I`2 + m`2 `22 + kr22 Im2
c111 = 21 @b
@q1 = 0
11
c112 = c121 = 21 @b
@q2 = ;m`2 a1 `2 s2 = h
11
c122 = @b 12
; 1 @b22 = h
@q2 2 @q1
c211 = @b 21
; 1 @b11 = ;h
@q1 2 @q2
c212 = c221 = 21 @b
@q1 = 0
22
c222 = 12 @b
@q2 = 0
22
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
h#_h ( _ 1 + #_ 2 )
#
C (q; q_ ) = ;h#_ 1 2
0
? anti-simmetria
0 ; 2h#_ 1 ; h#_ 2
= 2h#_ + h#_ 0
1 2
Forze gravitazionali
;I + m ` + k I + I + m (a + ` + 2a ` c )
2 2 2 2
`1 `1 r m1 `2 `2
1 1
+Im2 + mm2 a #
1 2
2
1 2 2
;
+ I + m (` + a ` c ) + k I #
1 1
`2 `2 22 1 2 2 r2 m2 2
; 2m`2 a1 `2 s2 #_ 1 #_ 2 ; m`2 a1 `2 s2 #_ 22
+ (m`1 `1 + mm2 a1 + m`2 a1 )gc1 + m`2 `2 gc12 = 1
;I + m ` + k I # + ;I + m (` + a ` c ) + k I #
2 2 2
`2 `2 r m2
2 `2
2 `2 2 r m22 1 2 2 2 1
= [ ]T
1 2 3 4 5 6 7 8
1 = m1 = m`1 + mm2
2 = m1 `C1 = m`1 (`1 ; a1 )
3 = I^1 = I`1 + m`1 (`1 ; a1 )2 + Im2
4 = Im1
5 = m2 = m`2
6 = m`2 `C2 = m`2 (`2 ; a2 )
7 = I^2 = I`2 + m`2 (`2 ; a2 )2
8 = Im2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
y
Y = y1121 yy1222 yy1323 yy1424 yy1525 yy1626 yy1727 yy1828
y11 = a21 #1 + a1 gc1
y12 = 2a1 #1 + gc1
y13 = #1
y14 = kr21 #1
y15 = (a21 + 2a1 a2 c2 + a22 )#1 + (a1 a2 c2 + a22 )#2
; 2a1 a2 s2 #_ 1 #_ 2 ; a1 a2 s2 #_ 22 + a1 gc1 + a2 gc12
y16 = (2a1 c2 + 2a2 )#1 + (a1 c2 + 2a2 )#2 ; 2a1 s2 #_ 1 #_ 2
; a1 s2 #_ 22 + gc12
y17 = #1 + #2
y18 = #1 + kr2 #2
y21 = 0
y22 = 0
y23 = 0
y24 = 0
y25 = (a1 a2 c2 + a22 )#1 + a22 #2 + a1 a2 s2 #_ 21 + a2 gc12
y26 = (a1 c2 + 2a2 )#1 + 2a2 #2 + a1 s2 #_ 21 + gc12
y27 = #1 + #2
y28 = kr2 #1 + kr22 #2 .
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
4 4
3 3
2 2
[rad]
[rad]
1 1
0 0
−1 −1
−2 −2
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
vel giunto 1 vel giunto 2
6 6
4 4
[rad/s]
[rad/s]
2 2
0 0
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
acc giunto 1 acc giunto 2
30 30
20 20
10 10
[rad/s^2]
[rad/s^2]
0 0
−10 −10
−20 −20
−30 −30
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
coppia giunto 1 coppia giunto 2
6000 6000
4000 4000
2000 2000
[Nm]
[Nm]
0 0
−2000 −2000
−4000 −4000
−6000 −6000
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
inerz_11 inerz_22
5000 5000
[Nm]
[Nm]
0 0
−5000 −5000
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
inerz_12 inerz_21
100 100
0 0
−100 −100
[Nm]
[Nm]
−200 −200
−300 −300
−400 −400
−500 −500
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
centrif_2 + coriol_12 centrif_1
1000 1000
12
500 500
[Nm]
[Nm]
0 0
−500 −500
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
grav_1 grav_2
800 800
600 600
400 400
[Nm]
[Nm]
200 200
0 0
−200 −200
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
3 3
2 2
[rad]
[rad]
1 1
0 0
−1 −1
−2 −2
0 0.2 0.4 0.6 0 0.2 0.4 0.6
[s] [s]
vel giunto 1 vel giunto 2
6 6
4 4
2 2
[rad/s]
[rad/s]
0 0
−2 −2
−4 −4
−6 −6
0 0.2 0.4 0.6 0 0.2 0.4 0.6
[s] [s]
acc giunto 1 acc giunto 2
40 40
20 20
[rad/s^2]
[rad/s^2]
0 0
−20 −20
−40 −40
0 0.2 0.4 0.6 0 0.2 0.4 0.6
[s] [s]
coppia giunto 1 coppia giunto 2
5000 5000
[Nm]
[Nm]
0 0
−5000 −5000
inerz_11 inerz_22
6000 6000
4000 4000
2000 2000
[Nm]
[Nm]
0 0
−2000 −2000
−4000 −4000
−6000 −6000
0 0.2 0.4 0.6 0 0.2 0.4 0.6
[s] [s]
inerz_12 inerz_21
1500 1500
1000 1000
500 500
[Nm]
[Nm]
0 0
−500 −500
12
500 500
[Nm]
[Nm]
0 0
2
−500 −500
800 800
600 600
[Nm]
[Nm]
400 400
200 200
0 0
0 0.2 0.4 0.6 0 0.2 0.4 0.6
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1.5
[m]
0.5
0
0 0.1 0.2 0.3 0.4 0.5
[s]
vel organo terminale
4
[m/s]
0
0 0.1 0.2 0.3 0.4 0.5
[s]
acc organo terminale
40
20
[m/s^2]
−20
−40
0 0.1 0.2 0.3 0.4 0.5
[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
3 3
2 2
[rad]
[rad]
1 1
0 0
−1 −1
−2 −2
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
vel giunto 1 vel giunto 2
4 4
2 2
0 0
[rad/s]
[rad/s]
−2 −2
−4 −4
−6 −6
−8 −8
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
acc giunto 1 acc giunto 2
80 80
60 60
40 40
[rad/s^2]
[rad/s^2]
20 20
0 0
−20 −20
−40 −40
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
coppia giunto 1 coppia giunto 2
5000 5000
[Nm]
[Nm]
0 0
−5000 −5000
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
4
x 10 inerz_11 4
x 10 inerz_22
1 1
0.5 0.5
[Nm]
[Nm]
0 0
−0.5 −0.5
−1 −1
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
inerz_12 inerz_21
3000 3000
2000 2000
[Nm]
[Nm]
1000 1000
0 0
−1000 −1000
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
centrif_2 + coriol_12 centrif_1
1000 1000
500 12 500
[Nm]
[Nm]
0 0
−500 2 −500
−1000 −1000
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
grav_1 grav_2
1000 1000
800 800
600 600
[Nm]
[Nm]
400 400
200 200
0 0
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Manipolatore a parallelogramma
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? Jacobiani
2 ;` s 0 0 3 2 ;a s ; ` s ;` s 0
3
JP`1 =4 ` c 0 0 5 JP`2 = 4 a c + ` c ` c 05
10 10 10 10 2 10 2 0 20 10 20
( 0) ( 0)
10 10 10 10 20 10 20 2 10 20
0 0 0 0 0 0
2;a s ; a s ; ` s ;a s ; ` s ;`3 s1 2 3
3
JP`3 =4 a c + a c + ` c 5
10 10 20 10 20 30 10 20 30 20 10 20 30 10 20 30 0 0 0 0
( 0)
10 10 a c +` c
20 10 20 30 10 20 30 20 10 20 30 10 20 30 `3 c1 2 3
0 0 0 0
0 0 0
2 ;` s 3
JP`1 = 4 ` c 5
100 100
( 00 )
100 100
0
20 0 03 20 0 03 20 0 03
JO`1
( 0)
= 4 0 0 0 5 JO`2 = 4 0 0 0 5 JO`3 = 4 0 0 0 5
( 0) ( 0)
1 0 0 1 1 0 1 1 1
203
JO`1 ( 00 )
= 405.
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 b (# ; # ) b (# ; # ) b (# ; # ) 3
B0 (q0) = 4 b (# ; # ) b (# ) b (# ) 5
10 10 20 30 10 20 20 30 10 30 20 30
20 10 20 30 20 20 30 20 30 30
b3 1 (#2 ; #3 )
0 0 0 0 b3 2 (#3 )
0 0 0 b3 3 0 0
X 30
i =0 bi j #j0 0 0 1 = b1 1 #1
00 0 0 00
j =1
0 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
a = Ba qa
b ba12
Ba = baa 11
21 ba22
ba11 = I`1 + m`1 `21 + m`2 a21
0 0 0 0 0
00
0
0
0
0
0 00 0
0 0
m`3 `3 = a1
0
0 0
m`2 `2 a1
0
0 00
`
`
ba11 = I`1 + m`1 `21 + m`2 a21 1 + a 2 a3 + I`3
0 0
0 0
1 1 a a
0 0 0 0
0 00
0
00
0
2 3
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Forze gravitazionali
+ m`3 `3 gc1 2 3 0
0 0 0
g3 = m`3 `3 gc1 2 3
0
0
0 0 0
g1 = m`1 `1 gc1
00
00
00 00
(m ` + m a ; m ` )gc
ga = (m` `1 ` + m``2 ` + m``3 a )gc 0 10 0 10 0 30 10
Tecniche di identificazione
? proprietà di linearità
= Y (q; q_ ; q)
Misure
? q e q_ dirette (encoder e tachimetri)
? q indirette (filtro ricostruttore)
? dirette (sensore di coppia) o indirette (misure di forza o
corrente)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
N insiemi di misure
2 (t ) 3 2 Y (t ) 3
= 64 ... 75 = 64 ... 75 = Y
1 1
(tN ) Y (tN )
= (Y T Y ); Y T
1
Carico
? modifica parametri dell’ultimo braccio
Traiettorie
? di tipo polinomiale (sufficientemente ricche)
? attenzione alle dinamiche non modellate
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
FORMULAZIONE DI NEWTON-EULERO
fi ; fi + mig = mipC
+1 0 i
i + fi ri; ;C ; i ; fi ri;C
1 i +1 +1 i
d (I ! + k q_ I z )
= dt i i r;i i m +1 m +1
+1 +1 i i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
d (q_ I z ) = q I z + q_ I ! z
dt i+1 mi+1 mi+1 i+1 mi+1 mi+1 i+1 mi+1 i mi+1
+
Equazione di Eulero
(
f
i = Ti
T zi; + kri Imi !_ T zm
1 m i i per un giunto prismatico
i zi; + kriImi!_ mT zm
1 i i per un giunto rotoidale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Accelerazioni di un braccio
!i;
!i = !i; + #_ izi; prismatico
1
1 1 rotoidale
(_
p_ i = p i; + d_i zi; + !i ri; ;i
1 1 1 prismatico
p_ i; + !i ri; ;i
1 1 rotoidale
!_ i;
!_ i = !_ + # z + #_ ! z
1 prismatico
i; 1 i i;
1 i i;
1 i; 1 rotoidale
8
>
> p
i; + dizi; + 2d_i!i zi;
< +!_ i ri; ;i + !i (!i ri; ;i)
1 1 1 prismatico
pi = > 1 1
Algoritmo ricorsivo
? calcolo di !i , !_ i , p
i , p C , !_ mi i
? calcolo di
fi = fi + mipC
+1 i
(
f
i = Ti
T zi; + kri Imi !_ T zm + Fvi d_i + Fsi sgn (d_i )
1 m i i prismatico
i zi; + kriImi!_ mT zm + Fvi#_ i + Fsi sgn (#_ i)
1 i i rotoidale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
( Ri; T !i;
1 1
i i;1 prismatico
!i = i;1T i;1 _
i (4.106)
Ri (!i;1 + #iz0) rotoidale
( Ri;1T !_ i;1
i i;1 prismatico
!_ i = i;1T i;1
i (4.107)
Ri (!_ i;1 + #iz0 + #i!i;1 z0) rotoidale
_ i ; 1
fii = Rii+1fii+1 +1
+ mi p iCi (4.111)
Struttura computazionale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Condizioni iniziali
203
p ; g = 4 g 5
0
0
0
0 ! = !_ = 0
0
0
0
0
0
Condizioni terminali
f =0
3
3 =03
3
2 c ;s 0
3
i i
Ri = 4 si ci
i ;1
0 5 i = 1; 2 R =I 2
3
0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
#_ 1
203
!_ 11 = 64 0 75
#1
2 ;a1#_ 2 + gs1 3
p11 = 4 a1#1 + gc1 75
6 1
0
2 0 3
!_ m0 1 = 64 0 75
kr1 #1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 0 3
! = 64 0 75
2
2
#_ 1 + #_ 2
2 0 3
!_ 22 = 64 0 75
#1 + #2
2 a1s2 #1 ; a1 c2#_ 2 ; a2(#_ 1 + #_ 2)2 + gs12 3
p22 = 4 a1c2#1 + a2(#1 + #2) + a1s2 #_ 21 + gc12 75
6 1
0
2 a1s2 #1 ; a1 c2#_ 2 ; (`C + a2)(#_ 1 + #_ 2)2 + gs12 3
2
p2C2 = 4 a1c2#1 + (`C2 + a2 )(#1 + #2) + a1s2 #_ 21 + gc12 75
6 1
0
2 0 3
!_ m1 2 = 64 0 75
#1 + kr2 #2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
f = m pC2
2
2 2
2
2 3
66 77
= 666 I zz (# + # ) + m (`C2 + a ) (# + # )
2 2
77
75
4
2 2 1 2 2 2 1 2
+m a (`C2 + a )c #
2 1 2 2 1
+m2 a1 (`C2 + a2 )s2 #_ + m2 (`C2 + a2 )gc12
2
1
; ;
2 = I2zz + m2 (`C2 + a2 )2 + a1 (`C2 + a2 )c2 + kr2 Im2 #1
;
+ I2zz + m2 (`C2 + a2 )2 + kr22 Im2 #2
+ m2 a1 (`C2 + a2 )s2 #_ 21 + m2 (`C2 + a2 )gc12
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
75
1
1 1 1 2 1 1 2 2 2 1 2
4
1
;m (`C2 + a )s (#_ + #_ ) + (m + m )gc
2 2 2 1 2
2
1 2 1
0
2 3
66 77
66 I # + m a # + m (` + a ) # + m a (` + a )c # 77
=6 6
6 zz 1 1
2
2 1 C1 1 1 C2 1
2
1 2 1 2 2 1 77
1
+I zz (# + # ) + m a (`C2 + a )c (# + # ) 77
1
66 + m (`
2
+ a ) (#
1 2
+ # ) + kr Im2 #
2 1 2 2 1 2
77
64 +m a (` + a )s #_ ; m a (` + a )s (#_ + #_ )
C 2
2
5
2 2 1 2 2 2
2 1 C2 2 2 1 C2
2
2 1 2 2 1 2
2
;
+ I2zz + m2 (`C2 + a2 ) + a1 (`C2 + a2 )c2 + kr2 Im2 #2
2
m1 = m`1 + mm2
m1 `C1 = m`1 (`1 ; a1 )
I1zz + m1 `2C1 = I^1 = I`1 + m`1 (`1 ; a1 )2 + Im2
m2 = m`2
m2 `C2 = m`2 (`2 ; a2 )
I2zz + m2 `2C2 = I^2 = I`2 + m`2 (`2 ; a2 )2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Formulazione di Lagrange:
? è sistematica e di facile comprensione
? fornisce le equazioni del moto in una forma analitica com-
patta che evidenzia la matrice di inerzia, la matrice a fattore
delle forze centrifughe e di Coriolis e il vettore delle forze
gravitazionali (utile ai fini della sintesi del controllo)
? è efficace se si vogliono portare in conto effetti meccanici
più complessi quali ad esempio le deformazioni elastiche
dei bracci
Formulazione di Newton-Eulero:
? è intrinsecamente un metodo ricorsivo che risulta efficiente
da un punto di vista computazionale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Dinamica diretta
? q
note (t0 ), q_ (t ), (t) (e h(t)), determinare q(t), q_ (t), q(t)
0
per t > t0
? utile in simulazione
Dinamica inversa
? q q_ (t), q(t) (e h(t)), determinare (t)
note (t),
? utile per la pianificazione e il controllo
q = B; (q)( ; 0 )
1
Ridondanza
? coordinate generalizzate (moti interni?)
Singolarità
Trasformazioni
BA = (JAB; JAT ); 1 1
CA x_ = BAJAB; C q_ ; BA J_ Aq_
1
gA = BAJAB; g 1
BA = JA;T BJA; 1
CA x_ = JA;T C q_ ; BA J_ Aq_
gA = JA;T g
Equazioni del moto
Dinamica diretta
? note (t) (e h(t)), determinare x (t), x_ (t), x(t)
Soluzione
? dinamica diretta ai giunti
? cinematica diretta
Dinamica inversa
? note x(t), x_ (t), x (t) (e h(t)), determinare (t)
Soluzione (ridondanza a livello cinematico)
? cinematica inversa
? dinamica inversa ai giunti
Dinamica inversa
= BA JA q + BA JA B ; C q_ + BA JA B ; g
1 1
? J B
pseudo-inversa destra di A pesata secondo
+
A ; hA = JAT (Bq + C q_ + g)
= JAT ( ; JAT hA )
T ; T T
= JA (q)
A + I ; JA (q)JA (q) a
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ELLISSOIDE DI MANIPOLABILITÀ
DINAMICA
T = 1
? modello dinamico con q_ = 0, h = 0
B(q)q + g(q) =
? accelerazioni ai giunti (q_ = 0)
v_ = J (q)q
+
= B(q)J y(q)v_ + g(q)
Ellissoide nello spazio operativo
;
= B J yv_ + J yJB ; g + (I ; J yJ )B ; g
1
1
= BJ y(v_ + JB ; g) 1
0.5
−1
JB g
[m]
−0.5
−0.5 0 0.5 1
[m]
PIANIFICAZIONE DI TRAIETTORIE
Percorso e traiettoria
PERCORSO E TRAIETTORIA
Percorso: luogo dei punti dello spazio dei giunti (spazio ope-
rativo) che il manipolatore deve descrivere nell’esecuzione del
movimento assegnato (descrizione geometrica)
? percorso
punti estremi
eventuali punti intermedi
primitive geometriche
? legge di moto
tempo complessivo
velocità e/o accelerazione max
velocità e/o accelerazione in punti assegnati
q
Generazione di una funzione (t) che interpola i valori asse-
gnati per le variabili di giunto nel rispetto dei vincoli imposti.
? traiettorie generate poco onerose dal punto di vista compu-
tazionale
? posizioni e velocità (e accelerazioni) dei giunti funzioni
continue del tempo
? effetti indesiderati minimizzati (ad es. traiettorie a curvatura
non regolare)
Moto punto–punto
? punti estremi e tempo di transizione
Moto punto–punto
Polinomio cubico
q(t) = a3 t3 + a2 t2 + a1 t + a0
q_(t) = 3a3 t2 + 2a2 t + a1
q(t) = 6a3 t + 2a2
a0 = qi
a1 = q_i
a3 t3f + a2 t2f + a1 tf + a0 = qf
3a3 t2f + 2a2tf + a1 = q_f
q(t) = a5 t5 + a4 t4 + a3 t3 + a2 t2 + a1 t + a0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
pos
2
[rad]
3
[rad/s]
0
0 0.2 0.4 0.6 0.8 1
[s]
acc
20
10
[rad/s^2]
−10
−20
qc tc = qtm ;
;t
qc
m c
qc = qi + 21 qc t2c
Esempio
pos
2
[rad]
3
[rad/s]
0
0 0.2 0.4 0.6 0.8 1
[s]
acc
20
10
[rad/s^2]
−10
−20
q_c assegnata
jqf ; qi j < jq_ j 2jqf ; qi j
tf c tf
tc = qi ; qfq_ + q_c tf
c
q_c
2
qc = q ; q + q_ t
i f cf
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
k (tk ) = qk
k (tk+1 ) = qk+1
_ k (tk ) = q_k
_ k (tk+1 ) = q_k+1
? continuità delle velocità nei punti intermedi
Esempio
pos
4
[rad]
0 2 4 6
[s]
vel
0
[rad/s]
−5
0 2 4 6
[s]
acc
20
[rad/s^2]
−20
−40
0 2 4 6
[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
q_1 = 0
0 sgn (vk ) 6= sgn (vk+1 )
q_k = 1 (vk + vk+1 ) sgn (vk ) = sgn (vk+1 )
2
q_N = 0
Esempio
pos
4
[rad]
0 2 4 6
[s]
vel
5
[rad/s]
−5
0 2 4 6
[s]
acc
30
20
10
[rad/s^2]
0
−10
−20
−30
0 2 4 6
[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
k;1 (tk ) = qk
k;1 (tk ) = k (tk )
_ k;1 (tk ) = _ k (tk )
k;1 (tk ) = k (tk )
? 4N ; 2 equazioni nei 4(N ; 1) coefficienti incogniti (po-
linomi di quarto grado per il primo e l’ultimo segmento?)
? 2 punti virtuali (continuità su posizione, velocità e accele-
razione) =) N + 1 polinomi cubici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
k (tk ) k (tk+1 )
k (t) = t (tk+1 ; t) + t (t ; tk )
k k
k (tk )
k (tk+1 )
k (t) = 6t (tk+1 ; t) + 6t (t ; tk )3
3
k k !
k ( t k +1 ) t k k (tk+1 )
+ tk ; 6 (t ; tk )
k (tk )
!
+ t ; k (t k ) tk (tk+1 ; t)
k 6
A [ (t ) 2 2 : : : N +1 (tN +1 ) ]T = b
2a a 11 12 ::: 0 0 3
66 a a 21 22 ::: 0 0 77
A = 66 ... ... .. .. .. 77
40 0 .
: : : aN ;1;N ;1
.
aN ; ;N 5
.
1
0 0 : : : aN;N ;1 aNN
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
pos
4
[rad]
0 1 2 3 4 5
[s]
vel
5
[rad/s]
−5
0 1 2 3 4 5
[s]
acc
30
20
10
[rad/s^2]
0
−10
−20
−30
0 1 2 3 4 5
[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Esempio
pos
4
[rad]
0 1 2 3 4 5
[s]
vel
4
2
[rad/s]
−2
−4
−6
0 1 2 3 4 5
[s]
acc
40
20
[rad/s^2]
−20
−40
0 1 2 3 4 5
[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
pos
5
4
3
[rad]
2
1
0
0 0.5 1 1.5 2
[s]
vel
3
[rad/s]
0 0.5 1 1.5 2
[s]
acc
20
10
[rad/s^2]
−10
−20
0 0.5 1 1.5 2
[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Primitive di percorso
? espressione analitica del moto
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Primitive di percorso
p = f (s)
t = ddsp
n =
d2p
dsp2
1 d 2
2
ds
b=tn
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 cos (s=) 3
p0(s) = 4 sin (s=) 5
0
p(s) = c + Rp0(s)
2 ;sin (s=) 3
dp = R 4 cos (s=) 5
ds 0
2 ;cos (s=)= 3
d p = R 4 ;sin (s=)= 5
2
ds 2
0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Posizione p = f (s)
? s(t) polinomio interpolatore
p_ = s_ ddsp = s_t
? segmento
p(s) = pi + kpf ;s pik (pf ; pi)
p_ = kpf ;s_ pik (pf ; pi) = s_t
p = kpf ;s pik (pf ; pi) = st
? circonferenza
2 cos (s=) 3
p(s) = c + R 4 sin (s=) 5
0
2 ;s_ sin (s=) 3
p_ = R 4 s_ cos (s=) 5
0
2 ;s_ cos (s=)= ; s sin (s=) 3
2
0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Orientamento
? interpolazione delle componenti di n(t), s(t), a(t) ?
? (t)
interpolazione di
r + r + r ; 1
#f = cos ; 1 11 22 33
2 r ; r2 3
r = 2 sin1 #f 4 r ; r 5
32 23
13 31
r21 ; r12
= r_ B(q(r))q (r) + ; (q(r))[q (r)q (r)] + rB(q(r))q0(r)
2 00 0 0
+ g(q(r))
= s (t) + g(q(r))
s(t) = c s(ct)
2
Controllo centralizzato
Modello dinamico
Kr q = qm m = Kr; 1
? inerzie medie
B(q) = B + B(q)
m = Kr; BK
r; qm + Fm q_ m + d
1 1
? attrito viscoso
Fm = Kr; Fv Kr; 1 1
? disturbo
Manipolatore + attuatori
? controllo decentralizzato
? controllo centralizzato
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Fm kRv kt
a
km = k1 Tm = kRakI
v v t
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Controllo in retroazione
C (s) = Kc 1 +ssTc
Struttura generale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Retroazione di posizione
kTV = kTA = 0
? f.d.t. del ramo di azione diretta
H (s) = kTP
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
kTA = 0
? f.d.t. del ramo di azione diretta
n n
? specifiche di progetto
KV kTV = 2k!n
m
!
KP kTP KV = k
2
n
m
? f.d.t. disturbo–uscita
sRa
(s) = ; kt KP kTP KV (1 + sTm )
D(s) sk TV
1+ K k + k K k K s 2
P TP m P TP V
XR = KP kTP KV TR = max Tm ; !1
n
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
G0 (s) = 0 km T A
1
B sT m 1 + k m K A k TA T C
B
(1 + km KA kTA ) @1 + m C
A
(1 + km KA kTA )
TA = Tm
XR = KP kTP KV KA TR = max TA ; !1
n
? specifiche di progetto
2KP kTP = !n
kTV
km KA kTA = km!X2 R ; 1
n
KP kTP KV KA = XR
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? ricostruzione dell’accelerazione
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Retroazione di posizione
s (1 + sT )
2
r0 (s) = kTP + k K (1 + sT m d (s)
m P P)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
P m P V
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
sk (1 + k K k ) s
0 TV
r (s) = kTP + K + k K K K m A TA 2
d (s)
P m P V A
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Zt
a2 e + a1 e_ + a0 e + a;1 e(& )d& + Tkm d + k1 _d ; Rk a d
m m t
= Tkm + k1 _
m m
+
Zt
a02 e + a01 e_ + a00 e + a0;1 e(& )d& = Rk a d
t
Ra s
E (s ) = kt
D(s) a02 s3 + a01 s2 + a00 s + a0;1
Coppia precalcolata
? azione in avanti (inversione di modello)
CONTROLLO CENTRALIZZATO
Kr q = qm
Sistemi di attuazione
Kr; = Ktia
1
va = Raia + Kv q_ m
va = Gv vc
Manipolatore controllato in tensione
u = Kr Kt Ra; Gv vc
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ia = Givc
+
F = Fv
u = Kr Kt Givc =
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
V_ = q_ T B (q)q + 12 q_ T B_ (q)q_ ; q_ T KP qe
; ;
= 12 q_ T B_ (q) ; 2C (q; q_ ) q_ ; q_ T F q_ + q_ T u ; g(q) ; KP qe
u = g(q) + KP qe ; KD q_
+
V_ = ;q_ T (F + KD )q_
V_ = 0 q_ = 0; 8qe
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? q q 0)
all’equilibrio ( _
KP qe = 0 =) qe = qd ; q 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Modello dinamico
B(q)q + n(q; q_ ) = u
r = qd + KD q_ d + KP qd
+
qe + KD qe_ + KP qe = 0
? cancellazione perfetta
Controllo robusto
Compensazione imperfetta
u = Bb (q)y + nb (q; q_ )
? incertezza
Be = Bb ; B ne = nb ; n
+
b + nb
Bq + n = By
q = y + (B; Bb ; I )y + B; ne = y ;
1 1
= (I ; B; Bb )y ; B; ne
1 1
qe = qd ; y +
? equazione differenziale del primo ordine
_ = H + D(qd ; y + )
y = qd + KD qe_ + KP qe + w
+
f + D( ; w)
_ = H
O I
f = (H ; DK ) = ;K ;K
H P D
Metodo di Lyapunov
V () = T Q > 0 8 6= 0
V_ = _ T Q + T Q_
fT Q + QH
= T (H f) + 2T QD( ; w)
= ;T P + 2T QD( ; w)
= ;T P + 2zT ( ; w)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Legge di controllo
w = kzk z >0
+
zT ( ; w) = zT ; kzk zT z
kzkkk ; kzk
= kzk(kk ; )
Scelta di
1b
;
kk kI ; B B k kqdk + kK k kk + kwk + kB ;1 k kne k
;
QM + kK k kk + + BM
1 ;1 (QM + kK kkk + BM )
+
V_ = ;T P + 2zT ; kzk z < 0 8 6= 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Controllo adattativo
Controllo
q_ r = q_ d + qe
qr = qd + qe_
= q_ r ; q_ = qe_ + qe
+
B(q)_ + C (q; q_ ) + F + KD = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Metodo di Lyapunov
B(q)_ + C (q; q_ ) + F + KD
= ;Be (q)qr ; Ce (q; q_ )q_ r ; Fe q_ r ; ge(q)
= ;Y (q; q_ ; q_ r ; qr )e
Modifica di V
Legge di adattamento
+
V_ = ;T F ; qe_ T KD qe_ ; qeT KD qe
? qe ! 0
? Y (q; q_ ; q_ r ; qr )(b ; ) ! 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? specifiche di moto
? relazioni cinematiche
? carico computazionale
Schemi di principio
V_ = 0 JAT (q)KP xe = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Modello
B(q)q + n(q; q_ ) = u
Controllo linearizzante
u = B(q)y + n(q; q_ )
+
q = y
; 1
; e e
= JA (q) xd + KD x + KP x ; JA (q; q)q
_ _ _ _
xe + KD xe_ + KP xe = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Schemi di controllo
F. PD + compensazione di gravità + KD q_ d
KP = 3750I KD = 750I
G. Dinamica inversa
KP = 25I KD = 5I
b = B , nb = Fv q_ + g)
H. Robusto (B
KP = 25I KD = 5I = 70 = 0:004
I. Come H = 0:01
J. Adattativo
m2 = 10 kg m2 `C 2 = 11 kg m I^2 = 12:12 kg m2
= 5I KD = 750I K = 0:01I
K. PD cartesiano + compensazione di gravit à + KD x_ d
KP = 16250I KD = 3250I
L. Dinamica inversa cartesiano
KP = 25I KD = 5I
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
−0.5 2.5
−1 2
[rad]
[rad]
−1.5 1.5
−2 1
−2.5 0.5
−3 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
coppie giunti errori pos
1500
1000 0.2
[Nm]
[m]
500 0.1
0 0
−500 −0.1
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1000 1000
[Nm]
[Nm]
500 500
0 0
−500 −500
0 1 2 3 4 0 1 2 3 4
[s] [s]
norma err pos norma err pos
0.015 0.015
0.01 0.01
[m]
[m]
0.005 0.005
0 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1000
0.01
[Nm]
[m]
500
0.005
0
−500 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
−0.5 2.5
−1 2
[rad]
[rad]
−1.5 1.5
−2 1
−2.5 0.5
−3 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
coppie giunti norma err pos
1500 0.1
0.08
1000
0.06
[Nm]
[m]
500
0.04
0
0.02
−500 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
coppie giunti −4
x 10 norma err pos
1500 4
1000 3
[Nm]
[m]
500 2
0 1
−500 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1000 1000
[Nm]
[Nm]
500 500
0 0
−500 −500
0 1 2 3 4 0 1 2 3 4
[s] [s]
−4
x 10 norma err pos −4
x 10 norma err pos
4 4
3 3
[m]
[m]
2 2
1 1
0 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
0.008 16
15
0.006
[m]
14
0.004
13
0.002 12
0 11
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
0.08
1000
0.06
[Nm]
[m]
500
0.04
0
0.02
−500 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
coppie giunti −4
x 10 norma err pos
1500 4
1000 3
[Nm]
[m]
500 2
0 1
−500 0
0 1 2 3 4 0 1 2 3 4
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
−0.5 2.5
−1 2
[rad]
[rad]
−1.5 1.5
−2 1
−2.5 0.5
−3 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
coppie giunti errori pos
1500
1000
0.05
[Nm]
[m]
500
0
0
−500 −0.05
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1000 1000
[Nm]
[Nm]
500 500
0 0
−500 −500
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
−3
x 10 norma err pos −3
x 10 norma err pos
4 4
3 3
[m]
[m]
2 2
1 1
0 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
coppie giunti −3
x 10 norma err pos
1500 4
1000 3
[Nm]
[m]
500 2
0 1
−500 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
−0.5 2.5
−1 2
[rad]
[rad]
−1.5 1.5
−2 1
−2.5 0.5
−3 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
coppie giunti norma err pos
1500 0.02
1000 0.015
[Nm]
[m]
500 0.01
0 0.005
−500 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
coppie giunti −4
x 10 norma err pos
1500 1
0.8
1000
0.6
[Nm]
[m]
500
0.4
0
0.2
−500 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1000 1000
[Nm]
[Nm]
500 500
0 0
−500 −500
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
−4
x 10 norma err pos −4
x 10 norma err pos
1 1
0.8 0.8
0.6 0.6
[m]
[m]
0.4 0.4
0.2 0.2
0 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
−3
x 10 norma err pos norma err parametri
5 17
4 16
3 15
[m]
2 14
1 13
0 12
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1000 0.015
[Nm]
[m]
500 0.01
0 0.005
−500 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
coppie giunti −4
x 10 norma err pos
1500 1
0.8
1000
0.6
[Nm]
[m]
500
0.4
0
0.2
−500 0
0 2 4 6 8 10 0 2 4 6 8 10
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
CONTROLLO DELL’INTERAZIONE
Controllo di cedevolezza
Controllo di impedenza
Controllo di forza
Moto vincolato
Contatto instabile
Misura di forza
Strategie di controllo
? indirette
? dirette
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
CONTROLLO DI CEDEVOLEZZA
? all’equilibrio
Modello dell’ambiente
? elasticamente cedevole
f K O dp
h = = Of Km !dt
dp
= K !dt
= KTA (x)dx
+
hA = TAT (x)KTA(x)dx
= KA (x)(x ; xe )
? all’equilibrio
h = ;I + K (x)K ; ; K (x)(x ; x )
A1 A P
1 1
A d e
? manipolatore cedevole
? ambiente cedevole
Esempio
All’equilibrio
" kPxxd + kxxe # 2 kPx kx 3
p1 = kPx + kx f1 = 4 kPx + kx (xd ; xe ) 5
yd 0
? se kPx =kx 1
x1 xd fx1 kx (xd ; xe )
? se kPx =kx 1
x1 xe fx1 kPx (xd ; xe )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
KP qe = J T (q)h
+
qe = KP; J T (q)h
1
CONTROLLO DI IMPEDENZA
u = B(q)y + n(q; q_ )
+
q = y ; B; (q)J T (q)h
1
Impedenza meccanica
? massa Md
? smorzamento KD
? rigidezza KP
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
; 1 ; 1
;
y = J (q)M Mdx d +KD xe +KP xe ;MdJA(q; q_ )q_ ;hA
_ _
A d
+
Mdxe + KD xe_ + KP xe = hA
? impedenza lineare attiva
Esempio
Md = diagfmdx; mdy g
KD = diagfkDx; kDy g
KP = diagfkPx; kPy g
? dinamica del sistema manipolatore–ambiente lungo le due
direzioni dello spazio operativo (x d costante)
Ambiente (xe = 1)
? più cedevole kx = 103 N/m
? meno cedevole kx = 104 N/m
Controllo
? mdx = mdy = 100
? kDx = kDy = 500
? kPx = kPy = 2500
Manipolatore
? p = [ 1 0 ]T
? pd = [ 1:1 0:1 ]T
250
0.1 200
[m]
[N]
150
0.05 100
50
0 0
0 1 2 3 0 1 2 3
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
CONTROLLO DI FORZA
Controllo diretto
? azione di controllo PD sulla forza (misura corrotta da ru-
more)
? chiusura di un anello esterno di regolazione della forza
=) ingresso di riferimento per uno schema di controllo
posizionale a dinamica inversa
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
1 ; 1
;
y = J (q)M ;KD x_ + KP (xF ; x) ; MdJA(q; q_ )q_
; _
A d
+
Mdx + KD x_ + KP x = KP xF
Scelta del controllo
xF = CF (hAd ; hA)
? ambiente
hA = KA (x)(x ; xe)
+
Azione PI
Zt
CF = KF + KI () d&
0
? K K KF , KI =)
scelta di D , P , margini di stabilità
+ banda passante
All’equilibrio (stabile)
hA1 = hAd
KA x1 = KAxe + hAd
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
xF = KF (hAd ; hA)
+
All’equilibrio (stabile)
hA1 = hAd
KA x1 = KAxe + hAd
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? h 2= R(KA ) =) deriva di x
se Ad
se hAd 2 R(KA ) =) x (o x_ ) ! 0
?
Aggiunta di xd
All’equilibrio
Esempio
CF = diagfcFx; 0g
1. controllo con anello interno di posizione
kFx = 0:0024
3. controllo parallelo
40
1.015
30
[m]
[N]
1.01
20
1.005
10
1 0
0 1 2 3 0 1 2 3
[s] [s]
40
1.015
30
[m]
[N]
1.01
20
1.005
10
1 0
0 1 2 3 0 1 2 3
[s] [s]
40
1.015
30
[m]
[N]
1.01
20
1.005
10
1 0
0 1 2 3 0 1 2 3
[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Analisi di casi
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Vincoli Vincoli
Naturali Artificiali
p_cz fzc
!xc cx
!yc cy
fxc p_cx
fyc p_cy
cz !zc
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Vincoli Vincoli
Naturali Artificiali
p_cx fxc
p_cy fyc
!xc cx
!yc cy
fzc p_cz
cz !zc
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Vincoli Vincoli
Naturali Artificiali
p_cx fxc
p_cz fzc
!xc cx
!yc cy
fyc p_cy
cz !zc
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Vincoli naturali
Esempio
Matrice di selezione
= diagf0; 1g
Terna di vincolo
1=p2 1=p2
Rc = ;1=p2 1=p2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ATTUATORI E SENSORI
Servomotori
Sensori
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Organi di trasmissione
? basse velocità
? elevate coppie
Ruote dentate
? variano l’asse di rotazione e/o traslano il punto di applica-
zione
? denti a sezione larga e alberi tozzi (deformazioni limitate)
Coppie vite–madrevite
? convertono il moto di rotazione in moto di traslazione
? viti a ricircolazione di sfere precaricate (riduzione attriti,
aumento rigidezza, riduzione gioco)
Cinghie dentate
? consentono di allocare il motore lontano dall’asse del giunto
attuato
? alte velocità e basse forze (deformabili)
Catene
Accoppiamento diretto
? si eliminano elasticità e gioco
? algoritmi di controllo pi ù sofisticati
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Servomotori
Motori pneumatici
? energia pneumatica fornita da un compressore, trasformata
in energia meccanica mediante pistoni o turbine ad aria
Motori idraulici
? energia idraulica immagazzinata in un serbatoio di accumu-
lazione mediante opportune pompe, trasformata in energia
meccanica
Motori elettrici
? energia elettrica della rete di distribuzione
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Servomotori elettrici
? servomotori in corrente continua a magneti permanenti
? servomotori a commutazione elettronica
? motori a passo (micromanipolatori)
Servomotori idraulici
? coppia pistone–cilindro (moti di traslazione
? servomotori idraulici con pistoni assiali o radiali
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Servomotori elettrici
Pro:
Servomotori idraulici
Pro:
? non presentano problemi di surriscaldamento in situazioni
statiche
? sono autolubrificati e il fluido circolante facilita lo smalti-
mento del calore
? sono intrinsecamente sicuri in ambienti pericolosi
? hanno un ottimo rapporto potenza/peso
Contro:
? necessità di una centrale idraulica di alimentazione
? costo elevato, ridotta gamma di prodotti, difficolt à di minia-
turizzazione
? basso rendimento nella conversione di potenza
? necessità di manutenzione periodica
? inquinamento dell’ambiente di lavoro per perdite di olio
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Servomotori elettrici
? buone caratteristiche dinamiche
? ottima flessibilità di controllo
? necessità di organi di trasmissione
Servomotori idraulici
? caratteristiche dinamiche dipendenti dalla temperatura del
fluido in pressione
? coppie elevate a basse velocità
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Amplificatori di potenza
Servomotori elettrici
? amplificatori a transistori
convertitori controllati c.c./c.c. (chopper)
convertitori controllati c.c./c.a. (inverter)
Servomotori idraulici
? servovalvole elettroidrauliche
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Sorgenti di alimentazione
Azionamenti elettrici
? trasformatore + ponte raddrizzatore (non controllato)
Azionamenti idraulici
? pompa azionata da motore primo (asincrono trifase) a velo-
cità costante + serbatoio di accumulazione + filtri + valvole
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
SERVOMOTORI
Servomotori elettrici
Equilibrio elettrico
Equilibrio meccanico
Cm = (sIm + Fm )
+ Cr
Cm = kt Ia
Amplificatore di potenza
Va = Gv
Vc 1 + sTv
Retroazione di corrente
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? ki = 0
? Fm kv kt =Ra
? K = Ci (0)Gv
? Cr = 0
K Ra
= kv V 0 ; kv kt Cr
R I c
a
1+s k k m 1 + s Rka Ikm
v t v t
? a regime:
! kK vc0
v
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Protezione di corrente
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
? Kki Ra
? kv
=Kki 0
kt 1
= ki FmIm Vc0 ; FmIm Cr
1 + sF 1 + sF
m m
? a regime:
k
k
cm kt vc0 ; Kv !
i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Servomotori idraulici
Coppie pistone–cilindro
? servomotori lineari
? servomotori rotanti
SENSORI
Sensori propriocettivi
? posizioni dei giunti
? velocità dei giunti
? coppia ai giunti
Sensori esterocettivi
? sensori di forza
? sensori tattili
? sensori di prossimità
? sensori di campo
? sistemi di visione
? sensori per applicazioni particolari (suono, umidit à, fumo,
pressione, temperatura)
fusione dei dati sensoriali (robot organo intelligente di
connessione tra percezione e azione)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Trasduttori di posizione
Spostamenti angolari
? potenziometri
? encoder (dischi codificatori)
? resolver
? synchro
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Encoder assoluto
# Codice # Codice
0 0000 8 1100
1 0001 9 1101
2 0011 10 1111
3 0010 11 1110
4 0110 12 1010
5 0111 13 1011
6 0101 14 1001
7 0100 15 1000
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Encoder incrementali
Resolver
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Trasduttori di velocità
Dinamo tachimetrica
? generatore in c.c.
? magnete permanente (campo di eccitazione)
? tensione di uscita proporzionale alla velocit à angolare
? ondulazione residua
Sensori di forza
R R
s
Vo = R1 + R2 ; R3 + Rs Vi
2
? diametri 10 cm
? altezza 5 cm
? (50, 500) N (risoluzione 0.1%)
? (5, 70) Nm (risoluzione 0.05%)
? frequenza in uscita 1 kHz
f c Rc
s c Oc fss
s
cc =
c S (rcs)Rs Rs s
c
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2w 3
2 fxs 3 2 0 0 c 0 0 0 c 0 36w 1
77
77 666 w
13 17 2
66 fyss 77 66 c 0 0 0 c 0 0 0
21 25 3 77
66 fzs 77 = 66 0 c 0 c 0 c 0 c
32 34 36 38 77 66 w 4 77
64 xs 75 64 0 0 0 c 0 0 0 c 44 48 75 66 w 5 77
y 0 c 0 0 0 c
52 0 0 56 64 w6 75
sz c61 0 c63 0 c65 0 c67 0 w7
w8
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Sensori di visione
Telecamera
p~c = Tbcp~
Trasformazione prospettica
fp c
X = f ; xpc
z
fp c
Y = f ; ypc
z
? aberrazioni
? distorsione geometrica
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
2 x 3 2 pcx 3
4 yII 5 =
64 ppcyc 75
zI z
1
2 0 X 0321 0 0 03
= 4 0 y Y 0 5 64 00 10 ;10=f 01 75
x 0
0
0 0 1 0 0 0 0 1
+
Matrice di calibrazione
=
Tbc
? parametri intrinseci ( x ; y ; X0 ; Y0 ; f ) in
Standard video
? CCIR (Europa e Australia): 625 linee, 25 Hz
? RS170 (America e Giappone): 525 linee, 30 Hz
? segnale video = tensione 1 V picco–picco
UNITÀ DI GOVERNO
Architettura funzionale
Ambiente di programmazione
Architettura hardware
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ARCHITETTURA FUNZIONALE
Unità di governo
? abilità di muovere oggetti fisici nell’ambiente di lavoro,
(capacità di manipolazione)
? abilità di ottenere informazioni sullo stato del sistema e su
quello dell’ambiente di lavoro (capacit à sensoriali)
? abilità di utilizzare informazioni per modificare il compor-
tamento del sistema in maniera preprogrammata (capacit à
di comportamento intelligente)
? abilità di immagazzinare, elaborare e rendere disponibili
dati relativi all’attività del sistema (capacità di processa-
mento dati)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Modello di riferimento
AMBIENTE DI PROGRAMMAZIONE
Funzioni decisionali
? servo (calcolo in tempo reale)
? primitive (condizionamento logico)
? azioni (sincronizzazione + sistema di interruzioni)
? compito (gestione di processi concorrenti + debugger)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Adozione di linguaggi
? acquisizione di posture significative mediante apprendi-
mento
? calcolo della locazione dell’organo terminale rispetto ad una
terna di riferimento (cinematica diretta)
? assegnazione di primitive di moto con parametri di traietto-
ria
? calcolo dei riferimenti dei servo (cinematica inversa)
? condizionamento delle sequenze di apprendimento a sem-
plici sensori (presenza oggetto nella pinza)
? correzione delle sequenze di moto a mezzo di semplici edi-
tori di testo
? semplici operazioni di collegamento tra sottoinsiemi di se-
quenze elementari
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Alternative
? sviluppo di linguaggi ad hoc per applicazioni robotiche
? sviluppo di librerie di programmi per robotica di supporto
a linguaggi standard di programmazione
? programmatore esperto
? programmazione fuori linea
? interazione con altre macchine
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ARCHITETTURA HARDWARE
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
Scheda sistema
? un microprocessore con coprocessore matematico
? una memoria EPROM di inizializzazione
? una memoria RAM locale
? una memoria RAM condivisa con le altre schede attraverso
il bus
? un insieme di porte seriali e parallele di interfaccia con il
bus e con il mondo esterno
? contatori, registri, temporizzatori
? gestore delle interruzioni
Funzioni
? interfaccia con l’operatore attraverso teach pendant, tastiera,
video, stampante
? interfaccia con una memoria esterna (disco rigido) usata per
immagazzinare dati e programmi applicativi
? interfaccia con rete locale di connessione (ad esempio,
Ethernet) con stazioni di lavoro e con altre unit à di governo
? interfaccia I/O con apparecchiature periferiche presenti
nell’area di lavoro (alimentatori, nastri trasportatori, sen-
sori ON/OFF)
? inizializzazione del sistema
? interprete del linguaggio di programmazione
? arbitro del bus