Date post: | 07-Nov-2014 |
Category: |
Technology |
Upload: | ivan-terra |
View: | 1,279 times |
Download: | 2 times |
KINECTWORKSHOP
Ivan Terra
Universidade de AveiroMestrado Comunicação Multiméida / Interactivo
Disciplina - Narrativas e Jogos InteractivosDisciplina - Multimédia em ambientes Artísticos
TÓPICOSEvolução dos controladores nos videojogos
Videojogos e a realidade mista
Interfaces Naturais Interação Gestual
TÓPICOSIntrodução ao Microsoft Kinect Kinect sensor Xbox 360 The Kinect Windows PC
Kinect hardware Video camera Depth camera Microfones
Potencionalidades do Kinect Projetos Kinect
TÓPICOSAsus Xtion Pro
Desenvolvimento com Kinect OpenNI
SDK Microsoft
Linguagens de programação Processing
EVOLUÇÃO
Evolução80”
90”
00”
10”
70”
WIIContrariando a tendência dos videojogos realistas, em 2006, a Nin-tendo revolucionou o mercado com jogos com imagens não realistas, mas apostando numa nova forma de interacção, onde o controlo dos vide-ojogos é feito através da movimentação do corpo (Ferreira, 2009).
Em junho de 2009 a Sony, anunciou o lançamento do Move um con-trolador de movimento combinado com a PlayStation Eye, uma pequena câmara já usada pela Playstation anteriormente.
Move
KINECTInicialmente chamado de projecto natal, o Kinect é lançado para o mercado em Novembro de 2010.
Este dispositivo permite a interação do utlizador sem ser preciso nenhum acessório.
Em pouco meses, tornou-se o produto electrónico mais rápido a ser vendido, entrando assim no Guinness.
Em 60 dias foram vendidos mais de 8 milhões
REALIDADE MISTA
REALIDADE MISTA
– Representação da realidade mista (Fumio & Paul, 1994)
Com o lançamento da Wii, Move e Kinect, entramos numa era de inter-faces gestuais, que permitem a mistura de realidades, entre a nossa sala e o videojogo.
Realidade virtual - o utilizador não vê directamente o cenário real.
Realidade mista - envolvem a fusão do mundo real e virtual, que se ref-erem genericamente como realidade mista, provavelmente a mais conhe-cido é a realidade aumentada.
INTERFACES NATURAIS
INTERFACES NATURAISAs Interfaces Naturais, também conhecido pela sua abreviatura NUI.
Não é uma tecnologia, mas sim uma experiência que pode ser criada usando a tecnologia. As interfaces naturais, podem ser criadas de diversas formas, desde a iteração táctil, ao multitoque, a captação de gestos, reconhecimento de voz, entre outros. Diferentes tecnologias de interacção são adequadas a diferentes situações (Wigdor & Wixon, 2011), não é porque conseguimos fazer interfaces gestuais que estas são apropriadas para todas as situações.
As interfaces naturais, representam uma revolução na computação, não só porque substituem a actual interacção, mas porque permitem expandir novos horizontes e porque reduzem o tempo de aprendizagem do utilizador.
INTERAÇÃO GESTUAL
INTERAÇÃO GESTUALAtualmente, a maioria das interfaces gestuais podem ser categorizados como “touchscreen” or “free-form”.
touchscreen - exigem que o utilizador toque directamente no dispositivo.
free-form - não exigem que o utilizador toque ou tenha de manusear o objeto directamente. Às vezes, um controlador ou luva é usado como um dispositivo de entrada, mas cada vez mais o dispositivo de entrada é apenas corpo, como é o caso do Kinect.
KINECT
KINECT XBOX360
KINECT XBOX360
100 €Para ligar ao PC necessário ligar o trasnformador*não incluido em pacotes com a xbox 360 S
KINECT PARA WINDOWS
lançado a 1 de fevereiro 2012.Preço 250 Dólares SDK Licença comercial para aplicaçõeshttp://www.microsoft.com/en-us/kinectforwindows/
KINECT HARDWARE
KINECT HARDWARECâmara RGB 640 x 480 30 FPSUma câmara de profundidadeUm projetor de infra-vermelhosMicrofone arraySoftware
KINECT HARDWARE
PROJECTOS KINECT
VIDEOS
ASUS XTION PRO
Xtion PRO
Saiu em Abril/Maio de 2011Preço $149.00desenvolvido para ComputadoresSDK de desenvolvimentoLicença Comercial
DESENVOLVIMENTO KINECT
KINECT OPENNI
A organização OpenNI é uma organização sem fins lucrativos que promove a compatibilidade das aplicações e dos disposi-tivos de interacção natural. Um dos objetivos da organização OpenNI é acelerar a introdução de aplicações interacção natu-ral no mercado.
Desenvolvendo uma framework open source.
A PrimeSense, a empresa parceira do Kinect, e a ASUS, são par-ceiros.
http://www.openni.org/
KINECT OPENNI
Primeira frameworks estável do kinectDisponível para Windows XP , vista, seven 32/64Bits Linux Ubuntu 10.10, 32/64Bits apenas testado em Windowns seven 32 e 64 btis
KINECT OPENNI
Processing
http://code.google.com/p/simple-openni/
Unity 3Dhttp://zigfu.com/en/
Emulador de Teclas via gestoshttp://projects.ict.usc.edu/mxr/faast/
(várias linguagens)
KINECT SDK
1º SDK Beta lançado em junho de 2011-não comercial
Versão 1 Fevereiro 2012
Compativel com Windows apenas
Software: Microsoft® Visual Studio® 2010 Express or other Visual Studio 2010 edition .NET Framework 4.0 http://www.microsoft.com/en-us/kinectforwindows/
KINECT FAASTLet’s try
KINECT UNITY3D
KINECT PROCESSING
KINECT OPEN NI
Instalar OPEN NI
http://www. simple-openni.googlecode.com/files/OpenNI_NITE_Installer-Win32-0.26.zip
1 OpenNI Installer2 NITE Installer3 Sensor4 Driver Kinect
OU All-in-one OpenNI Kinect Auto Driver Installer
http://www.brekel.com/?page_id=160
KINECT PROCESSING
Instalar Processing http://processing.org/download/
Download:http://simple-openni.googlecode.com/files/SimpleOpenNI-0.26.zip
Copiar o conteudo da pasta libary para a pasta libraries do processing, normamente encontra-se na pasta dos documentos/Procossegin/libraries
KINECT PROCESSINGAtivar camâras import SimpleOpenNI.*;SimpleOpenNI context;void setup(){ context = new SimpleOpenNI(this); // enable depthMap generation if(context.enableDepth() == false) { println(“Can’t open the depthMap, maybe the camera is not connected!”); exit(); return; } if(context.enableRGB() == false) { println(“Can’t open the rgbMap, maybe the camera is not connected or there is no rgbSensor!”); exit(); return; } // enable skeleton generation for all joints context.enableUser(SimpleOpenNI.SKEL_PROFILE_ALL); background(200,0,0); stroke(0,0,255); strokeWeight(3); smooth(); size(context.depthWidth() + context.rgbWidth() + 10, context.rgbHeight()); }
KINECT PROCESSINGMostrar camâras e chamar função de esqueletovoid draw(){
context.update(); // draw depthImageMap image(context.depthImage(),0,0); // draw irImageMap image(context.rgbImage(),context.depthWidth() + 10,0); // draw the skeleton if it’s available if(context.isTrackingSkeleton(1)) drawSkeleton(1);
}
KINECT PROCESSINGDraw Skeleton// draw the skeleton with the selected jointsvoid drawSkeleton(int userId){ /// to get the 3d joint data context.drawLimb(userId, SimpleOpenNI.SKEL_HEAD, SimpleOpenNI.SKEL_NECK);
context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_LEFT_SHOULDER); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_LEFT_ELBOW); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_ELBOW, SimpleOpenNI.SKEL_LEFT_HAND);
context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_RIGHT_SHOULDER); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_RIGHT_ELBOW); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_ELBOW, SimpleOpenNI.SKEL_RIGHT_HAND);
context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_TORSO); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_LEFT_HIP); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_HIP, SimpleOpenNI.SKEL_LEFT_KNEE); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_KNEE, SimpleOpenNI.SKEL_LEFT_FOOT);
context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_RIGHT_HIP); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_HIP, SimpleOpenNI.SKEL_RIGHT_KNEE); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_KNEE, SimpleOpenNI.SKEL_RIGHT_FOOT); }
KINECT PROCESSING SimpleOpenNI events
void onNewUser(int userId){ println(“onNewUser - userId: “ + userId); println(“ start pose detection”); context.startTrackingSkeleton(userId); }
void onLostUser(int userId){ println(“onLostUser - userId: “ + userId); }
void onStartCalibration(int userId){ println(“onStartCalibration - userId: “ + userId);}
void onEndCalibration(int userId, boolean successfull){ println(“onEndCalibration - userId: “ + userId + “, successfull: “ + successfull);
if (successfull) { println(“ User calibrated !!!”); context.startTrackingSkeleton(userId); } else { println(“ Failed to calibrate user !!!”); println(“ Start pose detection”); context.startPoseDetection(“Psi”,userId); }}
void onStartPose(String pose,int userId){ println(“onStartPose - userId: “ + userId + “, pose: “ + pose); println(“ stop pose detection”); context.stopPoseDetection(userId); context.requestCalibrationSkeleton(userId, true);}
void onEndPose(String pose,int userId){ println(“onEndPose - userId: “ + userId + “, pose: “ + pose);}
REFERÊNCIASFumio, K., & Paul, M. (1994). A taxonomy of mixed reality. Paper presented at the IEICE Transactions on Information Systems, Vol E77-D, No.12 December 1994
Guiness. (2011). Kinect Confirmed As Fastest-Selling Consumer Electronics Device
Medeiros, R. T. (2011). O controle em suas mãos: a evolução da interação entre jogador e videogame. Universidade de Brasília, Brasília.
Microsoft. (2009). Xbox 360 Fact sheet
Saffer, D. (2008). Designing Gestural Interfaces. In M. Treseler (Eds.), O’Reilly Media, Inc.
Svedström, T. (2010). Gesture interfaces. Aalto university school of science and technology - Faculty of Information and Natural Sciences
Wigdor, D., & Wixon, D. (2011). Brave NUI World: Designing Natural User Interfaces for Touch and Gesture (1st ed.). San Francisco, CA, USA: Morgan Kaufmann Publishers
Xbox (Producer). (2011) Xbox Xbox. retrieved from http://support.xbox.com/pt-pt/pages/kinect/body-controller/default.aspx
http://www.microsoft.com/en-us/kinectforwindows/
http://openni.org/
http://code.google.com/p/simple-openni/
http://zigfu.com/
http://www.brekel.com/
http://projects.ict.usc.edu/mxr/faast/