ROBOTS A CINEMATICA RIDONDANTE: NUOVI SVILUPPI CONSENTITI DAGLI AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI CONTROLLO GENETICI

Pagina creata da Jacopo Guglielmi
 
CONTINUA A LEGGERE
ROBOTS A CINEMATICA RIDONDANTE: NUOVI SVILUPPI CONSENTITI DAGLI AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI CONTROLLO GENETICI
ROBOTS A CINEMATICA RIDONDANTE:
    NUOVI SVILUPPI CONSENTITI DAGLI
AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI
         CONTROLLO GENETICI
        R. Faglia (*), M. Filippini (**), A. Zapponi (***)

     (*)Dip. Ing. Meccanica – Univ. degli Studi di Brescia
                  Via Branze 38 – Brescia Italy
         tel +39 030 3715401 fax +39 030 3702448
                   e-mail: rfaglia@ing.unibs.it

                (**) Tube Tech Machinery Srl
         Via Bonfadina 33 – Cazzago SM (BS) Italy
         tel +39 030 7256311 fax +39 030 7256333
            e-mail: info@tubetechmachinery.com

                      (***) Alpha Progetti
               Via Golgi 5/7 - Gussago (BS) Italy
          tel +39 030 3731165 fax +39 030 310933
                e-mail: info@alphaprogetti.com

PREMESSA
L'analisi delle problematiche connesse a un particolare
processo produttivo e la volontà commerciale di risolverle, ha
portato a una efficace collaborazione tra imprese ed enti di
ricerca, che ha permesso lo sviluppo di un macchinario così
innovativo da essere premiato alla recente Esposizione
Mondiale delle Macchine Utensili (EMO 2003).
In questo lavoro, partendo dal contesto in cui è sorta la
problematica, si descrivono i passi compiuti per arrivare al
successo tecnologico (e commerciale) del macchinario.
ROBOTS A CINEMATICA RIDONDANTE: NUOVI SVILUPPI CONSENTITI DAGLI AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI CONTROLLO GENETICI
IL CONTESTO TECNOLOGICO
Vi sono impianti di produzione di tubi saldati che, a partire da
lamiera in acciaio al carbonio o in acciaio inossidabile
producono tubi e tubolari di sezione tonda, quadrata e
rettangolare.
Tale processo consiste nel sottoporre la lamiera di partenza in
rotoli (coils) all'azione di costrizione esercitata da una serie di
gabbie a due cilindri coniugati, rotanti in senso inverso con la
medesima velocità periferica, che forzano il materiale ad
assumere una sezione corrispondente alla luce che rimane tra
i cilindri stessi. In particolare, nella laminazione del tubo, una
serie di rulli forzano una lamiera piana ad assumere la forma
cilindrica e quando il cilindro, aperto lungo una generatrice, è
formato si salda proprio lungo la generatrice realizzando il
tubo.
Il processo di produzione è in continuo e si compone
essenzialmente delle fasi di formatura, saldatura continua e
calibratura della sezione ottenuta. Come ultima fase deve
essere eseguito il taglio a misura del tubo formato:
generalmente si ottengono spezzoni di lunghezza compresa
tra i 6 e i 12 metri. Attualmente l’operazione di taglio viene
effettuata mediante asportazione di truciolo (segatrici a disco)
con gli inevitabili inconvenienti ad essa connessi: rumore,
usura degli utensili, formazione di bave e trucioli, impiego di
acqua emulsionata come lubro-refrigerante. Un’esigenza delle
ROBOTS A CINEMATICA RIDONDANTE: NUOVI SVILUPPI CONSENTITI DAGLI AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI CONTROLLO GENETICI
società produttrici di tubi saldati è quella di eliminare gli
inconvenienti indicati specialmente quando si tratti di tubi in
acciaio inossidabile oppure quando la destinazione dei loro
prodotti sia il settore alimentare o quello dell’arredamento.

L'ANALISI
La Tube Tech Machinery, azienda produttrice di macchine
utensili attiva nel settore siderurgico, con acuto spirito
imprenditoriale ha percepito che la risoluzione di questa
problematica avrebbe potuto rappresentare un'ottima
opportunità commerciale.
Di conseguenza decise di investire nell'analisi del problema e
già dalle prime fasi si capì che ci si doveva concentrare sul
taglio dell’acciao inossidabile, più difficile da tagliare con
sistemi tradizionali rispetto all’acciaio al carbonio, e si sarebbe
dovuto scartare una qualche evoluzione della tecnologia
tradizionale che non avrebbe in ogni caso portato
all’eliminazione di bave, rumore e sporcizia.
Poiché l'operazione più delicata della laminazione dei tubi è la
saldatura, ci si impose di renderla l'operazione vincolo, e
quindi di raggiungere delle velocità di taglio tubo al minimo
pari alla velocità di saldatura.
La tecnologia al momento disponibile che univa questi requisiti
è quella Laser e dunque si è deciso di utilizzarla; nel
dettagliare ulteriormente le specifiche di quella che sarebbe
ROBOTS A CINEMATICA RIDONDANTE: NUOVI SVILUPPI CONSENTITI DAGLI AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI CONTROLLO GENETICI
diventata una spezzonatrice laser da collocare in linea a valle
del processo di formatura tubi, emersero di conseguenza altre
esigenze che andiamo a elencare:
• in primo luogo doveva avere una conformazione tale da
    permettere il “taglio al volo” di tubi;
• la sezione dei tubi non sarebbe dovuta essere solo
    circolare ma anche quadrata e rettangolare;
• infine, poiché la macchina avrebbe dovuto sostituire le
    segatrici esistenti, doveva avere delle dimensioni simili a
    queste.

Tutte queste specifiche hanno guidato un lungo lavoro di
studio che si è poi concretizzato in una serie di progetti che ha
portato alla realizzazione della macchina.

LA FASE DI PROGETTO
Il punto di partenza per la progettazione è stato, come si è
detto, l'utilizzo della tecnologia Laser. Laser è l'acronimo di
“Light Amplification by Stimulated Emission of Radiation” ossia
amplificazione della luce tramite emissione stimolata di
radiazione. In pratica si adotta un dispositivo che “amplifica” la
luce con potenza di emissione di diverse migliaia di watt, in
grado di tagliare la lamiera. L'amplificazione avviene in un
generatore che emette un fascio di luce che deve essere
portato in posizione attraverso una serie di specchi collocati
ROBOTS A CINEMATICA RIDONDANTE: NUOVI SVILUPPI CONSENTITI DAGLI AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI CONTROLLO GENETICI
all’interno di strutture protette e focalizzato correttamente sul
materiale, affinchè esplichi la funzione di taglio.
Fino a quel momento le macchine per il taglio di tubo
mediante tecnologia laser presupponevano la possibilità del
tubo di compiere rotazioni attorno al proprio asse.
Nel caso della spezzonatrice laser il tubo non può girare
attorno al proprio asse e quindi il problema principale era
quello di condurre il fascio tutt'intorno al lungo cilindro
metallico proveniente dalla fase di saldatura.
Le ipotesi iniziali di macchinario simile all'apparecchiatura
medica per T.A.C. o di due bracci meccanici contrapposti e
rotanti furono rapidamente abbandonate; la soluzione adottata
ha voluto in qualche modo imitare il movimento antropomorfo
dell'avamabraccio, del polso e della mano, fatta a uncino, nella
rotazione intorno a un ostacolo.

Le condizioni da rispettare sono:
• ortogonalità del raggio laser alla superficie da tagliare;
• velocità di taglio costante anche nelle zone di discontinuità
Questa soluzione ha comportato l'adozione di una
configurazione cinematica costituita da cinque assi in serie, di
cui tre lineari e due rotativi, la cui disposizione è visibile in
figura, più un sesto asse di compensazione.
Nel dettaglio, vi sono quattro assi interpolati per la
ROBOTS A CINEMATICA RIDONDANTE: NUOVI SVILUPPI CONSENTITI DAGLI AZIONAMENTI DIRETTI E DAGLI ALGORITMI DI CONTROLLO GENETICI
realizzazione della traiettoria (Y, Z, A, B) più due assi (quello
di compensazione C - non rappresentato in figura - e quello di
“inseguimento” della linea X) indipendenti. L’asse T è un
movimento di registrazione delle lunette e sarà trascurato
nella presente trattazione.

La realizzazione di questa particolare cinematica e della
dinamica a questa connessa ha portato alla luce due
importanti requisiti tecnici:
•   l'adozione di movimentazioni a elevata dinamica a causa
    delle accelerazioni necessarie per mantenere costante la
    velocità di taglio con la testina di focalizzazione sempre
    ortogonale al profilo del tubo. Le accelerazioni sono
    estremamente elevate, non tanto nell'esecuzione dei profili
    circolari quanto nella realizzazione degli “spigoli” dei profili
    quadri e rettangoli;
•   l’esigenza di girare con la testina di focalizzazione attorno
    al tubo connessa alla necessità di evitare collisioni del
    braccio porta testa col tubo stesso ha dato origine ad un
    cinematismo       non    convenzionale      ridondante.    La
    ridondanza è causata dalla componente orizzontale
    dell'asse inclinato che si sovrappone al movimento lineare
    dell’asse coniugato.

LA SCELTA DEGLI AZIONAMENTI
Le specifiche tecniche risultanti dalla prima fase di progetto
hanno evidenziato la necessità di ottenere movimentazioni
estremamente veloci e con accelerazioni superiori a quelle
che di norma vengono realizzate con i tradizionali sistemi
motore rotante-vite. In particolare i cicli teorici imponevano
velocità dell’ordine dei 2 m/s e accelerazioni superiori ai
       2
12m/s , grandezze superiori a quelle che di norma si riescono
a realizzare con catene cinematiche tradizionali.
Da un punto di vista cinematico la configurazione tradizionale
di un’azionamento lineare è composto da motori brushless
rotativi collegati, direttamente o infrapponendo un riduttore, a
viti senza fine che traducono il movimento da rotativo a
lineare.
E’ utile ricordare che le viti, normalmente a ricircolo di sfere,
hanno un limite di funzionamento governato dal rapporto tra
diametro della vite e velocità di rotazione alla quale è
sottoposta. Tale vincolo si traduce in un limite di velocità pari a
circa 60m/min (1 m/s); a questo si aggiunge la norma di buona
progettazione relativa a considerare critica un'accelerazione
                     2
superiore ai 10m/s per un motore brushless rotativo.
Per questo si è dovuto procedere con l'adozione di
motorizzazioni dirette, sia sugli assi lineari (sfruttate nella
pratica fino a velocità di 2,3 m/s e accelerazioni di 2g (20
     2
m/s )) sia per le rotazioni dell' “avambraccio” e del “polso”,
realizzate con due motori di tipo torque.

Nel motore torque la parte primaria (statore) è costituita da
un’avvolgimento trifase sviluppato in senso anulare e da una
parte secondaria (rotore) a magneti permanenti solidali al
componente da azionare. Si tratta in sostanza di un motore
Brushless ad elevato numero di poli (alcune decine) che può
sviluppare velocità massime dell’ordine di qualche centinaio di
giri/min. All’interno della gamma proposta da Siemens la
coppia sviluppata può raggiungere il considerevole valore di
4.100 Nm.
Con questo tipo di azionamento gli elementi di trasmissione
meccanici quali i riduttori non sono più necessari, si eliminano
così le imprecisioni introdotte dalla meccanica. Il motore
Torque consente inoltre un funzionamento virtualmente esente
da usura e manutenzione.
L’adozione di questo tipo di motori ha permesso di realizzare
componenti meccanicamente semplici, rigidi e compatti e
dunque di ottenere accelerazioni angolari più elevate. Altro
fattore fondamentale per la macchina in oggetto è stata la
possibilità di conseguire qualsiasi posizione intermedia
dell’asse con corretta rigidità di posizionamento, grazie alla
notevole prontezza di regolazione. Inoltre dall’eliminazione
della catena cinematica tradizionale (riduttore, giunti, ecc.) è
conseguita un’apprezzabile semplicità di montaggio.
L’accoppiamento meccanico tra motore e componente è,
come si è detto, estremamente rigido, ma a causa dell’elevata
dinamica hanno acquistato rilievo l’elasticità torsionale fra la
struttura che ospita il motore e la colonna inclinata a 45° e
quella fra il sistema di misura e l’avambraccio.

Al fine di poter sfruttare al massimo le prestazioni dei motori
torque è stato importante rispettare le seguenti linee guida:
·precisione nella scelta, posizionamento e montaggio del
sistema di misura e degli elementi di fissaggio delle parti
mobili rispetto alle fisse;
•   piccolo rapporto tra masse in movimento e masse fisse;
•   rigidità e smorzamento elevato           di tutte le parti
    meccaniche.
Particolare cura è stata quindi posta nella realizzazione di tutti
i componenti strutturali della macchina per ridurre il più
possibile le masse in movimento, a partire naturalmente dall'
“avambraccio” meccanico – chiamato amichevolmente
“mandolino”. Tale componente è stato realizzato in lega
leggera e conformato seguendo le indicazioni delle analisi
F.E.M., adottate del resto su tutti i componenti delicati della
macchina.

IL CONTROLLO: ALGORITMI GENETICI
Dopo l’esposizione generale delle caratteristiche della
macchina, passiamo ora ad un’analisi della cinematica del
robot, così da poter poi giungere alla descrizione in termini
matematici della metodologia adottata per definire le
traiettorie.
Lo spunto originale del sistema è la “ridondanza”. Tale
ridondanza è stata introdotta per evitare il contatto del robot
con il tubolare da tagliare e si è pensato di utilizzarla anche
per distribuire al meglio la potenza dei motori durante il
movimento.
E’ un po’ quello che, in natura, succede nel braccio umano,
che è un tipico sistema ridondante in quanto con diversità di
movimenti è possibile fare una medesima operazione.
La scelta della migliore combinazione di movimento tra le
infinite possibili viene operata tramite l’utilizzo di un “algoritmo
genetico” che ricalca in termini matematici la strategia
evolutiva darwiniana. In termini pratici, secondo tale teoria fra
individui, dotati di caratteristiche peculiari, avviene, con
particolari regole, una selezione che consente di fare
“sopravvivere” solo quelli che consumano meno energia.
Analogamente, alla fine dell’elaborazione, l’algoritmo genetico
seleziona la combinazione di leggi di movimento che ottimizza
la distribuzione dell’energia all’interno del sistema.

     Introduciamo innanzitutto una simbologia per denotare le
grandezze geometriche principali e le coordinate ai giunti del
sistema.
Con riferimento alla figura 1, si sono indicati con l1 la
lunghezza del braccio e con l2 quella della torcia laser.

     q3
             l2                                                Y

                       l1
                  q2                  q1

                                45°
 X                                                           O
                                            q0

              Figura 1 – Schema strutturale del robot.

     Rispetto al sistema di riferimento scelto, sono poi stati
evidenziati i quattro gradi di libertà del robot, avendo
trascurata la coordinata d’inseguimento del profilato
ortogonale al piano ininfluente ai fini del calcolo delle
traiettorie per la movimentazione del robot attorno al profilo da
tagliare. Saranno pertanto utilizzati i simboli q0 per la
coordinata relativa al carro trasversale, q1 per lo spostamento
del carro inclinato, q2 per la rotazione del braccio e q3 per la
rotazione della testina. Più in generale indichiamo con Q={q0,
q1, q2, q3} il vettore delle coordinate ai giunti e con S={x, y, }
quello delle coordinate della “pinza”, in cui oltre ai due termini
cartesiani si è considerata l’inclinazione della torcia rispetto
all’asse orizzontale.
     Dalla meccanica dei robot è noto che la cinematica diretta
può essere descritta dalle seguenti equazioni:

                        S = F (Q )
                        S&= JQ&                                (1)

                        S&
                         &= J&
                             Q&+ JQ
                                  &&
che, date le coordinate ai giunti e le loro derivate temporali,
permettono di determinare posa, velocità e accelerazione
della pinza attraverso il legame funzionale F(·) e la matrice
                      ∂F (Q )
jacobiana      J=             che ne deriva.
                       ∂Q
     In base alla geometria del robot (Figura 1) si osserva che
la funzione F(·) può essere espressa dal seguente sistema di
equazioni non lineari:

             x = q0 + 2 / 2q1 + l1 cos q2 + l 2 cos(q2 + q3 )
             y = 2 / 2q1 + l1 sin q2 + l 2 sin (q2 + q3 )                                                 (2)

             θ = q 2 + q3

da cui si ottiene facilmente la matrice jacobiana:

      1       2 /2       − l 1 sin q 2 − l 2 sin (q 2 + q 3 )              − l 2 sin (q 2 + q 3 )
J =   0       2 /2       l 1 cos q 2 + l 2 cos (q 2 + q 3 )                 l 2 cos (q 2 + q 3 )          (3)
      0        0                               1                                          1

La derivata rispetto al tempo di questa matrice permette di
risolvere la cinematica diretta a livello delle accelerazioni, per
la quale si ha:

         0    0    − l1q&2 cos q 2 − l 2 (q&1 + q&2 ) cos (q2 + q3 )   − l2 (q&1 + q&2 ) cos (q2 + q3 )
    dJ                                                                                                    (4)
J&=    = 0    0    − l1q&2 sin q 2 − l 2 (q&1 + q&2 ) sin (q2 + q3 )   − l2 (q&1 + q&2 ) sin (q2 + q3 )
    dt
         0    0                           0                                           0

Più interessante per i nostri scopi, è la risoluzione del
problema cinematico inverso, per il quale si sottolinea che
durante l’operazione di taglio le coordinate della torcia devono
seguire i punti della superficie da tagliare, mentre il suo
orientamento deve mantenersi ortogonale alla medesima
superficie. Un ulteriore vincolo si ha sulla velocità del
movimento che, lungo l’ascissa curvilinea percorsa dalla
torcia, deve mantenersi il più possibile costante. E’ bene a
questo punto ricordare che il robot in esame presenta una
ridondanza (cosa bene evidenziata anche dall’aver ottenuto
una matrice jacobiana rettangolare) che, a fronte di un dato
                                            1
set di coordinate della torcia, introduce     posizioni dei giunti,
tutte soddisfacenti la posa da assumere. L’inversione delle
equazioni (1) presenta quindi la difficoltà di dover invertire una
matrice non invertibile in quanto rettangolare. Si ricorre in
questi casi all’utilizzo della cosiddetta matrice pseudoinversa
che, nell’inversione di un sistema lineare di equazioni con
infinite soluzioni, permette di ricavare automaticamente quella
di norma euclidea minima.
     L’utilizzo della pseudoinversa aiuta inoltre a risolvere il
problema inverso anche a livello delle posizioni, in quanto,
adottando un metodo numerico come quello di Newton-
Raphson, l’inversione del sistema S=F(Q) si traduce nella
reiterazione del calcolo di una soluzione Qi a partire da una
soluzione meno precisa Qi-1. Senza entrare nei dettagli,
                   +
indicando con J la matrice pseudoinversa di J e detto S il
vettore della posa da raggiungere, il calcolo del set di
coordinate ai giunti Q si ottiene iterando la seguente
equazione a partire da una prima soluzione approssimata Q0:

                  Qi = Qi −1 + J + (S − F (Qi −1 ))             (5)

      Nel nostro caso, conviene utilizzare, in luogo della matrice
pseudoinversa, la matrice pseudoinversa pesata che, grazie
all’introduzione di alcuni parametri, permette di guidare la
soluzione in direzioni diverse da quella a norma minima. Ciò,
da un lato è necessario per escludere le soluzioni che
vedrebbero il robot impattare contro il tubo, e in secondo
luogo, consente un’ottimizzazione nella scelta della soluzione
fra tutte quelle ammissibili. Formalmente la matrice
                             *
pseudoinversa pesata J si ottiene condizionando la
pseudoinversa con una matrice diagonale W=diag(w0, w1, w2,
w3) contenente i parametri con cui vengono pesate le varie
soluzioni così come indicato nella (6):
(6)
                                  (
                       J * = W −1 JW −1   )
                                          +

In pratica, fissata la posa S da raggiungere in un certo istante
t, al variare dei parametri di W, si ottengono, applicando
ripetutamente il metodo di Newton-Raphson, le infinite
soluzioni Q tra cui scegliere la più adatta a conseguire gli
obiettivi preposti. Chiaramente, nulla vieta di utilizzare
parametri W diversi per il calcolo delle successive posizioni
assunte dalla pinza durante il suo movimento attorno al profilo,
così da offrire l’opportunità di un’ottimizzazione lungo tutto il
                                  *
percorso realizzato. La matrice J viene quindi a dipendere dal
parametro tempo, anche se la variazione dei parametri W
deve avvenire con una certa continuità, in modo da non
generare implicitamente irregolarità nel movimento: vedremo
in seguito come ciò sarà garantito nel caso in esame.
     Mentre per risolvere il problema inverso a livello delle
posizioni si è utilizzato un metodo numerico, a livello di
velocità basta la semplice introduzione della matrice
pseudoinversa pesata:

S&= J Q&= JW −1W Q&
(JW ) S&= W Q&
         −1 +

 W (JW ) S&= Q&
                                                                (7)
    −1          −1 +
                                      Q&= J * S&
                       *
La dipendenza di J dal tempo genera qualche complicazione
a livello delle accelerazioni per le quali, derivando   S& rispetto
al tempo, si ha:

S&
 &= J&
     W −1WQ&+ JW&−1WQ&+ JW −1W&Q&+ JW −1WQ
                                         &&                     (8)

e dopo qualche passaggio matematico si ottiene la formula:

&
Q&= J * S&  [
         &− J&Q& − W   ] [   −1
                               W& + W&− 1W Q& ]                 (9)
Riassumendo, dalla trattazione precedente si evince che ad in
ogni istante t del moto, dovremo definire una quaterna di
parametri  per poter risolvere compiutamente
il problema cinematico inverso. Prima di passare alla
descrizione dell’algoritmo utilizzato per la determinazione di
tali parametri, descriviamo brevemente l’ultimo passaggio che
lega le condizioni di movimento imposte sulla pinza a quelle
ricavate sui giunti. Al fine di mantenere la trattazione generale,
e svincolarci quindi dalla particolare sezione da tagliare, noto il
profilo su cui operare, è possibile calcolarne il perimetro e
definire lungo esso una coordinata a partire dalla scelta di una
posizione iniziale e di un verso di percorrenza. Indicata con s
tale ascissa curvilinea, e fissata la velocità di taglio s& che la
pinza deve mantenere nel percorrerla, risultano implicitamente
definite le caratteristiche cinematiche S, S&, e S   &&che la pinza
deve assumere ad ogni istante. Allo scopo di evitare urti alla
partenza e a fine moto e l’innesco di vibrazioni a fronte di
brusche variazioni della curvatura lungo il profilo, la legge di
moto s(t) può essere fissata ad hoc, regolando
opportunamente l’intensità del laser per evitare “bruciature” in
quei tratti in cui si è costretti a lavorare con velocità minori.
     Senza entrare nei dettagli, diciamo solamente che in base
alla precisione di movimento richiesta la legge s(t) viene
campionata su un certo numero di punti, cui corrispondono le
successive posizioni della pinza. Indicato con N tale numero,
ne segue che per ogni traiettoria della torcia si hanno N
                 i    i   i    i
quadruple  e quindi un totale di 4N parametri
w da determinare in modo che vengano rispettati i vincoli.
Nella pratica, un valore sensato per N è nell’ordine dei 2000
punti, a cui corrispondono 8000 parametri incogniti.
     L’elevato numero di parametri da ottimizzare e la
necessità di dover escludere alcune potenziali soluzioni per
rispettare i vincoli del problema, hanno spinto alla scelta di un
metodo non convenzionale di ottimizzazione come l’algoritmo
genetico in seguito descritto. L’eventuale mole di calcoli
coinvolta non ha peraltro condizionato l’idea, confortati anche
dal fatto che lo studio delle traiettorie può avvenire off-line.
Gli algoritmi genetici fanno parte di una più ampia categoria di
metodologie di ottimizzazione matematica note come strategie
di tipo evolutivo. L’idea che sta alla base degli algoritmi
genetici è quella di cercare di riproporre in termini matematici
ciò che accade in natura riguardo al processo di selezione
naturale degli individui di una certa specie animale. In termini
generali, si può dire che il metodo prevede di assimilare il
vettore dei parametri da ottimizzare al codice genetico degli
individui di una certa specie. Così come, di generazione in
generazione, gli esseri viventi si adattano alle condizioni
ambientali in cui si trovano a vivere, in modo analogo, le
potenziali soluzioni di un problema matematico vengono via,
via sempre più affinate nell’inseguimento di un certo obiettivo
da raggiungere. Il metodo vede pertanto l’evoluzione di un
gruppo di potenziali soluzioni, a partire da una prima
generazione di individui caratterizzati da un codice genetico
definito anche in modo casuale all’interno di certi range
ammessi per ogni carattere. Il codice genetico di ogni
soluzione è rappresentato dal vettore dei parametri da
ottimizzare, nel nostro caso gli 8000 elementi di W,
trasformato in codice binario. Il processo riproduttivo per la
creazione di una nuova generazione, viene simulato facendo
nascere un nuovo codice genetico figlio attraverso la
combinazione dei codici genetici di due individui genitori
selezionati dalla generazione corrente. Grazie all’applicazione
di alcuni operatori genetici non meglio descritti in questa sede,
come il cross-over, l’ereditarietà e la mutazione, il codice
genetico figlio è caratterizzato da aspetti comuni sia al padre
che alla madre oltre che dall’introduzione di elementi casuali.
La scelta dei genitori avviene premiando la selezione degli
individui meglio adattati all’ambiente, così da rendere
mediamente prevalente la sopravivenza del codice genetico
più evoluto ai fini del conseguimento dell’obiettivo da
raggiungere. Il processo viene reiterato più volte creando una
successione di generazioni di individui sempre più adatti alle
specifiche del problema. La qualità di ogni individuo, è
computata in base a particolari funzioni obiettivo in seguito
descritte.
L’algoritmo si adatta bene alle nostre esigenze, in quanto nella
generazione dei parametri è possibile intervenire con una
procedura di controllo sugli elementi ottenuti, scartando
all’occorrenza quelle soluzioni che non rispettano i vincoli del
problema. E’ altresì possibile un’ulteriore manipolazione del
codice genetico, di volta in volta ricavato, per fare in modo che
le N-uple di quaterne di parametri siano tali che i gruppi
adiacenti non differiscano troppo tra loro, garantendo così la
continuità nei diagrammi delle accelerazioni delle coordinate ai
giunti. Nella fattispecie, si è deciso di trasformare il codice
genetico offerto dall’algoritmo, con l’applicazione di
un’interpolazione polinomiale di ventesimo grado assicurando
in questo modo la fluidità del movimento nel passaggio da un
punto della traiettoria a quello successivo.
      Rispetto agli algoritmi genetici tradizionalmente utilizzati,
nel nostro caso, è stata introdotta una variante che vede i
cromosomi allungarsi durante il processo evolutivo. Più
precisamente, nella generazione di ogni nuovo individuo,
l’algoritmo costruisce le traiettorie a partire dalla posizione
iniziale della pinza, attraverso una serie di tentativi che
cercano di completare il percorso, legando il codice genetico
alle traiettorie parzialmente definite.
      Di fatto, il metodo funziona secondo due fasi successive.
Nella prima si cerca di determinare un possibile percorso
completo della pinza a partire dalla posizione iniziale del robot.
Inizialmente, i cromosomi della prima generazione sono quindi
                                                0    0   0    0
tutti costituiti dai soli quattro parametri  che
permettono di spostare la pinza dalla posizione iniziale al
primo punto della traiettoria. Al fine di raggiungere i successivi
punti della traiettoria, si innesca poi nell’algoritmo una
procedura che cerca di allungare il codice genetico di ogni
cromosoma, ottenendo nel passaggio dall’i-esima alla i+1-
                                               0    0    0    0    1
esima posa una sequenza del tipo < w0 , w1 , w2 , w3 , w0 ,
   1      1    1    2     2   2    2   3     3    3    3        i   i
w1 , w2 , w3 , w0 , w1 , w2 , w3 , w0 , w1 , w2 , w3 ,…, w0 , w1 ,
   i    i
w2 , w3 >. La procedura genera i quattro parametri per passare
ad ogni nuovo punto in un intorno di quelli ottenuti al passo
precedente così da non avere variazioni troppo repentine nei
loro valori. In nuovi gruppi di geni vengono via via accodati nel
cromosoma allungandolo sino a completare la traiettoria o
sino a che viene meno il rispetto dei vincoli. In questo
contesto, oltre che ottimizzare la funzione obiettivo, si
massimizza il numero i di punti raggiunti dalla traiettoria
parziale.
Una volta completata la prima fase, tutti i cromosomi
saranno caratterizzati da 4N elementi e l’algoritmo prosegue
nella sua ottimizzazione della sola funzione obiettivo.

    Figura 2 – Successive pose assunte dal robot durante il
processo di simulazione/ottimizzazione

     A titolo di esempio, in figura 2 è stata evidenziata la
traiettoria assunta dal primo giunto rotoidale in due diversi
momenti dell’ottimizzazione. Le immagini sono tratte da un
software di simulazione/ottimizzazione che è stato
appositamente sviluppato per implementare l’algoritmo
precedentemente descritto.
     L’unificazione dell’obiettivo nelle due fasi descritte è stata
semplicemente ottenuta dal contributo di due termini
definendo una funzione obiettivo del tipo:

                   { ( )}
                min G W i = min
                                       1
                                       i
                                               ( )
                                         + G1 W i
                                                                    (10)

in cui G1 è legato al valore massimo delle azioni d’inerzia
agenti sui quattro link durante il movimento. Per rendere
l’ottimizzazione più flessibile, si è infine pensato di
minimizzare una funzione obiettivo più articolata, del tipo:
                    λ0
    {       }
min G(W i ) = min
                     i
                         + λ1G1(W i ) + λ2G2 (W i ) + λ3G3 (W i )   (11)

in cui vengono mescolati tramite i pesi               j   i contributi di
   ( ) &
G1 W = Q& legato al valore della massima accelerazione
        i
( )=
nel generico punto della traiettoria, di G2 W
                                                i
                                                     Q& Q
                                                        &&ds in
qualche modo legato all’energia globale del movimento lungo
l’ascissa curvilinea s e         ( )
                              G3 W i =     &
                                           Q&ds legato ad un
contributo globale lungo la traiettoria delle azioni d’inerzia. Il
software implementato permette attraverso appositi cursori di
variare il valore dei parametri j durante l’ottimizzazione così
da valutare in modo immediato le modifiche apportate run-time
sulla funzione obiettivo. I risultati hanno consentito di ottenere
sulla macchina reale movimentazioni talmente armoniose da
richiamare alla mente traiettorie naturali proprie dei movimenti
umani.

CONCLUSIONI
La realizzazione della spezzonatrice laser denominata
Speedfly 5 operata dalla Tube Tech Machinery è stata
possibile grazie alle ingenti risorse economiche messe a
disposizione, alla volontà e alla determinazione messe in
campo per il raggiungimento del traguardo, alla partecipazione
al progetto di diverse realtà chiamate a collaborare ciascuna
per la propria specializzazione.
Del gruppo di lavoro, coordinato da tecnici Tube Tech, hanno
fatto parte
•   il Professore Rodolfo Faglia, docente di Meccanica
    applicata alle macchine della facoltà di Ingegneria
    dell’Università degli Studi di Brescia validamente
    coadiuvato dall’Ing Bussola,
•   il colosso dell’elettronica Siemens per la parte applicativa
    riguardante motori, azionamenti e controllo,
•   la Società Alpha Progetti per la progettazione meccanica.
Da questa esperienza emergono alcuni punti che sono alla
base della filosofia Tube Tech: per essere innovativi è
necessario investire in ricerca e sviluppo creando stretti
rapporti di collaborazione tra Università e mondo del lavoro.
Siamo orgogliosi di quanto abbiamo fatto perché crediamo
siano queste le realtà in grado di assicurare lavoro e successo
a chi ha ancora voglia di creare.
Puoi anche leggere