4. DI COSA SI TRATTA
• E’ un progetto nato per caso nel luglio del 2013. Mi sono immaginato che bello doveva essere avere il
drone che ruotava, semplicemente quando giravo la testa ed il tutto mentre vedevo in diretta il suo
video. Il Kinect coi comandi vocali è venuto da se.
• 5 giorni di lavoro
• Quando l’ho fatto non c’era molto in giro sull’implementazione dell’oculus
5. COSA VEDREMO
• Parrot Ar.Drone
• Oculus rift (Il primo prototipo)
• Kinect v1 e v2 (prototipo)
7. PARROT AR.DRONE
• Quattro motori
• Due camere: una frontale fino a 720p@30fps (ma solo registrazione) e una sotto il drone QVGA@60fps
• Giroscopio 3 assi, accelerometro, magnetometro, sensore di pressione dell’aria (più stabilità)
8. COME PILOTARLO
• Ho usato come base il lavoro di Ruslan Balanukhin (github è pieno)
• Comandi inviati via udp porta 5556 (Es: AT*PCMD=1,0,0,0,0 -> Hover)
• FFmpeg per lo stream video sulla porta 5555 (h264)
• Molti usano ffplay e via
• Usato un wrap C# creato con ctypes di python sempre da Ruslan, e qualche martellata
10. OCULUS RIFT
• Si tratta di un HMD (Head Mounted Display) per la realtà virtuale
• Usa un giroscopio a 3 assi, un accelerometro e un magnetometro, per la posizione della testa
• Due lenti con un angolo di 90° orizzontale (tira 1280x800 -> 640x800 per occhio)
• C’è anche plugin già pronto per Unity 3D
11. STEREO RENDERING
• Serve disegnare contemporaneamente due immagini (una per occhio) della scena
• Considerare l’IPD anche se le lenti compensano parecchio (in media 65mm)
12. COMPENSARE LA DISTORSIONE
• Le due lenti hanno un grande angolo, l’immagine ha quindi una distorsione «pincushion»
• Si deve compensare con la distorsione «barrel»
13. MOVIMENTI DELLA TESTA
• Torna quaternioni per la rotazione della testa (vettore a 4 elementi)
3D programming for windows (C. Petzold)
http://www.chrobotics.com/library/understanding-quaternions
• Converto in angoli di Eulero e via (vettore a 3 elementi più semplice)
http://www.chrobotics.com/library/understanding-euler-angles
• Ai tempi non c’erano librerie decenti in C#, pertanto ho usato un wrap
della DLL di unity
15. CRYSTAL COVE (DK2)
• Sarà FullHD (1920x1080 -> 960x1080 per occhio)
• Schermi OLED e non più LCD (minor latenza)
• 20+ sensori IR ed una camera per il tracking della testa ancora più preciso
• Bassa persistenza di visione: niente più motion blur. Compensa la mente come nei film (24fps)
• Si dovrebbero risolvere gli effetti collaterali quali vertigini e nausea
• Le consegne son previste per luglio 2014
17. KINECT V1
• IR Depth Sensor (320x240)
• Camera a colori (640x480 RGB a 30fps YUV a 15fps)
• 4 microfoni
• Motore per l’inclinazione verticale
• Riconosce due giocatori
• Fino a 20 punti per scheletro
• Raggio di azione 1.5 – 3.5m (in Near Mode 0.8m)
• FOV 43° verticale e 57° orizzontali
19. KINECT V2
• Depth e IR (512x424) (IR è una Time-Of-Flight)
• Si possono usare colore ed infrarosso insieme
• Camera a colori (1920x1080x16bpp BGRA/RGBA/YUV2 a 30fps)
• 4 microfoni (anche audio beam?)
• Riconosce sei giocatori e lo stato delle mani di due
• Fino a 25 punti per scheletro ognuno con la propria direzione (quaternioni)
• Raggio di azione 0.5 – 4.5m
• FOV 60° verticale e 70° orizzontali
• Riconoscimento espressione facciale
normale, felice, porta gli occhiali, occhi aperti/chiusi (anche uno solo)
• Plugin per Unity3D
• Nuovo Kinect Studio
This is preliminary software and/or hardware and APIs are preliminary and subject to change
FFMPEG Autogen: sembra che abbia sistemato i nomi dei file come ho fatto io
Giroscopio -> orientamento, Accelerometro, magnetometro per la direzione di un campo magnetico (posizione relativa alla terra)
Angoli di Eulero rappresentano l’orientamento di un oggetto nello spazio
L’OLED risponde più veloce e i sensori son più precisi, si crea più precisione e quindi niente motion sickness
Bassa persistenza. Il tempo in rimane a video il fotogramma