Come ti piloto il drone

Post on 14-Dec-2014

153 views 0 download

description

Il mio progetto di controllo di un Parrot con Kinect e Oculus Rift. Per l'occasione ho mostrato anche il prototipo del Kinect v2

transcript

COME TI PILOTO IL DRONE

CON OCULUS RIFT E KINECT

ABOUT ME

• Developer @ Evoluzione Telematica srl

• Tech enthusiast

• Papercut survivor

collaalessandro

+AlessandroColla

http://www.evoluzionetelematica.it

http://www.alessandrocolla.com

RINGRAZIAMENTILuca Franceschini per l’oculus

Simone Giacomelli per il dronee

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

COSA VEDREMO

• Parrot Ar.Drone

• Oculus rift (Il primo prototipo)

• Kinect v1 e v2 (prototipo)

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à)

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

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

STEREO RENDERING

• Serve disegnare contemporaneamente due immagini (una per occhio) della scena

• Considerare l’IPD anche se le lenti compensano parecchio (in media 65mm)

COMPENSARE LA DISTORSIONE

• Le due lenti hanno un grande angolo, l’immagine ha quindi una distorsione «pincushion»

• Si deve compensare con la distorsione «barrel»

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

DEMO DELLA VILLA IN TOSCANA

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

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

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 StudioThis is preliminary software and/or hardware and APIs are preliminary and subject to change

DEMO CON LE DIFFERENZE

FACCIAMO VOLARE IL DRONE…e vediamo se va una cosa nuova che ho inserito

DOMANDE?

GRAZIE!

collaalessandro

+AlessandroColla

http://www.alessandrocolla.com

https://github.com/Iridio/OculusArDroneKinect