Controllo dei robot
Dinamica
Prof. Paolo Rocco ([email protected])
Centro di massa
z
Consideriamo un sistema di punti materiali,
ciascuno dei quali abbia massa mi e la cui
posizione sia descritta dal vettore pi rispetto ad
una terna xyz.
Definiamo centro di massa, o baricentro, il
punto individuato dal vettore:
n
∑pm
i
pc =
i =1
m
P1
Pi
x
i
n
, m=
pc
pρdV
V
Pn
y
O
∑m
z
i
i =1
P
Consideriamo ora un corpo rigido, di massa m,
volume V e densità ρ. Il centro di massa è
individuato dal vettore:
∫
=
P2
O
dV
y
x
m
Controllo dei robot - Dinamica - P. Rocco [2]
Momento d’inerzia
Consideriamo un punto materiale di massa m ed
un asse r. Sia d la distanza del punto dall’asse.
Definiamo momento d’inerzia del punto rispetto
all’asse la quantità:
z
d
I r = md 2
Analogamente, per un sistema di punti materiali:
n
Ir =
∑
r
x
mi d i2
z
Consideriamo ora un corpo rigido, di massa m,
volume V e densità ρ. Il momento d’inerzia
rispetto all’asse è definito come:
∫
V
y
O
i =1
Ir =
P
d(P)
dV
r
d 2 ( p )ρdV
O
P
y
x
Controllo dei robot - Dinamica - P. Rocco [3]
Tensore d’inerzia
Il momento d’inerzia di un corpo rigido rispetto ad un asse passante per O
e avente versore r si può esprimere come:
Ir = rT Ior
dove la matrice IO, di dimensioni 3×3 e simmetrica, prende il nome di tensore
d’inerzia del corpo relativo al polo O. Questa matrice assume l’espressione:
⎡ I Oxx
⎢
I O = ⎢ I Oxy
⎢ I Oxz
⎣
I Oxy
I Oyy
I Oyz
I Oxz ⎤
⎥
I Oyz ⎥
I Ozz ⎥⎦
Momenti d’inerzia
∫ (p
= ∫ (p
= ∫ (p
I Oxx =
I Oyy
I Ozz
V
V
V
)
)ρdV
)ρdV
Dipende dal polo O e dalla terna di
riferimento.
Prodotti d’inerzia
∫ −p
=∫ −p
=∫ −p
2
y
+ p z2 ρdV
I Oxy =
2
z
+ p x2
I Oxz
2
x
+ p 2y
I Oyz
V
V
V
x p y ρdV
x p z ρdV
y
p z ρdV
Controllo dei robot - Dinamica - P. Rocco [4]
Tensore d’inerzia
Il tensore d’inerzia dipende sia dal polo che dall’orientamento della terna
di riferimento.
Se si considera una nuova terna, ruotata secondo la matrice R rispetto alla
terna originaria, il tensore d’inerzia si trasforma secondo la seguente legge:
I ′ = RIR T
Poiché il tensore d’inerzia è una matrice definita positiva, esiste una terna
per cui esso assume forma diagonale. Gli assi di tale terna prendono il
nome di assi principali d’inerzia.
Se la terna ha origine nel baricentro, gli assi prendono anche il nome di
assi centrali d’inerzia.
Controllo dei robot - Dinamica - P. Rocco [5]
Momento rispetto ad assi paralleli
Sia IC il momento d’inerzia di un corpo di massa m rispetto ad un asse
passante per il baricentro.
Consideriamo un asse parallelo al precedente, a distanza ∆ da esso. Il
momento d’inerzia IA rispetto a questo nuovo asse risulta:
I A = I C + m∆2
Sia ora IC il tensore d’inerzia del corpo di massa m rispetto ad una terna
avente come origine il baricentro.
Il tensore d’inerzia, rispetto ad una terna parallela a quella baricentrale e
avente origine in un diverso punto O, è dato da:
I O = I C + mS T ( pC )S ( pC )
dove pC è la posizione del baricentro nella terna avente come origine O e S
è l’operatore anti-simmetrico.
Controllo dei robot - Dinamica - P. Rocco [6]
Alcuni esempi
Cilindro circolare omogeneo
dr
Calcoliamo il momento d’inerzia rispetto all’asse:
r
4
2
R
R
=m
I = ρr 2 dV = ρr 2 2πrhdr = 2πρh
V
4
2
∫
h
∫
0
essendo m=ρπR2h la massa del cilindro.
R
Asta omogenea
Calcoliamo il momento d’inerzia rispetto ad un asse
perpendicolare passante per il baricentro:
l
r
A
R
dr
C
IC = 2
∫
l 2
0
l 2
3⎤
⎡
r
1
r 2 ρdr = 2ρ ⎢ ⎥ = ml 2
12
⎢⎣ 3 ⎥⎦ 0
2
Rispetto ad un asse passante per A:
1
⎛l⎞
I A = I c + m⎜ ⎟ = ml 2
3
⎝2⎠
Controllo dei robot - Dinamica - P. Rocco [7]
Energia cinetica
Consideriamo un punto materiale di massa m e la
cui posizione sia descritta dal vettore p rispetto ad
una terna xyz.
Definiamo energia cinetica del punto la quantità:
1
T = mp T p
2
Analogamente, per un sistema di punti materiali:
1
T=
2
z
P
x
n
∑
mi piT pi
z
i =1
P
Consideriamo ora un corpo rigido, di massa m,
volume V e densità ρ. L’energia cinetica è
definita come:
T=
1
2
y
O
∫
pT pρdV
O
dV
y
x
V
Controllo dei robot - Dinamica - P. Rocco [8]
Energia cinetica di un corpo rigido
Per il calcolo dell’energia cinetica di un corpo rigido esiste il seguente
risultato notevole (teorema di König):
1
1
mpC T pC + ωT I C ω
2
2
dove pC indica la posizione del baricentro, ω la velocità angolare e IC è il
tensore di inerzia rispetto ad una terna con origine il baricentro e parallela alla
terna di riferimento.
T=
Nel caso particolare di rotazione rispetto ad asse fisso, assunto questo
asse coincidente con l’asse z, il risultato si semplifica nel seguente:
1
1
mpC T pC + I cz ω2z
2
2
dove Icz è il momento d’inerzia del corpo rispetto ad un asse parallelo
all’asse z, passante per il baricentro e ωz è la proiezione di ω lungo l’asse.
T=
Controllo dei robot - Dinamica - P. Rocco [9]
Energia cinetica di un sistema di corpi
Consideriamo ora un sistema di corpi rigidi soggetto a vincoli di mobilità
(come un manipolatore robotico), per il quale si possa esprimere il moto
in termini di un vettore q di coordinate generalizzate.
L’energia cinetica del sistema si può esprimere per mezzo della seguente
forma quadratica:
T=
1 T
q B (q )q
2
La matrice B(q) prende il nome di matrice di inerzia del sistema di corpi
rigidi e generalmente dipende dal vettore di coordinate q.
Poiché l’energia cinetica è una quantità positiva per velocità diverse da
zero, la matrice di inerzia, simmetrica, è sempre definita positiva.
Controllo dei robot - Dinamica - P. Rocco [10]
Energia potenziale
Un sistema di forze posizionali (cioè dipendenti solo dalle posizioni dei
punti d’applicazione) si dice conservativo se il lavoro compiuto da
ciascuna forza non dipende dalla traiettoria seguita dal punto di
applicazione ma solo dalla sua posizione iniziale e finale.
In questo caso il lavoro elementare coincide con il differenziale, cambiato
di segno, di una funzione che prende il nome di energia potenziale:
dW = − dU
Un esempio di sistema di forze conservativo è la forza gravitazionale.
Per un punto materiale avremo l’energia potenziale:
U = − mg T p
dove g è il vettore accelerazione di gravità.
Per un corpo rigido:
U = − g T pρdV = − mg T pC
∫
V
Controllo dei robot - Dinamica - P. Rocco [11]
Equazioni di Lagrange
Consideriamo un sistema di corpi rigidi, le posizioni ed orientamenti dei
quali si possano esprimere per mezzo di n coordinate generalizzate qi.
Definiamo lagrangiana del sistema meccanico la quantità:
L = T −U
essendo T e U rispettivamente l’energia cinetica e l’energia potenziale del
sistema. Siano poi ξi le forze generalizzate associate alle coordinate
generalizzate qi. Il lavoro elementare compiuto dalle forze agenti sul sistema si
può esprimere come:
n
dW =
∑ ξ dq
i
i
i =1
Si può dimostrare che la dinamica del sistema è retta dalle seguenti equazioni
di Lagrange:
d ∂L ∂L
−
= ξ i , i = 1, …, n
dt ∂qi ∂qi
Controllo dei robot - Dinamica - P. Rocco [12]
Esempio
y
Consideriamo un sistema costituito da un
motore rigidamente connesso ad un carico
C
ϑ
soggetto a forza gravitazionale.
l
x
Siano Im e I i momenti di inerzia di motore
τ
e carico rispetto all’asse del motore, m la
mg
massa del carico, l la distanza del
baricentro del carico dall’asse del motore.
Energia cinetica del motore
Poiché il baricentro è fisso e l’asse di rotazione è baricentrale, si ha:
1
Tm = I m ϑ 2
2
Energia cinetica del carico
Dal teorema di König:
1
1
1
1
1
1
Tc = mpC T pC + I cz ϑ 2 = ml 2 ϑ 2 + I cz ϑ 2 = ml 2 + I cz ϑ 2 = Iϑ 2
2
2
2
2
2
2
(
)
Controllo dei robot - Dinamica - P. Rocco [13]
Esempio
ϑ
l
τ
mg
Lagrangiana:
Energia potenziale gravitazionale:
⎡l cos ϑ⎤
U = −mg T pC = − m[0 − g ]⎢
= mgl sin ϑ
⎥
⎣ l sin ϑ ⎦
L = Tm + Tc − U =
1
(I m + I )ϑ2 − mgl sin ϑ
2
Equazione di Lagrange:
d ∂L ∂L
d
(I + I m )ϑ + mgl cos ϑ = τ
−
=τ ⇒
dt ∂ϑ ∂ϑ
dt
(
)
Pertanto:
(I + I m )ϑ + mgl cos ϑ = τ
L’equazione si lascia facilmente interpretare come l’equilibrio dei momenti
rispetto all’asse di rotazione.
Controllo dei robot - Dinamica - P. Rocco [14]
Manipolatore robotico: lagrangiana
Per un manipolatore robotico, il cui moto è caratterizzato dalle n
coordinate libere di giunto qi, l’energia cinetica è data dalla forma
quadratica:
1
T (q, q ) = q T B (q )q
2
mentre l’energia potenziale è la somma delle energie potenziali dei singoli
bracci (calcolate per mezzo delle posizioni dei baricentri pCi) :
U (q ) =
n
∑
− mi g T pCi
i =1
Ne consegue l’espressione della Lagrangiana:
n n
1
L(q, q ) = T (q, q ) − U (q ) =
bij (q )qi q j +
2 i =1 j =1
∑∑
n
∑
mi g T pCi
i =1
dove bij sono gli elementi della matrice di inerzia B.
Controllo dei robot - Dinamica - P. Rocco [15]
Manipolatore robotico: derivazioni
Deriviamo la lagrangiana:
d ⎛ ∂L
⎜
dt ⎜⎝ ∂qi
⎞ d ⎛ ∂T
⎟= ⎜
⎟ dt ⎜ ∂q
⎠
⎝ i
⎞ d ⎛⎜
⎟=
⎟ dt ⎜
⎠
⎝
⎞
bij (q )q j ⎟ =
⎟
j =1
⎠
n
∑
n
n
∑ b (q )q + ∑
ij
j =1
j
j =1
dbij (q )
dt
qj =
⎡ n ∂bij (q ) ⎤
=
bij (q )q j +
qk ⎥ q j
⎢
⎥⎦
j =1
j =1 ⎢
⎣ k =1 ∂q k
n
∑
n
∑∑
Inoltre:
∂T 1 n n ∂b jk (q )
qk q j
= ∑∑
∂qi 2 j =1k =1 ∂qi
n
∂pCj
∂U
T
= − ∑mjg
= g i (q )
∂qi
∂qi
j =1
Controllo dei robot - Dinamica - P. Rocco [16]
Manipolatore robotico: modello
Dalle equazioni di Lagrange otteniamo
n
n
n
∑ b (q )q + ∑∑ h
ij
j
ijk
j =1
(q )qk q j + g i (q ) = ξ i
i = 1,… , n
j =1 k =1
dove:
hijk
1 ∂b jk
−
=
∂q k 2 ∂qi
∂bij
In termini matriciali:
B (q )q + C (q, q )q + g (q ) = τ
dove C è un’opportuna matrice n×n i cui elementi soddisfano la relazione:
n
n
n
∑ c q = ∑∑ h
ij
j =1
ijk q k q j
j
j =1 k =1
Controllo dei robot - Dinamica - P. Rocco [17]
Significato dei termini
B (q )q + C (q, q )q + g (q ) = τ
Coppie ai giunti
Termini gravitazionali
Termini centrifughi e di Coriolis
Termini inerziali
Esistono metodi sistematici per ricavare i coefficienti della matrice d’inerzia e
quindi, per derivazione, quelli centrifughi e di Coriolis.
Tuttavia la scrittura del modello dinamico basata sulle equazioni di Lagrange,
pur dando luogo ad un modello in forma chiusa, facilmente interpretabile ed
utilizzabile nella sintesi del controllore, costituisce un procedimento
inefficiente dal punto di vista computazionale.
Controllo dei robot - Dinamica - P. Rocco [18]
Metodo di Newton-Eulero
Una strada alternativa per la formulazione del modello dinamico del
manipolatore è quella che va sotto il nome di metodo di Newton-Eulero.
Si tratta di scrivere i bilanci di forze e momenti agenti sul singolo braccio,
mettendo in evidenza le interazioni con i bracci contigui nella catena cinematica.
Si ottiene un sistema di equazioni che
possono essere risolte in modo
ricorsivo, propagando le velocità ed
accelerazioni dalla base verso
l’organo terminale, e le forze ed i
momenti in senso opposto.
La ricorsività rende l’algoritmo di
Newton-Eulero computazionalmente
efficiente.
Il disegno è tratto dal testo:
L.Sciavicco, B.Siciliano
Robotica industriale – Modellistica e controllo di robot
manipolatori (2a ed.)
Mc Graw-Hill, 2000
Controllo dei robot - Dinamica - P. Rocco [19]
Dinamica diretta ed inversa
B (q )q + C (q, q )q + g (q ) = τ
Dinamica diretta
..
Assegnate le coppie ai giunti τ(t), determinare le accelerazioni ai giunti q(t) e,
.
note le posizioni iniziali q(t0) e le velocità iniziali q(t0), le posizioni q(t) e le
.
velocità q(t).
• Problema la cui soluzione è utile per la simulazione numerica della dinamica
• È risolubile sia con l’approccio di Lagrange che con l’approccio di NewtonEulero
Dinamica inversa
..
.
Assegnate le accelerazioni q(t), le velocità q(t) e le posizioni q(t) determinare le
coppie ai giunti τ(t) necessarie alla generazione del movimento.
• Problema la cui soluzione è utile per la pianificazione della traiettoria e per il
controllo basato sul modello.
• Si può risolvere efficientemente con l’approccio di Newton-Eulero
Controllo dei robot - Dinamica - P. Rocco [20]
Sistema dinamico
B (q )q + C (q, q )q + g (q ) = τ
Dal punto di vista della teoria dei sistemi, il manipolatore costituisce un sistema
dinamico di ordine 2n. Definite infatti le variabili di stato:
z1 = q ∈ ℜ n , z 2 = q ∈ ℜ n
e le variabili di ingresso:
u = τ ∈ ℜn
il sistema è composto dalle seguenti equazioni di stato:
⎧ z1 = z 2
⎨
−1
−1
(
)
(
(
)
(
)
)
(
)
=
−
+
+
z
B
z
C
z
,
z
z
g
z
B
z
u
2
1
1
2
2
1
1
⎩
Si osservi che in corrispondenza di un ingresso costante, lo stato di equilibrio si
caratterizza come segue:
⎧ g (z1 ) = u
⎨
⎩ z2 = 0
Controllo dei robot - Dinamica - P. Rocco [21]
Manipolatore cartesiano a due bracci
d2
m2
z1
m1
z0
d1
x0
Consideriamo un manipolatore cartesiano a due bracci,
caratterizzati dalle masse m1 e m2.
Il vettore delle coordinate generalizzate risulta:
⎡ d1 ⎤
q=⎢ ⎥
⎢⎣d 2 ⎥⎦
I baricentri dei due bracci hanno posizioni (a meno di costanti) e velocità date in
terna base da:
⎡d 2 ⎤
⎡0⎤
⎡d 2 ⎤
⎡0⎤
⎢ ⎥
⎢
⎥
⎢
⎥
⎢
⎥
pc1 = ⎢ 0 ⎥, pc 2 = ⎢ 0 ⎥, pc1 = ⎢ 0 ⎥, pc 2 = ⎢ 0 ⎥
⎢d ⎥
⎢⎣d1 ⎥⎦
⎢⎣ d1 ⎥⎦
⎢⎣d1 ⎥⎦
⎣ 1⎦
Il vettore dell’accelerazione di gravità è:
⎡ 0 ⎤
g = ⎢⎢ 0 ⎥⎥
⎢⎣− g ⎥⎦
Controllo dei robot - Dinamica - P. Rocco [22]
Manipolatore cartesiano a due bracci
d2
m2
z1
m1
z0
d1
x0
Calcoliamo l’energia cinetica, tenendo conto che la velocità
angolare di entrambi i bracci è nulla:
1
1
T
T = m1 pc1 pc1 + m2 pc 2T pc 2 =
2
2
(
1
1
2
= m1d1 + m2 d12 + d 2 2
2
2
)
Per quanto riguarda invece l’energia potenziale gravitazionale, definita a meno di
una costante, si ha:
U = −m1 g T pc1 − m2 g T pc 2 = m1 gd1 + m2 gd1
La lagrangiana è quindi:
L = T −U =
1
(m1 + m2 )d12 + 1 m2 d 2 2 − (m1 + m2 )gd1
2
2
Controllo dei robot - Dinamica - P. Rocco [23]
Manipolatore cartesiano a due bracci
d2
m2
z1
m1
z0
d1
x0
Risulta quindi:
Le equazioni di Lagrange sono le seguenti:
d ∂L ∂L
−
= f1
f1 e f2: forze agenti lungo le
dt ∂d1 ∂d1
coordinate generalizzate
d ∂L
∂L
−
= f2
dt ∂d 2 ∂d 2
(m1 + m2 )d1 + (m1 + m2 )g =
f1
m2 d 2 = f 2
In termini vettoriali:
⎡m1 + m2 0 ⎤ ⎡ d1 ⎤ ⎡(m1 + m2 )g ⎤ ⎡ f1 ⎤
=⎢ ⎥
⎢ ⎥+⎢
⎥
⎢ 0
⎥
m2 ⎦ ⎣⎢d 2 ⎦⎥ ⎣
0
⎦ ⎣ f2 ⎦
⎣
B
g
C =0
Controllo dei robot - Dinamica - P. Rocco [24]
Manipolatore planare a due bracci
a2
m2, I2
y0
l2
m1, I1
l1
ϑ2
a1
ϑ1
x0
Consideriamo un manipolatore planare a due
bracci, caratterizzati dalle masse m1 e m2 e dalle
lunghezze a1 e a2.
Il vettore delle coordinate generalizzate risulta:
⎡ϑ ⎤
q = ⎢ 1⎥
⎣ϑ 2 ⎦
I baricentri dei due bracci hanno posizioni e velocità date in terna base da:
⎡l1c1 ⎤
pc1 = ⎢⎢l1s1 ⎥⎥,
⎢⎣ 0 ⎥⎦
pc 2
⎡a1c1 + l 2 c12 ⎤
= ⎢⎢ a1s1 + l 2 s12 ⎥⎥,
⎢⎣
⎥⎦
0
dove:
a
a
l1 = 1 , l 2 = 2
2
2
⎡− ϑ1l1s1 ⎤
⎢
⎥
pc1 = ⎢ ϑ1l1c1 ⎥,
⎢ 0 ⎥
⎣
⎦
pc 2
(
)
⎡− ϑ1a1s1 − l 2 ϑ1 + ϑ 2 s12 ⎤
⎢
⎥
= ⎢ ϑ1a1c1 + l 2 ϑ1 + ϑ 2 c12 ⎥
⎢
⎥
0
⎣
⎦
Il vettore dell’accelerazione di gravità è:
(
)
⎡ 0 ⎤
g = ⎢⎢− g ⎥⎥
⎢⎣ 0 ⎥⎦
Controllo dei robot - Dinamica - P. Rocco [25]
Manipolatore planare a due bracci
a2
m2, I2
y0
l2
m1, I1
l1
ϑ2
I1 =
a1
ϑ1
Per calcolare l’energia cinetica, introduciamo i
momenti di inerzia delle due aste rispetto ad assi
passanti per i rispettivi baricentri e paralleli a z0:
1
1
m1a12 , I 2 = m2 a 22
12
12
x0
Utilizzando per entrambe le aste il teorema di König:
T=
=
1
1
1
1
m1 pc1T pc1 + I1ω2z1 + m2 pc 2T pc 2 + I 2 ω2z 2 =
2
2
2
2
(
)
(
)
(
2
1
1
1
1
m1l12 ϑ12 + I1ϑ12 + m2 ⎡ϑ12 a12 + ϑ1 + ϑ 2 l 22 + 2ϑ1 ϑ1 + ϑ 2 a1l 2 c2 ⎤ + I 2 ϑ1 + ϑ 2
⎥⎦ 2
2
2
2 ⎢⎣
Per quanto riguarda invece l’energia potenziale gravitazionale, definita a meno di
una costante, si ha:
U = −m1 g T pc1 − m2 g T pc 2 = m1 gl1s1 + m2 g (a1s1 + l 2 s12 )
Controllo dei robot - Dinamica - P. Rocco [26]
)2
Manipolatore planare a due bracci
Le equazioni di Lagrange sono le seguenti:
d ∂L
∂L
−
= τ i , i = 1,2 τi : coppie agenti lungo le coordinate generalizzate
dt ∂ϑi ∂ϑi
Prima equazione:
(m l
2
11
) (
)
+ I1 + m2 a12 + m2 l 22 + 2m2 a1l 2 c2 + I 2 ϑ1 + m2 l 22 + m2 a1l 2 c2 + I 2 ϑ 2 +
− 2m2 a1l 2 s 2 ϑ1ϑ 2 − m2 a1l 2 s 2 ϑ 22 +
+ m1 gl1c1 + m2 ga1c1 + m2 gl 2 c12 = τ1
Seconda equazione:
(m l
2
2 2
) (
)
+ m2 a1l 2 c2 + I 2 ϑ1 + m2l 22 + I 2 ϑ 2 +
+ m2 a1l 2 s 2 ϑ12 +
+ m2 gl 2 c12 = τ 2
Controllo dei robot - Dinamica - P. Rocco [27]
Manipolatore planare a due bracci
Le equazioni in forma vettoriale si scrivono:
⎡m1l12 + I1 + m2 a12 + m2 l 22 + 2m2 a1l 2 c2 + I 2
⎢
m2 l 22 + m2 a1l 2 c2 + I 2
⎣⎢
B (q )
⎡− 2m2 a1l 2 s 2 ϑ 2
⎢
⎣ m2 a1l 2 s 2 ϑ1
m2 l 22 + m2 a1l 2 c2 + I 2 ⎤ ⎡ ϑ1 ⎤
⎥⎢ ⎥ +
2
m2 l 2 + I 2
⎦⎥ ⎣ϑ 2 ⎦
− m2 a1l 2 s 2 ϑ 2 ⎤ ⎡ ϑ1 ⎤ ⎡(m1l1 + m2 a1 )gc1 + m2 gl 2 c12 ⎤ ⎡ τ1 ⎤
=⎢ ⎥
⎥⎢ ⎥ + ⎢
⎥
m2 gl 2 c12
0
⎦ ⎣τ 2 ⎦
⎦ ⎣ϑ 2 ⎦ ⎣
g (q )
C (q, q )
Si osservi che l’espressione della matrice C non è univoca. Si potrebbe anche
prendere, ad esempio:
⎡− m a l s ϑ − m2 a1l 2 s 2 ϑ1 + ϑ 2 ⎤
C (q, q ) = ⎢ 2 1 2 2 2
⎥
0
⎦
⎣ m2 a1l 2 s 2 ϑ1
(
)
Controllo dei robot - Dinamica - P. Rocco [28]