Download - Desenvolvimento em Leap Motion Parte 1
![Page 1: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/2.jpg)
O Aparelho
![Page 3: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/4.jpg)
Sistema de Coordenadas
![Page 5: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/5.jpg)
Campo de Visão
• 120º de Profundidade
• 150º de Largura
![Page 6: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/8.jpg)
Movimentos
Movimentos são derivados da comparação entre um frame anterior e o atual
![Page 9: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/20.jpg)
Gestos
Os seguintes movimentos são reconhecidos pelo dispositivo:
• Circle – Único dedo traçando um circulo
![Page 21: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/21.jpg)
Gestos
• Swipe – Movimento linear da mão
![Page 22: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/22.jpg)
Gestos
• Key Tap – Toque para baixo, semelhante ao apertar de uma tecla
![Page 23: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/23.jpg)
Gestos
• Screen Tap – Toque para frente, semelhante ao pressionar de uma tela vertical
![Page 24: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/25.jpg)
Interfaces
![Page 26: Desenvolvimento em Leap Motion Parte 1](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022050922/55a6a21d1a28ab1c578b47a2/html5/thumbnails/36.jpg)