Convegno Nazionale XIV ADM XXXIII AIAS
Innovazione nella Progettazione Industriale
Bari, 31 Agosto - 2 Settembre 2004
3D MOTION CONTROLLER INTEGRATION IN INTERACTIVE
FREE-FORM SURFACE MODELLING
Alfredo Liverani(1)
, Giancarlo Amati(1)
, Gianni Caligiana(1)
(1) Università degli Studi di Bologna, DIEM, [email protected]
Abstract
Nel presente lavoro si riportano i risultati ottenuti nella modellazione di superfici free-form
tramite l’integrazione di un controller a sei gradi di libertà (6DOF) e una tavoletta grafica, per
la realizzazione di un sistema di interazione a due mani. In generale, un controller 6DOF, è
impiegato per la gestione del punto di vista (telecamera virtuale) in un sistema
tridimensionale. Nel nostro caso, invece, a differenza dei sistemi CAD attualmente sul
mercato, il controller è stato impiegato per la creazione di modelli free-form in modo
sincronizzato con gli input della tavoletta grafica e non solo come ausilio per la
visualizzazione del modello.
L’interfaccia realizzata permette di disegnare in modo interattivo sul piano di lavoro che viene
ruotato e traslato mediante dalla mano sinistra mediante il controller 6DOF, mentre la mano
destra tratteggia lo sketch della curva intermedia di una superficie di skinning.
I risultati ottenuti sono stati che, dopo un breve periodo di apprendimento dell’uso del motion
controller, l’attività del designer è più concentrata alla creazione delle forme invece che
dedicare la sua attenzione all’interazione con il computer.
Keywords: 6DOF, interazione bi-manuale, modellazione a forma libera.
1. Introduzione
Lo sviluppo delle tecnologie informatiche hardware e software ha permesso ai sistemi CAD
di essere potenziati con molti strumenti dedicati al miglioramento, in fase di design
concettuale, dell’interazione uomo-macchina. La necessità dei designers è quella di trasferire
in modo rapido e intuitivo le idee di forma in modelli di superficie tali da permettere l’inizio
del lavoro di affinamento e valutazione delle versioni alternative.
Negli ultimi anni la scienza della Human Computer Interaction (HCI) ha aperto la strada a
studi molto interessanti sulle interfacce software e hardware e al loro miglioramento [7-10].
Alcuni autori hanno focalizzato l’attenzione sulla realizzazione di interfacce che minimizzino
la distrazione dell’operatore rispetto al lavoro primario di disegno e modellazione [9]. Infatti
l’interfaccia si trova sempre a scontrarsi con la necessità di essere il più possibile completa e
quindi ad occupare spazio sempre maggiore sullo schermo, quanto maggiori sono le
funzionalità offerte all’operatore. Di contro, l’area riservata alla modellazione viene ad essere
compressa costringendo il designer ad una spesa di tempo considerevole nella lettura ed
interpretazione dei comandi mostrati nei menu e sottomenu, oppure nelle icone grafiche.
2
Mentre in vari settori sono stati fatti passi avanti nel senso dello sviluppo di soluzioni
combinate hardware e software che potessero superare il problema dell’eccessiva attenzione
da parte dell’operatore sullo strumento piuttosto che sul disegno, purtroppo nel settore dei
sistemi CAD commerciali, i miglioramenti e le ottimizzazioni attuate sono stati finora
orientati a ridurre il numero complessivo dei “click”, ovvero le azioni richieste per arrivare al
risultato richiesto, e non alla ristrutturazione e ideazione di nuovi modi di lavorare e interagire
con il computer. In questo senso abbiamo visto proliferare un gran numero di “wizard”
(procedure guidate) con le quali l’operatore viene accompagnato attraverso varie scelte
semplici all’ottenimento del risultato. Ma, pur riconoscendo l’efficacia di questo comune
modo di risolvere il problema dell’interazione uomo-macchina, si possono ravvisare almeno
due problemi:
1) l’operatore non è in grado di sapere durante le scelte del wizard come risulterà la
forma finale (solo attraverso la conoscenza approfondita del sistema potrà figurarsi
una soluzione di massima);
2) l’interfaccia richiede comunque una gerarchizzazione di base dei comandi di
modellazione, atta ad impostare alcune procedure guidate. Questo approccio è
necessario per la semplificazione dei wizard stessi, che diversamente
presenterebbero una gran quantità di opzioni e scelte durante il percorso.
Un esempio tipico di questo approccio è la comune suddivisione dei comandi di modellazione
delle superfici in quattro schemi basilari, mostrati in Figura 1: a) superficie sweep; b)
superficie rigata; c) superficie di skinning, di tipo lofting o network; d) superficie patch.
Questi quattro comandi di modellazione fanno riferimento in realtà ad algoritmiche molto
simili per la creazione della superficie NURBS, ma vengono suddivisi in questo modo per
dare maggiore facilità di uso all’operatore quando interpreta una forma reale e per
semplificare a monte le operazioni di scelta richieste dal wizard di generazione.
Superficie sweep
Superficie skinning(lofting oppure network)
Superficie rigata
Superficie patch
Curva base (section)
Curva base (sections)Edge curves
Drive curve
(Path curve)
[anche non lineare]
Curva base (section)
Curva base (section)
Figure 1. Tipi di superfici che richiedono comandi diversi.
3
La manipolazione a due mani (two-handed paradigm) [1][2][3], è sicuramente la modalità di
interazione più vicina alla gestualità umana e molti autori hanno prodotto varia letteratura in
merito. I sistemi CAD moderni, però, sono ancora carenti nel fornire questo tipo di
interazione con l’utente e comunque si tratta di strumenti opzionali che non si integrano
completamente con l’ambiente di modellazione.
Solo nel campo della Realtà Virtuale sono stati sviluppati numerosi paradigmi di
modellazione bi-manuale completa, che però si rivela al momento piuttosto complessa da
introdurre nel campo industriale a causa dei costi dei sistemi e della necessità di riscrittura
delle interfacce software.
Nel presente articolo verrà illustrato l’esperimento di implementazione di completa
integrazione di uno strumento di input a sei gradi di libertà con lo scopo di superare il
paradigma dell’interfaccia basata su wizard e rendere più semplice e intuitivo la creazione
interattiva di superfici di qualsivoglia tipo mediante un’unica procedura intuitiva.
2. L’ambiente di sviluppo utilizzato.
2.1. L’hardware impiegato.
Il BM-CAD (Bi-Manual CAD) nasce sull’idea di poter muovere il piano di lavoro sul quale
l’operatore disegna la curva di sezione o di bordo di una superficie mediante uno strumento
tridimensionale che permetta spostamenti e rotazioni di un piano con 6 gradi di libertà. Il
sistema di movimento del piano inoltre dovrebbe superare le difficoltà di posizionamento
caratteristiche di molti ambienti di Realtà Virtuale, i quali richiedono complesse procedure di
messa a punto. Inoltre l’apparecchiatura dovrebbe essere in grado di far appoggiare la mano
dell’operatore sul tavolo di lavoro, evitando l’affaticamento procurato da numerose ore di
modellazione.
Lo strumento che risponde a queste esigenza è stato individuato nel CADMan della
3DConnexion, equipaggio già utilizzato in molti ambienti CAD per il movimento interattivo
della telecamera virtuale (punto di vista) (Figura 2 a sinistra). Il sistema fornisce due
spostamenti (x, y) nel piano del tavolo, come un classico mouse, e un terzo (z) mediante la
pressione in senso verticale della manopola mobile. Le rotazioni sono fornite dai movimenti
attorno agli assi menzionati in precedenza, garantendo in questo modo uno strumento di input
a sei gradi di libertà (6DOF).
Figura 2. Attrezzature che costituiscono l’hardware indispensabile al funzionamento del BM-CAD.
3DConnexion CADMan
Left hand
Wacom Intuos2
Right hand
3DConnexion CADMan
Left hand
Wacom Intuos2
Right hand
4
Mentre il CADMan è destinato alla movimentazione nello spazio del piano di sketch,
impegnando la mano sinistra, la mano destra interagisce con il classico mouse o con una
tavoletta grafica Intuos2 della Wacom (Figura 2 a destra). Questo strumento permette di
disegnare la curva di sezione o di contorno della superficie, vincolando direttamente l’input
dei punti di controllo a giacere sul piano di sketch (vedere anche Figura 4 a destra). Il
software consente l’uso contemporaneo dei due strumenti senza alcun appesantimento delle
operazioni di modellazione.
2.2. Le librerie software.
Il BM-CAD è stato sviluppando utilizzando varie librerie grafiche e geometriche che ne
garantiscono alcune caratteristiche particolarmente gradite in uno strumento di ricerca:
1) completa apertura del sorgente per quanto riguarda la GUI (Graphical User
Interface) e l’infrastruttura di gestione degli eventi;
2) una programmazione di tipo OOP (Object Oriented Programming) che facilita il
riutilizzo del codice e la sua corretta strutturazione;
3) la trasparenza nei confronti della gestione del database geometrico (B-Rep) a
vantaggio della velocità di scrittura del codice;
4) la gestione semplificata della visualizzazione grafica delle primitive;
5) il facile accesso alle chiamate di selezione degli oggetti geometrici mediante mouse
o altri strumenti di input;
L’assemblaggio di librerie software note e di ampia disponibilità e documentazione, ha
permesso il rispetto di tutte queste caratteristiche. Più in dettaglio BM-CAD è composto da:
A) Spatial ACIS Toolkit per il kernel geometrico e la gestione matematica del database
B-Rep;
B) Hoops 3D and TGS Open Inventor per la visualizzazione grafica della geometria;
C) Trolltech QT per la GUI (Graphical User Interface).
In Figura 3 è mostrato il layout generale e le connessioni tra i vari moduli e librerie.
Un aspetto che caratterizza il BM-CAD è la capacità di gestire indifferentemente primitive di
tipo B-Rep, e quindi con una descrizione matematica più raffinata, e primitive di basso livello
(mesh triangolari o quadrangolari) utilizzate dagli ambienti di Realtà Virtuale per ottenere il
massimo della velocità. Benché, come noto, la visualizzazione grafica delle primitive avvenga
sempre su una tassellazione (a volte interattiva) del set di primitive geometriche, il BM-CAD
è in grado di tenere in linea e mantenere sincronizzati il database B-Rep e uno scenegraph ad
oggetti, caratteristico degli ambienti di sola visualizzazione e interazione virtuale, come Open
Inventor e Hoops 3D. Il lavoro di sincronizzazione e conversione da primitive B-Rep in
triangle stripeset (mesh) per ottenere un’unica display list elaborabile dalle librerie OpenGL, è
svolto da una opportuna routine, denominata “mesh manager” che trasforma in modo
ottimizzato ogni sorta di elemento B-Rep in mesh triangolare. In questo modo sarà possibile
anche conservare, senza modifiche, le chiamate ai metodi che selezionano a video gli elementi
geometrici, purchè venga controllato se l’elemento individuato appartiene al database ACIS
(B-Rep) o allo scenegraph OIV (Open Inventor).
5
Geometric engine 3D viewing toolkit
Graphical User Interface
(GUI)
Geometric engine 3D viewing toolkit
Graphical User Interface
(GUI)
CAD Application� HOOPS3D
� Open Inventor
� Trolltech QT
�Microsoft MFC
� Trolltech QT
�Microsoft MFC
Figure 3. Struttura software e librerie utilizzate da BM-CAD.
Attraverso questo apparentemente complesso meccanismo è stato possibile sfruttare i
vantaggi di ACIS per quanto riguarda gli algoritmi ottimizzati e la ricerca veloce delle
primitive e, sull’altro versante, della gestione di primitive a basso livello. Inoltre BM-CAD è
in grado di leggere semplicemente sia modelli esterni di tipo ACIS (.sat), che di tipo VRML
(.wrl) allocandoli correttamente negli specifici dataset.
Inoltre, al fine di rendere il codice maggiormente portatile, sono state utilizzate per la
realizzazione della interfaccia grafica le librerie QT della Trolltech, che possono operare
senza riscrittura di codice sotto vari sistemi operativi (Windows, Linux…).
3. La procedura di modellazione.
3.1. Il piano di lavoro mobile.
La modellazione implementata in BM-CAD si fonda su due principi cardine:
1) posizionamento del piano di lavoro in modo interattivo (mano sinistra);
2) sketch della curva base mediante tavoletta grafica o mouse (mano destra).
Plane coordinate (6DOF) Curve section sketch (yellow) - control polygon (red)
Figura 4. Tracciamento di una curva base (section).
Il piano di lavoro, può presentarsi in modo allineato al piano di proiezione della camera
virtuale, come in Figura 4, ma anche posizionato in modo qualsiasi nello spazio, come in
6
Figura 5. Mentre il primo caso risulta essere la posizione tipica per la modellazione della
curva di sezione di una superficie NURBS ottenuta per skinning, il secondo caso, collegato ad
un sistema che ne consente il posizionamento interattivo con sei gradi di libertà, permette
l’eliminazione pressoché totale dei comandi di posizionamento spaziale del piano di lavoro.
La curva NURBS, disegnata per punti di controllo giacenti sul piano di lavoro, è visibile in
Figura 4 a destra e si presenta come operazione semplice e intuitiva, molto simile al
tracciamento della medesima su un qualsiasi sistema CAD. E’ possibile attivare e disattivare
mediante un tasto della tastiera la visualizzazione del poligono di controllo.
La tavoletta grafica per il tracciamento della curva non è considerata in BM-CAD uno
strumento vincolante per la realizzazione della procedura di modellazione corretta, ma può
rendere maggiormente spontaneo la disegnazione della curva stessa, soprattutto se guidata da
routine intelligenti di disegno assistito. In tal caso quindi il tratto della penna elettronica, pur
non staccandosi mai dalla tavoletta tra il primo punto della curva e l’ultimo, e pur tracciando
una geometria non propriamente regolare, viene interpretato e reso regolare mediante
l’individuazione automatica dei punti di controllo.
Raggiunta una certa posizione nello spazio, il piano di lavoro può essere utilizzato
direttamente o, mediante pressione di un tasto della tastiera, “messo in piano”, ovvero
riposizionata la camera virtuale in modo da disporsi sulla normale del piano stesso. In tal
modo risulterà particolarmente semplice il tracciamento della curva di sezione poiché non
presenti distorsioni dovute alla visione prospettiva od ortografica. Per il momento non è
prevista la possibilità di tracciare curve fuori dal piano di lavoro.
SKETCH PLANEROTATION
+TRANSLATION
SECTION 1SKETCH
SECTION NSKETCH
..............
1
3
2
4
Figura 5. Procedura di modellazione con BM-CAD.
7
La Figura 5 mostra una sequenza di immagini raccolta durante la modellazione di una
superficie NURBS attraverso quello che in altri sistemi CAD viene chiamato skinning. E’
chiaramente visibile il movimento del piano di lavoro nello spazio, dato da combinazioni di
rotazioni e traslazioni. Il tracciamento della prima curva (curva 0)(Figura 5 – fotogramma 2)
non comporta ancora la visualizzazione di alcuna superficie, ma già al termine del
tracciamento della curva 1 (Figura 5 – fotogramma 3) il sistema costruisce una superficie
NURBS mediante apposita chiamata al database ACIS, utilizzando le due curve tracciate.
Il ciclo, costituito da:
1) posizionamento del piano di lavoro;
2) tracciamento della curva di sezione;
3) eliminazione e ricostruzione della superficie con l’aggiunta della nuova
curva (ad ogni modifica il mesh manager interviene per produrre una mesh
della nuova superficie e renderla così visibile);
avrà termine soltanto a seguito di pressione di un apposito tasto della tastiera.
3.2. La visualizzazione interattiva.
Uno degli aspetti che maggiormente riprendono i fondamenti dei sistemi di Realtà Virtuale è
la possibilità di visualizzare, durante la generazione, la superficie complessa. Ovviamente la
visualizzazione è a passi, ciononostante l’operatore può avere un primo impatto su risultato
finale, apportando adeguate correzioni durante la creazione stessa e non solo a posteriori,
quando a volte si decide anche la cancellazione e ricostruzione dell’intera superficie.
Figure 6. Superficie finale con BM-CAD.
8
4. Conclusioni
Questo articolo riferisce dell’implementazione e degli esperimenti d’uso di una proposta
innovativa di interfaccia utente per un CAD destinato alla modellazione delle superfici
complesse (free-form surfaces). Tale nuovo approccio raccoglie alcune idee riguardanti
l’interazione uomo-macchina tridimensionale, ormai variamente sperimentate nei laboratori di
ricerca mondiali, per la visualizzazione e la modellazione. Più in particolare, mentre la totalità
dei sistemi CAD attualmente sul mercato impiega strumenti di input tridimensionali, come il
CADMan o il Magellan, soltanto per il movimento del punto di vista dell’osservatore, il BM-
CAD lo impegna, mediante un software apposito, nella gestione diretta del piano di lavoro,
integrandolo completamente nella sessione di modellazione. Quindi lo strumento di input 3D
diventa una parte essenziale e vitale della modellazione e non solo un accessorio al più utile.
Le prove condotte sul codice sviluppato per l’esigenza ha mostrato dei vantaggi immediati su
due fronti:
1) velocizzazione considerevole del piazzamento del piano di lavoro (sketching plane),
operazione notoriamente richiedente numerosi comandi e piazzamenti della camera
virtuale (punto di vista): infatti tutte queste operazioni non sono più necessarie,
essendo il piano di lavoro movimentato in tempo reale dalla mano sinistra
dell’operatore attraverso il CADMan;
2) compattazione dei comandi di istanziamento delle superfici in un’unica attività di
modellazione guidata soltanto dall’azione combinata dei movimenti del piano di
lavoro e dello sketching delle curve di sezione o di bordo.
I benefici del BM-CAD non si limitano però soltanto alla velocizzazione delle operazioni di
modellazione, ma anche alla realizzazione dell’instanziamento real-time delle superfici. Infatti
il codice sviluppato è stato pensato per la renderizzazione della porzione di superficie man
mano l’operatore abbia disegnato la curva di sezione. La verifica quindi della forma avviene
già durante la fase di generazione della forma e non, come nei migliori software di
modellazione di superfici free-form, al termine delle operazioni di impostazione delle curve
base.
In conclusione, il software sviluppato si presenta come un efficace ponte ideale tra le
interfacce attuali per la modellazione di superfici complesse e i più complessi e costosi
ambienti per la creazione e modifica di forme basati sui sistemi di Realtà Virtuale, mutuando
però da questi i concetti fondamentali di visualizzazione in tempo reale e interattività
tridimensionale.
Bibliografia
[1] L. Cutler, B. Frolich, and P. Hanrahan. Two handed direct manipulation on the
responsive workbench. Proc. of 1997 Symposium on Interactive 3D Graphics, pages
107--114, 1997.
[2] M.W. Gribnau, J.M. Hennessey, “Designers are two-handed. Bimanual, 3D interaction
techniques for computer supported conceptual modeling”. 4th Asian Design
Conference, Tokyo, Japan, 1999.
[3] C. Hummels, G. Smerts, K. Overbeeke. “An Intuitive Two-handed Gestural Interface
for Computer Supported Product Design”, in Gesture and sign language in human
computer interaction: proceedings, International Gesture Workshop, Bielefeld,
9
Germany, September 17-19, 1997. Berlin Heidelberg: Springer Verlag (1998), pp 197-
208.
[4] Buxton, W. & Myers, B. (1986). A study in two-handed input. Proceedings of CHI '86,
321-326.
[5] Grossman, T., Balakrishnan, R., Kurtenbach, G., Fitzmaurice, G, Khan, A. & Buxton,
W. (2002). Creating Principal 3D Curves with Digital Tape Drawing. Proceedings of
the 2002 ACM Conference on Human Factors in Computing Systems, CHI'02, 121-
128.
[6] Grossman, T., Balakrishnan, R., Kurtenbach, G., Fitzmaurice, G, Khan, A. & Buxton,
W. (2001). Interaction techniques for 3D modeling on large displays. Proceedings of
the 2001ACM Symposium on Interactive 3D Graphics, 17-23.
[7] Kabbash, P., Buxton, W.& Sellen, A. (1994). Two-Handed Input in a Compound Task.
Proceedings of CHI '94, 417-423.
[8] Kabbash, P., MacKenzie, I.S. & Buxton, W. (1993). Human performance using
computer input devices in the preferred and non-preferred hands. Proceedings of
InterCHI '93, 474-481.
[9] Kurtenbach, G., Fitzmaurice, G., Baudel, T. & Buxton, W. (1997). The design and
evaluation of a GUI paradigm based on tablets, two-hands, and transparency.
Proceedings of the 1997 ACM Conference on Human Factors in Computing Systems,
CHI '97, 35-42.
[10] Leganchuk, A., Zhai, S.& Buxton, W. (1998). Manual and Cognitive Benefits of Two-
Handed Input: An Experimental Study. Transactions on Human-Computer Interaction,
5(4), 326-359.