Desenvolvimento em Leap Motion Parte 1

36
Desenvolvimento em Leap Motion Gabriel Toledo Peregrino Lilian Coutinho Alves Meiga Eng. De Controle de Automação

Transcript of Desenvolvimento em Leap Motion Parte 1

Page 1: Desenvolvimento em Leap Motion Parte 1

Desenvolvimento em Leap Motion

Gabriel Toledo Peregrino Lilian Coutinho Alves Meiga

Eng. De Controle de Automação

Page 2: Desenvolvimento em Leap Motion Parte 1

O Aparelho

Page 3: Desenvolvimento em Leap Motion Parte 1

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

Page 4: Desenvolvimento em Leap Motion Parte 1

Sistema de Coordenadas

Page 5: Desenvolvimento em Leap Motion Parte 1

Campo de Visão

• 120º de Profundidade

• 150º de Largura

Page 6: Desenvolvimento em Leap Motion Parte 1

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

Page 7: Desenvolvimento em Leap Motion Parte 1

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

Page 8: Desenvolvimento em Leap Motion Parte 1

Movimentos

Movimentos são derivados da comparação entre um frame anterior e o atual

Page 9: Desenvolvimento em Leap Motion Parte 1

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

Page 10: Desenvolvimento em Leap Motion Parte 1

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

Page 11: Desenvolvimento em Leap Motion Parte 1

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

Page 12: Desenvolvimento em Leap Motion Parte 1

Mãos - Atributos

• PalmPosition – O centro da palma medido em milimetros a partir da origem do Leap

• PalmVelocity – Velocidade da palma, em mm/s

Page 13: Desenvolvimento em Leap Motion Parte 1

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

Page 14: Desenvolvimento em Leap Motion Parte 1

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

Page 15: Desenvolvimento em Leap Motion Parte 1

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

Page 16: Desenvolvimento em Leap Motion Parte 1

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.

Page 17: Desenvolvimento em Leap Motion Parte 1

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

Page 18: Desenvolvimento em Leap Motion Parte 1

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

Page 19: Desenvolvimento em Leap Motion Parte 1

Gestos

O Leap Motion reconhece certos padrões de movimento, que podem indicar um comando do usuário

Page 20: Desenvolvimento em Leap Motion Parte 1

Gestos

Os seguintes movimentos são reconhecidos pelo dispositivo:

• Circle – Único dedo traçando um circulo

Page 21: Desenvolvimento em Leap Motion Parte 1

Gestos

• Swipe – Movimento linear da mão

Page 22: Desenvolvimento em Leap Motion Parte 1

Gestos

• Key Tap – Toque para baixo, semelhante ao apertar de uma tecla

Page 23: Desenvolvimento em Leap Motion Parte 1

Gestos

• Screen Tap – Toque para frente, semelhante ao pressionar de uma tela vertical

Page 24: Desenvolvimento em Leap Motion Parte 1

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

Page 25: Desenvolvimento em Leap Motion Parte 1

Interfaces

Page 26: Desenvolvimento em Leap Motion Parte 1

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

Page 27: Desenvolvimento em Leap Motion Parte 1

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

Page 28: Desenvolvimento em Leap Motion Parte 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

Page 29: Desenvolvimento em Leap Motion Parte 1

Interface Nativa

3. A aplicação conecta-se ao serviço usando a biblioteca nativa do Leap Motion

Aplicação em Primeiro Plano

3

Page 30: Desenvolvimento em Leap Motion Parte 1

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

Page 31: Desenvolvimento em Leap Motion Parte 1

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

Page 32: Desenvolvimento em Leap Motion Parte 1

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

Page 33: Desenvolvimento em Leap Motion Parte 1

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

Page 34: Desenvolvimento em Leap Motion Parte 1

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

Page 35: Desenvolvimento em Leap Motion Parte 1

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

Page 36: Desenvolvimento em Leap Motion Parte 1