SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
KINECT
WORKSHOP



                                     Universidade de Aveiro
           Mestrado Comunicação Multiméida / Interactivo
                Disciplina - Narrativas e Jogos Interactivos
            Disciplina - Multimédia em ambientes Artísticos

                                       Ivan Terra
TÓPICOS
  Evolução dos controladores nos
  videojogos

  Videojogos e a realidade mista

  Interfaces Naturais
  	
  Interação Gestual
TÓPICOS
  Introduçã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ÓPICOS
  Asus Xtion Pro

  Desenvolvimento com Kinect
  	 OpenNI
  	 SDK Microsoft

  Linguagens de programação
  Processing
EVOLUÇÃO
70”

      Evolução
80”




90”




00”




10”
WII
Contrariando 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).
Move
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.
KINECT
Inicialmente 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
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.




                                      – Representação da realidade mista (Fumio & Paul, 1994)
INTERFACES NATURAIS
INTERFACES NATURAIS
As 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, 201 não é porque conseguimos fazer
                                           1),
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 GESTUAL
Atualmente, 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ções
http://www.microsoft.com/en-us/kinectforwindows/
KINECT HARDWARE
KINECT HARDWARE
  Câmara RGB 640 x 480 30 FPS
  Uma câmara de profundidade
  Um projetor de infra-vermelhos
  Microfone array
  Software
KINECT HARDWARE
PROJECTOS KINECT
VIDEOS
ASUS XTION PRO
Xtion PRO


Saiu em Abril/Maio de 201
                        1
Preço $149.00
desenvolvido para Computadores
SDK de desenvolvimento
Licenç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 kinect
Disponí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 3D
http://zigfu.com/en/

Emulador de Teclas via gestos
http://projects.ict.usc.edu/mxr/faast/

(várias linguagens)
KINECT SDK
1º SDK Beta lançado em junho de 201
                                  1
-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 FAAST
        Let’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 Installer
2 NITE Installer
3 Sensor
4 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 PROCESSING
Ativar 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 PROCESSING
Mostrar camâras e chamar função de esqueleto
void 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 PROCESSING
Draw Skeleton
// draw the skeleton with the selected joints
void 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
                                                                                           if (successfull)
void onNewUser(int userId)                                                                 {
{                                                                                             println(“ User calibrated !!!”);
  println(“onNewUser - userId: “ + userId);                                                   context.startTrackingSkeleton(userId);
  println(“ start pose detection”);                                                        }
                                                                                           else
                                                                                           {
    context.startTrackingSkeleton(userId);                                                    println(“ Failed to calibrate user !!!”);
                                                                                              println(“ Start pose detection”);
}                                                                                             context.startPoseDetection(“Psi”,userId);
                                                                                           }
void onLostUser(int userId)                                                            }
{
  println(“onLostUser - userId: “ + userId);                                           void onStartPose(String pose,int userId)
                                                                                       {
}                                                                                        println(“onStartPose - userId: “ + userId + “, pose: “ + pose);
                                                                                         println(“ stop pose detection”);
void onStartCalibration(int userId)
{                                                                                          context.stopPoseDetection(userId);
  println(“onStartCalibration - userId: “ + userId);                                       context.requestCalibrationSkeleton(userId, true);
}                                                                                      }

void onEndCalibration(int userId, boolean successfull)                                 void onEndPose(String pose,int userId)
{                                                                                      {
  println(“onEndCalibration - userId: “ + userId + “, successfull: “ + successfull);     println(“onEndPose - userId: “ + userId + “, pose: “ + pose);
                                                                                       }
REFERÊNCIAS
Fumio, 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. (201 Kinect Confirmed As Fastest-Selling Consumer Electronics Device
            1).

Medeiros, R. T. (201 O controle em suas mãos: a evolução da interação entre jogador e videogame. Universidade de Brasília, Brasília.
                   1).

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. (201 Brave NUI World: Designing Natural User Interfaces for Touch and Gesture (1st ed.). San Francisco, CA, USA:
                           1).
Morgan Kaufmann Publishers

Xbox (Producer). (201 Xbox Xbox. retrieved from http://support.xbox.com/pt-pt/pages/kinect/body-controller/default.aspx
                    1)

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/
GAME OVER!!!
 KINECT
 Obrigado
 ivan.terra@ua.pt

Contenu connexe

Similaire à Kinect Workshop

Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012André Paulovich
 
Introdução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livreIntrodução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livrepichiliani
 
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012André Paulovich
 
Desenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectDesenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectErick Mendonça
 
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft KinectAdaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft KinectBruno Campagnolo
 
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030la-roque
 
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Elmano Cavalcanti
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinalAlmerindo Rehem
 
Apresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domoticaApresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domoticaLuiz Gustavo
 
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...Christopher Cerqueira
 
Controle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft KinectControle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft KinectWillian Rodrigues
 
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Stefanini
 
Desenvolvendo Aplicativos para o Kinect
Desenvolvendo Aplicativos para o KinectDesenvolvendo Aplicativos para o Kinect
Desenvolvendo Aplicativos para o KinectBruno Campagnolo
 
Desenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchDesenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchCampus Party Brasil
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users InterfacesMauricio Alegretti
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Odair Bonin Borges
 

Similaire à Kinect Workshop (20)

Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012Kinect: Muito além do XBOX - SEMCOMP 2012
Kinect: Muito além do XBOX - SEMCOMP 2012
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
Intel Perceptual Computing SDK
Intel Perceptual Computing SDKIntel Perceptual Computing SDK
Intel Perceptual Computing SDK
 
Kinect
KinectKinect
Kinect
 
Introdução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livreIntrodução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livre
 
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
Conhecendo o Kinect: Muito além do XBOX - InfoTech 2012
 
Desenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectDesenvolvendo aplicações com Kinect
Desenvolvendo aplicações com Kinect
 
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft KinectAdaptando e desenvolvendo jogos para uso com o Microsoft Kinect
Adaptando e desenvolvendo jogos para uso com o Microsoft Kinect
 
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
Unama br edinaldo_la-roque_oficina_kinect_20160917_2030
 
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinal
 
Apresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domoticaApresentacao tcc_kinect hack na domotica
Apresentacao tcc_kinect hack na domotica
 
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
 
Controle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft KinectControle de um braço robótico utilizando o sensor Microsoft Kinect
Controle de um braço robótico utilizando o sensor Microsoft Kinect
 
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
 
Desenvolvendo Aplicativos para o Kinect
Desenvolvendo Aplicativos para o KinectDesenvolvendo Aplicativos para o Kinect
Desenvolvendo Aplicativos para o Kinect
 
Desenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchDesenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-Touch
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users Interfaces
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2
 

Kinect Workshop

  • 1. KINECT WORKSHOP Universidade de Aveiro Mestrado Comunicação Multiméida / Interactivo Disciplina - Narrativas e Jogos Interactivos Disciplina - Multimédia em ambientes Artísticos Ivan Terra
  • 2. TÓPICOS Evolução dos controladores nos videojogos Videojogos e a realidade mista Interfaces Naturais Interação Gestual
  • 3. TÓPICOS Introdução ao Microsoft Kinect Kinect sensor Xbox 360 The Kinect Windows PC Kinect hardware Video camera Depth camera Microfones Potencionalidades do Kinect Projetos Kinect
  • 4. TÓPICOS Asus Xtion Pro Desenvolvimento com Kinect OpenNI SDK Microsoft Linguagens de programação Processing
  • 6. 70” Evolução 80” 90” 00” 10”
  • 7. WII Contrariando 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).
  • 8. Move 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.
  • 9. KINECT Inicialmente 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
  • 11. REALIDADE MISTA 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. – Representação da realidade mista (Fumio & Paul, 1994)
  • 13. INTERFACES NATURAIS As 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, 201 não é porque conseguimos fazer 1), 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.
  • 15. INTERAÇÃO GESTUAL Atualmente, 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.
  • 18. KINECT XBOX360 100 € Para ligar ao PC necessário ligar o trasnformador* não incluido em pacotes com a xbox 360 S
  • 19. KINECT PARA WINDOWS lançado a 1 de fevereiro 2012. Preço 250 Dólares SDK Licença comercial para aplicações http://www.microsoft.com/en-us/kinectforwindows/
  • 21. KINECT HARDWARE Câmara RGB 640 x 480 30 FPS Uma câmara de profundidade Um projetor de infra-vermelhos Microfone array Software
  • 26. Xtion PRO Saiu em Abril/Maio de 201 1 Preço $149.00 desenvolvido para Computadores SDK de desenvolvimento Licença Comercial
  • 28. 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/
  • 29. KINECT OPENNI Primeira frameworks estável do kinect Disponível para Windows XP , vista, seven 32/64Bits Linux Ubuntu 10.10, 32/64Bits apenas testado em Windowns seven 32 e 64 btis
  • 30. KINECT OPENNI Processing http://code.google.com/p/simple-openni/ Unity 3D http://zigfu.com/en/ Emulador de Teclas via gestos http://projects.ict.usc.edu/mxr/faast/ (várias linguagens)
  • 31. KINECT SDK 1º SDK Beta lançado em junho de 201 1 -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/
  • 32. KINECT FAAST Let’s try
  • 35. KINECT OPEN NI Instalar OPEN NI http://www. simple-openni.googlecode.com/files/OpenNI_NITE_ Installer-Win32-0.26.zip 1 OpenNI Installer 2 NITE Installer 3 Sensor 4 Driver Kinect OU All-in-one OpenNI Kinect Auto Driver Installer http://www.brekel.com/?page_id=160
  • 36. 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
  • 37. KINECT PROCESSING Ativar 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()); }
  • 38. KINECT PROCESSING Mostrar camâras e chamar função de esqueleto void 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); }
  • 39. KINECT PROCESSING Draw Skeleton // draw the skeleton with the selected joints void 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); }
  • 40. KINECT PROCESSING SimpleOpenNI events if (successfull) void onNewUser(int userId) { { println(“ User calibrated !!!”); println(“onNewUser - userId: “ + userId); context.startTrackingSkeleton(userId); println(“ start pose detection”); } else { context.startTrackingSkeleton(userId); println(“ Failed to calibrate user !!!”); println(“ Start pose detection”); } context.startPoseDetection(“Psi”,userId); } void onLostUser(int userId) } { println(“onLostUser - userId: “ + userId); void onStartPose(String pose,int userId) { } println(“onStartPose - userId: “ + userId + “, pose: “ + pose); println(“ stop pose detection”); void onStartCalibration(int userId) { context.stopPoseDetection(userId); println(“onStartCalibration - userId: “ + userId); context.requestCalibrationSkeleton(userId, true); } } void onEndCalibration(int userId, boolean successfull) void onEndPose(String pose,int userId) { { println(“onEndCalibration - userId: “ + userId + “, successfull: “ + successfull); println(“onEndPose - userId: “ + userId + “, pose: “ + pose); }
  • 41. REFERÊNCIAS Fumio, 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. (201 Kinect Confirmed As Fastest-Selling Consumer Electronics Device 1). Medeiros, R. T. (201 O controle em suas mãos: a evolução da interação entre jogador e videogame. Universidade de Brasília, Brasília. 1). 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. (201 Brave NUI World: Designing Natural User Interfaces for Touch and Gesture (1st ed.). San Francisco, CA, USA: 1). Morgan Kaufmann Publishers Xbox (Producer). (201 Xbox Xbox. retrieved from http://support.xbox.com/pt-pt/pages/kinect/body-controller/default.aspx 1) 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/
  • 42. GAME OVER!!! KINECT Obrigado ivan.terra@ua.pt