Tesina CdR Falanga-Fontanelli

Transcript

Tesina CdR Falanga-Fontanelli
 UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II FACOLTÀ DI INGEGNERIA !
!
TESINA DI CONTROLLO DEI ROBOT !!
____________________________________________________________________
Modellistica, pianiAicazione e controllo di un robot SCARA e di un braccio antropomorfo ____________________________________________________________________
!
!
!
!
Candidati Davide FALANGA M58/48 Andrea FONTANELLI M58/64 !
!
!
!
!
Docente Ch.mo Prof. Ing. Bruno SICILIANO Anno Accademico 2013/2014 !
!
INTRODUZIONE Indice !
!
!
1 -­‐ MODELLISTICA 1.1 ANALISI CINEMATICA 1.3 ANALISI DELLA MANIPOLABILITÀ 1.4 RIDONDANZA CINEMATICA 1.5 MODELLO DINAMICO 1.6 PARAMETRIZZAZIONE DEL MODELLO !
2 -­‐ PIANIFICAZIONE 2.1 PIANIFICAZIONE DELLE TRAIETTORIE NELLO SPAZIO OPERATIVO 2.2 INVERSIONE CINEMATICA !
3 -­‐ CONTROLLO 3.1 CONTROLLO ROBUSTO 3.2 CONTROLLO ADATTATIVO 3.3 CONTROLLO DI IMPEDENZA 3.4 CONTROLLO DI FORZA CON ANELLO INTERNO DI POSIZIONE 3.5 CONTROLLO DI FORZA CON ANELLO INTERNO DI VELOCITÀ 3.6 CONTROLLO PARALLELO FORZA/MOTO !
APPENDICE A.1 TABELLE DI D-­‐H E MATRICI DI TRASFORMAZIONE A.2 JACOBIANO -2
! -
A.3 MATRICI DEL MODELLO DINAMICO A.4 REGRESSORE E PARAMETRI DINAMICI A.5 PARAMETRI DEL ROBOT ANTROPOMORFO !
BIBLIOGRAFIA !
!
-3
! -
INTRODUZIONE Con il presente lavoro si intende effettuare un’analisi cinematica e dinamica di
due differenti tipologie di manipolatori: uno SCARA ed un antropomorfo a 5
assi. I due robot saranno quindi confrontati per evidenziare le differenze sia
in termini di comportamento che di tecniche utilizzate tanto per l’analisi dei
manipolatori quanto per la sintesi dei sistemi di controllo.
!
Per non appesantire la lettura dell’elaborato, la maggior parte delle equazioni
e delle matrici utilizzate per la modellistica, il controllo e la simulazione sono
riportate in Appendice. Inoltre, tutte le equazioni cui si farà riferimento
provengono da [1]. Molte delle informazioni legate al robot antropomorfo
(matrici di trasformazione, Jacobiano e modello dinamico) sono riportate in un
M-File allegato al presente documento.
!
Si noti che per il manipolatore SCARA sono stati sviluppati tutti i punti
richiesti dalla traccia dell’elaborato tecnico, mentre per quanto concerne
l’antropomorfo ci si è soffermati soltanto sull’analisi della cinematica, sul
modello dinamico senza il calcolo del regressore e sulla sintesi di un controllo
robusto.
!
Nel Cap. 1 viene presentata l’analisi cinematica e dinamica dei due robot.
!
Nel Cap.2 sono illustrate la traiettoria generata come riferimento nello spazio
operativo e le tecniche adottate per l’inversione della stessa per ottenere dei
riferimenti nello spazio dei giunti.
!
Nel Cap. 3 sono mostrati i risultati ottenuti con diverse tecniche di controllo,
sia del moto che della forza.
!
!
!
!
-4
! -
1 -­‐ MODELLISTICA !
1.1 ANALISI CINEMATICA Per effettuare l’analisi cinematica dei due manipolatori sono state disposte
come di seguito le terne di riferimento secondo la convenzione di Denavit e
Hartenberg:
!
!
!
!
-5
! -
Sulla base dei dati di progetto sono state dunque calcolate le matrici di DH, le
quali sono riportate nell’appendice A.1.
!
Tramite la relazione (2.52) proposta in [1] sono state calcolate le matrici di DH; le matrici di trasformazione tra terna base e end-effector sono state
calcolate utilizzando la relazione (2.61). Anche in questo caso, tali matrici
sono riportate in appendice.
!
Da queste ultime è stato possibile ottenere le funzioni cinematiche dirette. In
particolare, per ottenere l’orientamento ci si è riferiti alla convenzione degli
angoli di Eulero ZYX per lo SCARA utilizzando le relazioni (2.22), mentre per
l’antropomorfo è stat adottata la convenzione dei quaternioni unitari grazie
alle relazioni (2.34) e (2.35).
!
Per l’analisi della cinematica differenziale è stato calcolato lo Jacobiano
geometrico dei due robot, utilizzando la relazione (3.30). Tali matrici sono
riportate in appendice A.2. Per quanto riguarda lo Jacobiano analitico, nel caso
dello SCARA coincide con lo Jacobiano geometrico in quanto tutte le rotazioni
possibili sono intorno ad assi paralleli, mentre per l’antropomorfo è stata
utilizzata la rappresentazione dell’orientamento tramite la convezione dei
quaternioni unitari, per cui non è stato necessario il calcolo dello Jacobiano
analitico.
!
1.3 ANALISI DELLA MANIPOLABILITÀ Per analizzare la manipolabilità delle due strutture sono stati ricavati gli
ellissoidi di manipolabilità in velocità ed in forza adoperando le relazioni
proposte a pag. 153 di [1].
!
Questi ultimi sono riportati nelle figure di seguito per alcuni punti dello
spazio operativo del robot SCARA (p1 = [0.8, 0, 0], p2=[0.1, 0, 0], p3=[-0.8, 0,
0], p4=[-0.1, 0, 0]).
!
-6
! -
!
Ellissoidi di manipolabilità del robot SCARA
Per l’antropomorfo, si riportano invece gli ellissoidi di manipolabilità in 3D,
ottenuti nel primo caso analizzando alcuni punti dello spazio operativo ove il
robot gode di una buona manipolabilità (p1 = [0.5, 0, 0.5], p2=[0.3, 0, 0.1],
p3=[-0.1, 0.1, 0.4], p4=[0.3, 0.2, 0.4], p5=[-0.3, 0.2, 0.5]), nel secondo invece in
prossimità delle configurazioni di singolarità di spalla e di gomito.
!
Ellissoidi di manipolabilità del robot antropomorfo
-7
! -
!
Ellissoidi di manipolabilità del robot antropomorfo in singolarità di spalla e di gomito
Si noti che in prossimità della singolarità di gomito l’ellissoide in velocità
degenera in un piano parallelo all’asse Y, mentre quello in forza degenera in
una retta ortogonale a tale piano: ciò implica l’impossibilità di esercitare
velocità in tale direzione ed elevate forze nelle direzioni parallele all’asse X.
!
Per quanto riguarda la singolarità di spalla, nella direzione ortogonale al piano
formato dai bracci 2 e 3 non è possibile sviluppare velocità in quanto tale
direzione è impedita dalla configurazione. L’ellissoide in forza degenera in
una retta in quanto la forza in tale direzione è compensata dalla struttura: in
via teorica sarebbe dunque possibile esercitare forze infinite.
!
1.4 RIDONDANZA CINEMATICA Per analizzare la ridondanza cinematica sono state rilassate a turno le
componenti X e φ (orientamento) dello spazio operativo per il robot SCARA. In
ciascun caso è stato considerato uno Jacobiano ridotto, rimuovendo le righe
relative alle componenti dello spazio operativo rilassate. L’analisi della
ridondanza è stata effettuata utilizzando come riferimenti nello spazio dei
giunti delle traiettorie ottenute tramite inversione cinematica con gli algoritmi
CLIK descritti nel paragrafo 2.2 tramite pseudo-inversa minima a destra.
-8
! -
!
Rilassando lo spazio operativo i robot sono diventati funzionalmente
ridondanti, per cui è stato possibile migliorarne la destrezza proiettando nel
nullo dello Jacobiano un’opportuna velocità nello spazio dei giunti ottenuta
utilizzando le relazioni (3.55) e (3.56), massimizzando così la misura di
manipolabilità.
!
Nel caso in cui venga rilassata la componente X dello spazio operativo si
evidenziano importanti miglioramenti della manipolabilità del robot. Difatti,
utilizzando come funzione obiettivo la (3.56) per l’esecuzione del task
secondario si ottiene un comportamento tale da far allontanare il robot dai
punti di singolarità.
!
!
!
Traiettorie nello spazio dei giunti quando il vincolo sulla X è rilassato
-9
! -
!
Misura di manipolabilità quando il vincolo sulla X è rilassato
Viceversa, rilassando la componente relativa all’orientamento non vi è alcun
miglioramento nella manipolabilità della struttura. Ciò, come prevedibile, è
conseguenza del totale disaccoppiamento tra posizionamento e orientamento
nello spazio operativo.
!
!
!
!
!
!
!
!
!
!
- 10
!
-
!
Traiettorie nello spazio dei giunti quando il vincolo sull’orientamento è rilassato
!
Misura di manipolabilità quando il vincolo sull’orientamento è rilassato
- 11
!
-
Non si rilevano invece cambiamenti significativi per quanto riguarda l’errore
di inseguimento della traiettoria, in quanto il task secondario non influisce
sull’esecuzione del task primario giacché le velocità q0 sono proiettate nel
nullo dello Jacobiano.
!
1.5 MODELLO DINAMICO Il modello dinamico dei due manipolatori è stato calcolato utilizzando la
formulazione di Lagrange. In particolare, sono state calcolate le matrici
presenti nell’equazione (7.42) grazie alle relazioni (7.32), (7.39) e (7.45). Tali
matrici sono riportate in appendice A.3.
!
La matrice C è stata calcolata adoperando la fattorizzazione dei simboli di
Christoffel del primo tipo. Si noti per lo SCARA la dipendenza dalla
configurazione soltanto di tre termini della matrice di inerzia (ovvero b1,1, b1,2,
b2,1) per cui la maggior parte dei termini della matrice relativa alla forza
centrifuga ed all’effetto di Coriolis sono nulla.
!
Nel caso del manipolatore antropomorfo, come prevedibile, la dipendenza
dalla configurazione delle matrici del modello dinamico è ben più complessa:
mentre nel caso dello SCARA gli assi di rotazione sono tutti paralleli, ciò non
accade con l’antropomorfo e ciò causa un maggiore grado di accoppiamento
tra le dinamiche dei vari link.
!
Sempre con riferimento al robot antropomorfo, per il calcolo del modello
dinamico per le grandezze che caratterizzano la struttura sono stati utilizzati
i valori ottenuti a partire dal relativo modello CAD (momenti di inerzia, masse,
posizione dei baricentri). Le informazioni relative ai motori sono state invece
ricavate dai datasheet degli stessi. Per la stima dell’attrito si è supposto che la
coppia di attrito fosse pari al 10% della coppia erogata, per cui il coefficiente
di attrito è stato calcolato come il 10% del rapporto tra coppia nominale e
velocità nominale.
!
- 12
!
-
I parametri del robot antropomorfo sono riportati in appendice A.5.
!
Modello CAD del robot antropomorfo
!
1.6 PARAMETRIZZAZIONE DEL MODELLO Il modello dinamico del robot SCARA è stato riscritto in funzione di un
apposito vettore di parametri dinamici di dimensioni pari a 14, sfruttando la
proprietà notevole di linearità del modello dinamico di un manipolatore
rispetto a tali parametri (Eq. 7.81).
!
Per ottenere il vettore dei parametri sono state analizzate le quattro equazioni
che esprimono il legame tra la coppia a ciascun giunto, le matrici del modello
dinamico, le variabili di giunto e le loro derivate prima e seconda. È stato così
possibile individuare una serie di termini comuni a molte equazioni, i quali
sono stati utilizzati così come parametri dinamici.
!
In appendice A.4 sono riportati i parametri individuati ed il regressore che
deriva da tale scelta.
- 13
!
-
2 -­‐ PIANIFICAZIONE !
2.1 PIANIFICAZIONE DELLE TRAIETTORIE NELLO SPAZIO OPERATIVO Al fine di simulare il comportamento dei due robot è stata pianificata una
traiettoria nello spazio operativo interna allo spazio di lavoro di ciascun
manipolatore. La traiettoria scelta presenta tre tratti circolari, due
semicircolari e quattro tratti lineari con due punti di via.
!
L’obiettivo finale è stata la simulazione di un’operazione di fresatura del
simbolo “Yin & Yang” [2] su di un piano orizzontale avente quota pari a zero. I
tratti lineari ed i punti di via sono stati utilizzati per realizzare il distacco
dell’utensile dal piano di lavoro per passare tra segmenti di traiettoria non
contigui.
!
Di seguito, la traiettoria nello spazio operativo:
!
!
!
Traiettoria nello spazio operativo: vista 3D
!
- 14
!
-
!
Traiettoria nello spazio operativo: vista dall’alto (piano XY)
2.2 INVERSIONE CINEMATICA La traiettoria nello spazio operativo è stata convertita in una traiettoria nello
spazio dei giunti tramite l’utilizzo di algoritmi di inversione cinematica a ciclo
chiuso.
!
In particolare, sono stati testati gli algoritmi CLIK del primo ordine con inversa
(Fig. 3.11 di [1]) e trasposta (Fig. 3.12) dello Jacobiano, così come quello del
secondo ordine (Fig. 3.14). In particolare, per il robot antropomorfo, dal
momento che lo Jacobiano risulta essere rettangolare alto (6x5) e dunque è
stato necessario adoperare una pseudo-inversa minima a sinistra.
!
- 15
!
-
Di seguito si riportano i risultati in termini di traiettorie e velocità nello spazio
dei giunti e di errore nello spazio operativo per il robot SCARA:
!
!
!
CLIK primo ordine con inversa dello Jacobiano (Kp = [500, 500, 500, 500])
!
!
- 16
!
-
CLIK primo ordine con trasposta dello Jacobiano (Kp = [500, 500, 500, 500])
- 17
!
-
!
- 18
!
-
CLIK secondo ordine con trasposta dello Jacobiano (Kp = [1000, 1000, 1000, 500],
!
Kd =[500, 500, 500, 250])
Per il robot antropomorfo, invece, i risultati ottenuti sono i seguenti:
!
!
- 19
!
-
CLIK primo ordine con inversa dello Jacobiano (Kp = [700 700 700 300 300 300])
CLIK primo ordine con trasposta dello Jacobiano (Kp = [1500 1500 1500 100 100 100])
- 20
!
-
CLIK secondo ordine con trasposta dello Jacobiano (Kp = [700 700 700 200 200 200],
!
Kd = [500 500 500 250 250 250])
- 21
!
-
Analizzando i risultati ottenuti nei tre casi, come prevedibile dalla teoria, è
stato possibile evidenziare una maggiore precisione nell’inseguimento di una
traiettoria variabile nel tempo da parte degli algoritmi basati sull’inversa dello
Jacobiano, a discapito di una maggiore complessità computazionale. La
soluzione basata sulla trasposta, invece, risulta essere più veloce
nell’esecuzione ma adatta esclusivamente alla risoluzione di problemi di
regolazione.
!
Per le ragioni di cui sopra, per l’inizializzazione cinematica dei manipolatori si
è fatto uso di un CLIK del primo ordine con trasposta, mentre per la
generazione delle traiettorie nello spazio dei giunti è stato utilizzato un CLIK
del secondo ordine.
- 22
!
-
3 -­‐ CONTROLLO 3.1 CONTROLLO ROBUSTO La prima tecnica di controllo del moto testata sui due manipolatori è quella
basata sul controllo robusto (Fig. 8.23 di [1]). A tal fine l’azione linearizzante
e disaccoppiante è stata ottenuta sulla base di versioni volutamente
approssimate delle matrici del modello dinamico come previsto
dall’equazione (8.62).
!
Nello specifico, si è scelto di utilizzare una matrice d’inerzia costante e
diagonale, mediando a zero tutti i termini legati alla configurazione in quanto
dipendenti da seni e coseni delle variabili di giunto. La matrice legata a forze
centrifughe e di Coriolis è stata trascurata, mentre sono state lasciate
inalterate le matrici di attrito e gravità.
!
Per il manipolatore SCARA sono stati utilizzati i seguenti guadagni:
Kp = diag([100 100 50 100])
Kd = diag([10 10 5 10])
Q3 = Kd
Q2 = 10Kp
ρ = 10
adottando una soglia ε = 1 per saturare il controllo a versore (Eq. 8.89).
Di seguito, i risultati ottenuti:
Traiettoria desiderata ed effettiva nello spazio operativo
- 23
!
-
Coppie richieste agli attuatori
Errori nello spazio operativo (posizione) e dei giunti (posizione e velocità)
- 24
!
-
!
Si noti l’assenza di chattering nelle azioni di controllo dei vari giunti grazie ad
una scelta sufficientemente ampia della soglia ε. Effettuando diverse
simulazioni per diversi valori di quest’ultima, il fenomeno del chattering si
evidenzia soltanto a partire da valori pari a ε=0.1, come riportato nelle
seguenti figure:
!
Coppie richieste agli attuatori
!
!
!
!
!
!
!
!
!
- 25
!
-
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Errori nello spazio operativo (posizione) e dei giunti (posizione e velocità)
- 26
!
-
Per il manipolatore antropomorfo sono stati utilizzati i seguenti guadagni:
Kp = diag([200 200 200 100 10])
Q2 = 10Kp
Kd = diag([20 20 20 10 5])
Q 3 = Kd
ρ = 10
scegliendo ε =1. I risultati ottenuti sono di seguito riportati:
!
Traiettoria desiderata ed effettiva nello spazio operativo
Coppie richieste agli attuatori
!
!
- 27
!
-
!
Errori nello spazio operativo (posizione) e dei giunti (posizione e velocità)
Dal momento che le coppie massime erogabili dagli attuatori sono note grazie
ai datasheet dei motori è stato possibile tarare i guadagni in maniera tale da
contenerle all’interno dell’intervallo ammissibile.
!
Anche per il manipolatore antropomorfo il fenomeno del chattering è visibile a
partire da ε =0.1.
!
!
Coppie richieste agli attuatori
- 28
!
-
Errori nello spazio operativo (posizione) e dei giunti (posizione e velocità)
!
3.2 CONTROLLO ADATTATIVO La seconda tecnica per il controllo del moto adottata è quella basata sul
controllo adattativo (Fig. 8.26 in [1]). Per realizzare lo schema di controllo è
stato dunque utilizzata la proprietà notevole di linearità del modello dinamico
rispetto ai parametri, utilizzando dunque il regressore proposto in appendice
A.4.
!
Il task assegnato al robot prevede l’esecuzione di una traiettoria con una
massa di circa 4 Kg concentrata in punta. L’utilizzo di tale tecnica di controllo
ha dunque permesso la stima del suddetto carico in maniera automatica,
garantendo così un buon inseguimento della traiettoria richiesta.
!
Nello specifico, per la simulazione del robot tramite la dinamica diretta la
massa ml4 (quattordicesimo parametro dinamico, appendice A.4) è stata posta
pari proprio a 4 Kg, così da simulare il comportamento reale del robot con
l’oggetto afferrato tramite l’end-effector. L’algoritmo di controllo è stato
invece sintetizzato considerando nulla tale massa, la quale è stata così
identificata online in maniera soddisfacente:
!
- 29
!
-
Tale parametro è l’unico sul quale è presente incertezza, per cui l’operazione
di identificazione si è concentrata soltanto su di esso. Ciò è stato possibile
utilizzando nella legge di aggiornamento dei parametri (Eq. 8.104) una matrice
dei guadagni Kπ pari alla matrice identità tranne che per l’elemento in
posizione (14,14), il quale è stato invece posto pari a 0.001. La conseguenza è
stata un adattamento dei parametri dinamici del robot legato quasi
esclusivamente alla massa ml4.
Stima del carico in punta
Per quanto concerne gli altri guadagni richiesti per l’azione di controllo, sono
stati scelti:
!
Kd = diag([2000 2000 5000 2000])
λ = diag([5 5 5 5])
!
Di seguito, la traiettoria eseguita nello spazio operativo, l’errore nello spazio
dei giunti e le coppie richieste agli attuatori:
- 30
!
-
!
Traiettoria nello spazio operativo
Coppie richieste
- 31
!
-
Errore nello spazio operativo (posizione) e nello spazio dei giunti (posizione e velocità)
!
3.3 CONTROLLO DI IMPEDENZA La prima tecnica di controllo dell’interazione adottata è quella legata al
controllo di impedenza. In particolare, il robot si comporterà nei confronti
dell’ambiente come un’impedenza meccanica pura (ovvero lineare e
disaccoppiata) avente massa equivalente pari a Md, smorzamento pari a Kd e
rigidezza pari a Kp, come previsto dall’eq. (9.36).
!
Il controllo è stato effettuato tramite una feedback linearization con
compensazione della forza in punta basata sull’eq. (9.30), con azione
stabilizzante basata sull’eq. (9.31). In quest’ultima è stato utilizzato il vettore
delle forze agenti in punta he in luogo del vettore hA in quanto lo Jacobiano
geometrico coincide con quello analitico.
!
- 32
!
-
Nello specifico, i valori scelti per queste tre grandezze sono i seguenti:
!
Md = diag([1 1 1 1])
Kd = diag([70 70 70 70])
Kp =diag([40 40 40 40])
!
Per testare il controllo è stata generata una nuova traiettoria che, partendo da
una quota z=0.5, prevede prima un tratto di discesa verticale lineare, quindi
viene richiesto di compiere una traiettoria circolare nel piano XY. Lungo il
tratto di discesa viene simulata la presenza alla quota z=0.1 di un piano
avente rigidezza pari a 3*10^3 N/m nella sola direzione verticale.
!
I risultati ottenuti sono riportati di seguito:
Traiettoria nello spazio operativo
!
!
!
!
!
!
!
!
- 33
!
-
!
Errore nello spazio operativo
Coppie richieste
!
Si noti come il controllo di impedenza sia un controllo indiretto della forza:
quest’ultima dipende dalla superficie con la quale avviene l’interazione
secondo la relazione (9.38) con la quale per l’appunto è stato modellato
l’ambiente nella simulazione. La forza raggiunge all’impatto un picco massimo
di -17 N per poi raggiungere un valore di -4 N.
- 34
!
-
!
Forza al contatto lungo la direzione verticale
!
3.4 CONTROLLO DI FORZA CON ANELLO INTERNO DI POSIZIONE Nel presente e nei successivi due paragrafi si intende illustrare le metodologie
utilizzate per realizzare un controllo diretto della forza. In particolare, sono
state analizzate tecniche basate sull’utilizzo di un anello interno di posizione,
di un anello interno di velocità ed un controllo parallelo forza/moto.
!
In tutti i casi è stato adoperato anche un anello esterno di forza, così da poter
regolare il valore della stessa sulla base di un riferimento pari a 40 N.
!
Nel caso del controllo con anello interno di posizione (Fig. 9.6), sono stati
utilizzati i seguenti valori:
!
Md = diag([1 1 1 1])
Kd = diag([20 20 100 200])
Kf = diag([0 0 2 0])
Kp =diag([20 20 0.1 20])
Ki = diag([0 0 4 0])
!
!
!
!
- 35
!
-
I risultati ottenuti sono riportati di seguito:
Forza al contatto lungo la direzione verticale
Errore nello spazio operativo lungo l’asse z
!
- 36
!
-
Coppie richieste
!
3.5 CONTROLLO DI FORZA CON ANELLO INTERNO DI VELOCITÀ Per ottenere uno schema di controllo diretto della forza con loop interno di
velocità è sufficiente modificare lo schema in Fig. 9.6 aprendo l’anello di
retroazione della posizione. In tal caso, l’output del controllore di forza
diventa un riferimento di velocità.
!
Per la simulazione sono stati utilizzati i seguenti valori:
!
Md = diag([1 1 1 1])
Kd = diag([20 20 100 200])
Kf = diag([0 0 2 0])
Kp =diag([20 20 0.1 20])
Ki = diag([0 0 4 0])
!
I risultati sono visibili di seguito:
!
- 37
!
-
!
Forza al contatto lungo la direzione verticale
!
Coppie richieste
Come prevedibile, in simulazione il comportamento del manipolatore risulta
essere particolarmente soddisfacente. Tuttavia, un’applicazione di una simile
legge di controllo in un contesto reale porterebbe a risultati lontani da quelli
ottenuti a causa dell’assenza di un’azione integrale nel controllore di forza:
ciò implica l’impossibilità di reiettare disturbi legati a dinamiche non
modellate sulla forza.
!
- 38
!
-
3.6 CONTROLLO PARALLELO FORZA/MOTO La terza ed ultima soluzione adottata per il controllo della forza è quella
basata su di una tecnica che prevede il controllo in parallelo della forza e del
moto. In particolare, lungo le direzioni di moto non vincolato viene controllata
posizione, mentre in quelle vincolate la forza.
!
In questo caso sono state adottate due soluzioni progettuali differenti: in una
il robot presenta una rigidezza costante lungo l’asse Z, nell’altra invece
modifica automaticamente la rigidezza in tale direzione una volta rilevato il
contatto con il piano, così da poter ottenere un comportamento cedevole nei
confronti dell’ambiente.
!
Nel caso di controllo senza modifica del comportamento, sono stati utilizzati i
seguenti valori:
Md = diag([1 1 1 1])
Kp =diag([5000 5000 0.1 5000])
Kd = diag([20 20 50 20])
Kf = diag([0 0 2 0])
Ki = diag([0 0 4 0])
!
Ottenendo i seguenti risultati:
!
Traiettoria nello spazio operativo
!
- 39
!
-
Forza lungo l’asse z
Errore di posizione nello spazio operativo
Coppie richieste
- 40
!
-
!
Nel secondo caso sono stati utilizzati i seguenti valori nel caso in cui non
venga rilevato il contatto:
!
Kd = diag([200 200 200 200])
Kp =diag([50000 10000 5000 10000])
!
Al contatto, il robot modifica tali parametri nei seguenti:
!
Kd = diag([50 50 150 50])
Kp =diag([5000 5000 0.1 5000])
!
I risultati ottenuti sono i seguenti:
!
!
!
!
!
!
!
!
!
Traiettoria nello spazio operativo
- 41
!
-
Forza lungo l’asse z
!
!
Errore di posizione nello spazio operativo
!
- 42
!
-
Coppie richieste
- 43
!
-
APPENDICE !
A.1 TABELLE D-­‐H E MATRICI DI TRASFORMAZIONE • Tabella di D-H del robot SCARA:
Braccio
ai
αi
di
θi
1
0,5
0
1
θ1
2
0,5
0
0
θ2
3
0
0
d3
0
4
0
0
0
θ4
!
• Matrice di trasformazione del robot SCARA:
T0e (q) = [ - s124
c124
0
a2c12 + a1c1
c124
s124
0
a2s12 + a1s1
0
0
-1
d0 + d3
0
0
0
-1
]
!
• Matrice di D-H del robot antropomorfo:
Braccio
ai
αi
di
θi
1
0
π/2
0,229
θ1
2
0,284
0
0
θ2
3
0,265
0
0
θ3
4
0
-π/2
0
θ4
5
0
0
0,12
θ5
!
• Matrice di trasformazione del robot antropomorfo:
La matrice di trasformazione è riportata nel M-file allegato al
documento.
!
!
!
- 44
!
-
A.2 JACOBIANO A.2.1 Robot SCARA
J(q) =
[ - a2s12 - a1s1
- a1s12
0
0
a2c12 + a1c1
a2c12
0
0
0
0
1
0
1
1
0
1]
!
A.2.2 Robot antropomorfo
Lo Jacobiano è riportato nel M-File allegato al documento.
!
!
A.3 MATRICI DEL MODELLO DINAMICO A.3.1 Robot SCARA
• Matrice di inerzia:
b1,1 = Il1 + Il2 + Il3 + Il4 + Im1 Kr12 + Im2 + Im3 + Im4 + a12 ml1 +
+ (a12 +a22)(ml2 + ml3 + ml4) + (l1 - 2a1)ml1l1 + (l2 - 2a2)ml2l2 +
+ 2a1c2[a2(ml2 + ml3 + ml4) - ml2 l2]
!
b2,2 = Il2 + Il3 + Il4 + Im2 Kr22 + Im3 + Im4 + a22(ml2 + ml3 + ml4) +
+ (l2 - 2a2)ml2l2
!
b3,3 = Im3 Kr32 + ml3 + ml4
!
b4,4 = Il4 + Im4 Kr42
!
b1,2 = b2,1 = Il2 + Il3 + Il4 + Im2 Kr2 + Im3 + Im4 +
+ a22(ml2 + ml3 + ml4) + (l2 - 2a2)ml2l2 +
+ a1c2[a2(ml2 + ml3 + ml4) - ml2l2]
!
b1,3 = b2,3 = b3,1 = b3,2 = Im3 Kr3
!
- 45
!
-
b1,4 = b2,4 = b4,1 = b4,2 = Il4 + Im4 Kr4
!
b3,4 = b4,3 = 0
!
•Matrice di forza centrifuga e Coriolis:
c1,1 = [ -a1a2(ml2 + ml3 + ml4) - a1ml2l2 ] s2 dot_q2
c1,2 = [ -a1a2(ml2 + ml3 + ml4) - a1ml2l2 ]s2 (dot_q1 + dot_q2)
c2,1 = [ a1a2(ml2 + ml3 - ml4) - a1ml2l2 ] s2 dot_q1
c1,3 = c1,4 = c2,2 = c2,3 = c2,4 = c3,1 = c3,2 = c3,3 = c3,4 = c4,1 = c4,2 = c4,3 = c4,4 = 0
!
•Matrice degli attriti:
Fv = diag([Fm1 Kr12
Fm2 Kr22
Fm3Kr32
Fm4 Kr42])
!
•Matrice di gravità:
g = [0 0 g(ml3 + ml4) 0]
!
A.3.2 Robot antropomorfo
Siccome il modello dinamico del manipolatore antropomorfo risulta essere
particolarmente complicato, si allega in un M-file l’espressione simbolica delle
quattro matrici.
!
!
A.4 REGRESSORE E PARAMETRI DINAMICI • Parametri dinamici:
!
π1 = Il1 + Im1 Kr12 + (l1 - 2a1)ml1l1
π8 =ml2l2
π2 = Il2 + Il3
π9 = Fm1
π3 = Il4
π10 = Fm2
π4 = Im2
π11 = Fm3
π5 = Im3
π12 = Fm4
π6 = Im4
π13 = ml3
π7 = ml2 + ml3 + ml4
π14 = ml4
- 46
!
-
• Regressore:
y1,1 = dot_dot_qr1
y1,2 = dot_dot_qr1 + dot_dot_qr2
y1,3 = dot_dot_qr1 + dot_dot_qr2 + dot_dot_qr4
y1,4 = dot_dot_qr1 + Kr2 dot_dot_qr2
y1,5 = dot_dot_qr1 + dot_dot_qr2 + Kr3 dot_dot_qr3
y1,6 = dot_dot_qr1 + dot_dot_qr2 + Kr4 dot_dot_qr4
y1,7 = dot_dot_qr1 [(a12+a22) + 2a1c2a2] + dot_dot_qr2 (a22 + a1c2a2) - a1a2 [dot_qr1 s2 dot_q2 + dot_qr2 s2 (dot_q1 + dot_q2)]
y1,8 = dot_dot_qr1 [(L2-2a2) - 2a1c2] + dot_dot_qr2 [(L2-2a2) - a1c2] +
+ a1 [dot_qr1 s2 dot_q2 + dot_qr2 s2 (dot_q1 + dot_q2)]
y1,9 = Kr12 dot_qr1
y1,10 = y1,11 = y1,12 = y1,13 = y1,14 = 0
!
!
!
y2,1 = y2,9 = y2,11 = y2,12 = y2,13 = y2,14 = 0
y2,2 = dot_dot_qr1 + dot_dot_qr2
y2,3 = dot_dot_qr1 + dot_dot_qr2 + dot_dot_qr4
y2,4 = Kr2 dot_dot_qr1 + Kr22 dot_dot_qr2
y2,5 = dot_dot_qr1 + dot_dot_qr2 + Kr3 dot_dot_qr3
y2,6 = dot_dot_qr1 + dot_dot_qr2 + Kr4 dot_dot_qr4
y2,7 = dot_dot_qr1(a22 + a1c2a2) + dot_dot_qr2 a22 + dot_qr1 a1 a2 s2 dot_q1
y2,8 = dot_dot_qr1 [(L2-2a2)-a1c2] + dot_dot_qr2 (L2-2a2) - dot_qr1 a1s2 dot_q1
y2,10 = Kr22 dot_qr2
!
!
!
!
!
!
!
- 47
!
-
y3,1 = y3,2 = y3,3 = y3,4 = y3,6 = y3,7 = y3,8 = y3,9 = y3,10 = y3,12 = 0
y3,5 = Kr3 dot_doq_qr1 + Kr3 dot_dot_qr2 + Kr32 dot_dot_qr3
y3,11 = Kr32 dot_qr3
y3,13 = dot_dot_qr3 + g
y3,14 = dot_dot_qr3 + g
!
y4,1 = y4,2 = y4,4 = y4,5 = y4,7 = y4,8 = y4,9 = y4,10 = y4,11 = y4,13 = y4,14 = 0
y4,3 = dot_dot_qr1 + dot_dot_qr2 + dot_dot_qr4
y4,6 = Kr4 (dot_dot_qr1 + dot_dot_qr2 + Kr4dot_dot_qr4)
y4,12 = Kr42 dot_qr4
!
A.5 PARAMETRI DEL ROBOT ANTROPOMORFO I parametri del robot antropomorfo sono riportati nel M-File allegato al
documento.
!
- 48
!
-
BIBLIOGRAFIA [1] Robotics: Modelling, Planning and Control - B. Siciliano, L. Sciavicco, L.
Villani, G. Oriolo - Springer (2008)
[2] http://it.wikipedia.org/wiki/Yin_e_yang
- 49
!
-