SYS-RGP SISTEMA DE RECONHECIMENTO DE GESTOS PERSONALIZADOS



Documentos relacionados
Alarme Automotivo com mensagem para móvel utilizando Arduino

APLICAÇÃO PARA ANÁLISE GRÁFICA DE EXERCÍCIO FÍSICO A PARTIR DA PLATAFORMA ARDUINO

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Noções de. Microsoft SQL Server. Microsoft SQL Server

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Manual de Utilização do Sistema GRServer Cam on-line (Gerenciamento de Câmeras On-line)

IW10. Rev.: 02. Especificações Técnicas

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Manual do usuário. Softcall Java. versão 1.0.5

CURSO DE PROGRAMAÇÃO EM JAVA

Análise de Dados do Financeiro

Um Driver NDIS Para Interceptação de Datagramas IP

Manual do Usuário Android Neocontrol

Orientação a Objetos

Santa Cruz do Sul, outubro de 2015.

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, cj. 121 CEP São Paulo - SP (11)

Aplicação Prática de Lua para Web

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

Sumário INSTALAÇÃO DO SIATRON CONDOMÍNIO ATIVAÇÃO DA LICENÇA PRESTADORES DE SERVIÇOS PARÂMETROS DO SISTEMA

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

Software automatizado para controle de consultas da clínica de fisioterapia

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Pesquisa e organização de informação

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

TÍTULO: GARRA ROBÓTICA PERCEPTIVA CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA

CENTRO UNIVERSITÁRIO CATÓLICA DE SANTA CATARINA PRÓ-REITORIA ACADÊMICA NÚCLEO DE EDUCAÇÃO EM AMBIENTES DIGITAIS NEAD

CONSTRUÇÃO DE VEÍCULO MECATRÔNICO COMANDADO REMOTAMENTE

Manual de Utilização das Funções Básicas do Sistema ClinicWeb

Aula 5 Microsoft PowerPoint 2003: Criando uma Apresentação

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.

Manual do Visualizador NF e KEY BEST

Manual do usuário - Service Desk SDM - COPASA. Service Desk

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

MANUAL DO USUÁRIO. Software de Imagem via Celular (isic) baseado no sistema operacional Symbian

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

5 Sistema Experimental

Análise e Tramitação de Projetos nos Comitês de Ética em Pesquisa

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

Manual de Operação Aplicativo ClickIt

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Manual do Aplicativo - Rastreamento Veicular

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

CorelDRAW UM PROGRAMA DE DESIGN

Disciplina: Programas de Edição de Textos Professora: Érica Barcelos

MÓDULO 5 Movimentações

Digifort Mobile Manual Version 1.0 Rev. A

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

TRANSMITINDO CONHECIMENTO ON-LINE

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Módulo de captura de imagens do sistema Scisoccer

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

VERSÃO 1 PRELIMINAR MÓDULO 3 - PRESENCIAL

Microsoft Office PowerPoint 2007

Curso Introdução à Educação Digital - Carga Horária: 40 horas (30 presenciais + 10 EaD)

Manual do sistema SMARsa Web

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

AVALIAÇÃO DE INTERFACES UTILIZANDO O MÉTODO DE AVALIAÇÃO HEURÍSTICA E SUA IMPORTÂNCIA PARA AUDITORIA DE SISTEMAS DE INFORMAÇÕES

Programação de Robótica: Modo Circuitos Programados - Avançado -

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

Sistema de Controle de Solicitação de Desenvolvimento

Manual Operacional SIGA

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Smart Laudos 1.9. A Forma Inteligente de Criar seus Laudos Médicos. Manual do Usuário

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Registro e Acompanhamento de Chamados

Guia Site Empresarial

Como funciona? SUMÁRIO

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Acesso Remoto Placas de captura

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Guia ineocontrol. iphone e ipod Touch

Cadastramento de Computadores. Manual do Usuário

HCT Compatibilidade Manual do Usuário

Criando Quiz com BrOffice.impress

Interação Humana com Computador

Geral: Manual de Utilização do Software de Teste Gradual Windows

Ajuda On-line - Sistema de Portaria. Versão 4.8.J

Atualizaça o do Maker

Manual UNICURITIBA VIRTUAL para Professores

Manual de implantação

Sistemas Distribuídos

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

Poder Judiciário Tribunal Regional Federal da Terceira Região

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Manual do Usuário - Plataforma Simulados

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

Profª Danielle Casillo

Transcrição:

SYS-RGP SISTEMA DE RECONHECIMENTO DE GESTOS PERSONALIZADOS Relatório Final Bolsista: DOUGLAS RAFAEL GOMES e-mail: drg182@gmail.com Orientador: Prof. Plinio Thomaz Aquino Jr Departamento de Ciências da Computação FEI e-mail: plinio.aquino@fei.edu.br São Bernardo do Campo 2010

DOUGLAS RAFAEL GOMES SYS-ReGePe SISTEMA DE RECONHECIMENTO DE GESTOS PERSONALIZADOS Relatório Final de, apresentando ao Centro Universitário da FEI, como requisito fundamental para a descrição dos resultados do presente projeto de pesquisa, orientado pelo Prof. Dr. Plinio Thomaz Aquino Jr. São Bernardo do Campo 2010

Douglas Rafael Gomes SYS-ReGePe Sistema de Reconhecimento de Gestos Personalizados Relatório final de iniciação científica Centro Universitário da FEI Comissão julgadora Orientador Examinador (1) Examinador (2) São Bernardo do Campo 2010

Aos meus pais, ao Prof. Dr. Plinio Thomaz Aquino Jr e a todos que colaboraram de alguma forma com o desenvolvimento deste trabalho.

AGRADECIMENTOS Gostaria de agradecer ao professor Plinio pela oportunidade dada e por sua paciência, compreensão e dedicação. Aos meus pais e amigos, pelo freqüente apoio em todo o tempo de desenvolvimento do trabalho.

Se, a princípio, a idéia não é absurda, então não há esperança para ela. Albert Einstein

RESUMO O presente relatório de iniciação científica propõe a criação de um sistema que, com o auxílio de um kit Sun SPOT (Small Programmable Object Technology), reconheça e cadastre gestos e movimentos humanos não convencionais, transformando-os em comandos de controle para uma aplicação qualquer. Em outras palavras, o usuário poderá cadastrar quaisquer movimentos desejados para executar uma ação específica. No decorrer deste projeto, definiu-se a apresentação de um simulador de trânsito, dentre outros exemplos acerca da aplicação do sistema. Esta escolha deu-se por ordem de prioridade, pois o equipamento permite sua representação em um ambiente real. De acordo com a obtenção de resultados, tratando-se de um módulo de reconhecimento de comandos, o sistema será aplicado no veículo autônomo da FEI. Palavras-chave: Sun SPOT Reconhecimento de Gestos - Java

ABSTRACT This scientific undergraduate s final report proposes the creation of a system that, through the aid of a kit Sun SPOT (Small Programmable Object Technology), to recognize nonconventional human's gestures and movements and translate them into control commands for any application, i.e., the user can register any movement he or she wants to perform a specific action within this application. It will be used as one of the system examples s a traffic simulator, to be chosen by the project progresses. The choice of a traffic simulator was based on the fact that this represents a real environment, and depending on the results of this work, the system could be implemented as a module for recognition of the autonomous vehicle commands of FEI. Key words: Sun SPOT - Gesture Recognition Java

LISTA DE ILUSTRAÇÕES Figura 1 - Interação do console Wii... 13 Figura 2 - Sistema reconhecendo a cabeça (H) e mãos esquerda (L) e direita (R) do usuário... 14 Figura 3 - Conjunto predefinido de gestos que são reconhecidos... 15 Figura 4 Sistema reconhecendo gestos e atribuindo valores... 15 Figura 5 Imagem do vídeo de lançamento do Project Natal da Microsoft... 16 Figura 6 Netbeans e o plugin do Sun SPOT... 18 Figura 7 Sun SPOT Development Kit... 19 Figura 8 Sun SPOT detalhado... 19 Figura 9 Referência do Sun SPOT, o Sistema Cartesiano de Coordenadas... 20 Figura 10 A Basestation... 21 Figura 11 O Sun SPOT Manager... 22 Figura 12 O Ectoplasmic Bouncing Ball em um Sun SPOT.... 23 Figura 13 Comunicação remota entre os Sun SPOTs... 23 Figura 14 O Sun SPOT simulado... 24 Figura 15 Demonstração do Air Text... 24 Figura 16 Telemetry e sua saída... 25 Figura 17 3D Driving School... 26 Figura 18 Racer... 27 Figura 19 RARS... 28 Figura 20 TORCS... 28 Figura 21 VDrift... 29 Figura 22 FlightGear... 30 Figura 23 Resposta em freqüência dos parâmetros de aceleração, repouso e frenagem... 34 Figura 24 Resposta em freqüência da direção.... 35 Figura 25 Resposta em freqüência de um gesto qualquer... 36 Figura 26 A figura (a) ilustra um gesto sendo reconhecido pelo sistema para uma certa calibração. Já a figura (b), para a mesma calibração, mostra um sinal não reconhecido pelo sistema... 37 Figura 27 Interação do Sys-RGP... 41 Figura 28 Saída do Sys-RGP... 42

SUMÁRIO 1. OBJETIVO... 12 2. TRABALHOS RELACIONADOS... 13 2.1 Nintendo Wii...13 2.2 Sistema de Cabral...14 2.3 Sistema de Alain...14 2.4 Sistema de Lamar, Bhuiyan e Iwata...15 2.5 Project Natal da Microsoft...16 3. REVISÃO BIBLIOGRÁFICA... 17 3.1 Linguagem de programação Java...17 3.1.1 O ambiente de desenvolvimento integrado Netbeans... 17 3.2 Introdução ao Sun SPOT Development Kit...18 3.2.1 Sun SPOT... 19 3.2.1.1 Acelerômetro LIS3LO2AQ... 19 3.2.1.2 Classe IAccelerometer3D... 20 3.2.2 Basestation... 21 3.2.3 Sun SPOT Manager... 21 3.2.4 Exemplos de aplicações... 22 3.2.4.1 Ectoplasmic Bouncing Ball... 22 3.2.4.2 Air Text... 24 3.2.4.3 Telemetry... 24 3.3 Testes com Usuários...25 3.4 Simuladores de Trânsito...26 3.4.1 Simuladores testados... 26 3.4.1.1 3D Driving School... 26

3.4.1.2 Racer... 27 3.4.1.3 RARS... 27 3.4.1.4 TORCS... 28 3.4.1.5 VDrift... 29 3.4.1.6 FlightGear... 29 4. METODOLOGIA... 31 5. RESULTADOS OBTIDOS... 33 5.1 Sys-RGP...33 5.1.1 SunSPOT_A... 33 5.1.2 SunSPOT_B... 35 5.1.3 SunSPOT_C... 40 5.1.4 Versão final... 40 5.2 Testes com usuários...42 6. CONCLUSÃO... 44 REFERÊNCIAS... 45

1. OBJETIVO O objetivo deste projeto é estudar, desenvolver e propor um novo tipo de tecnologia com ênfase em gestos, comumente conhecida por tratar da interação entre humano e computador (IHC). Em outras palavras, contribuir para o desenvolvimento e pesquisa das aplicações existentes no mercado, que tratam da exclusão de periféricos físicos para manipulação de sistemas. Com a experiência adquirida, aliada aos resultados produzidos, espera-se que o projeto colabore, futuramente, com o desenvolvimento de sistemas interativos, e que não necessite de qualquer controle acoplado ao usuário. A interação dar-se-á por meio dos movimentos naturais do corpo, adequando-se aos mais diferentes biotipos. Este fator será primordial para que os sistemas atendam às características individuais de cada ser humano.

2. TRABALHOS RELACIONADOS É evidente que, nos dias atuais, a utilização de periféricos ou não, que tratam do reconhecimento de gestos em sistemas, é muito comum. Nesta seção, serão exibidos alguns trabalhos relacionados aos principais assuntos deste projeto; cuja temática aborda os seguintes critérios: Realidade virtual, reconhecimento de gestos, IHC e visão computacional. 2.1 Nintendo Wii O Wii da Nintendo é um console capaz de detectar movimentos humanos, com a finalidade de interagir com jogos e suas respectivas funções. Esta manipulação virtual é realizada por meio do controle Wii Remote (aparelho que detecta movimentos em três dimensões), que envia sinais via Bluetooth para a Sensor Bar (Barra de Sensor). Deste modo, o videogame é capaz de realizar a ação correspondente ao movimento do jogador (NINTENDO, 2006). Figura 1 - Interação do console Wii O kit Sun SPOT assemelha-se, consideravelmente, a um console Wii. Ambos Sun SPOTs são capazes de assumir todas as funções do Wii Remote; a Sensor Bar (responsável pela comunicação entre o controle e o console via Bluetooth) é representada pela Basestation, onde é feita a interação via rádio. Por fim, o console, onde são executados os jogos, é substituído pelo próprio computador.

2.2 Sistema de Cabral O sistema, elaborado por Cabral (2005), ao enquadrar a visualização do corpo do indivíduo em seu campo de visão, reconhece e identifica as mãos e a cabeça do usuário. A orientação é estabelecida por meio dos pontos cardeais (Norte, Sul, Leste e Oeste), o que permite que gestos pré-cadastrados movam um cursor ou executem uma função qualquer. Em uma das etapas da aplicação do sistema, o autor executa uma interface de apontar e clicar. A mão direita (R) move o cursor em uma tela, já a mão esquerda (L) funciona para a ativação de comandos. Por exemplo: quando (L) se localiza a leste do sistema de referência, um clique é gerado (Figura 2). Figura 2 - Sistema reconhecendo a cabeça (H) e mãos esquerda (L) e direita (R) do usuário Como proposta de um trabalho futuro, o autor sugere o rastreamento de imagens, utilizando-se mais de uma câmera. Desta forma, será possível reconhecer gestos, não apenas em um plano, como também em um ambiente tri-dimensional. 2.3 Sistema de Alain Tendo como motivação o desenvolvimento da interação humano-computador (IHC), Alain (2005) propõe, por meio de uma webcam, um sistema que captura imagens de uma mão limpa (sem a utilização de nenhum dispositivo mecânico acoplado a ela) tornando-a capaz de interagir com as funções de um computador.

Figura 3 - Conjunto predefinido de gestos que são reconhecidos Tal como se observa na Figura 3, o sistema de Alain (2005) reconhece o número de dedos na mão do usuário. Com essa informação, é possível definir funções para cada movimento; porém, limitando-se ao número de estados possíveis. 2.4 Sistema de Lamar, Bhuiyan e Iwata Esse sistema propõe uma nova estrutura de rede neural para reconhecimento de gestos, a T-ComboNET. O ponto principal desta rede é a divisão do espaço de entrada em dois subespaços, que são trabalhados por estágios diferentes da rede (LAMAR ; BHUIYAN ; IWATA, 2003). Figura 4 Sistema reconhecendo gestos e atribuindo valores Utilizou-se, como exemplo de aplicação deste sistema, o reconhecimento de gestos para o alfabeto manual japonês. Segundo os autores, este alfabeto é formado por 42 posturas estáticas da mão e 34 diferentes movimentos. Alguns deles podem ser observados na Figura 4.

2.5 Project Natal da Microsoft O Project Natal, da Microsoft, propõe um novo tipo de videogame, onde não há a necessidade de controles ou outros periféricos. O processador é capaz de reconhecer gestos e características humanas, permitindo ao usuário interagir com os jogos e outras funções do console (MICROSOFT, 2009). Figura 5 Imagem do vídeo de lançamento do Project Natal da Microsoft Esse console serviu de inspiração para a idéia deste projeto. Futuramente, pode-se criar um sistema que reconheça gestos e características humanas, sem a necessidade de qualquer tipo de periférico acoplado ao usuário (neste caso, o Sun SPOT). A solução dar-se-á por meio de câmeras de baixo custo, tais como as webcams.

3. REVISÃO BIBLIOGRÁFICA 3.1 Linguagem de programação Java Em maio de 1995, a linguagem de programação Java foi anunciada em uma importante conferência. Criado e desenvolvido por James Gosling, nos laboratórios da Sun Microsystems, o programa fundamenta-se na orientação a objetos, e destacou-se entre outros, por seu potencial de adicionar conteúdos dinâmicos (tais como interatividade e animações) em páginas Web. Hoje em dia, o programa é utilizado não só para desenvolver aplicativos corporativos de grande porte, mas também para dispositivos voltados ao consumo popular; como, por exemplo, os aparelhos de telefonia celular (DEITEL, 2005). Diferentemente de outras linguagens de programação, que são compiladas para o código nativo da máquina, a linguagem Java é compilada para um bytecode, cuja interpretação dá-se por meio de sua máquina virtual, a JVM (Java Virtual Machine). Segundo Deitel (2005), acreditava-se que este processo ocasionaria um baixo desempenho nas aplicações Java. Entretanto, com os novos avanços da linguagem, provou-se justamente o contrário. 3.1.1 O ambiente de desenvolvimento integrado Netbeans A IDE (Integrated Development Environment) Netbeans é um ambiente open source e gratuito, que abrange o crescimento integrado para desenvolvedores de software (NETBEANS, 2010). O Netbeans oferece suporte a várias linguagens de programação, inclusive o Java. Escolheu-se esta plataforma, pelo fato de atender as necessidades da linguagem Java, além de permitir a adição de um plugin do Sun SPOT. Em suma, oferece uma interface focada à programação dos equipamentos, facilitando sua integração.

Figura 6 Netbeans e o plugin do Sun SPOT 3.2 Introdução ao Sun SPOT Development Kit O Sun SPOT Development Kit, produzido pela Sun Microsystems, consiste em um conjunto de equipamentos, elaborados para o desenvolvimento científico em programação Java. O L.E.U. (Laboratório de Engenharia de Usabilidade do Centro Universitário da FEI) possui um kit Sun SPOT, doado pela própria Sun. O kit é constituído basicamente por: Dois Sun SPOTs; Uma Basestation; Documentação (incluindo manual de instalação, informações de segurança, etc.); CD-ROM de instalação do Java, Netbeans 5.5, Sun SPOT Manager e exemplos de aplicação do Sun SPOT; Cabo USB, utilizado para carregar código fonte nos dispositivos Sun SPOTs ou manter a Basestation conectada ao computador; Acessórios para desenvolvimento em terceiros.

Figura 7 Sun SPOT Development Kit 3.2.1 Sun SPOT O Sun SPOT é um dispositivo programável em Java, projetado para ter flexibilidade (SUN SPOT WORLD, 2003). Sua composição básica inclui o acelerômetro de três eixos, transmissor de rádio, sensores de temperatura e luz, oito LEDs multicoloridos (RGB), dois switches do tipo push-button, cinco pinos I/O digitais, seis entradas analógicas, quatro saídas digitais e uma bateria recarregável via cabo USB. Devido à sua aplicação Java, a programação do Sun SPOT é surpreendentemente fácil. Figura 8 Sun SPOT detalhado 3.2.1.1 Acelerômetro LIS3LO2AQ O LIS3LO2AQ é um acelerômetro linear de três eixos, que se localiza na placa de sensores do Sun SPOT. Este sensor é responsável pelo reconhecimento de movimentos, e suas respectivas acelerações, tendo como referência o Sistema Cartesiano de Coordenadas (X, Y e Z) (SUN SPOT WORLD, 2003).

Figura 9 Referência do Sun SPOT, o Sistema Cartesiano de Coordenadas Na figura acima, o símbolo (+), islustrado ao final de cada eixo, indica qual é o sentido positivo adotado de aceleração. Se, por exemplo, o Sun SPOT estiver parado em cima de uma mesa (com a placa de sensores virada para cima), o acelerômetro atribuirá - 9,8 m/s² no eixo Z, devido à força gravitacional da Terra (que sempre aponta para seu centro) e, obviamente, aceleração será nula nos eixos X e Y. 3.2.1.2 Classe IAccelerometer3D Com o intuito de elaborar programações específicas dos equipamentos Sun SPOTs, diversas classes Java foram estudadas, tais como: acionar um LED ou detectar o pressionamento de um dos switches. Na análise da classe IAccelerometer3D, detectou-se um grupo de métodos, considerados fundamentais para os primeiros esboços do sistema de reconhecimento de gestos. A seguir, serão especificados os principais procedimentos dessa classe (SUN SPOT WORLD, 2003): Método getaccexl(): calcula a aceleração ao longo do eixo X de coordenadas cartesianas, retornando um valor double; Método getaccely(): calcula a aceleração ao longo do eixo Y de coordenadas cartesianas, retornando um valor double; Método getaccelz(): calcula a aceleração ao longo do eixo Z de coordenadas cartesianas, retornando um valor double; Método getaccel(): calcula o módulo da aceleração total ao longo dos 3 eixos de coordenadas cartesianas (X,Y e Z), retornando um valor double positivo; Método gettiltx(): calcula a inclinação do Sun SPOT em relação ao eixo X de coordenadas cartesianas, retornando um valor double no intervalo entre e + ;

Método gettilty(): calcula a inclinação do Sun SPOT em relação ao eixo Y de coordenadas cartesianas, retornando um valor double no intervalo entre e + ; Método gettiltz(): calcula a inclinação do Sun SPOT em relação ao eixo Z de coordenadas cartesianas, retornando um valor double no intervalo entre e +. Na seção de resultados será exemplificada a utilização destes métodos, com a finalidade de demonstrar o quão úteis podem ser tais valores, inseridos na função de reconhecimento de gestos. 3.2.2 Basestation A Basestation pode ser considerada semelhante a um Sun SPOT, com a retirada de sua placa de sensores e da bateria recarregável. Por possuir um transmissor de rádio (do tipo IEEE 802.15.4), ela é responsável pela comunicação dos SPOTs com o computador; o que permite a criação de sistemas de comunicação wireless. Figura 10 A Basestation 3.2.3 Sun SPOT Manager A ferramenta Sun SPOT Manager é um aplicativo Java responsável pelo monitoramento dos Sun SPOTs. Por meio deste aplicativo, permite-se, por exemplo, atualizar o SDK (Software Development Kit) de cada aparelho.

Figura 11 O Sun SPOT Manager 3.2.4 Exemplos de aplicações O CD-ROM de instalação do kit possui uma série de aplicações demonstrativas do uso dos Sun SPOTs e da Basestation (SUN SPOT WORLD, 2003), cujos códigos fonte serviram de estudo para a compreensão da programação Sun SPOT. Os exemplos descritos a seguir mostram como utilizar o acelerômetro. 3.2.4.1 Ectoplasmic Bouncing Ball Neste exemplo, a linha de oito LEDs do Sun SPOT representa um tubo, onde uma pequena bola (representada pelo LED azul) encontra-se presa entre suas extremidades (LEDs vermelhos):

Figura 12 O Ectoplasmic Bouncing Ball em um Sun SPOT. Ao carregar o programa, em um segundo Sun SPOT, é possível fazer a comunicação entre os dois equipamentos. Ao pressionar um dos dois switches (localizados abaixo dos LEDs), um sinal é enviado e uma das cercas começa a piscar. Isso significa que o SPOT aguarda o outro pressionar também um switch para realizar a conexão. Feito isso, as cercas se abrem, permitindo a passagem das bolinhas de um SPOT para outro. Figura 13 Comunicação remota entre os Sun SPOTs Como exemplo de aplicação da Basestation, existe um Sun SPOT simulado dentro do computador. Com a Basestation conectada ao equipamento, executou-se o programa e, como resultado, tornou-se possível a comunicação (embora remota) dos SPOTs reais com o SPOT simulado.

Figura 14 O Sun SPOT simulado 3.2.4.2 Air Text Esta aplicação também faz uso dos parâmetros do acelerômetro. A denominada Air Text é capaz de detectar a aceleração no Sun SPOT, e piscar os LEDs em certa freqüência, permitindo-se a visualização do texto: Hi!... This... is a... Sun... SPOT. Figura 15 Demonstração do Air Text 3.2.4.3 Telemetry Trata-se de uma aplicação que, por meio da Basestation, recebe e exibe os dados do acelerômetro do Sun SPOT (aceleração nos eixos X, Y e Z e o módulo total da aceleração), em um gráfico na tela.

Figura 16 Telemetry e sua saída 3.3 Testes com Usuários Esses testes permitem aos desenvolvedores uma análise mais aprofundada, acerca da usabilidade e funcionalidade de seus sistemas. Os usuários (por sua vez, voluntários) são designados para desenvolverem as tarefas de uma atividade qualquer. Durante este processo, os indivíduos emitem críticas, tanto positivas quanto negativas, sobre determinadas execuções. Deste modo, faz-se uma coleta de dados, que é oferecida para análise. Estas informações auxiliam os especialistas a evitarem erros, em busca de uma melhor usabilidade de seus sistemas. O teste com usuários pode ser dividido em três principais etapas: 1ª- Procura de usuários: para a execução do teste, faz-se necessário que um grupo de pessoas concorde em realizá-lo. No caso deste projeto, alunos do Centro Universitário da FEI ofereceram-se para os testes. 2ª-Realização do teste de usabilidade: nesta etapa, o usuário é orientado a analisar a interface, e suas devidas funcionalidades. É extremamente importante que o usuário dê a sua opinião sobre o sistema, para a análise de dados. 3ª-Análise dos dados: são agrupados todos os resultados obtidos, por meio dos testes com usuários, e feita uma análise aprofundada acerca do que precisa ser modificado no sistema.

3.4 Simuladores de Trânsito Simuladores são sistemas que tentam reproduzir uma situação real, dentro de um ambiente de interação virtual (um vídeo-game ou um computado, por exemplo). Um dos tipos de simulador comumente encontrado nos dias de hoje é, sem dúvida, o simulador de trânsito ou corrida. Para exemplo de aplicação do sistema a ser criado, foram testados alguns simuladores de trânsito, sendo a maioria open source; ou seja, de código fonte livre para possíveis alterações. 3.4.1 Simuladores testados Nesta seção, serão descritos os simuladores encontrados e testados. 3.4.1.1 3D Driving School Você quer retirar sua licença de motorista e salvar o seu tempo e dinheiro? Por que não praticar com um simulador! (3D-SIMULATOR, 2009). O 3D Driving School, desenvolvido pela empresa alemã Besier 3D-Edutainment Wiesbaden, foi criado com o intuito de ajudar as pessoas a treinarem suas habilidades automobilísticas, por meio deste simulador. Figura 17 3D Driving School Apesar de não ser open source, este é um simulador de trânsito completo. Possui controle de todas as funções disponíveis em um automóvel, desde acionar o pisca - alerta até observar um dos retrovisores.

3.4.1.2 Racer Racer é uma multi-plataforma livre, desenvolvida pela Cruden, e projetada para simulação real de corrida. É constituída por estruturas profissionais de um carro (com o intuito de proporcionar uma sensação mais realista) aliadas a um excelente mecanismo de renderização gráfica (RACER, 2010). Também estimula os usuários a criarem seu próprio conteúdo (carros e pistas), por meio de formatos de arquivo simples. Figura 18 Racer Racer é um projeto de simulação de trânsito para uso não-comercial, além de ser opensource. Não possui tantas funções, mas seus gráficos são excelentes. 3.4.1.3 RARS RARS (Robot Auto Racing Simulation) consiste na simulação de carros de corrida em uma pista, um display gráfico da corrida, e um programa de controle separado (robot "driver") para cada carro.

Figura 19 RARS Não foram encontradas informações sobre seus desenvolvedores. Todos os softwares RARS, e suas respectivas atividades, são gratuitos e abertos ao público (RARS, 2006). 3.4.1.4 TORCS Open source, o TORCS (The Open Racing Car Simulator) é um simulador de carros de corrida, desenvolvido por Eric Espie e Guionneau Christophe (TORCS, 2010). O código fonte do TORCS é licenciado sob a GPL (General Public License). Figura 20 TORCS TORCS possui mais de 50 carros, 20 pistas e 50 oponentes diferentes. A simulação possui componentes que representam colisões, pneus, aerodinâmica e muito mais. Sua jogabilidade permite diferentes tipos de corridas, que podem ir de uma simples sessão prática, até campeonatos.

3.4.1.5 VDrift Criado por Joe Venzon, em meados de 2005, o VDrift é uma multi-plataforma opensource, que foi desenvolvida para simular corridas de automóveis esportivos (VDRIFT, 2010). Seus gráficos são excelentes, exigindo um alto desempenho de vídeo. Figura 21 VDrift 3.4.1.6 FlightGear O projeto FlightGear é um simulador de vôo, extremamente sofisticado, desenvolvido por Curtis L. Olson. O objetivo foi criar um ambiente, com o máximo possível de precisão, para seu uso em pesquisa ou ambientes acadêmicos. (FLIGHTGEAR, 2010). O código fonte de FlightGear foi mantido como open source, e desenvolve-se por meio das contribuições de código-fonte e tempo de reposição, enviados por pessoas de todo o mundo.

Figura 22 FlightGear Seria interessante aplicar o sistema de reconhecimento de gestos neste simulador, em um trabalho futuro, devido ao grande número de funções que um avião possui.

4. METODOLOGIA Foi necessário um kit Sun SPOT para o desenvolvimento deste projeto. A metodologia empregada consistiu em realizar, inicialmente, uma revisão bibliográfica aplicada na linguagem de programação Java. Em seguida, foi feito um estudo detalhado do kit Sun SPOT e de suas respectivas aplicações. Após a revisão bibliográfica, foi possível executar os primeiros esboços do sistema. No decorrer do projeto, o sistema aperfeiçoou-se, gradualmente, até alcançar seu estado final. Testes de usabilidade com usuários reais foram feitos, com o intuito de medir a usabilidade (NIELSEN, 1994) e a eficiência do sistema. Para fins de exemplificação, o sistema foi testado em diferentes aplicações. Todas as etapas mencionadas serão detalhadas a seguir. A) Estudo da linguagem de programação Java: Devido ao Sun SPOT ser um equipamento de desenvolvimento em linguagem Java, foram estudados conceitos de programação. Utilizou-se, como livro texto, o Java, Como Programar 6ªed. de Harvey e Paul Deitel, recomendado pelo professor orientador deste projeto. B) Estudo do kit Sun SPOT e suas aplicações: O estudo dos conceitos em programação Java possibilitou a exploração da biblioteca de classes e métodos do Sun SPOT, e também dos códigos fonte de vários exemplos de aplicação que o kit possui. Essa etapa foi fundamental para produzir as primeiras aplicações Sun SPOT. C) Desenvolvimento do SYS-RGP: A revisão bibliográfica, dos tópicos citados anteriormente, permitiu a criação dos primeiros esboços do sistema de reconhecimento de gesto, o Sys-RGP. No decorrer do projeto, cada etapa de seu desenvolvimento culminou, positivamente, para a concretização de seu estado final. O sistema é capaz de calibrar um ou mais determinados gestos e reconhecêlos. Maiores detalhes sobre o Sys-RGP poderão ser encontrados no item 5 Resultados Obtidos.

D) Procura de simuladores open source: A próxima etapa consistiu em procurar possíveis simuladores de trânsito, como exemplo de aplicação do sistema de reconhecimento de gestos, o Sys-ReGePe. Foram encontrados diversos modelos, sendo a maioria deles open source; ou seja, com código livre para possíveis alterações, conforme a necessidade do sistema. Os testes, aplicados a estes programas de simulação, foram exemplificados na seção 3.3 Simuladores de Trânsito. E) Teste com usuários: Realizaram-se testes, com usuários reais, para possibilitar a análise da usabilidade e da funcionalidade do sistema. Isto permitiu que determinadas programações fossem reavaliadas e corrigidas.

5. RESULTADOS OBTIDOS Este tópico ilustra todos os resultados obtidos pelo projeto de Iniciação Científica. 5.1 Sys-RGP O kit Sun SPOT foi dividido em três partes principais, as quais compõem o Sys-RGP. E, serão atribuídas funções específicas a cada equipamento, detalhadas nos itens a seguir. 5.1.1 SunSPOT_A O SunSPOT_A será o responsável pelo controle da direção, aceleração e frenagem do simulador. Este SPOT não faz parte do Sys-RGP, pois sua utilização serviu apenas para a interação com o simulador de trânsito. A inclinação do SunSPOT_A, em relação ao eixo Y, controla a aceleração, a frenagem ou a posição de repouso do controlador, respeitando os seguintes intervalos (definidos experimentalmente através de tentativa e erro): Se a inclinação em Y for menor que 0.2, e maior que 0.2 (lembrando que o acelerômetro retorna um valor entre e + ), o sistema atribui o valor de repouso ao simulador; ou seja, não acionar nenhuma função (aceleração ou frenagem). Se a inclinação em relação a Y for maior ou igual a 0.2, o sistema começa a atribuir o valor de aceleração ao simulador. Finalmente, o último intervalo restante. Se inclinação em relação a Y for menor ou igual a 0.2, o sistema começa a atribuir o valor de frenagem ao simulador.

Figura 23 Resposta em freqüência dos parâmetros de aceleração, repouso e frenagem A freqüência desses valores (dados enviados por segundo) é calculada em função do valor da inclinação do eixo Y, seguindo as seguintes equações: para a aceleração, para a frenagem, Onde tilty é o valor da inclinação do SunSPOT_A em relação ao eixo Y Essa freqüência será utilizada para controlar a quantidade de aceleração e frenagem do sistema. Quanto mais inclinado o SPOT estiver, maior a freqüência do sinal e maior será o número de repetições da função. Deste modo, aumentar-se-á a aceleração, ou a frenagem do simulador.

A mesma idéia aplica-se à direção do sistema, mudando apenas o eixo de referência. A inclinação do SunSPOT_A, em relação ao eixo X, controla a direção do simulador. Entre o intervalo {0.2; - 0.2}, o sistema mantém a direção em estado de repouso. Ou seja, o carro andaria em linha reta. Para valores maiores que 0.2, o sistema começa a virar a direção do simulador para a direita. Consequentemente, para valores menores que 0.2, a direção começa a virar para a esquerda. Quanto maior a inclinação, maior será o desvio da direção para ambos os lados. Figura 24 Resposta em freqüência da direção. 5.1.2 SunSPOT_B O SunSPOT_B será responsável pelo cadastramento e reconhecimento de gestos. A seguir, a figura 25 ilustra o sistema elaborado para exibir os parâmetros do acelerômetro, por meio de um sinal qualquer (aceleração e inclinação em X, Y e Z, além do módulo da aceleração e tempo de duração do sinal). O sinal é captado, enquanto um dos switches estiver pressionado.

Figura 25 Resposta em freqüência de um gesto qualquer A última linha de parâmetros demonstra a somatória de cada um dos sete vetores. Utilizou-se este princípio, visando à obtenção de um sistema habilitado ao reconhecimento de gestos. Para isso, criou-se um protótipo que demanda o calibre do sinal pelo próprio usuário. Ou seja, faz-se necessário repetir o mesmo gesto, por dez vezes consecutivas. A cada calibração executada, o sistema compara todas as sete somatórias de vetores (com base no sinal anterior) e armazena o maior e menor valor de cada. Além disso, outro valor de significativa importância deve ser armazenado: o tempo de duração do sinal (em segundos).

Figura 26 A figura (a) ilustra um gesto sendo reconhecido pelo sistema para uma certa calibração. Já a figura (b), para a mesma calibração, mostra um sinal não reconhecido pelo sistema Se os parâmetros do décimo primeiro sinal estiverem dentro de seus respectivos oito intervalos (as quatro acelerações, as três inclinações e ao tempo decorrido), o sinal é considerado reconhecido (Figura 26 (a)). Ao contrário, o sistema recusa o sinal (Figura 26 (b)). Com este objetivo, foi criado a função calibrate_1(), descrita a seguir.

Implementou-se esta função ao sistema, com a finalidade de calibrar um gesto qualquer. O sistema retorna um vetor, do tipo double (módulo 16), com os maiores e menores valores dos parâmetros calibrados (já citados anteriormente). Os resultados servirão para a comparação do sinal a ser reconhecido. 5.1.3 SunSPOT_C O SunSPOT_C é, na verdade, a Basestation. Ela é responsável por realizar a comunicação entre os SPOTs A e B com o computador. Os parâmetros, mostrados nos itens anteriores, podem ser obtidos via rádio (já explanados anteriormente), por meio do SunSPOT_C. Para realizar esta função, basta usar o utilizar o seguinte comando: ant DremoteId = <IEEE_ADDRESS> run Onde <IEEE_ADRESS> é o número serial de comunicação do Sun SPOT. Desta forma, o aplicativo é executado remotamente. 5.1.4 Versão final Criou-se uma versão do sistema, a qual permitiu ao usuário a possibilidade de, aleatoriamente, realizar três gestos (direcionados a uma função), com o intuito de executar uma tarefa pré-determinada. Inicialmente, o usuário deverá realizar a calibração destes três movimentos, quantas vezes forem necessárias.