Desenvolvimento em Leap Motion Parte 1
-
Upload
gabriel-peregrino -
Category
Education
-
view
347 -
download
0
Transcript of Desenvolvimento em Leap Motion Parte 1
Desenvolvimento em Leap Motion
Gabriel Toledo Peregrino Lilian Coutinho Alves Meiga
Eng. De Controle de Automação
O Aparelho
Calibrando o Dispositivo
• Abra a aplicação Leap Motion Settings
• Selecione a página Troubleshooting
• Clique em Recalibrate Device
• Siga as instruções na tela
Sistema de Coordenadas
Campo de Visão
• 120º de Profundidade
• 150º de Largura
Coleta de Dados
• Mãos – Ambas as mãos
• Dedos – Todos os dedos
• Ferramentas – Todas as ferramentas
• Gestos – Todos os gestos iniciados, terminados ou que sofreram alteração
Coleta de Dados
Utiliza-se as seguintes funções para o uso de objetos específicos:
• Frame.Hand() • Frame.Finger() • Frame.Tool() • Frame.Pointable() • Frame.Gesture()
Movimentos
Movimentos são derivados da comparação entre um frame anterior e o atual
Movimentos
Utiliza-se os seguintes atributos: • RotationAxis • RotationAngle • RotationMatrix • ScaleFactor • Translation
Estes são usados para manipular objetos sem a necessidade de
rastrear mãos e dedos durante múltiplos frames
Mãos
A API é capaz de fornecer uma série de informações sobre uma mão. Porém, nem sempre é possível determinar todos os atributos em um único frame
Mãos
O Leap não determina se a mão é a direita ou esquerda
É possível que mais de duas mãos apareçam no sensor, embora isso não seja recomendado para uma melhor qualidade do rastreamento dos gestos e movimentos
Mãos - Atributos
• PalmPosition – O centro da palma medido em milimetros a partir da origem do Leap
• PalmVelocity – Velocidade da palma, em mm/s
Mãos - Atributos
• PalmNormal – Um vetor perpendicular ao plano formado pela palma da mão
• Direction – Um vetor do centro da palma em direção aos dedos
Mãos - Atributos
• SphereCenter – O centro de uma esfera em função da curvatura da mão
• SphereRadius – O Raio de uma esfera um função da curvatura da mão
Dedos e Ferramentas
Pode-se acessar dedos e ferramentas associados a uma mão usando uma das três listas:
• Apontáveis – Ambos dedos e ferramentas como objetos apontáveis
• Dedos – Apenas dedos
• Ferramentas – Apenas ferramentas
Dedos e Ferramentas - Modelos
O Leap diferencia dedos de ferramentas de acordo com a forma. Uma ferramenta é mais longa, fina e reta que um dedo.
Dedos e Ferramentas - Modelos
As características físicas de “apontáveis” incluem:
• Length – Comprimento da porção visível do objeto
• Width – Largura média da porção visível do objeto
Dedos e Ferramentas - Modelos
• Direction – Vetor que aponta para a mesma direção que o objeto
• TipPosition – Posição, em milímetros, da ponta do objeto
• TipVelocity – Velocidade, em mm/s, da ponta do objeto
Gestos
O Leap Motion reconhece certos padrões de movimento, que podem indicar um comando do usuário
Gestos
Os seguintes movimentos são reconhecidos pelo dispositivo:
• Circle – Único dedo traçando um circulo
Gestos
• Swipe – Movimento linear da mão
Gestos
• Key Tap – Toque para baixo, semelhante ao apertar de uma tecla
Gestos
• Screen Tap – Toque para frente, semelhante ao pressionar de uma tela vertical
Arquitetura
A SDK do Leap Motion oferece duas opções de coleta de dados:
• Interface nativa – Biblioteca dinâmica que pode ser
usada para criar novas aplicações compatíveis com o Leap
• Interface WebSocket – Permite criar aplicações na
web
Interfaces
Interface Nativa
Serviço Leap Aplicativo de
Ajustes do Leap
Aplicação em Primeiro Plano
Aplicação em Segundo Plano
USB
1 2
3
4
Interface Nativa
1. O serviço Leap Motion recebe os dados do controlador pela porta USB, processa as informações e envia para as aplicações em execução. Por padrão, o serviço só envia os dados de rastreamento para as aplicações em primeiro plano
Serviço Leap 1
Interface Nativa
2. Executado separadamente do serviço, permite que o usuário configure a instalação do Leap Motion
Aplicativo de Ajustes do Leap
2
Interface Nativa
3. A aplicação conecta-se ao serviço usando a biblioteca nativa do Leap Motion
Aplicação em Primeiro Plano
3
Interface Nativa
4. Quando uma aplicação perde o foco no sistema operacional, o Leap pára de enviar dados a ela. Aplicações podem requerir permissão para receber dados enquanto no segundo plano
Aplicação em Segundo Plano
4
Interface WebSocket Serviço Leap
____________________ Servidor WebSocket Domínio: localhost
Porta: 6437 Aplicativo de
Ajustes do Leap
Biblioteca de cliente Leap.js
_________________________ Aplicação Web
Navegador
USB
Mensagens Formatadas JSON
1 2
3
4
Serviço Leap ____________________ Servidor WebSocket Domínio: localhost
Porta: 6437
Interface WebSocket
1
1. O serviço fornece um provedor WebSocket em
http://127.0.0.1:6437
Interface WebSocket
Aplicativo de Ajustes do Leap
2
2. O painel de controle permite que o usuário final ative ou
desative o servidor WebSocket
Interface WebSocket
Mensagens Formatadas JSON
3
3. O servidor envia os dados rastreados na forma de mensagem JSON. Uma
aplicação pode mandar mensagens de configuração para o servidor
Interface WebSocket
Biblioteca de cliente Leap.js
_________________________ Aplicação Web
Navegador
4
4. A biblioteca do cliente leap.js pode ser usada em aplicações da Web. A biblioteca estabelece
a conexão com o servidor