ITPI20010007A1 - Metodo per il controllo di un sistema meccanico articolato e/0 deformabile e sue applicazioni - Google Patents
Metodo per il controllo di un sistema meccanico articolato e/0 deformabile e sue applicazioni Download PDFInfo
- Publication number
- ITPI20010007A1 ITPI20010007A1 ITPI20010007A ITPI20010007A1 IT PI20010007 A1 ITPI20010007 A1 IT PI20010007A1 IT PI20010007 A ITPI20010007 A IT PI20010007A IT PI20010007 A1 ITPI20010007 A1 IT PI20010007A1
- Authority
- IT
- Italy
- Prior art keywords
- actuators
- control
- artificial
- creation
- virtual model
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 54
- 230000033001 locomotion Effects 0.000 claims description 55
- 210000003205 muscle Anatomy 0.000 claims description 25
- 210000000988 bone and bone Anatomy 0.000 claims description 24
- 230000001419 dependent effect Effects 0.000 claims description 7
- 239000002649 leather substitute Substances 0.000 claims description 4
- 239000003973 paint Substances 0.000 claims description 3
- 210000003625 skull Anatomy 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims 1
- 230000004807 localization Effects 0.000 claims 1
- 239000000463 material Substances 0.000 claims 1
- 230000014509 gene expression Effects 0.000 description 41
- 230000000875 corresponding effect Effects 0.000 description 9
- 210000000214 mouth Anatomy 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 210000003128 head Anatomy 0.000 description 4
- 210000001847 jaw Anatomy 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 229920001296 polysiloxane Polymers 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 210000001508 eye Anatomy 0.000 description 3
- 230000008921 facial expression Effects 0.000 description 3
- 238000013178 mathematical model Methods 0.000 description 3
- 230000003278 mimic effect Effects 0.000 description 3
- 210000001331 nose Anatomy 0.000 description 3
- 210000000056 organ Anatomy 0.000 description 3
- 230000005355 Hall effect Effects 0.000 description 2
- 241000238631 Hexapoda Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 210000001061 forehead Anatomy 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000007711 solidification Methods 0.000 description 2
- 230000008023 solidification Effects 0.000 description 2
- 230000008961 swelling Effects 0.000 description 2
- 230000001755 vocal effect Effects 0.000 description 2
- FHVDTGUDJYJELY-UHFFFAOYSA-N 6-{[2-carboxy-4,5-dihydroxy-6-(phosphanyloxy)oxan-3-yl]oxy}-4,5-dihydroxy-3-phosphanyloxane-2-carboxylic acid Chemical compound O1C(C(O)=O)C(P)C(O)C(O)C1OC1C(C(O)=O)OC(OP)C(O)C1O FHVDTGUDJYJELY-UHFFFAOYSA-N 0.000 description 1
- 208000036632 Brain mass Diseases 0.000 description 1
- 241001275954 Cortinarius caperatus Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 239000010441 alabaster Substances 0.000 description 1
- 229940072056 alginate Drugs 0.000 description 1
- 235000010443 alginic acid Nutrition 0.000 description 1
- 229920000615 alginic acid Polymers 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000035045 associative learning Effects 0.000 description 1
- OSGAYBCDTDRGGQ-UHFFFAOYSA-L calcium sulfate Chemical compound [Ca+2].[O-]S([O-])(=O)=O OSGAYBCDTDRGGQ-UHFFFAOYSA-L 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001055 chewing effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 230000009760 functional impairment Effects 0.000 description 1
- 239000010440 gypsum Substances 0.000 description 1
- 229910052602 gypsum Inorganic materials 0.000 description 1
- 239000004816 latex Substances 0.000 description 1
- 229920000126 latex Polymers 0.000 description 1
- 230000013016 learning Effects 0.000 description 1
- 230000003902 lesion Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 210000002050 maxilla Anatomy 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 229920002379 silicone rubber Polymers 0.000 description 1
- 239000004945 silicone rubber Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000007920 subcutaneous administration Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000001364 upper extremity Anatomy 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/1605—Simulation of manipulator lay-out, design, modelling of manipulator
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40324—Simulation, modeling of muscle, musculoskeletal dynamical system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40527—Modeling, identification of link parameters
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Processing Or Creating Images (AREA)
- Numerical Control (AREA)
- Micromachines (AREA)
Description
Descrizione dell'Invenzione Industriale dal titolo:
METODO PER IL CONTROLLO DI UN SISTEMA MECCANICO ARTICOLATO E/O
DEFORMABILE E SUE APPLICAZIONI"
La presente invenzione ha per oggetto un metodo per il
controllo di un sistema meccanico articolato e/o deformabile,
quale ad esempio un'apparecchiatura per far compiere complessi
movimenti ad oggetti, un automa o un volto artificiale.
L'invenzione riguarda inoltre le applicazioni operanti
secondo il suddetto metodo.
Sono noti modelli matematici che, in base a dati
preimpostati o rilevati da sensori, consentono di gestire
contemporaneamente un limitato numero di attuatori, correlati o
non correlati, in modo tale che con l'insieme delle loro
azioni, sinergiche e/o concorrenti, sia possibile determinare,
nello spazio e nel tempo, l'evoluzione voluta delle strutture è loro connesse e/o delle variabili da esse controllate. I
complessi modelli matematici che affrontano questi problemi
cercano di descrivere, per mezzo di sistemi di equazioni
integro-differenziali , le dinamiche degli attuatori e delle
strutture ad essi collegate tenendo conto dei vincoli e della mutua influenza dei vari elementi che compongono il sistema controllato. Stabilita per quest'ultimo l'evoluzione desiderata, per esempio una sequenza di movimenti, il modello viene utilizzato per ricavare i valori da far assumere nel tempo alle variabili di giunto nei vari attuatori. I risultati dei calcoli vengono quindi tradotti in moto reale del sistema controllato, fornendo al loro sistema di pilotaggio i valori che devono assumere nello spazio e nel tempo le variabili di giunto dei vari attuatori.
A titolo di esempio di quanto esposto si cita l'attuazione della movimentazione di un esapodo, che rappresenta quanto di meglio è possibile fare con i sistemi di controllo tradizionali. Per la movimentazione di tale struttura è necessario realizzare un moto in cui i punti di contatto tra le estremità degli attuatori e la superficie variano nel tempo con discontinuità. Classicamente, per far sì che il robot effettui questa movimentazione, è necessario scrivere le equazioni che correlano le variabili di giunto di tutti gli attuatori e risolvere queste equazioni nel tempo per ottenere la successione degli stati dei vari motori istante per istante. Per una trattazione dettagliata si veda Haruhiko Asada, Jean-Jacques E. Slotine, Robot Analysis and Control, John Wiley & Sons, Aprile 1986. Riferimenti ad attuali androidi, gestiti con sistemi di controllo classici e quindi intrinsecamente limitati nelle loro funzioni, sono: l'umanoide "Cog" , inventato da Rodney Brooks del MIT di Boston, in grado di emulare i movimenti degli arti superiori umani, oppure "M2", sempre del MIT, in grado di camminare. Un altro esempio è "Robonaut" della Nasa, più precisamente del Johnson Space Center di Houston, che servirà per effettuare passeggiate nello spazio lavorando per riparare sonde e stazioni spaziali nello spazio al posto degli astronauti. Ancora si può citare "Jack", dell'Electrotechnical Lab di Tsukuba (Giappone), un androide capace di aiutare gli anziani a vivere da soli. Alla Science University di Tokyo stanno inoltre realizzando "Face Robot", un progetto guidato da Hideotoshi Akasawa. Questa faccia androide sarà capace di riconoscere e reagire alle differenti espressioni.
Riferimenti bibliografici relativi agli androidi sopra citati sono contenuti in Peter Menzel, Faith D'Aluisio, Robosapiens, evolution of new species, MIT Press, 2000.
Lo scopo della presente invenzione è di rendere possibile il controllo di sistemi meccanici articolati e/o deformabili di struttura anche complessa per i quali la descrizione con un sistema di equazioni secondo la tecnica nota sarebbe difficile o impossibile.
Un altro scopo della presente invenzione è di fornire un metodo di controllo di sistemi meccanici articolati e/o deformabili utilizzante un ambiente di sviluppo di grafica virtuale grazie al quale è possibile interpretare i dati forniti da un insieme di sensori e gestire contemporaneamente un gran numero di attuatori, con possibilità di costruire un modello estremamente corrispondente alla realtà sia in termini di dinamiche degli attuatori che di deformazioni indotte, in modo tale da poter pianificare e controllare, nell'ambito dell'ambiente virtuale, quella che sarà la successione di movimentazioni che si desiderano ottenere.
Un ulteriore scopo della presente invenzione è di fornire un metodo di controllo del tipo summenzionato nel quale sia possibile costruire un database di configurazioni e/o movimentazioni illimitato.
È ancora un altro scopo della presente invenzione di fornire un metodo di controllo del tipo summenzionato grazie al quale sia possibile ottenere movimentazioni nuove sulla base del database ottenuto senza necessariamente ricalcolarle con il modello virtuale, ossia studiare off-line la gamma di movimentazioni desiderata, salvarla nel database e con essa controllarne i movimenti e/o le deformazioni indotte degli attuatori reali.
La caratteristica essenziale del metodo di controllo secondo la presente invenzione consiste nel fatto di sostituire i modelli matematici classici con modelli solidi 3D costruiti in ambiente virtuale, utilizzando, in modo concettualmente nuovo, software avanzato di grafica tridimensionale al posto dei sistemi di equazioni. In altre parole, l'idea basilare è quella di utilizzare informazioni e dati ricavati, da oggetti creati in un ambiente virtuale per pilotare analoghi oggetti reali .
Più precisamente, con un sistema di grafica avanzata viene riprodotto nei minimi particolari il modello di una struttura reale, anche complessa, e viene creato un modello virtuale per ognuno dei suoi attuatori. Al modello virtuale così creato vengono attribuiti i vincoli e ì limiti posseduti dall'oggetto reale, dato che nell'ambiente virtuale esiste il più ampio grado di libertà. Come nel caso classico, le informazioni chiave che il modello fornisce per il controllo degli attuatori sono i valori da assegnare nel tempo alle variabili di giunto, quali ad esempio le coordinate dell'estremità mobile di un attuatore lineare, oppure l'angolo di rotazione dell'asse di un motore. Queste informazioni, dopo essere state inviate ad un sistema di pilotaggio, consentono di realizzare nella realtà quanto simulato nell'ambiente virtuale.
I vantaggi e le potenzialità applicative di questo modo di operare sono notevoli. È possibile la modellazione di sistemi reali molto complessi per i quali la descrizione con un sistema di equazioni sarebbe difficile o impossibile, avendo come unico limite la capacità di calcolo del computer utilizzato per creare l'ambiente virtuale. Inoltre si possono eliminare tutti i problemi connessi alla scrittura e risoluzione di sistemi di equazioni molto complesse e quindi il numero di attuatori che è possibile controllare contemporaneamente aumenta in modo notevole. In questo modo quindi è possibile ottenere con maggiore facilità i risultati della robotica classica, risolvendo il problema della cinematica dei vari attuatori, dei quali è necessario trovare i valori assunti nel tempo di posizione, velocità ed accelerazione.
Ulteriori caratteristiche e vantaggi del metodo di controllo di sistemi meccanici articolati e/o deformabili secondo la presente invenzione risulteranno più chiaramente dalla descrizione che segue di una sua pratica applicazione, fornita a titolo esemplificativo e non limitativo.
Nei disegni annessi:
- le figure 1, 2 e 3 mostrano schematicamente il ciclo di operazioni attraverso cui è possibile ottenere la movimentazione di un sistema reale con il metodo di controllo secondo l'invenzione;
la figura 4 mostra schematicamente i componenti di un'apparecchiatura operante secondo il metodo di controllo oggetto della presente invenzione;
la figura 5 mostra schematicamente il sistema di motorizzazione dell'esempio di attuazione del metodo secondo l'invenzione ;
- la figura 6 mostra schematicamente un attuatore impiegato in detto esempio;
le figure 7 e 8 mostrano in vista laterale ed in vista frontale un gruppo motori;
- la figura 9 illustra schematicamente l'elettronica di pilotaggio dei motori;
la figura 10 mostra schematicamente la fase di modellazione dell'esempio di applicazione secondo la presente invenzione;
- la figura 11 mostra un esempio di matrice usata per il pilotaggio dell'esempio di applicazione secondo la presente invenzione ;
- la figura 12 mostra schematicamente la gerarchia degli ossi e dei locator.
Con riferimento alle figure 1 e 2, nella sua modalità di esecuzione più generale il metodo di controllo secondo la presente invenzione prevede una prima fase in cui si analizzano le componenti e le loro relazioni reciproche, in funzione degli obiettivi applicativi, di un sistema meccanico articolato e/o deformabile avente come interfaccia sensori e/o attuatori, nel seguito indicato con "sistema reale" per brevità, che dovrà essere gestito dal sistema di controllo. Successivamente viene creato un modello virtuale, tramite un software di grafica avanzata 3D, costruendo nell'ambiente virtuale i modelli tridimensionali di tutte le strutture e di tutti gli attuatori che compongono il sistema reale. Questi modelli vengono dettagliati parametrizzando le variabili che servono a movimentare i corrispondenti componenti reali e modellando vincoli e interdipendenze cui detti componenti sono soggetti.
Il modello virtuale così creato viene quindi graficamente "animato", cioè movimentato e/o deformato, nel modo voluto e dalle variabili precedentemente parametrizzate vengono estratte le informazioni necessarie per il controllo del sistema reale. In particolare, l'animazione del modello può essere semplificata con l'utilizzo di tecniche di cattura del movimento (motion capture). Secondo tali tecniche il movimento da riprodurre viene acquisito dal sistema reale con opportuni sistemi di rilevazione, elaborato con software appositi e le informazioni utili per la costruzione delle sequenze animate vengono fornite al modello virtuale che ricostruisce da esse le posizioni degli attuatori e gli andamenti delle variabili parametrizzate .
Le informazioni estratte dal modello vengono quindi poste in ingresso ai driver di controllo per il pilotaggio del sistema reale.
A titolo di esempio, come sistema di grafica avanzata 3D può essere impiegato il software denominato MAYA, posto in commercio da Alias/Wavefront, o equivalenti. Per le tecniche di cattura del movimento può essere impiegato il software denominato Gypsy Motion Capture System posto in commercio da Meta Motion, o equivalenti ed i sistemi di rilevazione per l'acquisizione del movimento da riprodurre possono essere costituiti da sensori magnetici, o equivalenti. Come software di elaborazione dei dati acquisiti con tali sistemi di rilevamento può essere impiegato lo stesso software MAYA oppure il software Filmbox Animation posto in commercio da Kaydara, o equivalenti .
La realizzazione del modello virtuale è finalizzata all'ottenimento delle variabili necessarie al pilotaggio del sistema meccanico articolato e/o deformabile che, nella sua forma più generale, è composto da n attuatori, k vincoli, j giunti e p sottosistemi passivi movimentati e/o deformati dagli attuatori. Tali variabili rappresentano i parametri di controllo con i quali pilotare nello spazio e nel tempo in modo parallelo un gran numero di attuatori così da far assumere al sistema reale e/o ai sistemi fisici altamente complessi da esso dipendenti le movimentazioni e/o deformazioni desiderate. Per costruire al meglio il modello virtuale di tale sistema secondo il metodo oggetto dell'invenzione, si proiettano, definendone le proprietà di movimentazione e/o deformazione, i sottosistemi passivi nell'ambiente virtuale mantenendo inalterate le loro proporzioni e distanze reciproche (fase di modellazione). Gli attuatori, i vincoli ed i giunti vengono graficamente creati e localizzati nelle loro corrette posizioni spaziali. Si definiscono quindi le variabili di controllo del sistema, e cioè i valori da estrarre, nello spazio e nel tempo, dal modello virtuale per consentire il controllo del sistema reale (fase di parametrizzazione). Vengono creati i pattern motori spazio-temporali di ogni singolo attuatore (fase di animazione) secondo le possibili modalità:
impostando un certo andamento delle variabili di controllo degli attuatori il modello restituisce le movimentazioni e/o deformazioni indotte sul sistema reale (cinematica diretta) ;
- da movimentazioni e/o deformazioni indotte graficamente sul modello virtuale è possibile ricavare l'andamento delle variabili di controllo degli attuatori che consentono di realizzarle nel sistema reale (cinematica inversa) ;
- da movimentazioni e/o deformazioni acquisite attraverso tecniche di cattura del movimento (motion capture) , sia offline che in reai time e proiettate sul modello virtuale è possibile ricavare l'andamento delle variabili di controllo degli attuatori che consentono di realizzarle, essendo il modello interfacciabile con i più comuni sistemi commerciali di motion capture.
I sottosistemi passivi movimentati e/o deformati dagli attuatori possono essere riprodotti in modo grafico avendo l'accortezza di crearli simili dal punto di vista geometrico (in scala), mantenendo proporzionali le distanze fra essi.
Per la fase di parametrizzazione , in cui vengono creati i modelli di attuatori, vincoli e giunti, si eseguono i seguenti passi :
- viene realizzato uno scheletro di base;
- vengono create le proprietà volumetriche di esso;
- lo scheletro di base viene posizionato nello spazio; vengono definite le proprietà di movimentazione e/o deformazione ;
- viene definita l'influenza che ogni singolo attuatore e/o giunto ha sui sottosistemi passivi da essi dipendenti.
Per la creazione dello scheletro di base si crea quello che viene definito "osso" (skeleton) nei più comuni software di grafica 3D. Esso è un vettore orientato rispetto ad una terna di riferimento posta sul suo punto di applicazione. Per assegnargli delle proprietà volumetriche si traccia un cilindro che, posizionato in corrispondenza dell'osso, viene raggruppato in un'unica struttura con l'osso. Il comando generico è create group, questo gruppo può essere chiamato attuatore, il cui punto di applicazione rappresenta un giunto. Questo oggetto viene posizionato e scalato in base alla posizione e dimensione dell'oggetto reale. Il giunto di questo oggetto può essere vincolato o meno ad altre strutture definendo così la sua movimentazione. Per definire le singole proprietà di deformazione, ad ogni attuatore viene associato un flexor, caratteristica presente nei software di grafica; è uno dei caratteri (character) che possono essere assegnati agli elementi di un ambiente virtuale. Affinché i flexor abbiano influenza sui sottosistemi passivi da essi dipendenti, essi vengono interconnessi sia con questi ultimi che con l'attuatore, selezionandoli tutti contemporaneamente e correlandoli tramite il generico comando rigid bind. Le aree di effetto e dì influenza di ogni flexor sulle deformazioni e/o movimentazioni dei sottosistemi dipendenti vengono appositamente modificate tramite il pannello paint tool. Potendo adattare la struttura virtuale a qualsiasi sottosistema ed a qualsiasi configurazione reale di attuatori ne seguono potenzialità illimitate.
Nella fase di animazione, tramite le strutture precedentemente sviluppate, vengono implementati i pattern motori spazio-temporali di ogni singolo attuatore secondo le modalità precedentemente indicate. L'andamento nello spazio delle movimentazioni e/o deformazioni degli attuatori e delle strutture loro interconnesse può essere definito attraverso le chiavi spaziali del tool set driven key, presente in tutti gli ambienti dì sviluppo 3D. Tramite questo tool è possibile vincolare a valori noti (chiavi) i parametri geometrici corrispondenti a movimenti e/o deformazioni delle strutture virtuali create. Il software movimenterà il modello secondo le traiettorie che soddisfano le caratteristiche del modello creato fino a questo momento ed il passaggio per questi valori noti secondo una delle tre modalità precedentemente descritte. Le deformazioni associate vengono dunque fissate replicando i movimenti e/o deformazioni fisiche reali che avvengono nell'attuatore stesso.
Le variabili di controllo dell'attuatore virtualizzato vengono associate ad un'altra struttura, il locator. È una struttura vincolo che può essere associata ad uno o più elementi e ne influenza i parametri. Si creano così degli attributi del locator (variabili di controllo) la cui variazione determina una variazione numerica dei corrispondenti parametri geometrici del flexor passando per le chiavi spaziali .
L'andamento nel tempo delle movimentazioni e/o deformazioni degli attuatori e delle strutture loro interconnesse può essere deciso definendo le chiavi temporali con time slider, tool . presente in tutti gli ambienti di sviluppo 3D. Nel time slider vengono fissati gli stati del modello negli istanti desiderati per ogni movimentazione. Il software costruirà tutti gli stati intermedi dell'andamento della movimentazione degli attuatori nel tempo.
Agendo quindi su ogni singolo attuatore si ottengono movimentazioni e/o deformazioni spazio-temporali e le strutture loro interconnesse. Nel caso si volesse agire direttamente sulle strutture interconnesse agli attuatori ed ottenere le conseguenti movimentazioni e/o deformazioni degli attuatori sarà necessario racchiudere tali strutture in un'altra struttura presente nel software 3D, il lattice di deformazione.
Durante l'effettuazione delle movimentazioni e/o deformazioni nel modello virtuale, si estraggono e si salvano i valori nel tempo delle variabili di controllo precedentemente definite. Questa procedura può essere semplicemente effettuata con i comandi appositi del software di grafica 3D, quali ad esempio getAttr e fwrite. Questi valori vengono salvati in un file ASCII e rappresentano i valori che devono assumere nel tempo (set points) le variabili di controllo del sistema reale. Il file conterrà sotto forma di matrice, i valori delimitati da tabulazione. In ogni colonna verranno rappresentate le variabili di controllo, attuatore per attuatore, mentre nelle righe viene rappresentato il tempo. Il file è dunque in un A formato standard comunemente accettato da qualsiasi sistema e rappresenta l'ingresso ai driver di controllo degli attuatori. I driver ricevono quindi in ingresso i set points nel tempo delle corrispondenti variabili che controllano e ne pilotano il moto.
L'insieme di tutti questi file costituisce un database da cui attingere. Qualsiasi algoritmo decisionale, software di intelligenza artificiale, analisi di dati ecc, o semplicemente un operatore, può aggiornare in tempo reale la movimentazione da effettuare attingendola dal database. Il pilotaggio può avvenire secondo due modalità:
- funzionamento off-line
- funzionamento on-line
Nel primo caso l'algoritmo decisionale opererà attingendo le movimentazioni da un supporto di memoria di massa di un computer. Nel secondo caso dalla movimentazione del modello virtuale verranno estratte in tempo reale le informazioni necessarie al pilotaggio degli attuatori ed inviate, sempre in tempo reale, ai driver di controllo. Quest'ultima procedura è illustrata nella figura 3.
Nella figura 4 sono illustrate le modalità generali con le quali il metodo oggetto della presente invenzione può essere messo in pratica. In essa si è indicato con 1 un computer, in particolare un personal computer, su cui è implementato il software di grafica avanzata 3D, connesso tramite connessione seriale RS232 ad una elettronica di controllo complessivamente indicata con 2, a sua volta connessa a driver di un gruppo motori controllati in ciclo chiuso. Dal gruppo motori escono mezzi di trasmissione 3 dei comandi, in genere costituiti da cavi di trasmissione, che agiscono su un sistema 5 da controllare comprendente attuatori 6 e sottosistemi 7 da movimentare e/o deformare.
Nella descrizione che segue il sistema meccanico articolato e deformabile controllato con il metodo secondo l'invenzione è costituito, a titolo di esempio non limitativo, da un volto artificiale, chiamato per semplicità "testa androide", la cui estetica, espressività e mimica sono simili a quelle umane. Secondo il principio di funzionamento generale sopra descritto compatibilmente con le tecnologie disponibili, con riferimento anche alla figura 5, la testa androide, genericamente indicata con 10, comprende una struttura scheletrica di supporto 11 a cui sono fissati muscoli artificiali (attuatori) 12 connessi ad una pelle artificiale 13 che riveste l'assieme. Gli attuatori 12 sono operativamente connessi, attraverso mezzi di trasmissione di potenza meccanica 14, ad un gruppo motori 15 ed encoder 16, i quali tramite un'elettronica di pilotaggio motori (driver dei motori) 17 sono controllati da segnali ricavati da un modello virtuale del volto umano ricostruito in un ambiente di grafica avanzata 3D caricato sul personal computer 1 dotato di sistema operativo Windows NT 128MB di RAM e scheda grafica con librerie OpenGL o sistemi equivalenti. Qui di seguito vengono descritti in maggior dettaglio i componenti del sistema .
Struttura scheletrica di supporto
La struttura di sostegno 11 è una riproduzione in resina di un cranio e di parte della colonna cervicale umana destinata a fungere da ancoraggio per gli attuatori 12, e ad essere rivestita con la pelle artificiale 13. La struttura presenta un vano interno (quello normalmente riservato alla massa cerebrale) entro cui vengono alloggiate, tramite vincoli, guaine per i cavi di trasmissione 14 che trasmettono la potenza meccanica dal gruppo motori agli attuatori. Le guaine innervano la struttura di sostegno attraverso fori passanti consentendo il posizionamento dei cavi tangenzialmente alla pelle.
La pelle artificiale 13 è realizzata nella presente forma realizzativa, mediante tecnica completamente manuale creando dapprima un calco dal vero in alginato, sul quale, dopo solidificazione, si depone manualmente una colata di gesso alabastrino che, dopo solidificazione, costituirà il negativo del volto dal quale, alla fine, si ricava uno stampo entro cui verrà colata gomma di silicone che, una volta solidificata, costituirà la pelle artificiale.
Muscoli artificiali
Gli attuatori 12 che svolgono la funzione dei muscoli sono una struttura in silicone 20 di forma sostanzialmente , ellissolidale allungata, schematizzata in figura 6, la cui anima è il cavo di trasmissione 14 della potenza meccanica prelevata dal gruppo motori. L'estremità della guaina 21 entro cui è disposto il cavo, viene fissata alla struttura di supporto nel punto di origine del muscolo, mentre il cavo di trasmissione 14 viene vincolato alla pelle con un qualsiasi mezzo idoneo, genericamente indicato con 22, ad esempio serrando mediante un grano la sua estremità nel foro di un cilindro metallico annegato in una protuberanza siliconica della superficie interna della pelle in corrispondenza del punto in cui termina il muscolo reale. Gli attuatori vengono realizzati per stampaggio colando il silicone liquido entro uno stampo cavo avente la forma dello specifico attuatore e lasciando asciugare. È quindi possibile creare attuatori di qualsiasi forma e dimensioni. Il movimento lineare del cavo 14 all'interno della massa di silicone 20 ne provoca l'accorciamento longitudinale ed un conseguente rigonfiamento trasversale permettendo sia di tirare la pelle 13 che di deformarla nel modo desiderato. Il muscolo artificiale scambia quindi con la pelle sia azioni tangenziali e normali alla superficie interna della pelle dovute al contatto con la sua superficie ellissoidale, sia quelle dovute all'azione diretta dell'estremità del cavo nel punto in cui esso è ancorato alla pelle stessa. La rigidezza del sistema di trasmissione cavoguaina permette di effettuare la retroazione per il controllo degli attuatori misurando lo spostamento direttamente sui motori e non sugli attuatori.
Gruppo motori
Come mostrato nelle figure 7 e 8, il gruppo motori è costituito da ventisei motori lineari divisi su due bancate. Ogni motore è composto da una bobina solidale ad un braccio 4 basculante 28 immersa tra due magneti fissi 29 (nord e sud) a forma di settore circolare di 45°. In ogni bancata, i bracci basculanti di ciascun motore sono equispaziati gli uni dagli altri e montati girevolmente su un asse 30 in maniera indipendente dagli altri. Infine, il circuito magnetico si chiude su un telaio 31 che sostiene i magneti fissi 29 e l'asse di rotazione 30. Per effetto della rotazione si ottiene lo spostamento lineare dell'estremità 28a di ciascun braccio basculante 28 dalla quale si preleva la potenza meccanica necessaria. In questo modo, a fronte di un angolo di rotazione massimo di 45°, si ottiene uno spostamento lineare massimo di 20 mm. Questi motori sono in grado di erogare allo spunto una forza di 12,5 N con un assorbimento massimo di corrente di 0.5 A. L'accelerazione massima raggiungibile è di 15.7 m/s<2>, mentre la velocità massima è di 0.78 m/s. Ripetitività e precisione dipendono dalle caratteristiche del trasduttore 32, che in questo caso è ad effetto Hall, e dalla modalità di pilotaggio che normalmente permettono di arrivare a ripetitività di ±5 μm e precisione di ±0.08 mm. Il cavo 14 necessario a trasmettere la potenza dal motore al rispettivo attuatore viene fissato all'estremità 28a di potenza dei bracci basculanti mediante un grano 33, mentre la guaina 21 viene riferita alla bancata mediante una boccola filettata 34 che si impegna nei fori realizzati su una piastra 35 posta sulla parte anteriore della bancata. Un sistema di ventole, non mostrato, assicura la convezione necessaria per lo smaltimento del calore prodotto dai motori.
Elettronica di controllo dei motori
L'elettronica è stata realizzata con filosofia modulare e permette l'alloggiamento dei driver dei motori controllati in ciclo chiuso, dei microprocessori programmabili, di una scheda elettronica per l'interfacciamento ad un personal computer e delle alimentazioni. La figura 9 mostra schematicamente l'elettronica di controllo. Nel caso specifico ogni modulo, indicato genericamente con 36, alloggia un microprocessore programmabile 37 e quattro driver 38 per i motori. La scheda madre 41 portante i moduli 36 comprende una connessione seriale RS232 indicata con 39 e un'alimentazione 40. Il protocollo è stato organizzato su 3 bytes: il primo per gli indirizzi, il secondo per la posizione ed il terzo per la velocità di spostamento. Il baud rate è di 57,6 Kbaud con un tempo di esecuzione del comando di 520 μm; tutti gli attuatori eseguono il comando in 12,5 m/s. Il microprocessore può essere programmato via software. Il controllo viene effettuato a ciclo chiuso tramite la lettura della velocità angolare delle bobine 27 mediante ì sensori 32 ad effetto Hall opportunamente tarati. Con questo sistema i motori possono essere azionati secondo dinamiche molto accurate, fino ad ottenere deformazioni degli attuatori e della pelle artificiale corrispondenti a quelle previste dal modello virtuale.
Modello virtuale
La realizzazione di un modello virtuale di un volto umano consente di ricavare le traiettorie spazio-temporali necessarie al pilotaggio di una testa antropomorfa o testa androide (sistema reale) in grado di simulare espressioni mimiche umane. Il modello virtuale del volto umano realizzato mette in evidenza il fatto che con questa tecnica è possibile controllare in parallelo un gran numero di attuatori in modo di far assumere perfino a sistemi fisici altamente complessi da essi dipendenti, quali ad esempio la pelle artificiale descritta in precedenza, le deformazioni desiderate e quindi la mimica facciale richiesta.
Per riprodurre al meglio un volto umano, il modello fisico della cute viene proiettato nell'ambiente virtuale mantenendo inalterate le sue proporzioni e definendo tale struttura come una superficie di deformazione (fase di modellazione); si crea poi il modello virtuale di ogni singolo muscolo parametrizzandolo e localizzandolo nella corretta posizione (fase di parametrizzazione); si creano quindi le dinamiche delle espressioni mimiche definendo quelli che sono i pattern motori spazio-temporali da associare ad ogni singolo attuatore per ottenere le deformazioni superficiali desiderate (fase di animazione) .
a) modellazione
Per proiettare una superficie ed il suo sistema di riferimento dallo spazio fisico nell'ambiente di sviluppo virtuale è necessario individuare un certo numero di punti tracciando meridiani e paralleli, sulla superficie stessa e servirsi di un dispositivo tastatore. Quest'ultimo è un organo mobile commerciale composto da una base, tre bracci meccanici interconnessi da relativi giunti e un punzone sull'estremità. Tramite un sistema di posizionamento manuale, il tastatore permette al punzone di individuare una qualsiasi posizione nello spazio rispetto alla sua base; la posizione viene RS232 al pc. I punti precedentemente tracciati sulla superficie da proiettare vengono così tastati, mappati in un sistema di riferimento tridimensionale e riportati dentro l'ambiente di sviluppo virtuale. Questi apparecchi, grazie ai loro programmi di gestione, sono compatibili con la maggior parte dei software commerciali. L'ambiente di sviluppo ricrea da questi punti le linee parallele che li interpolano e da esse il modello superficiale tastato. Come anche schematizzato in figura 10, nel caso specifico è stato realizzato un modello superficiale composto da tredici linee di sezione superficiale, in senso antiorario, partendo dalla metà del volto e da quindici linee di sezione trasversale partendo dalla bocca. Per creare la spaziatura della cavità orale è possibile aggiungere manualmente a queste curve punti per l'interno della bocca. Selezionando tutte le curve così ottenute si creerà una
superficie tramite il comando di loftcomune per i software 3D. Ovviamente l'intero volto sia reale che in forme di fantasia potrà anche essere creato manualmente.
b) parametrizzazione
Per creare i modelli dei muscoli artificiali si sono seguite le fasi seguenti:
realizzazione di uno scheletro di base;
creazione delle sue propiertà volumetriche duplicazione di questa struttura (attuatore e base) e posizionamento dei suoi cloni nelle sedi di applicazione degli attuatori fisici (muscoli artificiali)
definizione delle proprietà di deformazione di ogni singolo attuatore;
- indicazione dell'influenza che ogni singolo attuatore ha sulla superficie. .
Per la creazione dello scheletro di base si crea un osso come descritto in precedenza, a cui vengono assegnate delle proprietà volumetriche Questa struttura rappresenta generico attuatore che viene posizionato e scalato in base alla posizione e dimensione del muscolo artificiale. Il punto di applicazione dell'attuatore dovrà essere posizionato corrispondenza del punto di attacco del muscolo artificiale sulla struttura di supporto e la sua estremità in corrispondenza del punto di attacco del muscolo artificiale sulla pelle artificiale L'apertura/chiusura della bocca viene attuata creando un osso di controllo e posizionandolo sull'attaccatura della mascella Esso viene posizionato dove realmente ruota la mascella durante l'apertura della bocca e concatenato con i quattro attuatori della parte sottostante la mascella. Ciò permette una rotazione sul nuovo osso creato rispetto a un punto fisso, in modo da definire per rotazione e non per traslazione l'apertura e la chiusura della bocca stessa.
Posizionati tutti gli attuatori per metà del volto, viene costruito un osso di supporto di base Questo scheletro di base, collegato con tutti gli attuatori di una semìfaccia è facilmente duplicabile e specchiabile per l'altra metà del viso ottenendo così una perfetta simmetria. Le due semifacce hanno quindi un loro osso di base. Si passa quindi alla realizzazione di un osso padre di controllo generale che viene collegato agli ossi di controllo delle due semifacce e quindi a tutti gli attuatori, creando così una struttura gerarchica a partire dall'osso padre. Ottenuta questa struttura si vanno a creare gli attuatori che risiedono sull'asse mediano del volto ed un osso padre di essi. L'osso padre degli attuatori dell'asse mediano viene anch'esso asservito all'osso padre di controllo generale .
Per definire le singole proprietà di deformazione, come precedentemente indicato, ad ogni attuatore viene associato un flexor. Affinché i flexor abbiano influenza sul volto, vengono interconnessi sia con la superficie cilindrica attorno all'osso sia con la superficie del volto, selezionandoli contemporaneamente con i rispettivi ossi, la superficie del volto ed i cilindri e correlandoli tramite il comando rigid bind. Una volta creati e dimensionati opportunamente tutti i flexor, si vanno ad indicare le influenze che essi hanno sulla superficie. Le aree di effetto e le deformazioni di ogni attuatore vengono modificate osservando l'influenza che queste avranno sulla superficie del volto. Tramite l'apposito pannello paint tool è possibile evidenziare l'influenza del flexor sulle strutture interconnesse e modificarla con facilità. In questo modo le potenzialità espressive risultano illimitate, in quanto la struttura virtuale può adattarsi a qualsiasi volto e qualsiasi configurazione reale degli attuatori.
Oltre alla forma, è possibile dotare il volto virtuale di colori, sfumature ed ombre fino a renderlo del tutto simile ad un volto umano. Questa procedura può essere effettuata direttamente dal software di grafica virtuale o esemplificata tramite l'applicazione di una texture. La texture è un'immagine che, mappata sulla superficie, ne segue le deformazioni. Come texture quindi è possibile selezionare la foto digitale in formato bitmap o equivalenti del volto desiderato. La texture, pur essendo proiettata da un piano, si adatta in 3D e si modifica automaticamente in modo dinamico con la superficie. c) animazione
In questo fase, tramite le strutture precedentemente sviluppate, vengono implementate le dinamiche delle espressioni mimiche definendo quelli che sono i pattern motori spaziotemporali da associare ad ogni singolo attuatore per ottenere le deformazioni superficiali desiderate.
c1) Deformazioni spaziali
L'andamento nello spazio delle deformazioni degli attuatori e della superficie del volto può essere deciso definendo le chiavi spaziali attraverso il tool set driven key. Tramite questo tool è possibile vincolare a valori (chiavi parametri geometrici corrispondenti a deformazioni delle strutture virtuali create. Il software movimenta il modello secondo traiettorie che soddisfano le caratteristiche del modello creato fino a questo momento ed il passaggio per questi valori. Le deformazioni associate vengono dunque fissate replicando le deformazioni fisiche reali che avvengono nell'attuatore stesso. Nel caso specifico abbiamo vincolato soltanto i parametri minimi e massimi di estensione/accorciamento e di rigonfiamento di ogni flexor agendo sui fattori di scala lungo l'asse longitudinale e trasversale .
Affinché sia possibile controllare i fattori di scala di più attuatori contemporaneamente ci si può servire dei locator (nei comuni software 3D) organizzati gerarchicamente. Il locator è una struttura a cui è possibile associare uno o più elementi ed influenzarne contemporaneamente le variabili. Per ogni locator gli elementi associati sono gli attuatori mentre le variabili sono i fattori di scala. Si creano così degli attributi del locator la cui variazione determina una variazione numerica dei corrispondenti parametri geometrici del flexor passando per le chiavi spaziali. La procedura scelta è quella di creare una gerarchia di locator che controlli l'influenza dei vari attuatori, raggruppando attuatori adiacenti in un unico locator. Nel caso specifico i locator creati sono:
- bocca : muscoli zigomatico, risorio, depressore angolo della bocca, levatore del labbro superiore e depressore del labbro inferiore;
- fronte: muscoli corrugatore del sopracciglio e frontale;
occhio: muscoli oculari;
- naso: muscoli levatori del labbro superiore adiacente al naso;
mascella: muscoli che movimentano la mascella.
I locator creati separatamente vengono a loro volta interconnessi in gruppi fino al locator padre. Grazie a questa struttura gerarchica sarà possibile agire sugli attributi del locator padre per influenzare contemporaneamente nel modo desiderato i movimenti di tutti gli attuatori. Infatti, le espressioni vengono definite come attributi del locator padre. Nel caso specifico sono state definite le espressioni sorriso, disgusto ed indecisione. Tenendo presente che l'uomo è in grado di effettuare un numero elevatissimo di espressioni, è possibile modellare approssimativamente quaranta espressioni base, combinando le quali, si ottengono la maggioranza delle espressioni facciali umane. Le espressioni base possono essere suddivise in gruppi separati: fronte, occhi, naso, bocca e mascella. Per una trattazione dettagliata vedere Peter Ratner, Mastering 3D animation, Allworth Press, New York, 2000. Variando in modo opportuno nel tempo le percentuali delle espressioni base si ottiene l'espressione desiderata. Nel caso specifico si può ottenere un'espressione di disgusto deformando del 100% le variabili dei locator precedentemente definiti. Il panorama delle possibili espressioni e combinazioni è illimitato. Tramite una variabile sarà possibile monitorare i quale espressione viene fatta assumere al modello.
c2) Deformazioni temporali
L'andamento nel tempo delle deformazioni degli attuatori e della superficie del volto può essere deciso definendo le chiavi temporali, time elider, tool presente in tutti gli ambienti di sviluppo 3D. Nel time slider si fissano gli stati del modello negli istanti desiderati per ogni espressione. Il software ricostruisce tutti gli stati intermedi dell'andamento della deformazione degli attuatori nel tempo e quindi l'espressione .
Agendo quindi sulla deformazione spazio-temporale di ogni attuatore, si può variare la deformazione che la pelle subisce fino ad ottenere l'espressione desiderata. Nel caso si volesse agire direttamente sulla superficie della pelle ed osservare le conseguenti deformazioni degli attuatori sarà necessario racchiudere la superficie esterna in un'altra struttura presente nel software 3D, il lattice di deformazione. Questa struttura racchiude in un reticolo tridimensionale fitto a piacere la superficie del volto. Agendo sui punti di questo reticolo è possibile modificare l'espressione a piacimento.
Software di pilotaggio di interfaccia fra il modello virtuale e il sistema reale
Durante l'effettuazione dell'espressione, le deformazioni pazio-temporali degli attuatori vengono salvate in un file ASCII e rinominate secondo una tabella di corrispondenza tra la scala metrica precedentemente definita e attributi verbali. Il file sarà una matrice costituita da valori reali delimitati da tabulazioni. Le colonne sono gli attuatori, le righe il tempo espresso in fotogrammi (25 fotogrammi/secondo) e gli elementi la percentuale di deformazione dell'attuatore lineare, ottenuta dagli attributi precedentemente definiti. Questa matrice è del formato accettato dal software di pilotaggio. Una matrice tipica ottenuta per l'espressione disgusto precedentemente citata è illustrata, per una semifaccia, nella figura 11.
Selezione dell'espressione per il pilotaggio del sistema
L'insieme delle espressioni ottenute costituirà un database da cui attingere. Nel caso specifico è stata scritta una funzione che prevede come ingresso quale espressione o combinazione adottare. Ad ogni espressione del database, corrisponde un numero naturale (0 è il valore di riposo), mentre ad ogni combinazione il numero reale ad una cifra decimale (10 valori) compreso tra un'espressione ed un'altra. Aumentando le cifre decimali si possono aumentare le possibili combinazioni. Un file ASCII conterrà la tabella di corrispondenza tra le definizioni verbali delle espressioni e chiesta scala metrica. La suddetta funzione è sempre attiva. Qualsiasi software di intelligenza artificiale, analisi di dati, algoritmo decisionale, operatore, ecc. potrà aggiornare in tempo reale l'espressione da effettuare semplicemente aggiornando i valori in ingresso alla funzione. Nel caso specifico, abbiamo realizzato la simulazione di una masticazione con successiva risposta edonistica al cibo assaggiato. La funzione di cui sopra può essere esemplificata con:
global proc funzione ($espressione)
{
select locator_padre,-setAttr locator_padre.espressione $espressione; playButtonStart;
playButtonForward;
}
Pilotaggio
Il pilotaggio può avvenire secondo due modalità:
- funzionamento off-line
- funzionamento on-line
Nel primo caso il software di pilotaggio, in base alla scelta effettuata dall'algoritmo decisionale, opererà attingendo le matrici di espressione (traiettorie), precedentemente calcolate, da un supporto di memoria di massa nel computer. Nel secondo caso, avendo a disposizione una work station di ultima generazione, l'ambiente virtuale ed il software di pilotaggio possono interagire con l'algoritmo decisionale calcolando in tempo reale l'espressione da effettuare e pilotando gli attuatori lineari. Vantaggiosamente, possono essere impiegati comuni algoritmi di correzione di eventuali scostamenti tra la traiettoria impostata e quella effettivamente eseguita dovuti ad errori e/o vizi non altrimenti riparabili del sistema meccanico articolato. Un algoritmo correttore noto nella letteratura comune che può essere usato è l'Adaptive Learning o equivalenti. Per maggiori dettagli si vedano: International Workshop On Nonlinear and Adaptive Control: issues in Robotics, Grenoble, France Nov 21-2, Carlos Caundes De Wit (Editore), 1991; John H. Andreae, Associative Learning: for a Robot Intelligence, Imperial College Press, Ottobre 1998.
Da quanto sopra precede risulta chiaro che con il metodo secondo la presente invenzione, grazie all'impiego di un ambiente di sviluppo di grafica virtuale, è stato possibile costruire un modello estremamente corrispondente ad un volto reale umano, sia in termini di dinamiche degli attuatori che di deformazioni cutanee. Ciò ha consentito di pianificare e controllare, nell'ambito dell'ambiente virtuale, quella che sarà la successione dì espressioni che si vuole ottenere da sistema reale, prima ancora che esso muova anche uno dei suoi attuatori .
Con tale tecnica è inoltre possibile costruire un database di espressioni illimitato, ottenere espressioni nuove sulla base del database ottenuto senza necessariamente ricalcolarle con il modello virtuale, ottenere espressioni corrispondenti alla pronuncia dei fonemi umani.
Inoltre il modello può essere sviluppato con le fattezze di un qualsiasi volto umano desiderato e può includere le più svariate configurazioni di attuatori sottocutanei corrispondenti a quelli reali. Grazie ad esso è possibile studiare off-line la gamma di espressione desiderata, salvarla nel database e con esso controllarne i movimenti reali degli attuatori. L'esempio sopra riportato mette in evidenza il fatto che non solo è possibile controllare con il metodo secondo l'invenzione un gran numero di attuatori, ma persino sistemi fisici altamente complessi da essi dipendenti, quale ad esempio la pelle artificiale che riproduce il volto umano tesa su una struttura di supporto. In più, una volta creato il modello, è possibile utilizzarlo per ricavarne informazioni nei due versi:
impostando un certo moto degli attuatori il modello restituisce le modifiche dell'espressione che tale moto induce sulla pelle,
- partendo da una sequenza di espressioni è possibile ricavare il moto degli attuatori che permette di realizzarla.
Con l'uso di tecniche di cattura del movimento, è inoltre possibile mettere a punto un sistema di controllo che acquisisca in tempo reale le espressioni del volto di un soggetto e le riproduca per mezzo del modello reale.
Oltre che per l'applicazione illustrata nell'esempio, il metodo secondo la presente invenzione può essere utilizzato per la realizzazione, movimentazione e controllo di sistemi meccanici articolati e/o deformabili comunque complessi, quali ad esempio: bracci meccanici articolati antropomorfi; mani meccaniche antropomorfe; esapodi articolati; androidi e/o animatroni di qualsiasi forma; androidi, pupazzi e/o bambole animati; androidi, animatroni, animali meccanici, esseri frutto di fantasia e/o pupazzi in grado di mimare espressioni e/o parlare. I campi di applicazione dei sistemi suddetti sono: robotica, meccanica, cinematografia, entertainment, mondo dei giocattoli.
Possibili ulteriori applicazioni del sistema oggetto dell'invenzione possono quindi essere le seguenti:
- controllo di un attore elettronico, cioè un animatrone o un suo modello in grado di esprimere movimenti, espressioni, mimica e dialoghi umani;
controllo di un insegnante elettronico, cioè un animatrone o un suo modello in grado di insegnare effettuando lezioni e colloquiando con gli studenti;
controllo di protesi sostitutive di parti del corpo umano, quali ad esempio: braccia, gambe, dita, volto ed organi; e/o di protesi ortesiche,
- studio, e/o controllo di prototipi di dimostratori, di lesioni organiche e menomazioni funzionali prodotte da malattie, quali ad esempio: malfunzionamento di muscoli e/o organi in genere;
- controllo di un fisioterapista elettronico in cui modelli di organi da rieducare indicano gli esercizi ottimali e ne valutano l'efficacia.
Varianti e/o modifiche potranno essere apportate al metodo di controllo di un sistema meccanico articolato e/o deformabile secondo la presente invenzione, senza per questo uscire dall'ambito protettivo dell'invenzione medesima.
Claims (21)
- RIVENDICAZIONI 1. Metodo per il controllo di un sistema meccanico articolato e/o deformabile, comprendente sottosistemi passivi da movimentare e/o deformare medianti attuatori connessi tra loro e a detti sottosistemi tramite giunti e soggetti a vincoli, caratterizzato dal fatto di comprendere le seguenti fasi: creare un modello virtuale di detto sistema mediante software di grafica avanzata 3D; - definire in detto modello virtuale le variabili di controllo necessarie al pilotaggio di detto sistema; - animare detto modello virtuale nel modo voluto per estrarre da esso i valori temporali di dette variabili di controllo; - salvare i valori estratti; inviare i valori salvati a driver di controllo degli attuatori di detto sistema per il pilotaggio di questi ultimi.
- 2. Metodo secondo la rivendicazione 1, in cui l'animazione di detto modello virtuale è ottenuta impostando l'andamento voluto delle variabili di controllo degli attuatori.
- 3. Metodo secondo la rivendicazione 1, in cui l'animazione di detto modello virtuale è indotta graficamente per ricavare l'andamento delle variabili di controllo degli attuatori che consentono di realizzare corrispondenti movimenti e/o deformazioni nel sistema reale.
- 4. Metodo secondo la rivendicazione 1, in cui l'animazione di detto modello virtuale è ottenuta mediante tecnica di cattura del movimento.
- 5 . Metodo secondo una qualsiasi delle rivendicazioni precedenti , in cui la creazione di detto modello virtuale comprende le seguenti fasi: proiezione di detti sottosistemi passivi nell'ambiente virtuale mantenendo inalterate proporzioni e distanze reciproche; - creazione e localizzazione di attuatori, vincoli e giunti nelle loro corrette posizioni spaziali.
- 6. Metodo secondo la rivendicazione 5, in cui la fase di creazione e localizzazione di attuatori, vincoli e giunti comprende le fasi di: - realizzazione dì uno scheletro di base per ciascun attuatore, - creazione delle proprietà volumetriche di detto scheletro di base; - posizionamento nello spazio di detto scheletro di base; definizione delle sue proprietà di movimentazione e/o deformazione ; - definizione dell'influenza che ciascun attuatore, vincolo o giunto ha sui sottosistemi da essi dipendenti.
- 7. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui l'estrazione dei valori e delle variabili di controllo è ottenuta con il comando getAttr o equivalenti.
- 8. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui i valori estratti dalle variabili di controllo vengono salvati in un file ASCII mediante comando fwrite o equivalenti.
- 9. Metodo secondo la rivendicazione 8, in cui l'insieme dei file salvati costituisce un database, da cui attingere file di istruzioni per movimentazioni e/o deformazioni specifiche con cui pilotare i driver dei motori.
- 10. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui detto sistema meccanico articolato e/o deformabile da controllare è un volto artificiale.
- 11. Metodo secondo la rivendicazione 10, in cui detto sottosistema passivo è costituito da pelle artificiale.
- 12. Metodo secondo la rivendicazione 11, in cui i movimenti e/o le deformazioni di detta pelle artificiale vengono impartiti attraverso muscoli artificiali che la connettono ad una struttura dì sostegno sostanzialmente a forma di cranio ed in cui sono previste le seguenti fasi operative: - creazione di un modello virtuale di detto volto artificiale mediante software di grafica avanzata 3D; definizione in detto modello virtuale delle variabili di controllo necessarie alla movimentazione di detto volto artificiale; - animazione di detto modello virtuale nel modo voluto per estrarre da esso i valori temporali di dette variabili di controllo : - salvataggio dei valori estratti; invio dei valori salvati a driver di controllo di detti muscoli artificiali per il loro pilotaggio.
- 13. Metodo secondo la rivendicazione 12, in cui la creazione del modello virtuale di detto volto artificiale comprende le seguenti fasi: - proiezione nell'ambiente virtuale del modello fisico della pelle artificiale di detto volto mantenendo inalterate le proporzioni; creazione del modello virtuale di ogni singolo muscolo localizzandolo nelle sue corrette posizioni spaziali insieme ai relativi vincoli e giunti;
- 14. Metodo secondo la rivendicazione 13, in cui la proiezione nell'ambiente virtuale del modello fisico della pelle artificiale viene realizzato individuando un certo numero di punti sulla superficie della pelle ottenuti tracciando meridiani e paralleli su di essa, rilevando la posizione spaziale di detti punti mediante un dispositivo tastatore, riportando nell'ambiente virtuale i valori rilevati, ricreando linee parallele che interpolano detti punti e interpolando dette linee per creare una superficie.
- 15. Metodo secondo una qualsiasi delle rivendicazioni 13 e 14, in cui la creazione di un modello dei muscoli artificiali comprende la creazione di un osso a cui vengono assegnate proprietà volumetriche, la duplicazione di esso in una pluralità di cloni che vengono disposti, opportunamente scalati , nelle posizioni corrispondenti a ciascun muscolo artificiale, la realizzazione di un osso di controllo per ciascuna semifaccia e di un osso padre di controllo generale dei due ossi di controllo, la creazione di ossi residenti sull'asse mediano del volto e di un loro osso padre di controllo anch'esso asservito a detto osso padre di controllo generale .
- 16. Metodo secondo la rivendicazione 15, in cui per definire le il singole proprietà di deformazione, ad ogni attuatore ricreato nell'ambiente virtuale viene associato un flexor, l'influenza di quest'ultimo sulle strutture interconnesse venendo evidenziate e modificate per mezzo di un pannello paint tool.
- 17. Apparecchiatura per il controllo di un sistema meccanico articolato e/o deformabile comprendente almeno un sottosistema passivo da movimentare e/o deformare mediante attuatori connessi tra loro tramite giunti e vincoli, caratterizzata dal fatto di comprendere mezzi ad elaboratore su cui è implementato un software di grafica avanzata 3D per la creazione di un modello virtuale di detto sistema meccanico, atto a generare file di istruzioni per pilotare detti attuatori, essendo previsti mezzi a motore per il comando di detti attuatori e un'interfaccia di controllo atta a ricevere detti file di istruzioni e ad elaborarli per pilotare detti mezzi a motore.
- 18. Apparecchiatura secondo la rivendicazione 17, in cui detta interfaccia di controllo comprende mezzi a microprocessore programmabile connessi a detti mezzi a elaboratore e controllanti driver per detti mezzi a motore.
- 19. Apparecchiatura secondo una qualsiasi delle rivendicazioni 17 e 18, in cui detto sistema meccanico articolato e/o deformabile è un volto artificiale comprendente una struttura di sostegno e detto sottosistema passivo da movimentare e/o deformare è una pelle artificiale di detto volto, detti attuatori essendo muscoli artificiali formati da un corpo ellissoidale allungato in materiale flessibile con un'anima longitudinale rigida fissata all'estremità di detto corpo che è connessa a detta pelle e scorrevole rispetto all'altra estremità di detto corpo che è fissa rispetto a detta struttura di sostegno, detta anima essendo connessa a detti mezzi a motore .
- 20. Apparecchiatura secondo una qualsiasi delle rivendicazioni da 17 a 19, in cui detti mezzi a motore sono costituiti da motori lineari atti a trasmettere ciascuno alle rispettive anime rigide di detti muscoli artificiali uno scorrimento di ampiezza prestabilita.
- 21. Metodo per il controllo di un sistema meccanico articolato e/o deformabile e relativa apparecchiatura sostanzialmente come sopra descritto ed illustrato con riferimento ai disegni annessi
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ITPI20010007 ITPI20010007A1 (it) | 2001-02-07 | 2001-02-07 | Metodo per il controllo di un sistema meccanico articolato e/0 deformabile e sue applicazioni |
AU2002236201A AU2002236201A1 (en) | 2001-02-07 | 2002-02-06 | Method for controlling an articulated and/or deformable mechanical system and its applications |
PCT/IT2002/000072 WO2002062535A2 (en) | 2001-02-07 | 2002-02-06 | Method for controlling an articulated and/or deformable mechanical system and its applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ITPI20010007 ITPI20010007A1 (it) | 2001-02-07 | 2001-02-07 | Metodo per il controllo di un sistema meccanico articolato e/0 deformabile e sue applicazioni |
Publications (1)
Publication Number | Publication Date |
---|---|
ITPI20010007A1 true ITPI20010007A1 (it) | 2002-08-07 |
Family
ID=11452972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ITPI20010007 ITPI20010007A1 (it) | 2001-02-07 | 2001-02-07 | Metodo per il controllo di un sistema meccanico articolato e/0 deformabile e sue applicazioni |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2002236201A1 (it) |
IT (1) | ITPI20010007A1 (it) |
WO (1) | WO2002062535A2 (it) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115056231B (zh) * | 2022-07-26 | 2023-12-22 | 江苏邑文微电子科技有限公司 | 半导体设备机械臂和动画的运动匹配方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5214758A (en) * | 1989-11-14 | 1993-05-25 | Sony Corporation | Animation producing apparatus |
US5642291A (en) * | 1989-12-22 | 1997-06-24 | Amada Company, Limited Of Japan | System for creating command and control signals for a complete operating cycle of a robot manipulator device of a sheet metal bending installation by simulating the operating environment |
US5586224A (en) * | 1990-12-25 | 1996-12-17 | Shukyohojin, Kongo Zen Sohonzan Shorinji | Robot or numerical control programming method |
US5511147A (en) * | 1994-01-12 | 1996-04-23 | Uti Corporation | Graphical interface for robot |
US5495410A (en) * | 1994-08-12 | 1996-02-27 | Minnesota Mining And Manufacturing Company | Lead-through robot programming system |
US5933151A (en) * | 1997-03-26 | 1999-08-03 | Lucent Technologies Inc. | Simulated natural movement of a computer-generated synthesized talking head |
JPH11134017A (ja) * | 1997-10-27 | 1999-05-21 | Honda Motor Co Ltd | オフラインティーチング方法 |
JP3655083B2 (ja) * | 1998-02-25 | 2005-06-02 | 富士通株式会社 | ロボットの位置決めを行うインタフェース装置 |
JP3537362B2 (ja) * | 1999-10-12 | 2004-06-14 | ファナック株式会社 | ロボットシステム用グラフィック表示装置 |
-
2001
- 2001-02-07 IT ITPI20010007 patent/ITPI20010007A1/it unknown
-
2002
- 2002-02-06 AU AU2002236201A patent/AU2002236201A1/en not_active Abandoned
- 2002-02-06 WO PCT/IT2002/000072 patent/WO2002062535A2/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
WO2002062535A3 (en) | 2004-03-04 |
AU2002236201A1 (en) | 2002-08-19 |
WO2002062535A2 (en) | 2002-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2882968C (en) | Facilitating generation of autonomous control information | |
US10500726B2 (en) | Facilitating device control | |
Casadio et al. | Braccio di Ferro: a new haptic workstation for neuromotor rehabilitation | |
CN104484522B (zh) | 一种基于现实场景的机器人模拟演练***的构建方法 | |
Kulakov et al. | Methods of remote control over space robots | |
Bartsch et al. | Development and control of the multi-legged robot mantis | |
Petrescu et al. | Inverse kinematics at the anthropomorphic robots, by a trigonometric method | |
Zagal et al. | UCHILSIM: A dynamically and visually realistic simulator for the RoboCup four legged league | |
Shapiro et al. | Dynamic animation and control environment | |
KR20110117908A (ko) | 리깅 복제를 통한 캐릭터 리깅 자동화 방법 및 장치 | |
US5586224A (en) | Robot or numerical control programming method | |
CN108908298A (zh) | 一种融合虚拟现实技术的主从式喷涂机器人示教*** | |
Maloisel et al. | Automated routing of muscle fibers for soft robots | |
US20230286144A1 (en) | Real-time vibration-suppression control for robotic systems | |
US20210122035A1 (en) | Machine vision parsing of three-dimensional environments employing neural networks | |
ITPI20010007A1 (it) | Metodo per il controllo di un sistema meccanico articolato e/0 deformabile e sue applicazioni | |
Zhang et al. | Dentaltouch: A haptic display with high stiffness and low inertia | |
Caasenbrood et al. | Sorotoki: A Matlab toolkit for design, modeling, and control of soft robots | |
Mikić et al. | Software modeling of multi-degree-of-freedom motion system using matrices | |
Moussa et al. | MPEG-4 FAP animation applied to humanoid robot head | |
Bai et al. | Parallel calligraphy robot: Framework and system implementation | |
Schaub et al. | Simulation of artificial intelligence agents using Modelica and the DLR visualization library | |
ES2963497T3 (es) | Procedimiento para la prueba háptica de un objeto | |
Jiang et al. | Modeling a realistic 3D physiological tongue for visual speech synthesis | |
Starodubtsev et al. | Animatronic Hand Model on the Basis of ESP8266 |