Sei sulla pagina 1di 400

ROBOTICA INDUSTRIALE Prof.

Bruno SICILIANO

ROBOTICA

 Studio di macchine che possano sostituire l’uomo nell’esecuzione


di un compito, sia in termini di attivit à fisica che decisionale

 Radici culturali
? mitologia
? automa
? robot (robota = lavoro esecutivo)
? letteratura fantascientifica

 Leggi fondamentali (Asimov)


? un robot non può far del male a un essere umano n é con-
sentire, restando inoperoso, che un essere umano si trovi in
pericolo
? un robot deve obbedire agli ordini impartiti da esseri umani,
a meno che tali ordini non entrino in conflitto con la prima
legge
? un robot deve proteggere la sua esistenza a meno che tale
protezione non vada in conflitto con la prima o la seconda
legge
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Robotica definita come scienza che studia la connessione intel-


ligente tra percezione e azione
? sistema meccanico (locomozione + manipolazione)
? sistema sensoriale (sensori propriocettivi ed eterocettivi)
? sistema di governo

 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

 L’automazione è una tecnologia il cui obiettivo è quello di sosti-


tuire la macchina all’uomo in un processo di produzione, non
solo per quanto riguarda l’esecuzione delle operazioni mate-
riali, ma anche per ci ò che concerne l’elaborazione intelligente
delle informazioni sullo stato del processo.
? automazione rigida (produzione in serie di grossi volumi di
manufatti di caratteristiche costanti)
? automazione programmabile (produzione di piccoli e medi
lotti di manufatti di caratteristiche variabili)
? automazione flessibile (produzione di lotti variabili di ma-
nufatti diversi)

 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

STRUTTURA DEI MANIPOLATORI

 struttura meccanica a catena cinematica aperta o a catena ci-


nematica chiusa

 gradi di mobilità (giunti prismatici o rotoidali)

 gradi di libertà (descrizione di un compito)

 spazio di lavoro (porzione dell’ambiente circostante a cui pu ò


accedere l’organo terminale)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore cartesiano

 tre giunti prismatici


? ad ogni grado di mobilità corrisponde un grado di libert à

 ottime caratteristiche di rigidezza meccanica

 precisione di posizionamento del polso costante nello spazio di


lavoro

 operazioni di trasporto e assemblaggio

 azionamenti elettrici (talvolta pneumatici)


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore a portale

 manipolazione di oggetti di dimensione e peso rilevanti


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore cilindrico

 un giunto rotoidale e due prismatici


? ad ogni grado di mobilità corrisponde un grado di libert à (in
coordinate cilindriche)

 buone caratteristiche di rigidezza meccanica

 la precisione di posizionamento del polso si riduce al crescere


dello sbraccio orizzontale

 operazioni di trasporto di oggetti anche di peso rilevante

 azionamenti idraulici (o elettrici)


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore sferico

 due giunti rotoidali e uno prismatico


? ad ogni grado di mobilità corrisponde un grado di libert à (in
coordinate sferiche)

 discrete caratteristiche di rigidezza meccanica

 la precisione di posizionamento del polso si riduce al crescere


dello sbraccio radiale

 operazioni di lavorazione

 azionamenti elettrici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore SCARA

 due giunti rotoidali e uno prismatico

 elevata rigidezza a carichi verticali e cedevolezza a carichi oriz-


zontali (Selective Compliance Assembly Robot Arm)

 la precisione di posizionamento del polso si riduce al crescere


della distanza del polso stesso dall’asse del primo giunto

 manipolazione di piccoli oggetti

 azionamenti elettrici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore antropomorfo

 tre giunti rotoidali


? spalla e gomito (che connette braccio e avambraccio)

 struttura più destra

 precisione di posizionamento variabile

 applicazioni molteplici

 azionamenti elettrici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Polso sferico

 giunti rotoidali
? determinano l’orientamento dell’organo terminale

 caratteristiche di compattezza e destrezza

 disaccoppiamento tra posizione e orientamento

Organo terminale

 specificato in relazione al compito che il robot deve eseguire


? pinza (trasporto)
? utensile o dispositivo specializzato (lavorazione e assem-
blaggio)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Alcuni robot industriali

 Robot AdeptOne XL

 Robot Comau SMART S2


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Robot ABB IRB 4400

 Unità lineare Kuka KL 250 con robot KR 15/2


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Robot Robotics Research K-1207i

 Robot Fanuc I-21i


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

 relazioni tra posizioni dei giunti e posizione e orientamento


dell’organo terminale

Cinematica differenziale

 relazioni tra velocità dei giunti e velocità (lineare e angolare)


dell’organo terminale

Statica

 relazioni tra forze e coppie applicate ai giunti e forze e momenti


applicati all’organo terminale in situazioni di equilibrio

Dinamica

 equazioni del moto del manipolatore in funzione delle forze e


momenti agenti su di esso
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Pianificazione di traiettorie

 generazione delle leggi di moto per le variabili di interesse


(giunti/organo terminale)

Controllo del moto

 determinazione delle forze/coppie agli attuatori per garantire


l’esecuzione delle traiettorie di riferimento

Controllo dell’interazione

 gestione del contatto tra organo terminale e ambiente


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Attuatori e sensori

 attuazione del moto

 misura di variabili di interesse

Unità di governo

 implementazione delle leggi di controllo

 interfaccia con operatore


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CINEMATICA

 relazioni tra posizioni dei giunti e posizione e orientamento


dell’organo terminale

Matrice di rotazione

Rappresentazioni dell’orientamento

Trasformazioni omogenee

Cinematica diretta

Spazio dei giunti e spazio operativo

Calibrazione cinematica

Problema cinematico inverso


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

POSIZIONE E ORIENTAMENTO DI UN
CORPO RIGIDO

 Posizione
2 o0x 3
o0 = 4 o0y 5
o0z
 Orientamento

x0 = x0xx + x0y y + x0z z


y0 = yx0 x + yy0 y + yz0 z
z0 = zx0 x + zy0 y + zz0 z
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

MATRICE DI ROTAZIONE

2 3 2 x0T x y0T x z0T x 3


R = 4 x0 y0 z0 5 = 4 x0T y y0T y z0T y 5
x0T z y0T z z0T z

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

px = p0x cos ; p0y sin


py = p0x sin + p0y cos
pz = p0z
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Rotazione di un vettore

p = Rp0
pT p = p0T RT Rp0
 Esempio

px = p0x cos ; p0y sin


py = p0x sin + p0y cos
pz = p0z
p = Rz ( )p0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

Rij = (Rji ); = (Rji )T


1

 Rotazione in terna corrente

R =R R
0
2
0
1
1
2

 Rotazione in terna fissa

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

 rappresentazione minima dell’orientamento


? 3 parametri indipendenti
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Angoli ZYZ

R() = Rz (')Ry (#)Rz ( )


0 00

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

i 3 angoli ZYZ sono (# 2 (0;  ))

' = Atan2(r23; r13 )


q 
# = Atan2 r13 2
+ r232
; r33
= Atan2(r32; ;r31 )

ovvero (# 2 (;; 0))

' = Atan2(;r23; ;r13 )


 q 
# = Atan2 ; r13
2
+ r23
2
; r33
= Atan2(;r32; r31 )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Angoli di RPY

R() = Rz (')Ry (#)Rx( )


2c c c s s ;s c c s c +s s 3
' # ' # ' ' # '
= 4 s' c# s' s# s + c' c s' s# c ; c' s 5
;s# c# s c# c
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Problema inverso
? Assegnata 2r 3
r12 13r
R = 4r r 5
11
21 r22 23
r31 r32 r33

i 3 angoli di RPY sono (# 2 (;=2; =2))

' = Atan2(r21 ; r11 )


 q 
# = Atan2 ;r31 ; r32 2
+ r33
2

= Atan2(r32 ; r33 )

ovvero (# 2 (=2; 3=2))

' = Atan2(;r21; ;r11 )


 q 
# = Atan2 ;r31 ; ; r32
2
+ r33
2

= Atan2(;r32; ;r33 )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

ASSE/ANGOLO

R(#; r) = Rz ( )Ry ( )Rz (#)Ry (; )Rz (; )

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#

R(#; r) = R(;#; ;r)


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Problema inverso
? Assegnata 2r 3
r12 13 r
R = 4r r 5
11
21 r22 23
r31 r32 r33

l’angolo e l’asse di rotazione sono (sin # 6= 0)

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

 rappresentazione a 4 parametri Q = f; g

 = cos #2
 = sin #2 r

2 + 2x + 2y + 2z = 1

? (#; r) e (;#; ;r) forniscono lo stesso quaternione

2 2( +  ) ; 1 2(xy ; z ) 2(xz + y ) 3


2 2
x
R(; ) = 4 2(xy + z ) 2( + y ) ; 1 2(y z ; x ) 75
6 2 2

2(x z ; y ) 2(y z + x ) 2(2 + 2z ) ; 1


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

Q;1 = f; ;g

 prodotto tra quaternioni

Q1  Q2 = f1 2 ; T1 2 ; 1 2 + 2 1 + 1  2 g
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

TRASFORMAZIONI OMOGENEE

 Trasformazione di coordinate (traslazione + rotazione)

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

 Matrice di trasformazione omogenea

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

 Catena cinematica (dalla base all’organo terminale)


? aperta (sequenza unica)
? chiusa (sequenza forma un anello)

 Grado di mobilità
? tipicamente associato a una articolazione = variabile di
giunto
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Terna base e terna utensile

 Equazione cinematica diretta


2 3
b 6 n
Te (q ) = 4 e
b (q) sb (q) ab (q) pb (q) 7
e e e 5
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore planare a due bracci

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

Tn (q) = A (q )A (q ) : : : Ann; (qn)


0 0
1 1
1
2 2
1

Teb (q) = T b Tn (q)Ten


0
0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Convenzione di Denavit-Hartenberg

 si sceglie l’asse zi giacente lungo l’asse del giunto i + 1

 si individua Oi all’intersezione dell’asse z i con la normale


comune agli assi zi;1 e zi , e con Oi0 si indica l’intersezione
della normale comune con z i;1

 si assume l’asse xi diretto lungo la normale comune agli


assi zi;1 e zi con verso positivo dal giunto i al giunto i + 1

 si sceglie l’asse yi in modo da completare una terna levogira


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Definizione non univoca della terna:


? con riferimento alla terna 0, per la quale la sola direzione
dell’asse z0 risulta specificata: si possono quindi scegliere
arbitrariamente O0 ed x0
? con riferimento alla terna n, per la quale il solo asse x n ri-
sulta soggetto a vincolo (deve essere normale all’asse z n;1):
infatti non vi è giunto n + 1, per cui non è definito zn e lo
si può scegliere arbitrariamente
? quando due assi consecutivi sono paralleli, in quanto la
normale comune tra di essi non è univocamente definita
? quando due assi consecutivi si intersecano, in quanto il verso
di xi è arbitrario
? quando il giunto i è prismatico, nel qual caso la sola dire-
zione dell’asse zi;1 è determinata
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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.

 ai e i sono sempre costanti


 se il giunto è rotoidale la variabile è #i

 se il giunto è prismatico la variabile è di


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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#s c ;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

 Connessione di un singolo braccio con due bracci

 giunto virtuale di taglio

Aij (q0) = Aii (qi ) : : : Ajj; (qj )


+10 +10
1

Aik (q00) = Aii (qi ) : : : Akk; (qk )


+100 +100
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

Manipolatore planare a tre bracci


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

2 c ;s 123 123 0 a1 c1 + a2 c12 + a3 c123 3


= 64 s 0 c 0 123 123 0 a1 s1 + a2 s12 + a3 s123 75
1 0
0 0 0 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

T (q) = A (q)A = 64 ;0s ;0c 01 a s 0; a s 75


0
4
0
30
30
4
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

Manipolatore antropomorfo con polso sferico


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

SPAZIO DEI GIUNTI E SPAZIO OPERATIVO

 Spazio dei giunti


2q 3 1

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

 Spazio di lavoro raggiungibile

p = p(q) qim  qi  qiM i = 1; : : : ; n


? elementi di superficie planare, sferica, toroidale e cilindrica

 Spazio di lavoro destro


? orientamenti diversi
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Valori precisi dei parametri DH per migliorare l’accuratezza di


un manipolatore

 Equazione cinematica diretta in funzione di tutti i parametri

x = k(a; ; d; #)

xm locazione misurata

xn locazione nominale (parametri fissi + variabili giunto)

x = @@ ak a + @@ k  + @@ kd d + @@#k #

= (n )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? l misure (lm  4n)


2 x1 3 2 1 3
x = 4 ... 5 = 4 ... 5  =  
xl l
 Soluzione

 = ( T  );1  T x

 0 = n + 
: : : finché  converge

? stime più accurate dei parametri fissi


? correzioni alle misure dei trasduttori

Inizializzazione

 postura di riferimento (home)


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

PROBLEMA CINEMATICO INVERSO

 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 del manipolatore planare a tre bracci

 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

p2Wx + p2Wy ; a21 ; a22


c2 = 2a1 a2
q 2
s2 =  1 ; c2
#2 = Atan2(s2 ; c2 )

s1 = (a1 + a2pc22 )pWy ; a2 s2 pWx


Wx+ p2 Wy
c1 = (a1 + a2pc22 )pWx + a2 s2 pWy
+ p2
Wy Wy
#1 = Atan2(s1 ; c1 )

#3 =  ; #1 ; #2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Soluzione geometrica

p2Wx + p2Wy ; a21 ; a22


c2 = 2a1 a2 .

#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

2a1 p2Wx + p2Wy

#1 = 
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Soluzione di manipolatori con polso sferico

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

? risolvere la cinematica inversa per l’orientamento (# 4; #5 ; #6 )


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Soluzione del manipolatore sferico

(A01 );1T30 = A12 A23


2 p c +p s 3 2 d s 3
Wx Wy
pW = 4 5 = 4 ;d c 5
1 1 3 2
1
;pWz 3 2
;pWx s1 + pWy c1 d2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

1 ; t2
c1 = 1 + t2 s1 = 1 +2tt2

(d2 + pWy )t2 + 2pWx t + d2 ; pWy = 0

 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

Soluzione del manipolatore antropomorfo

#1 = Atan2(pWy ; pWx ) #1 =  + Atan2(pWy ; pWx )

p2Wx + p2Wy + p2Wz ; a22 ; a23


c3 =
q 2 2a2a3
s3 =  1 ; c3
q
(a2 + a3 c3 )pWz ; a3 s3 p2Wx + p2Wy
s2 = p2Wx + p2Wy + p2Wz
q2
(a2 + a3 c3 ) pWx + p2Wy + a3 s3 pWz
c2 = p2Wx + p2Wy + p2Wz
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Quattro configurazioni ammissibili

? soluzione univoca solo se

pWx 6= 0 pWy 6= 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Soluzione del polso sferico

2 nx sx ax 3
3 3 3

R = 4 ny sy ay 5
3
6
3 3 3

n3z s3z a3z

#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

 relazioni tra velocità dei giunti e velocità dell’organo terminale

Jacobiano geometrico

Jacobiano analitico

Singolarità cinematiche

Analisi della ridondanza

Inversione della cinematica differenziale

Algoritmi per l’inversione cinematica

STATICA

 relazioni tra forze all’organo terminale e coppie ai giunti


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

Derivata di una matrice di rotazione

R(t)RT (t) = I
R_ (t)RT (t) + R(t)R_ T (t) = O

 Posto S (t) = R_ (t)RT (t)


S (t) + S T (t) = O
R_ (t) = S (!(t))R(t)
2 0 ;! ! 3
z y
S = !z 0 ;!x 5
4
;!y !x 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Esempio

2 cos ;sin 0
3
Rz ( ) = 4 sin cos 05
0 0 1

2 ; _ sin ; _ cos 0 3 2 cos sin 0 3


S (t) = 4 _ cos ; _ sin 0 5 4 ;sin cos 0 5
2 0 0; _ 0 3 0 0 0 0 1
= 4 _ 0 0 5 = S (!(t))
0 0 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

pi = pi; + Ri; rii;; ;i


1 1
1
1

p_ i = p_ i; + Ri; r_ ii;; ;i + !i;  Ri; rii;; ;i


1 1
1
1 1 1
1
1

= p_ i; + vi; ;i + !i;  ri; ;i


1 1 1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Velocità angolare

Ri = Ri; Rii;
1
1

S (!i)Ri = S (!i; )Ri + Ri; S (!ii;; ;i)Rii;


1 1
1
1
1

= S (!i;1 )Ri + S (Ri;1!ii;;11;i )Ri

!i = !i; + Ri; !ii;; ;i


1 1
1
1

= !i; + !i; ;i
1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

!i = !i; + !i; ;i
1 1

p_ i = p_ i; + vi; ;i + !i;  ri; ;i


1 1 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

vi; ;i = !i; ;i  ri; ;i


1 1 1

!i = !i; + #_ izi;
1 1

p_ i = p_ i; + !i  ri; ;i
1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Calcolo dello Jacobiano

2| | 3
P Pn
J= 4 :::
1
5
|O |On
1

 Velocità angolare
? giunto i prismatico

q_i |Oi = 0 =) |Oi = 0

? giunto i rotoidale

q_i |Oi = #_ i zi;1 =) |Oi = zi; 1


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Velocità lineare
? giunto i prismatico

q_i |Pi = d_i zi;1 =) |Pi = zi; 1

? giunto i rotoidale

q_i |Pi = !i;1;i  ri;1;n


= #_ i zi;1  (p ; pi;1 )
+
|Pi = zi;  (p ; pi; )
1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Colonna dello Jacobiano geometrico

8  zi; 
|  >< 1
per un giunto prismatico
Pi =  0 
|Oi >: zi; z(p ; pi; )
1 1
per un giunto rotoidale
i; 1

? zi;1 = R10 (q1 ) : : : Rii;;12(qi;1)z0

? p~ = A01 (q1 ) : : : Ann;1(qn )~p0

? p~ i;1 = A01 (q1 ) : : : Aii;;21 (qi;1)~p0


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Rappresentazione in terna differente

 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

Manipolatore planare a tre bracci


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

 ;a s ; a s ; a s ;a2 s12 ; a3 s123 ;a3s123



JP = 1 1 2 12 3 123
a1 c1 + a2 c12 + a3 c123 a2 c12 + a3 c123 a3 c123
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

 Velocità di rotazione in terna corrente di angoli di Eulero ZYZ

? per effetto di '_ : [ !x !y !z ]T = '_ [ 0 0 1 ]T


? per effetto di #_ : [ !x !y !z ]T = #_ [ ;s' c' 0 ]T
? per effetto di _ : [ !x !y !z ]T = _ [ c' s# s' s# c# ]T
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Composizione di velocità di rotazione elementari

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

Relazione tra Jacobiano analitico e


Jacobiano geometrico

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

 Manipolatore planare a due bracci


 ;a s ; a s ;a2s12

J= 1 1 2 12
a1 c1 + a2 c12 a2 c12
det(J ) = a1 a2 s2
+
#2 = 0 #2 = 

? [ ;(a1 + a2 )s1 (a1 + a2 )c1 ]T parallelo a [ ;a2s1 a2 c1 ]T


(componenti di velocità dell’organo terminale non indipen-
denti)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Disaccoppiamento di singolarità

 calcolo delle singolarit à della struttura portante

 calcolo delle singolarit à del polso


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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(J ) = det(J11 )det(J22 )

det(J11 ) = 0 det(J22 ) = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Singolarità di polso

 z3 parallelo a z5
#5 = 0 #5 = 

? rotazioni uguali e opposte di # 4 e #6 non producono alcuna


rotazione dell’organo terminale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Singolarità di struttura portante

 Manipolatore antropomorfo

det(JP ) = ;a2 a3 s3 (a2 c2 + a3 c23 )

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

ANALISI DELLA RIDONDANZA

 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

 q_ a genera moti interni della struttura


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

INVERSIONE DELLA CINEMATICA


DIFFERENZIALE

 Equazione cinematica non lineare

 Equazione cinematica differenziale lineare nelle velocit à

 Data v(t) + condizioni iniziali =) (q(t); q_ (t))


? se n = r
q_ = J ; (q)v
1

Zt
q(t) = q_ (& )d& + q(0)
0

? regola di integrazione numerica (Eulero)

q(tk ) = q(tk ) + q_ (tk )t


+1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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_

? metodo dei moltiplicatori di Lagrange

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

 Utilizzo della ridondanza

g0 (q_ ) = 12 (q_ T ; q_ aT )(q_ ; q_ a )

? come sopra : : :

g0 (q_ ; ) = 21 (q_ T ; q_ aT )(q_ ; q_ a ) + T (v ; J q_ )

? soluzione ottima

q_ = J yv + (I ; J yJ )q_ a
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Caratterizzazione dei moti interni

 @w(q) T
q_ a = ka @ q

? misura di manipolabilit à

q ; 
w(q) = det J (q)J T (q)

? distanza dai fine-corsa dei giunti

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

 Le soluzioni precedenti valgono solo se J è di rango pieno


 Se J non è di rango pieno (singolarità)
? se v 2 R(J ) =) soluzione q_ estraendo tutte le equa-
zioni linearmente indipendenti (traiettoria “fisicamente”
eseguibile)
? v
se 2 J
= R( ) =) il sistema non è risolvibile (traietto-
ria non eseguibile)

 Inversione nell’intorno di singolarit à


? det(J ) piccolo =) q_ elevate

? inversa a minimi quadrati smorzata

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

ALGORITMI PER L’INVERSIONE


CINEMATICA

 Inversione cinematica

q(tk ) = q(tk ) + J ; (q(tk ))v(tk )t


+1
1

? fenomeni di deriva della soluzione

 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

(Pseudo-)inversa dello Jacobiano

 Linearizzazione della dinamica di errore

q_ = JA; (q)(x_ d + Ke)


1

+
e_ + Ke = 0

? Per un manipolatore ridondante

q_ = JAy (x_ d + Ke) + (I ; JAy JA)q_ a


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Trasposta dello Jacobiano

 q_ = q_ (e) senza linearizzare la dinamica di errore


 Metodo di Lyapunov

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

V_ (e) = eT K x_ d ; eT KJA (q)JAT (q)Ke

? x = 0 =) V_ < 0 con V > 0 (asintotica stabilità)


se _ d
? se N (JAT ) 6= ; =) V_ = 0 se Ke 2 N (J T )
A
q_ = 0 con e 6= 0 (stallo?)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

? agevole per assegnare l’andamento temporale  d (t)


? richiede comunque il passaggio attraverso R = [ n s a ]

 Manipolatore con polso sferico


? q =) RW
calcolare P
? calcolare RW
T Rd =) qO (angoli di Eulero ZYZ)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

eO =  = (q)d ; d(q) ; S (d)(q)


 p_ + K e 
q_ = J ; (q) !dd + KPO ePO
1

!d ; ! + KO eO = 0
? propagazione del quaternione

_ = ; 12 T !
_ = 12 (I ; S ()) !

? studio della stabilità

V = (d ; )2 + (d ; )T (d ; )


V_ = ;eTO KO eO
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Confronto tra gli algoritmi per l’inversione


cinematica

 Manipolatore planare a tre bracci

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

2 ;a s ; a s ; a s ;a2 s12 ; a3 s123 ;a s


3
JA = 4 a c + a c + a c ac 5
1 1 2 12 3 123 3 123
1 1 2 12 3 123 a2 c12 + a3 c123 3 123
1 1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? qi = [  ;=2 ;=2 ]T rad


+
? pdi = [ 0 0:5 ]T m  = 0 rad

? traiettoria desiderata
 0:25(1 ; cos t) 
pd(t) = 0:25(2 + sin t) 0t4

t
d (t) = sin 24 0t4

 Simulazione in MATLAB con integrazione numerica di Eulero

q(tk ) = q(tk ) + q_ (tk )t


+1

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

 q_ = JA;1 (q)(x_ d + Ke) K = diagf500; 500; 100g

pos giunti vel giunti


5 10

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]

 q_ = JPT (q)KP eP KP = diagf500; 500g


norma errore pos orien
0.01 0.5

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

 q_ = JPy (p_ d + KP eP ) + (I ; JPy JP )q_ a


KP = diagf500; 500g
? misura di manipolabilità

w(#2 ; #3 ) = 12 (s22 + s23 )

 @w(q) T
? q_ a = ka @ q ka = 50

pos giunti pos giunti


5 5
1
1
[rad/s]
[rad]

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

? distanza dai fine-corsa dei giunti

1 X3  qi ; qi  2
w (q ) = ; 6
i=1 qiM ; qim

;2  q1  2 ;=2  q2  =2 ;3=2  q3  ;=2


 @w(q) T
? q_ a = ka @ q ka = 250

pos giunto 1 pos giunto 2

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

? lavoro elementare compiuto dalle forze

dW = f T dp + T !dt
= f T JP (q)dq + T JO (q)dq
= T J (q)dq

? spostamenti elementari  spostamenti virtuali

W =  T q
W = T J (q)q
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Principio dei lavori virtuali


? il manipolatore è in equilibrio statico se e solo se

W = W 8q
+
 = J T (q)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Dualità cineto-statica

N (J )  R?(J T ) R(J )  N ?(J T )


 forze 2 N (J T ) interamente assorbite dalla struttura
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Interpretazione fisica dello schema con la trasposta dello Jaco-


biano
? dinamica ideale  = q_
? forza elastica Ke che tira l’organo terminale verso la po-
stura desiderata nello spazio operativo
? ha effetto solo se Ke 2= N (J T )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Trasformazione di velocità e forze

 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

? in virtù della dualità cineto-statica:

= 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

 Struttura ad albero equivalente a catena aperta


q 
qo = qua

 Risolvendo i vincoli: u q = qu(qa)


q_ o =  q_ a2 3
I
 = 4 @ qu 5
@ qa
? per la dualità cineto-statica

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À

 Ellissoide di manipolabilit à in velocità


? insieme delle velocità ai giunti a norma costante

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

Manipolatore planare a due bracci

 Misura di manipolabilità

w = jdet(J )j = a1 a2 js2 j

? max per #2 = =2


? max per a1 = a2 (a parità di estensione a1 + a2 )
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Ellissi di manipolabilità in velocità

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

 Ellissoide di manipolabilit à in forza


? insieme delle coppie ai giunti a norma costante

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

Manipolatore planare a due bracci

 Ellissi di manipolabilità in velocità

0.5
[m]

−0.5

−1

0 0.5 1 1.5 2
[m]

 Ellissi di manipolabilità in forza

0.5
[m]

−0.5

−1

0 0.5 1 1.5 2
[m]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Manipolatore  trasformatore meccanico di velocit à e forze


dallo spazio dei giunti allo spazio operativo
? rapporto di trasformazione lungo una direzione per
l’ellissoide in forza

 ; = 1 2
(q) = uT J (q)J T (q)u

? rapporto di trasformazione lungo una direzione per


l’ellissoide in velocità

 ; ;
; = 1 2
(q) = uT J (q)J T (q) u 1

? utilizzazione di gradi di mobilità ridondanti


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Compatibilità della struttura ad eseguire un compito assegnato


lungo una direzione
? compito di scrittura su superficie orizzontale

vel

piano di scrittura
forza

? compito di lancio di un peso in direzione orizzontale

forza

vel

direzione di lancio
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

DINAMICA

 equazioni del moto del manipolatore in funzione delle forze e


momenti agenti su di esso

Formulazione di Lagrange

Proprietà notevoli del modello dinamico

Identificazione dei parametri dinamici

Formulazione di Newton-Eulero

Dinamica diretta e dinamica inversa

Modello dinamico nello spazio operativo

Ellissoide di manipolabilità dinamica


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

FORMULAZIONE DI LAGRANGE

 Lagrangiana  (energia cinetica) ; (energia potenziale)

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

L = 12 I #_ 2 + 12 Im kr2 #_ 2 ; mg`(1 ; cos #)


? equazione del moto

(I + Im kr2)# + mg` sin # = 


=  ; F #_
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Energia cinetica

 Contributo bracci + attuatori

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 R (r + r )dV ; R r r dV ; R r r dV 3


iy iz
2 2
ix iy ix iz
I` = 64 
R R
(rix + riz )dV R; riy riz dV 75
2 2
i

  (rix + riy )dV 2 2

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

 Energia cinetica del braccio i

T` = 21 m` p_ T` p_ ` + 12 !iT Ri I`i RiT !i


i i i i i

= 12 m`i q_ T JP(`i )T JP(`i ) q_ + 12 q_ T JO(`i )T Ri I`ii RiT JO(`i ) q_

? velocità lineare

p_ ` = |P` q_ + : : : + |Pi` q_i = JP` q_


i
( i)
1 1
( i) ( i)

 zj;
|Pj` = zj;  (p` ; pj; )
( i) 1
1 i 1
per un giunto prismatico
per un giunto rotoidale

? velocità angolare

!i = |O` q_ + : : : + |Oi` q_i = JO` q_


( i)
1 1
( i) ( i)

0
|Oj` = zj; per
( i) un giunto prismatico
per un giunto rotoidale
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Motore i (elettrico rotante)

? trasmissione rigida

!m = !i; + kriq_izm
i 1 i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Energia cinetica del rotore i

Tm = 12 mm p_ Tm p_ m + 12 !mT Im !m
i i i i i i i

= 12 mmi q_ T JP(mi )T JP(mi ) q_ + 12 q_ T JO(mi )T Rmi Immii Rm


T J (mi ) q_
i O

? velocità lineare

JPm =  |Pm : : : |P;im;


( i) (
1
i) ( i)
1 0 ::: 0


 zj;
|Pjm
( i)
= zj;  (pm ; pj; )
1
1 i 1
per un giunto prismatico
per un giunto rotoidale

? velocità angolare

JOm =  |Om : : : |O;im ; |Oim


( i) (
1
i) ( i)
1
( i)
0 ::: 0


(
|Ojmi) =
( |Oj`
( i)
j = 1; : : : ; i ; 1
kri zm i j=i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Energia cinetica totale

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

 Energia potenziale totale

X
n
U =; (m`i g0T p`i + mmi g0T pmi )
i=1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Equazioni del moto

L(q; q_ ) = T (q; q_ ) ; U (q)


1 Xn X n Xn ; 
=2 bij (q)q_iq_j + m`i g0 p`i (q)+ mmi g0 pmi (q)
T T
i=1 j =1 i=1

 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

 Equazioni del moto

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

? termini quadratici in velocit à:


il termine hijj q_j2 rappresenta l’effetto centrifugo indotto al
giunto i dalla velocità del giunto j ; si noti che h iii = 0,
poiché @bii =@qi = 0
il termine hijk q_j q_k rappresenta l’effetto di Coriolis indotto
al giunto i dalle velocità dei giunti j e k

? termini dipendenti solo dalla configurazione:


il termine gi rappresenta la coppia generata all’asse del
giunto i nella configurazione corrente del manipolatore per
effetto della gravità
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Forze non conservative


? coppie di attuazione 
? Fq
coppie di attrito viscoso ; v _
? coppie di attrito statico ;f s (q ; q_ )  Fs sgn (q_ )
? coppie di bilanciamento di forze di contatto ;J T (q )h

 Modello dinamico nello spazio dei giunti

B(q)q + C (q; q_ )q_ + Fv q_ + fs (q_ ) + g(q) =  ; J T (q)h

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

PROPRIETÀ NOTEVOLI DEL MODELLO


DINAMICO

Anti-simmetria della matrice B_ ; 2C

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

N (q; q_ ) = B_ (q) ; 2C (q; q_ ) = ;N T (q; q_ )


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Principio di conservazione dell’energia (Hamilton)

1 d ;q_ T B (q)q_  = q_ T ; ; F q_ ; f (q_ ) ; g(q) ; J T (q)h


2 dt v s

1 d ;q_ T B (q)q_  = 1 q_ T B_ (q)q_ + q_ T B (q)q


2 dt 2
; 
= 12 q_ T B_ (q) ; 2C (q; q_ ) q_
;
+ q_  ; Fv q_ ; fs (q_ ) ; g(q) ; J (q)h
T T 
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Linearità nei parametri dinamici

 Insieme braccio i e rotore i + 1

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

? con riferimento al baricentro pC i dell’insieme braccio–


rotore

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

+ 12 m`i !iT S T (rCi ;`i )S (rCi ;`i )!i + 12 !iT I`i !i

= 21 m`i p_ TCi p_ Ci + p_ TCi S (!i)m`i rCi ;`i + 12 !iT I`i !i

? per il teorema di Steiner

I` = I` + m` S T (rC ;` )S (rC ;` )


i i i i i i i

 Rotore

Tm +1 = 21 mm +1 p_ TC p_ C + p_ TC S (!i)mm +1 rC ;m +1 + 21 !iT Im +1 !i


i i i i i i i i i

+ kr;i+1 q_i+1 zmT i+1 Imi+1 !i + 12 kr;i


2
+1 q_i+1 zmi+1 Imi+1 zmi+1
2 T

? per il teorema di Steiner

Im +1 = Im +1 + mm +1 S T (rC ;m +1 )S (rC ;m +1 )


i i i i i i i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Energia cinetica

Ti = 12 mi p_ TC p_ C + 12 !iT Ii !i + kr;i+1 q_i+1 zmT +1 Im +1 !i


i i i i

+ 12 kr;i
2
+1 q_i+1 zmi+1 Imi+1 zmi+1
2 T

? rotore con distribuzione di massa simmetrica intorno al suo


asse di rotazione
2I 0 0
3
m xx
Im = 4 0 Im xx
m 0 5
i
i
i i
0 0 Imi zz
+

Im +1 zm +1 = Rm +1 Imm +1+1 RmT +1 zm +1 = Im +1 zm +1


i i i
i
i i i i i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Quantità riferite alle terne solidali ai bracci

Ti = 12 mip_ iTC p_ iC + 12 !iiT Iii !ii + kr;i+1 q_i+1 Im +1 zmiT +1 !ii


i i i i

+ 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

? per il teorema di Steiner

I^ii = Iii + miS T (ri;C


i )S (ri )
ii;C i
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Energia cinetica lineare rispetto a:


? massa mi
? momento primo di inerzia
2m ` 3
i Cx
miri;C = mi `C y 5
i 4 i

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

2 I^ixx ;I^ixy ;I^ixz 3


= 64  I^iyy I^iyz 75
  I^izz
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Energia potenziale

Ui = ;mig0iT piCi

= ;g0iT (mipii + mi ri;C


i )
i

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

i = [ mi mi`C x mi`C y mi`C z


i i i

I^ixx I^ixy I^ixz I^iyy I^iyz I^izz Imi ]T

 Le operazioni richieste dalle equazioni di Lagrange non alte-


rano la linearità

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

Manipolatore cartesiano a due bracci

 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

g1 = (m`1 + mm2 + m`2 )g g2 = 0

 Equazioni del moto

(m`1 + mm2 + kr21 Im1 + m`2 )d1 + (m`1 + mm2 + m`2 )g = f1


(m`2 + kr22 Im2 )d2 = f2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore planare a due bracci

 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

 Forze centrifughe e di Coriolis

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

N (q; q_ ) = B_ (q) ; 2C (q; q_ )


 2h#_ h#_   h#_ h ( _
# + _
# )

= _2
h#2 0
2
; 2 2
;h#_ 1
1
0
2

 0 ; 2h#_ 1 ; h#_ 2

= 2h#_ + h#_ 0
1 2

 Forze gravitazionali

g1 = (m`1 `1 + mm2 a1 + m`2 a1 )gc1 + m`2 `2 gc12


g2 = m`2 `2 gc12
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Equazioni del moto

;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

+ m`2 a1 `2 s2 #_ 21 + m`2 `2 gc12 = 2


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Parametrizzazione del modello

 = [         ]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

 Manipolatore planare a due bracci


? a1 = a2 = 1 m `1 = `2 = 0:5 m
m`1 = m`2 = 50 kg I`1 = I`2 = 10 kg  m2
? kr1 = kr2 = 100
mm1 = mm2 = 5 kg Im1 = Im2 = 0:01 kg  m2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

pos giunto 1 pos giunto 2

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

pos giunto 1 pos giunto 2


4 4

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

0 0.2 0.4 0.6 0 0.2 0.4 0.6


[s] [s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

0 0.2 0.4 0.6 0 0.2 0.4 0.6


[s] [s]
centrif_2 + coriol_12 centrif_1
1000 1000

12
500 500
[Nm]

[Nm]

0 0

2
−500 −500

0 0.2 0.4 0.6 0 0.2 0.4 0.6


[s] [s]
grav_1 grav_2
1000 1000

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

pos organo terminale


2

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

pos giunto 1 pos giunto 2


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

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

 Matrici di inerzia per i manipolatori virtuali

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

b1 1 = I`1 + m`1 `21 + I`2 + m`2 (a21 + `22 + 2a1 `2 c2 ) + I`3


0 0
0 0 0 0 0 0 0 0 0 0
0

+ m`3 (a21 + a22 + `23 + 2a1 a2 c2 + 2a1 `3 c2 3 + 2a2 `3 c3 )


0 0 0 0 0 0 0 0 0 0 0 0 0 0

b1 2 = b2 1 = I`2 + m`2 (`22 + a1 `2 c2 ) + I`3


0 0 0 0
0 0 0 0 0 0
0

+ m`3 (a22 + `23 + a1 a2 c2 + a1 `3 c2 3 + 2a2 `3 c3 )


0 0 0 0 0 0 0 0 0 0 0 0 0

b1 3 = b31 = I`3 + m`3 (`23 + a1 `3 c2 3 + a2 `3 c3 )


0 0
0 0 0 0 0 0 0 0 0 0

b2 2 = I`2 + m`2 `22 + I`3 + m`3 (a22 + `23 + 2a2 `3 c3 )


0 0
0 0 0 0 0 0 0 0 0 0

b2 3 = I`3 + m`3 (`23 + a2 `3 c3 )


0 0
0 0 0 0 0 0

b3 3 = I`3 + m`3 `23


0 0
0 0 0

b1 1 = I`1 + m`1 `21


0 0
00 00 00 .

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

 Manipolatore a catena chiusa

a = Ba qa

b ba12

Ba = baa 11
21 ba22
ba11 = I`1 + m`1 `21 + m`2 a21
0 0 0 0 0

+ I`3 + m`3 `23 + m`3 a21 ; 2a1 m`3 `3


0
; 0 0
 0

ba12 = ba21 = a1 m`2 `2 + a1 m`3 (a1 ; `3 ) cos (#1 ; #1 )


0 0
0

00
0
0

0
0

0 00 0
0 0

ba22 = I`1 + m`1 `21 + I`2 + m`2 `22 + m`3 a21 .


0 0 0 0 0 0 0 00

? matrice costante e diagonale

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

ba22 = I`1 + m`1 `21 + I`2 + m`2 `22 1 + `1 `1


0 0 0 0 0 0
0

0
00

0
2 3
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Forze gravitazionali

g1 = (m`1 `1 + m`2 a1 + m`3 a1 )gc1 + (m`2 `2 + m`3 a2 )gc1 2


0
0
0
0
0
0
0 0
0
0
0
0 0 0

+ m`3 `3 gc1 2 3 0
0 0 0

g2 = (m`2 `2 + m`3 a2 )gc1 2 + m`3 `3 gc1 2 3


0
0
0
0
0 0 0
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

1 2 3 00 100 0 20 0 100 100


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

IDENTIFICAZIONE DEI PARAMETRI


DINAMICI

 Impiego del modello dinamico per simulazione e controllo

 Stime approssimate dei parametri dinamici


? semplificazioni di modellazione geometrica
? effetti dinamici complessi (attriti, etc.)

 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 )

 Soluzione (a minimi quadrati)

 = (Y T Y ); Y T 
1

? Y triangolare =) procedimento iterativo


? se %(Y ) < p =) Y ?
 Parametri
? identificabili
? non identificabili
? identificabili in combinazione lineare

 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

? bilancio di forze e momenti agenti sul generico braccio

 Equazione di Newton (moto traslazionale del baricentro)

fi ; fi + mig = mipC
+1 0 i

 Equazione di Eulero (moto rotazionale)

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 (I ! ) = R_ Ii RT ! + R Ii R_ T ! + R Ii RT !_


dt i i i i i i i i i i i i i i
= S (!i)Ri Iii RiT !i + Ri Iii RiT S T (!i )!i + Ri Iii RiT !_ i
= Ii !_ i + !i  (Ii !i )

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

i + fi  ri; ;C ; i ; fi  ri;C = Ii!_ i + !i  (Ii!i)


1 i +1 +1 i

+ kr;i qi Im +1 zm +1 + kr;i q_i Im +1 !i  zm +1


+1 +1 i i +1 +1 i i

 Forza generalizzata al giunto

(
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

: p+i;!i + !(_!i irir;i;;i;i)


> 1 1
1 rotoidale

pC = pi + !_ i  ri;C + !i  (!i  ri;C )


i i i

!_ m = !_ i; + kriqizmi + kriq_i!i;  zmi


i 1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Algoritmo ricorsivo

 Ricorsione in avanti di velocità e accelerazioni


? condizioni iniziali: ! , p ; g , !_
0 0 0 0

? calcolo di !i , !_ i , p
i , p C , !_ mi i

 Ricorsione all’indietro di forze e momenti


? condizioni terminali: h = [ fnT +1 Tn ]T
+1

? calcolo di

fi = fi + mipC
+1 i

i = ;fi  (ri; ;i + ri;C ) + i + fi  ri;C


1 i +1 +1 i

+ Ii !_ i + !i  (Ii !i)


+ kr;i qi Im +1 zm +1 + kr;i q_i Im +1 !i  zm +1
+1 +1 i i +1 +1 i 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

 Conviene riferire tutti i vettori alla terna corrente sul braccio i


? I r
le quantità ii , i;C z
i , i;1 sono costanti
i mi

( 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

8 Ri;1T (pi;1 + diz0) + 2d_i!i  Ri;1T z0


>
> i i;1 i i
< + !
_ i  ri
i i ; 1;i + !i  (!i  ri;1;i )
i i i prismatico
pi = > i;1T i;1 i i
i
Ri pi;1 + !_ i  ri;1;i
(4.108)
>
: +!i  (!i  ri )
i i i;1;i rotoidale

piCi = pii + !_ ii  ri;Ci + !i  (!i  ri )


i i i i;Ci (4.109)

!_ mi;i1 = !_ ii;;11 + kriqizmi;i1 + kriq_i!ii;;11  zmi;i1 (4.110)

fii = Rii+1fii+1 +1
+ mi p iCi (4.111)

ii =; fii  (rii;1;i + ri;C i ) + Ri i+1


i i+1 i+1 (4.112)
+ Rii+1 fii+1 +1
 ri;C
i + Ii !_ i + !i  (I i !i )
i i i i i i
+ kr;i+1qi+1 Imi+1 zmi i+1 + kr;i+1q_i+1 Imi+1 !ii  zmi i+1
8 f iT Ri;1T z + k I !_ i;1T zi;1
>
> i i ri mi mi mi
< +Fvid_i + Fsi sgn (d_i)
0
prismatico
i = > iT i;1 T (4.113)
: +i FRi#_ +zF0 +sgn kri Imi !_ mi zmi
i ; 1 T i;1
>
vi i si (#_ i) rotoidale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Struttura computazionale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Manipolatore planare a due bracci

 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

 Quantità riferite alla terna corrente


2` 3 2a 3
C1
r ;C1 = 0 5 r ; = 4 0 5
4 1
1 1
1 01
0 0
2` 3 2a 3
C2
r ;C2 = 4 0 5 r ; = 4 0 5
2
2 2
2 12
0 0
203
zm1 = z = zm2 = zm2 = z = 4 0 5
1 1
0
1 2 2
1
1
? matrici di rotazione

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

 Ricorsione in avanti: braccio 1


203
! = 64 0 75
1
1

#_ 1
203
!_ 11 = 64 0 75
#1
2 ;a1#_ 2 + gs1 3
p11 = 4 a1#1 + gc1 75
6 1

2 ;(`C 0+ a1)#_ 2 + gs1 3


1
p1C1 = 4 (`C1 + a1)#1 + gc1 75
6 1

0
2 0 3
!_ m0 1 = 64 0 75
kr1 #1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Ricorsione in avanti: braccio 2

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

 Ricorsione all’indietro: braccio 2

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

 Ricorsione all’indietro: braccio 1


2 ;m (`C2 + a )s (# + # ) ; m (`C1 + a )#_ ; m a #_
2 2 2 1 2 1 1
2
2 1
2 3
66 77
1 1
;m (`C2 + a )c (#_ + #_ ) + (m + m )gs 2

f = 666 m (`C1 + a )# + m a # + m (`C2 + a )c (# + # ) 77


2 2 2 1 2 1 2 1

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

+m1 (`C1 + a1 )gc1 + m2 a1 gc1 + m2 (`C2 + a2 )gc12



1 = I1zz + m1 (`C1 + a1 )2 + kr21 Im1 + I2zz
; 
+m2 a1 + (`C2 + a2 ) + 2a1 (`C2 + a2 )c2 #1
2 2

 ;  
+ I2zz + m2 (`C2 + a2 ) + a1 (`C2 + a2 )c2 + kr2 Im2 #2
2

; 2;m2 a1 (`C2 + a2 )s2 #_ 1 #_2 ; m2 a1 (`C2 + a2 )s2 #_ 22


+ m1 (`C1 + a1 ) + m2 a1 gc1 + m2 (`C2 + a2 )gc12
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Equivalenza col modello di Lagrange

? parametri di bracci e rotori

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

DINAMICA DIRETTA E DINAMICA INVERSA

 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

 Per un manipolatore ad n giunti, il numero di operazioni per il


calcolo della dinamica è:
? O(n2 ) per la dinamica diretta
? O(n) per la dinamica inversa
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Dinamica diretta con Lagrange

q = B; (q)( ;  0 )
1

 0(q; q_ ) = C (q; q_ )q_ + Fv q_ + fs (q_ ) + g(q) + J T (q)h

? note q(tk ), q_ (tk ),  (tk ), si calcola q(tk )


? si integra numericamente con passo t: q_ (tk ), q (tk )
+1 +1

 Dinamica diretta con Newton-Eulero


? qq
note , _ , si calcola:
 0 come  per q = 0
colonna bi di B come  per g = 0, q_ = 0, qi = 1 e qj = 0
0
per j 6= i
? 
nota , si calcola q e si integra numericamente
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

MODELLO DINAMICO NELLO SPAZIO


OPERATIVO

 Ridondanza
? coordinate generalizzate (moti interni?)

 Singolarità

 Modello nello spazio dei giunti

q = ;B; (q)C (q; q_ )q_ ; B; (q)g(q)+ B; (q)J T (q)( ; h)


1 1 1

 Cinematica differenziale del secondo ordine

x = JA(q)q + J_ A(q; q_ )q_


= ;JA B ; C q_ ; JA B ; g + J_ A q_ + JA B ; JAT ( A ; hA )
1 1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Trasformazioni

BA = (JAB; JAT ); 1 1

CA x_ = BAJAB; C q_ ; BA J_ Aq_
1

gA = BAJAB; g 1

? manipolatore non ridondante

BA = JA;T BJA; 1

CA x_ = JA;T C q_ ; BA J_ Aq_
gA = JA;T g
 Equazioni del moto

BA (x)x + CA(x; x_ )x_ + gA(x) = A ; hA


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Soluzione (ridondanza a livello dinamico)


? modello dinamico nello spazio operativo
? coppie con gestione di moti interni
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Dinamica inversa

A ; hA = BA(x)x + CA (x; x_ )x_ + gA (x)


= BA (x ; J_ A q_ ) + BA JA B ; C q_ + BA JA B ; g
1 1

= BA JA q + BA JA B ; C q_ + BA JA B ; g
1 1

? J B
pseudo-inversa destra di A pesata secondo

JA(q) = B; (q)JAT (q)BA (q)


1

+
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

 Sfera nello spazio dei giunti

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(q)J y(q)v_ + g(q)T ;B(q)J y(q)v_ + g(q) = 1


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

BJ yv_ + g = B(J yv_ + B; g) 1

= B (J yv_ + B ; g + J yJB ; g ; J yJB ; g)


1 1 1

;
= B J yv_ + J yJB ; g + (I ; J yJ )B ; g
1
 1

= BJ y(v_ + JB ; g) 1

(v_ + JB ;1 g)T J yT B T BJ y(v_ + JB ;1 g) = 1

0.5
−1
JB g
[m]

−0.5
−0.5 0 0.5 1
[m]

? manipolatore non ridondante

(v_ + JB ;1 g)T J ;T B T BJ ;1 (v_ + JB ;1 g) = 1


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

PIANIFICAZIONE DI TRAIETTORIE

 generazione degli ingressi di riferimento per il sistema di con-


trollo del moto

Percorso e traiettoria

Traiettorie nello spazio dei giunti

Traiettorie nello spazio operativo

Scalatura dinamica di traiettorie


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

PERCORSO E TRAIETTORIA

? generazione di traiettorie a curvatura regolare

 Percorso: luogo dei punti dello spazio dei giunti (spazio ope-
rativo) che il manipolatore deve descrivere nell’esecuzione del
movimento assegnato (descrizione geometrica)

 Traiettoria: percorso su cui sia specificata la legge oraria di


moto (ad es. velocità e/o accelerazioni)

 Algoritmo di pianificazione della traiettoria


? ingressi
definizione del percorso
vincoli al percorso
vincoli dovuti alla dinamica del manipolatore
? uscita
traiettorie dei giunti (o dell’organo terminale) espresse come
sequenza temporale di valori assunti da posizione, velocit à
e accelerazione
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Numero ristretto di parametri

? 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

 Traiettorie nello spazio operativo


? descrizione naturale del compito
? vincoli sul percorso
? singolarità
? ridondanza

 Traiettorie nello spazio dei giunti


? inversione cinematica
? azione di controllo
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

TRAIETTORIE NELLO SPAZIO DEI GIUNTI

 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 su percorso assegnato


? punti estremi, punti intermedi e tempi di transizione
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Moto punto–punto

? generazione di q(t) che realizza il moto da q i a qf in un


tempo tf

 Polinomio cubico

q(t) = a3 t3 + a2 t2 + a1 t + a0
q_(t) = 3a3 t2 + 2a2 t + a1
q(t) = 6a3 t + 2a2

? calcolo dei coefficienti

a0 = qi
a1 = q_i
a3 t3f + a2 t2f + a1 tf + a0 = qf
3a3 t2f + 2a2tf + a1 = q_f

 Polinomio quintico (accelerazioni iniziale e finale)

q(t) = a5 t5 + a4 t4 + a3 t3 + a2 t2 + a1 t + a0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Esempio

pos

2
[rad]

0 0.2 0.4 0.6 0.8 1


[s]
vel
5

3
[rad/s]

0
0 0.2 0.4 0.6 0.8 1
[s]
acc

20

10
[rad/s^2]

−10

−20

0 0.2 0.4 0.6 0.8 1


[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Profilo di velocità trapezoidale

qc tc = qtm ;
;t
qc
m c

qc = qi + 21 qc t2c

qc t2c ; qc tf tc + qf ; qi = 0


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 qc assegnata (sgn qc = sgn (qf ; qi ))


s
t f 1 t2f qc ; 4(qf ; qi )
tc = 2 ; 2 qc
jqc j  4jqft2; qij
f
? traiettoria
8 q + q t
>
<i c 1
2
2
0  t  tc
q(t) = > qi + qc tc (t ; tc =2) tc < t  tf ; tc
: qf ; qc (tf ; t)
1 2
tf ; tc < t  tf
2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Esempio

pos

2
[rad]

0 0.2 0.4 0.6 0.8 1


[s]
vel
5

3
[rad/s]

0
0 0.2 0.4 0.6 0.8 1
[s]
acc

20

10
[rad/s^2]

−10

−20

0 0.2 0.4 0.6 0.8 1


[s]
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

Moto su percorso assegnato

? opportunità di specificare punti intermedi (sequenza di


punti)

 Assegnati N punti di percorso, trovare una funzione interpo-


lante che passi per tali punti
? polinomio di grado N ;1
non è possibile assegnare velocità iniziale e finale
al crescere del grado di un polinomio aumenta il suo carat-
tere oscillatorio (traiettorie poco naturali)
l’accuratezza numerica con cui pu ò essere calcolato un po-
linomio peggiora all’aumentare del suo grado
una volta impostato il sistema di equazioni dei vincoli, ri-
sulta oneroso risolverlo
i coefficienti del polinomio dipendono da tutti i punti asse-
gnati =) se si vuole cambiare uno dei punti di per-
corso, si deve ricalcolare il tutto
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Sequenze di polinomi interpolatori di grado pi ù basso (cubici)


uniti tra di loro nei punti assegnati lungo il percorso

? i valori di q_(t) in corrispondenza dei punti di percorso sono


imposti arbitrariamente
? i valori di q_(t) in corrispondenza dei punti di percorso sono
assegnati in base ad un opportuno criterio
? l’accelerazione q(t) deve essere continua in corrispondenza
dei punti di percorso

 Sequenze di polinomi di grado minore di tre (passaggio in


prossimità dei punti di percorso imposti)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Sequenza di polinomi con vincoli imposti sulle velocit à nei


punti di percorso

k (tk ) = qk
k (tk+1 ) = qk+1
_ k (tk ) = q_k
_ k (tk+1 ) = q_k+1
? continuità delle velocità nei punti intermedi

_ k (tk+1 ) = _ k+1 (tk+1 )


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Sequenza di polinomi con velocit à calcolate nei punti di per-


corso

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

vk = (qk ; qk;1 )=(tk ; tk;1 )


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Sequenza di polinomi con accelerazione continua nei punti di


percorso (spline)

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

? 4(N ; 2) equazioni per gli N ; 2 punti di percorso interni:


k;1 (tk ) = qk
k;1 (tk ) = k (tk )
_ k;1 (tk ) = _ k (tk )
 k;1 (tk ) =  k (tk )
? 6 equazioni per i punti iniziale e finale
1 (t1 ) = qi
_ 1 (t1 ) = q_i
 1 (t1 ) = qi
N +1 (tN +2 ) = qf
_ N +1 (tN +2 ) = q_f
 N +1 (tN +2 ) = qf
? 6 equazioni per i punti virtuali
k;1 (tk ) = k (tk )
_ k;1 (tk ) = _ k (tk )
 k;1 (tk ) =  k (tk )
+
? Sistema di 4(N + 1) equazioni per la determinazione dei
4(N + 1) coefficienti degli N + 1 polinomi cubici
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? algoritmo efficiente dal punto di vista computazionale

  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

? 4 incognite: k (tk ), k (tk+1 ),  k (tk ) e  k (tk+1 )


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? N variabili qk per k 6= 2; N + 1 assegnate


? vincoli di continuità su q2 e qN +1
? vincoli di continuità su qk per k = 3; : : : ; N
? q_i e q_f assegnate
? vincoli di continuità su qk per k = 2; : : : ; N + 1
? qi e qf assegnate
+
_ 1 (t2 ) = _ 2 (t2 )
..
.
_ N (tN +1 ) = _ N +1 (tN +1 )
? sistema di equazioni lineari

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

 Sequenza di polinomi parabolico-lineari con passaggio in pros-


simità di punti di via

q_k;1;k = qkt; qk;1


k;1
; q_k;1;k
qk = q_k;k+1t 0
k
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

 Applicazione della legge trapezoidale al problema dell’interpolazione

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

TRAIETTORIE NELLO SPAZIO OPERATIVO

 Sequenze di punti assegnati


? inversione cinematica
? traiettorie nello spazio dei giunti
? microinterpolazione

 Punti di percorso x(tk )


? componenti xi (tk ) raccordate secondo sequenze di poli-
nomi interpolatori

 Primitive di percorso
? espressione analitica del moto
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Primitive di percorso

 Rappresentazione parametrica di una curva nello spazio

p = f (s)

t = ddsp
n = d2p dsp2
1 d 2

2
ds
b=tn
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Segmento nello spazio

p(s) = pi + kpf ;s pik (pf ; pi)


dp = 1 (p ; p )
ds kpf ; pi k f i
d2 p = 0
ds2
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Circonferenza nello spazio

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

Traiettorie di posizione e di orientamento

 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

p = R 4 ;s_ sin (s=)= + s cos (s=) 5


2

0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Orientamento
? interpolazione delle componenti di n(t), s(t), a(t) ?
? (t)
interpolazione di

(s) = i + kf ;s ik (f ; i)


_ = kf ;s_ ik (f ; i)
 = kf ;s ik (f ; i)
? asse equivalente di rotazione ( f R = RiRfi )
2r r r
3
Rfi = RiT Rf = 4 r r r 5
11 12 13
21 22 23
r31 r32 r33

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

Ri(t): Ri(0) = I Ri(tf ) = Rfi


R(t) = RiRri (#(t))
#(0) = 0 #(tf ) = #f
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

SCALATURA DINAMICA DI TRAIETTORIE

? vincoli dinamici (coppie troppo elevate)

 (t) = B(q(t))q(t) + C (q(t); q_ (t))q_ (t) + g(q(t))


= B (q(t))q(t) + ; (q(t))[q_ (t)q_ (t)] + g(q(t))
= s (t) + g(q(t))

C (q; q_ )q_ = ; (q)[q_ q_ ]

[q_ q_ ] = [ q_12 q_1 q_2 : : : q_n;1 q_n q_n2 ]T


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? scalatura temporale r(t): r(0) = 0 r(tf ) = tf


q(t) = q(r(t))
q_ = r_q0(r)
q = r_2q00 (r) + rq0(r)
+

 
 = 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(r) = B(q(r))q00(r) + ; (q(r))[q0(r)q0(r)]


+
s(t) = r_ s(r) + rB(q(r))q0(r)
2

? scelta semplice r(t) = ct

s(t) = c s(ct)
2

giunto qi in corrispondenza della violazione maggiore


js j = c2
ji ; g(qi )j
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CONTROLLO DEL MOTO

Controllo nello spazio dei giunti

Controllo indipendente ai giunti

Compensazione in avanti a coppia precalcolata

Controllo centralizzato

Controllo nello spazio operativo


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

IL PROBLEMA DEL CONTROLLO

 Controllo nello spazio dei giunti

 Controllo nello spazio operativo


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CONTROLLO NELLO SPAZIO DEI GIUNTI

 Modello dinamico

B(q)q + C (q; q_ )q_ + Fv q_ + g(q) = 


 Controllo  determinare : 
q(t) = qd(t)
? trasmissioni

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

d = Kr; B(q)Kr; qm + Kr; C (q; q_ )Kr; q_ m + Kr; g(q)


1 1 1 1 1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Manipolatore + attuatori

? controllo decentralizzato

? controllo centralizzato
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CONTROLLO INDIPENDENTE AI GIUNTI

 Manipolatore  n sistemi indipendenti (azionamenti di giunto)


? controllo di ogni asse di giunto come un sistema ad un
ingresso ed una uscita
? effetti di accoppiamento tra i vari giunti trattati come in-
gressi di disturbo

 Azionamento del giunto i

Fm  kRv kt
a

M (s) = s(1 +kmsT )


m

km = k1 Tm = kRakI
v v t
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Controllo in retroazione

 Riduzione degli effetti di d su 


? elevato valore del guadagno degli amplificatori a monte del
punto di applicazione del disturbo
? presenza nel controllore di una azione integrale al fine di
annullare a regime ( costante) l’effetto della componente
gravitazionale sull’uscita
+
 Controllore proporzionale-integrale (PI)

C (s) = Kc 1 +ssTc

 Struttura generale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Retroazione di posizione

CP (s) = KP 1 +ssTP CV (s) = 1 CA (s) = 1

kTV = kTA = 0
? f.d.t. del ramo di azione diretta

C (s)G(s) = kmsK P (1 + sTP )


2 (1 + sT )
m

? f.d.t. del ramo in retroazione

H (s) = kTP
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? analisi con il l.d.r.


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? f.d.t. ingresso–uscita a ciclo chiuso


1
(s) = kTP
 r (s ) 1 + s2 (1 + sTm )
km KP kTP (1 + sTP )
1 (1 + sT )
k P
W (s) =  2s s2 
TP
1 + ! + !2 (1 + s )
n n
? f.d.t. disturbo–uscita
sRa
(s) = ; kt KP kTP (1 + sTP )
D(s) s
1 + k K (1
2
+ sTm )
m P kTP (1 + sTP )
 
XR = KP kTP TR = max TP ; !1
n
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Retroazione di posizione e di velocit à

CP (s) = KP CV (s) = KV 1 +ssTV CA (s) = 1

kTA = 0
? f.d.t. del ramo di azione diretta

C (s)G(s) = kmKsP2 (1KV+(1sT+ sT


)
V)
m

? f.d.t. del ramo in retroazione


 k

H (s) = kTP 1 + s K TV
P kTP
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? analisi con il l.d.r.

? scelta dello zero


TV = Tm
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? f.d.t. ingresso–uscita a ciclo chiuso


1
(s) = kTP
r (s) 1 + skTV + s2
KP kTP kmKP kTP KV
1
W (s) = kTP
2 s s
1 + ! + !2
2

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

 Retroazione di posizione, di velocit à e di accelerazione

CP (s) = KP CV (s) = KV CA (s) = KA 1 +ssTA

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 )

? f.d.t. del ramo di azione diretta

C (s)G(s) = KP KV KAs2(1 + sTA ) G0 (s)


? f.d.t. del ramo in retroazione
 sk TV

H (s) = kTP 1 + K k
P TP
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? analisi con il l.d.r.

? scelta dello zero

TA = Tm

km KA kTA TA  Tm kmKA kTA  1


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? f.d.t. ingresso–uscita a ciclo chiuso


1
(s) = kTP
r (s) 1 + skTV + s2 (1 + km KA kTA )
KP kTP km KP kTP KV KA
? f.d.t. disturbo–uscita
sRa
(s) = ; kt KP kTP KV KA (1 + sTA )
D (s ) 1 + K k + k (1K+ kkmKKA kK
sk TV s2
TA )
P TP m P TP V A

 
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

Compensazione in avanti decentralizzata

 Elevati valori di velocità e accelerazioni


? capacità di inseguimento degradate

 Impiego di una azione in avanti


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

 Retroazione di posizione e di velocit à


 sk s 
r0 (s) = kTP + KTV + k K K d (s)
2

P m P V
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Retroazione di posizione, di velocit à e di accelerazione

 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

COMPENSAZIONE IN AVANTI A COPPIA


PRECALCOLATA

 All’uscita del PIDD2

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

? adozione di guadagni di anello troppo elevati


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Coppia precalcolata
? azione in avanti (inversione di modello)

dd = Kr; B(qd)Kr; qmd+Kr; C (qd; q_ d)Kr; q_ md+Kr; g(qd)


1 1 1 1 1

? riduzione degli sforzi di reiezione del disturbo (guadagni


contenuti)
? calcolo fuori linea/in linea
? compensazione parziale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CONTROLLO CENTRALIZZATO

 Manipolatore  Sistema multivariabile accoppiato e non lineare

B(q)q + C (q; q_ )q_ + Fv q_ + g(q) = 


 Trasmissioni

Kr q = qm
 Sistemi di attuazione

Kr;  = Ktia
1

va = Raia + Kv q_ m
va = Gv vc
 Manipolatore controllato in tensione

B(q)q + C (q; q_ )q_ + F q_ + g(q) = u


F = Fv + Kr Kt Ra; Kv Kr1

u = Kr Kt Ra; Gv vc
1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Manipolatore controllato in coppia


? riduzione della sensibilità alle variazioni parametriche
Kt , Kv , Ra
? attuatori come generatori controllati di coppia (corrente)

ia = Givc
+
F = Fv
u = Kr Kt Givc = 
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Controllo PD con compensazione di gravità

 Regolazione ad una postura di equilibrio costante d q


 Metodo diretto di Lyapunov
? qe q_ T ]T
stato [ T qe = qd ; q
? funzione candidata di Lyapunov

V (q_ ; qe) = 21 q_ T B (q)q_ + 12 qeT KP qe > 0 8q_ ; qe 6= 0

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


? scelta del controllo

u = g(q) + KP qe ; KD q_
+
V_ = ;q_ T (F + KD )q_

V_ = 0 q_ = 0; 8qe
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

? dinamica del sistema controllato

B(q)q + C (q; q_ )q_ + F q_ + g(q) = g(q) + KP qe ; KD q_

? q  q  0)
all’equilibrio ( _

KP qe = 0 =) qe = qd ; q  0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Controllo a dinamica inversa

 Modello dinamico

B(q)q + n(q; q_ ) = u

n(q; q_ ) = C (q; q_ )q_ + F q_ + g(q)

 Retroazione non lineare dello stato (linearizzazione globale)


? struttura lineare in u
? %(B (q)) = n 8q
u = B(q)y + n(q; q_ )
+
q = y
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Scelta di un controlloy stabilizzante


y = ;KP q ; KD q_ + r

r = qd + KD q_ d + KP qd
+
qe + KD qe_ + KP qe = 0

? cancellazione perfetta

? vincoli sull’architettura hardware/software dell’unit à di go-


verno
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

 Scelta del controllo

y = qd + KD (q_ d ; q_ ) + KP (qd ; q)


+
qe + KD qe_ + KP qe = 
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

qe = qd ; y + 
? equazione differenziale del primo ordine

_ = H + D(qd ; y + )

 Stima del campo di variabilità dell’incertezza

sup kqdk < QM < 1 8qd


t0
kI ; B ;1 (q)Bb (q)k   1 8q
kne k   < 1 8q; q_
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Scelta del controllo

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 

  kk 8q; q_ ; qd


? stima dell’incertezza

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

? sottospazio di scivolamento (attrattivo)

 Eliminazione delle componenti in alta frequenza


8 
>
< kzk z per kzk  
w=>
: z per kz k < 

ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Controllo adattativo

 Modello dinamico (lineare nei parametri)

B(q)q + C (q; q_ )q_ + F q_ + g(q) = Y (q; q_ ; q) = u

 Controllo

u = B(q)qr + C (q; q_ )q_ r + F q_ r + g(q) + KD 

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

V (; qe) = 12 T B (q) + 21 qeT M qe > 0 8; eq 6= 0

V_ = T B (q)_ + 21 T B_ (q) + qeT M qe_


= ;T (F + KD ) + qeT M qe_
T
= ;T F ; qe_ KD qe_ ; qeT KD qe

? V_ = 0 solo per qe = qe_  0 =) [ qeT T ]T = 0


globalmente asintoticamente stabile
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Controllo basato su stime dei parametri

u = Bb (q)qr + Cb (q; q_ )q_ r + Fb q_ r + gb + KD 


= Y (q; q_ ; q_ r ; qr )b + KD 

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

V (; qe; e ) = 12 T B (q)+qeT KD qe+ 21 e T K e > 0 8; qe; e 6=

V_ = ;T F ; qe_ T KD qe_ ; qeT KD qe


T ;
+ e K e ; Y (q; q_ ; q_ r ; qr )
_ T 
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Legge di adattamento

b_ = K; Y T (q; q_ ; q_ r ; qr )


1

+
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

CONTROLLO NELLO SPAZIO OPERATIVO

? specifiche di moto
? relazioni cinematiche
? carico computazionale

Schemi di principio

 Controllo con inversa dello Jacobiano

 Controllo con trasposta dello Jacobiano


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Controllo PD con compensazione di gravità

 Regolazione ad una posizione di equilibrio costante d x


 Metodo di Lyapunov

V (q_ ; xe ) = 12 q_ T B (q)q_ + 12 xe T KP xe > 0 8q_ ; xe 6= 0

V_ = q_ T B (q)q + 21 q_ T B_ (q)q_ + xe_ T KP xe

= q_ T B (q)q + 12 q_ T B_ (q)q_ ; q_ T JAT (q)KP xe


= ;q_ T F q_ + q_ T
;u ; g(q) ; J T (q)K xe
A P

? scelta del controllo

u = g(q) + JAT (q)KP xe ; JAT KD JA(q)q_


+
V_ = ;q_ T F q_ ; q_ T JAT (q)KD JA (q)q_

V_ = 0 JAT (q)KP xe = 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Controllo a dinamica inversa

 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

CONFRONTO TRA GLI SCHEMI DI


CONTROLLO

 Manipolatore planare a due bracci


? a1 = a2 = 1 m `1 = `2 = 0:5 m
m`1 = m`2 = 50 kg I`1 = I`2 = 10 kg  m2
? kr1 = kr2 = 100
mm1 = mm2 = 5 kg Im1 = Im2 = 0:01 kg  m2
Fm1 = Fm2 = 0:01 N  m  s/rad Ra1 = Ra2 = 10 ohm
kt1 = kt2 = 2 N  m/A kv1 = kv2 = 2 V  s/rad
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Schemi di controllo

A. Indipendente ai giunti pos + vel


KP = 5 KV = 10 kTP = kTV = 1
B. Indipendente ai giunti pos + vel + acc
KP = 5 KV = 10 KA = 2 kTP = kTV = kTA = 1
C. Come A + compensazione in avanti decentralizzata

D. Come B + compensazione in avanti decentralizzata

E. Coppia precalcolata ai giunti (termini diag. inerzia + gravit à) +


Indipendente ai giunti come A
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

pos giunto 1 pos giunto 2


0 3

−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

coppie giunti coppie giunti


1500 1500

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

coppie giunti norma err pos


1500 0.015

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

pos giunto 1 pos giunto 2


0 3

−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

coppie giunti coppie giunti


1500 1500

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

norma err pos norma err parametri


0.01 17

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

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

pos giunto 1 pos giunto 2


0 3

−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

coppie giunti coppie giunti


1500 1500

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

pos giunto 1 pos giunto 2


0 3

−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

coppie giunti coppie giunti


1500 1500

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

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

CONTROLLO DELL’INTERAZIONE

Interazione del manipolatore con l’ambiente

Controllo di cedevolezza

Controllo di impedenza

Controllo di forza

Vincoli naturali e vincoli artificiali

Controllo ibrido forza/posizione


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

INTERAZIONE DEL MANIPOLATORE CON


L’AMBIENTE

 Moto vincolato

 Controllo posizionale (?)


? errori di posizionamento
? incertezza sull’ambiente

 Contatto instabile

 Misura di forza

 Strategie di controllo
? indirette
? dirette
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CONTROLLO DI CEDEVOLEZZA

 Effetti della forza di contatto su schemi di controllo posizionale


(nello spazio operativo)

B(q)q + C (q; q_ )q_ + F q_ + g(q) = u ; J T (q)h

? all’equilibrio

JAT (q)KP xe = J T (q)h


+
xe = KP; TAT (x)h = KP; hA
1 1

 KP;1  cedevolezza del controllo


? lineare nei riguardi di f
? torsionale nei riguardi di 
 Se h 2 N (J T ) =) xe = 0 h 6= 0
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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 )

 KA;1  cedevolezza dell’ambiente


? solo per le direzioni di moto vincolato

xe = KP; KA (x)(x ; xe)


1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Cedevolezza attiva e cedevolezza passiva

? all’equilibrio

x1 = ;I + KP; KA (x); (xd + KP; KA (x)xe)


1 1 1

h = ;I + K (x)K ; ; K (x)(x ; x )
A1 A P
1 1
A d e

? manipolatore  cedevole
? ambiente  cedevole

 Dispositivi meccanici di cedevolezza passiva


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Esempio

KA = Kf = diagfkx; 0g KP = diagfkPx; kPy g

 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

 Cedevolezza attiva nello spazio dei giunti


? all’equilibrio

KP qe = J T (q)h
+
qe = KP; J T (q)h
1

xe = JA(q)KP; JAT (q)hA


1
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CONTROLLO DI IMPEDENZA

 Controllo a dinamica inversa nello spazio operativo

u = B(q)y + n(q; q_ )
+
q = y ; B; (q)J T (q)h
1

? scelta del nuovo ingresso di controllo

y = JA; (q)Md; ;Mdx d + KD xe_ + KP xe ; MdJ_ A(q; q_ )q_ 


1 1

Mdxe + KD xe_ + KP xe = MdBA; (q)hA1

BA (q) = JA;T (q)B(q)JA; (q) 1

 Impedenza meccanica
? massa Md
? smorzamento KD
? rigidezza KP
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Integrazione della misura della forza di contatto

u = B(q)y + n(q; q_ ) + J T (q)h

; 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

 Dispositivi meccanici di impedenza passiva


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Esempio

 Controllo di impedenza con misura di forza

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)

mdxx + kDx x_ + (kPx + kx )x = kx xe + kPx xd

mdy y + kDy y_ + kPy y = kPy yd


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

pos organo terminale y forza organo terminale x


300

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 di cedevolezza o impedenza =) controllo indi-


retto 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

Controllo di forza con anello interno di posizione

u = B(q)y + n(q; q_ ) + J T (q)h

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)
+

Mdx + KD x_ + KP (I + CF KA )x = KP CF (KA xe + hAd)


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

Controllo di forza con anello interno di velocità

y = JA; (q)Md; ;;KD x_ + KP xF ; MdJ_ A(q; q_ )q_ 


1 1

xF = KF (hAd ; hA)
+

Mdx + KD x_ + KP KF KA x = KP KF (KAxe + hAd)

 All’equilibrio (stabile)

hA1 = hAd
KA x1 = KAxe + hAd
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Controllo parallelo forza/posizione

? h 2= R(KA ) =) deriva di x
se Ad
se hAd 2 R(KA ) =) x (o x_ ) ! 0
?
 Aggiunta di xd

y = JA; (q)Md; ;;KD x_ + KP (xe + xF ) ; MdJ_ A(q; q_ )q_ 


1 1

 All’equilibrio

x1 = xd + CF ;KA (xe ; x1) + hAd


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Esempio

 Md, KD , KP ) come sopra


Impedenza (

 Riferimenti hAd = [ 10 0 ]T pd = [ 1:015 0:1 ]T


 Controllo di forza

CF = diagfcFx; 0g
1. controllo con anello interno di posizione

kFx = 0:00064 kIx = 0:0016


2. controllo con anello interno di velocit à

kFx = 0:0024
3. controllo parallelo

kFx = 0:00064 kIx = 0:0016


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

pos organo terminale x forza organo terminale x


1.02 50

40
1.015
30
[m]

[N]
1.01
20
1.005
10

1 0
0 1 2 3 0 1 2 3
[s] [s]

pos organo terminale x forza organo terminale x


1.02 50

40
1.015
30
[m]

[N]

1.01
20
1.005
10

1 0
0 1 2 3 0 1 2 3
[s] [s]

pos organo terminale x forza organo terminale x


1.02 50

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

VINCOLI NATURALI E VINCOLI


ARTIFICIALI

 Riferimenti di forza e posizione scelti in maniera congruente


all’ambiente
? non è possibile imporre sia una forza che una posizione
lungo la stessa direzione

 Analisi cineto-statica dell’interazione


? vincoli naturali imposti dall’ambiente lungo ciascun grado
di libertà del compito (posizione o forza)
? vincoli artificiali soggetti al controllo lungo ciascun grado
di libertà del compito (forza o posizione)

 Terna di vincolo Oc –xc yc zc


? descrizione semplificata del compito in termini di vincoli
naturali e vincoli artificiali

Analisi di casi
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Scivolamento su superficie piana

Vincoli Vincoli
Naturali Artificiali
p_cz fzc
!xc cx
!yc cy
fxc p_cx
fyc p_cy
cz !zc
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Inserimento in foro cilindrico

Vincoli Vincoli
Naturali Artificiali
p_cx fxc
p_cy fyc
!xc cx
!yc cy
fzc p_cz
cz !zc
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Rotazione di una manovella

Vincoli Vincoli
Naturali Artificiali
p_cx fxc
p_cz fzc
!xc cx
!yc cy
fyc p_cy
cz !zc
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

CONTROLLO IBRIDO FORZA/POSIZIONE

 Vincoli naturali

vc = vnc (I ;  )hc = hcn


?   matrice di selezione
 Vincoli artificiali

(I ;  )vc = vac hc = hca

? perfetta pianificazione del compito


? in alternativa: controllo parallelo
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

Sistema di attuazione dei giunti

Servomotori

Sensori
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

SISTEMA DI ATTUAZIONE DEI GIUNTI


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Organi di trasmissione

 Moto dei giunti

? 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

? consentono di allocare il motore lontano dall’asse del giunto


attuato
? basse velocità (vibrazione)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Motori per robot industriali


? bassa inerzia ed elevato valore del rapporto potenza/peso
? elevata possibilità di sovraccarico e sviluppo di coppie im-
pulsive
? capacità di sviluppare elevate accelerazioni
? elevato campo di variazione di velocit à (da 1 a 1000)
? elevata precisione di posizionamento (almeno 1/1000 di
giro)
? basso fattore di ondulazione della coppia in modo da garan-
tire rotazioni continue anche a bassa velocit à
+
 Servomotori
? inseguimento di traiettoria
? regolazione di posizione

 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:

? disponibilità diffusa di sorgente di alimentazione


? costo contenuto e vasta gamma di prodotti
? buon rendimento di conversione di potenza
? facile manutenzione
? assenza di inquinamento dell’ambiente di lavoro
Contro:

? problemi di surriscaldamento in situazioni statiche a causa


dell’effetto della gravità sul manipolatore (freni di stazio-
namento)
? necessità di particolari protezioni per impiego in ambienti
infiammabili
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Funzione di modulazione del flusso di potenza dall’alimentazione


verso l’attuatore (sotto l’azione del controllo)

 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

 Servomotore a corrente continua a magneti permanenti


? un circuito statorico che genera il flusso magnetico di ecci-
tazione (induttore): questo generatore è sempre a magneti
permanenti realizzati con materiali ceramici o con terre rare
(campi elevati in spazi ridotti)
? un circuito di armatura (indotto) che reca un avvolgimento
costituito dalle spire di un solenoide avvolto su materiale
ferromagnetico che costituisce il rotore
? un collettore che consente di collegare, mediante delle spaz-
zole, i circuiti rotorici ad un circuito esterno di alimen-
tazione secondo una logica di commutazione attuata dal
movimento del rotore

 Servomotore a commutazione elettronica


? un generatore di flusso magnetico di eccitazione (induttore)
che funge da rotore; questo generatore è a magneti perma-
nenti di materiale ceramico o a terre rare
? un circuito di armatura (indotto) costituito da un avvolgi-
mento polifase che funge da statore
? un circuito di commutazione statico che, a partire dai segnali
forniti da un sensore di posizione posto sull’albero motore,
genera la sequenza di alimentazione delle fasi del circuito
di armatura in dipendenza del moto di rotazione del rotore
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Servomotore elettrico con amplificatore

 Equilibrio elettrico

Va = (Ra + sLa )Ia + Vg


Vg = kv

 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

 Generatore controllato di velocit à

? 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

 Generatore controllato di coppia

? 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

 Motore idraulico con servovalvola e distributore


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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 lineari (robot di misura)


? potenziometri
? trasformatori differenziali (LVDT)
? inductosyn

 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

 Ricostruzione della velocità (impulso in corrispondenza di ogni


transizione)
? convertitore frequenza/tensione (uscita analogica)
? misura della frequenza (digitale)
? misura del periodo di campionamento (digitale)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Generatore tachimetrico in corrente alternata


? macchina elettrica
? rotore a coppa (basso momento di inerzia)
? due avvolgimenti statorici in quadratura
? tensione sinusoidale proporzionale alla velocit à angolare
? tensione residua a rotore fermo
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Sensori di forza

 Estensimetro (strain gage)

 R R

s
Vo = R1 + R2 ; R3 + Rs Vi
2

? impiego di una coppia di estensimetri (riduzione degli effetti


di variazioni di temperatura)

 Sensore di coppia all’albero


? servomotore come generatore controllato di coppia
? misura di coppia con estensimetri montati su un organo
deformabile (albero cavo) interposto tra motore e giunto
(bassa rigidezza torsionale ed elevata rigidezza flessionale)
? coppia misurata senza effetti inerziali e di attrito del servo-
motore
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Sensore di forza al polso

? 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

? sensore di forza a croce di Malta

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

 Elemento fotosensibile (pixel)


? struttura a matrice rettangolare
? CCD
carica = integrale dell’illuminazione incidente
? CMOS
carica = quantità di illuminazione incidente
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

? campionamento temporale (otturatore)


? campionamento spaziale (pixel)
x fpc
XI = f ; pxc + X0
z
y fpcy
YI = f ; pc + Y0
z

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

? parametri estrinseci in cbT


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 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

 Immagine = scansione sequenziale


? linee pari (primo semiquadro)
? linee dispari (secondo semiquadro)

 Discretizzazione del segnale video


? frame grabber

 Visione a basso livello


? caratteristiche elementari (centroide, discontinuit à di inten-
sità)

 Visione ad alto livello


? emulazione della conoscenza (riconoscimento di oggetti in
base a modelli CAD)
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

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

 Evoluzione verso livelli superiori


? compiti complessi
? missioni
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Livello del compito


? specifica del compito a un livello di astrazione elevato
? decomposizione in una serie di azioni (coordinamento
spazio-temporale)
? scelta sulla base dei modelli della conoscenza e delle infor-
mazioni sulla scena

 Livello delle azioni


? comandi simbolici dal livello del compito tradotti in percorsi
di moto (azioni elementari)
? scelta sulla base dei modelli del manipolatore e delle infor-
mazioni sull’ambiente

 Livello delle primitive


? sequenza di configurazioni dal livello delle azioni
? calcolo traiettorie di moto (riferimenti per i servo)
? definizione della strategia di controllo
? scelta sulla base del modello dinamico e delle informazioni
dei sensori

 Livello dei servo


? direttive dal livello delle primitive
? calcolo algoritmi di controllo (segnali di attuazione)
? microinterpolazione
? aggiornamento sulla base delle misure dei sensori
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Architettura funzionale per robot industriali


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

AMBIENTE DI PROGRAMMAZIONE

 Caratteristiche (comuni con quelli dei calcolatori + ...)


? sistema operativo in tempo reale
? modellazione del mondo
? controllo del moto
? lettura dei dati sensoriali
? interattività con il sistema fisico
? capacità di rivelazione di errori
? capacità di ripristino di situazioni operative corrette
? struttura specifica dei linguaggi
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Requisiti imposti dall’articolazione in moduli

 Trattamento dei dati sensoriali


? servo (condizionamento segnali in tempo reale)
? primitive (dati sensoriali in terne di riferimento)
? azioni (elaborazione dati ad alto livello)
? compito (riconoscimento oggetti nella scena)

 Consultazione dei modelli di conoscenza


? servo (calcolo numerico dei modelli in tempi brevi)
? primitive (trasformazioni di coordinate)
? azioni (simulazione + rappresentazione CAD)
? compito (sistema esperto)

 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

Generazioni di ambienti di programmazione


Programmazione a basso livello (Assembly, C)

 Programmazione per insegnamento

 Programmazione orientata al robot

 Programmazione orientata agli oggetti

? la generazione successiva incorpora le caratteristiche della


generazione precedente
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

Programmazione per insegnamento

 Guida dell’operatore lungo il percorso desiderato attraverso


teach pendant

 Registrazione delle posizioni dei giunti

 Ripetizione del moto

? capacità di programmazione limitata (tecnico di officina)


? disponibilità del robot
? saldatura a punti, verniciatura, palettizzazione

 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

Programmazione orientata al robot

? integrazione di numerose funzioni di linguaggi di program-


mazione ad alto livello (BASIC, PASCAL) con quelle spe-
cifiche richieste nelle applicazioni robotiche

 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

 Caratteristiche di linguaggio di programmazione strutturata


? editore di testo
? strutture complesse di rappresentazione dei dati
? uso estensivo di variabili di stato predefinite
? realizzazione di operazioni di algebra matriciale
? uso estensivo di rappresentazioni simboliche per le terne di
coordinate
? possibilità di specificare il moto coordinato di pi ù terne
relative ad oggetti connessi rigidamente per il tramite di
una sola terna
? inclusione di sottoprogrammi con scambio di dati e para-
metri
? uso di funzioni di condizionamento logico e cicli di attesa
mediante semafori
? capacità di parallelizzazione del calcolo
? funzioni di controllore logico programmabile (PLC)
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

 Processori suppletivi o alternativi (DSP, Transputer)


ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO

 Funzioni della scheda cinematica


? calcolo delle primitive di moto
? calcolo della cinematica diretta, della cinematica inversa e
dello Jacobiano
? verifica di congruenza della traiettoria
? gestione della ridondanza cinematica

 Funzioni della scheda dinamica


? calcolo della dinamica inversa

 Funzioni della scheda servo


? microinterpolazione dei riferimenti
? calcolo dell’algoritmo di controllo
? conversione D/A ed interfaccia con amplificatori di potenza
? trattamento dati dei trasduttori di posizione e di velocit à
? interruzione del moto in situazioni di malfunzionamento

 Funzioni della scheda forza


? condizionamento dei segnali forniti dal sensore di forza
? rappresentazione delle forze in terne di coordinate assegnate

 Funzioni della scheda visione


? elaborazione dei segnali forniti dalla telecamera
? estrazione di caratteristiche geometriche della scena
? localizzazione degli oggetti in terne di coordinate assegnate

Potrebbero piacerti anche