17
1 Controllo di Manipolatori Controllo di Manipolatori (Calcolo delle Traiettorie 2) (Calcolo delle Traiettorie 2) Ph.D Ph.D Ing. Ing. Folgheraiter Michele Folgheraiter Michele Corso di Robotica Corso di Robotica Prof. Prof. Gini Gini Anno Anno Acc Acc . 2006/2007 . 2006/2007 2) Il sistema con tecniche euristiche calcola in automatico le velocità nei punti di via (magari facendo in modo che le accelerazioni siano continue) Scelta della velocità nei punti di via con metodo Euristico:

Controllo di Manipolatori (Calcolo delle Traiettorie 2) · robot. - Il calcolo della traiettoria ... Traiettorie nello Spazio Cartesiano Problemi: - Difficoltà nel calcolare la cinematica

Embed Size (px)

Citation preview

1

Controllo di ManipolatoriControllo di Manipolatori(Calcolo delle Traiettorie 2)(Calcolo delle Traiettorie 2)

Ph.DPh.D Ing.Ing. Folgheraiter MicheleFolgheraiter Michele

Corso di Robotica Corso di Robotica Prof.Prof. GiniGini

Anno Anno AccAcc. 2006/2007. 2006/2007

2) Il sistema con tecniche euristiche calcola in automatico le velocità nei punti di via (magari facendo in modo che le accelerazioni siano continue)

Scelta della velocità nei punti di via con metodo Euristico:

2

Connettere due cubiche in un punto di via

(eguagliando velocità e accelerazione nel punto di via)

Consideriamo 3 punti: fv ϑϑϑ →→0

θ1(t) = a10 + a11 t+ a12 t2 + a13 t3 Traiettoria da θ0 a θvθ2(t) = a20 + a21 t + a22 t2 + a23 t3 Traiettoria da θv a θf

Con t che va da zero a tf1 per la prima cubica, e da zero a tf2 per la seconda. Deve valere quindi:

θ0= a10θv= a10 + a11t f1 + a12t2

f1 + a13t3f1

θv= a20θf= a20 + a21t f2 + a22t2

f2 + a23t3f2

0= a11 0= a21 + 2 a22t f2 +3 a23t2

f2

a21= a11 + 2 a12t f1+3 a13t2f1

2 a22=2 a12+6 a13t f1

Angolo pari a θ0 per t=0 per la prima cubicaAngolo pari a θv per t=tf1 per la prima cubicaAngolo pari a θv per t=0 per la seconda cubicaAngolo pari a θf per t=tf2Velocità nulla per t=0Velocità nulla per t=tf2

Velocità uguale nel punto di via (prima cubica t=tf1 seconda t=0)Accelerazione uguale nel punto di via (prima cubica t=t f1 seconda t=0)

Esempio) Connessione tra 4 cubiche:

3

Se si vogliono imporre anche dei vincoli sulle accelerazioni occorrono polinomi del 5° ordine.

- Si ottengono delle traiettorie più dolci, che sollecitano meno la struttura meccanica del robot.

- Il calcolo della traiettoria risulta essere piùcomplesso.

Utilizzo di funzioni Lineari con raccordi Parabolici

(Spazio dei Giunti)

- Questo metodo è stato sviluppato alla Standford University:

- Utilizza dei segmenti di retta per interpolare i punti.

- Questo tuttavia implica accelerazione infinita durante la fase iniziale e finale del moto.

Si utilizzano de raccordi parabolici durante la fase iniziale finale

6 DOF(1969)

θ

start

goal

t

4

-Si hanno quindi tre tratti: uno lineare e due parabolici

- Si possono avere differenti soluzioni ( a seconda di come scegliamo le accelerazioni iniziali e finali).

θ

Start t

goal

Raccordo 1

Raccordo 2

Tratto lineare

Moto

t

θ(t)

Velocità

t

θ’(t)

Accelerazione

t

θ’’(t)

0

0

0

t

θ(t)

t

θ’(t)

t

θ’’(t)

0

0

0

Accelerazione elevata Accelerazione moderata

5

- Il metodo è buono dal punto di vista computazionale (usa al massimo polinomi di 2° grado)

- La gestione dei punti di via è complessa (i tratti parabolici sono difficili da raccordare)

- E possibile forzare il passaggio per i punti di via mettendo dei punti di via fittizi.

start

goal

I punti di via nonvengono raggiunti.

nullo è linerare trattoil allora )(4

se )(4

20

20

ttff θθ

θθθ

θ−

=−

≥ &&&&

Traiettorie nello Spazio Cartesiano

Problemi:

- Difficoltà nel calcolare la cinematica inversa in Real-time

- Alcuni punti della traiettoria possono trovarsi fuori dallo spazio di lavoro

- Possibile passaggio della traiettoria per punti singolari a velocità infinite.

Possibile soluzione

- Vogliamo una traiettoria rettilinea nello spazio cartesiano

- Possiamo generare delle traiettorie nello spazio dei giunti che interpolino la traiettoria lineare scelta nello spazio cartesiano.

Ma quanti punti di via imponiamo?

6

Algoritmo di Bounded Deviation Path

1. Calcola (cinematica inversa) la configurazione dei giunti nei punti di start e di goal; calcola quindi la traiettoria nello spazio dei giunti fra start e goal;2. Calcola il punto di mezzo nello spazio dei giunti, e applicando la cinematica diretta trova la posizione cartesiana corrispondente;3. Se l’errore nel cammino geometrico è maggiore di quello permesso allora

a. metti un punto di via (knot) a metà del cammino cartesiano fra start e goal;b. dividi il cammino in due parti, da start a knot, da knot a goal;c. richiama ricorsivamente l’algoritmo sulle due metà del cammino;a.altrimenti termina;

4. Ritorna la sequenza dei knot points (punti di vincolo).

Oss:

-Questo metodo, nello spazio cartesiano genera una traiettoria che ondeggia attorno alla traiettoria rettilinea che volevamo approssimare.

7

CinematicaInversa

J-1

controllore

θ forze / momentiX, X

robot(sensori interni)

θ CinematicaDiretta

X

J X

.

.

.

θ

+ attuazioneθ . J = Jacobiano

J–1

= Jacobiano inverso

notare che il controllo èeseguito sulle variabilicartesiane su cui ècalcolato l’errore

errore

Controllore Cinematico Cartesiano

Oss:

Se si movimentano degli oggetti diventa importante anche la dinamica (considerare accelerazioni)

Controllori per Robot Industriali

Il sistema di controllo di un robot è un dispositivo composto in genere da un sistema multi-processore, collegato in rete con altre risorse locali di controllo, monitoraggio e immagazzinamento dati.

Funzioni di base:

• Interazione con l'operatore• Immagazzinamento di dati• Calcolo delle traiettorie• Controllo in tempo reale del moto dei giunti• Monitoraggio sensori• Interazione con altri macchinari• Interazione con altre risorse computazionali

8

Controllo del moto dei giuntiIl controllore ha il compito di mantenere la risposta dinamica (velocità

esecuzione movimento) del manipolatore entro certi limiti, fissati da criteri di prestazione stabiliti a priori.

La soluzione a questo problema è complicata da:

• Forze inerziali

• Accoppiamento tra i vari giunti

• Forza di gravità

• Carico Variabile

Il problema della sintesi del sistema di controllo si risolve:

1) trovando il modello dinamico del manipolatore

2) usando il modello per sintetizzare la legge di controllo in conformità con le specifiche sulle prestazioni.

9

Solitamente nei sistemi industriali, il sistema di controllo tratta ogni giunto del braccio come un semplice servomeccanismoindipendente dagli altri.Questo approccio non è quello ottimale in quanto si trascura il moto e la configurazione istantanea dell’intero braccio.

•Basse velocità nei movimenti

•Riduzione dello smorzamento dei servomeccanismi (oscillazioni)

•Tempi di attuazione più lunghi in presenza di carichi variabili

Controllo dei giunti

Per il controllo ad anello chiuso:

- Ogni giunto è controllato indipendentemente

- Il controllore del giunto è un PID

C a lc o lo d e l letra ie t to r ie

θ

fo rz e /m o m e n tiX , X

ro b o t(se n so r i in te rn i )

.

θ

θ

.

..

. . .

C o n tro l lo red e l g iu n to 1

C o n tro l lo red e l g iu n to 2

C o n tro l lo red e l g iu n to n

θ

θ

θ

.

..

C ’è un con tro llo reper ogn i g iun to levariab ili θ ind ica tesono dei ve tto ri

Cin. inv.

J-1

10

Controllore del Braccio PUMA

Per il braccio della serie PUMA 560, il regolatore consiste in un calcolatore DEL e sei micro-controllori Rockwell ciascuno equipaggiato di encoder, convertitore DAC e amplificatore di corrente.

6 GDL

Attraverso il terminale l’operatore può impartire comandi al braccio attraverso il linguaggio VAL.Una volta che il comando VAL è stato decodificato la CPU interna esegue delle routine memorizzate nella Eprom.

11

Compito delle routine interne è quello di:

• Eseguire le trasformazioni di coordinate, per esempio dato un punto dell’ambiente esterno vengono ricavate le coordinate dei giunti o viceversa

• Pianificazione delle traiettorie interpolate dei giunti (ogni giunto aggiornato ogni 28ms)

• Accertamento che il comando è stato eseguito su ogni singolo giunto.

Ogni servomeccanismo è controllato attraverso un regolatore PID:• I guadagni dei PID sono costanti, questo risulta essere un

problema specialmente in condizioni di carico variabile, infattiil robot Puma a velocità ridotte risulta essere soggetto a forti vibrazioni.

Funzione di trasferimento del singolo GIUNTO

Solitamente nei manipolatori azionati elettricamente, ogni giunto èmosso da un motore a corrente continua a magneti permanenti.

Questo tipo di attuazione offre grossi rapporti momento/potenza e uniformità di funzionamento a basse velocità.

Lo schema elettromeccanico di un singolo giunto può essere rappresentato come figura:

ingranaggi denti Numero:,carico di alberoall' riferito car. inerzia di Momento:

motore alberoall' riferito mot. inerzia di Momento: viscosoattrito Coeff.:,

caricomotore, angolare Posizione:,

motore dal erogata Coppia :tromotricecontroelet Forza:e

armaturad' Grandezze:,,,

b

LM

L

M

LM

LM

aaaa

NNJJ

ff

iRLV

ϑϑ

τ

12

Derivando rispetto il tempo:

La distanza lineare percorsa dagli ingranaggi è la stessa, e i raggi degli ingranaggi sono proporzionali al numero di denti:

Considerando la coppia dissipata sul carico e quella dissipata all’interno del motore possiamo dire che la coppia generata dal motore è:

Dove:

Per il principio di conservazione del lavoro: il lavoro eseguito dal carico riferito all’albero di carico deve essere uguale al lavoro fatto dal carico riferito all’albero motore (*):

13

Sostituendo in

si ottiene:

Quindi

Dove sono momento di inerzia e coefficiente di attrito viscoso effettivi (motore + carico) riferiti all’albero motore.

Sappiamo (elettrotecnica) che la coppia sviluppata dal motore e proporzionale alla corrente di armatura:

La parte elettrica del motore sarà descritta da:

Dove la forza contro-elettromotrice è proporzionale alla velocitàangolare del motore:

Trasformando secondo Laplace e risolvendo rispetto la corrente:

14

Trasformando secondo Laplace anche l’eq. di coppia effettiva:

La coppia generata dal motore (secondo le eq. della parte elettrica) trasformata:

Ma, queste due coppie devono coincidere, quindi:

La costante di tempo della parte elettrica del motore può esseretrascurata rispetto la costante di tempo meccanica, quindi possiamo trascurare l’induttanza La:

dove

15

Utilizzando il rapporto di riduzione dell’ingranaggio possiamo ottenere la funzione di trasferimento del manipolatore a singolo giunto che mette in relazione la tensione applicata al motore con lo spostamento angolare del giunto:

Regolatore di posizione per singolo GIUNTO

Lo scopo del regolatore è fare in modo che lo spostamento del giunto insegua uno spostamento desiderato. La tecnica di regolazione èbasata sull’errore di posizione angolare del giunto.

Si applica al motore una tensione direttamente proporzionale all’errore di posizione.

Dove Kp è il guadagno di reazione all’errore di posizione.

La funzione di trasferimento ad anello aperto del manipolatore a singolo giunto è rappresentata in figura:

)()( effeffm fsJst += ϑτ

Retroazione Intrinseca

16

Trasformando secondo Laplace la legge di controllo:

E sostituendo nella FDT del manipolatore a singolo giunto, si ottiene la FDT ad anello aperto che mette in relazioni lo spostamento con l’errore di posizione del giunto:

Adesso possiamo chiudere l’anello di controllo ottenendo lo schema:

E(s)

17

Come si può notare dalle equazione il sistema ad anello chiuso è del secondo ordine, ed è quindi stabile se tutti i suoi parametri sono positivi.

1. Per ridurre il tempo di risposta, e ridurre l’errore a regime èpossibile aumentare il guadagno proporzionale Kp

2. E possibile introdurre degli smorzamenti artificiali nel sistemaaggiungendo nel controllore anche una derivata dell’errore di posizione (PD).

La velocità desiderata si può ottenere dalle equazioni che descrivono le traiettorie nello spazio dei giunti (es quelle cubiche).

Ora nella FDT del sistema ad anello chiuso è presente anche uno zero. Al variare di questo zero (-Kv/Kp) varia l’overshoot e il tempo di assestamento del sistema.