PROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3D
1. PROTOTIPIZZAZIONE DI UNA
PIATTAFORMA CLOUD PER LA
GESTIONE DI MODELLI 3D
RELATORE: PROF. ALBERTO BARTOLI
CANDIDATO: RICCARDO GULIN
LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA A.A. 2017/18
2. INTRODUZIONE
La modellazione 3D influisce nei processi di
progettazione, produzione e vendita in un numero
sempre maggiore di contesti industriali
Realtà specifica analizzata:
PRODUZIONE DI PROTESI CUSTOM MADE
3. CONTESTO
Ogni protesi è unica ed è il risultato finale di una collaborazione
stretta tra chirurghi e designer 3D
Gli scambi di prototipi e di relativi feedback sono molteplici
Il medico analizza i concept sotto forma di file o di stampe 3D
provvisorie
La comunicazione tra gli attori coinvolti è un punto critico
4. PROBLEMATICHE
Ripetuti scambi effettuati tra figure remote con criticità nelle
tempistiche
Il medico ricevendo i prototipi su file analizza i modelli 3D su
supporti bidimensionali
Prototipi stampati in 3D risultano migliori ma aumentano costi
e tempi
Gestione dati del paziente, sicurezza, privacy...
9. SOLUZIONE PROPOSTA
REALIZZAZIONE DI
• Web app per l’upload in Cloud di modelli 3D da parte del
modellatore
• Applicativo per la Mixed Reality per il download di modelli dal
Cloud e per l’analisi di questi da parte del medico tramite visore
Microsoft Hololens
• Motion Controller per l’interazione con gli ologrammi della Mixed
Reality
11. CLOUD WEB APPLICATION
PRINCIPALI FUNZIONALITÀ DESIDERATE
Upload file .obj e .mtl e salvataggio di relative informazioni
Elenco dei modelli caricati
Selezione di un singolo modello per renderlo disponibile al
download da parte di un client remoto
Cancellazione modelli
14. BACK-END
VERBI
HTTP
END POINT AZIONE
/files/upload/ Caricamento di file con salvataggio su disco e in DB
/files/ Lista file caricati
/files/:id/ Lettura di un singolo record
/files/:id/
Cancellazione da disco dei file relativi a un singolo modello
3D ed eliminazione record da DB
/files/:id/select/
Marca come selezionato il modello candidato per il download
/files/xml/ Ritorna un file XML necessario per il download
/files/:id/download/:name/ Download del modello 3D
15. BASE DATI
Modelli salvati nella collection Files
_id: identificativo univoco del record
loaderOptions: fattore scala, posizione
obj: path su disco del file .obj
mtl: path su disco del file .mtl
name: nome assegnato
size: spazio occupato dai file
selected: booleano che identifica quale
modello verrà scaricato dal client
17. APPLICATIVO MIXED REALITY
STRUMENTI UTILIZZATI
MICROSOFT HOLOLENS: Computer olografico, stand alone e
fully-untethered
UNITY 3D: Motore grafico 3D open source
HOLOTOOLKIT: Collezione di script dedicati al mondo XR
18. APPLICATIVO MIXED REALITY
PRINCIPALI FUNZIONALITÀ DESIDERATE
Connessione a motion controller e movimento dell’ologramma
solidale ad esso
Download del modello 3D dal Cloud
Interfaccia Utente semplice e non invasiva
Stabilità visiva degli ologrammi
19. APPLICATIVO MIXED REALITY
IMPLEMENTAZIONE
Scena adattata per le
app XR
UI composta da due
pulsanti
Utilizzo di script per la
gestione delle
funzionalità base di
Hololens
Realizzazione di un’app
di tipo UWP
20. APPLICATIVO MIXED REALITY
IMPLEMENTAZIONE
La connessione alla web-app sfrutta una libreria per il download
via request http e per il parsing di file .obj e .mtl
Ai modelli importati vengono applicati script per la stabilizzazione
visiva e per la rotazione tramite motion controller
La connessione con il controller si connette al socket TCP e applica
le rotazioni ricevute al modello scaricato
22. MOTION CONTROLLER
PRINCIPALI FUNZIONALITÀ DESIDERATE
Rilevamento delle rotazioni nelle 3 dimensioni impartite
dall’utente
Trasmissione in tempo reale delle rotazioni al visore con
collegamento wireless
23. MOTION CONTROLLER
STRUMENTI UTILIZZATI
RASPBERRY PI: piattaforma di
prototipizzazione e connessione con
sensoristica
BOSCH BNO055: System In Package
che rileva l’orientamento nello spazio
fondendo dati provenienti da
accelerometro, giroscopio e
magnetometro
24. MOTION CONTROLLER
IMPLEMENTAZIONE
Connessione tra Raspberry e BNO055 via UART
BNO055 viene calibrato e configurato in modalità 9DOF con
output in quaternioni
Lettura dei dati provenienti dai 3 sensori, filtrati e fusi dal MCU
incluso nel dispositivo
Viene instaurato un protocollo per lo scambio di messaggi tra
BNO055 e visore basato su socket TCP
25. MOTION CONTROLLER
OUTPUT
𝑞 𝑥, 𝑞 𝑦 , 𝑞 𝑧, 𝑞 𝑤: componenti di un
quaternione
𝒒 = sin
α
2
(x𝐢 + y𝐣 + z𝐤) + cos
α
2
𝑞 𝑥 𝑞 𝑦 𝑞 𝑧 𝑞 𝑤
29. CONCLUSIONI
Le funzionalità poste come obiettivo risultano essere state
completamente raggiunte
Sono stati ricevuti dal mondo medicale e da quello della
modellazione 3D feedback positivi che validano l’idea
La User Experience per i 3 applicativi risulta del tutto
convincente
Il progetto non è da considerarsi pronto per la produzione,
bensì è un punto di partenza per numerose evoluzioni future
Facilitare ed accelerare il processo di approvazione della protesi migliorando il collegamento tra l’azienda responsabile della modellazione e il chirurgo.
Descrizione punto punto delle funzionalità
Descrizione punto punto delle funzionalità
Stack tecnologico M.E.R.N.
Principi RestFul
Divisione in Front-end Back-end
CRUD
Descrizione degli end point più significativi
Spiegare le feature base di Hololens
Spiegare il perché sia necessario un engine 3D
Spiegare le feature base di Hololens
Spiegare il perché sia necessario un engine 3D
Descrizione punto per punto
Brevissima descrizione dell’interfaccia di Unity
Cosa è stato realizzato al suo interno
Cosa vuol dire adattare la scena per un’app XR
Cosa è un’app UWP
Descrizione di ogni punto
Perché è stato scelto il Bosch
Due parole su Uart
9DOF (Nine Degrees Of Freedom)
Importanza di filtrare e effettuare la fusione dei dati
Spiegare brevemente cosa sono i quaternioni e perché sia necessario usarli
Agendo sui valori di x y z vado a spostare un generico asse di rotazione. Alpha è l’angolo di rotazione attorno a questo asse
Test effettuati
Perché i 3 moduli non sono pronti per la produzione
Evoluzioni future per arrivare al prodotto completo