Controllo Di Un Manipolatore Seriale RRRRRR Completamente Attuato
Controllo Di Un Manipolatore Seriale RRRRRR Completamente Attuato
SCUOLA DI INGEGNERIA
DIPARTIMENTO DI
INGEGNERIA
DELL’INFORMAZIONE
Controllo dinamico
Controllore PD
Sintesi
Simulazione (Pick and place)
Controllo adattivo
Controllore computed torque adattivo
Sintesi
Simulazione (Inseguimento di traiettoria da FFS - Finite Fourier Series)
Stima dei parametri
2/31
Descrizione del manipolatore
Manipolatore a 6 giunti rotoidali Puma 560
P. I. Corke and B. Armstrong-Helouvry, "A search for consensus among model parameters reported for the
PUMA 560 robot" Proceedings of the 1994 IEEE International Conference on Robotics and Automation, 1994,
pp. 1608-1613 vol.2, doi: 10.1109/ROBOT.1994.351360.
3/31
Descrizione del manipolatore
Tabella di Denavit-Hartenberg
Linki 𝒂𝒊 𝜶𝒊 𝒅𝒊 𝜽𝒊
1 0 𝜋⁄2 0 𝑞"
2 0.4318 0 0 𝑞#
3 0.0203 − 𝜋⁄2 0.15005 𝑞$
4 0 𝜋⁄2 0.4318 𝑞%
5 0 − 𝜋⁄2 0 𝑞&
6 0 0 0 𝑞'
4/31
Controllo cinematico
Sintesi
I metodi di controllo cinematico sfruttano il fatto di poter scegliere il valore della
variabile 𝑢 in:
𝑞̇ = 𝑢
Il task è di posizionare l’end effector nella posizione e orientazione desiderata:
𝜉! (controllo di postura)
𝜉! (𝑡) (inseguimento di traiettoria)
6/31
Controllo cinematico — Metodo del gradiente
Simulazione (Controllo di postura) )
Configurazione desiderata: 𝜉+ = 0.2 0.4 0.6 0 0 0
End-e,ector error
0.6
e1 = 9d;1 ! 91
Translation Error [m]
e1 = 9d;2 ! 92
0.4
e3 = 9d;3 ! 93
0.2
-0.2
-0.4
0 10 20 30 40 50 60
t [s]
0.8
e4 = 9d;4 ! 94
Rotation Error [rad]
0.6
e5 = 9d;5 ! 95
0.4 e6 = 9d;6 ! 96
0.2
-0.2
-0.4
-0.6
-0.8
0 10 20 30 40 50 60
7/31
t [s]
Controllo cinematico — Metodo di Levenberg-Marquardt
Simulazione (Controllo di postura) )
Configurazione desiderata: 𝜉+ = 0.2 0.4 0.6 0 0 0
End-e,ector error
0.6
e1 = 9d;1 ! 91
Translation Error [m]
e1 = 9d;2 ! 92
0.4
e3 = 9d;3 ! 93
0.2
-0.2
-0.4
0 2 4 6 8 10 12 14 16 18 20
t [s]
1
e4 = 9d;4 ! 94
Rotation Error [rad]
0.8 e5 = 9d;5 ! 95
e6 = 9d;6 ! 96
0.6
0.4
0.2
-0.2
-0.4
0 2 4 6 8 10 12 14 16 18 20
8/31
t [s]
Controllo cinematico — Metodo di Levenberg-Marquardt
Simulazione (Inseguimento di traiettoria circolare) )
! # ! ! #
Configurazione desiderata: 𝜉+ (𝑡) = "
sin 𝑡$ " "
cos 𝑡$
0 0 0
End-e,ector error
0.8
e1 = 9d;1 ! 91
Translation Error [m]
0.6 e1 = 9d;2 ! 92
e3 = 9d;3 ! 93
0.4
0.2
-0.2
-0.4
-0.6
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
t [s]
1
e4 = 9d;4 ! 94
Rotation Error [rad]
0.8 e5 = 9d;5 ! 95
e6 = 9d;6 ! 96
0.6
0.4
0.2
-0.2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
9/31
t [s]
Controllo dinamico
Si basa sull’equazione dinamica:
𝑀 𝑞 𝑞̈ + 𝐶 𝑞, 𝑞̇ 𝑞̇ + 𝐺 𝑞 = 𝜏
Dove:
𝑞: vettore degli angoli di giunto del seriale
𝑀 𝑞 : matrice di inerzia
𝐶 𝑞, 𝑞̇ : matrice delle forze centrifughe e di Coriolis
𝐺 𝑞 : matrice dei termini gravitazionali
𝜏: vettore delle forze generalizzate
Le forze generalizzate 𝜏 sono legate alle forze sugli attuatori 𝑓 dalla seguente
equazione lineare:
𝜏=𝐹 𝑞 𝑓
Il numero di attuatori è pari al numero di giunti (𝑙 = 6 = 𝑛) per cui la matrice
𝐹(𝑞) è quadrata e, supponendola invertibile nelle configurazioni 𝑞 di interesse,
(rank 𝐹(𝑞) = 𝑛), il sistema è completamente attuato.
10/31
Controllore PD
Sintesi
Si basa sul far coincidere le forze generalizzate con termini proporzionali
all’errore di posizione e alla sua derivata:
𝜏 = 𝐾, 𝑒 + 𝐾- 𝑒̇
con 𝐾, e 𝐾- matrici diagonali definite positive.
Per compensare l’azione di gravità agente sui giunti si preferisce aggiungere il
termine 𝐺, ottenendo un controllore PD indipendente con compensazione di
gravità (legge di Arimoto):
𝜏 = 𝐾, 𝑒 + 𝐾- 𝑒̇ + 𝐺 𝑞
Se la configurazione desiderata è costante ( 𝑞̇ + = 𝑞̈ + = 0) allora il punto
𝑒(𝑡) = 𝑒(𝑡)
̇ = 0 è di equilibrio poiché si ha:
𝑀 𝑞+ 𝑞̈ + + 𝐶 𝑞+ , 𝑞̇ + 𝑞̇ + = 0
0.5
e [rad]
-0.5
-1
-1.5
-2
-2.5
0 2 4 6 8 10 12 14 16 18 20
12/31
t [s]
Controllore computed torque
Sintesi
Nell’ipotesi di:
poter calcolare un modello esatto per la dinamica del manipolatore
poter misurare 𝑞 𝑡 e 𝑞̇ 𝑡
la coppia di controllo da applicare è:
𝜏(𝑞, 𝑞,̇ 𝑒, 𝑒)̇ = 𝑀 𝑞 𝑞̈ + + 𝐶 𝑞, 𝑞̇ 𝑞̇ + 𝐺 𝑞 + 𝐾′, 𝑒 + 𝐾′- 𝑒̇
0.5
e [rad]
-0.5
-1
-1.5
-2
-2.5
0 2 4 6 8 10 12 14 16 18 20
14/31
t [s]
Controllore computed torque
Simulazione (Inseguimento di traiettoria circolare)
#10!4
Joint errors
5
EE translation EE orientation
0.6 4 e1
Spatial coordinates [m]
x Roll
0.5
y
3
Pitch e2
-0.1 -3
-0.2 -4
0 5 10 15 20 0 5 10 15 20
3 t [s] t [s]
XY view 3D view
0.1
e [rad]
#10!9
0.05
0
2
y [m]
-2
0
z [m]
-4
-6
-0.05 0.1
-8
0
1 -10
-0.1 0.35
0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.4 0.45 0.5 0.55 -0.1
0.6 0.65 y [m]
x [m] x [m]
-1
0 2 4 6 8 10 12 14 16 18 20
15/31
t [s]
Controllore backstepping
Sintesi
Si suddivide il problema di controllo in due fasi:
1. controllare il modello cinematico usando le velocità come ingressi nominali
2. design di un controllore tale che le velocità reali del manipolatore (𝑞)̇ tendano
a quelle di riferimento (𝑞̇ " ) usate per il controllo in velocità
Definendo:
𝑒 = 𝜉! − 𝜉, l’errore di inseguimento nello spazio operativo
𝑠 = 𝑞̇ " − 𝑞̇ = 𝐽#$ 𝑞 𝑒̇ + Λ𝑒 , l’errore in velocità ( Λ matrice di guadagni
simmetrica e definita positiva)
0.5
e [rad]
-0.5
-1
-1.5
-2
-2.5
0 2 4 6 8 10 12 14 16 18 20
17/31
t [s]
Controllore backstepping
Simulazione (Inseguimento di traiettoria circolare)
#10!4
Joint errors
4.5
EE translation EE orientation
0.6 4 e1
Spatial coordinates [m]
0.5
x
3
Roll e2
y Pitch
e3
0 -2
3 -0.1 -3
-0.2 -4
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
2.5
XY view 3D view
e [rad]
2 #10!6
0.05
10
y [m]
1.5 0
5
z [m]
-0.05 0 0.1
1 0
-5
-0.1 0.4
0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.45 0.5 -0.1
0.55 0.6 y [m]
x [m] x [m]
0.5
-0.5
0 2 4 6 8 10 12 14 16 18 20
18/31
t [s]
Controllo adattivo
Sintesi
19/31
Controllore computed torque adattivo
Sintesi
C. D. Sousa, SymPyBotics software (available at [Link] an opensource
Python package for symbolic robot dynamics, based on SageRobotics (Sousa and Cortesão, 2012), doi:
10.5281/zenodo.11365
21/31
Controllore computed torque adattivo
Simulazione (Inseguimento di traiettoria da FFS - Finite Fourier Series)
Traiettoria desiderata:
)
𝑎%,' 𝑏%,'
𝑞%,! 𝑡 =5 sin 𝜔* 𝑙𝑡 − cos 𝜔* 𝑙𝑡
𝜔* 𝑙 𝜔* 𝑙
'($
)
dove:
𝜔1 è la frequenza fondamentale (comune a tutti i giunti, per rendere periodica
la traiettoria eccitante)
𝑎2,3 e 𝑏2,3 sono i coefficienti della serie di Fourier
𝐿 è l’ordine della serie di Fourier
22/31
Controllore computed torque adattivo
Simulazione (Inseguimento di traiettoria da FFS - Finite Fourier Series)
S. Krishnamoorthi, "Model-Based Compensation for Serial Manipulators through Semi-Parametric Gaussian
Process Regression" Master of Science Thesis, 2018, Faculty of Mechanical, Maritime and Materials
Engineering (3mE), Delft University of Technology, Delft, Netherlands
𝜔1 = 1 Hz
𝐿=4
23/31
Controllore computed torque adattivo
Simulazione (Inseguimento di traiettoria da FFS - Finite Fourier Series)
Joint errors
0.6
e1
e2
e3
0.4
e4
e5
e6
0.2
-0.2
e [rad]
-0.4
-0.6
-0.8
-1
-1.2
0 2 4 6 8 10 12 14 16 18 20
24/31
t [s]
Controllore computed torque adattivo
Simulazione (Inseguimento di traiettoria da FFS - Finite Fourier Series)
Joint trajectories
2 2
q1 q2
Joint 1 [rad]
Joint 2 [rad]
q1;d 1 q2;d
1
0
0
-1
-1 -2
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
1 1
q3 q4
Joint 3 [rad]
Joint 4 [rad]
q3;d 0.5 q4;d
0.5
0
0
-0.5
-0.5
-1
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
1
2
q5 q6
Joint 5 [rad]
Joint 6 [rad]
Mass 2 [kg]
m1 m2
0.04 17
0.02 16.5
0 16
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
5 0.85
b3
m b4
m
Mass 3 [kg]
Mass 4 [kg]
4.95 m3 0.8 m4
4.9 0.75
4.85 0.7
4.8 0.65
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
0.6 0.25
b5
m b6
m
Mass 5 [kg]
Mass 6 [kg]
m5 m6
0.5 0.2
0.4 0.15
0.1
0.3
0 5 10 15 20 0 5 10 15 20
26/31
t [s] t [s]
Controllore backstepping adattivo
Sintesi
27/31
Controllore backstepping adattivo
Simulazione (Inseguimento di traiettoria da FFS - Finite Fourier Series)
Joint errors
0.6
e1
e2
e3
0.4
e4
e5
e6
0.2
-0.2
e [rad]
-0.4
-0.6
-0.8
-1
-1.2
0 2 4 6 8 10 12 14 16 18 20
28/31
t [s]
Controllore backstepping adattivo
Simulazione (Inseguimento di traiettoria da FFS - Finite Fourier Series)
Joint trajectories
2 2
q1 q2
Joint 1 [rad]
Joint 2 [rad]
q1;d 1 q2;d
1
0
0
-1
-1 -2
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
1 1
q3 q4
Joint 3 [rad]
Joint 4 [rad]
q3;d 0.5 q4;d
0.5
0
0
-0.5
-0.5
-1
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
1
2
q5 q6
Joint 5 [rad]
Joint 6 [rad]
Mass 2 [kg]
m1 m2
0.04 17
0.02 16.5
0 16
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
0.85
5 b3
m b4
m
Mass 3 [kg]
Mass 4 [kg]
m3 m4
4.95 0.8
4.9
0.75
4.85
4.8 0.7
0 5 10 15 20 0 5 10 15 20
t [s] t [s]
0.5 0.16
b5
m b6
m
Mass 5 [kg]
Mass 6 [kg]
m5 m6
0.45 0.14
0.4
0.12
0.35
0.1
0.3
0 5 10 15 20 0 5 10 15 20
30/31
t [s] t [s]
Controllo adattivo
Stima dei parametri
Né col controllo a coppia calcolata né col controllo backstepping adattivi si è
ottenuta la convergenza dei parametri ai valori reali – cosa in effetti non garantita
Pertanto, i riferimenti usati nelle simulazioni non eccitano sufficientemente la
dinamica dell’errore di stima tanto da permettere il raggiungimento di stima
esatta nell’intervallo di tempo considerato
In generale, l’errore di stima 𝜋` tende a un valore costante 𝜋p̀ tale per cui, ad ogni
istante 𝑡 considerato:
𝑌 𝑞,𝑞,̇ 𝑞̈ 𝜋p̀ = 0
La matrice di regressione varia nel tempo, per cui 𝜋p̀ deve stare nell’intersezione
di tutti i nulli delle varie matrici 𝑌
Inoltre, poiché la colonna di 𝑌 corrispondente alla stima della massa del primo
link è sempre nulla, la sua stima 𝑚
q " rimarrà sempre invariata rispetto al valore di
stima iniziale 𝑚
q ",*
Ciò con qualsiasi riferimento, anche qualora fosse sufficientemente eccitante
31/31
Grazie per l’attenzione