Relatório Final - paginas.fe.up.ptee06243/documentos/pdi/RelatorioFinal.pdf · INOVA+ que tem como...
-
Upload
truonglien -
Category
Documents
-
view
228 -
download
0
Transcript of Relatório Final - paginas.fe.up.ptee06243/documentos/pdi/RelatorioFinal.pdf · INOVA+ que tem como...
Plataforma de apoio à terapia de reabilitação e manutenção de doentes de Parkinson
Relatório Final
Preparação da Dissertação
Filipe Daniel Magalhães Vieira
060503243
Mestrado Integrado em Engenharia Eletrónica e de Computadores: Telecomunicações,
Eletrónica e Computadores
Orientador Interno: Prof. Miguel Velhote Correia
Orientador na Empresa: Eng. João Correia
Para os meus Pais e irmã
© Filipe Vieira, 2012
Plataforma de apoio à terapia de reabilitação
e manutenção de doentes de Parkinson
Trabalho de Preparação da Dissertação realizada no âmbito do
Mestrado Integrado em Engenharia Eletrotécnica e de Computadores
Ramo Telecomunicações, Eletrónica e Computadores
Orientador Interno: Prof. Miguel Velhote Correia
Orientador na Empresa: Eng. João Correia
FEUP - Faculdade de Engenharia da Universidade do Porto
Porto 2012
i
Resumo
Esta proposta de dissertação surge na sequência de uma solicitação da empresa
INOVA+ que tem como objetivo a criação de uma plataforma de apoio à terapia de reabilitação
e manutenção de doentes de Parkinson através de um ambiente virtual com interação
utilizando o Kinect, para computadores pessoais.
Graças ao avanço tecnológico na área de captura de movimento (MOCAP), surgiram no
mercado novos equipamentos de captura de movimentos para o uso doméstico, mais
concretamente para interação com jogos de vídeo. Assim, obter um destes equipamentos
tornou-se algo acessível e pouco dispendioso. Neste sentido, a INOVA+ decidiu criar uma
aplicação que possa não só ser usada nas sessões de fisioterapia de paciente com doença de
Parkinson mas também pelos familiares e amigos de pessoas que sofram desta doença.
A aplicação é um sistema complexo com várias opções de uso, entre as quais existirá
uma opção de jogos lúdicos que proporcionem ao paciente a prática de atividade física. É
neste contexto que se focará a minha dissertação. Assim, o objetivo principal do projeto
consiste em criar um ou mais jogos lúdicos que permitam ao utilizador, pessoa que sofra da
doença de Parkinson, jogar através de movimentos do seu corpo.
Palavras-chave: Eletrotécnica, computadores, MOCAP, Kinect, jogos didáticos,
tecnologia, fisioterapia e doença de Parkinson
ii
iii
Abstract
This proposal is in response to a request from the INOVA+ Company whose objective is
to create a platform to support rehabilitation and maintenance therapy of Parkinson patients
through a virtual environment with interaction using the Kinect from Microsoft, for personal
computers.
Due to technological advances in the motion capture (MOCAP) area, several new
motion capture equipment to domestic use appeared on the market, specifically for
interacting with videogames. To buy one of these devices has become affordable and
inexpensive. Considering this, INOVA+ decided to create an application that can be used not
only in physical therapy sessions but also in the home with help of the family members and
friends of people that have that disease.
The application will include multiple options of use, among which there will be a choice
of didactic games that provides entertainment and physical activity to the patient. That will be
the focus of dissertation. The main objective of this project is to create one or more didactic
games that allow the patient to play through his/her body movements.
Keywords: Electrical engineering, computers, MOCAP, Kinect, didactic games, technology,
physical therapy and Parkinson’s disease
iv
v
Agradecimentos
Este espaço é dedicado àqueles que muito contribuíram e apoiaram para que este
trabalho fosse realizado. A todos eles deixo o meu agradecimento sincero.
Quero agradecer em primeiro lugar à INOVA+ e especialmente ao Eng. João Correia
por me terem concedido a oportunidade de realizar esta dissertação.
Ao meu orientador Prof. Miguel Velhote Correia pela sua disponibilidade e orientação,
pelas suas sugestões, criticas e todo o apoio prestado.
Agradeço à minha família todo o apoio incondicional em todas as decisões da minha
vida e pela sua enorme paciência. Agradeço-lhes com todo o meu amor e carinho pela
educação que me deram e sobretudo pelo seu esforço para que meus objetivos fossem
atingidos. É graças a eles que me tornei na pessoa que sou hoje.
Por último, mas não menos importantes, agradeço a todos os meus amigos que fazem
parte da minha vida.
Muito obrigado,
Filipe Vieira
vi
Í ndice
Resumo ........................................................................................................................................... i
Abstract ........................................................................................................................................ iii
Lista de Figuras ............................................................................................................................ viii
Lista de Tabelas ............................................................................................................................. ix
Abreviaturas e Símbolos................................................................................................................ x
Capítulo 1 ...................................................................................................................................... 1
Introdução ..................................................................................................................................... 1
1.1 Contexto ........................................................................................................................ 1
1.2 Objetivos ....................................................................................................................... 2
1.3 Motivação ...................................................................................................................... 2
1.4 Estrutura do documento ............................................................................................... 2
Capítulo 2 ...................................................................................................................................... 3
Revisão Bibliográfica e Estado da Arte .......................................................................................... 3
2.1 MOCAP – Captura de Movimentos ............................................................................... 3
2.2 Fisioterapia na Doença de Parkinson ............................................................................ 4
2.3 Projetos Similares .......................................................................................................... 5
Capítulo 3 ...................................................................................................................................... 6
O Projeto ....................................................................................................................................... 6
3.1 O problema.................................................................................................................... 6
3.2 Solução proposta ........................................................................................................... 6
3.3 Arquitetura do sistema ................................................................................................. 7
Capítulo 4 ...................................................................................................................................... 8
Meios e Métodos .......................................................................................................................... 8
4.1 Tecnologias e ferramentas ............................................................................................ 8
4.1.1 Kinect ..................................................................................................................... 8
4.1.2 Linguagens de programação ............................................................................... 11
4.1.3 Ambientes de desenvolvimento ......................................................................... 11
4.1.4 Formatos ............................................................................................................. 14
Capítulo 5 .................................................................................................................................... 15
Experiências e Resultados ........................................................................................................... 15
vii
Capítulo 6 .................................................................................................................................... 16
Conclusões e Trabalho Futuro ..................................................................................................... 16
6.1 Plano de Trabalho ....................................................................................................... 16
6.1.1 Preparação da Dissertação, 2º Semestre 2011/2012: ........................................ 16
6.1.2 Dissertação, 1º Semestre 2012/2013: ................................................................. 16
6.2 Conclusão .................................................................................................................... 17
Referências .................................................................................................................................. 18
viii
Lista de Figuras
Figura 1 - Arquitetura do sistema ................................................................................................. 7
Figura 2 - Visão geral do sensor Kinect para Windows ................................................................. 8
Figura 3 - Sensores de profundidade 3D [3D Depth Sensors] ....................................................... 9
Figura 4 - Distâncias suportadas pelo sensor de profundidade .................................................... 9
Figura 5 - Microfones e Motor Tilt do Kinect ............................................................................. 10
Figura 6 - Esquema do funcionamento de uma aplicação em XNA ............................................ 12
Figura 7 - Arquitetura do .NET framework ................................................................................. 13
Figura 8 - Fluxograma do jogo protótipo .................................................................................... 15
Figura 9 - Metodologia a adotar.................................................................................................. 17
ix
Lista de Tabelas
Tabela 1: Formatos suportados pelo XNA ................................................................................... 14
x
Abreviaturas e Sí mbolos
Lista de abreviaturas
API Application Programming Interface CLR Common Language Runtime
FEUP Faculdade de Engenharia da Universidade do Porto IDE Integrated Development Environment IV Infravermelhos JIT Just In Time Compiler
MIEEC Mestrado Integrado em Engenharia Eletrotécnica e de Computadores MOCAP Motion capture – Captura de movimentos
UML Unified Modeling Language WPF Windows Presentation Foundation XML Extensible Markup Language
xi
1
Capítulo 1
Íntroduça o
Este capítulo apresenta os objetivos do trabalho proposto, a motivação e interesse que
justificam a realização deste projeto e a estrutura e organização do documento.
O trabalho realizado foi desenvolvido na empresa Inovamais – Serviços de
Consultadoria em Inovação Tecnológica, Lda, em parceria com a Faculdade de Engenharia da
Universidade do Porto.
1.1 Contexto
A doença de Parkinson é uma das doenças neurológicas mais comuns dos dias de hoje,
atingindo principalmente pessoas idosas. As suas características são próprias de cada doente e
por vezes encontramos todos os graus de deterioração e o doente não apresenta um conjunto
de sintomas típico. Os principais sintomas verificam-se ao nível físico, provocando nos doentes
limitações nos movimentos. É, portanto, importante introduzir na rotina diária dos doentes de
Parkinson atividades físicas, incluindo acompanhamento com fisioterapia.
O trabalho desenvolvido pelos fisioterapeutas tem sido crucial para um melhoramento
nos movimentos dos pacientes, contudo nem sempre é possível aos fisioterapeutas aplicarem
os seus métodos fora das sessões de tratamento. A aplicação que se pretende desenvolver
tem esse objetivo, isto é, de auxiliar no trabalho dos fisioterapeutas, quer durante as sessões
de fisioterapia quer fora destas.
Com o surgimento de plataformas de interface natural como o Kinect, tornou-se claro
que esta plataforma ofereceria um ambiente de interação que proporcionaria a atividade
física, sem necessidade de utilizar outros acessórios, como um comando ou o teclado para
interagir.
Assim, pretende-se que a aplicação use o Kinect como meio de interação que permita
ao utilizador a prática de exercício físico de uma forma descontraída e apreciativa.
2
1.2 Objetivos
O primeiro objetivo do trabalho é o estudo e análise da Doença de Parkinson e das
suas limitações, assim como os principais movimentos que auxiliem na fisioterapia. É
importante conhecer e entender como esta doença afeta as pessoas e como estas interagem
com o mundo real. Apesar da complexidade da doença e dos seus sintomas, esta compreensão
permitirá que se possa adaptar esse conhecimento ao mundo digital, adaptando a interação
entre o utilizador e o computador.
O passo seguinte consiste em estudar e conhecer todas as tecnologias a usar para que
se possa tirar o máximo partido destas.
A última etapa será o desenvolvimento de um ou mais jogos lúdicos que serão
introduzidos na plataforma de apoio à terapia de reabilitação e manutenção de doente de
Parkinson. Esta plataforma permitirá executar os jogos e usará um sistema de base de dados
em XML para gravar e/ou carregar dados do progresso de cada utilizador. Esta informação será
importante para determinar o nível de dificuldade dos jogos, assim como servirá para o
fisioterapeuta acompanhar a progressão e estatísticas da progressão dos pacientes.
1.3 Motivação
Na área da saúde tem sido forte a aposta nas novas tecnologias e com a contínua
melhoria da tecnologia surgem novos projetos e plataformas que ajudam nesse sentido. Usar o
Kinect – a mais recente novidade da Microsoft com imenso potencial, na área da saúde como a
fisioterapia, faz todo o sentido e o desafio não podia ser maior.
Colocar-se-ão assim em prática as capacidades adquiridas ao longo da formação
académica e principalmente fazendo parte de um projeto inovador e com enorme potencial
que servirá para ajudar a melhorar a vida de pessoas com limitações, como é o caso de
doentes de Parkinson.
1.4 Estrutura do documento
Este relatório encontra-se dividido em 4 capítulos. O capítulo 1, já introduzido
anteriormente, serve de introdução para que o leitor se enquadre no contexto do trabalho
realizado. No capítulo 2 é apresentada a revisão da literatura e o levantamento do estado da
arte. No capítulo 3 é caracterizado os problemas a tratar e as soluções propostas, assim como
a arquitetura do projeto. No capítulo 4 apresenta-se o plano de trabalho e as tecnologias e
ferramentas a usar.
3
Capítulo 2
Revisa o Bibliogra fica e Estado da Arte
Este capítulo pretende apresentar o estado da arte que contém conceitos e ideias
fundamentais para uma melhor compreensão do assunto a tratar. Nesse sentido, é
documentado o estado atual das tecnologias neste campo, assim como toda a investigação
feita até ao momento na área.
2.1 MOCAP – Captura de Movimentos
Motion capture, ou simplesmente MOCAP, é um termo usado para descrever o
processo de gravação de movimentos humanos ou de objetos e transpô-los num modelo
digital 2D ou 3D. A captura de movimentos é uma técnica cada vez mais usada nas mais
diversas áreas e que tem evoluído bastante nos últimos anos. Devido à sua reprodução realista
de movimentos e à sua, cada vez maior precisão, tem-se verificado uma grande utilização de
técnicas de captura de movimento nas mais variadas áreas, tais como o entretenimento,
produções cinematográficas, aplicações médicas, militarismo, etc.
Existem diferentes tipos de sistemas de captura de movimento, que podem ser
divididos em três princípios físicos básicos: mecânico, ótico e eletromagnético.
No sistema mecânico, a pessoa que realiza os movimentos a ser capturados, utiliza um
equipamento com formato humano, constituído por peças metálicas, que acompanha os
movimentos dessa pessoa. Também podem ser utilizadas luvas, braços mecânicos ou modelos
articuláveis. As principais vantagens deste sistema são o grande intervalo de captura, o baixo
custo comparado a outro tipo de sistemas, o facto de não haver interferência da luz ou campos
magnéticos, captura em tempo real, portabilidade e incorporação de várias capturas em
simultâneo. No entanto torna-se um sistema complexo devido à quantidade de detalhes dos
equipamentos e à necessidade de os calibrar com frequência o que limita os movimentos de
captura.
Quanto ao sistema ótico, são colocados marcadores refletores na pessoa que executa
os movimentos. Os movimentos da pessoa são seguidos por várias câmaras e a informação é
obtida por triangulação entre elas. Estes marcadores são fontes de luz, geralmente LEDs. Este
sistema distingue-se pela sua elevada precisão, não existem cabos logo o utilizador pode
executar movimentos mais complexos e permite uma área de captura maior que outros
sistemas. Os seus pontos fracos são principalmente o seu elevado custo, está propenso a
interferência de luz e a captura tem de ser feita em ambiente controlado sem muitos
marcadores de reflexão para evitar interferência nos resultados.
O sistema eletromagnético utiliza campos magnéticos gerados por emissores
localizados nas junções do corpo. Esses campos são comparados ao campo magnético da Terra
4
no local onde está a ser medido. Para isso, antes de começar a seção de captura tem-se
sempre que calibrar o equipamento. A informação é obtida em tempo real, é possível capturar
movimento de várias pessoas e é relativamente mais barato que o sistema ótico. No entanto
não é tão bom como o ótico pois tem menor área de captura, os movimentos estão limitados
por cabos e estão suscetíveis à interferência de campos magnéticos. [1],[2],[3]
2.2 Fisioterapia na Doença de Parkinson
A fisioterapia é uma área da saúde que procura promover, reduzir e/ou manter o
movimento corporal com o objetivo de minimizar os problemas motores, ajudando o paciente
a manter a independência para realizar as atividades de vida diária, melhorando a sua
qualidade de vida.
Para os doentes de Parkinson a fisioterapia é um complemento muito importante à
terapia farmacológica. Ela promove o exercício físico, mantem ativos os músculos e preserva a
mobilidade, o que a torna benéfica com a progressão da doença que tende a provocar
sedentarismo e inatividade nos doentes. Com o exercício, o aumento da mobilidade pode de
facto modificar a progressão da doença e impedir contraturas, além de ajudar a retardar a
demência.
Como a Doença de Parkinson é progressiva, a prática de fisioterapia deve ser de longo
prazo, deve mesmo tornar-se parte do estilo de vida diário. A sua intervenção deve começar
tão cedo quanto o estabelecimento do diagnóstico de modo a prevenir a atrofia muscular, a
fraqueza e a capacidade de exercício reduzida. A prática de exercícios repetidos numa fase
inicial da doença permite um controlo motor mais próximo do fisiológico e adequado quando
houver maior deterioração na evolução da doença. [4]
Existem atividades motoras de diferentes graus de dificuldade de execução que
deverão ser levadas em conta e que se consideram importantes para a conceção do jogo. Por
exemplo, é mais fácil subir escadas ou andar de bicicleta do que caminhar em terreno plano.
Alguns gestos são particularmente difíceis, como é o caso de vestir um casaco, sair de um
automóvel, virar na cama, assim como efetuar gestos rotativos ou alternados (por exemplo,
mexer uma colher numa tigela, lavar os dentes, limpar os pés em cima de uma esteira, etc.).
Outra grande dificuldade está no fazer duas coisas em simultâneo, como transportar objetos e
caminhar, mesmo sendo objetos de pequenas dimensões, ou falar e caminhar. O doente deve
por isso concentrar-se em cada tarefa individualmente e evitar fazer mais que uma ação ao
mesmo tempo. [5]
Mas nem só a atividade física pode criar dificuldades ao doente. O humor tem um
papel importante na atividade física e na capacidade de execução de movimentos. Em casos de
depressão os sintomas motores da doença podem aumentar entre 20% a 30%. Outro fator que
considero particularmente importante e que pode ser aproveitado no conceito do jogo é a
motivação. A motivação influência os desempenhos motores, por isso é importante
estabelecer objetivos e criar um ambiente apelativo e agradável para que a tarefa seja do
agrado do paciente. [5]
5
2.3 Projetos Similares
Com o aparecimento de tecnologias de captura de movimento mais acessíveis, como o
Kinect, e a disponibilização das suas API começaram a surgir diversas ideias e projetos em
diferentes áreas de aplicação. Apesar de haver algumas aplicações e jogos destinados ao
suporte na fisioterapia de reabilitação e promoção de atividade física, não existe nenhum
projeto publicado focado em auxiliar os doentes de Parkinson. Focar-se-á essencialmente na
área de aplicação de fisioterapia em geral através do uso do Kinect.
Na University of Southern California estão a desenvolver um projeto para reabilitação
de pacientes através de jogos. A aplicação faz uso da câmara da Microsoft, o Kinect, e tem o
objetivo de promover a atividade física em pessoas que tenham sofrido um acidente vascular
cerebral ou uma lesão cerebral. Tem uma interface apelativa e simples, através de gráficos 2D
e 3D. [6]
Outra aplicação surgiu no trabalho conjunto da Microsoft, Avanade e Accenture que
desenvolveram uma maneira de os pacientes interagirem com os seus médicos, em qualquer
lugar do mundo, sem necessidade de contacto físico. O objetivo é aumentar o número de
pacientes diários dos médicos e evitar deslocações que podem comprometer a qualidade de
vida dos pacientes. O paciente faz uso de uma câmara Kinect para que toda a informação
relevante possa ser enviada para os médicos que podem assim visualizar e analisar sintomas
de forma interativa e tridimensional. Os dados dos pacientes são armazenados de forma
segura para futura referência. [7]
A Virtualware em colaboração com a Fundação Esclerose Múltipla de Biscaia, Espanha,
desenvolveu o produto VirtualRehab, um sistema de reabilitação que combina ambientes
virtuais 3D e a câmara Kinect para doentes de esclerose múltipla. Esta aplicação contém um
sistema de análise e registo para elaboração de relatórios que permite ao fisioterapeuta
observar e controlar o progresso de cada paciente. [8]
Além destas aplicações existem outros projetos com ideias e propósitos semelhantes
mas que estão apenas em desenvolvimento em projetos e trabalhos universitários.
6
Capítulo 3
O Projeto
3.1 O problema
A doença de Parkinson é atualmente uma das doenças neurológicas mais comuns, que
se caracteriza principalmente por limitação de movimentos e rigidez muscular. Para pessoas
que sofram desta doença, o seu dia-a-dia é uma luta constante. Qualquer atividade diária por
mais básica que possa parecer – como andar, levantar da cama ou de uma cadeira, falar, vestir,
escrever, beber água, etc. – pode tornar-se um grave problema para estas pessoas. Por essa
razão é indispensável juntar a fisioterapia como apoio ao tratamento farmacológico da doença
de Parkinson.
Através da fisioterapia o doente torna-se mais ativo e independente, o que diminui os
riscos de complicações, como as quedas, oferecendo uma melhor qualidade de vida. No
entanto, por diversos motivos, nem todos os doentes de Parkinson podem participar nestas
sessões ou participar tantas vezes como gostariam. É neste sentido que a INOVA+ propõe a
criação e desenvolvimento de uma aplicação que suporte os fisioterapeutas neste processo
mas que também permita que qualquer pessoa com um computador pessoal possa ajudar os
seus familiares e/ou amigos que sofram de doença de Parkinson.
3.2 Solução proposta
Pretende-se com esta dissertação a criação de jogos lúdicos, para computadores
pessoais com sistema operativo Windows, que proporcionem e influenciem a atividade física
aos seus utilizadores, através da interação natural que o Kinect oferece. Estes jogos deverão
ser integrados na plataforma de apoio à terapia de reabilitação e manutenção de doentes de
Parkinson, que está a ser desenvolvida pela empresa INOVA+, com diferentes níveis de
dificuldade e que permitam guardar informação relativa ao progresso de cada
paciente/utilizador.
7
3.3 Arquitetura do sistema
Como já referido anteriormente, estes jogos deverão ser lançados a partir da aplicação
de apoio à terapia de reabilitação e manutenção de doentes de Parkinson. A figura seguinte
apresenta a arquitetura do sistema a ser desenvolvido.
Figura 1: Arquitetura do sistema
Como se pode verificar na figura 1, o jogo é lançado através da interface da aplicação
de apoio à terapia de reabilitação e manutenção de doentes de Parkinson. Esta aplicação além
de lançar o jogo pretendido, também terá a capacidade de configurar o grau de dificuldade do
mesmo ou até ver dados guardados de sessões de fisioterapia anteriores e evolução do
paciente. Para isso, acede a um ficheiro XML, que por sua vez é alterado pelo jogo conforme o
paciente vá jogando e progredindo. O paciente interage com o jogo através do Kinect, no
entanto a pessoa responsável, neste caso representada como fisioterapeuta, tem controlo
sobre a aplicação através de um teclado e rato.
8
Capítulo 4
Meios e Me todos
4.1 Tecnologias e ferramentas
Esta dissertação tem como característica principal o uso do Kinect da Microsoft e
portanto será desenvolvido sobre algumas das principais plataformas de desenvolvimento de
jogos da Microsoft. Nesta secção são apresentadas essas tecnologias, assim como linguagens
de programação, principais formatos a usar e software complementar com diferentes
objetivos no trabalho.
4.1.1 Kinect
O Kinect é um dispositivo para a consola Microsoft Xbox 360 e para o sistema
operativo Windows que permite interagir com o ambiente gráfico usando a movimentação do
corpo ou por comandos de voz sem a necessidade de usar teclado, rato, comando ou outro
tipo de controlo tradicional. Assemelha-se a uma WebCam com um formato em barra
horizontal. Contém uma câmara de vídeo RGB de alta resolução, um conjunto de microfones,
dois sensores infravermelhos de profundidade e um motor tilt que controla o angulo de
inclinação do Kinect.
Figura 2: Visão geral do sensor Kinect para Windows
9
Recentemente a Microsoft lançou o Kinect para Windows que apesar de ser baseado
na mesma tecnologia que o anterior (Kinect para Xbox 360), a sua firmware foi ajustada para
que o seu sensor de profundidade fosse mais abrangente. Este sensor é responsável pela
deteção do corpo esqueletal dos utilizadores, permitindo assim não só a captura de
movimentos como a distinção entre vários utilizadores.
Como se pode verificar na figura 4, o Kinect contém dois sensores de profundidade 3D,
ou 3D Depth Sensors. O projetor de infravermelhos, ou IR Projector, que projeta um campo de
pontos para o cenário capturado e a câmara de infravermelhos, ou IR Camera, que vê esses
pontos no cenário. O Kinect usa a informação desses pontos para elaborar um “mapa de
profundidade” de uma imagem para definir a distância de cada elemento dessa imagem.
Figura 1: Sensores de profundidade 3D [3D Depth Sensors]
No entanto existem algumas limitações relativas aos sensores de profundidade. Essas
limitações têm sobretudo a ver com as distâncias relativamente ao Kinect. A figura 5 mostra as
distâncias que a câmara de profundidade suporta para os seus dois diferentes modos de
execução.
Figura 2: Distâncias suportadas pelo sensor de profundidade
10
Quando os objetos estão muito próximos dos sensores, os pontos criados pelo projetor
de infravermelhos ficam demasiado juntos e o Kinect não consegue medir essas distâncias. Isto
também ocorre porque os sensores estão em duas posições diferentes. O mesmo acontece se
os objetos estiverem demasiado longe, pois esses pontos terão um maior espaçamento entre
si e menor será a precisão dos sensores. Além disto, a resolução é de 320x240 pixéis.
O Kinect contém também uma câmara de vídeo que fornece imagens de alta resolução
até 1280x1024 pixéis. Contém ainda quatro microfones colocados estrategicamente no
dispositivo e um motor que controla a inclinação entre -27 e +27 graus, como se pode observar
na figura 6. [9][10]
Figura 3: Microfones e Motor Tilt do Kinect
11
4.1.2 Linguagens de programação
C#
C Sharp, ou simplesmente C#, é uma linguagem de programação da Microsoft
orientada a objetos e com tipagem segura, criada para o desenvolvimento de aplicações que
executam sobre a arquitetura .NET Framework.
Mais à frente neste documento encontra-se explicado e representado como o .NET
Framework se relaciona com o C#.
XML
O XML, Extensible Markup Language, é uma linguagem de marcação que define um
conjunto de regras para a codificação de documentos num formato legível por máquinas e
humanos. A sua principal característica é a criação de uma infraestrutura única para diversas
linguagens. O XML é um formato que permite a definição de tags ou delimitadores que
caracterizam os dados e a sua formatação, não depende das plataformas de hardware ou
software e cria documentos de forma hierárquica.
O objetivo de usar o XML neste projeto será de criar uma base de dados para que seja
possível guardar informação do progresso e evolução dos pacientes/utilizadores.
4.1.3 Ambientes de desenvolvimento
Visual Studio 2010
É um IDE (Integrated Development Environment) da Microsoft ideal para desenvolver
aplicações para Windows, especialmente dedicadas ao .NET framework e à linguagem C#. É o
programa onde será escrito, compilado e testado a aplicação.
Kinect SDK v1.5
Fornece ferramentas que permitem desenvolver aplicações com reconhecimento de
gestos e voz, através do sensor Kinect e um computador com Windows 7 ou superior. A sua
mais recente versão oferece uma melhoria substancial na deteção do esqueleto,
reconhecimento de voz melhorada, nova API (Application Programming Interface) e a
capacidade de suportar até quatro sensores Kinect conectados a um computador. [11]
XNA
XNA é um framework desenvolvido pela Microsoft direcionado para a criação de jogos,
quer para Windows, Xbox 360 e Windows Phone 7. Está atualmente na versão 4.0 e suporta a
linguagem C#.
Tem como classe principal a classe Game e a sua estrutura já inclui quatro métodos de
raiz: Initialize, LoadContent, Update, UnloadContent e Draw. O esquema seguinte mostra o
funcionamento desses métodos.
12
Figura 4: Esquema do funcionamento de uma aplicação em XNA
Cada um destes métodos tem uma função específica à qual se deve ter em atenção no
momento de estruturação do código da aplicação a desenvolver. De seguida resume-se cada
um dos métodos.
O primeiro, Initialize, é onde ficam todas as operações de inicialização do jogo, como por
exemplo variáveis e outros objetos. O LoadContent é chamado após a execução do método
Initialize ou em qualquer outro momento que seja necessário recarregar objetos gráficos.
Neste método deverão ser carregadas imagens, modelos 3D, sons, etc. O Update é um método
que fica em repetição durante a execução do jogo. É o local ideal para colocar toda a lógica do
jogo, como por exemplo, verificar o estado do teclado, mover objetos, etc. O método Draw é
semelhante ao Update, mas com o objetivo de fazer a apresentação gráfica no ecrã. Por fim
temos o UnloadContent que tem como objetivo “destruir” o conteúdo carregado
anteriormente e que já não seja necessário.
.NET Framework 4.0
É um componente integral do Windows que inclui um sistema de execução virtual
chamado Common Language Runtime (CLR) e um conjunto unificado de bibliotecas de classes
que inclui ADO.NET, ASP.NET, Windows Forms e Windows Presentation Foundation (WPF).
[12][13] A versão a ser utilizada será a mais recente, ou seja, a versão 4.0.
Esta plataforma baseia-se num dos princípios utilizados em Java (Just In Time Compiler
– JIT), onde os programas desenvolvidos são duplamente compilados, isto é, uma primeira
compilação na distribuição, gerando um código conhecido como bytecodes, e outra na
execução da aplicação. Para o caso em estudo, pretende-se que a aplicação a ser criada seja
um executável, na primeira compilação obtém-se um arquivo em Assembly de baixo nível com
extensão EXE. [14] Quando o programa é executado, o arquivo em Assembly é carregado para
o CLR que pode tomar várias opções com base nas informações nele contido. Se os requisitos
de segurança forem aprovados, o CLR executa a compilação JIT para converter o código em
13
instruções de máquina. A figura 8 ilustra de uma forma resumida as relações entre o tempo de
compilação e execução do código fonte C#, bibliotecas do .NET Framework e o CLR. [15]
Figura 5: Arquitetura do .NET framework
Blender
Também conhecido por blender3d, é um programa computacional que permite a
criação de uma gama diversificada de conteúdo 2D e 3D. O Blender oferece um amplo espetro
de modelagem, animação, texturização, composição e edição de vídeo.
Esta aplicação será usada essencialmente para a criação de objetos tridimensionais a
incluir no jogo.
14
4.1.4 Formatos
Uma vez que a base do projeto será desenvolvida sobre o XNA, os formatos a utilizador
serão os suportados por esta plataforma. A tabela seguinte mostra os tipos de arquivos
suportados para os diferentes conteúdos.
Tipo de conteúdo Tipo de arquivo (formato)
Modelos 3D .x, .fbx
Textura / imagens .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, .tga
Áudio .xap, .wma, .mp3, .wav
Fontes (texto) .spritefont
Efeitos .fx
Tabela 1: Formatos suportados pelo XNA
15
Capítulo 5
Experie ncias e Resultados
Durante o período de preparação da dissertação foi possível criar um protótipo de um
jogo em XNA com interação através do Kinect, que foi importante para aprendizagem e
aprofundamento do conhecimento sobre as tecnologias e ferramentas a utilizar.
O jogo tem como objetivo incentivar o utilizador a mover as mãos de forma a interagir
com os objetos. Esses objetos são flores que caem do topo do ecrã e o jogador deve “tocar”
nelas de forma a recolher o máximo de flores possível antes que saiam fora do limite do ecrã. É
contabilizado o número de flores que o utilizador recolhe, isto é, “toca”. De modo a que seja
percetível ao jogador saber a posição das suas mãos é feita uma representação com duas
imagens da mão direita e esquerda nas respetivas posições. Quando ocorrem colisões são
reproduzidos diferentes sons conforme ocorra com a mão esquerda ou direita.
Está implementado um método de reconhecimento do estado do Kinect, isto é, se está
ligado ou não e consequente aviso gráfico no ecrã.
O seguinte fluxograma descreve o funcionamento do jogo.
Figura 6: Fluxograma do jogo protótipo
16
Capítulo 6
Concluso es e Trabalho Futuro
6.1 Plano de Trabalho
De modo a garantir o cumprimento dos principais objetivos do projeto, apresenta-se
de seguida o planeamento dos trabalhos divididos em duas fases: a primeira fase a decorrer ao
longo do 2º semestre de 2012 na unidade curricular de Preparação da Dissertação e a segunda
fase a decorrer inteiramente inserida na Dissertação no ano letivo seguinte, 2012/2013.
6.1.1 Preparação da Dissertação, 2º Semestre 2011/2012:
Primeiros contatos com a empresa e com ambos os orientadores de modo
a analisar e planificar o projeto
Criação do website para a tese
Estudo da Doença de Parkinson e principais limitações físicas provocadas
pela doença
Estudo da linguagem C#
Introdução e estudo do Kinect
Introdução ao XNA
Revisão da literatura e estado da arte
6.1.2 Dissertação, 1º Semestre 2012/2013:
Início de trabalhos na empresa e ambientação ao novo ambiente de
trabalho
Introdução ao ambiente gráfico 3D
Continuação ao desenvolvimento da plataforma
Implementação dos jogos na aplicação
Testes finais da aplicação
Desenvolvimento do documento final da dissertação
17
6.2 Conclusão
Foi feito um estudo relativo à doença de Parkinson e às principais limitações físicas
provocadas nos doentes. Este estudo foi realizado através de pesquisa em websites
apropriados e destinados à divulgação e tratamento da doença, e de leitura de artigos
científicos. Compreendida melhor a doença de Parkinson, deu-se introdução ao estudo
aprofundado das tecnologias a utilizar, nomeadamente linguagens de programação, software
e familiarização com o próprio Kinect. Após estas duas fases de inicialização e compreensão do
problema, aplicaram-se os conhecimentos adquiridos e desenvolveu-se um jogo protótipo que
utiliza o Kinect para interagir com um ambiente gráfico a 2D, para assim compreender melhor
as ferramentas a utilizar. Após esta fase, abordou-se a tecnologia 3D, a sua modelação e
aplicação em XNA. O desafio seguinte consiste em movimentar um avatar, figura
tridimensional, através da interação natural do Kinect.
Posteriormente pretende-se produzir um jogo lúdico com gráficos tridimensionais que
proporcionem aos utilizadores uma experiência física, influenciando de forma positiva a sua
fisioterapia.
A estratégia de abordagem ao problema está representada na figura seguinte:
Figura 7: Metodologia a adotar
18
Refere ncias
[1] Maureen Furniss, MIT Communications Forum. Motion Capture. Disponível em:
http://web.mit.edu/comm-forum/papers/furniss.html, acedido a última vez em 7 de Maio de
2012.
[2] João Victor Boechat Gomide, David Lunardi Flam, Daniel Pacheco , Arnaldo de Albuquerque
Araújo (2009). Captura de Movimento e Animação de Personagens em Jogos. Faculdade de
Ciências Empresariais, Universidade FUMEC, Belo Horizonte, Brasil.
[3] Wikipedia, Motion capture (2012). Disponível em:
http://en.wikipedia.org/wiki/Motion_capture, acedido a última vez em 7 de Maio de 2012.
[4] Medeiros, R. (2011). O Tratamento Fisioterapêutico na Doença de Parkinson. Trabalho
realizado no Laboratório de Fisiologia do Exercício do Centro Universitário Metodista – IPA,
Porto Alegre, Brasil.
[5] Associação Portuguesa de Doentes de Parkinson, ed. lit.; Sociedade Portuguesa de
Neurologia, ed. lit.; Levy, Alice, trad.; Ferreira, Joaquim, trad. (2005). Manual do Doente de
Parkinson. Lisboa.
[6] USC - Institute for Creative Technologies, Microsoft Kinect/Primesense Sensing Systems for
Virtual Rehabilitation. Disponível em: http://ict.usc.edu/events/belinda-lange-skip-rizzo-tamar-
weiss-microsoft-kinectprimesense-sensing-systems-for-virtual-rehabilitation/, acedido a última
vez em 15 de Maio de 2012.
[7] Accenture, Accenture and Avanade Solutions Showcase at Microsoft. Disponível em:
http://www.showcase.avanade.com/TopicDetail.aspx?TopicID=6ecbc380-18e0-47d8-87a8-
3f3c6631a446, acedido a última vez em 20 de Maio de 2012.
[8] VirtualRehab, Patient Rehabilitation Using Kinect Technology. Disponível em:
http://virtualrehab.info/en/product/, acedido a última vez em 20 de Maio de 2012.
[9] Miles, R. (2012). Using Kinect for Windows with XNA, Edition 1.1.
[10] Pires, B. (2012). Kinect Hack, Programar. 33: 6-7.
[11] Microsoft, Kinect for Windows. Disponível em:
http://www.microsoft.com/en-us/kinectforwindows/develop/new.aspx, acedido a última
vez em 22 de Junho de 2012.
[12] MSDN, Microsoft Developer Network, .NET Framework 4. Disponível em:
http://msdn.microsoft.com/en-us/library/w0x726c2.aspx, acedido a última vez em 26 de
Junho de 2012.
[13] MSDN, Microsoft Developer Network, .NET Framework Conceptual Overview. Disponível
em: http://msdn.microsoft.com/pt-br/library/zw4w595w, acedido a última vez em 26 de
Junho de 2012.
19
[14] Wikipedia, Microsoft .NET. Disponível em: http://pt.wikipedia.org/wiki/Microsoft_.NET,
acedido a última vez em 26 de Junho de 2012.
[15] MSDN, Microsoft Developer Network, Introduction to the C# Language and the .NET
Framework. Disponível em: http://msdn.microsoft.com/library/z1zx9t92, acedido a última
vez em 12 de Junho de 2012.